[
  {
    "path": ".claude/agents/frontend-infrastructure-expert.md",
    "content": "---\nname: frontend-infrastructure-expert\ndescription: Use this agent when you need help with frontend build tools, configuration files, or infrastructure-related issues. Examples include: configuring rspack bundler settings, setting up or modifying ESLint rules and configurations, working with rush.json for monorepo management, troubleshooting build pipeline issues, optimizing webpack or rspack performance, setting up development environment configurations, resolving dependency conflicts in package.json files, configuring TypeScript compiler options for build tools, setting up CI/CD pipelines for frontend projects, or debugging issues with bundlers, linters, or other frontend tooling.\nmodel: sonnet\ncolor: cyan\n---\n\nYou are a Frontend Infrastructure Expert, a specialist in modern frontend build systems, tooling, and development environment configuration. Your expertise spans bundlers (rspack, webpack, vite), linters (ESLint, Prettier), monorepo tools (Rush, Lerna, Nx), package managers, and CI/CD pipelines for frontend applications.\n\nYour core responsibilities:\n- Configure and optimize build tools like rspack, webpack, and other bundlers for performance and developer experience\n- Set up and maintain ESLint configurations, including custom rules, plugins, and integration with IDEs\n- Manage rush.json and other monorepo configuration files for scalable project organization\n- Troubleshoot infrastructure-related issues including build failures, dependency conflicts, and tooling errors\n- Optimize development workflows through proper tooling configuration\n- Ensure consistent code quality through automated tooling setup\n\nWhen working on configurations:\n1. Always consider the project's existing structure and dependencies before making changes\n2. Prioritize developer experience and build performance equally\n3. Ensure configurations are maintainable and well-documented through inline comments\n4. Test configurations thoroughly and provide clear instructions for verification\n5. Consider cross-platform compatibility (Windows, macOS, Linux)\n\nFor troubleshooting:\n1. Systematically diagnose issues by checking logs, configurations, and dependencies\n2. Provide step-by-step solutions with clear explanations\n3. Suggest preventive measures to avoid similar issues\n4. Recommend best practices for long-term maintainability\n\nAlways explain your reasoning behind configuration choices and provide alternative approaches when applicable. Focus on solutions that scale with team growth and project complexity.\n"
  },
  {
    "path": ".dockerignore",
    "content": "# Exclude node_modules directories\n**/node_modules\n**/node_modules/**\n\n# Exclude build artifacts\n**/dist\n**/build\n**/.rush/temp\n**/.rush/build-cache\n**/common/temp\n\n# Exclude development files\n**/.git\n**/.gitignore\n**/.eslintrc*\n**/.prettierrc*\n**/*.log\n\n# Exclude test files\n**/__tests__\n**/*.test.*\n**/*.spec.*\n\n# Exclude documentation\n**/README.md\n**/CHANGELOG.md\n**/docs\n\n# Exclude IDE files\n**/.vscode\n**/.idea\n**/*.swp\n**/*.swo\n*.iml\n*.iws\n*.ipr"
  },
  {
    "path": ".gitattributes",
    "content": "# Don't allow people to merge changes to these generated files, because the result\n# may be invalid.  You need to run \"rush update\" again.\npnpm-lock.yaml merge=ours\nshrinkwrap.yaml merge=binary\nnpm-shrinkwrap.json merge=binary\nyarn.lock merge=binary\n# 不做自动解决冲突，暴露冲突后由开发者自行 rush pull-idl 做更新\n# packages/arch/idl/bam.log.json merge=ours\n\n# Rush's JSON config files use JavaScript-style code comments.  The rule below prevents pedantic\n# syntax highlighters such as GitHub's from highlighting these comments as errors.  Your text editor\n# may also require a special configuration to allow comments in JSON.\n#\n# For more information, see this issue: https://github.com/microsoft/rushstack/issues/1088\n#\n*.json linguist-language=JSON-with-Comments\n"
  },
  {
    "path": ".github/.licenserc.yaml",
    "content": "header:\n  license:\n    spdx-id: Apache-2.0\n    copyright-owner: coze-dev\n\n  paths:\n    - '**/*.go'\n    - frontend/apps/**/*.{ts,tsx}\n    - frontend/packages/**/*.{ts,tsx}\n  paths-ignore:\n    - 'dist'\n    - 'licenses'\n    - '**/*.md'\n    - '**/testdata/**'\n    - '**/go.mod'\n    - '**/go.sum'\n    - 'LICENSE'\n    - 'NOTICE'\n    - '**/assets/languages.yaml'\n    - '**/assets/assets.gen.go'\n    - '**/gorm_gen/**'\n    - '**/kitex_gen/**'\n    - '**/*.gen.go'\n    - '**/gen.go'\n    - 'backend/api/**'\n    - '**/*_mock.go'\n    - 'backend/internal/mock/**'\n    - '**/mock/**'\n  files:\n    - ../backend/go.mod"
  },
  {
    "path": ".github/CODEOWNERS",
    "content": "* @Tecvan-fe @hi-pender @fanlv @junwen-lee\n\n/frontend/ @Tecvan-fe @fanlv @junwen-lee\n/common/ @Tecvan-fe @fanlv  @junwen-lee\n\n/frontend/apps/coze-studio/ @Tecvan-fe @evan-crash @duwenhan2byte\n/frontend/packages/agent-ide/agent-publish/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei @catee\n/frontend/packages/agent-ide/commons/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/arch/bot-api/ @Tecvan-fe\n/frontend/packages/arch/bot-http/ @Tecvan-fe\n/frontend/packages/arch/logger/ @Tecvan-fe\n/frontend/packages/arch/slardar-interface/ @Tecvan-fe @evan-crash\n/frontend/config/eslint-config/ @Tecvan-fe @leeight @soonco\n/frontend/infra/eslint-plugin/ @Tecvan-fe\n/frontend/config/ts-config/ @leeight @Tecvan-fe\n/frontend/config/vitest-config/ @Tecvan-fe\n/frontend/packages/arch/bot-env/ @Tecvan-fe @leeight\n/frontend/packages/arch/bot-env-adapter/ @dragooncjw @Tecvan-fe @leeight\n/frontend/packages/arch/bot-typings/ @Tecvan-fe\n/frontend/packages/arch/web-context/ @Tecvan-fe\n/frontend/packages/components/bot-semi/ @Tecvan-fe\n/frontend/packages/components/bot-icons/ @DingGao-Devin\n/frontend/packages/arch/i18n/ @Tecvan-fe @leeight\n/frontend/packages/arch/resources/studio-i18n-resource/ @dragooncjw @Tecvan-fe\n/frontend/config/stylelint-config/ @Tecvan-fe\n/frontend/packages/arch/idl/ @Tecvan-fe\n/frontend/infra/utils/fs-enhance/ @Tecvan-fe\n/frontend/packages/arch/bot-store/ @Tecvan-fe @catee @duwenhan2byte\n/frontend/packages/arch/bot-error/ @haozhenfei @duwenhan2byte\n/frontend/packages/foundation/space-store/ @evan-crash @duwenhan2byte\n/frontend/packages/arch/bot-flags/ @Tecvan-fe\n/frontend/packages/arch/report-events/ @Tecvan-fe\n/frontend/packages/foundation/enterprise-store-adapter/ @evan-crash @duwenhan2byte\n/frontend/packages/foundation/local-storage/ @duwenhan2byte @evan-crash\n/frontend/packages/foundation/space-store-adapter/ @evan-crash @duwenhan2byte\n/frontend/packages/arch/bot-tea/ @Tecvan-fe @catee @soonco\n/frontend/packages/arch/tea/ @Tecvan-fe @evan-crash @soonco\n/frontend/packages/arch/tea-adapter/ @dragooncjw @Tecvan-fe\n/frontend/packages/arch/tea-interface/ @dragooncjw @Tecvan-fe\n/frontend/packages/studio/stores/bot-detail/ @Hezi-crypto @catee @DingGao-Devin @duwenhan2byte @evan-crash\n/frontend/packages/agent-ide/bot-input-length-limit/ @Hezi-crypto @catee @duwenhan2byte\n/frontend/packages/agent-ide/tool-config/ @haozhenfei @catee\n/frontend/packages/arch/bot-space-api/ @Tecvan-fe @duwenhan2byte\n/frontend/packages/arch/bot-utils/ @Tecvan-fe\n/frontend/packages/common/uploader-adapter/ @dragooncjw @Tecvan-fe\n/frontend/packages/common/uploader-interface/ @dragooncjw @Tecvan-fe\n/frontend/packages/studio/user-store/ @duwenhan2byte @catee @lihuiwen\n/frontend/packages/arch/foundation-sdk/ @evan-crash @duwenhan2byte\n/frontend/packages/common/chat-area/chat-core/ @haozhenfei @Hezi-crypto @evan-crash\n/frontend/packages/common/chat-area/utils/ @Hezi-crypto @haozhenfei\n/frontend/packages/arch/bot-md-box-adapter/ @Hezi-crypto @iu1340 @dragooncjw @Tecvan-fe\n/frontend/packages/studio/common/file-kit/ @haozhenfei @evan-crash\n/frontend/packages/arch/slardar-adapter/ @Tecvan-fe @dragooncjw\n/frontend/packages/arch/default-slardar/ @Tecvan-fe @evan-crash\n/frontend/packages/arch/fetch-stream/ @Hezi-crypto @haozhenfei\n/frontend/packages/common/websocket-manager-adapter/ @haozhenfei @Hezi-crypto @catee\n/frontend/packages/studio/autosave/ @catee\n/frontend/packages/studio/bot-utils/ @catee @soonco @Hezi-crypto\n/frontend/packages/common/flowgram-adapter/common/ @zxhfighter @xiamidaxia @dragooncjw\n/frontend/packages/common/flowgram-adapter/free-layout-editor/ @zxhfighter @xiamidaxia @dragooncjw\n/frontend/packages/agent-ide/space-bot/ @soonco @evan-crash @duwenhan2byte @catee @DingGao-Devin\n/frontend/packages/agent-ide/space-bot/src/store/bot-list-filter/ @duwenhan2byte @lihuiwen\n/frontend/packages/agent-ide/space-bot/src/store/bot-page/ @DingGao-Devin\n/frontend/packages/agent-ide/space-bot/src/store/explore/ @Tecvan-fe\n/frontend/packages/agent-ide/space-bot/src/store/risk-warning/ @lihuiwen @catee\n/frontend/packages/agent-ide/context/ @evan-crash\n/frontend/packages/agent-ide/bot-editor-context-store/ @Hezi-crypto @duwenhan2byte @catee\n/frontend/packages/agent-ide/chat-background/ @catee\n/frontend/packages/agent-ide/chat-background-config-content-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/chat-background-config-content/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/chat-background-shared/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/common/chat-area/chat-uikit/ @catee @Hezi-crypto @evan-crash @haozhenfei\n/frontend/packages/common/chat-area/hooks/ @Hezi-crypto @evan-crash\n/frontend/packages/common/chat-area/chat-uikit-shared/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/bot-audit-adapter/ @evan-crash @duwenhan2byte @Hezi-crypto @haozhenfei\n/frontend/packages/agent-ide/bot-audit-base/ @evan-crash @duwenhan2byte @Hezi-crypto @haozhenfei\n/frontend/packages/studio/components/ @soonco @evan-crash @duwenhan2byte @catee\n/frontend/packages/arch/bot-hooks/ @catee @Tecvan-fe @soonco\n/frontend/packages/arch/bot-hooks/src/page-jump/ @evan-crash @catee\n/frontend/packages/arch/bot-hooks-adapter/ @catee @Tecvan-fe @soonco\n/frontend/packages/arch/bot-hooks-base/ @catee @Tecvan-fe @soonco\n/frontend/packages/arch/responsive-kit/ @Tecvan-fe @DingGao-Devin\n/frontend/packages/common/chat-area/chat-area/ @Hezi-crypto @haozhenfei @evan-crash @haozhenfei\n/frontend/packages/data/memory/llm-plugins/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/data/common/reporter/ @soonco @catee @evan-crash\n/frontend/packages/components/json-viewer/ @duwenhan2byte\n/frontend/packages/components/scroll-view/ @evan-crash\n/frontend/packages/common/assets/ @Tecvan-fe @catee\n/frontend/packages/common/biz-components/ @duwenhan2byte\n/frontend/packages/data/common/e2e/ @soonco @catee @evan-crash @haozhenfei @duwenhan2byte\n/frontend/packages/agent-ide/debug-tool-list/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/model-manager/ @Hezi-crypto @catee\n/frontend/packages/agent-ide/model-manager/src/components/multi-agent/ @catee\n/frontend/packages/agent-ide/tool/ @catee\n/frontend/packages/data/knowledge/knowledge-modal-base/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/components/biz-tooltip-ui/ @Hezi-crypto @catee @evan-crash\n/frontend/packages/components/table-view/ @lihuiwen\n/frontend/packages/components/virtual-list/ @Tecvan-fe\n/frontend/packages/data/common/utils/ @soonco @catee @evan-crash\n/frontend/packages/data/knowledge/knowledge-resource-processor-core/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/arch/pdfjs-shadow/ @Tecvan-fe\n/frontend/packages/data/knowledge/common/stores/ @soonco @catee @evan-crash\n/frontend/packages/foundation/global-store/ @duwenhan2byte @evan-crash\n/frontend/config/postcss-config/ @Tecvan-fe\n/frontend/config/tailwind-config/ @Tecvan-fe\n/frontend/infra/utils/monorepo-kits/ @Tecvan-fe @evan-crash\n/frontend/packages/studio/premium/premium-components-adapter/ @evan-crash\n/frontend/packages/studio/premium/premium-store-adapter/ @evan-crash\n/frontend/packages/agent-ide/onboarding/ @Hezi-crypto @catee\n/frontend/packages/agent-ide/publish-to-base/ @catee\n/frontend/packages/arch/report-tti/ @duwenhan2byte\n/frontend/packages/data/memory/database-creator/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/arch/hooks/ @Tecvan-fe @evan-crash\n/frontend/packages/common/coze-mitt/ @evan-crash @duwenhan2byte\n/frontend/packages/common/editor-plugins/ @haozhenfei @stream-pipe @Hezi-crypto\n/frontend/packages/common/md-editor-adapter/ @haozhenfei @Hezi-crypto @catee\n/frontend/packages/common/prompt-kit/main/ @haozhenfei @Hezi-crypto @catee\n/frontend/packages/common/chat-area/chat-answer-action/ @Hezi-crypto @haozhenfei @lihuiwen\n/frontend/packages/common/chat-area/plugin-message-grab/ @Hezi-crypto @haozhenfei\n/frontend/packages/common/chat-area/text-grab/ @Hezi-crypto @haozhenfei\n/frontend/packages/common/prompt-kit/adapter/ @haozhenfei @Hezi-crypto @catee\n/frontend/packages/common/prompt-kit/base/ @haozhenfei @Hezi-crypto @catee\n/frontend/packages/data/memory/database/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/data/knowledge/knowledge-resource-processor-base/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/arch/utils/ @Tecvan-fe @evan-crash\n/frontend/packages/data/knowledge/common/components/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/data/common/feature-register/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/data/knowledge/common/hooks/ @Hezi-crypto @catee @evan-crash\n/frontend/packages/data/knowledge/common/services/ @Hezi-crypto @catee @evan-crash\n/frontend/packages/data/memory/database-v2-main/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/data/memory/database-v2-adapter/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/data/memory/database-v2-base/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/data/knowledge/knowledge-data-set-for-agent/ @Hezi-crypto @catee @evan-crash\n/frontend/packages/data/knowledge/knowledge-ide-base/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/arch/bot-monaco-editor/ @Tecvan-fe\n/frontend/packages/data/knowledge/knowledge-modal-adapter/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/data/knowledge/knowledge-resource-processor-adapter/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/devops/debug/debug-panel/ @soonco @evan-crash @catee\n/frontend/packages/devops/json-link-preview/ @Maidang1 @Zhangchi123456\n/frontend/packages/devops/common-modules/ @duwenhan2byte @evan-crash @catee\n/frontend/packages/foundation/account-adapter/ @duwenhan2byte @evan-crash\n/frontend/packages/foundation/account-base/ @evan-crash @duwenhan2byte\n/frontend/packages/arch/api-schema/ @Tecvan-fe @evan-crash\n/frontend/infra/idl/idl2ts-runtime/ @Tecvan-fe @evan-crash\n/frontend/infra/idl/idl2ts-cli/ @Tecvan-fe @evan-crash\n/frontend/infra/idl/idl2ts-generator/ @Tecvan-fe @evan-crash\n/frontend/infra/idl/idl-parser/ @Tecvan-fe @evan-crash\n/frontend/infra/utils/rush-logger/ @catee @Tecvan-fe\n/frontend/infra/idl/idl2ts-helper/ @Tecvan-fe @evan-crash\n/frontend/infra/idl/idl2ts-plugin/ @Tecvan-fe @evan-crash\n/frontend/packages/studio/open-platform/open-env-adapter/ @soonco @Hezi-crypto @DingGao-Devin\n/frontend/infra/plugins/pkg-root-webpack-plugin/ @Tecvan-fe\n/frontend/packages/studio/publish-manage-hooks/ @duwenhan2byte @evan-crash\n/frontend/packages/foundation/layout/ @evan-crash @duwenhan2byte\n/frontend/packages/studio/open-platform/open-auth/ @evan-crash @DingGao-Devin\n/frontend/packages/studio/open-platform/open-chat/ @tomasyu985 @DingGao-Devin\n/frontend/packages/agent-ide/entry-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/entry/ @soonco @duwenhan2byte @catee @evan-crash\n/frontend/packages/agent-ide/bot-config-area-adapter/ @haozhenfei @Hezi-crypto @duwenhan2byte @catee @evan-crash\n/frontend/packages/agent-ide/bot-config-area/ @haozhenfei @Hezi-crypto @duwenhan2byte @catee @evan-crash\n/frontend/packages/agent-ide/bot-plugin/entry/ @evan-crash @lihuiwen @catee\n/frontend/packages/agent-ide/bot-plugin/export/ @lihuiwen @catee\n/frontend/packages/agent-ide/bot-plugin/mock-set/ @lihuiwen @catee @duwenhan2byte\n/frontend/packages/studio/mockset-edit-modal-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/studio/mockset-shared/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/studio/mockset-editor/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/studio/mockset-editor-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/bot-plugin/tools/ @lihuiwen @catee\n/frontend/packages/studio/stores/bot-plugin/ @lihuiwen @Hezi-crypto @catee\n/frontend/packages/studio/plugin-shared/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/plugin-modal-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/plugin-shared/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/community/component/ @DingGao-Devin @Hezi-crypto @evan-crash @duwenhan2byte\n/frontend/packages/studio/plugin-form-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/workflow/base/ @xiamidaxia @zxhfighter\n/frontend/packages/agent-ide/plugin-content-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/plugin-content/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/plugin-setting-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/plugin-setting/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/bot-plugin/plugin-risk-warning/ @catee @evan-crash\n/frontend/packages/studio/plugin-publish-ui-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/studio/plugin-tool-columns-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/studio/plugin-tool-columns/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/chat-debug-area/ @soonco @duwenhan2byte @catee @Hezi-crypto @haozhenfei @evan-crash\n/frontend/packages/agent-ide/chat-answer-action-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/chat-area-plugin-debug-common/ @Hezi-crypto @haozhenfei\n/frontend/packages/agent-ide/chat-components-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/common/chat-area/plugin-chat-background/ @Tecvan-fe\n/frontend/packages/common/chat-area/chat-area-plugin-reasoning/ @catee @Hezi-crypto\n/frontend/packages/common/chat-area/plugin-resume/ @Tecvan-fe\n/frontend/packages/common/chat-area/plugin-chat-shortcuts/ @haozhenfei @duwenhan2byte @Hezi-crypto\n/frontend/packages/workflow/sdk/ @zxhfighter @xiamidaxia\n/frontend/packages/workflow/components/ @LLLLeeJ @zxhfighter\n/frontend/packages/components/loading-button/ @catee\n/frontend/packages/components/mouse-pad-selector/ @zxhfighter\n/frontend/packages/workflow/adapter/resources/ @LLLLeeJ @JxJuly @xiamidaxia @luics @zxhfighter @stream-pipe\n/frontend/packages/common/chat-area/chat-workflow-render/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/onboarding-message-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/plugin-area-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/prompt-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/prompt/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/workflow/ @soonco @duwenhan2byte @catee\n/frontend/packages/agent-ide/navigate/ @soonco @duwenhan2byte @catee\n/frontend/packages/agent-ide/workflow-as-agent-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/workflow-item/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/workflow-card-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/workflow-modal/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/memory-tool-pane-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/skills-pane-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/layout-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/layout/ @soonco @duwenhan2byte @catee\n/frontend/packages/agent-ide/chat-area-provider-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/agent-ide/chat-area-provider/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/studio/entity-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/foundation/account-ui-adapter/ @duwenhan2byte @evan-crash\n/frontend/packages/foundation/account-ui-base/ @evan-crash @duwenhan2byte\n/frontend/packages/foundation/foundation-sdk/ @evan-crash @duwenhan2byte\n/frontend/packages/foundation/global/ @evan-crash @duwenhan2byte\n/frontend/packages/studio/workspace/project-entity-adapter/ @Hezi-crypto @catee @duwenhan2byte\n/frontend/packages/studio/workspace/project-entity-base/ @Hezi-crypto @catee @duwenhan2byte\n/frontend/packages/foundation/global-adapter/ @evan-crash @duwenhan2byte\n/frontend/packages/foundation/browser-upgrade-banner/ @evan-crash @duwenhan2byte\n/frontend/packages/foundation/space-ui-adapter/ @evan-crash @duwenhan2byte\n/frontend/packages/foundation/space-ui-base/ @evan-crash @duwenhan2byte\n/frontend/packages/common/auth/ @evan-crash @duwenhan2byte\n/frontend/packages/common/auth-adapter/ @evan-crash @duwenhan2byte\n/frontend/packages/project-ide/main/ @dragooncjw @JxJuly @xiamidaxia @catee @lihuiwen\n/frontend/packages/components/resource-tree/ @dragooncjw @xiamidaxia @JxJuly\n/frontend/packages/common/flowgram-adapter/fixed-layout-editor/ @zxhfighter @xiamidaxia @dragooncjw\n/frontend/packages/project-ide/biz-components/ @zxhfighter @xiamidaxia\n/frontend/packages/project-ide/framework/ @dragooncjw @JxJuly @xiamidaxia\n/frontend/packages/project-ide/base-adapter/ @dragooncjw @xiamidaxia\n/frontend/packages/project-ide/base-interface/ @dragooncjw @xiamidaxia\n/frontend/packages/project-ide/client/ @dragooncjw @JxJuly @xiamidaxia\n/frontend/packages/project-ide/core/ @dragooncjw @JxJuly @xiamidaxia\n/frontend/packages/project-ide/view/ @dragooncjw @JxJuly @xiamidaxia\n/frontend/packages/project-ide/biz-data/ @haozhenfei @lihuiwen @catee @soonco\n/frontend/packages/data/knowledge/knowledge-ide-adapter/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/data/memory/variables/ @haozhenfei @catee @Hezi-crypto\n/frontend/packages/project-ide/biz-plugin/ @xiamidaxia @lihuiwen @catee\n/frontend/packages/project-ide/biz-plugin-registry-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei\n/frontend/packages/project-ide/biz-workflow/ @dragooncjw @JxJuly @xiamidaxia\n/frontend/packages/studio/open-platform/open-chat/ @soonco @Hezi-crypto @DingGao-Devin\n/frontend/packages/workflow/playground/ @LLLLeeJ @xiamidaxia @luics @zxhfighter\n/frontend/packages/arch/load-remote-worker/ @Tecvan-fe\n/frontend/packages/devops/mockset-manage/ @soonco @evan-crash @catee\n/frontend/packages/devops/testset-manage/ @mocayo @JxJuly\n/frontend/packages/workflow/adapter/base/ @LLLLeeJ @JxJuly @xiamidaxia @luics @zxhfighter @stream-pipe\n/frontend/packages/workflow/adapter/code-editor/ @LLLLeeJ @JxJuly @xiamidaxia @luics @zxhfighter @stream-pipe\n/frontend/packages/workflow/fabric-canvas/ @xiamidaxia @zxhfighter\n/frontend/packages/workflow/feature-encapsulate/ @zxhfighter\n/frontend/packages/workflow/nodes/ @xiamidaxia @zxhfighter\n/frontend/packages/workflow/setters/ @Tecvan-fe\n/frontend/packages/workflow/variable/ @zxhfighter @LLLLeeJ @xiamidaxia\n/frontend/packages/workflow/render/ @dragooncjw @xiamidaxia\n/frontend/packages/workflow/history/ @xiamidaxia @zxhfighter\n/frontend/packages/workflow/adapter/nodes/ @LLLLeeJ @JxJuly @xiamidaxia @luics @zxhfighter @stream-pipe\n/frontend/packages/workflow/test-run/ @JxJuly @xiamidaxia @luics @zxhfighter @dragooncjw\n/frontend/packages/workflow/test-run-next/main/ @JxJuly @LLLLeeJ @xiamidaxia @zxhfighter\n/frontend/packages/workflow/test-run-next/form/ @JxJuly @LLLLeeJ @xiamidaxia @zxhfighter\n/frontend/packages/workflow/test-run-next/shared/ @JxJuly @LLLLeeJ @xiamidaxia @zxhfighter\n/frontend/packages/workflow/test-run-next/trace/ @JxJuly @LLLLeeJ @xiamidaxia @zxhfighter\n/frontend/packages/project-ide/ui-adapter/ @dragooncjw @xiamidaxia\n/frontend/packages/studio/workspace/project-publish/ @catee @lihuiwen\n/frontend/packages/studio/workspace/entry-adapter/ @duwenhan2byte @evan-crash\n/frontend/packages/studio/workspace/entry-base/ @duwenhan2byte @catee @evan-crash\n/frontend/packages/workflow/adapter/playground/ @LLLLeeJ @JxJuly @xiamidaxia @luics @zxhfighter @stream-pipe\n/frontend/infra/plugins/import-watch-loader/ @Tecvan-fe\n/frontend/config/rsbuild-config/ @Tecvan-fe\n/frontend/packages/community/explore/ @evan-crash @duwenhan2byte\n/frontend/common/_templates/node-core/ @Tecvan-fe\n/frontend/common/_templates/rspack-web/ @Tecvan-fe\n\n\n/backend/ @fanlv @junwen-lee @liuyunchao-1998 @lvxinyu-1117 @hi-pender @luohq-bytedance @shentongmartin @mrh997 @meguminnnnnnnnn @N3kox @zhuangjie1125\n/docker/ @fanlv @junwen-lee @liuyunchao-1998 @lvxinyu-1117 @hi-pender @luohq-bytedance @shentongmartin @mrh997 @meguminnnnnnnnn @N3kox @zhuangjie1125\n/helm/ @fanlv @junwen-lee @liuyunchao-1998 @lvxinyu-1117 @hi-pender @luohq-bytedance @shentongmartin @mrh997 @meguminnnnnnnnn @N3kox @zhuangjie1125\n/idl/ @fanlv @junwen-lee @liuyunchao-1998 @lvxinyu-1117 @hi-pender @luohq-bytedance @shentongmartin @mrh997 @meguminnnnnnnnn @N3kox @zhuangjie1125\n\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the bug**\n\nA clear and concise description of what the bug is.\n\n**To Reproduce**\n\nSteps to reproduce the behavior:\n1. Go to '...'\n2. Click on '....'\n3. Scroll down to '....'\n4. See error\n\n**Expected behavior**\n\nA clear and concise description of what you expected to happen.\n\n**Screenshots**\n\nIf applicable, add screenshots to help explain your problem.\n\n**Version:**\n\nPlease provide the version of {project_name} you are using.\n\n**Environment:**\n\nThe output of `go env`.\n\n**Additional context**\n\nAdd any other context about the problem here.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your feature request related to a problem? Please describe.**\n\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\n\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\n\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\n\nAdd any other context or screenshots about the feature request here.\n"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "content": "#### What type of PR is this?\n<!--\nAdd one of the following kinds:\n\nbuild: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)\nci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)\ndocs: Documentation only changes\nfeat: A new feature\noptimize: A new optimization\nfix: A bug fix\nperf: A code change that improves performance\nrefactor: A code change that neither fixes a bug nor adds a feature\nstyle: Changes that do not affect the meaning of the code (white space, formatting, missing semi-colons, etc)\ntest: Adding missing tests or correcting existing tests\nchore: Changes to the build process or auxiliary tools and libraries such as documentation generation\n-->\n\n#### Check the PR title.\n<!--\nThe description of the title will be attached in Release Notes, \nso please describe it from user-oriented, what this PR does / why we need it.\nPlease check your PR title with the below requirements:\n-->\n- [ ] This PR title match the format: \\<type\\>(optional scope): \\<description\\>\n- [ ] The description of this PR title is user-oriented and clear enough for others to understand.\n- [ ] Add documentation if the current PR requires user awareness at the usage level.\n\n\n#### (Optional) Translate the PR title into Chinese.\n\n\n#### (Optional) More detailed description for this PR(en: English/zh: Chinese).\n<!--\nProvide more detailed info for review(e.g., it's recommended to provide perf data if this is a perf type PR).\n-->\nen:\nzh(optional): \n\n\n#### (Optional) Which issue(s) this PR fixes:\n<!--\nAutomatically closes linked issue when PR is merged.\nEg: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.\n-->\n"
  },
  {
    "path": ".github/scripts/check-file-size.sh",
    "content": "#!/bin/bash\n#\n# Copyright 2025 coze-dev Authors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n\n\n# Set default value\nTARGET_BRANCH=${targetBranch}\nCI_MODE=${CI:-false}\n\n# Specify the pattern you want to exclude, using *space* as the separator\nEXCLUDE_PATTERNS=(\n  '**/pnpm-lock.yaml'\n  'packages/arch/bot-api/src/auto-generate/**'\n  'apps/bot-op/src/services/bam-auto-generate/**'\n  'apps/prompt-platform/src/services/auto-generate/**'\n  \"**/lib/**\"\n  \"**/.*/**\"\n  '**/__tests__/**'\n  '**/__test__/**'\n  \"**/__mocks__/**\"\n  \"**/__mock__/**\"\n  \"**/*.test.*/**\"\n  \"**/*.spec.*/**\"\n  \"**/__snapshots__/**\"\n  \"**/*.snap\"\n  '**/e2e/**'\n  'common/changes/**'\n  'apps/fornax/**',\n  \"packages/arch/semi-theme-hand01\",\n  \"frontend/packages/arch/resources/studio-i18n-resource/src/**\"\n)\n\nfor pattern in \"${EXCLUDE_PATTERNS[@]}\"; do\n  EXCLUDE_STRING+=\":(exclude)$pattern \"\ndone\n\nif [ \"$CI_MODE\" = true ]; then\n  files=$(git diff --name-only --diff-filter=AM \"origin/$TARGET_BRANCH...\" $EXCLUDE_STRING)\nelse\n  files=$(git diff --name-only --diff-filter=AM --cached $EXCLUDE_STRING)\nfi\n\n# The volume limit is 512KB.\nsize_limit=$((512))\nlarge_files_info=\"\"\n\nIFS=$'\\n' # Handling the existence of spaces in the file name\nfor file in $files; do\n  file_size=$(wc -c <\"$file\" 2>/dev/null)\n  if [ $? -ne 0 ]; then\n    echo \"错误: 无法获取文件 '$file' 的大小\"\n    continue\n  fi\n  file_size_kb=$((file_size / 1024))\n  echo \"$file file size is $file_size_kb KB\"\n  if [ \"$file_size_kb\" -gt \"$size_limit\" ]; then\n    large_files_info+=\"- \\`$file\\` ($file_size_kb KB)\\n\"\n  fi\ndone\nunset IFS\n\noutput_conclusion() {\n  local conclusion=\"$1\"\n  echo \"$conclusion\" >check-file-size.log\n  echo \"::update-check-run::check-file-size.log\"\n}\n\nif [ -n \"$large_files_info\" ]; then\n  if [ \"$CI_MODE\" = true ]; then\n    CONCLUSION=\"{\n      \\\"name\\\": \\\"文件体积\\\",\n      \\\"conclusion\\\": \\\"failed\\\",\n      \\\"output\\\": {\n        \\\"summary\\\": \\\"<h1>错误: 文件体积过大</h1> <br />  以下文件体积超过限制 (${size_limit}KB): \\\\n \\\\n $large_files_info  \\\\n \\\\n <br /> \\\"\n      }\n    }\"\n    output_conclusion \"$CONCLUSION\"\n  else\n    echo \"错误: 以下文件体积超过限制 (${size_limit}KB):\"\n    echo -e \"$large_files_info\"\n    exit 1\n  fi\nelse\n  if [ \"$CI_MODE\" = true ]; then\n    CONCLUSION=\"{\n      \\\"name\\\": \\\"文件体积\\\",\n      \\\"conclusion\\\": \\\"success\\\",\n      \\\"output\\\": {\n        \\\"summary\\\": \\\"GOOD\\\"\n      }\n    }\"\n    output_conclusion \"$CONCLUSION\"\n  fi\nfi\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: CI\non:\n  pull_request:\n    branches: ['main']\n    paths:\n      - 'github/**'\n      - 'idl/**'\n      - 'frontend/**'\n      - 'common/**'\n      - 'rush.json'\n  # Allows you to run this workflow manually from the Actions tab\n  workflow_dispatch:\n\npermissions:\n  contents: read\n  actions: read\n\njobs:\n  setup:\n    strategy:\n      matrix:\n        include:\n          - NodeVersion: 22.16.0\n            NodeVersionDisplayName: 22\n            OS: ubuntu-latest\n    name: Setup and Install Dependencies\n    runs-on: ${{ matrix.OS }}\n    outputs:\n      cache_file: ${{ steps.process-files.outputs.cache_file }}\n      matrix_node_version: ${{ matrix.NodeVersion }}\n      matrix_os: ${{ matrix.OS }}\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          fetch-depth: 1\n\n      - name: Get changed files\n        id: changed-files\n        uses: tj-actions/changed-files@v45\n\n      - name: Process changed files\n        id: process-files\n        run: |\n          # Get all change files\n          all_files=\"${{ steps.changed-files.outputs.all_changed_files }}\"\n\n          # Filter out files in the common/changes directory\n          filtered_files=\"\"\n          for file in $all_files; do\n            if [[ ! \"$file\" =~ ^common/changes/.* ]]; then\n              if [ -z \"$filtered_files\" ]; then\n                filtered_files=\"$file\"\n              else\n                filtered_files=\"$filtered_files $file\"\n              fi\n            fi\n          done\n\n          # Create cached files in JSON format\n          echo \"[$( echo \"$filtered_files\" | sed 's/ /\", \"/g' | sed 's/^/\"/' | sed 's/$/\"/' )]\" > changed-files-cache.json\n\n          # Output cache file path for subsequent steps\n          echo \"cache_file=changed-files-cache.json\" >> $GITHUB_OUTPUT\n\n          echo \"过滤前文件数量: $(echo $all_files | wc -w)\"\n          echo \"过滤后文件数量: $(echo $filtered_files | wc -w)\"\n          echo \"已生成缓存文件: changed-files-cache.json\"\n\n      - name: Config Git User\n        # should be turn to ci user\n        run: |\n          git config --local user.name \"flow_bot\"\n          git config --local user.email \"flow_bot@bytedance.com\"\n\n      - uses: actions/setup-node@v3\n        with:\n          node-version: ${{ matrix.NodeVersion }}\n\n      - name: Upload changed files cache\n        uses: actions/upload-artifact@v4\n        with:\n          name: changed-files-cache\n          path: changed-files-cache.json\n          retention-days: 1\n\n  build:\n    needs: setup\n    runs-on: ${{ needs.setup.outputs.matrix_os }}\n    name: Increment Build\n    env:\n      BUILD_BRANCH: ${{ github.head_ref || github.ref_name }}\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          fetch-depth: 1\n\n      - uses: actions/setup-node@v3\n        with:\n          node-version: ${{ needs.setup.outputs.matrix_node_version }}\n\n      - name: Cache\n        uses: actions/cache@v4\n        with:\n          path: |\n            common/temp/pnpm-local\n            common/temp/pnpm-store\n            common/temp/install-run\n          key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }}\n          restore-keys: |\n            ${{ runner.os }}-rush-store-main\n            ${{ runner.os }}-rush-store\n\n      - name: Download changed files cache\n        uses: actions/download-artifact@v4\n        with:\n          name: changed-files-cache\n\n      - name: Install Dependencies\n        run: |\n          sudo apt-get update\n          sudo apt-get install -y libasound2-dev\n          node common/scripts/install-run-rush.js install --to tag:core\n          node common/scripts/install-run-rush.js update-autoinstaller --name plugins\n          node common/scripts/install-run-rush.js increment --action install -p \"${{ needs.setup.outputs.cache_file }}\"\n\n      - name: Increment Build\n        run: node common/scripts/install-run-rush.js increment --action build -p \"${{ needs.setup.outputs.cache_file }}\"\n\n  test:\n    needs: setup\n    runs-on: ${{ needs.setup.outputs.matrix_os }}\n    name: Increment Test Coverage\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          fetch-depth: 1\n\n      - uses: actions/setup-node@v3\n        with:\n          node-version: ${{ needs.setup.outputs.matrix_node_version }}\n\n      - name: Cache\n        uses: actions/cache@v4\n        with:\n          path: |\n            common/temp/pnpm-local\n            common/temp/pnpm-store\n            common/temp/install-run\n          key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }}\n          restore-keys: |\n            ${{ runner.os }}-rush-store-main\n            ${{ runner.os }}-rush-store\n\n      - name: Download changed files cache\n        uses: actions/download-artifact@v4\n        with:\n          name: changed-files-cache\n\n      - name: Install Dependencies\n        run: |\n          sudo apt-get update\n          sudo apt-get install -y libasound2-dev\n          node common/scripts/install-run-rush.js install --to tag:core\n          node common/scripts/install-run-rush.js update-autoinstaller --name plugins\n          node common/scripts/install-run-rush.js increment --action install -p \"${{ needs.setup.outputs.cache_file }}\"\n\n      - name: Increment Test:cov\n        run: node common/scripts/install-run-rush.js increment --action test:cov -p \"${{ needs.setup.outputs.cache_file }}\"\n\n      # TODO: should resolve later\n      # - name: Upload coverage reports\n      #   uses: codecov/codecov-action@v4\n      #   with:\n      #     token: ${{ secrets.CODECOV_TOKEN }}\n      #     fail_ci_if_error: true\n      #     verbose: true\n\n  lint:\n    needs: setup\n    runs-on: ${{ needs.setup.outputs.matrix_os }}\n    name: Increment Lint\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          fetch-depth: 1\n\n      - uses: actions/setup-node@v3\n        with:\n          node-version: ${{ needs.setup.outputs.matrix_node_version }}\n\n      - name: Cache\n        uses: actions/cache@v4\n        with:\n          path: |\n            common/temp/pnpm-local\n            common/temp/pnpm-store\n            common/temp/install-run\n          key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }}\n          restore-keys: |\n            ${{ runner.os }}-rush-store-main\n            ${{ runner.os }}-rush-store\n\n      - name: Download changed files cache\n        uses: actions/download-artifact@v4\n        with:\n          name: changed-files-cache\n\n      - name: Install Dependencies\n        run: |\n          sudo apt-get update\n          sudo apt-get install -y libasound2-dev\n          node common/scripts/install-run-rush.js install --to tag:core\n          node common/scripts/install-run-rush.js update-autoinstaller --name plugins\n          node common/scripts/install-run-rush.js increment --action install -p \"${{ needs.setup.outputs.cache_file }}\"\n\n      - name: Increment Lint\n        run: node common/scripts/install-run-rush.js increment --action lint -p \"${{ needs.setup.outputs.cache_file }}\"\n\n  ts-check:\n    needs: setup\n    runs-on: ${{ needs.setup.outputs.matrix_os }}\n    name: Increment TS Check\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          fetch-depth: 1\n\n      - uses: actions/setup-node@v3\n        with:\n          node-version: ${{ needs.setup.outputs.matrix_node_version }}\n\n      - name: Cache\n        uses: actions/cache@v4\n        with:\n          path: |\n            common/temp/pnpm-local\n            common/temp/pnpm-store\n            common/temp/install-run\n          key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }}\n          restore-keys: |\n            ${{ runner.os }}-rush-store-main\n            ${{ runner.os }}-rush-store\n\n      - name: Download changed files cache\n        uses: actions/download-artifact@v4\n        with:\n          name: changed-files-cache\n\n      - name: Install Dependencies\n        run: |\n          sudo apt-get update\n          sudo apt-get install -y libasound2-dev\n          node common/scripts/install-run-rush.js install --to tag:core\n          node common/scripts/install-run-rush.js update-autoinstaller --name plugins\n          node common/scripts/install-run-rush.js increment --action install -p \"${{ needs.setup.outputs.cache_file }}\"\n\n      - name: Increment TS Check\n        run: node common/scripts/install-run-rush.js increment --action ts-check -p \"${{ needs.setup.outputs.cache_file }}\"\n\n  package-audit:\n    needs: setup\n    runs-on: ${{ needs.setup.outputs.matrix_os }}\n    name: Increment Package Audit\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          fetch-depth: 1\n\n      - uses: actions/setup-node@v3\n        with:\n          node-version: ${{ needs.setup.outputs.matrix_node_version }}\n\n      - name: Cache\n        uses: actions/cache@v4\n        with:\n          path: |\n            common/temp/pnpm-local\n            common/temp/pnpm-store\n            common/temp/install-run\n          key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }}\n          restore-keys: |\n            ${{ runner.os }}-rush-store-main\n            ${{ runner.os }}-rush-store\n\n      - name: Download changed files cache\n        uses: actions/download-artifact@v4\n        with:\n          name: changed-files-cache\n\n      - name: Install Dependencies\n        run: |\n          sudo apt-get update\n          sudo apt-get install -y libasound2-dev\n          node common/scripts/install-run-rush.js install --to tag:core\n          node common/scripts/install-run-rush.js update-autoinstaller --name plugins\n          node common/scripts/install-run-rush.js increment --action install -p \"${{ needs.setup.outputs.cache_file }}\"\n\n      - name: Increment Package Audit\n        run: node common/scripts/install-run-rush.js increment --action package-audit -p \"${{ needs.setup.outputs.cache_file }}\"\n"
  },
  {
    "path": ".github/workflows/ci@backend.yml",
    "content": "name: Backend Tests\n\non:\n  pull_request:\n    paths:\n      - 'backend/**'\n      - 'docker/atlas/**'\n      - '.github/workflows/ci@backend.yml'\n  push:\n    branches:\n      - main\n    paths:\n      - 'backend/**'\n      - 'docker/atlas/**'\n      - '.github/workflows/ci@backend.yml'\n  # Allows you to run this workflow manually from the Actions tab\n  workflow_dispatch:\n\n\nenv:\n  DEFAULT_GO_VERSION: \"1.24\"\n\njobs:\n  backend-unit-test:\n    name: backend-unit-test\n    runs-on: ubuntu-latest\n    permissions:\n      contents: write\n      pull-requests: write\n      repository-projects: write\n    env:\n      COVERAGE_FILE: coverage.out\n      BREAKDOWN_FILE: main.breakdown\n\n    steps:\n      - uses: actions/checkout@v4\n      - name: Set up Go\n        uses: actions/setup-go@v5\n        with:\n          go-version: ${{ env.DEFAULT_GO_VERSION }}\n\n      # - name: Shutdown Ubuntu MySQL\n      #   run: service mysql stop\n\n      - name: Set Up MySQL\n        uses: mirromutth/mysql-action@v1.1\n        with:\n          host port: 3306\n          container port: 3306\n          character set server: 'utf8mb4'\n          collation server: 'utf8mb4_general_ci'\n          mysql version: '8.4.5'\n          mysql database: 'opencoze'\n          mysql root password: 'root'\n\n      - name: Verify MySQL Startup\n        run: |\n          echo \"Waiting for MySQL to be ready...\"\n          for i in {1..60}; do\n            if cat /proc/net/tcp | grep 0CEA; then\n              echo \"MySQL port 3306 is listening!\"\n              break\n            fi\n            echo \"Waiting for MySQL port... ($i/60)\"\n            sleep 1\n          done\n          echo \"Final verification: MySQL port 3306 is accessible\"\n\n      - name: Install MySQL Client\n        run: sudo apt-get update && sudo apt-get install -y mysql-client\n\n      - name: Initialize Database\n        uses: nick-fields/retry@v3\n        with:\n          timeout_minutes: 10\n          max_attempts: 20\n          command: mysql -h 127.0.0.1 -P 3306 -u root -proot opencoze < docker/volumes/mysql/schema.sql\n\n      - name: Run Go Test\n        run: |\n          modules=`find . -name \"go.mod\" -exec dirname {} \\;`\n          echo $modules\n          list=\"\"\n          coverpkg=\"\"\n          if [[ ! -f \"go.work\" ]];then go work init;fi\n          for module in $modules; do go work use $module; list=$module\"/... \"$list; coverpkg=$module\"/...,\"$coverpkg; done\n          go work sync\n          go test -race -v -coverprofile=${{ env.COVERAGE_FILE }} -gcflags=\"all=-l -N\" -coverpkg=$coverpkg $list\n\n      - name: Upload coverage to Codecov\n        uses: codecov/codecov-action@v5\n        with:\n          name: coze-studio-backend\n          env_vars: GOLANG,Coze-Studio,BACKEND\n          fail_ci_if_error: 'false'\n          files: ${{ env.COVERAGE_FILE }}\n          token: ${{ secrets.CODECOV_TOKEN }}\n\n      - name: Shutdown MySQL\n        if: always()\n        continue-on-error: true\n        run: docker rm -f $(docker ps -q --filter \"ancestor=mysql:8.4.5\")\n  benchmark-test:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: write\n      pull-requests: write\n      repository-projects: write\n    steps:\n      - uses: actions/checkout@v4\n      - name: Set up Go\n        uses: actions/setup-go@v5\n        with:\n          go-version: ${{ env.DEFAULT_GO_VERSION }}\n\n      - name: Run Go Benchmark\n        run: |\n          modules=`find . -name \"go.mod\" -exec dirname {} \\;`\n          echo $modules\n          list=\"\"\n          coverpkg=\"\"\n          if [[ ! -f \"go.work\" ]];then go work init;fi\n          for module in $modules; do go work use $module; list=$module\"/... \"$list; coverpkg=$module\"/...,\"$coverpkg; done\n          go work sync\n          go test -race -v -bench=. -benchmem -run=none -gcflags=\"all=-l -N\" $list\n"
  },
  {
    "path": ".github/workflows/ci@main.yml",
    "content": "# should be optimize as increment build & test\nname: CI@main\non:\n  push:\n    # test only\n    branches: ['main',\"chore/setup-ci\"]\n    paths:\n      - 'github/**'\n      - 'idl/**'\n      - 'frontend/**'\n      - 'common/**'\n      - 'rush.json'\n  # Allows you to run this workflow manually from the Actions tab\n  workflow_dispatch:\n\npermissions:\n  contents: read\n\njobs:\n  build:\n    strategy:\n      matrix:\n        include:\n          - NodeVersion: 22.16.0\n            NodeVersionDisplayName: 22\n            OS: ubuntu-latest\n    name: Node.js v${{ matrix.NodeVersionDisplayName }} (${{ matrix.OS }})\n    runs-on: ${{ matrix.OS }}\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          fetch-depth: 1\n\n      - name: Config Git User\n        # should be turn to ci user\n        run: |\n          git config --local user.name \"flow_bot\"\n          git config --local user.email \"flow_bot@bytedance.com\"\n\n      - uses: actions/setup-node@v3\n        with:\n          node-version: ${{ matrix.NodeVersion }}\n\n      - name: Cache\n        uses: actions/cache@v4\n        with:\n          path: |\n            common/temp/pnpm-local\n            common/temp/pnpm-store\n            common/temp/install-run\n          key: ${{ runner.os }}-rush-store-main\n          restore-keys: |\n            ${{ runner.os }}-rush-store-main\n            ${{ runner.os }}-rush-store\n\n      - name: Install Dependencies\n        run: |\n          sudo apt-get update\n          sudo apt-get install -y libasound2-dev\n          node common/scripts/install-run-rush.js install\n\n      - name: Build all\n        run: node common/scripts/install-run-rush.js build --verbose\n\n      - name: Test:cov all\n        run: node common/scripts/install-run-rush.js test:cov --verbose\n\n      - name: Upload coverage reports\n        uses: codecov/codecov-action@v4\n        with:\n          token: ${{ secrets.CODECOV_TOKEN }}\n          fail_ci_if_error: true\n          verbose: true\n\n      - name: Lint all\n        run: node common/scripts/install-run-rush.js lint --verbose\n"
  },
  {
    "path": ".github/workflows/claude.yml",
    "content": "name: Claude PR Assistant\n\non:\n  issue_comment:\n    types: [created]\n  pull_request_review_comment:\n    types: [created]\n  issues:\n    types: [opened, assigned]\n  pull_request_review:\n    types: [submitted]\n\njobs:\n  claude-code-action:\n    if: |\n      (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||\n      (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||\n      (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||\n      (github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      pull-requests: read\n      issues: read\n      id-token: write\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v4\n        with:\n          fetch-depth: 1\n\n      - name: Run Claude PR Action\n        uses: anthropics/claude-code-action@beta\n        with:\n          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}\n          # Or use OAuth token instead:\n          # claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}\n          timeout_minutes: '60'\n          # mode: tag  # Default: responds to @claude mentions\n          # Optional: Restrict network access to specific domains only\n          # experimental_allowed_domains: |\n          #   .anthropic.com\n          #   .github.com\n          #   api.github.com\n          #   .githubusercontent.com\n          #   bun.sh\n          #   registry.npmjs.org\n          #   .blob.core.windows.net\n"
  },
  {
    "path": ".github/workflows/common-pr-checks.yml",
    "content": "name: PR Common Checks\non:\n  pull_request:\n    paths:\n      - 'github/**'\n      - 'idl/**'\n      - 'frontend/**'\n      - 'common/**'\n      - 'rush.json'\n    types: [opened, edited, synchronize, reopened]\n\npermissions:\n  contents: read\n\njobs:\n  common-checks:\n    name: PR Common Checks\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          fetch-depth: 1\n\n      - name: Config Git User\n        run: |\n          git config --local user.name \"flow_bot\"\n          git config --local user.email \"flow_bot@bytedance.com\"\n\n      - uses: actions/setup-node@v3\n        with:\n          node-version: 22.16.0\n\n      - name: Install Dependencies\n        run: node common/scripts/install-run-rush.js install\n\n      # PR Title Format Check\n      - name: Check PR Title Format\n        if: ${{ !contains(github.event.pull_request.title, 'WIP') && !contains(github.event.pull_request.title, 'wip') }}\n        env:\n          PR_TITLE: ${{ github.event.pull_request.title }}\n        run: |\n          node common/scripts/install-run-rush.js update-autoinstaller --name rush-commitlint && \\\n          pushd common/autoinstallers/rush-commitlint && \\\n          echo \"$PR_TITLE\" | npx commitlint --config commitlint.config.js && \\\n          popd\n\n      # Add more common checks here\n      # For example: file size checks, specific file format validations, etc.\n"
  },
  {
    "path": ".github/workflows/idl.yaml",
    "content": "name: Thrift Syntax Validation\n\non:\n  push:\n    branches: ['main']\n    paths:\n      - 'idl/**'\n      - '.github/workflows/idl.yaml'\n  pull_request:\n    branches: ['main']\n    paths:\n      - 'idl/**'\n      - '.github/workflows/idl.yaml'\n\npermissions:\n  contents: read\n\njobs:\n  validate-thrift:\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n    steps:\n      - uses: actions/checkout@v4\n\n      - name: Set up Go\n        uses: actions/setup-go@v4\n        with:\n          go-version: '1.21'\n\n      - name: Install kitex tools\n        run: |\n          go install github.com/cloudwego/thriftgo@v0.4.1\n          go install github.com/cloudwego/kitex/tool/cmd/kitex@v0.13.1\n          go install github.com/cloudwego/thrift-gen-validator@v0.2.6\n\n      - name: Validate Thrift Files via kitex\n        run: |\n          # Initialize error flag\n          ERROR_FOUND=0\n\n          # Create temporary working directory\n          TEMP_DIR=$(mktemp -d)\n          echo \"Created temporary working directory: $TEMP_DIR\"\n\n          # Initialize go mod in temp directory\n          cd \"$TEMP_DIR\"\n          go mod init dummy\n\n          # Find all thrift files and validate them\n          while IFS= read -r -d '' thrift_file; do\n            echo \"Validating $thrift_file...\"\n            if ! kitex -streamx -thrift ignore_initialisms=false -module=dummy \"$thrift_file\" 2>&1; then\n              echo \"IDL gen code error in file: $thrift_file\"\n              ERROR_FOUND=1\n            fi\n          done < <(find \"$GITHUB_WORKSPACE/idl\" -name '*.thrift' -print0)\n\n          # Clean up temporary directory\n          cd \"$GITHUB_WORKSPACE\"\n          rm -rf \"$TEMP_DIR\"\n          echo \"Cleaned up temporary working directory\"\n\n          # Exit with appropriate status\n          if [ $ERROR_FOUND -eq 1 ]; then\n            echo \"Thrift validation failed. Please check the errors above.\"\n            exit 1\n          else\n            echo \"All Thrift files validated successfully!\"\n            exit 0\n          fi\n"
  },
  {
    "path": ".github/workflows/license-check.yaml",
    "content": "name: License Check\n\non:\n  push:\n    branches: ['main']\n  pull_request:\n\n  workflow_dispatch:\n\npermissions:\n  contents: read\n\njobs:\n  license-check:\n    name: License Check\n    runs-on: ubuntu-latest\n    steps:\n      - name: Setup Go\n        uses: actions/setup-go@v5\n        with:\n          go-version: 1.23\n\n      - name: Install license-eye\n        run: |\n          go install github.com/apache/skywalking-eyes/cmd/license-eye@v0.4.0\n\n      - name: Checkout\n        uses: actions/checkout@v4\n        with:\n          fetch-depth: 1\n\n      - name: License Header Check\n        run: |\n          license-eye header check -c .github/.licenserc.yaml\n\n      - name: License Dependency Check\n        run: |\n          license-eye dependency check -c .github/.licenserc.yaml\n"
  },
  {
    "path": ".github/workflows/semantic-pull-request.yaml",
    "content": "name: Semantic Pull Request\n\non:\n  pull_request:\n    types:\n      - opened\n      - reopened\n      - edited\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}\n  cancel-in-progress: true\n\npermissions:\n  pull-requests: read\n\njobs:\n  main:\n    name: Check Pull Request Title\n    runs-on: ubuntu-latest\n    steps:\n      - uses: amannn/action-semantic-pull-request@v5.5.2\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        with:\n          # see https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#type\n          types: |\n            build\n            ci\n            docs\n            feat\n            fix\n            perf\n            refactor\n            style\n            test\n            chore\n          # idl: idl\n          # infra:\n          #   - go version update, lint, database, etc\n          #   - rush update, {eslint,ts,vitest}-config, prettier etc\n          # frontend\n          # backend\n          # workflow: gh workflow\n          # prompt, evaluation, trace, model, dataset, foundation\n          scopes: |\n            idl\n            frontend\n            backend\n            infra\n            app\n            singleagent\n            memory\n            search\n            workflow\n            prompt\n            knowledge\n            plugin\n            middleware\n            model\n            database\n            foundation\n            comment\n            ci\n\n          # The pull request's title should be fulfilled the following pattern:\n          #\n          #     [<type>][<optional scope>] <description>\n          #\n          # ... where valid types and scopes can be found above; for example:\n          #\n          #     [fix][test] flaky test V1_ProxyAuthenticationTest.anonymousSocketTest\n          # headerPattern: '^\\[(\\w*?)\\](?:\\[(.*?)\\])?(?:\\s*)(.*)$'\n          headerPatternCorrespondence: type, scope, subject\n"
  },
  {
    "path": ".gitignore",
    "content": "# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\n\n.env\n.env.debug\n.env.oceanbase\n\n# Test binary, built with `go test -c`\n*.test\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n\n# Dependency directories (remove the comment below to include it)\n# vendor/\n\n# Go workspace file\ngo.work\ngo.work.sum\n\n# the result of the go build\nbackend/**/output*\noutput/*\n\n# Files generated by IDEs\n.idea/\n*.iml\n\n# Vim swap files\n*.swp\n\n# Vscode files\n.vscode/settings.json\n.vscode/launch.json\n\n/patches\n/oldimpl\n\n.DS_Store\n\nbin/*\n\ndocker/data/*\n\nbackend/static\n\nnode_modules\ncommon/temp\n.rush\n.eslintcache\n\n\nbackend/conf/model/*.yaml\nvalues-dev.yaml\n**/conf/model_ark_doubao-seed-1.6.yaml\n\n*.tsbuildinfo\n.trae/*\n"
  },
  {
    "path": ".mcp.json",
    "content": "{\n  \"mcpServers\": {\n    \"github\": {\n      \"type\": \"http\",\n      \"url\": \"https://api.githubcopilot.com/mcp/\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${GITHUB_PAT}\"\n      }\n    }\n  }\n}\n"
  },
  {
    "path": ".nvmrc",
    "content": "lts/iron\n"
  },
  {
    "path": ".prettierrc.js",
    "content": "// Do not modify this file\nmodule.exports = {\n  ...require('./frontend/config/eslint-config/.prettierrc.js'),\n};\n"
  },
  {
    "path": ".vscode/extensions.json",
    "content": "{\n  \"recommendations\": [\n    \"editorconfig.editorconfig\",\n    \"esbenp.prettier-vscode\",\n    \"streetsidesoftware.code-spell-checker\",\n    \"codezombiech.gitignore\",\n    \"aaron-bond.better-comments\",\n    \"mikestead.dotenv\",\n    \"stylelint.vscode-stylelint\"\n  ],\n  \"unwantedRecommendations\": [\n    \"nucllear.vscode-extension-auto-import\",\n    \"steoates.autoimport\"\n  ]\n}\n"
  },
  {
    "path": ".vscode/settings.template.json",
    "content": "{\n  \"eslint.nodePath\": \"frontend/config/eslint-config/node_modules/eslint\",\n  \"prettier.prettierPath\": \"frontend/config/eslint-config/node_modules/prettier\",\n  \"editor.tabSize\": 2,\n  \"editor.insertSpaces\": true,\n  \"editor.formatOnSave\": true,\n  \"editor.formatOnType\": false,\n  \"editor.formatOnPaste\": false,\n  \"editor.defaultFormatter\": \"esbenp.prettier-vscode\",\n  \"editor.codeActionsOnSave\": {\n    \"source.fixAll\": \"never\",\n    \"source.fixAll.eslint\": \"never\",\n    \"source.removeUnused\": \"never\",\n    \"source.organizeImports\": \"never\"\n    // \"source.sortImports\": \"always\"\n  },\n  \"editor.formatOnSaveMode\": \"modificationsIfAvailable\",\n  \"search.followSymlinks\": false,\n  \"search.exclude\": {\n    \"**/node_modules\": true,\n    \"**/.nyc_output\": true,\n    \"**/.rush\": true,\n    \"**/pnpm-lock.yaml\": true,\n    \"**/CHANGELOG.json\": true,\n    \"**/CHANGELOG.md\": true,\n    \"common/changes\": true,\n    \"**/output\": true,\n    \"**/lib\": true,\n    \"**/rush-logs\": true,\n    \"**/dist\": true,\n    \"**/coverage\": true,\n    \"common/temp\": true\n  },\n  \"eslint.workingDirectories\": [\n    {\n      \"mode\": \"auto\"\n    }\n  ],\n  \"files.defaultLanguage\": \"plaintext\",\n  \"files.associations\": {\n    \".code-workspace\": \"jsonc\",\n    \".babelrc\": \"json\",\n    \".eslintrc\": \"jsonc\",\n    \".eslintrc*.json\": \"jsonc\",\n    \".stylelintrc\": \"javascript\",\n    \"stylelintrc\": \"jsonc\",\n    \"*.json\": \"jsonc\",\n    \"package.json\": \"json\",\n    \".htmlhintrc\": \"jsonc\",\n    \"htmlhintrc\": \"jsonc\",\n    \"Procfile*\": \"shellscript\",\n    \"README\": \"markdown\",\n    \"**/coverage/**/*.*\": \"plaintext\",\n    \"OWNERS\": \"yaml\",\n    // Set the pnpm-lock file to plaintext to avoid parsing; otherwise, VSCode may freeze when opening the file\n    \"**/pnpm-lock.yaml\": \"plaintext\",\n    \"**/dist/**\": \"plaintext\",\n    \"**/dist_*/**\": \"plaintext\",\n    \"*.map\": \"plaintext\",\n    \"*.log\": \"plaintext\"\n  },\n  \"files.exclude\": {\n    \"**/.git\": true,\n    \"**/.svn\": true,\n    \"**/.hg\": true,\n    \"**/CVS\": true,\n    \"**/.DS_Store\": true,\n    \"**/Thumbs.db\": true,\n    \"**/.rush\": true,\n    \"**/.swc\": true,\n    \"**/rush-logs\": true\n  },\n  \"files.watcherExclude\": {\n    \"**/.git/objects/**\": true,\n    \"**/.git/subtree-cache/**\": true,\n    \"**/node_modules/*/**\": true\n  },\n  \"search.useIgnoreFiles\": true,\n  //\n  \"editor.rulers\": [80, 120],\n  \"files.eol\": \"\\n\",\n  \"files.trimTrailingWhitespace\": true,\n  \"files.insertFinalNewline\": true,\n  \"cSpell.diagnosticLevel\": \"Warning\",\n  \"eslint.probe\": [\n    \"javascript\",\n    \"javascriptreact\",\n    \"typescript\",\n    \"typescriptreact\"\n  ],\n  \"editor.semanticHighlighting.enabled\": false,\n  \"eslint.format.enable\": false,\n  \"eslint.enable\": true,\n  \"eslint.useFlatConfig\": true,\n  \"eslint.codeActionsOnSave.mode\": \"problems\",\n  \"eslint.lintTask.enable\": false,\n  \"javascript.validate.enable\": false,\n  \"typescript.tsdk\": \"frontend/config/ts-config/node_modules/typescript/lib\",\n  \"typescript.enablePromptUseWorkspaceTsdk\": true,\n  \"typescript.disableAutomaticTypeAcquisition\": true,\n  \"typescript.format.enable\": false,\n  \"typescript.referencesCodeLens.enabled\": false,\n  \"typescript.preferGoToSourceDefinition\": true,\n  \"typescript.updateImportsOnFileMove.enabled\": \"never\",\n  // tsserver log 不会自动删除，日积月累，导致磁盘空间不足，因此默认关闭\n  \"typescript.tsserver.log\": \"off\",\n  // \"typescript.tsserver.useSeparateSyntaxServer\": true,\n  \"typescript.tsserver.forceConsistentCasingInFileNames\": true,\n  \"typescript.workspaceSymbols.excludeLibrarySymbols\": true,\n  \"editor.minimap.enabled\": true,\n  \"typescript.preferences.includePackageJsonAutoImports\": \"off\",\n  \"typescript.suggest.autoImports\": true,\n  \"typescript.tsserver.maxTsServerMemory\": 16384,\n  \"typescript.tsserver.enableRegionDiagnostics\": false,\n  \"typescript.tsserver.experimental.enableProjectDiagnostics\": true,\n  \"typescript.tsserver.watchOptions\": {\n    \"fallbackPolling\": \"dynamicPriorityPolling\",\n    \"synchronousWatchDirectory\": false,\n    \"watchDirectory\": \"useFsEvents\",\n    \"watchFile\": \"useFsEventsOnParentDirectory\",\n    \"excludeDirectories\": [\n      \"/**/node_modules\",\n      \"/**/dist\",\n      \"/**/lib\",\n      \"/**/coverage\",\n      \"**/temp\"\n    ],\n    \"excludeLibrarySymbols\": true,\n    \"excludeFiles\": [\n      \"/**/node_modules/**\",\n      \"/**/dist/**\",\n      \"/**/lib/**\",\n      \"/**/coverage/**\",\n      \"**/temp/**\"\n    ]\n  },\n  \"css.validate\": false,\n  \"scss.validate\": false,\n  \"less.validate\": false,\n  \"stylelint.enable\": true,\n  \"stylelint.validate\": [\"css\", \"scss\", \"less\"],\n  \"stylelint.stylelintPath\": \"frontend/config/stylelint-config/node_modules/stylelint\",\n  \"emmet.triggerExpansionOnTab\": true,\n  \"[typescript]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[yaml]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[css]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[html]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[javascript]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[javascriptreact]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[json]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[jsonc]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[less]\": {\n    \"editor.defaultFormatter\": \"stylelint.vscode-stylelint\"\n  },\n  \"[scss]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[typescriptreact]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[ignore]\": {\n    \"editor.defaultFormatter\": \"foxundermoon.shell-format\"\n  },\n  \"[shellscript]\": {\n    \"editor.defaultFormatter\": \"foxundermoon.shell-format\"\n  },\n  \"[dotenv]\": {\n    \"editor.defaultFormatter\": \"foxundermoon.shell-format\"\n  },\n  \"[svg]\": {\n    \"editor.defaultFormatter\": \"jock.svg\"\n  },\n  \"svg.preview.background\": \"white\",\n  \"[xml]\": {\n    \"editor.defaultFormatter\": \"mblode.pretty-formatter\"\n  },\n  \"[sql]\": {\n    \"editor.defaultFormatter\": \"adpyke.vscode-sql-formatter\"\n  },\n  \"git.openRepositoryInParentFolders\": \"always\",\n  \"references.preferredLocation\": \"view\"\n}\n"
  },
  {
    "path": "AUTHORS",
    "content": "# Below is a list of people and organizations that have contributed\n# to the Coze Studio project. Names should be added to the list like so:\n#\n#   Name/Organization <email address>\n#\n# Anyone who has contributed to the Coze Studio project in any way (not\n# limited to submitting PRs) is welcome to submit a PR to add their\n# name to this file.\n#\n# Thanks to everyone for your contributions!\n\nByteDance Ltd. and/or its Affiliates\n\nluohuaqing.2018 <luohuaqing.2018@bytedance.com>\nlipandeng <lipandeng@bytedance.com>\nfanlv <fanlv@bytedance.com>\nlijunwen.gigoo <lijunwen.gigoo@bytedance.com>\nshentong.martin <shentong.martin@bytedance.com>\nmaronghong <maronghong@bytedance.com>\nxuzhaonan <xuzhaonan@bytedance.com>\nzhuangjie <zhuangjie.1125@bytedance.com>\nliuyunchao <liuyunchao.0510@bytedance.com>\nliujian.0502 <liujian.0502@bytedance.com>\nwangdezheng <wangdezheng@bytedance.com>\nliyubei <liyubei@bytedance.com>\nxukai.luics <xukai.luics@bytedance.com>\nsunzhiyuan.evan <sunzhiyuan.evan@bytedance.com>\nyangyu.1 <yangyu.1@bytedance.com>\nhaozhenfei <haozhenfei@bytedance.com>\nzengxiaohui <zengxiaohui@bytedance.com>\ngaoyuanhan.duty <gaoyuanhan.duty@bytedance.com>\nduwenhan <duwenhan@bytedance.com>\ngaoding.devingao <gaoding.devingao@bytedance.com>\nchenjiawei.inizio <chenjiawei.inizio@bytedance.com>\nwencheng.lwc <wencheng.lwc@bytedance.com>\nfanwenjie.fe <fanwenjie.fe@bytedance.com>\nlihuiwen.123 <lihuiwen.123@bytedance.com>\nliji.leej <liji.leej@bytedance.com>\nfengzilong <fengzilong@bytedance.com>\nshanrenkai <shanrenkai@bytedance.com>\nsunkuo <sunkuo@bytedance.com>\nfanchen <fanchen@bytedance.com>\nlingyibin.jason <lingyibin.jason@bytedance.com>\nchenchen.dabaishu <chenchen.dabaishu@bytedance.com>\njiangxujin <jiangxujin@bytedance.com>\nhuyongbiao <huyongbiao@bytedance.com>\nwenming.2020 <wenming.2020@bytedance.com>\ntanjizhen <tanjizhen@bytedance.com>\n"
  },
  {
    "path": "CLAUDE.md",
    "content": "# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\nCoze Studio is an all-in-one AI agent development platform with both frontend (React + TypeScript) and backend (Go) components. The project uses a sophisticated monorepo architecture managed by Rush.js with 135+ frontend packages organized in a hierarchical dependency system.\n\n## Development Commands\n\n### Environment Setup\n```bash\n# Clone and setup\ngit clone https://github.com/coze-dev/coze-studio.git\ncd coze-studio\n\n# Install frontend dependencies\nrush update\n\n# For Docker-based development\ncd docker\ncp .env.example .env\n# Configure model settings in backend/conf/model/\ndocker compose up -d\n# Access at http://localhost:8888\n```\n\n### Development Workflow\n```bash\n# Start middleware services (MySQL, Redis, Elasticsearch, etc.)\nmake middleware\n\n# Start Go backend in development mode\nmake server\n\n# Start frontend development server\ncd frontend/apps/coze-studio\nnpm run dev\n\n# Full development environment\nmake debug\n```\n\n### Build Commands\n```bash\n# Build frontend only\nmake fe\n\n# Build Go server\nmake build_server\n\n# Build everything with Docker\nmake web\n\n# Rush monorepo commands\nrush build                    # Build all packages\nrush rebuild -o @coze-studio/app  # Build specific package\nrush test                     # Run all tests\nrush lint                     # Lint all packages\n```\n\n### Testing\n```bash\n# Run tests (Vitest-based)\nrush test\nnpm run test                  # In specific package\nnpm run test:cov             # With coverage\n\n# Backend tests\ncd backend && go test ./...\n```\n\n## Architecture Overview\n\n### Frontend Architecture\n- **Monorepo**: Rush.js with 135+ packages across 4 dependency levels\n- **Build System**: Rsbuild (Rspack-based) for fast builds\n- **UI Framework**: React 18 + TypeScript + Semi Design + Tailwind CSS\n- **State Management**: Zustand for global state\n- **Package Organization**:\n  - `arch/`: Core infrastructure (level-1)\n  - `common/`: Shared components and utilities (level-2)\n  - `agent-ide/`, `workflow/`, `studio/`: Feature domains (level-3)\n  - `apps/coze-studio`: Main application (level-4)\n\n### Backend Architecture (Go)\n- **Framework**: Hertz HTTP framework\n- **Architecture**: Domain-Driven Design (DDD) with microservices\n- **Structure**:\n  - `domain/`: Business logic and entities\n  - `application/`: Application services and use cases\n  - `api/`: HTTP handlers and routing\n  - `infra/`: Infrastructure implementations\n  - `crossdomain/`: Cross-cutting concerns\n\n### Key Architectural Patterns\n- **Adapter Pattern**: Extensive use for loose coupling between layers\n- **Interface Segregation**: Clear contracts between domains\n- **Event-Driven**: NSQ message queue for async communication\n- **API-First**: Comprehensive OpenAPI specifications\n\n## Database & Infrastructure\n\n### Docker Services Stack\n- **Database**: MySQL 8.4.5\n- **Cache**: Redis 8.0\n- **Search**: Elasticsearch 8.18.0 with SmartCN analyzer\n- **Vector DB**: Milvus v2.5.10 for embeddings\n- **Storage**: MinIO for object storage\n- **Message Queue**: NSQ (nsqlookupd, nsqd, nsqadmin)\n- **Configuration**: etcd 3.5\n\n### Database Management\n```bash\n# Sync database schema\nmake sync_db\n\n# Dump database schema\nmake dump_db\n\n# Initialize SQL data\nmake sql_init\n\n# Atlas migration management\nmake atlas-hash\n```\n\n## Key Development Patterns\n\n### Frontend Package Development\n- Each package follows consistent structure with `README.md`, `package.json`, `tsconfig.json`, `eslint.config.js`\n- Adapter pattern extensively used for decoupling (e.g., `-adapter` suffix packages)\n- Base/Core pattern for shared functionality (e.g., `-base` suffix packages)\n- Use workspace references (`workspace:*`) for internal dependencies\n\n### Backend Development\n- Follow DDD principles with clear domain boundaries\n- Use dependency injection via interfaces\n- Implement proper error handling with custom error types\n- Write comprehensive tests for domain logic\n\n### Model Configuration\nBefore deployment, configure AI models in `backend/conf/model/`:\n1. Copy template from `backend/conf/model/template/`\n2. Set `id`, `meta.conn_config.api_key`, and `meta.conn_config.model`\n3. Supported providers: OpenAI, Volcengine Ark, Claude, Gemini, Qwen, DeepSeek, Ollama\n\n## Testing Strategy\n\n### Coverage Requirements by Package Level\n- **Level 1**: 80% coverage, 90% increment\n- **Level 2**: 30% coverage, 60% increment\n- **Level 3-4**: 0% coverage (flexible)\n\n### Testing Framework\n- **Frontend**: Vitest for unit/integration tests\n- **Backend**: Go's built-in testing framework\n- **E2E**: Separate e2e subspace configuration\n\n## Common Issues & Solutions\n\n### Frontend Development\n- Use `rush update` instead of `npm install` at root level\n- Build packages in dependency order using `rush build`\n- For hot reload issues, check Rsbuild configuration in specific package\n\n### Backend Development\n- Ensure middleware services are running (`make middleware`)\n- Check database connectivity and schema sync\n- Verify model configurations are properly set\n\n### Docker Issues\n- Ensure sufficient resources (minimum 2 Core, 4GB RAM)\n- Check port conflicts (8888 for frontend, various for services)\n- Use `make clean` to reset Docker volumes if needed\n\n## IDL and Code Generation\n\nThe project uses Interface Definition Language (IDL) for API contract management:\n- IDL files in `idl/` directory (Thrift format)\n- Frontend code generation via `@coze-arch/idl2ts-*` packages\n- Backend uses generated Go structs\n\n## Plugin Development\n\nFor custom plugin development:\n- Reference templates in `backend/conf/plugin/pluginproduct/`\n- Follow OAuth schema in `backend/conf/plugin/common/oauth_schema.json`\n- Configure authentication keys for third-party services\n\n## Contributing\n\n- Use conventional commits via `rush commit`\n- Run linting with `rush lint-staged` (pre-commit hook)\n- Ensure tests pass before submitting PRs\n- Follow team-based package organization and tagging conventions"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participation in our\ncommunity a harassment-free experience for everyone, regardless of age, body\nsize, visible or invisible disability, ethnicity, sex characteristics, gender\nidentity and expression, level of experience, education, socio-economic status,\nnationality, personal appearance, race, religion, or sexual identity\nand orientation.\n\nWe pledge to act and interact in ways that contribute to an open, welcoming,\ndiverse, inclusive, and healthy community.\n\n## Our Standards\n\nExamples of behavior that contributes to a positive environment for our\ncommunity include:\n\n* Demonstrating empathy and kindness toward other people\n* Being respectful of differing opinions, viewpoints, and experiences\n* Giving and gracefully accepting constructive feedback\n* Accepting responsibility and apologizing to those affected by our mistakes,\n  and learning from the experience\n* Focusing on what is best not just for us as individuals, but for the\n  overall community\n\nExamples of unacceptable behavior include:\n\n* The use of sexualized language or imagery, and sexual attention or\n  advances of any kind\n* Trolling, insulting or derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or email\n  address, without their explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Enforcement Responsibilities\n\nCommunity leaders are responsible for clarifying and enforcing our standards of\nacceptable behavior and will take appropriate and fair corrective action in\nresponse to any behavior that they deem inappropriate, threatening, offensive,\nor harmful.\n\nCommunity leaders have the right and responsibility to remove, edit, or reject\ncomments, commits, code, wiki edits, issues, and other contributions that are\nnot aligned to this Code of Conduct, and will communicate reasons for moderation\ndecisions when appropriate.\n\n## Scope\n\nThis Code of Conduct applies within all community spaces, and also applies when\nan individual is officially representing the community in public spaces.\nExamples of representing our community include using an official e-mail address,\nposting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported to the community leaders responsible for enforcement at\nconduct@cloudwego.io.\nAll complaints will be reviewed and investigated promptly and fairly.\n\nAll community leaders are obligated to respect the privacy and security of the\nreporter of any incident.\n\n## Enforcement Guidelines\n\nCommunity leaders will follow these Community Impact Guidelines in determining\nthe consequences for any action they deem in violation of this Code of Conduct:\n\n### 1. Correction\n\n**Community Impact**: Use of inappropriate language or other behavior deemed\nunprofessional or unwelcome in the community.\n\n**Consequence**: A private, written warning from community leaders, providing\nclarity around the nature of the violation and an explanation of why the\nbehavior was inappropriate. A public apology may be requested.\n\n### 2. Warning\n\n**Community Impact**: A violation through a single incident or series\nof actions.\n\n**Consequence**: A warning with consequences for continued behavior. No\ninteraction with the people involved, including unsolicited interaction with\nthose enforcing the Code of Conduct, for a specified period of time. This\nincludes avoiding interactions in community spaces as well as external channels\nlike social media. Violating these terms may lead to a temporary or\npermanent ban.\n\n### 3. Temporary Ban\n\n**Community Impact**: A serious violation of community standards, including\nsustained inappropriate behavior.\n\n**Consequence**: A temporary ban from any sort of interaction or public\ncommunication with the community for a specified period of time. No public or\nprivate interaction with the people involved, including unsolicited interaction\nwith those enforcing the Code of Conduct, is allowed during this period.\nViolating these terms may lead to a permanent ban.\n\n### 4. Permanent Ban\n\n**Community Impact**: Demonstrating a pattern of violation of community\nstandards, including sustained inappropriate behavior,  harassment of an\nindividual, or aggression toward or disparagement of classes of individuals.\n\n**Consequence**: A permanent ban from any sort of public interaction within\nthe community.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage],\nversion 2.0, available at\nhttps://www.contributor-covenant.org/version/2/0/code_of_conduct.html.\n\nCommunity Impact Guidelines were inspired by [Mozilla's code of conduct\nenforcement ladder](https://github.com/mozilla/diversity).\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see the FAQ at\nhttps://www.contributor-covenant.org/faq. Translations are available at\nhttps://www.contributor-covenant.org/translations.\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# How to Contribute\n\n## Your First Pull Request\nWe use GitHub for our codebase. You can start by reading [How To Pull Request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests).\n\n## Branch Organization\nWe use [git-flow](https://nvie.com/posts/a-successful-git-branching-model/) as our branch organization, as known as [FDD](https://en.wikipedia.org/wiki/Feature-driven_development)\n\n## Bugs\n### 1. How to Find Known Issues\nWe are using [Github Issues](https://github.com/coze-dev/{project_name}/issues) for our public bugs. We keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new task, try to make sure your problem doesn’t already exist.\n\n### 2. Reporting New Issues\nProviding a reduced test code is a recommended way for reporting issues. Then can place in:\n- Just in issues\n- [Golang Playground](https://play.golang.org/)\n\n### 3. Security Bugs\nPlease do not report the safe disclosure of bugs to public issues. Contact us by [Support Email](mailto:opensource-studio@coze.cn)\n\n## How to Get in Touch\n- [Email](mailto:opensource-studio@coze.cn)\n\n## Submit a Pull Request\nBefore you submit your Pull Request (PR) consider the following guidelines:\n1. Search [GitHub](https://github.com/coze-dev/{project_name}/pulls) for an open or closed PR that relates to your submission. You don't want to duplicate existing efforts.\n2. Be sure that an issue describes the problem you're fixing, or documents the design for the feature you'd like to add. Discussing the design upfront helps to ensure that we're ready to accept your work.\n3. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the coze-dev {project_name} repo.\n4. In your forked repository, make your changes in a new git branch:\n    ```\n    git checkout -b my-fix-branch main\n    ```\n5. Create your patch, including appropriate test cases.\n6. Follow our [Style Guides](#code-style-guides).\n7. Commit your changes using a descriptive commit message that follows [AngularJS Git Commit Message Conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit).\n   Adherence to these conventions is necessary because release notes are automatically generated from these messages.\n8. Push your branch to GitHub:\n    ```\n    git push origin my-fix-branch\n    ```\n9. In GitHub, send a pull request to `{project_name}:main`\n\n## Contribution Prerequisites\n- Our development environment keeps up with [Go Official](https://golang.org/project/).\n- You need fully checking with lint tools before submit your pull request. [gofmt](https://golang.org/pkg/cmd/gofmt/) and [golangci-lint](https://github.com/golangci/golangci-lint)\n- You are familiar with [GitHub](https://github.com)\n- Maybe you need familiar with [Actions](https://github.com/features/actions)(our default workflow tool).\n\n## Code Style Guides\n- [Effective Go](https://golang.org/doc/effective_go)\n- [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments)\n"
  },
  {
    "path": "LICENSE-APACHE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n"
  },
  {
    "path": "Makefile",
    "content": ".PHONY: debug fe server sync_db dump_db middleware web down clean python help\n\n# 定义脚本路径\nSCRIPTS_DIR := ./scripts\nBUILD_FE_SCRIPT := $(SCRIPTS_DIR)/build_fe.sh\nBUILD_SERVER_SCRIPT := $(SCRIPTS_DIR)/setup/server.sh\nSYNC_DB_SCRIPT := $(SCRIPTS_DIR)/setup/db_migrate_apply.sh\nDUMP_DB_SCRIPT := $(SCRIPTS_DIR)/setup/db_migrate_dump.sh\nSETUP_DOCKER_SCRIPT := $(SCRIPTS_DIR)/setup/docker.sh\nSETUP_PYTHON_SCRIPT := $(SCRIPTS_DIR)/setup/python.sh\nCOMPOSE_FILE := docker/docker-compose-debug.yml\nOCEANBASE_COMPOSE_FILE := docker/docker-compose-oceanbase.yml\nOCEANBASE_DEBUG_COMPOSE_FILE := docker/docker-compose-oceanbase_debug.yml\nMYSQL_SCHEMA := ./docker/volumes/mysql/schema.sql\nMYSQL_INIT_SQL := ./docker/volumes/mysql/sql_init.sql\nENV_FILE := ./docker/.env.debug\nWEB_ENV_FILE := ./docker/.env\nOCEANBASE_ENV_FILE := ./docker/.env.debug\nSTATIC_DIR := ./bin/resources/static\nES_INDEX_SCHEMA := ./docker/volumes/elasticsearch/es_index_schema\nES_SETUP_SCRIPT := ./docker/volumes/elasticsearch/setup_es.sh\n\ndebug: env middleware python server\n\nenv:\n\t@if [ ! -f \"$(ENV_FILE)\" ]; then \\\n\t\techo \"Env file '$(ENV_FILE)' not found, using example env...\"; \\\n\t\tcp ./docker/.env.debug.example $(ENV_FILE); \\\n\tfi\n\nfe:\n\t@echo \"Building frontend...\"\n\t@bash $(BUILD_FE_SCRIPT)\n\nserver: env\n\t@if [ ! -d \"$(STATIC_DIR)\" ]; then \\\n\t\techo \"Static directory '$(STATIC_DIR)' not found, building frontend...\"; \\\n\t\t$(MAKE) fe; \\\n\tfi\n\t@echo \"Building and run server...\"\n\t@APP_ENV=debug bash $(BUILD_SERVER_SCRIPT) -start\n\n\nbuild_server:\n\t@echo \"Building server...\"\n\t@bash $(BUILD_SERVER_SCRIPT)\n\nsync_db: env\n\t@echo \"Syncing database...\"\n\t@docker compose -f $(COMPOSE_FILE) --env-file $(ENV_FILE) --profile mysql-setup up -d\n\ndump_db: env dump_sql_schema\n\t@echo \"Dumping database...\"\n\t@. $(ENV_FILE); \\\n\tbash $(DUMP_DB_SCRIPT)\n\nsql_init:\n\t@echo \"Init sql data...\"\n\t@docker compose -f $(COMPOSE_FILE) --env-file $(ENV_FILE) --profile mysql-setup up -d\n\nmiddleware:\n\t@echo \"Start middleware docker environment for opencoze app\"\n\t@docker compose -f $(COMPOSE_FILE) --env-file $(ENV_FILE) --profile middleware up -d --wait\n\nbuild_docker:\n\t@echo \"Build docker image\"\n\t@docker compose -f $(COMPOSE_FILE) --profile build-server build\n\nweb_env:\n\t@if [ ! -f \"$(WEB_ENV_FILE)\" ]; then \\\n\t\techo \"Env file '$(WEB_ENV_FILE)' not found, using example env...\"; \\\n\t\tcp ./docker/.env.example $(WEB_ENV_FILE); \\\n\tfi\n\nweb: web_env\n\t@echo \"Start web server in docker\"\n\t@docker compose -f docker/docker-compose.yml --env-file $(WEB_ENV_FILE) up -d\n\ndown_web:\n\t@echo \"Stop web server in docker\"\n\t@docker compose -f docker/docker-compose.yml --env-file $(WEB_ENV_FILE) down\n\ndown: env\n\t@echo \"Stop all docker containers\"\n\t@docker compose -f $(COMPOSE_FILE) --profile '*' down\n\nclean: down\n\t@echo \"Remove docker containers and volumes data\"\n\t@rm -rf ./docker/data\n\npython:\n\t@echo \"Setting up Python...\"\n\t@bash $(SETUP_PYTHON_SCRIPT)\n\ndump_sql_schema:\n\t@echo \"Dumping mysql schema to $(MYSQL_SCHEMA)...\"\n\t@. $(ENV_FILE); \\\n\t{ echo \"SET NAMES utf8mb4;\\nCREATE DATABASE IF NOT EXISTS opencoze COLLATE utf8mb4_unicode_ci;\"; atlas schema inspect -u $$ATLAS_URL --format \"{{ sql . }}\" --exclude \"atlas_schema_revisions,table_*\" | sed 's/CREATE TABLE/CREATE TABLE IF NOT EXISTS/g'; } > $(MYSQL_SCHEMA)\n\t\t@sed -i.bak -E 's/(\\))[[:space:]]+CHARSET utf8mb4/\\1 ENGINE=InnoDB CHARSET utf8mb4/' $(MYSQL_SCHEMA) && rm -f $(MYSQL_SCHEMA).bak\n\t\t@sed -i.bak \"s/\\\"/'/g\" $(MYSQL_SCHEMA) && rm -f $(MYSQL_SCHEMA).bak\n\t@cat $(MYSQL_INIT_SQL) >> $(MYSQL_SCHEMA)\n\t@echo \"Dumping mysql schema to helm/charts/opencoze/files/mysql ...\"\n\t@cp $(MYSQL_SCHEMA) ./helm/charts/opencoze/files/mysql/\n\natlas-hash:\n\t@echo \"Rehash atlas migration files...\"\n\t@(cd ./docker/atlas && atlas migrate hash)\n\nsetup_es_index:\n\t@echo \"Setting up Elasticsearch index...\"\n\t@. $(ENV_FILE); \\\n\tbash $(ES_SETUP_SCRIPT) --index-dir $(ES_INDEX_SCHEMA) --docker-host false --es-address \"$$ES_ADDR\"\n\noceanbase_env:\n\t@bash scripts/setup/oceanbase_env.sh debug\n\noceanbase_debug: oceanbase_env oceanbase_middleware_debug python oceanbase_server_debug\n\noceanbase_middleware_debug:\n\t@echo \"Starting OceanBase debug middleware...\"\n\t@docker compose -f $(OCEANBASE_DEBUG_COMPOSE_FILE) --env-file $(ENV_FILE) --profile middleware up -d --wait\n\noceanbase_server_debug:\n\t@if [ ! -d \"$(STATIC_DIR)\" ]; then \\\n\t\techo \"Static directory '$(STATIC_DIR)' not found, building frontend...\"; \\\n\t\t$(MAKE) fe; \\\n\tfi\n\t@echo \"Building and run OceanBase debug server...\"\n\t@APP_ENV=debug bash $(BUILD_SERVER_SCRIPT) -start\n\nhelp:\n\t@echo \"Usage: make [target]\"\n\t@echo \"\"\n\t@echo \"Targets:\"\n\t@echo \"  debug            - Start the debug environment.\"\n\t@echo \"  env              - Setup env file.\"\n\t@echo \"  fe               - Build the frontend.\"\n\t@echo \"  server           - Build and run the server binary.\"\n\t@echo \"  build_server     - Build the server binary.\"\n\t@echo \"  sync_db          - Sync opencoze_latest_schema.hcl to the database.\"\n\t@echo \"  dump_db          - Dump the database to opencoze_latest_schema.hcl and migrations files.\"\n\t@echo \"  sql_init         - Init sql data...\"\n\t@echo \"  dump_sql_schema  - Dump the database schema to sql file.\"\n\t@echo \"  middleware       - Setup middlewares docker environment, but exclude the server app.\"\n\t@echo \"  web              - Setup web docker environment, include middlewares docker.\"\n\t@echo \"  down             - Stop the docker containers.\"\n\t@echo \"  down_web         - Stop the web docker containers.\"\n\t@echo \"  clean            - Stop the docker containers and clean volumes.\"\n\t@echo \"  python           - Setup python environment.\"\n\t@echo \"  atlas-hash       - Rehash atlas migration files.\"\n\t@echo \"  setup_es_index   - Setup elasticsearch index.\"\n\t@echo \"\"\n\t@echo \"OceanBase Commands:\"\n\t@echo \"  oceanbase_env    - Setup OceanBase environment file (like 'env').\"\n\t@echo \"  oceanbase_debug  - Start OceanBase debug environment (like 'debug').\"\n\t@echo \"\"\n\t@echo \"  help             - Show this help message.\"\n"
  },
  {
    "path": "README.md",
    "content": "![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/943f576df3424fa98580c2ad18946719~tplv-goo7wpa0wc-image.image)\n\n<div align=\"center\"><p>\n<a href=\"#what-is-coze-studio\">Coze Studio</a> •\n<a href=\"#feature-list\">Feature list</a> •\n<a href=\"#quickstart\">Quickstart</a> •\n<a href=\"#developer-guide\">Developer Guide</a>\n</p>\n<p>\n  <img alt=\"License\" src=\"https://img.shields.io/badge/license-apache2.0-blue.svg\">\n  <img alt=\"Go Version\" src=\"https://img.shields.io/badge/go-%3E%3D%201.23.4-blue\">\n</p>\n\nEnglish | [中文](README.zh_CN.md)\n\n</div>\n\n## What is Coze Studio?\n\n[Coze Studio](https://www.coze.cn/home) is an all-in-one AI agent development tool. Providing the latest large models and tools, various development modes and frameworks, Coze Studio offers the most convenient AI agent development environment, from development to deployment. \n\n* **Provides all core technologies needed for AI agent development**: prompt, RAG, plugin, workflow, enabling developers to focus on creating the core value of AI.\n* **Ready to use for professional AI agent development at the lowest cost**: Coze Studio provides developers with complete app templates and build frameworks, allowing you to quickly construct various AI agents and turn creative ideas into reality.\n\nCoze Studio, derived from the \"Coze Development Platform\" which has served tens of thousands of enterprises and millions of developers, we have made its core engine completely open. It is a one-stop visual development tool for AI Agents that makes creating, debugging, and deploying AI Agents unprecedentedly simple. Through Coze Studio's visual design and build tools, developers can quickly create and debug agents, apps, and workflows using no-code or low-code approaches, enabling powerful AI app development and more customized business logic. It's an ideal choice for building low-code AI products tailored . Coze Studio aims to lower the threshold for AI agent development and application, encouraging community co-construction and sharing for deeper exploration and practice in the AI field.\n\nThe backend of Coze Studio is developed using Golang, the frontend uses React + TypeScript, and the overall architecture is based on microservices and built following domain-driven design (DDD) principles. Provide developers with a high-performance, highly scalable, and easy-to-customize underlying framework to help them address complex business needs.\n## Feature list\n| **Module** | **Feature** |\n| --- | --- |\n| Model service | Manage the model list, integrate services such as OpenAI and Volcengine |\n| Build agent | * Build, publish, and manage agent <br> * Support configuring workflows, knowledge bases, and other resources |\n| Build apps | * Create and publish apps <br> * Build business logic through workflows |\n| Build a workflow | Create, modify, publish, and delete workflows |\n| Develop resources | Support creating and managing the following resources: <br> * Plugins <br> * Knowledge bases <br> * Databases <br> * Prompts |\n| API and SDK | * Create conversations, initiate chats, and other OpenAPI <br> * Integrate agents or apps into your own app through Chat SDK |\n\n## Quickstart\nLearn how to obtain and deploy the open-source version of Coze Studio, quickly build projects, and experience Coze Studio's open-source version.\n\nEnvironment requirements:\n\n* Before installing Coze Studio, please ensure that your machine meets the following minimum system requirements: 2 Core、4 GB\n* Pre-install Docker and Docker Compose, and start the Docker service.\n\nDeployment steps:\n\n1. Retrieve the source code.\n   ```Bash\n   # Clone code\n   git clone https://github.com/coze-dev/coze-studio.git\n   ```\n2. Deploy and start the service. When deploying and starting Coze Studio for the first time, it may take a while to retrieve images and build local images. Please be patient. If you see the message \"Container coze-server Started,\" it means the Coze Studio service has started successfully.\n\n   ```Bash\n   cd coze-studio\n   # start service\n   # for macOS or Linux\n   make web  \n   # for windows\n   cp ./docker/.env.example ./docker/.env\n   docker compose -f ./docker/docker-compose.yml up\n   ```\n\n   For common startup failure issues, **please refer to the [FAQ](https://github.com/coze-dev/coze-studio/wiki/9.-FAQ)**.\n3.\tRegister an account by visiting `http://localhost:8888/sign`, entering your username and password, and clicking the Register button.\n4.\tConfigure the model at `http://localhost:8888/admin/#model-management` by adding a new model. (The image version must be greater than or equal to 0.5.0.)\n5.\tVisit Coze Studio at `http://localhost:8888/`.\n\n> [!WARNING]\n> If you want to deploy Coze Studio in a public network environment, it is recommended to assess security risks before you begin, and take corresponding protection measures. Possible security risks include account registration functions, Python execution environments in workflow code nodes, Coze Server listening address configurations, SSRF (Server - Side Request Forgery), and some horizontal privilege escalations in APIs.  For more details, refer to [Quickstart](https://github.com/coze-dev/coze-studio/wiki/2.-Quickstart#security-risks-in-public-networks).\n\n## Developer Guide\n\n* **Project Configuration**:\n   * [Model Configuration](https://github.com/coze-dev/coze-studio/wiki/3.-Model-configuration): Before deploying the open-source version of Coze Studio, you must configure the model service. Otherwise, you cannot select models when building agents, workflows, and apps.\n   * [Plugin Configuration](https://github.com/coze-dev/coze-studio/wiki/4.-Plugin-Configuration): To use official plugins from the plugin store, you must first configure the plugins and add the authentication keys for third-party services.\n   * [Basic Component Configuration](https://github.com/coze-dev/coze-studio/wiki/5.-Basic-component-configuration): Learn how to configure components such as image uploaders to use functions like image uploading in Coze Studio .\n* [API Reference](https://github.com/coze-dev/coze-studio/wiki/6.-API-Reference): The Coze Studio Community Edition API and Chat SDK are authenticated using Personal Access Token, providing APIs for conversations and workflows.\n* [Development Guidelines](https://github.com/coze-dev/coze-studio/wiki/7.-Development-Standards):\n   * [Project Architecture](https://github.com/coze-dev/coze-studio/wiki/7.-Development-Standards#project-architecture): Learn about the technical architecture and core components of the open-source version of Coze Studio.\n   * [Code Development and Testing](https://github.com/coze-dev/coze-studio/wiki/7.-Development-Standards#code-development-and-testing): Learn how to perform secondary development and testing based on the open-source version of Coze Studio.\n   * [Troubleshooting](https://github.com/coze-dev/coze-studio/wiki/7.-Development-Standards#troubleshooting): Learn how to view container states and system logs.\n\n## Using the open-source version of Coze Studio\n> Regarding how to use Coze Studio, refer to the [Coze Development Platform Official Documentation Center](https://www.coze.cn/open/docs) for more information. Please note that certain features, such as tone customization, are limited to the commercial version. Differences between the open-source and commercial versions can be found in the **Feature List**.\n\n\n* [Quick Start](https://www.coze.cn/open/docs/guides/quickstart): Quickly build an AI assistant agent with Coze Studio.\n* [Developing Agents](https://www.coze.cn/open/docs/guides/agent_overview): Learn how to create, build, publish, and manage agents. You can use functions such as knowledge, plugins, etc., to resolve model hallucination and lack of expertise in professional fields. In addition, Coze Studio provides rich memory features that enable agents to generate more accurate responses based on a personal user's historical conversations during interactions.\n* [Develop workflows](https://www.coze.cn/open/docs/guides/workflow): A workflow is a set of executable instructions used to implement business logic or complete specific tasks. It structures data flow and task processing for apps or agents. Coze Studio provides a visual canvas where you can quickly build workflows by dragging and dropping nodes.\n* [Resources such as plugins](https://www.coze.cn/open/docs/guides/plugin): In Coze Studio, workflows, plugins, databases, knowledge bases, and variables are collectively referred to as resources.\n* **API & SDK**: Coze Studio supports [API related to chat and workflows](https://github.com/coze-dev/coze-studio/wiki/6.-API-Reference), and you can also integrate agents or apps with local business systems through [Chat SDK](https://www.coze.cn/open/docs/developer_guides/web_sdk_overview).\n* [Tutorials for practice](https://www.coze.cn/open/docs/tutorial/chat_sdk_web_online_customer_service): Learn how to use Coze Studio to implement various AI scenarios, such as building web-based online customer service using Chat SDK.\n\n## License\nThis project uses the Apache 2.0 license. For details, please refer to the [LICENSE](https://github.com/coze-dev/coze-studio/blob/main/LICENSE-APACHE) file.\n## Community contributions\nWe welcome community contributions. For contribution guidelines, please refer to [CONTRIBUTING](https://github.com/coze-dev/coze-studio/blob/main/CONTRIBUTING.md) and [Code of conduct](https://github.com/coze-dev/coze-studio/blob/main/CODE_OF_CONDUCT.md). We look forward to your contributions!\n## Security and privacy\nIf you discover potential security issues in the project, or believe you may have found a security issue, please notify the ByteDance security team through our [security center](https://security.bytedance.com/src) or [vulnerability reporting email](mailto:sec@bytedance.com).\nPlease **do not** create public GitHub Issues.\n## Join Community\n\nWe are committed to building an open and friendly developer community. All developers interested in AI Agent development are welcome to join us!\n\n### 🐛 Issue Reports & Feature Requests\nTo efficiently track and resolve issues while ensuring transparency and collaboration, we recommend participating through:\n- **GitHub Issues**: [Submit bug reports or feature requests](https://github.com/coze-dev/coze-studio/issues)\n- **Pull Requests**: [Contribute code or documentation improvements](https://github.com/coze-dev/coze-studio/pulls)\n\n### 💬 Technical Discussion & Communication\nJoin our technical discussion groups to share experiences with other developers and stay updated with the latest project developments:\n\n**Feishu Group Chat**  \nScan the QR code below with Feishu mobile app to join:\n\n![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/0a49081e8f3743e8bf3dcdded4bb571a~tplv-goo7wpa0wc-image.image)\n\n**Discord Server**  \nClick to join: [Coze Community](https://discord.gg/sTVN9EVS4B)\n\n**Telegram Group**  \nClick to join: Telegram Group [Coze](https://t.me/+pP9CkPnomDA0Mjgx)\n\n## Acknowledgments\nThank you to all the developers and community members who have contributed to the Coze Studio project. Special thanks:\n\n* The [Eino](https://github.com/cloudwego/eino) framework team - providing powerful support for Coze Studio's agent and workflow runtime engines, model abstractions and implementations, and knowledge base indexing and retrieval\n* The [FlowGram](https://github.com/bytedance/flowgram.ai) team - providing a high-quality workflow building engine for Coze Studio's frontend workflow canvas editor\n* The [Hertz](https://github.com/cloudwego/hertz) team - Go HTTP framework with high-performance and strong-extensibility for building micro-services\n* All users who participated in testing and feedback\n"
  },
  {
    "path": "README.zh_CN.md",
    "content": "![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/943f576df3424fa98580c2ad18946719~tplv-goo7wpa0wc-image.image)\n<div align=\"center\">\n<p>\n  <a href=\"#什么是-coze-studio\">Coze Studio</a> •\n  <a href=\"#功能清单\">功能清单</a> •\n  <a href=\"#快速开始\">快速开始</a> •\n  <a href=\"#开发指南\">开发指南</a>\n</p>\n<p>\n  <img alt=\"License\" src=\"https://img.shields.io/badge/license-apache2.0-blue.svg\">\n  <img alt=\"Go Version\" src=\"https://img.shields.io/badge/go-%3E%3D%201.23.4-blue\">\n</p>\n\n[English](README.md) | 中文\n\n</div>\n\n## 什么是 Coze Studio\n\n[Coze Studio](https://www.coze.cn/home) 是一站式 AI Agent 开发工具。提供各类最新大模型和工具、多种开发模式和框架，从开发到部署，为你提供最便捷的 AI Agent 开发环境。\n\n* **提供 AI Agent 开发所需的全部核心技术**：Prompt、RAG、Plugin、Workflow，使得开发者可以聚焦创造 AI 核心价值。\n* **开箱即用，用最低的成本开发最专业的 AI Agent**：Coze Studio 为开发者提供了健全的应用模板和编排框架，你可以基于它们快速构建各种 AI Agent ，将创意变为现实。\n\nCoze Studio，源自服务了上万家企业、数百万开发者的「扣子开发平台」，我们将它的核心引擎完全开放。它是一个一站式的 AI Agent 可视化开发工具，让 AI Agent 的创建、调试和部署变得前所未有的简单。通过 Coze Studio 提供的可视化设计与编排工具，开发者可以通过零代码或低代码的方式，快速打造和调试智能体、应用和工作流，实现强大的 AI 应用开发和更多定制化业务逻辑，是构建低代码 AI 产品的理想选择。Coze Studio 致力于降低 AI Agent 开发与应用门槛，鼓励社区共建和分享交流，助你在 AI 领域进行更深层次的探索与实践。\n\nCoze Studio 的后端采用 Golang 开发，前端使用 React + TypeScript，整体基于微服务架构并遵循领域驱动设计（DDD）原则构建。为开发者提供一个高性能、高扩展性、易于二次开发的底层框架，助力开发者应对复杂的业务需求。\n\n## 功能清单\n| **功能模块** | **功能点** |\n| --- | --- |\n| 模型服务 | 管理模型列表，可接入OpenAI、火山方舟 等在线或离线模型服务 |\n| 搭建智能体 | * 编排、发布、管理智能体 <br> * 支持配置工作流、知识库等资源 |\n| 搭建应用 | * 创建、发布应用 <br> * 通过工作流搭建业务逻辑 |\n| 搭建工作流 | 创建、修改、发布、删除工作流 |\n| 开发资源 | 支持创建并管理以下资源： <br> * 插件 <br> * 知识库 <br> * 数据库 <br> * 提示词 |\n| API 与 SDK | * 创建会话、发起对话等 OpenAPI <br> * 通过 Chat SDK 将智能体或应用集成到自己的应用 |\n## 快速开始\n了解如何获取并部署 Coze Studio 开源版，快速构建项目、体验 Coze Studio 开源版。\n\n环境要求：\n\n* 在安装 Coze Studio 之前，请确保您的机器满足以下最低系统要求： 2 Core、4 GB\n* 提前安装 Docker、Docker Compose，并启动 Docker 服务。\n\n部署步骤：\n\n1. 获取源码。\n\n   ```Bash\n   # 克隆代码\n   git clone https://github.com/coze-dev/coze-studio.git\n   ```\n\n2. 部署并启动服务。\n   首次部署并启动 Coze Studio 需要拉取镜像、构建本地镜像，可能耗时较久，请耐心等待。如果看到提示 \"Container coze-server Started\"，表示 Coze Studio 服务已成功启动。 \n   \n   ```Bash\n   cd coze-studio\n   # start service\n   # for macOS or Linux\n   make web  \n   # for windows\n   cp ./docker/.env.example ./docker/.env\n   docker compose -f ./docker/docker-compose.yml up\n   ```\n   \n   **启动失败常见问题可参考[常见问题](https://github.com/coze-dev/coze-studio/wiki/9.-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)**。\n3. 注册账号，访问 `http://localhost:8888/sign` 输入用户名、密码点击注册按钮。\n4. 配置模型：访问 `http://localhost:8888/admin/#model-management` 新增模型。（镜像版本需要大于等于 0.5.0）。\n5. 访问 Coze Studio `http://localhost:8888/`。\n\n> [!WARNING]\n> 如果要将 Coze Studio 部署到公网环境，建议在部署前评估整体评估安全风险，例如账号注册功能、工作流代码节点 Python执行环境、Coze Server 监听地址配置、SSRF 和部分 API 水平越权的风险，并采取相应防护措施。详细信息可参考[快速开始](https://github.com/coze-dev/coze-studio/wiki/2.-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B#%E5%85%AC%E7%BD%91%E5%AE%89%E5%85%A8%E9%A3%8E%E9%99%A9)。\n## 开发指南\n\n* **项目配置**：\n   * [模型配置](https://github.com/coze-dev/coze-studio/wiki/3.-模型配置)：部署 Coze Studio 开源版之前，必须配置模型服务，否则无法在搭建智能体、工作流和应用时选择模型。\n   * [插件配置](https://github.com/coze-dev/coze-studio/wiki/4.-插件配置)：如需使用插件商店中的官方插件，必须先配置插件，添加第三方服务的鉴权秘钥。\n   * [基础组件配置](https://github.com/coze-dev/coze-studio/wiki/5.-基础组件配置)：了解如何配置图片上传等组件，以便在 Coze Studio 中使用上传图片等功能。\n* [API 参考](https://github.com/coze-dev/coze-studio/wiki/6.-API-参考)：Coze Studio 社区版 API 和 Chat SDK 通过个人访问令牌鉴权，提供对话和工作流相关 API。\n* [开发规范](https://github.com/coze-dev/coze-studio/wiki/7.-开发规范)：\n   * [项目架构](https://github.com/coze-dev/coze-studio/wiki/7.-%E5%BC%80%E5%8F%91%E8%A7%84%E8%8C%83#%E9%A1%B9%E7%9B%AE%E6%9E%B6%E6%9E%84)：了解 Coze Studio 开源版的技术架构与核心组件。\n   * [代码开发与测试](https://github.com/coze-dev/coze-studio/wiki/7.-%E5%BC%80%E5%8F%91%E8%A7%84%E8%8C%83#%E4%BB%A3%E7%A0%81%E5%BC%80%E5%8F%91%E4%B8%8E%E6%B5%8B%E8%AF%95)：了解如何基于 Coze Studio 开源版进行二次开发与测试。\n   * [故障排查](https://github.com/coze-dev/coze-studio/wiki/7.-%E5%BC%80%E5%8F%91%E8%A7%84%E8%8C%83#%E6%95%85%E9%9A%9C%E6%8E%92%E6%9F%A5)：了解如何查看容器状态、系统日志。\n\n## 使用 Coze Studio 开源版\n> 关于如何使用 Coze Studio，可参考[扣子开发平台官方文档中心](https://www.coze.cn/open/docs)获取更多资料。需要注意的是，音色等部分功能限商业版本使用，开源版与商业版的功能差异可参考**功能清单**。\n\n\n* [快速入门](https://www.coze.cn/open/docs/guides/quickstart)：通过 Coze Studio 快速搭建一个 AI 助手智能体。\n* [开发智能体](https://www.coze.cn/open/docs/guides/agent_overview)：如何创建、编排、发布与管理智能体。你可以使用知识、插件等功能解决模型幻觉、专业领域知识不足等问题。除此之外，Coze Studio 还提供了丰富的记忆功能，使智能体在与个人用户交互时，可根据个人用户的历史对话等生成更准确性的回复。\n* [开发工作流](https://www.coze.cn/open/docs/guides/workflow)：工作流是一系列可执行指令的集合，用于实现业务逻辑或完成特定任务。它为应用/智能体的数据流动和任务处理提供了一个结构化框架。 Coze Studio 提供了一个可视化画布，你可以通过拖拽节点迅速搭建工作流。\n* [插件等资源](https://www.coze.cn/open/docs/guides/plugin)：在 Coze Studio，工作流、插件、数据库、知识库和变量统称为资源。\n* **API & SDK**： Coze Studio 支持[对话和工作流相关 API](https://github.com/coze-dev/coze-studio/wiki/6.-API-%E5%8F%82%E8%80%83)，你也可以通过 [Chat SDK](https://www.coze.cn/open/docs/developer_guides/web_sdk_overview) 将智能体或应用集成到本地业务系统。\n* [实践教程](https://www.coze.cn/open/docs/tutorial/chat_sdk_web_online_customer_service)：了解如何通过 Coze Studio 实现各种 AI 场景，例如通过 Chat SDK 搭建网页在线客服。 \n\n## License\n本项目采用 Apache 2.0 许可证。详情请参阅 [LICENSE](https://github.com/coze-dev/coze-studio/blob/main/LICENSE-APACHE) 文件。\n## 社区贡献\n我们欢迎社区贡献，贡献指南参见 [CONTRIBUTING](https://github.com/coze-dev/coze-studio/blob/main/CONTRIBUTING.md) 和 [Code of conduct](https://github.com/coze-dev/coze-studio/blob/main/CODE_OF_CONDUCT.md)，期待您的贡献！\n## 安全与隐私\n如果你在该项目中发现潜在的安全问题，或你认为可能发现了安全问题，请通过我们的[安全中心](https://security.bytedance.com/src) 或[漏洞报告邮箱](mailto:sec@bytedance.com)通知字节跳动安全团队。\n请**不要**创建公开的 GitHub Issue。\n## 加入社区\n\n我们致力于构建一个开放、友好的开发者社区，欢迎所有对 AI Agent 开发感兴趣的开发者加入我们！\n\n### 🐛 问题反馈与功能建议\n为了更高效地跟踪和解决问题，保证信息透明和便于协同，我们推荐通过以下方式参与：\n- **GitHub Issues**：[提交 Bug 报告或功能请求](https://github.com/coze-dev/coze-studio/issues)\n- **Pull Requests**：[贡献代码或文档改进](https://github.com/coze-dev/coze-studio/pulls)\n\n### 💬 技术交流与讨论\n加入我们的技术交流群，与其他开发者分享经验、获取项目最新动态：\n\n**飞书群聊**  \n使用飞书移动端扫描下方二维码加入：\n\n![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/0a49081e8f3743e8bf3dcdded4bb571a~tplv-goo7wpa0wc-image.image)\n\n**Discord 服务器**  \n点击加入：[Coze Community](https://discord.gg/sTVN9EVS4B)\n\n**Telegram 群组**  \n点击加入：Telegram Group [Coze](https://t.me/+pP9CkPnomDA0Mjgx)\n\n## 致谢\n感谢所有为 Coze Studio 项目做出贡献的开发者和社区成员。特别感谢：\n\n* [Eino](https://github.com/cloudwego/eino) 框架团队 - 为 Coze Studio 的智能体和工作流运行时、模型抽象封装、知识库索引构建和检索提供了强大的支持\n* [FlowGram](https://github.com/bytedance/flowgram.ai) 团队 - 为 Coze Studio 的工作流画布编辑页提供了高质量的流程搭建引擎\n* [Hertz](https://github.com/cloudwego/hertz) 团队 - 高性能、强扩展性的 Go HTTP 框架，用于构建微服务\n* 所有参与测试和反馈的用户\n"
  },
  {
    "path": "backend/.gitignore",
    "content": "*.o\n*.a\n*.so\n_obj\n_test\n*.[568vq]\n[568vq].out\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n_testmain.go\n*.exe\n*.exe~\n*.test\n*.prof\n*.rar\n*.zip\n*.gz\n*.psd\n*.bmd\n*.cfg\n*.pptx\n*.log\n*nohup.out\n*settings.pyc\n*.sublime-project\n*.sublime-workspace\n!.gitkeep\n.DS_Store\n/.idea\n/.vscode\n/output\n*.local.yml\ndumped_hertz_remote_config.json\n/oldimpl\n/vendor\n*gen_test.go\n/domain/workflow/internal/nodes/code/script/RestrictedPython/__pycache__/**\n.env.dev\n.env.local\n"
  },
  {
    "path": "backend/.hz",
    "content": "// Code generated by hz. DO NOT EDIT.\n\nhz version: v0.9.7\nhandlerDir: api/handler\nmodelDir: api/model\nrouterDir: api/router\n"
  },
  {
    "path": "backend/Dockerfile",
    "content": "# Stage 1: Builder for Go application\nFROM golang:1.24-alpine AS builder\n\nWORKDIR /app\n\n# Install build dependencies for Go\nRUN apk add --no-cache git gcc libc-dev\n\n# Copy go.mod and go.sum first to leverage Docker cache\nCOPY backend/go.mod backend/go.sum ./\nRUN go mod download\n\n# Copy the entire backend source code\nCOPY backend/ ./\n\n# Build the Go application\nRUN go build -ldflags=\"-s -w\" -o /app/opencoze main.go\n\n\n# Stage 2: Final image\nFROM alpine:3.22.0\n\nWORKDIR /app\n\n# Install runtime dependencies for Go app and base for Python\n# pax-utils for scanelf, python3 for running Python, python3-dev for headers/shared libs\n# bind-tools for nslookup etc., file for debugging file types\nRUN apk add --no-cache pax-utils python3 python3-dev bind-tools file deno curl\n\nRUN deno run -A jsr:@langchain/pyodide-sandbox -c \"print('Hello, World')\"\n\n# Install Python build dependencies, create venv, install packages, then remove build deps\nRUN apk add --no-cache --virtual .python-build-deps build-base py3-pip git && \\\n    python3 -m venv --copies --upgrade-deps /app/.venv && \\\n    # Activate venv and install packages\n    . /app/.venv/bin/activate && \\\n    # If you want to use other third-party libraries, you can install them here.\n    pip install urllib3==1.26.16 && \\\n    pip install --no-cache-dir h11==0.16.0 httpx==0.28.1 pillow==11.2.1 pdfplumber==0.11.7 python-docx==1.2.0 numpy==2.3.1 && \\\n    # Deactivate (optional, as RUN is a new shell)\n    # deactivate && \\\n    # Remove build dependencies\n    apk del .python-build-deps\n\n\n# Copy the built Go binary from the builder stage\nCOPY --from=builder /app/opencoze /app/opencoze\n\n# Copy Python application scripts\nCOPY backend/infra/document/parser/impl/builtin/parse_pdf.py /app/parse_pdf.py\nCOPY backend/infra/document/parser/impl/builtin/parse_docx.py /app/parse_docx.py\nCOPY backend/infra/coderunner/impl/script/sandbox.py /app/sandbox.py\n\n\n# Copy static resources\n# COPY backend/static /app/resources/static/\nCOPY backend/conf /app/resources/conf/\nCOPY docker/.env.example /app/.env\n# COPY docker/.env.ve /app/.env\n# COPY docker/cert.pem /app/cert.pem\n# COPY docker/key.pem /app/key.pem\n\n# Set PATH to prioritize venv's binaries\nENV PATH=\"/app/.venv/bin:${PATH}\"\n# ENV LD_LIBRARY_PATH=\"/usr/lib:${LD_LIBRARY_PATH}\" # Keep commented for now\n\n# Ensure python scripts and venv executables are executable\nRUN chmod +x /app/parse_pdf.py /app/parse_docx.py  && \\\n    find /app/.venv/bin -type f -exec chmod +x {} \\;\n\n\nEXPOSE 8888\n\nENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt\n\nCMD [\"/app/opencoze\"]\n"
  },
  {
    "path": "backend/README.md",
    "content": "# Coze Backend API\n"
  },
  {
    "path": "backend/api/handler/coze/agent_run_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage coze\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"net/http\"\n\n\t\"github.com/hertz-contrib/sse\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/run\"\n\n\t\"github.com/coze-dev/coze-studio/backend/application/conversation\"\n\tsseImpl \"github.com/coze-dev/coze-studio/backend/infra/sse/impl/sse\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\n// AgentRun .\n// @router /api/conversation/chat [POST]\nfunc AgentRun(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req run.AgentRunRequest\n\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif checkErr := checkParams(ctx, &req); checkErr != nil {\n\t\tinvalidParamRequestResponse(c, checkErr.Error())\n\t\treturn\n\t}\n\n\tsseSender := sseImpl.NewSSESender(sse.NewStream(c))\n\tc.SetStatusCode(http.StatusOK)\n\tc.Response.Header.Set(\"X-Accel-Buffering\", \"no\")\n\n\terr = conversation.ConversationSVC.Run(ctx, sseSender, &req)\n\tif err != nil {\n\t\terrData := run.ErrorData{\n\t\t\tCode: errno.ErrConversationAgentRunError,\n\t\t\tMsg:  err.Error(),\n\t\t}\n\t\ted, _ := json.Marshal(errData)\n\t\t_ = sseSender.Send(ctx, &sse.Event{\n\t\t\tEvent: run.RunEventError,\n\t\t\tData:  ed,\n\t\t})\n\t}\n}\n\nfunc checkParams(_ context.Context, ar *run.AgentRunRequest) error {\n\tif ar.BotID == 0 {\n\t\treturn errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV(\"msg\", \"bot id is required\"))\n\t}\n\n\tif ar.Scene == nil {\n\t\treturn errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV(\"msg\", \"scene is required\"))\n\t}\n\n\tif ar.ContentType == nil {\n\t\tar.ContentType = ptr.Of(run.ContentTypeText)\n\t}\n\treturn nil\n}\n\n// ChatV3 .\n// @router /v3/chat [POST]\nfunc ChatV3(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req run.ChatV3Request\n\n\t// Pre-process parameters field: convert JSON object to string if needed\n\tif err = preprocessChatV3Parameters(c); err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tif checkErr := checkParamsV3(ctx, &req); checkErr != nil {\n\t\tinvalidParamRequestResponse(c, checkErr.Error())\n\t\treturn\n\t}\n\n\tif req.Stream != nil && !*req.Stream {\n\n\t\tresp, err := conversation.ConversationOpenAPISVC.OpenapiAgentRunSync(ctx, &req)\n\t\tif err != nil {\n\t\t\tinvalidParamRequestResponse(c, err.Error())\n\t\t\treturn\n\t\t}\n\t\tc.JSON(consts.StatusOK, resp)\n\t\treturn\n\t}\n\n\t// Streaming mode (default)\n\tc.SetStatusCode(http.StatusOK)\n\tc.Response.Header.Set(\"X-Accel-Buffering\", \"no\")\n\tsseSender := sseImpl.NewSSESender(sse.NewStream(c))\n\terr = conversation.ConversationOpenAPISVC.OpenapiAgentRun(ctx, sseSender, &req)\n\tif err != nil {\n\t\terrData := run.ErrorData{\n\t\t\tCode: errno.ErrConversationAgentRunError,\n\t\t\tMsg:  err.Error(),\n\t\t}\n\t\ted, _ := json.Marshal(errData)\n\t\t_ = sseSender.Send(ctx, &sse.Event{\n\t\t\tEvent: run.RunEventError,\n\t\t\tData:  ed,\n\t\t})\n\t}\n\n}\n\nfunc checkParamsV3(_ context.Context, ar *run.ChatV3Request) error {\n\tif ar.BotID == 0 {\n\t\treturn errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV(\"msg\", \"bot id is required\"))\n\t}\n\treturn nil\n}\n\n// CancelChatApi .\n// @router /v3/chat/cancel [POST]\nfunc CancelChatApi(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req run.CancelChatApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := conversation.ConversationOpenAPISVC.CancelRun(ctx, &req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// preprocessChatV3Parameters handles the conversion of parameters field from JSON object to string\nfunc preprocessChatV3Parameters(c *app.RequestContext) error {\n\t// Get the raw request body\n\tbody := c.Request.Body()\n\tif len(body) == 0 {\n\t\treturn nil\n\t}\n\n\t// Parse the JSON body\n\tvar requestData map[string]interface{}\n\tif err := json.Unmarshal(body, &requestData); err != nil {\n\t\treturn nil // If it's not valid JSON, let BindAndValidate handle the error\n\t}\n\n\t// Check if parameters field exists and is an object\n\tif parametersValue, exists := requestData[\"parameters\"]; exists {\n\t\t// If parameters is already a string, no conversion needed\n\t\tif _, isString := parametersValue.(string); isString {\n\t\t\treturn errors.New(\"parameters field should be an object, not a string\")\n\t\t}\n\n\t\t// If parameters is an object, convert it to JSON string\n\t\tif parametersObj, isObject := parametersValue.(map[string]interface{}); isObject {\n\t\t\tparametersJSON, err := json.Marshal(parametersObj)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\trequestData[\"parameters\"] = string(parametersJSON)\n\n\t\t\t// Update the request body with the modified data\n\t\t\tmodifiedBody, err := json.Marshal(requestData)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Replace the request body\n\t\t\tc.Request.SetBody(modifiedBody)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// RetrieveChatOpen .\n// @router /v3/chat/retrieve [GET]\nfunc RetrieveChatOpen(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req run.RetrieveChatOpenRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := conversation.ConversationOpenAPISVC.RetrieveRunRecord(ctx, &req)\n\tif err != nil {\n\t\tc.String(consts.StatusInternalServerError, err.Error())\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/base.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage coze\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/internal/httputil\"\n)\n\nfunc invalidParamRequestResponse(c *app.RequestContext, errMsg string) {\n\thttputil.BadRequest(c, errMsg)\n}\n\nfunc internalServerErrorResponse(ctx context.Context, c *app.RequestContext, err error) {\n\thttputil.InternalError(ctx, c, err)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/bot_open_api_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\topenapiauthApp \"github.com/coze-dev/coze-studio/backend/application/openauth\"\n\t\"github.com/coze-dev/coze-studio/backend/application/plugin\"\n\t\"github.com/coze-dev/coze-studio/backend/application/singleagent\"\n\t\"github.com/coze-dev/coze-studio/backend/application/upload\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_open_api\"\n)\n\n// OauthAuthorizationCode .\n// @router /api/oauth/authorization_code [GET]\nfunc OauthAuthorizationCode(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req bot_open_api.OauthAuthorizationCodeReq\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.Code == \"\" {\n\t\tinvalidParamRequestResponse(c, \"authorization failed, code is required\")\n\t\treturn\n\t}\n\tif req.State == \"\" {\n\t\tinvalidParamRequestResponse(c, \"state is required\")\n\t\treturn\n\t}\n\n\t_, err = plugin.PluginApplicationSVC.OauthAuthorizationCode(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\thost, err := config.Base().GetServerHost(ctx)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tredirectURL := fmt.Sprintf(\"%s/information/auth/success\", host)\n\tc.Redirect(consts.StatusFound, []byte(redirectURL))\n\tc.Abort()\n}\n\n// UploadFileOpen .\n// @router /v1/files/upload [POST]\nfunc UploadFileOpen(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req bot_open_api.UploadFileOpenRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(bot_open_api.UploadFileOpenResponse)\n\tresp, err = upload.SVC.UploadFileOpen(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetBotOnlineInfo .\n// @router /v1/bot/get_online_info [GET]\nfunc GetBotOnlineInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req bot_open_api.GetBotOnlineInfoReq\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := singleagent.SingleAgentSVC.GetAgentOnlineInfo(ctx, &req)\n\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ImpersonateCozeUser .\n// @router /api/permission_api/coze_web_app/impersonate_coze_user [POST]\nfunc ImpersonateCozeUser(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req bot_open_api.ImpersonateCozeUserRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := openapiauthApp.OpenAuthApplication.ImpersonateCozeUserAccessToken(ctx, &req)\n\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// OpenGetBotInfo .\n// @router /v1/bots/:bot_id [GET]\nfunc OpenGetBotInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req bot_open_api.OpenGetBotInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := singleagent.SingleAgentSVC.OpenGetBotInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/config_service.go",
    "content": "// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/cloudwego/eino/schema\"\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\tbizConf \"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/llm/modelbuilder\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/embedding/impl\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\n// GetBasicConfiguration .\n// @router /api/admin/config/basic/get [GET]\nfunc GetBasicConfiguration(ctx context.Context, c *app.RequestContext) {\n\tbaseConfig, err := bizConf.Base().GetBaseConfig(ctx)\n\tif err != nil {\n\t\tc.String(consts.StatusInternalServerError, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(config.GetBasicConfigurationResp)\n\tresp.Configuration = baseConfig\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// SaveBasicConfiguration .\n// @router /api/admin/config/basic/save [POST]\nfunc SaveBasicConfiguration(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req config.SaveBasicConfigurationReq\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tif req.Configuration == nil {\n\t\tinvalidParamRequestResponse(c, \"Configuration is nil\")\n\t\treturn\n\t}\n\n\t// TODO: check coze api token\n\n\t// Validate ServerHost: allow http/https URLs, or hostname:port\n\tif req.Configuration.ServerHost == \"\" {\n\t\tinvalidParamRequestResponse(c, \"ServerHost is empty\")\n\t\treturn\n\t}\n\n\thost := req.Configuration.ServerHost\n\tif strings.Contains(host, \"://\") {\n\t\tu, parseErr := url.Parse(host)\n\t\tif parseErr != nil || u.Host == \"\" || (u.Scheme != \"http\" && u.Scheme != \"https\") {\n\t\t\tinvalidParamRequestResponse(c, \"ServerHost is invalid URL, require http/https\")\n\t\t\treturn\n\t\t}\n\t} else {\n\t\t// Expect hostname:port format\n\t\th, p, splitErr := net.SplitHostPort(host)\n\t\tif splitErr != nil || h == \"\" {\n\t\t\tinvalidParamRequestResponse(c, \"ServerHost must be hostname:port or http(s) URL\")\n\t\t\treturn\n\t\t}\n\t\tport, portErr := strconv.Atoi(p)\n\t\tif portErr != nil || port <= 0 || port > 65535 {\n\t\t\tinvalidParamRequestResponse(c, \"ServerHost port is invalid\")\n\t\t\treturn\n\t\t}\n\t}\n\n\tlogs.Infof(\"server host is valid %s\", req.Configuration.ServerHost)\n\n\tif req.Configuration.CodeRunnerType.String() == \"<UNSET>\" {\n\t\tinvalidParamRequestResponse(c, \"CodeRunnerType is invalid\")\n\t\treturn\n\t}\n\n\terr = bizConf.Base().SaveBaseConfig(ctx, req.Configuration)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, fmt.Errorf(\"save basic config failed: %w\", err))\n\t\treturn\n\t}\n\n\tresp := new(config.SaveBasicConfigurationResp)\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetKnowledgeConfig .\n// @router /api/admin/config/knowledge/get [GET]\nfunc GetKnowledgeConfig(ctx context.Context, c *app.RequestContext) {\n\tknowledgeConfig, err := bizConf.Knowledge().GetKnowledgeConfig(ctx)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, fmt.Errorf(\"get knowledge config failed: %w\", err))\n\t\treturn\n\t}\n\n\tresp := new(config.GetKnowledgeConfigResp)\n\tresp.KnowledgeConfig = knowledgeConfig\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateKnowledgeConfig .\n// @router /api/admin/config/knowledge/save [POST]\nfunc UpdateKnowledgeConfig(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req config.UpdateKnowledgeConfigReq\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tif req.KnowledgeConfig == nil {\n\t\tinvalidParamRequestResponse(c, \"KnowledgeConfig is nil\")\n\t\treturn\n\t}\n\n\tif req.KnowledgeConfig.EmbeddingConfig == nil {\n\t\tinvalidParamRequestResponse(c, \"EmbeddingConfig is nil\")\n\t\treturn\n\t}\n\n\tif req.KnowledgeConfig.EmbeddingConfig.Connection == nil {\n\t\tinvalidParamRequestResponse(c, \"Connection is nil\")\n\t\treturn\n\t}\n\n\tif req.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo == nil {\n\t\tinvalidParamRequestResponse(c, \"EmbeddingInfo is nil\")\n\t\treturn\n\t}\n\n\tembedding, err := impl.GetEmbedding(ctx, req.KnowledgeConfig.EmbeddingConfig)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, fmt.Sprintf(\"get embedding failed: %v\", err))\n\t\treturn\n\t}\n\n\tif req.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo.Dims <= 0 {\n\t\treq.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo.Dims = int32(embedding.Dimensions())\n\n\t\tembedding, err = impl.GetEmbedding(ctx, req.KnowledgeConfig.EmbeddingConfig)\n\t\tif err != nil {\n\t\t\tinvalidParamRequestResponse(c, fmt.Sprintf(\"get embedding failed: %v\", err))\n\t\t\treturn\n\t\t}\n\t}\n\n\tdenseEmbeddings, err := embedding.EmbedStrings(ctx, []string{\"test\"})\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, fmt.Sprintf(\"embed test string failed: %v\", err))\n\t\treturn\n\t}\n\n\tif len(denseEmbeddings) == 0 {\n\t\tinvalidParamRequestResponse(c, fmt.Sprintf(\"embed test string failed: %v\", err))\n\t\treturn\n\t}\n\n\tlogs.CtxDebugf(ctx, \"embed test string result: %d, expect %d\",\n\t\tlen(denseEmbeddings[0]), req.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo.Dims)\n\tif len(denseEmbeddings[0]) != int(req.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo.Dims) {\n\t\tinvalidParamRequestResponse(c, fmt.Sprintf(\"embed test string failed: dims not match, expect %d, got %d\",\n\t\t\treq.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo.Dims, len(denseEmbeddings[0])))\n\t\treturn\n\t}\n\n\terr = bizConf.Knowledge().SaveKnowledgeConfig(ctx, req.KnowledgeConfig)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, fmt.Errorf(\"save knowledge config failed: %w\", err))\n\t\treturn\n\t}\n\n\tresp := new(config.UpdateKnowledgeConfigResp)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetModelList .\n// @router /api/admin/config/model/list [GET]\nfunc GetModelList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req config.GetModelListReq\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tmodelList, err := bizConf.ModelConf().GetProviderModelList(ctx)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, fmt.Errorf(\"get model list failed: %w\", err))\n\t\treturn\n\t}\n\n\tresp := new(config.GetModelListResp)\n\tresp.ProviderModelList = modelList\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CreateModel .\n// @router /api/admin/config/model/create [POST]\nfunc CreateModel(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req config.CreateModelReq\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tmodelBuilder, err := modelbuilder.NewModelBuilder(req.ModelClass, &config.Model{\n\t\tEnableBase64URL: req.EnableBase64URL,\n\t\tConnection:      req.Connection,\n\t})\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, fmt.Sprintf(\"create model builder failed: %v\", err))\n\t\treturn\n\t}\n\n\tlogs.CtxDebugf(ctx, \"create model req: %s, conn: %s\", conv.DebugJsonToStr(req), conv.DebugJsonToStr(req.Connection.BaseConnInfo))\n\n\tchatModel, err := modelBuilder.Build(ctx, &modelbuilder.LLMParams{EnableThinking: ptr.Of(false)})\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, fmt.Sprintf(\"build model failed: %v\", err))\n\t\treturn\n\t}\n\n\trespMsgs, err := chatModel.Generate(ctx, []*schema.Message{\n\t\tschema.SystemMessage(\"Just answer with a number, no explanation.\"),\n\t\tschema.UserMessage(\"1+1=?\"),\n\t})\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, fmt.Sprintf(\"generate model failed: %v\", err))\n\t\treturn\n\t}\n\n\tlogs.CtxDebugf(ctx, \"chatModel.Generate resp : %s\", conv.DebugJsonToStr(respMsgs))\n\n\tid, err := bizConf.ModelConf().CreateModel(ctx, req.ModelClass, req.ModelName, req.Connection, &modelmgr.ModelExtra{\n\t\tEnableBase64URL: req.EnableBase64URL,\n\t})\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, fmt.Sprintf(\"create model failed: %v\", err))\n\t\treturn\n\t}\n\n\tresp := new(config.CreateModelResp)\n\tresp.ID = id\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteModel .\n// @router /api/admin/config/model/delete [POST]\nfunc DeleteModel(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req config.DeleteModelReq\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\terr = bizConf.ModelConf().DeleteModel(ctx, req.ID)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, fmt.Errorf(\"delete model failed: %w\", err))\n\t\treturn\n\t}\n\n\tresp := new(config.DeleteModelResp)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/conversation_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/conversation\"\n\tapplication \"github.com/coze-dev/coze-studio/backend/application/conversation\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\n// ClearConversationHistory .\n// @router /api/conversation/clear_message [POST]\nfunc ClearConversationHistory(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req conversation.ClearConversationHistoryRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif checkErr := checkCCHParams(ctx, &req); checkErr != nil {\n\t\tinvalidParamRequestResponse(c, checkErr.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.ConversationSVC.ClearHistory(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\nfunc checkCCHParams(_ context.Context, req *conversation.ClearConversationHistoryRequest) error {\n\tif req.ConversationID <= 0 {\n\t\treturn errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV(\"msg\", \"invalid conversation id\"))\n\t}\n\n\tif req.Scene == nil {\n\t\treturn errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV(\"msg\", \"scene is required\"))\n\t}\n\n\treturn nil\n}\n\n// ClearConversationCtx .\n// @router /api/conversation/create_section [POST]\nfunc ClearConversationCtx(ctx context.Context, c *app.RequestContext) {\n\tresp := new(conversation.ClearConversationCtxResponse)\n\tvar err error\n\tvar req conversation.ClearConversationCtxRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif checkErr := checkCCCParams(ctx, &req); checkErr != nil {\n\t\tinvalidParamRequestResponse(c, checkErr.Error())\n\t\treturn\n\t}\n\n\tnewSectionID, err := application.ConversationSVC.CreateSection(ctx, req.ConversationID)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tresp.NewSectionID = newSectionID\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\nfunc checkCCCParams(ctx context.Context, req *conversation.ClearConversationCtxRequest) error {\n\tif req.ConversationID <= 0 {\n\t\treturn errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV(\"msg\", \"invalid conversation id\"))\n\t}\n\n\tif req.Scene == nil {\n\t\treturn errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV(\"msg\", \"scene is required\"))\n\t}\n\treturn nil\n}\n\n// CreateConversation .\n// @router /api/conversation/create [POST]\nfunc CreateConversation(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req conversation.CreateConversationRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.ConversationSVC.CreateConversation(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ClearConversationApi .\n// @router /v1/conversations/:conversation_id/clear [POST]\nfunc ClearConversationApi(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req conversation.ClearConversationApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(conversation.ClearConversationApiResponse)\n\n\tsectionID, err := application.ConversationSVC.CreateSection(ctx, req.ConversationID)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tresp.Data = &conversation.Section{\n\t\tID:             sectionID,\n\t\tConversationID: req.ConversationID,\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListConversationsApi .\n// @router /v1/conversations [GET]\nfunc ListConversationsApi(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req conversation.ListConversationsApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.ConversationSVC.ListConversation(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateConversationApi .\n// @router /v1/conversations/:conversation_id [PUT]\nfunc UpdateConversationApi(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req conversation.UpdateConversationApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.ConversationSVC.UpdateConversation(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteConversationApi .\n// @router /v1/conversations/:conversation_id [DELETE]\nfunc DeleteConversationApi(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req conversation.DeleteConversationApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tresp, err := application.ConversationSVC.DeleteConversation(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// RetrieveConversationApi .\n// @router /v1/conversation/retrieve [GET]\nfunc RetrieveConversationApi(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req conversation.RetrieveConversationApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.ConversationSVC.RetrieveConversation(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/database_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/database/table\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge\"\n\t\"github.com/coze-dev/coze-studio/backend/application/memory\"\n\t\"github.com/coze-dev/coze-studio/backend/application/singleagent\"\n)\n\n// ListDatabase .\n// @router /api/memory/database/list [POST]\nfunc ListDatabase(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.ListDatabaseRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.ListDatabase(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetDatabaseByID .\n// @router /api/memory/database/get_by_id [POST]\nfunc GetDatabaseByID(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.SingleDatabaseRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.GetDatabaseByID(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// AddDatabase .\n// @router /api/memory/database/add [POST]\nfunc AddDatabase(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.AddDatabaseRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.AddDatabase(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateDatabase .\n// @router /api/memory/database/update [POST]\nfunc UpdateDatabase(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.UpdateDatabaseRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.UpdateDatabase(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteDatabase .\n// @router /api/memory/database/delete [POST]\nfunc DeleteDatabase(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.DeleteDatabaseRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.DeleteDatabase(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// BindDatabase .\n// @router /api/memory/database/bind_to_bot [POST]\nfunc BindDatabase(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.BindDatabaseToBotRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := singleagent.SingleAgentSVC.BindDatabase(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UnBindDatabase .\n// @router /api/memory/database/unbind_to_bot [POST]\nfunc UnBindDatabase(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.BindDatabaseToBotRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := singleagent.SingleAgentSVC.UnBindDatabase(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListDatabaseRecords .\n// @router /api/memory/database/list_records [POST]\nfunc ListDatabaseRecords(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.ListDatabaseRecordsRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.ListDatabaseRecords(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateDatabaseRecords .\n// @router /api/memory/database/update_records [POST]\nfunc UpdateDatabaseRecords(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.UpdateDatabaseRecordsRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.UpdateDatabaseRecords(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetOnlineDatabaseId .\n// @router /api/memory/database/get_online_database_id [POST]\nfunc GetOnlineDatabaseId(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.GetOnlineDatabaseIdRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.GetOnlineDatabaseId(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ResetBotTable .\n// @router /api/memory/database/table/reset [POST]\nfunc ResetBotTable(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.ResetBotTableRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.ResetBotTable(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetDatabaseTemplate .\n// @router /api/memory/database/get_template [POST]\nfunc GetDatabaseTemplate(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.GetDatabaseTemplateRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.GetDatabaseTemplate(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetConnectorName .\n// @router /api/memory/database/get_connector_name [POST]\nfunc GetConnectorName(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.GetSpaceConnectorListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.GetConnectorName(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetBotDatabase .\n// @router /api/memory/database/table/list_new [POST]\nfunc GetBotDatabase(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.GetBotTableRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.GetBotDatabase(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateDatabaseBotSwitch .\n// @router /api/memory/database/update_bot_switch [POST]\nfunc UpdateDatabaseBotSwitch(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.UpdateDatabaseBotSwitchRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := singleagent.SingleAgentSVC.UpdatePromptDisable(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetDatabaseTableSchema .\n// @router /api/memory/table_schema/get [POST]\nfunc GetDatabaseTableSchema(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.GetTableSchemaRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tvar resp *knowledge.GetTableSchemaInfoResponse\n\tresp, err = memory.DatabaseApplicationSVC.GetDatabaseTableSchema(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// SubmitDatabaseInsertTask .\n// @router /api/memory/table_file/submit [POST]\nfunc SubmitDatabaseInsertTask(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.SubmitDatabaseInsertRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.SubmitDatabaseInsertTask(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DatabaseFileProgressData .\n// @router /api/memory/table_file/get_progress [POST]\nfunc DatabaseFileProgressData(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.GetDatabaseFileProgressRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.DatabaseFileProgressData(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ValidateDatabaseTableSchema .\n// @router /api/memory/table_schema/validate [POST]\nfunc ValidateDatabaseTableSchema(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req table.ValidateTableSchemaRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.ValidateDatabaseTableSchema(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/developer_api_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\t\"crypto/sha256\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"math/rand\"\n\t\"time\"\n\t\"unicode/utf8\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/application/modelmgr\"\n\t\"github.com/coze-dev/coze-studio/backend/application/singleagent\"\n\tapplication \"github.com/coze-dev/coze-studio/backend/application/singleagent\"\n\t\"github.com/coze-dev/coze-studio/backend/application/upload\"\n\t\"github.com/coze-dev/coze-studio/backend/application/user\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\n// DraftBotCreate .\n// @router /api/draftbot/create [POST]\nfunc DraftBotCreate(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.DraftBotCreateRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.SpaceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"space id is not set\")\n\t\treturn\n\t}\n\n\tif req.Name == \"\" {\n\t\tinvalidParamRequestResponse(c, \"name is nil\")\n\t\treturn\n\t}\n\n\tif req.IconURI == \"\" {\n\t\tinvalidParamRequestResponse(c, \"icon uri is nil\")\n\t\treturn\n\t}\n\n\tif utf8.RuneCountInString(req.Name) > 50 {\n\t\tinvalidParamRequestResponse(c, \"name is too long\")\n\t\treturn\n\t}\n\n\tif utf8.RuneCountInString(req.Description) > 2000 {\n\t\tinvalidParamRequestResponse(c, \"description is too long\")\n\t\treturn\n\t}\n\n\tresp, err := application.SingleAgentSVC.CreateSingleAgentDraft(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteDraftBot .\n// @router /api/draftbot/delete [POST]\nfunc DeleteDraftBot(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.DeleteDraftBotRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.SingleAgentSVC.DeleteAgentDraft(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateDraftBotDisplayInfo .\n// @router /api/draftbot/update_display_info [POST]\nfunc UpdateDraftBotDisplayInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.UpdateDraftBotDisplayInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.SingleAgentSVC.UpdateAgentDraftDisplayInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DuplicateDraftBot .\n// @router /api/draftbot/duplicate [POST]\nfunc DuplicateDraftBot(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.DuplicateDraftBotRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.SingleAgentSVC.DuplicateDraftBot(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetDraftBotDisplayInfo .\n// @router /api/draftbot/get_display_info [POST]\nfunc GetDraftBotDisplayInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.GetDraftBotDisplayInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.SingleAgentSVC.GetAgentDraftDisplayInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublishDraftBot .\n// @router /api/draftbot/publish [POST]\nfunc PublishDraftBot(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.PublishDraftBotRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tif len(req.Connectors) == 0 {\n\t\tinvalidParamRequestResponse(c, \"connectors is nil\")\n\t\treturn\n\t}\n\n\tresp, err := application.SingleAgentSVC.PublishAgent(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListDraftBotHistory .\n// @router /api/draftbot/list_draft_history [POST]\nfunc ListDraftBotHistory(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.ListDraftBotHistoryRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tif req.BotID == 0 {\n\t\tinvalidParamRequestResponse(c, \"bot id is not set\")\n\t\treturn\n\t}\n\n\tif req.PageIndex <= 0 {\n\t\treq.PageIndex = 1\n\t}\n\n\tif req.PageSize <= 0 {\n\t\treq.PageSize = 30\n\t}\n\n\tresp, err := application.SingleAgentSVC.ListAgentPublishHistory(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetIcon .\n// @router /api/developer/get_icon [POST]\nfunc GetIcon(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.GetIconRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := upload.SVC.GetIcon(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetUploadAuthToken .\n// @router /api/playground/upload/auth_token [POST]\nfunc GetUploadAuthToken(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.GetUploadAuthTokenRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.SingleAgentSVC.GetUploadAuthToken(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\nfunc createSecret(uid int64, fileType string) string {\n\tnum := 10\n\tinput := fmt.Sprintf(\"upload_%d_Ma*9)fhi_%d_gou_%s_rand_%d\", uid, time.Now().Unix(), fileType, rand.Intn(100000))\n\t// Do md5, take the first 20,//mapIntToBase62 map the number to Base62\n\thash := sha256.Sum256([]byte(fmt.Sprintf(\"%s\", input)))\n\thashString := base64.StdEncoding.EncodeToString(hash[:])\n\tif len(hashString) > num {\n\t\thashString = hashString[:num]\n\t}\n\n\tresult := \"\"\n\tfor _, char := range hashString {\n\t\tindex := int(char) % 62\n\t\tresult += string(baseWord[index])\n\t}\n\treturn result\n}\n\n// UploadFile .\n// @router /api/bot/upload_file [POST]\nfunc UploadFile(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.UploadFileRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(developer_api.UploadFileResponse)\n\tfileContent, err := base64.StdEncoding.DecodeString(req.Data)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\tinternalServerErrorResponse(ctx, c, errorx.New(errno.ErrUploadPermissionCode, errorx.KV(\"msg\", \"session required\")))\n\t\treturn\n\t}\n\tsecret := createSecret(ptr.From(userID), req.FileHead.FileType)\n\tfileName := fmt.Sprintf(\"%d_%d_%s.%s\", ptr.From(userID), time.Now().UnixNano(), secret, req.FileHead.FileType)\n\tobjectName := fmt.Sprintf(\"%s/%s\", req.FileHead.BizType.String(), fileName)\n\tresp, err = upload.SVC.UploadFile(ctx, fileContent, objectName)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\nconst baseWord = \"1Aa2Bb3Cc4Dd5Ee6Ff7Gg8Hh9Ii0JjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz\"\n\n// GetOnboarding .\n// @router /api/playground/get_onboarding [POST]\nfunc GetOnboarding(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.GetOnboardingRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(developer_api.GetOnboardingResponse)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublishConnectorList .\n// @router /api/draftbot/publish/connector/list [POST]\nfunc PublishConnectorList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.PublishConnectorListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tif req.BotID == 0 {\n\t\tinvalidParamRequestResponse(c, \"bot id is not set\")\n\t\treturn\n\t}\n\n\tresp, err := singleagent.SingleAgentSVC.GetPublishConnectorList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CheckDraftBotCommit .\n// @router /api/draftbot/commit_check [POST]\nfunc CheckDraftBotCommit(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.CheckDraftBotCommitRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\n\t}\n\tresp := new(developer_api.CheckDraftBotCommitResponse)\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateUserProfileCheck .\n// @router /api/user/update_profile_check [POST]\nfunc UpdateUserProfileCheck(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.UpdateUserProfileCheckRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := user.UserApplicationSVC.UpdateUserProfileCheck(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetTypeList .\n// @router /api/bot/get_type_list [POST]\nfunc GetTypeList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req developer_api.GetTypeListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := modelmgr.ModelmgrApplicationSVC.GetModelList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/intelligence_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\tproject \"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/project\"\n\tpublish \"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/publish\"\n\ttask \"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/task\"\n\tappApplication \"github.com/coze-dev/coze-studio/backend/application/app\"\n\t\"github.com/coze-dev/coze-studio/backend/application/search\"\n)\n\n// GetDraftIntelligenceList .\n// @router /api/intelligence_api/search/get_draft_intelligence_list [POST]\nfunc GetDraftIntelligenceList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req intelligence.GetDraftIntelligenceListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := search.SearchSVC.GetDraftIntelligenceList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetDraftIntelligenceInfo .\n// @router /api/intelligence_api/search/get_draft_intelligence_info [POST]\nfunc GetDraftIntelligenceInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req intelligence.GetDraftIntelligenceInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.IntelligenceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid intelligence id\")\n\t\treturn\n\t}\n\tif req.IntelligenceType != common.IntelligenceType_Project {\n\t\tinvalidParamRequestResponse(c, fmt.Sprintf(\"invalid intelligence type '%d'\", req.IntelligenceType))\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.GetDraftIntelligenceInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetUserRecentlyEditIntelligence .\n// @router /api/intelligence_api/search/get_recently_edit_intelligence [POST]\nfunc GetUserRecentlyEditIntelligence(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req intelligence.GetUserRecentlyEditIntelligenceRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(intelligence.GetUserRecentlyEditIntelligenceResponse)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DraftProjectCreate .\n// @router /api/intelligence_api/draft_project/create [POST]\nfunc DraftProjectCreate(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req project.DraftProjectCreateRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.SpaceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid space id\")\n\t\treturn\n\t}\n\tif req.Name == \"\" || len(req.Name) > 256 {\n\t\tinvalidParamRequestResponse(c, \"invalid name\")\n\t\treturn\n\t}\n\tif req.IconURI == \"\" || len(req.IconURI) > 512 {\n\t\tinvalidParamRequestResponse(c, \"invalid icon uri\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.DraftProjectCreate(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DraftProjectUpdate .\n// @router /api/intelligence_api/draft_project/update [POST]\nfunc DraftProjectUpdate(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req project.DraftProjectUpdateRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid project id\")\n\t\treturn\n\t}\n\tif req.Name != nil && (len(*req.Name) == 0 || len(*req.Name) > 256) {\n\t\tinvalidParamRequestResponse(c, \"invalid name\")\n\t\treturn\n\t}\n\tif req.IconURI != nil && (len(*req.IconURI) == 0 || len(*req.IconURI) > 512) {\n\t\tinvalidParamRequestResponse(c, \"invalid icon uri\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.DraftProjectUpdate(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DraftProjectDelete .\n// @router /api/intelligence_api/draft_project/delete [POST]\nfunc DraftProjectDelete(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req project.DraftProjectDeleteRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid project id\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.DraftProjectDelete(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetProjectPublishedConnector .\n// @router /api/intelligence_api/publish/get_published_connector [POST]\nfunc GetProjectPublishedConnector(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req publish.GetProjectPublishedConnectorRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(publish.GetProjectPublishedConnectorResponse)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CheckProjectVersionNumber .\n// @router /api/intelligence_api/publish/check_version_number [POST]\nfunc CheckProjectVersionNumber(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req publish.CheckProjectVersionNumberRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid project id\")\n\t\treturn\n\t}\n\tif req.VersionNumber == \"\" {\n\t\tinvalidParamRequestResponse(c, \"invalid version number\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.CheckProjectVersionNumber(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublishProject .\n// @router /api/intelligence_api/publish/publish_project [POST]\nfunc PublishProject(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req publish.PublishProjectRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid project id\")\n\t\treturn\n\t}\n\tif req.VersionNumber == \"\" {\n\t\tinvalidParamRequestResponse(c, \"invalid version number\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.PublishAPP(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetPublishRecordList .\n// @router /api/intelligence_api/publish/publish_record_list [POST]\nfunc GetPublishRecordList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req publish.GetPublishRecordListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid project id\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.GetPublishRecordList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ProjectPublishConnectorList .\n// @router /api/intelligence_api/publish/connector_list [POST]\nfunc ProjectPublishConnectorList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req publish.PublishConnectorListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid project id\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.ProjectPublishConnectorList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetPublishRecordDetail .\n// @router /api/intelligence_api/publish/publish_record_detail [POST]\nfunc GetPublishRecordDetail(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req publish.GetPublishRecordDetailRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid project id\")\n\t\treturn\n\t}\n\tif req.PublishRecordID != nil && *req.PublishRecordID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid publish record id\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.GetPublishRecordDetail(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DraftProjectInnerTaskList .\n// @router /api/intelligence_api/draft_project/inner_task_list [POST]\nfunc DraftProjectInnerTaskList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req task.DraftProjectInnerTaskListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid project id\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.DraftProjectInnerTaskList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DraftProjectCopy .\n// @router /api/intelligence_api/draft_project/copy [POST]\nfunc DraftProjectCopy(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req project.DraftProjectCopyRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid project id\")\n\t\treturn\n\t}\n\tif req.ToSpaceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"invalid to space id\")\n\t\treturn\n\t}\n\tif req.Name == \"\" || len(req.Name) > 256 {\n\t\tinvalidParamRequestResponse(c, \"invalid name\")\n\t\treturn\n\t}\n\tif req.IconURI == \"\" || len(req.IconURI) > 512 {\n\t\tinvalidParamRequestResponse(c, \"invalid icon uri\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.DraftProjectCopy(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetOnlineAppData .\n// @router /v1/apps/:app_id [GET]\nfunc GetOnlineAppData(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req project.GetOnlineAppDataRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.GetOnlineAppData(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/knowledge_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\tdataset \"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge\"\n\t\"github.com/coze-dev/coze-studio/backend/application/knowledge\"\n\tapplication \"github.com/coze-dev/coze-studio/backend/application/knowledge\"\n\t\"github.com/coze-dev/coze-studio/backend/application/memory\"\n\t\"github.com/coze-dev/coze-studio/backend/application/upload\"\n)\n\n// CreateDataset .\n// @router /api/knowledge/create [POST]\nfunc CreateDataset(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.CreateDatasetRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\tresp := new(dataset.CreateDatasetResponse)\n\tresp, err = application.KnowledgeSVC.CreateKnowledge(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DatasetDetail .\n// @router /api/knowledge/detail [POST]\nfunc DatasetDetail(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.DatasetDetailRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\tresp := new(dataset.DatasetDetailResponse)\n\tresp, err = application.KnowledgeSVC.DatasetDetail(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListDataset .\n// @router /api/knowledge/list [POST]\nfunc ListDataset(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.ListDatasetRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.ListDatasetResponse)\n\tresp, err = application.KnowledgeSVC.ListKnowledge(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteDataset .\n// @router /api/knowledge/delete [POST]\nfunc DeleteDataset(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.DeleteDatasetRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.DeleteDatasetResponse)\n\tresp, err = application.KnowledgeSVC.DeleteKnowledge(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateDataset .\n// @router /api/knowledge/update [POST]\nfunc UpdateDataset(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.UpdateDatasetRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.UpdateDatasetResponse)\n\tresp, err = application.KnowledgeSVC.UpdateKnowledge(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CreateDocument .\n// @router /api/knowledge/document/create [POST]\nfunc CreateDocument(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.CreateDocumentRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.CreateDocumentResponse)\n\tresp, err = application.KnowledgeSVC.CreateDocument(ctx, &req, false)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListDocument .\n// @router /api/knowledge/document/list [POST]\nfunc ListDocument(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.ListDocumentRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.ListDocumentResponse)\n\tresp, err = application.KnowledgeSVC.ListDocument(ctx, &req, false)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteDocument .\n// @router /api/knowledge/document/delete [POST]\nfunc DeleteDocument(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.DeleteDocumentRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.DeleteDocumentResponse)\n\tresp, err = application.KnowledgeSVC.DeleteDocument(ctx, &req, false)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateDocument .\n// @router /api/knowledge/document/update [POST]\nfunc UpdateDocument(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.UpdateDocumentRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.UpdateDocumentResponse)\n\tresp, err = application.KnowledgeSVC.UpdateDocument(ctx, &req, false)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetDocumentProgress .\n// @router /api/knowledge/document/progress/get [POST]\nfunc GetDocumentProgress(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.GetDocumentProgressRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.GetDocumentProgressResponse)\n\tresp, err = application.KnowledgeSVC.GetDocumentProgress(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// Resegment .\n// @router /api/knowledge/document/resegment [POST]\nfunc Resegment(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.ResegmentRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.ResegmentResponse)\n\tresp, err = application.KnowledgeSVC.Resegment(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdatePhotoCaption .\n// @router /api/knowledge/photo/caption [POST]\nfunc UpdatePhotoCaption(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.UpdatePhotoCaptionRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.UpdatePhotoCaptionResponse)\n\tresp, err = application.KnowledgeSVC.UpdatePhotoCaption(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListPhoto .\n// @router /api/knowledge/photo/list [POST]\nfunc ListPhoto(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.ListPhotoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.ListPhotoResponse)\n\tresp, err = application.KnowledgeSVC.ListPhoto(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PhotoDetail .\n// @router /api/knowledge/photo/detail [POST]\nfunc PhotoDetail(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.PhotoDetailRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.PhotoDetailResponse)\n\tresp, err = application.KnowledgeSVC.PhotoDetail(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetTableSchema .\n// @router /api/knowledge/table_schema/get [POST]\nfunc GetTableSchema(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.GetTableSchemaRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.GetTableSchemaResponse)\n\tresp, err = application.KnowledgeSVC.GetTableSchema(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ValidateTableSchema .\n// @router /api/knowledge/table_schema/validate [POST]\nfunc ValidateTableSchema(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.ValidateTableSchemaRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.ValidateTableSchemaResponse)\n\tresp, err = application.KnowledgeSVC.ValidateTableSchema(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteSlice .\n// @router /api/knowledge/slice/delete [POST]\nfunc DeleteSlice(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.DeleteSliceRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.DeleteSliceResponse)\n\tresp, err = application.KnowledgeSVC.DeleteSlice(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CreateSlice .\n// @router /api/knowledge/slice/create [POST]\nfunc CreateSlice(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.CreateSliceRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.CreateSliceResponse)\n\tresp, err = application.KnowledgeSVC.CreateSlice(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateSlice .\n// @router /api/knowledge/slice/update [POST]\nfunc UpdateSlice(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.UpdateSliceRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.UpdateSliceResponse)\n\tresp, err = application.KnowledgeSVC.UpdateSlice(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListSlice .\n// @router /api/knowledge/slice/list [POST]\nfunc ListSlice(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.ListSliceRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.ListSliceResponse)\n\tresp, err = application.KnowledgeSVC.ListSlice(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CreateDocumentReview .\n// @router /api/knowledge/review/create [POST]\nfunc CreateDocumentReview(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.CreateDocumentReviewRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.CreateDocumentReviewResponse)\n\tresp, err = application.KnowledgeSVC.CreateDocumentReview(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// MGetDocumentReview .\n// @router /api/knowledge/review/mget [POST]\nfunc MGetDocumentReview(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.MGetDocumentReviewRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.MGetDocumentReviewResponse)\n\tresp, err = application.KnowledgeSVC.MGetDocumentReview(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// SaveDocumentReview .\n// @router /api/knowledge/review/save [POST]\nfunc SaveDocumentReview(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.SaveDocumentReviewRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.SaveDocumentReviewResponse)\n\tresp, err = application.KnowledgeSVC.SaveDocumentReview(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetIconForDataset .\n// @router /api/knowledge/icon/get [POST]\nfunc GetIconForDataset(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.GetIconRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.GetIconResponse)\n\tresp, err = upload.SVC.GetIconForDataset(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ExtractPhotoCaption .\n// @router /api/knowledge/photo/extract_caption [POST]\nfunc ExtractPhotoCaption(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.ExtractPhotoCaptionRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.ExtractPhotoCaptionResponse)\n\tresp, err = application.KnowledgeSVC.ExtractPhotoCaption(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetDocumentTableInfo .\n// @router /api/memory/doc_table_info [GET]\nfunc GetDocumentTableInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.GetDocumentTableInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.GetDocumentTableInfoResponse)\n\tresp, err = knowledge.KnowledgeSVC.GetDocumentTableInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetModeConfig .\n// @router /api/memory/table_mode_config [GET]\nfunc GetModeConfig(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.GetModeConfigRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tif req.BotID == 0 {\n\t\tinvalidParamRequestResponse(c, \"bot_id is zero\")\n\t\treturn\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.GetModeConfig(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CreateDocumentOpenAPI .\n// @router /open_api/knowledge/document/create [POST]\nfunc CreateDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.CreateDocumentRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.CreateDocumentResponse)\n\tresp, err = application.KnowledgeSVC.CreateDocument(ctx, &req, true)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteDocumentOpenAPI .\n// @router /open_api/knowledge/document/delete [POST]\nfunc DeleteDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.DeleteDocumentRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.DeleteDocumentResponse)\n\tresp, err = application.KnowledgeSVC.DeleteDocument(ctx, &req, true)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateDocumentOpenAPI .\n// @router /open_api/knowledge/document/update [POST]\nfunc UpdateDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.UpdateDocumentRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.UpdateDocumentResponse)\n\tresp, err = application.KnowledgeSVC.UpdateDocument(ctx, &req, true)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListDocumentOpenAPI .\n// @router /open_api/knowledge/document/list [POST]\nfunc ListDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.ListDocumentRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(dataset.ListDocumentResponse)\n\tresp, err = application.KnowledgeSVC.ListDocument(ctx, &req, true)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CreateDatasetOpenAPI .\n// @router /v1/datasets [POST]\nfunc CreateDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.CreateDatasetOpenApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.KnowledgeSVC.CreateKnowledgeAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListDatasetOpenAPI .\n// @router /v1/datasets [GET]\nfunc ListDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.ListDatasetOpenApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.KnowledgeSVC.ListKnowledgeAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateDatasetOpenAPI .\n// @router /v1/datasets/:dataset_id [PUT]\nfunc UpdateDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.UpdateDatasetOpenApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.KnowledgeSVC.UpdateKnowledgeAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteDatasetOpenAPI .\n// @router /v1/datasets/:dataset_id [DELETE]\nfunc DeleteDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.DeleteDatasetOpenApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.KnowledgeSVC.DeleteKnowledgeAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListPhotoDocumentOpenAPI .\n// @router /v1/datasets/:dataset_id/images [GET]\nfunc ListPhotoDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.ListPhotoOpenApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.KnowledgeSVC.ListPhotoAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetDocumentProgressOpenAPI .\n// @router /v1/datasets/:dataset_id/process [POST]\nfunc GetDocumentProgressOpenAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req dataset.GetDocumentProgressOpenApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.KnowledgeSVC.GetDocumentProgressAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/memory_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/variable/kvmemory\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/variable/project_memory\"\n\tappApplication \"github.com/coze-dev/coze-studio/backend/application/app\"\n\t\"github.com/coze-dev/coze-studio/backend/application/memory\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n)\n\n// GetSysVariableConf .\n// @router /api/memory/sys_variable_conf [GET]\nfunc GetSysVariableConf(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req kvmemory.GetSysVariableConfRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.VariableApplicationSVC.GetSysVariableConf(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetProjectVariableList .\n// @router /api/memory/project/variable/meta_list [GET]\nfunc GetProjectVariableList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req project_memory.GetProjectVariableListReq\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tif req.ProjectID == \"\" {\n\t\tinvalidParamRequestResponse(c, \"project_id is empty\")\n\t\treturn\n\t}\n\n\tpID, err := conv.StrToInt64(req.ProjectID)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, \"project_id is not int\")\n\t\treturn\n\t}\n\n\tpInfo, err := appApplication.APPApplicationSVC.DomainSVC.GetDraftAPP(ctx, pID)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tresp, err := memory.VariableApplicationSVC.GetProjectVariablesMeta(ctx, pInfo.OwnerID, &req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateProjectVariable .\n// @router /api/memory/project/variable/meta_update [POST]\nfunc UpdateProjectVariable(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req project_memory.UpdateProjectVariableReq\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tif req.ProjectID == \"\" {\n\t\tinvalidParamRequestResponse(c, \"project_id is empty\")\n\t\treturn\n\t}\n\n\tkey2Var := make(map[string]*project_memory.Variable)\n\tfor _, v := range req.VariableList {\n\t\tif v.Keyword == \"\" {\n\t\t\tinvalidParamRequestResponse(c, \"variable name is empty\")\n\t\t\treturn\n\t\t}\n\n\t\tif key2Var[v.Keyword] != nil {\n\t\t\tinvalidParamRequestResponse(c, \"variable keyword is duplicate\")\n\t\t\treturn\n\t\t}\n\n\t\tkey2Var[v.Keyword] = v\n\t}\n\n\tresp, err := memory.VariableApplicationSVC.UpdateProjectVariable(ctx, req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// SetKvMemory .\n// @router /api/memory/variable/upsert [POST]\nfunc SetKvMemory(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req kvmemory.SetKvMemoryReq\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tif req.BotID == 0 && req.GetProjectID() == \"\" {\n\t\tinvalidParamRequestResponse(c, \"bot_id and project_id are both empty\")\n\t\treturn\n\t}\n\n\tif len(req.Data) == 0 {\n\t\tinvalidParamRequestResponse(c, \"data is empty\")\n\t\treturn\n\t}\n\n\tresp, err := memory.VariableApplicationSVC.SetVariableInstance(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetMemoryVariableMeta .\n// @router /api/memory/variable/get_meta [POST]\nfunc GetMemoryVariableMeta(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req project_memory.GetMemoryVariableMetaReq\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := memory.VariableApplicationSVC.GetVariableMeta(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DelProfileMemory .\n// @router /api/memory/variable/delete [POST]\nfunc DelProfileMemory(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req kvmemory.DelProfileMemoryRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tif req.BotID == 0 && req.GetProjectID() == \"\" {\n\t\tinvalidParamRequestResponse(c, \"bot_id and project_id are both empty\")\n\t\treturn\n\t}\n\n\tresp, err := memory.VariableApplicationSVC.DeleteVariableInstance(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetPlayGroundMemory .\n// @router /api/memory/variable/get [POST]\nfunc GetPlayGroundMemory(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req kvmemory.GetProfileMemoryRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tif req.BotID == 0 && req.GetProjectID() == \"\" {\n\t\tinvalidParamRequestResponse(c, \"bot_id and project_id are both empty\")\n\t\treturn\n\t}\n\n\tresp, err := memory.VariableApplicationSVC.GetPlayGroundMemory(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/message_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage coze\n\nimport (\n\t\"context\"\n\t\"errors\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/message\"\n\tapplication \"github.com/coze-dev/coze-studio/backend/application/conversation\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\n// GetMessageList .\n// @router /api/conversation/get_message_list [POST]\nfunc GetMessageList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req message.GetMessageListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif checkErr := checkMLParams(ctx, &req); checkErr != nil {\n\t\tinvalidParamRequestResponse(c, checkErr.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.ConversationSVC.GetMessageList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\nfunc checkMLParams(ctx context.Context, req *message.GetMessageListRequest) error {\n\tif req.BotID == \"\" {\n\t\treturn errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV(\"msg\", \"agent id is required\"))\n\t}\n\n\treturn nil\n}\n\n// DeleteMessage .\n// @router /api/conversation/delete_message [POST]\nfunc DeleteMessage(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req message.DeleteMessageRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tif checkErr := checkDMParams(ctx, &req); checkErr != nil {\n\t\tinvalidParamRequestResponse(c, checkErr.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.ConversationSVC.DeleteMessage(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\nfunc checkDMParams(_ context.Context, req *message.DeleteMessageRequest) error {\n\tif req.MessageID <= 0 {\n\t\treturn errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV(\"msg\", \"message id is invalid\"))\n\t}\n\n\treturn nil\n}\n\n// BreakMessage .\n// @router /api/conversation/break_message [POST]\nfunc BreakMessage(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req message.BreakMessageRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif checkErr := checkBMParams(ctx, &req); checkErr != nil {\n\t\tinvalidParamRequestResponse(c, checkErr.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.ConversationSVC.BreakMessage(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\nfunc checkBMParams(_ context.Context, req *message.BreakMessageRequest) error {\n\tif req.AnswerMessageID == nil {\n\t\treturn errors.New(\"answer message id is required\")\n\t}\n\tif *req.AnswerMessageID <= 0 {\n\t\treturn errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV(\"msg\", \"answer message id is invalid\"))\n\t}\n\n\treturn nil\n}\n\n// GetApiMessageList .\n// @router /v1/conversation/message/list [POST]\nfunc GetApiMessageList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req message.ListMessageApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.OpenapiMessageSVC.GetApiMessageList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListChatMessageApi .\n// @router /v3/chat/message/list [GET]\nfunc ListChatMessageApi(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req message.ListChatMessageApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := application.ConversationOpenAPISVC.ListChatMessageApi(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/message_service_test.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage coze\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/bytedance/sonic\"\n\t\"github.com/cloudwego/hertz/pkg/app/server\"\n\t\"github.com/cloudwego/hertz/pkg/common/ut\"\n\t\"github.com/stretchr/testify/assert\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/message\"\n\t\"github.com/coze-dev/coze-studio/backend/application\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n)\n\nfunc TestGetMessageList(t *testing.T) {\n\th := server.Default()\n\terr := application.Init(context.Background())\n\n\tt.Logf(\"application init err: %v\", err)\n\n\th.POST(\"/api/conversation/get_message_list\", GetMessageList)\n\treq := &message.GetMessageListRequest{\n\t\tBotID:          \"7366055842027922437\",\n\t\tScene:          ptr.Of(common.Scene_Playground),\n\t\tConversationID: \"7496795464885338112\",\n\t\tCount:          10,\n\t\tCursor:         \"1746534530268\",\n\t}\n\tm, err := sonic.Marshal(req)\n\tassert.Nil(t, err)\n\tw := ut.PerformRequest(h.Engine, \"POST\", \"/api/conversation/get_message_list\", &ut.Body{Body: bytes.NewBuffer(m), Len: len(m)}, ut.Header{Key: \"Content-Type\", Value: \"application/json\"})\n\tres := w.Result()\n\tt.Logf(\"get message list: %s\", res.Body())\n\n\tassert.Equal(t, http.StatusInternalServerError, w.Code)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/open_apiauth_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/permission/openapiauth\"\n\topenapiauthApp \"github.com/coze-dev/coze-studio/backend/application/openauth\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\n// GetPersonalAccessTokenAndPermission .\n// @router /api/permission_api/pat/get_personal_access_token_and_permission [GET]\nfunc GetPersonalAccessTokenAndPermission(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req openapiauth.GetPersonalAccessTokenAndPermissionRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ID == 0 {\n\t\tinvalidParamRequestResponse(c, \"id is required\")\n\t\treturn\n\t}\n\n\tresp, err := openapiauthApp.OpenAuthApplication.GetPersonalAccessTokenAndPermission(ctx, &req)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplicationService.GetPersonalAccessTokenAndPermission failed, err=%v\", err)\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeletePersonalAccessTokenAndPermission .\n// @router /api/permission_api/pat/delete_personal_access_token_and_permission [POST]\nfunc DeletePersonalAccessTokenAndPermission(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req openapiauth.DeletePersonalAccessTokenAndPermissionRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"id is required\")\n\t\treturn\n\t}\n\n\tresp, err := openapiauthApp.OpenAuthApplication.DeletePersonalAccessTokenAndPermission(ctx, &req)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplication.DeletePersonalAccessTokenAndPermission failed, err=%v\", err)\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListPersonalAccessTokens .\n// @router /api/permission_api/pat/list_personal_access_tokens [GET]\nfunc ListPersonalAccessTokens(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req openapiauth.ListPersonalAccessTokensRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.Page == nil || *req.Page <= 0 {\n\t\treq.Page = ptr.Of(int64(1))\n\t}\n\tif req.Size == nil || *req.Size <= 0 {\n\t\treq.Size = ptr.Of(int64(10))\n\t}\n\n\tresp, err := openapiauthApp.OpenAuthApplication.ListPersonalAccessTokens(ctx, &req)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplication.ListPersonalAccessTokens failed, err=%v\", err)\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CreatePersonalAccessTokenAndPermission .\n// @router /api/permission_api/pat/create_personal_access_token_and_permission [POST]\nfunc CreatePersonalAccessTokenAndPermission(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req openapiauth.CreatePersonalAccessTokenAndPermissionRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif err = checkCPATParams(ctx, &req); err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := openapiauthApp.OpenAuthApplication.CreatePersonalAccessToken(ctx, &req)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplicationService.CreatePersonalAccessToken failed, err=%v\", err)\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// checkCPATParams Check parameters for creating personal access tokens\nfunc checkCPATParams(ctx context.Context, req *openapiauth.CreatePersonalAccessTokenAndPermissionRequest) error {\n\n\tif req.Name == \"\" {\n\t\treturn errorx.New(errno.ErrPermissionInvalidParamCode, errorx.KV(\"msg\", \"name is required\"))\n\t}\n\treturn nil\n}\n\n// UpdatePersonalAccessTokenAndPermission .\n// @router /api/permission_api/pat/update_personal_access_token_and_permission [POST]\nfunc UpdatePersonalAccessTokenAndPermission(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req openapiauth.UpdatePersonalAccessTokenAndPermissionRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := openapiauthApp.OpenAuthApplication.UpdatePersonalAccessTokenAndPermission(ctx, &req)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplication.UpdatePersonalAccessTokenAndPermission failed, err=%v\", err)\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/passport_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/passport\"\n\t\"github.com/coze-dev/coze-studio/backend/application/user\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/user/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/hertzutil/domain\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/i18n\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\n// PassportWebEmailRegisterV2Post .\n// @router /passport/web/email/register/v2/ [POST]\nfunc PassportWebEmailRegisterV2Post(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req passport.PassportWebEmailRegisterV2PostRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tlocale := string(i18n.GetLocale(ctx))\n\n\tresp, sessionKey, err := user.UserApplicationSVC.PassportWebEmailRegisterV2(ctx, locale, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.SetCookie(entity.SessionKey,\n\t\tsessionKey,\n\t\tconsts.SessionMaxAgeSecond,\n\t\t\"/\", domain.GetOriginHost(c),\n\t\tprotocol.CookieSameSiteDefaultMode,\n\t\tfalse, true)\n\n\tc.JSON(http.StatusOK, resp)\n}\n\n// PassportWebLogoutGet .\n// @router /passport/web/logout/ [GET]\nfunc PassportWebLogoutGet(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req passport.PassportWebLogoutGetRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(http.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := user.UserApplicationSVC.PassportWebLogoutGet(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, resp)\n}\n\n// PassportWebEmailLoginPost .\n// @router /passport/web/email/login/ [POST]\nfunc PassportWebEmailLoginPost(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req passport.PassportWebEmailLoginPostRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(http.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, sessionKey, err := user.UserApplicationSVC.PassportWebEmailLoginPost(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tlogs.Infof(\"[PassportWebEmailLoginPost] sessionKey: %s\", sessionKey)\n\n\tc.SetCookie(entity.SessionKey,\n\t\tsessionKey,\n\t\tconsts.SessionMaxAgeSecond,\n\t\t\"/\", domain.GetOriginHost(c),\n\t\tprotocol.CookieSameSiteDefaultMode,\n\t\tfalse, true)\n\tc.JSON(http.StatusOK, resp)\n}\n\n// PassportWebEmailPasswordResetGet .\n// @router /passport/web/email/password/reset/ [GET]\nfunc PassportWebEmailPasswordResetGet(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req passport.PassportWebEmailPasswordResetGetRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(http.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := user.UserApplicationSVC.PassportWebEmailPasswordResetGet(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, resp)\n}\n\n// PassportAccountInfoV2 .\n// @router /passport/account/info/v2/ [POST]\nfunc PassportAccountInfoV2(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req passport.PassportAccountInfoV2Request\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(http.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := user.UserApplicationSVC.PassportAccountInfoV2(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, resp)\n}\n\n// UserUpdateAvatar .\n// @router web/user/update/upload_avatar/ [POST]\nfunc UserUpdateAvatar(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req passport.UserUpdateAvatarRequest\n\n\t// Get the uploaded file\n\tfile, err := c.FormFile(\"avatar\")\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"Get Avatar Fail failed, err=%v\", err)\n\t\tinvalidParamRequestResponse(c, \"missing avatar file\")\n\t\treturn\n\t}\n\n\t// Check file type\n\tif !strings.HasPrefix(file.Header.Get(\"Content-Type\"), \"image/\") {\n\t\tinvalidParamRequestResponse(c, \"invalid file type, only image allowed\")\n\t\treturn\n\t}\n\n\t// Read file content\n\tsrc, err := file.Open()\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tdefer src.Close()\n\n\tfileContent, err := io.ReadAll(src)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\treq.Avatar = fileContent\n\tmimeType := file.Header.Get(\"Content-Type\")\n\n\tresp, err := user.UserApplicationSVC.UserUpdateAvatar(ctx, mimeType, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, resp)\n}\n\n// UserUpdateProfile .\n// @router api/user/update_profile [POST]\nfunc UserUpdateProfile(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req passport.UserUpdateProfileRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(http.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := user.UserApplicationSVC.UserUpdateProfile(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/playground_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\tappApplication \"github.com/coze-dev/coze-studio/backend/application/app\"\n\t\"github.com/coze-dev/coze-studio/backend/application/prompt\"\n\t\"github.com/coze-dev/coze-studio/backend/application/shortcutcmd\"\n\t\"github.com/coze-dev/coze-studio/backend/application/singleagent\"\n\t\"github.com/coze-dev/coze-studio/backend/application/upload\"\n\t\"github.com/coze-dev/coze-studio/backend/application/user\"\n)\n\n// UpdateDraftBotInfoAgw .\n// @router /api/playground_api/draftbot/update_draft_bot_info [POST]\nfunc UpdateDraftBotInfoAgw(ctx context.Context, c *app.RequestContext) {\n\tvar req playground.UpdateDraftBotInfoAgwRequest\n\terr := c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.BotInfo == nil {\n\t\tinvalidParamRequestResponse(c, \"bot info is nil\")\n\t\treturn\n\t}\n\n\tif req.BotInfo.BotId == nil {\n\t\tinvalidParamRequestResponse(c, \"bot id is nil\")\n\t\treturn\n\t}\n\n\tresp, err := singleagent.SingleAgentSVC.UpdateSingleAgentDraft(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetDraftBotInfoAgw .\n// @router /api/playground_api/draftbot/get_draft_bot_info [POST]\nfunc GetDraftBotInfoAgw(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.GetDraftBotInfoAgwRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.BotID == 0 {\n\t\tinvalidParamRequestResponse(c, \"bot id is nil\")\n\t\treturn\n\t}\n\n\tresp, err := singleagent.SingleAgentSVC.GetAgentBotInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetOfficialPromptResourceList .\n// @router /api/playground_api/get_official_prompt_list [POST]\nfunc GetOfficialPromptResourceList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.GetOfficialPromptResourceListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := prompt.PromptSVC.GetOfficialPromptResourceList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetPromptResourceInfo .\n// @router /api/playground_api/get_prompt_resource_info [GET]\nfunc GetPromptResourceInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.GetPromptResourceInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := prompt.PromptSVC.GetPromptResourceInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpsertPromptResource .\n// @router /api/playground_api/upsert_prompt_resource [POST]\nfunc UpsertPromptResource(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.UpsertPromptResourceRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.Prompt == nil {\n\t\tinvalidParamRequestResponse(c, \"prompt is nil\")\n\t\treturn\n\t}\n\n\tif req.Prompt.GetSpaceID() <= 0 {\n\t\tinvalidParamRequestResponse(c, \"space id is invalid\")\n\t\treturn\n\t}\n\n\tif len(req.Prompt.GetName()) <= 0 {\n\t\tinvalidParamRequestResponse(c, \"name is empty\")\n\t\treturn\n\t}\n\n\tresp, err := prompt.PromptSVC.UpsertPromptResource(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeletePromptResource .\n// @router /api/playground_api/delete_prompt_resource [POST]\nfunc DeletePromptResource(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.DeletePromptResourceRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := prompt.PromptSVC.DeletePromptResource(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetSpaceListV2 .\n// @router /api/playground_api/space/list [POST]\nfunc GetSpaceListV2(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.GetSpaceListV2Request\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := user.UserApplicationSVC.GetSpaceListV2(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetImagexShortUrl .\n// @router /api/playground_api/get_imagex_url [POST]\nfunc GetImagexShortUrl(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.GetImagexShortUrlRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif len(req.Uris) == 0 {\n\t\tinvalidParamRequestResponse(c, \"uris is empty\")\n\t\treturn\n\t}\n\n\tresp, err := singleagent.SingleAgentSVC.GetImagexShortUrl(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// MGetUserBasicInfo .\n// @router /api/playground_api/mget_user_info [POST]\nfunc MGetUserBasicInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.MGetUserBasicInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := user.UserApplicationSVC.MGetUserBasicInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetBotPopupInfo .\n// @router /api/playground_api/operate/get_bot_popup_info [POST]\nfunc GetBotPopupInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.GetBotPopupInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif len(req.BotPopupTypes) == 0 {\n\t\tinvalidParamRequestResponse(c, \"bot popup types is empty\")\n\t\treturn\n\t}\n\n\tresp, err := singleagent.SingleAgentSVC.GetAgentPopupInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateBotPopupInfo .\n// @router /api/playground_api/operate/update_bot_popup_info [POST]\nfunc UpdateBotPopupInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.UpdateBotPopupInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := singleagent.SingleAgentSVC.UpdateAgentPopupInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CreateUpdateShortcutCommand .\n// @router /api/playground_api/create_update_shortcut_command [POST]\nfunc CreateUpdateShortcutCommand(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.CreateUpdateShortcutCommandRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tshortCuts, err := shortcutcmd.ShortcutCmdSVC.Handler(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tresp := new(playground.CreateUpdateShortcutCommandResponse)\n\tresp.Shortcuts = shortCuts\n\tresp.Code = 0\n\tresp.Msg = \"\"\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ReportUserBehavior .\n// @router /api/playground_api/report_user_behavior [POST]\nfunc ReportUserBehavior(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.ReportUserBehaviorRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ResourceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"resource id is invalid\")\n\t\treturn\n\t}\n\n\tresp := new(playground.ReportUserBehaviorResponse)\n\n\tif req.ResourceType == playground.SpaceResourceType_DraftBot {\n\t\tresp, err = singleagent.SingleAgentSVC.ReportUserBehavior(ctx, &req)\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\t} else if req.ResourceType == playground.SpaceResourceType_Project {\n\t\tresp, err = appApplication.APPApplicationSVC.ReportUserBehavior(ctx, &req)\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetFileUrls .\n// @router /api/playground_api/get_file_list [POST]\nfunc GetFileUrls(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req playground.GetFileUrlsRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\ticonList, err := upload.SVC.GetShortcutIcons(ctx)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tresp := new(playground.GetFileUrlsResponse)\n\tresp.FileList = iconList\n\tresp.Code = 0\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/plugin_develop_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\t\"regexp\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop\"\n\tcommon \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/plugin\"\n\tappworkflow \"github.com/coze-dev/coze-studio/backend/application/workflow\"\n)\n\n// GetPlaygroundPluginList .\n// @router /api/plugin_api/get_playground_plugin_list [POST]\nfunc GetPlaygroundPluginList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetPlaygroundPluginListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.GetSpaceID() <= 0 {\n\t\tinvalidParamRequestResponse(c, \"spaceID is invalid\")\n\t\treturn\n\t}\n\tif req.GetPage() <= 0 {\n\t\tinvalidParamRequestResponse(c, \"page is invalid\")\n\t\treturn\n\t}\n\tif req.GetSize() >= 30 {\n\t\tinvalidParamRequestResponse(c, \"size is invalid\")\n\t\treturn\n\t}\n\n\t// when there is only one element in the types list, and the element type is workflow, use workflow service\n\t// TODO Figure out when there are multiple values for types\n\tif len(req.GetPluginTypes()) == 1 && req.GetPluginTypes()[0] == int32(common.PluginType_WORKFLOW) {\n\t\tresp, err := appworkflow.SVC.GetPlaygroundPluginList(ctx, &req)\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\t\tc.JSON(consts.StatusOK, resp)\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetPlaygroundPluginList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// RegisterPluginMeta .\n// @router /api/plugin_api/register_plugin_meta [POST]\nfunc RegisterPluginMeta(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.RegisterPluginMetaRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.GetName() == \"\" {\n\t\tinvalidParamRequestResponse(c, \"plugin name is invalid\")\n\t\treturn\n\t}\n\tif req.GetDesc() == \"\" {\n\t\tinvalidParamRequestResponse(c, \"plugin desc is invalid\")\n\t\treturn\n\t}\n\tif req.URL != nil && (*req.URL == \"\" || len(*req.URL) > 512) {\n\t\tinvalidParamRequestResponse(c, \"plugin url is invalid\")\n\t\treturn\n\t}\n\tif req.Icon == nil || req.Icon.URI == \"\" || len(req.Icon.URI) > 512 {\n\t\tinvalidParamRequestResponse(c, \"plugin icon is invalid\")\n\t\treturn\n\t}\n\tif req.AuthType == nil {\n\t\tinvalidParamRequestResponse(c, \"plugin auth type is invalid\")\n\t\treturn\n\t}\n\tif req.SpaceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"spaceID is invalid\")\n\t\treturn\n\t}\n\tif req.ProjectID != nil {\n\t\tif *req.ProjectID <= 0 {\n\t\t\tinvalidParamRequestResponse(c, \"projectID is invalid\")\n\t\t\treturn\n\t\t}\n\t}\n\tif req.GetPluginType() != common.PluginType_PLUGIN {\n\t\tinvalidParamRequestResponse(c, \"plugin type is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.RegisterPluginMeta(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetPluginAPIs .\n// @router /api/plugin_api/get_plugin_apis [POST]\nfunc GetPluginAPIs(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetPluginAPIsRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\tif len(req.APIIds) == 0 {\n\t\tif req.Page <= 0 {\n\t\t\tinvalidParamRequestResponse(c, \"page is invalid\")\n\t\t\treturn\n\t\t}\n\t\tif req.Size >= 30 {\n\t\t\tinvalidParamRequestResponse(c, \"size is invalid\")\n\t\t\treturn\n\t\t}\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetPluginAPIs(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetPluginInfo .\n// @router /api/plugin_api/get_plugin_info [POST]\nfunc GetPluginInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetPluginInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetPluginInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetUpdatedAPIs .\n// @router /api/plugin_api/get_updated_apis [POST]\nfunc GetUpdatedAPIs(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetUpdatedAPIsRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetUpdatedAPIs(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetOAuthStatus .\n// @router /api/plugin_api/get_oauth_status [POST]\nfunc GetOAuthStatus(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetOAuthStatusRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetOAuthStatus(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CheckAndLockPluginEdit .\n// @router /api/plugin_api/check_and_lock_plugin_edit [POST]\nfunc CheckAndLockPluginEdit(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.CheckAndLockPluginEditRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.CheckAndLockPluginEdit(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdatePlugin .\n// @router /api/plugin_api/update [POST]\nfunc UpdatePlugin(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.UpdatePluginRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\tif req.AiPlugin == \"\" {\n\t\tinvalidParamRequestResponse(c, \"plugin manifest is invalid\")\n\t\treturn\n\t}\n\tif req.Openapi == \"\" {\n\t\tinvalidParamRequestResponse(c, \"plugin openapi doc is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.UpdatePlugin(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteAPI .\n// @router /api/plugin_api/delete_api [POST]\nfunc DeleteAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.DeleteAPIRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\tif req.APIID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"apiID is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.DeleteAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DelPlugin .\n// @router /api/plugin_api/del_plugin [POST]\nfunc DelPlugin(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.DelPluginRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.DelPlugin(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublishPlugin .\n// @router /api/plugin_api/publish_plugin [POST]\nfunc PublishPlugin(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.PublishPluginRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\tif req.VersionName == \"\" || len(req.VersionName) > 255 {\n\t\tinvalidParamRequestResponse(c, \"version name is invalid\")\n\t\treturn\n\t}\n\n\tmatch, _ := regexp.MatchString(`^v\\d+\\.\\d+\\.\\d+$`, req.VersionName)\n\tif !match {\n\t\tinvalidParamRequestResponse(c, \"version name is invalid\")\n\t\treturn\n\t}\n\n\tif req.VersionDesc == \"\" {\n\t\tinvalidParamRequestResponse(c, \"version desc is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.PublishPlugin(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdatePluginMeta .\n// @router /api/plugin_api/update_plugin_meta [POST]\nfunc UpdatePluginMeta(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.UpdatePluginMetaRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\tif req.Name != nil && *req.Name == \"\" {\n\t\tinvalidParamRequestResponse(c, \"plugin name is invalid\")\n\t\treturn\n\t}\n\tif req.Desc != nil && *req.Desc == \"\" {\n\t\tinvalidParamRequestResponse(c, \"plugin desc is invalid\")\n\t\treturn\n\t}\n\tif req.URL != nil && (*req.URL == \"\" || len(*req.URL) > 512) {\n\t\tinvalidParamRequestResponse(c, \"plugin server url is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.UpdatePluginMeta(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetBotDefaultParams .\n// @router /api/plugin_api/get_bot_default_params [POST]\nfunc GetBotDefaultParams(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetBotDefaultParamsRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.SpaceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"spaceID is invalid\")\n\t\treturn\n\t}\n\tif req.BotID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"botID is invalid\")\n\t\treturn\n\t}\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\tif req.APIName == \"\" {\n\t\tinvalidParamRequestResponse(c, \"apiName is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetBotDefaultParams(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateBotDefaultParams .\n// @router /api/plugin_api/update_bot_default_params [POST]\nfunc UpdateBotDefaultParams(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.UpdateBotDefaultParamsRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.SpaceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"spaceID is invalid\")\n\t\treturn\n\t}\n\tif req.BotID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"botID is invalid\")\n\t\treturn\n\t}\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\tif req.APIName == \"\" {\n\t\tinvalidParamRequestResponse(c, \"apiName is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.UpdateBotDefaultParams(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CreateAPI .\n// @router /api/plugin_api/create_api [POST]\nfunc CreateAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.CreateAPIRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\tif req.Name == \"\" || len(req.Name) > 255 {\n\t\tinvalidParamRequestResponse(c, \"api name is invalid\")\n\t\treturn\n\t}\n\tif req.Desc == \"\" {\n\t\tinvalidParamRequestResponse(c, \"api desc is invalid\")\n\t\treturn\n\t}\n\tif req.Path != nil && (*req.Path == \"\" || len(*req.Path) > 512) {\n\t\tinvalidParamRequestResponse(c, \"api path is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.CreateAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateAPI .\n// @router /api/plugin_api/update_api [POST]\nfunc UpdateAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.UpdateAPIRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\tif req.APIID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"apiID is invalid\")\n\t\treturn\n\t}\n\tif req.Name != nil && (*req.Name == \"\" || len(*req.Name) > 255) {\n\t\tinvalidParamRequestResponse(c, \"api name is invalid\")\n\t\treturn\n\t}\n\tif req.Desc != nil && (*req.Desc == \"\" || len(*req.Desc) > 255) {\n\t\tinvalidParamRequestResponse(c, \"api desc is invalid\")\n\t\treturn\n\t}\n\tif req.Path != nil && (*req.Path == \"\" || len(*req.Path) > 512) {\n\t\tinvalidParamRequestResponse(c, \"api path is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.UpdateAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetUserAuthority .\n// @router /api/plugin_api/get_user_authority [POST]\nfunc GetUserAuthority(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetUserAuthorityRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetUserAuthority(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DebugAPI .\n// @router /api/plugin_api/debug_api [POST]\nfunc DebugAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.DebugAPIRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\tif req.APIID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"apiID is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.DebugAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UnlockPluginEdit .\n// @router /api/plugin_api/unlock_plugin_edit [POST]\nfunc UnlockPluginEdit(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.UnlockPluginEditRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.UnlockPluginEdit(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetPluginNextVersion .\n// @router /api/plugin_api/get_plugin_next_version [POST]\nfunc GetPluginNextVersion(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetPluginNextVersionRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetPluginNextVersion(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// RegisterPlugin .\n// @router /api/developer/register [POST]\nfunc RegisterPlugin(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.RegisterPluginRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.GetSpaceID() <= 0 {\n\t\tinvalidParamRequestResponse(c, \"spaceID is invalid\")\n\t\treturn\n\t}\n\tif req.ProjectID != nil && *req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"projectID is invalid\")\n\t\treturn\n\t}\n\tif req.AiPlugin == \"\" {\n\t\tinvalidParamRequestResponse(c, \"plugin manifest is invalid\")\n\t\treturn\n\t}\n\tif req.Openapi == \"\" {\n\t\tinvalidParamRequestResponse(c, \"plugin openapi doc is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.RegisterPlugin(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetDevPluginList .\n// @router /api/plugin_api/get_dev_plugin_list [POST]\nfunc GetDevPluginList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetDevPluginListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.SpaceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"spaceID is invalid\")\n\t\treturn\n\t}\n\tif req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"projectID is invalid\")\n\t\treturn\n\t}\n\tif req.GetPage() <= 0 {\n\t\tinvalidParamRequestResponse(c, \"page is invalid\")\n\t\treturn\n\t}\n\tif req.GetSize() <= 0 {\n\t\tinvalidParamRequestResponse(c, \"size is invalid\")\n\t\treturn\n\t}\n\tif req.GetSize() > 50 {\n\t\tinvalidParamRequestResponse(c, \"size is too large\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetDevPluginList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// Convert2OpenAPI .\n// @router /api/plugin_api/convert_to_openapi [POST]\nfunc Convert2OpenAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.Convert2OpenAPIRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.SpaceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"spaceID is invalid\")\n\t\treturn\n\t}\n\tif req.Data == \"\" {\n\t\tinvalidParamRequestResponse(c, \"data is invalid\")\n\t\treturn\n\t}\n\tif req.PluginURL != nil && *req.PluginURL == \"\" {\n\t\tinvalidParamRequestResponse(c, \"pluginURL is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.Convert2OpenAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetOAuthSchemaAPI .\n// @router /api/plugin_api/get_oauth_schema [POST]\nfunc GetOAuthSchemaAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetOAuthSchemaRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetOAuthSchema(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetOAuthSchema .\n// @router /api/plugin/get_oauth_schema [POST]\nfunc GetOAuthSchema(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetOAuthSchemaRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetOAuthSchema(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// BatchCreateAPI .\n// @router /api/plugin_api/batch_create_api [POST]\nfunc BatchCreateAPI(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.BatchCreateAPIRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.SpaceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"spaceID is invalid\")\n\t\treturn\n\t}\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\tif req.AiPlugin == \"\" {\n\t\tinvalidParamRequestResponse(c, \"plugin manifest is invalid\")\n\t\treturn\n\t}\n\tif req.Openapi == \"\" {\n\t\tinvalidParamRequestResponse(c, \"plugin openapi doc is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.BatchCreateAPI(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// RevokeAuthToken .\n// @router /api/plugin_api/revoke_auth_token [POST]\nfunc RevokeAuthToken(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.RevokeAuthTokenRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.PluginID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pluginID is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.RevokeAuthToken(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetQueriedOAuthPluginList .\n// @router /api/plugin_api/get_queried_oauth_plugins [POST]\nfunc GetQueriedOAuthPluginList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req plugin_develop.GetQueriedOAuthPluginListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.BotID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"entityID is required\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetQueriedOAuthPluginList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/public_product_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\tproduct_public_api \"github.com/coze-dev/coze-studio/backend/api/model/marketplace/product_public_api\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/workflow\"\n\tappworkflow \"github.com/coze-dev/coze-studio/backend/application/workflow\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/marketplace/product_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\tappApplication \"github.com/coze-dev/coze-studio/backend/application/app\"\n\t\"github.com/coze-dev/coze-studio/backend/application/modelmgr\"\n\t\"github.com/coze-dev/coze-studio/backend/application/plugin\"\n\t\"github.com/coze-dev/coze-studio/backend/application/search\"\n\t\"github.com/coze-dev/coze-studio/backend/application/singleagent\"\n\t\"github.com/coze-dev/coze-studio/backend/application/template\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\n// PublicGetProductList .\n// @router /api/marketplace/product/list [GET]\nfunc PublicGetProductList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req product_public_api.GetProductListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tvar resp *product_public_api.GetProductListResponse\n\tswitch req.GetEntityType() {\n\tcase product_common.ProductEntityType_Plugin:\n\t\tresp, err = plugin.PluginApplicationSVC.PublicGetProductList(ctx, &req)\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\n\tcase product_common.ProductEntityType_TemplateCommon:\n\t\tresp, err = template.ApplicationSVC.PublicGetProductList(ctx, &req)\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\tcase product_common.ProductEntityType_SaasPlugin:\n\t\tresp, err = plugin.PluginApplicationSVC.GetCozeSaasPluginList(ctx, &req)\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublicGetProductDetail .\n// @router /api/marketplace/product/detail [GET]\nfunc PublicGetProductDetail(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req product_public_api.GetProductDetailRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.GetProductID() <= 0 {\n\t\tinvalidParamRequestResponse(c, \"productID is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.PublicGetProductDetail(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublicFavoriteProduct .\n// @router /api/marketplace/product/favorite [POST]\nfunc PublicFavoriteProduct(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req product_public_api.FavoriteProductRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.GetEntityID() <= 0 {\n\t\tinvalidParamRequestResponse(c, \"entityID is invalid\")\n\t\treturn\n\t}\n\n\t// check entity id is valid\n\tif req.GetEntityType() == product_common.ProductEntityType_Bot {\n\t\t_, err = singleagent.SingleAgentSVC.ValidateAgentDraftAccess(ctx, req.GetEntityID())\n\t} else if req.GetEntityType() == product_common.ProductEntityType_Project {\n\t\t_, err = appApplication.APPApplicationSVC.ValidateDraftAPPAccess(ctx, req.GetEntityID())\n\t}\n\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tresp, err := search.SearchSVC.PublicFavoriteProduct(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublicGetUserFavoriteListV2 .\n// @router /api/marketplace/product/favorite/list.v2 [GET]\nfunc PublicGetUserFavoriteListV2(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req product_public_api.GetUserFavoriteListV2Request\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.GetPageSize() <= 0 {\n\t\tinvalidParamRequestResponse(c, \"pageSize is invalid\")\n\t\treturn\n\t}\n\tif req.GetEntityType() <= 0 {\n\t\tinvalidParamRequestResponse(c, \"entityType is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := search.SearchSVC.PublicGetUserFavoriteList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublicDuplicateProduct .\n// @router /api/marketplace/product/duplicate [POST]\nfunc PublicDuplicateProduct(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req product_public_api.DuplicateProductRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(product_public_api.DuplicateProductResponse)\n\tresp.Data = new(product_public_api.DuplicateProductData)\n\n\tswitch req.GetEntityType() {\n\tcase product_common.ProductEntityType_BotTemplate:\n\t\tmodelListResp, err := modelmgr.ModelmgrApplicationSVC.GetModelList(ctx, &developer_api.GetTypeListRequest{})\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\t\tif modelListResp == nil || modelListResp.Data == nil || len(modelListResp.Data.ModelList) == 0 {\n\t\t\tinvalidParamRequestResponse(c, \"no model found\")\n\t\t\treturn\n\t\t}\n\n\t\tbot, err := singleagent.SingleAgentSVC.DuplicateDraftBot(ctx, &developer_api.DuplicateDraftBotRequest{\n\t\t\tBotID:   req.GetProductID(),\n\t\t\tSpaceID: req.GetSpaceID(),\n\t\t})\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\n\t\tbotInfo, err := singleagent.SingleAgentSVC.GetAgentBotInfo(ctx, &playground.GetDraftBotInfoAgwRequest{\n\t\t\tBotID: bot.Data.BotID,\n\t\t})\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\t\tif botInfo.Data == nil || botInfo.Data.BotInfo == nil {\n\t\t\tinvalidParamRequestResponse(c, \"no bot info found\")\n\t\t\treturn\n\t\t}\n\n\t\tmodelInfo := botInfo.GetData().GetBotInfo().ModelInfo\n\t\tif modelInfo == nil {\n\t\t\tinvalidParamRequestResponse(c, \"no model info found in agent\")\n\t\t\treturn\n\t\t}\n\t\tmodelInfo.ModelId = &modelListResp.Data.ModelList[0].ModelType\n\n\t\tif req.Name != nil {\n\t\t\t_, err = singleagent.SingleAgentSVC.UpdateSingleAgentDraft(ctx, &playground.UpdateDraftBotInfoAgwRequest{\n\t\t\t\tBotInfo: &bot_common.BotInfoForUpdate{\n\t\t\t\t\tBotId:     &bot.Data.BotID,\n\t\t\t\t\tName:      req.Name,\n\t\t\t\t\tModelInfo: modelInfo,\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tresp.Data.NewEntityID = bot.Data.BotID\n\n\tcase product_common.ProductEntityType_WorkflowTemplateV2:\n\t\tworkflowResp, err := appworkflow.SVC.CopyWorkflow(ctx, &workflow.CopyWorkflowRequest{\n\t\t\tWorkflowID: strconv.FormatInt(req.GetProductID(), 10),\n\t\t\tSpaceID:    strconv.FormatInt(req.GetSpaceID(), 10),\n\t\t})\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\n\t\tnewWorkflowID, err := strconv.ParseInt(workflowResp.Data.WorkflowID, 10, 64)\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\t\tresp.Data.NewEntityID = newWorkflowID\n\t\tresp.Data.NewPluginID = &newWorkflowID\n\n\t\tif req.Name != nil {\n\t\t\t_, err = appworkflow.SVC.UpdateWorkflowMeta(ctx, &workflow.UpdateWorkflowMetaRequest{\n\t\t\t\tWorkflowID: workflowResp.Data.WorkflowID,\n\t\t\t\tSpaceID:    strconv.FormatInt(req.GetSpaceID(), 10),\n\t\t\t\tName:       req.Name,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublicSearchProduct .\n// @router /api/marketplace/product/search [GET]\nfunc PublicSearchProduct(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req product_public_api.SearchProductRequest\n\n\tvar categoryIDs []int64\n\tif categoryIDsStr := string(c.Query(\"category_ids\")); categoryIDsStr != \"\" {\n\t\tcategoryIDs, err = handlerCategoryIDs(c, &req)\n\t\tif err != nil {\n\t\t\tinvalidParamRequestResponse(c, err.Error())\n\t\t\treturn\n\t\t}\n\t\tc.Request.URI().QueryArgs().Del(\"category_ids\")\n\t}\n\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif len(categoryIDs) > 0 {\n\t\treq.CategoryIDs = categoryIDs\n\t}\n\t// Call plugin application service\n\tresp, err := plugin.PluginApplicationSVC.PublicSearchProduct(ctx, &req)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"PublicSearchProduct failed: %v\", err)\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\nfunc handlerCategoryIDs(c *app.RequestContext, req *product_public_api.SearchProductRequest) ([]int64, error) {\n\tvar categoryIDs []int64\n\tif categoryIDsStr := string(c.Query(\"category_ids\")); categoryIDsStr != \"\" {\n\t\tcategoryIDStrs := strings.Split(categoryIDsStr, \",\")\n\t\tcategoryIDs = make([]int64, 0, len(categoryIDStrs))\n\t\tfor _, idStr := range categoryIDStrs {\n\t\t\tidStr = strings.TrimSpace(idStr)\n\t\t\tif idStr != \"\" {\n\t\t\t\t// Validate that it's a valid integer\n\t\t\t\tif categoryID, parseErr := strconv.ParseInt(idStr, 10, 64); parseErr == nil {\n\t\t\t\t\tcategoryIDs = append(categoryIDs, categoryID)\n\t\t\t\t} else {\n\t\t\t\t\treturn nil, fmt.Errorf(\"invalid category_id: %s\", idStr)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn categoryIDs, nil\n}\n\n// PublicSearchSuggest .\n// @router /api/marketplace/product/search/suggest [GET]\nfunc PublicSearchSuggest(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req product_public_api.SearchSuggestRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\t// Call plugin application service\n\tresp, err := plugin.PluginApplicationSVC.PublicSearchSuggest(ctx, &req)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"PublicSearchSuggest failed: %v\", err)\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublicGetProductCategoryList .\n// @router /api/marketplace/product/category/list [GET]\nfunc PublicGetProductCategoryList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req product_public_api.GetProductCategoryListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tvar resp *product_public_api.GetProductCategoryListResponse\n\treq.EntityType = product_common.ProductEntityType_SaasPlugin\n\tswitch req.GetEntityType() {\n\tcase product_common.ProductEntityType_SaasPlugin:\n\t\tresp, err = plugin.PluginApplicationSVC.GetSaasProductCategoryList(ctx, &req)\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublicGetProductCallInfo .\n// @router /api/marketplace/product/call_info [GET]\nfunc PublicGetProductCallInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req product_public_api.GetProductCallInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetProductCallInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublicGetMarketPluginConfig .\n// @router /api/marketplace/product/config [GET]\nfunc PublicGetMarketPluginConfig(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req product_public_api.GetMarketPluginConfigRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := plugin.PluginApplicationSVC.GetMarketPluginConfig(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/resource_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\tappApplication \"github.com/coze-dev/coze-studio/backend/application/app\"\n\n\tresource \"github.com/coze-dev/coze-studio/backend/api/model/resource\"\n\t\"github.com/coze-dev/coze-studio/backend/application/search\"\n)\n\n// LibraryResourceList .\n// @router /api/plugin_api/library_resource_list [POST]\nfunc LibraryResourceList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req resource.LibraryResourceListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.SpaceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"space_id is invalid\")\n\t\treturn\n\t}\n\tif req.GetSize() > 100 {\n\t\tinvalidParamRequestResponse(c, \"size is too large\")\n\t\treturn\n\t}\n\n\tresp, err := search.SearchSVC.LibraryResourceList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ProjectResourceList .\n// @router /api/plugin_api/project_resource_list [POST]\nfunc ProjectResourceList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req resource.ProjectResourceListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.SpaceID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"space_id is invalid\")\n\t\treturn\n\t}\n\tif req.ProjectID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"project_id is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := search.SearchSVC.ProjectResourceList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ResourceCopyDispatch .\n// @router /api/plugin_api/resource_copy_dispatch [POST]\nfunc ResourceCopyDispatch(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req resource.ResourceCopyDispatchRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.ResID <= 0 {\n\t\tinvalidParamRequestResponse(c, \"res_id is invalid\")\n\t\treturn\n\t}\n\tif req.ResType <= 0 {\n\t\tinvalidParamRequestResponse(c, \"res_type is invalid\")\n\t\treturn\n\t}\n\tif req.GetProjectID() <= 0 {\n\t\tinvalidParamRequestResponse(c, \"project_id is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.ResourceCopyDispatch(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ResourceCopyDetail .\n// @router /api/plugin_api/resource_copy_detail [POST]\nfunc ResourceCopyDetail(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req resource.ResourceCopyDetailRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tif req.TaskID == \"\" {\n\t\tinvalidParamRequestResponse(c, \"task_id is invalid\")\n\t\treturn\n\t}\n\n\tresp, err := appApplication.APPApplicationSVC.ResourceCopyDetail(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ResourceCopyRetry .\n// @router /api/plugin_api/resource_copy_retry [POST]\nfunc ResourceCopyRetry(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req resource.ResourceCopyRetryRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(resource.ResourceCopyRetryResponse)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ResourceCopyCancel .\n// @router /api/plugin_api/resource_copy_cancel [POST]\nfunc ResourceCopyCancel(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req resource.ResourceCopyCancelRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(resource.ResourceCopyCancelResponse)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/upload_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\n\tupload \"github.com/coze-dev/coze-studio/backend/api/model/file/upload\"\n\tuploadSVC \"github.com/coze-dev/coze-studio/backend/application/upload\"\n\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n)\n\n// CommonUpload .\n// @router /api/common/upload/*tos_uri [POST]\nfunc CommonUpload(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req upload.CommonUploadRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tfullUrl := string(c.Request.URI().FullURI())\n\n\tresp, err := uploadSVC.SVC.UploadFileCommon(ctx, &req, fullUrl)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ApplyUploadAction .\n// @router /api/common/upload/apply_upload_action [GET]\nfunc ApplyUploadAction(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req upload.ApplyUploadActionRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tresp := new(upload.ApplyUploadActionResponse)\n\thost := c.Request.Host()\n\tif ptr.From(req.Action) == \"ApplyImageUpload\" {\n\t\tresp, err = uploadSVC.SVC.ApplyImageUpload(ctx, &req, string(host))\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\t} else if ptr.From(req.Action) == \"CommitImageUpload\" {\n\t\tresp, err = uploadSVC.SVC.CommitImageUpload(ctx, &req, string(host))\n\t\tif err != nil {\n\t\t\tinternalServerErrorResponse(ctx, c, err)\n\t\t\treturn\n\t\t}\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/workflow_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"github.com/cloudwego/eino/schema\"\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/consts\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/sse\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/workflow\"\n\tappworkflow \"github.com/coze-dev/coze-studio/backend/application/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/entity/vo\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/sonic\"\n)\n\n// CreateWorkflow .\n// @router /api/workflow_api/create [POST]\nfunc CreateWorkflow(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.CreateWorkflowRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.CreateWorkflow(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetCanvasInfo .\n// @router /api/workflow_api/canvas [POST]\nfunc GetCanvasInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetCanvasInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.GetCanvasInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// SaveWorkflow .\n// @router /api/workflow_api/save [POST]\nfunc SaveWorkflow(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.SaveWorkflowRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.SaveWorkflow(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateWorkflowMeta .\n// @router /api/workflow_api/update_meta [POST]\nfunc UpdateWorkflowMeta(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.UpdateWorkflowMetaRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tresp, err := appworkflow.SVC.UpdateWorkflowMeta(ctx, &req)\n\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteWorkflow .\n// @router /api/workflow_api/delete [POST]\nfunc DeleteWorkflow(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.DeleteWorkflowRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.DeleteWorkflow(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// BatchDeleteWorkflow .\n// @router /api/workflow_api/batch_delete [POST]\nfunc BatchDeleteWorkflow(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.BatchDeleteWorkflowRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.BatchDeleteWorkflow(ctx, &req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetDeleteStrategy .\n// @router /api/workflow_api/delete_strategy [POST]\nfunc GetDeleteStrategy(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetDeleteStrategyRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(workflow.GetDeleteStrategyResponse)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// PublishWorkflow .\n// @router /api/workflow_api/publish [POST]\nfunc PublishWorkflow(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.PublishWorkflowRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tresp, err := appworkflow.SVC.PublishWorkflow(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CopyWorkflow .\n// @router /api/workflow_api/copy [POST]\nfunc CopyWorkflow(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.CopyWorkflowRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tresp, err := appworkflow.SVC.CopyWorkflow(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CopyWkTemplateApi .\n// @router /api/workflow_api/copy_wk_template [POST]\nfunc CopyWkTemplateApi(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.CopyWkTemplateApiRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tresp, err := appworkflow.SVC.CopyWkTemplateApi(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetReleasedWorkflows .\n// @router /api/workflow_api/released_workflows [POST]\nfunc GetReleasedWorkflows(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetReleasedWorkflowsRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(workflow.GetReleasedWorkflowsResponse)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetWorkflowReferences\n// @router /api/workflow_api/workflow_references [POST]\nfunc GetWorkflowReferences(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetWorkflowReferencesRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tresp, err := appworkflow.SVC.GetWorkflowReferences(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetWorkFlowList .\n// @router /api/workflow_api/workflow_list [POST]\nfunc GetWorkFlowList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetWorkFlowListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tresp, err := appworkflow.SVC.ListWorkflow(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// QueryWorkflowNodeTypes .\n// @router /api/workflow_api/node_type [POST]\nfunc QueryWorkflowNodeTypes(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.QueryWorkflowNodeTypeRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tresp, err := appworkflow.SVC.QueryWorkflowNodeTypes(ctx, &req)\n\tif err != nil {\n\t\tc.String(consts.StatusInternalServerError, err.Error())\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// NodeTemplateList .\n// @router /api/workflow_api/node_template_list [POST]\nfunc NodeTemplateList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.NodeTemplateListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.GetNodeTemplateList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// NodePanelSearch .\n// @router /api/workflow_api/node_panel_search [POST]\nfunc NodePanelSearch(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.NodePanelSearchRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(workflow.NodePanelSearchResponse)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetLLMNodeFCSettingsMerged .\n// @router /api/workflow_api/llm_fc_setting_merged [POST]\nfunc GetLLMNodeFCSettingsMerged(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetLLMNodeFCSettingsMergedRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.GetLLMNodeFCSettingsMerged(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetLLMNodeFCSettingDetail .\n// @router /api/workflow_api/llm_fc_setting_detail [POST]\nfunc GetLLMNodeFCSettingDetail(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetLLMNodeFCSettingDetailRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.GetLLMNodeFCSettingDetail(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// WorkFlowTestRun .\n// @router /api/workflow_api/test_run [POST]\nfunc WorkFlowTestRun(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.WorkFlowTestRunRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.TestRun(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// WorkFlowTestResume .\n// @router /api/workflow_api/test_resume [POST]\nfunc WorkFlowTestResume(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.WorkflowTestResumeRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.TestResume(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CancelWorkFlow .\n// @router /api/workflow_api/cancel [POST]\nfunc CancelWorkFlow(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.CancelWorkFlowRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.Cancel(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetWorkFlowProcess .\n// @router /api/workflow_api/get_process [GET]\nfunc GetWorkFlowProcess(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetWorkflowProcessRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.GetProcess(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetNodeExecuteHistory .\n// @router /api/workflow_api/get_node_execute_history [GET]\nfunc GetNodeExecuteHistory(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetNodeExecuteHistoryRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.GetNodeExecuteHistory(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetApiDetail .\n// @router /api/workflow_api/apiDetail [GET]\nfunc GetApiDetail(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetApiDetailRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\ttoolDetailInfo, err := appworkflow.SVC.GetApiDetail(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tresponse := map[string]interface{}{\n\t\t\"data\": toolDetailInfo,\n\t\t\"code\": 0,\n\t\t\"msg\":  \"\",\n\t}\n\n\tc.JSON(consts.StatusOK, response)\n}\n\n// WorkflowNodeDebugV2 .\n// @router /api/workflow_api/nodeDebug [POST]\nfunc WorkflowNodeDebugV2(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.WorkflowNodeDebugV2Request\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.NodeDebug(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// SignImageURL .\n// @router /api/workflow_api/sign_image_url [POST]\nfunc SignImageURL(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.SignImageURLRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.SignImageURL(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CreateProjectConversationDef .\n// @router /api/workflow_api/project_conversation/create [POST]\nfunc CreateProjectConversationDef(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.CreateProjectConversationDefRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.CreateApplicationConversationDef(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// UpdateProjectConversationDef .\n// @router /api/workflow_api/project_conversation/update [POST]\nfunc UpdateProjectConversationDef(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.UpdateProjectConversationDefRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tresp, err := appworkflow.SVC.UpdateApplicationConversationDef(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteProjectConversationDef .\n// @router /api/workflow_api/project_conversation/delete [POST]\nfunc DeleteProjectConversationDef(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.DeleteProjectConversationDefRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.DeleteApplicationConversationDef(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListProjectConversationDef .\n// @router /api/workflow_api/project_conversation/list [GET]\nfunc ListProjectConversationDef(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.ListProjectConversationRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.ListApplicationConversationDef(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListRootSpans .\n// @router /api/workflow_api/list_spans [POST]\nfunc ListRootSpans(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.ListRootSpansRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(workflow.ListRootSpansResponse)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetTraceSDK .\n// @router /api/workflow_api/get_trace [POST]\nfunc GetTraceSDK(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetTraceSDKRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(workflow.GetTraceSDKResponse)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetWorkflowDetail .\n// @router /api/workflow_api/workflow_detail [POST]\nfunc GetWorkflowDetail(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetWorkflowDetailRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tworkflowDetailDataList, err := appworkflow.SVC.GetWorkflowDetail(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tresponse := map[string]any{\n\t\t\"data\":    workflowDetailDataList,\n\t\t\"code\":    0,\n\t\t\"message\": \"\",\n\t}\n\n\tc.JSON(consts.StatusOK, response)\n}\n\n// GetWorkflowDetailInfo .\n// @router /api/workflow_api/workflow_detail_info [POST]\nfunc GetWorkflowDetailInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetWorkflowDetailInfoRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tworkflowDetailInfoDataList, err := appworkflow.SVC.GetWorkflowDetailInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tresponse := map[string]any{\n\t\t\"data\":    workflowDetailInfoDataList,\n\t\t\"code\":    0,\n\t\t\"message\": \"\",\n\t}\n\n\tc.JSON(consts.StatusOK, response)\n}\n\n// ValidateTree .\n// @router /api/workflow_api/validate_tree [POST]\nfunc ValidateTree(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.ValidateTreeRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.ValidateTree(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetChatFlowRole .\n// @router /api/workflow_api/chat_flow_role/get [GET]\nfunc GetChatFlowRole(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetChatFlowRoleRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.GetChatFlowRole(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// CreateChatFlowRole .\n// @router /api/workflow_api/chat_flow_role/create [POST]\nfunc CreateChatFlowRole(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.CreateChatFlowRoleRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\tresp, err := appworkflow.SVC.CreateChatFlowRole(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// DeleteChatFlowRole .\n// @router /api/workflow_api/chat_flow_role/delete [POST]\nfunc DeleteChatFlowRole(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.DeleteChatFlowRoleRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.DeleteChatFlowRole(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// ListPublishWorkflow .\n// @router /api/workflow_api/list_publish_workflow [POST]\nfunc ListPublishWorkflow(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.ListPublishWorkflowRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp := new(workflow.ListPublishWorkflowResponse)\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetWorkflowUploadAuthToken .\n// @router /api/workflow_api/upload/auth_token [POST]\nfunc GetWorkflowUploadAuthToken(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetUploadAuthTokenRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.GetWorkflowUploadAuthToken(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\nfunc preprocessWorkflowRequestBody(_ context.Context, c *app.RequestContext) error {\n\t// Read the raw request body\n\trawData, err := c.Request.BodyE()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to read request body: %w\", err)\n\t}\n\n\t// Unmarshal into a temporary map\n\tvar bodyData map[string]interface{}\n\tif err = sonic.Unmarshal(rawData, &bodyData); err != nil {\n\t\treturn fmt.Errorf(\"failed to unmarshal request body: %w\", err)\n\t}\n\n\t// Process 'parameters' field\n\tif parameters, ok := bodyData[\"parameters\"]; ok {\n\t\tif _, isString := parameters.(string); !isString {\n\t\t\t// It's not a string, needs modification.\n\t\t\tparamsBytes, marshalErr := sonic.Marshal(parameters)\n\t\t\tif marshalErr != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to marshal parameters: %w\", marshalErr)\n\t\t\t}\n\t\t\tbodyData[\"parameters\"] = string(paramsBytes)\n\n\t\t\tnewRawData, err := sonic.Marshal(bodyData)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to marshal modified body: %w\", err)\n\t\t\t}\n\t\t\tc.Request.SetBodyRaw(newRawData)\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// OpenAPIRunFlow .\n// @router /v1/workflow/run [POST]\nfunc OpenAPIRunFlow(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\n\tif err = preprocessWorkflowRequestBody(ctx, c); err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tvar req workflow.OpenAPIRunFlowRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.OpenAPIRun(ctx, &req)\n\tif err != nil {\n\t\tvar se vo.WorkflowError\n\t\tif errors.As(err, &se) {\n\t\t\tresp = new(workflow.OpenAPIRunFlowResponse)\n\t\t\tresp.Code = int64(se.OpenAPICode())\n\t\t\tresp.Msg = ptr.Of(se.Msg())\n\t\t\tdebugURL := se.DebugURL()\n\t\t\tif debugURL != \"\" {\n\t\t\t\tresp.DebugUrl = ptr.Of(debugURL)\n\t\t\t}\n\t\t\tc.JSON(consts.StatusOK, resp)\n\t\t\treturn\n\t\t}\n\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\ntype streamRunData struct {\n\tContent       *string        `json:\"content,omitempty\"`\n\tContentType   *string        `json:\"content_type,omitempty\"`\n\tNodeSeqID     *string        `json:\"node_seq_id,omitempty\"`\n\tNodeID        *string        `json:\"node_id,omitempty\"`\n\tNodeIsFinish  *bool          `json:\"node_is_finish,omitempty\"`\n\tNodeType      *string        `json:\"node_type,omitempty\"`\n\tNodeTitle     *string        `json:\"node_title,omitempty\"`\n\tToken         *int64         `json:\"token,omitempty\"`\n\tDebugURL      *string        `json:\"debug_url,omitempty\"`\n\tErrorCode     *int64         `json:\"error_code,omitempty\"`\n\tErrorMessage  *string        `json:\"error_message,omitempty\"`\n\tInterruptData *interruptData `json:\"interrupt_data,omitempty\"`\n}\n\ntype interruptData struct {\n\tEventID string `json:\"event_id\"`\n\tType    int64  `json:\"type\"`\n\tData    string `json:\"data\"`\n}\n\nfunc convertStreamRunData(msg *workflow.OpenAPIStreamRunFlowResponse) *streamRunData {\n\tvar ie *interruptData\n\tif msg.InterruptData != nil {\n\t\tie = &interruptData{\n\t\t\tEventID: msg.InterruptData.EventID,\n\t\t\tType:    int64(msg.InterruptData.Type),\n\t\t\tData:    msg.InterruptData.InData,\n\t\t}\n\t}\n\n\treturn &streamRunData{\n\t\tContent:       msg.Content,\n\t\tContentType:   msg.ContentType,\n\t\tNodeSeqID:     msg.NodeSeqID,\n\t\tNodeID:        msg.NodeID,\n\t\tNodeIsFinish:  msg.NodeIsFinish,\n\t\tNodeType:      msg.NodeType,\n\t\tNodeTitle:     msg.NodeTitle,\n\t\tToken:         msg.Token,\n\t\tDebugURL:      msg.DebugUrl,\n\t\tErrorCode:     msg.ErrorCode,\n\t\tErrorMessage:  msg.ErrorMessage,\n\t\tInterruptData: ie,\n\t}\n}\n\nfunc sendStreamRunSSE(ctx context.Context, w *sse.Writer, sr *schema.StreamReader[*workflow.OpenAPIStreamRunFlowResponse]) {\n\tdefer func() {\n\t\t_ = w.Close()\n\t\tsr.Close()\n\t}()\n\n\tfor {\n\t\tmsg, err := sr.Recv()\n\t\tif err != nil {\n\t\t\tif errors.Is(err, io.EOF) {\n\t\t\t\t// finish\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tevent := &sse.Event{\n\t\t\t\tType: \"error\",\n\t\t\t\tData: []byte(err.Error()),\n\t\t\t}\n\n\t\t\tif err = w.Write(event); err != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"publish stream event failed, err:%v\", err)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconverted := convertStreamRunData(msg)\n\t\tmsgBytes, err := sonic.Marshal(converted)\n\t\tif err != nil {\n\t\t\tevent := &sse.Event{\n\t\t\t\tType: \"error\",\n\t\t\t\tData: []byte(err.Error()),\n\t\t\t}\n\t\t\tif err = w.Write(event); err != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"publish stream event failed, err:%v\", err)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tevent := &sse.Event{\n\t\t\tID:   msg.ID,\n\t\t\tType: msg.Event,\n\t\t\tData: msgBytes,\n\t\t}\n\n\t\tif err = w.Write(event); err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"publish stream event failed, err:%v\", err)\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// OpenAPIStreamRunFlow .\n// @router /v1/workflow/stream_run [POST]\nfunc OpenAPIStreamRunFlow(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\n\tif err = preprocessWorkflowRequestBody(ctx, c); err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tvar req workflow.OpenAPIRunFlowRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tw := sse.NewWriter(c)\n\n\tc.SetContentType(\"text/event-stream; charset=utf-8\")\n\tc.Response.Header.Set(\"Cache-Control\", \"no-cache\")\n\tc.Response.Header.Set(\"Connection\", \"keep-alive\")\n\tc.Response.Header.Set(\"Access-Control-Allow-Origin\", \"*\")\n\n\tsr, err := appworkflow.SVC.OpenAPIStreamRun(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tsendStreamRunSSE(ctx, w, sr)\n}\n\n// OpenAPIStreamResumeFlow .\n// @router /v1/workflow/stream_resume [POST]\nfunc OpenAPIStreamResumeFlow(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.OpenAPIStreamResumeFlowRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tw := sse.NewWriter(c)\n\n\tc.SetContentType(\"text/event-stream; charset=utf-8\")\n\tc.Response.Header.Set(\"Cache-Control\", \"no-cache\")\n\tc.Response.Header.Set(\"Connection\", \"keep-alive\")\n\tc.Response.Header.Set(\"Access-Control-Allow-Origin\", \"*\")\n\n\tsr, err := appworkflow.SVC.OpenAPIStreamResume(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tsendStreamRunSSE(ctx, w, sr)\n}\n\n// OpenAPIGetWorkflowRunHistory .\n// @router /v1/workflow/get_run_history [GET]\nfunc OpenAPIGetWorkflowRunHistory(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetWorkflowRunHistoryRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.OpenAPIGetWorkflowRunHistory(ctx, &req)\n\tif err != nil {\n\t\tvar se vo.WorkflowError\n\t\tif errors.As(err, &se) {\n\t\t\tresp = new(workflow.GetWorkflowRunHistoryResponse)\n\t\t\tresp.Code = ptr.Of(int64(se.OpenAPICode()))\n\t\t\tresp.Msg = ptr.Of(se.Msg())\n\t\t\tc.JSON(consts.StatusOK, resp)\n\t\t\treturn\n\t\t}\n\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// OpenAPIChatFlowRun .\n// @router /v1/workflows/chat [POST]\nfunc OpenAPIChatFlowRun(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tif err = preprocessWorkflowRequestBody(ctx, c); err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tvar req workflow.ChatFlowRunRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tw := sse.NewWriter(c)\n\tc.SetContentType(\"text/event-stream; charset=utf-8\")\n\tc.Response.Header.Set(\"Cache-Control\", \"no-cache\")\n\tc.Response.Header.Set(\"Connection\", \"keep-alive\")\n\tc.Response.Header.Set(\"Access-Control-Allow-Origin\", \"*\")\n\n\tsr, err := appworkflow.SVC.OpenAPIChatFlowRun(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\tsendChatFlowStreamRunSSE(ctx, w, sr)\n\n}\n\nfunc sendChatFlowStreamRunSSE(ctx context.Context, w *sse.Writer, sr *schema.StreamReader[[]*workflow.ChatFlowRunResponse]) {\n\tdefer func() {\n\t\t_ = w.Close()\n\t\tsr.Close()\n\t}()\n\tseq := int64(1)\n\tfor {\n\t\trespList, err := sr.Recv()\n\n\t\tif err != nil {\n\t\t\tif errors.Is(err, io.EOF) {\n\t\t\t\t// finish\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tevent := &sse.Event{\n\t\t\t\tType: \"error\",\n\t\t\t\tData: []byte(err.Error()),\n\t\t\t}\n\n\t\t\tif err = w.Write(event); err != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"publish stream event failed, err:%v\", err)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tfor _, resp := range respList {\n\t\t\tevent := &sse.Event{\n\t\t\t\tID:   strconv.FormatInt(seq, 10),\n\t\t\t\tType: resp.Event,\n\t\t\t\tData: []byte(resp.Data),\n\t\t\t}\n\n\t\t\tif err = w.Write(event); err != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"publish stream event failed, err:%v\", err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tseq++\n\t\t}\n\n\t}\n}\n\n// OpenAPIGetWorkflowInfo .\n// @router /v1/workflows/:workflow_id [GET]\nfunc OpenAPIGetWorkflowInfo(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\n\tif err = processOpenAPIGetWorkflowInfoRequest(ctx, c); err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tvar req workflow.OpenAPIGetWorkflowInfoRequest\n\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.OpenAPIGetWorkflowInfo(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\nfunc processOpenAPIGetWorkflowInfoRequest(_ context.Context, c *app.RequestContext) error {\n\tqueryString := c.Request.QueryString()\n\n\tvalues, err := url.ParseQuery(string(queryString))\n\tif err != nil {\n\t\treturn fmt.Errorf(\"parse query parameter failed, err:%v\", err)\n\t}\n\tisDebug := values.Get(\"is_debug\")\n\tif len(isDebug) == 0 {\n\t\tvalues.Set(\"is_debug\", \"false\")\n\t}\n\tc.Request.SetQueryString(values.Encode())\n\n\treturn nil\n}\n\n// GetHistorySchema .\n// @router /api/workflow_api/history_schema [POST]\nfunc GetHistorySchema(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetHistorySchemaRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.GetHistorySchema(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// GetExampleWorkFlowList .\n// @router /api/workflow_api/example_workflow_list [POST]\nfunc GetExampleWorkFlowList(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.GetExampleWorkFlowListRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tinvalidParamRequestResponse(c, err.Error())\n\t\treturn\n\t}\n\n\tresp, err := appworkflow.SVC.GetExampleWorkFlowList(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n\n// OpenAPICreateConversation .\n// @router /v1/workflow/conversation/create [POST]\nfunc OpenAPICreateConversation(ctx context.Context, c *app.RequestContext) {\n\tvar err error\n\tvar req workflow.CreateConversationRequest\n\terr = c.BindAndValidate(&req)\n\tif err != nil {\n\t\tc.String(consts.StatusBadRequest, err.Error())\n\t\treturn\n\t}\n\tresp, err := appworkflow.SVC.OpenAPICreateConversation(ctx, &req)\n\tif err != nil {\n\t\tinternalServerErrorResponse(ctx, c, err)\n\t\treturn\n\t}\n\n\tc.JSON(consts.StatusOK, resp)\n}\n"
  },
  {
    "path": "backend/api/handler/coze/workflow_service_test.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage coze\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"os\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync/atomic\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/alicebob/miniredis/v2\"\n\n\t\"github.com/bytedance/mockey\"\n\t\"github.com/cloudwego/eino/callbacks\"\n\t\"github.com/cloudwego/eino/schema\"\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/app/client\"\n\t\"github.com/cloudwego/hertz/pkg/app/server\"\n\t\"github.com/cloudwego/hertz/pkg/common/ut\"\n\t\"github.com/cloudwego/hertz/pkg/protocol\"\n\t\"github.com/cloudwego/hertz/pkg/protocol/sse\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"go.uber.org/mock/gomock\"\n\t\"gorm.io/driver/mysql\"\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\tpluginAPI \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tappknowledge \"github.com/coze-dev/coze-studio/backend/application/knowledge\"\n\tappmemory \"github.com/coze-dev/coze-studio/backend/application/memory\"\n\tappplugin \"github.com/coze-dev/coze-studio/backend/application/plugin\"\n\t\"github.com/coze-dev/coze-studio/backend/application/user\"\n\tappworkflow \"github.com/coze-dev/coze-studio/backend/application/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/llm/modelbuilder\"\n\tcrossagentrun \"github.com/coze-dev/coze-studio/backend/crossdomain/agentrun\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/agentrun/agentrunmock\"\n\tcrossmessage \"github.com/coze-dev/coze-studio/backend/crossdomain/message\"\n\tmessage0 \"github.com/coze-dev/coze-studio/backend/crossdomain/message\"\n\tmessage \"github.com/coze-dev/coze-studio/backend/crossdomain/message/model\"\n\tworkflowModel \"github.com/coze-dev/coze-studio/backend/crossdomain/workflow/model\"\n\n\tcrossconversation \"github.com/coze-dev/coze-studio/backend/crossdomain/conversation\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/conversation/conversationmock\"\n\tcrossdatabase \"github.com/coze-dev/coze-studio/backend/crossdomain/database\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/database/databasemock\"\n\tcrossknowledge \"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge/knowledgemock\"\n\tknowledge \"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge/model\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/message/messagemock\"\n\tcrosspermission \"github.com/coze-dev/coze-studio/backend/crossdomain/permission\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/permission/permissionmock\"\n\tcrossplugin \"github.com/coze-dev/coze-studio/backend/crossdomain/plugin\"\n\tpluginImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/impl\"\n\tpluginmodel \"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/model\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/pluginmock\"\n\tcrossuser \"github.com/coze-dev/coze-studio/backend/crossdomain/user\"\n\tagententity \"github.com/coze-dev/coze-studio/backend/domain/conversation/agentrun/entity\"\n\tconventity \"github.com/coze-dev/coze-studio/backend/domain/conversation/conversation/entity\"\n\tentity4 \"github.com/coze-dev/coze-studio/backend/domain/memory/database/entity\"\n\tentity2 \"github.com/coze-dev/coze-studio/backend/domain/openauth/openapiauth/entity\"\n\tpermission \"github.com/coze-dev/coze-studio/backend/domain/permission\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/dto\"\n\tentity3 \"github.com/coze-dev/coze-studio/backend/domain/plugin/entity\"\n\tentity5 \"github.com/coze-dev/coze-studio/backend/domain/plugin/entity\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\tuserentity \"github.com/coze-dev/coze-studio/backend/domain/user/entity\"\n\tworkflow2 \"github.com/coze-dev/coze-studio/backend/domain/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/config\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/entity/vo\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/plugin\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/variable\"\n\tmockvar \"github.com/coze-dev/coze-studio/backend/domain/workflow/variable/varmock\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/cache/impl/redis\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/checkpoint\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/coderunner\"\n\tmockCrossUser \"github.com/coze-dev/coze-studio/backend/internal/mock/crossdomain/crossuser\"\n\tmockPlugin \"github.com/coze-dev/coze-studio/backend/internal/mock/domain/plugin\"\n\tmockcode \"github.com/coze-dev/coze-studio/backend/internal/mock/domain/workflow/crossdomain/code\"\n\tmock \"github.com/coze-dev/coze-studio/backend/internal/mock/infra/idgen\"\n\tstorageMock \"github.com/coze-dev/coze-studio/backend/internal/mock/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/internal/testutil\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/sonic\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc TestMain(m *testing.M) {\n\tcallbacks.AppendGlobalHandlers(service.GetTokenCallbackHandler())\n\tservice.RegisterAllNodeAdaptors()\n\tos.Exit(m.Run())\n}\n\ntype wfTestRunner struct {\n\tt         *testing.T\n\th         *server.Hertz\n\tctrl      *gomock.Controller\n\tidGen     *mock.MockIDGenerator\n\tappVarS   *mockvar.MockStore\n\tuserVarS  *mockvar.MockStore\n\tvarGetter *mockvar.MockVariablesMetaGetter\n\n\tplugin         *mockPlugin.MockPluginService\n\ttos            *storageMock.MockStorage\n\tknowledge      *knowledgemock.MockKnowledge\n\tdatabase       *databasemock.MockDatabase\n\tpluginSrv      *pluginmock.MockPluginService\n\tconversation   *conversationmock.MockConversation\n\tmessage        *messagemock.MockMessage\n\tagentRun       *agentrunmock.MockAgentRun\n\tinternalModel  *testutil.UTChatModel\n\tpublishPatcher *mockey.Mocker\n\tctx            context.Context\n\tcloseFn        func()\n}\n\nvar req2URL = map[reflect.Type]string{\n\treflect.TypeOf(&workflow.NodeTemplateListRequest{}):             \"/api/workflow_api/node_template_list\",\n\treflect.TypeOf(&workflow.CreateWorkflowRequest{}):               \"/api/workflow_api/create\",\n\treflect.TypeOf(&workflow.SaveWorkflowRequest{}):                 \"/api/workflow_api/save\",\n\treflect.TypeOf(&workflow.DeleteWorkflowRequest{}):               \"/api/workflow_api/delete\",\n\treflect.TypeOf(&workflow.GetCanvasInfoRequest{}):                \"/api/workflow_api/canvas\",\n\treflect.TypeOf(&workflow.WorkFlowTestRunRequest{}):              \"/api/workflow_api/test_run\",\n\treflect.TypeOf(&workflow.CancelWorkFlowRequest{}):               \"/api/workflow_api/cancel\",\n\treflect.TypeOf(&workflow.PublishWorkflowRequest{}):              \"/api/workflow_api/publish\",\n\treflect.TypeOf(&workflow.OpenAPIRunFlowRequest{}):               \"/v1/workflow/run\",\n\treflect.TypeOf(&workflow.ValidateTreeRequest{}):                 \"/api/workflow_api/validate_tree\",\n\treflect.TypeOf(&workflow.WorkflowTestResumeRequest{}):           \"/api/workflow_api/test_resume\",\n\treflect.TypeOf(&workflow.WorkflowNodeDebugV2Request{}):          \"/api/workflow_api/nodeDebug\",\n\treflect.TypeOf(&workflow.QueryWorkflowNodeTypeRequest{}):        \"/api/workflow_api/node_type\",\n\treflect.TypeOf(&workflow.GetWorkFlowListRequest{}):              \"/api/workflow_api/workflow_list\",\n\treflect.TypeOf(&workflow.UpdateWorkflowMetaRequest{}):           \"/api/workflow_api/update_meta\",\n\treflect.TypeOf(&workflow.GetWorkflowDetailRequest{}):            \"/api/workflow_api/workflow_detail\",\n\treflect.TypeOf(&workflow.GetWorkflowDetailInfoRequest{}):        \"/api/workflow_api/workflow_detail_info\",\n\treflect.TypeOf(&workflow.GetLLMNodeFCSettingDetailRequest{}):    \"/api/workflow_api/llm_fc_setting_detail\",\n\treflect.TypeOf(&workflow.GetLLMNodeFCSettingsMergedRequest{}):   \"/api/workflow_api/llm_fc_setting_merged\",\n\treflect.TypeOf(&workflow.CopyWorkflowRequest{}):                 \"/api/workflow_api/copy\",\n\treflect.TypeOf(&workflow.BatchDeleteWorkflowRequest{}):          \"/api/workflow_api/batch_delete\",\n\treflect.TypeOf(&workflow.GetHistorySchemaRequest{}):             \"/api/workflow_api/history_schema\",\n\treflect.TypeOf(&workflow.GetWorkflowReferencesRequest{}):        \"/api/workflow_api/workflow_references\",\n\treflect.TypeOf(&workflow.CreateProjectConversationDefRequest{}): \"/api/workflow_api/project_conversation/create\",\n\treflect.TypeOf(&workflow.DeleteProjectConversationDefRequest{}): \"/api/workflow_api/project_conversation/delete\",\n\treflect.TypeOf(&workflow.UpdateProjectConversationDefRequest{}): \"/api/workflow_api/project_conversation/update\",\n\treflect.TypeOf(&workflow.ListProjectConversationRequest{}):      \"/api/workflow_api/project_conversation/list\",\n\treflect.TypeOf(&workflow.GetChatFlowRoleRequest{}):              \"/api/workflow_api/chat_flow_role/get\",\n\treflect.TypeOf(&workflow.CreateChatFlowRoleRequest{}):           \"/api/workflow_api/chat_flow_role/create\",\n\treflect.TypeOf(&workflow.DeleteChatFlowRoleRequest{}):           \"/api/workflow_api/chat_flow_role/delete\",\n}\n\nfunc newWfTestRunner(t *testing.T) *wfTestRunner {\n\th := server.Default()\n\n\th.Use(func(c context.Context, ctx *app.RequestContext) {\n\t\tc = ctxcache.Init(c)\n\t\tctxcache.Store(c, consts.SessionDataKeyInCtx, &userentity.Session{\n\t\t\tUserID: 123,\n\t\t})\n\t\t// Add API auth info for OpenAPI endpoints\n\t\tctxcache.Store(c, consts.OpenapiAuthKeyInCtx, &entity2.ApiKey{\n\t\t\tUserID:      123,\n\t\t\tConnectorID: consts.APIConnectorID,\n\t\t})\n\t\tctx.Next(c)\n\t})\n\th.POST(\"/api/workflow_api/node_template_list\", NodeTemplateList)\n\th.POST(\"/api/workflow_api/create\", CreateWorkflow)\n\th.POST(\"/api/workflow_api/save\", SaveWorkflow)\n\th.POST(\"/api/workflow_api/delete\", DeleteWorkflow)\n\th.POST(\"/api/workflow_api/canvas\", GetCanvasInfo)\n\th.POST(\"/api/workflow_api/test_run\", WorkFlowTestRun)\n\th.GET(\"/api/workflow_api/get_process\", GetWorkFlowProcess)\n\th.POST(\"/api/workflow_api/validate_tree\", ValidateTree)\n\th.POST(\"/api/workflow_api/test_resume\", WorkFlowTestResume)\n\th.POST(\"/api/workflow_api/publish\", PublishWorkflow)\n\th.POST(\"/api/workflow_api/update_meta\", UpdateWorkflowMeta)\n\th.POST(\"/api/workflow_api/cancel\", CancelWorkFlow)\n\th.POST(\"/api/workflow_api/workflow_list\", GetWorkFlowList)\n\th.POST(\"/api/workflow_api/workflow_detail\", GetWorkflowDetail)\n\th.POST(\"/api/workflow_api/workflow_detail_info\", GetWorkflowDetailInfo)\n\th.POST(\"/api/workflow_api/llm_fc_setting_detail\", GetLLMNodeFCSettingDetail)\n\th.POST(\"/api/workflow_api/llm_fc_setting_merged\", GetLLMNodeFCSettingsMerged)\n\th.POST(\"/v1/workflow/run\", OpenAPIRunFlow)\n\th.POST(\"/v1/workflow/stream_run\", OpenAPIStreamRunFlow)\n\th.POST(\"/v1/workflow/stream_resume\", OpenAPIStreamResumeFlow)\n\th.POST(\"/api/workflow_api/nodeDebug\", WorkflowNodeDebugV2)\n\th.GET(\"/api/workflow_api/get_node_execute_history\", GetNodeExecuteHistory)\n\th.POST(\"/api/workflow_api/copy\", CopyWorkflow)\n\th.POST(\"/api/workflow_api/batch_delete\", BatchDeleteWorkflow)\n\th.POST(\"/api/workflow_api/node_type\", QueryWorkflowNodeTypes)\n\th.GET(\"/v1/workflow/get_run_history\", OpenAPIGetWorkflowRunHistory)\n\th.POST(\"/api/workflow_api/history_schema\", GetHistorySchema)\n\th.POST(\"/api/workflow_api/workflow_references\", GetWorkflowReferences)\n\th.POST(\"/api/workflow_api/project_conversation/create\", CreateProjectConversationDef)\n\th.POST(\"/api/workflow_api/project_conversation/delete\", DeleteProjectConversationDef)\n\th.POST(\"/api/workflow_api/project_conversation/update\", UpdateProjectConversationDef)\n\th.POST(\"/api/workflow_api/project_conversation/list\", ListProjectConversationDef)\n\th.POST(\"/api/workflow_api/chat_flow_role/delete\", DeleteChatFlowRole)\n\th.POST(\"/api/workflow_api/chat_flow_role/create\", CreateChatFlowRole)\n\th.GET(\"/api/workflow_api/chat_flow_role/get\", GetChatFlowRole)\n\th.POST(\"/v1/workflows/chat\", OpenAPIChatFlowRun)\n\n\tctrl := gomock.NewController(t, gomock.WithOverridableExpectations())\n\tmockIDGen := mock.NewMockIDGenerator(ctrl)\n\tvar previousID atomic.Int64\n\tmockIDGen.EXPECT().GenID(gomock.Any()).DoAndReturn(func(_ context.Context) (int64, error) {\n\t\tnewID := time.Now().UnixNano()\n\t\tfor {\n\t\t\tif newID == previousID.Load() {\n\t\t\t\tnewID = time.Now().UnixNano()\n\t\t\t} else {\n\t\t\t\tpreviousID.Store(newID)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treturn newID, nil\n\t}).AnyTimes()\n\tmockIDGen.EXPECT().GenMultiIDs(gomock.Any(), gomock.Any()).DoAndReturn(\n\t\tfunc(_ context.Context, count int) ([]int64, error) {\n\t\t\tids := make([]int64, count)\n\t\t\tfor i := 0; i < count; i++ {\n\t\t\t\tnewID := time.Now().UnixNano()\n\t\t\t\tfor {\n\t\t\t\t\tif newID == previousID.Load() {\n\t\t\t\t\t\tnewID = time.Now().UnixNano()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpreviousID.Store(newID)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tids[i] = newID\n\t\t\t}\n\t\t\treturn ids, nil\n\t\t}).AnyTimes()\n\n\tdsn := \"root:root@tcp(127.0.0.1:3306)/opencoze?charset=utf8mb4&parseTime=True&loc=Local\"\n\tif os.Getenv(\"CI_JOB_NAME\") != \"\" {\n\t\tdsn = strings.ReplaceAll(dsn, \"127.0.0.1\", \"mysql\")\n\t}\n\tdb, err := gorm.Open(mysql.Open(dsn))\n\tassert.NoError(t, err)\n\n\ts, err := miniredis.Run()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to start miniredis: %v\", err)\n\t}\n\n\tredisClient := redis.NewWithAddrAndPassword(s.Addr(), \"\")\n\n\tcpStore := checkpoint.NewRedisStore(redisClient)\n\n\tutChatModel := &testutil.UTChatModel{}\n\n\tmockTos := storageMock.NewMockStorage(ctrl)\n\tmockTos.EXPECT().GetObjectUrl(gomock.Any(), gomock.Any(), gomock.Any()).Return(\"\", nil).AnyTimes()\n\n\tworkflowRepo, _ := service.NewWorkflowRepository(mockIDGen, db, redisClient, mockTos, cpStore, utChatModel, &config.WorkflowConfig{\n\t\tNodeOfCodeConfig: &config.NodeOfCodeConfig{},\n\t})\n\tmockey.Mock(appworkflow.GetWorkflowDomainSVC).Return(service.NewWorkflowService(workflowRepo)).Build()\n\tmockey.Mock(workflow2.GetRepository).Return(workflowRepo).Build()\n\tpublishPatcher := mockey.Mock(appworkflow.PublishWorkflowResource).Return(nil).Build()\n\n\tmockCU := mockCrossUser.NewMockUser(ctrl)\n\tmockCU.EXPECT().GetUserSpaceList(gomock.Any(), gomock.Any()).Return([]*crossuser.EntitySpace{\n\t\t{\n\t\t\tID: 123,\n\t\t},\n\t}, nil).AnyTimes()\n\n\tmockGlobalAppVarStore := mockvar.NewMockStore(ctrl)\n\tmockGlobalAppVarStore.EXPECT().Get(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes()\n\tmockGlobalUserVarStore := mockvar.NewMockStore(ctrl)\n\tmockGlobalUserVarStore.EXPECT().Get(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes()\n\tvh := mockey.Mock(variable.GetVariableHandler).Return(&variable.Handler{\n\t\tAppVarStore:  mockGlobalAppVarStore,\n\t\tUserVarStore: mockGlobalUserVarStore,\n\t}).Build()\n\n\tmockVarGetter := mockvar.NewMockVariablesMetaGetter(ctrl)\n\tm2 := mockey.Mock(variable.GetVariablesMetaGetter).Return(mockVarGetter).Build()\n\n\tmPlugin := mockPlugin.NewMockPluginService(ctrl)\n\n\tmockKwOperator := knowledgemock.NewMockKnowledge(ctrl)\n\tcrossknowledge.SetDefaultSVC(mockKwOperator)\n\n\tm := mockey.Mock(crossuser.DefaultSVC).Return(mockCU).Build()\n\tm1 := mockey.Mock(ctxutil.GetApiAuthFromCtx).Return(&entity2.ApiKey{\n\t\tUserID:      123,\n\t\tConnectorID: consts.APIConnectorID,\n\t}).Build()\n\tm4 := mockey.Mock(ctxutil.MustGetUIDFromCtx).Return(int64(1)).Build()\n\tm5 := mockey.Mock(ctxutil.GetUIDFromCtx).Return(ptr.Of(int64(1))).Build()\n\n\tmockDatabaseOperator := databasemock.NewMockDatabase(ctrl)\n\tcrossdatabase.SetDefaultSVC(mockDatabaseOperator)\n\n\tmockPluginSrv := pluginmock.NewMockPluginService(ctrl)\n\tcrossplugin.SetDefaultSVC(mockPluginSrv)\n\n\tmockStorage := storageMock.NewMockStorage(ctrl)\n\tmockStorage.EXPECT().GetObjectUrl(gomock.Any(), gomock.Any()).Return(\"URL_ADDRESS\", nil).AnyTimes()\n\tplugin.SetOSS(mockStorage)\n\n\tmockConversation := conversationmock.NewMockConversation(ctrl)\n\tcrossconversation.SetDefaultSVC(mockConversation)\n\tmockMessage := messagemock.NewMockMessage(ctrl)\n\tcrossmessage.SetDefaultSVC(mockMessage)\n\tmockAgentRun := agentrunmock.NewMockAgentRun(ctrl)\n\tcrossagentrun.SetDefaultSVC(mockAgentRun)\n\n\t// Initialize permission service for tests\n\tmockPermission := permissionmock.NewMockPermission(ctrl)\n\tmockPermission.EXPECT().CheckAuthz(gomock.Any(), gomock.Any()).Return(&permission.CheckAuthzResult{Decision: permission.Allow}, nil).AnyTimes()\n\tcrosspermission.SetDefaultSVC(mockPermission)\n\n\tmockey.Mock((*user.UserApplicationService).MGetUserBasicInfo).Return(&playground.MGetUserBasicInfoResponse{\n\t\tUserBasicInfoMap: make(map[string]*playground.UserBasicInfo),\n\t}, nil).Build()\n\n\tf := func() {\n\t\tpublishPatcher.UnPatch()\n\t\tm.UnPatch()\n\t\tm1.UnPatch()\n\t\tm2.UnPatch()\n\n\t\tm4.UnPatch()\n\t\tm5.UnPatch()\n\t\tvh.UnPatch()\n\t\tctrl.Finish()\n\t\t_ = h.Close()\n\t}\n\n\treturn &wfTestRunner{\n\t\tt:              t,\n\t\th:              h,\n\t\tctrl:           ctrl,\n\t\tidGen:          mockIDGen,\n\t\tappVarS:        mockGlobalAppVarStore,\n\t\tuserVarS:       mockGlobalUserVarStore,\n\t\tvarGetter:      mockVarGetter,\n\t\tplugin:         mPlugin,\n\t\ttos:            mockTos,\n\t\tknowledge:      mockKwOperator,\n\t\tdatabase:       mockDatabaseOperator,\n\t\tinternalModel:  utChatModel,\n\t\tctx:            context.Background(),\n\t\tcloseFn:        f,\n\t\tpluginSrv:      mockPluginSrv,\n\t\tpublishPatcher: publishPatcher,\n\t\tconversation:   mockConversation,\n\t\tmessage:        mockMessage,\n\t\tagentRun:       mockAgentRun,\n\t}\n}\n\ntype PostOption struct {\n\tHeaders map[string]string\n}\ntype PostOptionFn func(option *PostOption)\n\nfunc WithHeaders(hds map[string]string) PostOptionFn {\n\treturn func(option *PostOption) {\n\t\tif option.Headers == nil {\n\t\t\toption.Headers = map[string]string{}\n\t\t}\n\t\tfor k, v := range hds {\n\t\t\toption.Headers[k] = v\n\t\t}\n\t}\n}\n\nfunc post[T any](r *wfTestRunner, req any, opts ...PostOptionFn) *T {\n\t// if req has a field SpaceID, set it's value to \"123\"\n\topt := &PostOption{}\n\tfor _, fn := range opts {\n\t\tfn(opt)\n\t}\n\n\ttyp := reflect.TypeOf(req)\n\tif typ.Kind() == reflect.Ptr {\n\t\ttyp1 := typ.Elem()\n\t\tspaceField, ok := typ1.FieldByName(\"SpaceID\")\n\t\tif ok {\n\t\t\tif spaceField.Type == reflect.TypeOf(\"\") {\n\t\t\t\treflect.ValueOf(req).Elem().FieldByName(\"SpaceID\").SetString(\"123\")\n\t\t\t} else {\n\t\t\t\treflect.ValueOf(req).Elem().FieldByName(\"SpaceID\").Set(reflect.ValueOf(ptr.Of(\"123\")))\n\t\t\t}\n\t\t}\n\n\t}\n\n\turl := req2URL[typ]\n\tm, err := sonic.Marshal(req)\n\tassert.NoError(r.t, err)\n\n\theaders := make([]ut.Header, 0)\n\theaders = append(headers, ut.Header{\n\t\tKey:   \"Content-Type\",\n\t\tValue: \"application/json\",\n\t})\n\tfor k, v := range opt.Headers {\n\t\theaders = append(headers, ut.Header{Key: k, Value: v})\n\t}\n\tw := ut.PerformRequest(r.h.Engine, \"POST\", url, &ut.Body{Body: bytes.NewBuffer(m), Len: len(m)},\n\t\theaders...)\n\tres := w.Result()\n\tif res.StatusCode() != http.StatusOK {\n\t\tr.t.Fatalf(\"unexpected status code: %d, body: %s\", res.StatusCode(), string(res.Body()))\n\t}\n\trBody := res.Body()\n\tvar resp T\n\terr = sonic.Unmarshal(rBody, &resp)\n\tif err != nil {\n\t\tr.t.Fatalf(\"failed to unmarshal response body: %v\", err)\n\t}\n\treturn &resp\n}\n\nfunc (r *wfTestRunner) postWithError(req any) string {\n\tm, err := sonic.Marshal(req)\n\tassert.NoError(r.t, err)\n\n\turl := req2URL[reflect.TypeOf(req)]\n\n\tw := ut.PerformRequest(r.h.Engine, \"POST\", url, &ut.Body{Body: bytes.NewBuffer(m), Len: len(m)},\n\t\tut.Header{Key: \"Content-Type\", Value: \"application/json\"})\n\tres := w.Result()\n\tif res.StatusCode() == http.StatusOK {\n\t\tr.t.Errorf(\"expected error, but got none\")\n\t}\n\treturn string(res.Body())\n}\n\ntype loadOptions struct {\n\tname      string\n\tid        int64\n\treq       *workflow.CreateWorkflowRequest\n\tversion   string\n\tprojectID int64\n\tdata      []byte\n\tmode      *workflow.WorkflowMode\n}\n\nfunc withWorkflowData(data []byte) func(*loadOptions) {\n\treturn func(o *loadOptions) {\n\t\to.data = data\n\t}\n}\n\nfunc withName(n string) func(*loadOptions) {\n\treturn func(o *loadOptions) {\n\t\to.name = n\n\t}\n}\nfunc withID(id int64) func(*loadOptions) {\n\treturn func(o *loadOptions) {\n\t\to.id = id\n\t}\n}\nfunc withProjectID(id int64) func(*loadOptions) {\n\treturn func(o *loadOptions) {\n\t\to.projectID = id\n\t}\n}\n\nfunc withPublish(version string) func(*loadOptions) {\n\treturn func(o *loadOptions) {\n\t\to.version = version\n\t}\n}\n\nfunc withMode(mode workflow.WorkflowMode) func(*loadOptions) {\n\treturn func(o *loadOptions) {\n\t\to.mode = ptr.Of(mode)\n\t}\n}\n\nfunc (r *wfTestRunner) load(schemaFile string, opts ...func(*loadOptions)) string {\n\tloadOpts := &loadOptions{}\n\tfor _, opt := range opts {\n\t\topt(loadOpts)\n\t}\n\n\tif loadOpts.id > 0 {\n\t\t_, err := appworkflow.GetWorkflowDomainSVC().Get(context.Background(), &vo.GetPolicy{\n\t\t\tID:       loadOpts.id,\n\t\t\tMetaOnly: true,\n\t\t})\n\t\tif err == nil {\n\t\t\treturn strconv.FormatInt(loadOpts.id, 10)\n\t\t} else {\n\t\t\tr.idGen.EXPECT().GenID(gomock.Any()).DoAndReturn(func(_ context.Context) (int64, error) {\n\t\t\t\treturn loadOpts.id, nil\n\t\t\t}).Times(3)\n\t\t\tdefer func() {\n\t\t\t\tvar previousID atomic.Int64\n\t\t\t\tr.idGen.EXPECT().GenID(gomock.Any()).DoAndReturn(func(_ context.Context) (int64, error) {\n\t\t\t\t\tnewID := time.Now().UnixNano()\n\t\t\t\t\tif newID == previousID.Load() {\n\t\t\t\t\t\tnewID = previousID.Add(1)\n\t\t\t\t\t}\n\t\t\t\t\treturn newID, nil\n\t\t\t\t}).AnyTimes()\n\t\t\t}()\n\t\t}\n\t}\n\n\tvar createReq *workflow.CreateWorkflowRequest\n\tif loadOpts.req != nil {\n\t\tcreateReq = loadOpts.req\n\t} else {\n\t\tname := \"test_wf\"\n\t\tif loadOpts.name != \"\" {\n\t\t\tname = loadOpts.name\n\t\t}\n\n\t\tcreateReq = &workflow.CreateWorkflowRequest{\n\t\t\tName:     name,\n\t\t\tDesc:     \"this is a test wf\",\n\t\t\tIconURI:  \"icon/uri\",\n\t\t\tSpaceID:  \"123\",\n\t\t\tFlowMode: ptr.Of(workflow.WorkflowMode_Workflow),\n\t\t}\n\n\t\tif loadOpts.projectID > 0 {\n\t\t\tcreateReq.ProjectID = ptr.Of(strconv.FormatInt(loadOpts.projectID, 10))\n\t\t}\n\t}\n\n\tcreateReq.FlowMode = loadOpts.mode\n\n\tresp := post[workflow.CreateWorkflowResponse](r, createReq)\n\n\tidStr := resp.Data.WorkflowID\n\t_, err := strconv.ParseInt(idStr, 10, 64)\n\tassert.NoError(r.t, err)\n\n\tvar data []byte\n\tif len(loadOpts.data) > 0 {\n\t\tdata = loadOpts.data\n\t} else {\n\t\tdata, err = os.ReadFile(fmt.Sprintf(\"../../../domain/workflow/internal/canvas/examples/%s\", schemaFile))\n\t\tassert.NoError(r.t, err)\n\t}\n\n\tsaveReq := &workflow.SaveWorkflowRequest{\n\t\tWorkflowID: idStr,\n\t\tSchema:     ptr.Of(string(data)),\n\t\tSpaceID:    ptr.Of(\"123\"),\n\t}\n\n\t_ = post[workflow.SaveWorkflowResponse](r, saveReq)\n\n\tif loadOpts.version != \"\" {\n\t\tr.publish(idStr, loadOpts.version, true)\n\t}\n\n\treturn idStr\n}\n\nfunc getProcess(t *testing.T, h *server.Hertz, idStr string, exeID string) *workflow.GetWorkflowProcessResponse {\n\tgetProcessReq := &workflow.GetWorkflowProcessRequest{\n\t\tWorkflowID: idStr,\n\t\tSpaceID:    \"123\",\n\t\tExecuteID:  ptr.Of(exeID),\n\t}\n\n\tw := ut.PerformRequest(h.Engine, \"GET\", fmt.Sprintf(\"/api/workflow_api/get_process?workflow_id=%s&space_id=%s&execute_id=%s\", getProcessReq.WorkflowID, getProcessReq.SpaceID, *getProcessReq.ExecuteID), nil,\n\t\tut.Header{Key: \"Content-Type\", Value: \"application/json\"})\n\tres := w.Result()\n\tif res.StatusCode() != http.StatusOK {\n\t\tt.Fatalf(\"unexpected status code: %d, body: %s\", res.StatusCode(), string(res.Body()))\n\t}\n\tgetProcessResp := &workflow.GetWorkflowProcessResponse{}\n\terr := sonic.Unmarshal(res.Body(), getProcessResp)\n\tassert.NoError(t, err)\n\n\ttime.Sleep(50 * time.Millisecond)\n\n\treturn getProcessResp\n}\n\nfunc (r *wfTestRunner) getNodeExeHistory(id string, exeID string, nodeID string, scene *workflow.NodeHistoryScene) *workflow.NodeResult {\n\tgetNodeExeHistoryReq := &workflow.GetNodeExecuteHistoryRequest{\n\t\tWorkflowID:       id,\n\t\tSpaceID:          \"123\",\n\t\tExecuteID:        exeID,\n\t\tNodeID:           nodeID,\n\t\tNodeHistoryScene: scene,\n\t}\n\n\tw := ut.PerformRequest(r.h.Engine, \"GET\", fmt.Sprintf(\"/api/workflow_api/get_node_execute_history?workflow_id=%s&space_id=%s&execute_id=%s\"+\n\t\t\"&node_id=%s&node_type=3&node_history_scene=%d\", getNodeExeHistoryReq.WorkflowID, getNodeExeHistoryReq.SpaceID, getNodeExeHistoryReq.ExecuteID,\n\t\tgetNodeExeHistoryReq.NodeID, getNodeExeHistoryReq.GetNodeHistoryScene()), nil,\n\t\tut.Header{Key: \"Content-Type\", Value: \"application/json\"})\n\n\tres := w.Result()\n\tassert.Equal(r.t, http.StatusOK, res.StatusCode())\n\tgetNodeResultResp := &workflow.GetNodeExecuteHistoryResponse{}\n\terr := sonic.Unmarshal(res.Body(), getNodeResultResp)\n\tassert.NoError(r.t, err)\n\n\treturn getNodeResultResp.Data\n}\n\nfunc (r *wfTestRunner) getOpenAPIProcess(id string, exeID string) *workflow.GetWorkflowRunHistoryResponse {\n\tw := ut.PerformRequest(r.h.Engine, \"GET\", fmt.Sprintf(\"/v1/workflow/get_run_history?workflow_id=%s&execute_id=%s\", id, exeID), nil,\n\t\tut.Header{Key: \"Content-Type\", Value: \"application/json\"})\n\tres := w.Result()\n\tassert.Equal(r.t, http.StatusOK, res.StatusCode())\n\tgetProcessResp := &workflow.GetWorkflowRunHistoryResponse{}\n\terr := sonic.Unmarshal(res.Body(), getProcessResp)\n\tassert.NoError(r.t, err)\n\n\treturn getProcessResp\n}\n\nfunc mustUnmarshalToMap(t *testing.T, s string) map[string]any {\n\tr := make(map[string]any)\n\terr := sonic.UnmarshalString(s, &r)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\treturn r\n}\n\nfunc mustMarshalToString(t *testing.T, m any) string {\n\tb, err := sonic.MarshalString(m)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\treturn b\n}\n\ntype runOption struct {\n\tProjectID *int64\n\tBotID     *int64\n}\ntype RunOptionFun func(options *runOption)\n\nfunc withRunProjectID(pID int64) RunOptionFun {\n\treturn func(options *runOption) {\n\t\toptions.ProjectID = &pID\n\t}\n}\n\nfunc withRunBotID(bID int64) RunOptionFun {\n\treturn func(options *runOption) {\n\t\toptions.BotID = &bID\n\t}\n}\n\nfunc (r *wfTestRunner) testRun(id string, input map[string]string, opts ...RunOptionFun) string {\n\topt := &runOption{}\n\tfor _, o := range opts {\n\t\to(opt)\n\t}\n\ttestRunReq := &workflow.WorkFlowTestRunRequest{\n\t\tWorkflowID: id,\n\t\tInput:      input,\n\t}\n\n\tif opt.ProjectID != nil {\n\t\ttestRunReq.ProjectID = ptr.Of(strconv.FormatInt(ptr.From(opt.ProjectID), 10))\n\t}\n\n\tif opt.BotID != nil {\n\t\ttestRunReq.BotID = ptr.Of(strconv.FormatInt(ptr.From(opt.BotID), 10))\n\t}\n\n\ttestRunResponse := post[workflow.WorkFlowTestRunResponse](r, testRunReq)\n\treturn testRunResponse.Data.ExecuteID\n}\n\ntype getProcessOptions struct {\n\tpreviousInterruptEventID string\n\tspecificNodeID           string\n}\n\nfunc withPreviousEventID(id string) func(options *getProcessOptions) {\n\treturn func(options *getProcessOptions) {\n\t\toptions.previousInterruptEventID = id\n\t}\n}\nfunc withSpecificNodeID(id string) func(options *getProcessOptions) {\n\treturn func(options *getProcessOptions) {\n\t\toptions.specificNodeID = id\n\t}\n}\n\ntype exeResult struct {\n\toutput      string\n\tstatus      workflow.WorkflowExeStatus\n\tevent       *workflow.NodeEvent\n\ttoken       *workflow.TokenAndCost\n\tt           *testing.T\n\treason      string\n\tnodeResults []*workflow.NodeResult\n}\n\nfunc (e *exeResult) assertSuccess() {\n\tassert.Equal(e.t, workflow.WorkflowExeStatus_Success, e.status)\n}\n\nfunc (e *exeResult) tokenEqual(in, out int) {\n\tassert.NotNil(e.t, e.token)\n\tinput := strings.TrimSuffix(*e.token.InputTokens, \" Tokens\")\n\toutput := strings.TrimSuffix(*e.token.OutputTokens, \" Tokens\")\n\tinputI, err := strconv.Atoi(input)\n\tassert.NoError(e.t, err)\n\toutputI, err := strconv.Atoi(output)\n\tassert.NoError(e.t, err)\n\tassert.Equal(e.t, in, inputI)\n\tassert.Equal(e.t, out, outputI)\n}\n\nfunc (e *exeResult) nodeResultHasResponseExtra(nodeID string, k string, v any) {\n\tvar n *workflow.NodeResult\n\n\tfor _, nr := range e.nodeResults {\n\t\tif nr.NodeId == nodeID {\n\t\t\tn = nr\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif n == nil {\n\t\te.t.Fatal(\"node key: \", nodeID, \"not found\")\n\t\treturn\n\t}\n\textra := mustUnmarshalToMap(e.t, n.Extra)\n\tassert.NotEmpty(e.t, extra)\n\tassert.Contains(e.t, extra, \"response_extra\")\n\tassert.Equal(e.t, extra[\"response_extra\"].(map[string]any)[k], v)\n}\n\nfunc (r *wfTestRunner) getProcess(id, exeID string, opts ...func(options *getProcessOptions)) *exeResult {\n\toptions := &getProcessOptions{}\n\tfor _, opt := range opts {\n\t\topt(options)\n\t}\n\n\tworkflowStatus := workflow.WorkflowExeStatus_Running\n\tvar output string\n\tvar nodeEvent *workflow.NodeEvent\n\tvar eventID string\n\tvar nodeType string\n\tvar token *workflow.TokenAndCost\n\tvar reason string\n\tvar nodeResults []*workflow.NodeResult\n\tvar count int\n\tfor {\n\t\tif nodeEvent != nil {\n\t\t\tif options.previousInterruptEventID != \"\" {\n\t\t\t\tif options.previousInterruptEventID != nodeEvent.ID {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif workflowStatus != workflow.WorkflowExeStatus_Running {\n\t\t\tbreak\n\t\t}\n\n\t\tif count > 1000 {\n\t\t\tr.t.Fatal(\"get process for too long\")\n\t\t}\n\n\t\tgetProcessResp := getProcess(r.t, r.h, id, exeID)\n\t\tif len(getProcessResp.Data.NodeResults) == 1 {\n\t\t\toutput = getProcessResp.Data.NodeResults[0].Output\n\t\t\tnodeType = getProcessResp.Data.NodeResults[0].NodeType\n\t\t} else {\n\t\t\tfor _, ns := range getProcessResp.Data.NodeResults {\n\t\t\t\tif options.specificNodeID != \"\" {\n\t\t\t\t\tif ns.NodeId == options.specificNodeID {\n\t\t\t\t\t\toutput = ns.Output\n\t\t\t\t\t\tnodeType = ns.NodeType\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t} else if ns.NodeType == workflow.NodeTemplateType_End.String() {\n\t\t\t\t\toutput = ns.Output\n\t\t\t\t\tnodeType = ns.NodeType\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif len(getProcessResp.Data.NodeEvents) > 0 {\n\t\t\tnodeEvent = getProcessResp.Data.NodeEvents[len(getProcessResp.Data.NodeEvents)-1]\n\t\t}\n\n\t\tworkflowStatus = getProcessResp.Data.ExecuteStatus\n\t\ttoken = getProcessResp.Data.TokenAndCost\n\n\t\tif getProcessResp.Data.Reason != nil {\n\t\t\treason = *getProcessResp.Data.Reason\n\t\t}\n\n\t\tif nodeEvent != nil {\n\t\t\teventID = nodeEvent.ID\n\t\t}\n\n\t\tnodeResults = getProcessResp.Data.NodeResults\n\n\t\tr.t.Logf(\"getProcess output= %s, status= %v, eventID= %s, nodeType= %s\", output, workflowStatus, eventID, nodeType)\n\n\t\tcount++\n\t}\n\n\treturn &exeResult{\n\t\toutput:      output,\n\t\tstatus:      workflowStatus,\n\t\tevent:       nodeEvent,\n\t\ttoken:       token,\n\t\tt:           r.t,\n\t\treason:      reason,\n\t\tnodeResults: nodeResults,\n\t}\n}\n\nfunc (r *wfTestRunner) cancel(id, exeID string) {\n\tcancelReq := &workflow.CancelWorkFlowRequest{\n\t\tWorkflowID: &id,\n\t\tExecuteID:  exeID,\n\t}\n\t_ = post[workflow.CancelWorkFlowResponse](r, cancelReq)\n}\n\nfunc (r *wfTestRunner) publish(id string, version string, force bool) {\n\tpublishReq := &workflow.PublishWorkflowRequest{\n\t\tWorkflowID:         id,\n\t\tWorkflowVersion:    ptr.Of(version),\n\t\tVersionDescription: ptr.Of(\"desc\"),\n\t\tForce:              ptr.Of(force),\n\t}\n\t_ = post[workflow.PublishWorkflowResponse](r, publishReq)\n}\n\nfunc (r *wfTestRunner) openapiAsyncRun(id string, input any) string {\n\trunReq := &workflow.OpenAPIRunFlowRequest{\n\t\tWorkflowID: id,\n\t\tParameters: ptr.Of(mustMarshalToString(r.t, input)),\n\t\tIsAsync:    ptr.Of(true),\n\t}\n\n\trunResp := post[workflow.OpenAPIRunFlowResponse](r, runReq)\n\treturn runResp.GetExecuteID()\n}\n\nfunc (r *wfTestRunner) openapiSyncRun(id string, input any, opts ...RunOptionFun) (map[string]any, string) {\n\topt := &runOption{}\n\tfor _, o := range opts {\n\t\to(opt)\n\t}\n\n\trunReq := &workflow.OpenAPIRunFlowRequest{\n\t\tWorkflowID: id,\n\t\tParameters: ptr.Of(mustMarshalToString(r.t, input)),\n\t\tIsAsync:    ptr.Of(false),\n\t}\n\n\tif opt.ProjectID != nil {\n\t\trunReq.ProjectID = ptr.Of(strconv.FormatInt(ptr.From(opt.ProjectID), 10))\n\t}\n\n\tif opt.BotID != nil {\n\t\trunReq.BotID = ptr.Of(strconv.FormatInt(ptr.From(opt.BotID), 10))\n\t}\n\n\trunResp := post[workflow.OpenAPIRunFlowResponse](r, runReq)\n\toutput := runResp.GetData()\n\tvar m map[string]any\n\terr := sonic.UnmarshalString(output, &m)\n\tassert.NoError(r.t, err)\n\treturn m, runResp.GetExecuteID()\n}\n\nfunc (r *wfTestRunner) validateTree(schema string) [][]*workflow.ValidateErrorData {\n\tdata, err := os.ReadFile(fmt.Sprintf(\"../../../domain/workflow/internal/canvas/examples/%s\", schema))\n\tif err != nil {\n\t\tr.t.Fatal(err)\n\t}\n\n\tres := post[workflow.ValidateTreeResponse](r, &workflow.ValidateTreeRequest{\n\t\tWorkflowID:    \"1\",\n\t\tSchema:        ptr.Of(string(data)),\n\t\tBindProjectID: \"1\",\n\t})\n\n\tif len(res.Data) == 0 {\n\t\treturn nil\n\t}\n\n\tvar errs [][]*workflow.ValidateErrorData\n\tfor _, d := range res.Data {\n\t\terrs = append(errs, d.Errors)\n\t}\n\n\treturn errs\n}\n\nfunc (r *wfTestRunner) testResume(id string, exeID string, eventID string, input any) {\n\tinputStr, ok := input.(string)\n\tif !ok {\n\t\tinputStr = mustMarshalToString(r.t, input)\n\t}\n\n\ttestResumeReq := &workflow.WorkflowTestResumeRequest{\n\t\tWorkflowID: id,\n\t\tSpaceID:    ptr.Of(\"123\"),\n\t\tExecuteID:  exeID,\n\t\tEventID:    eventID,\n\t\tData:       inputStr,\n\t}\n\n\t_ = post[workflow.WorkflowTestResumeResponse](r, testResumeReq)\n}\n\ntype nodeDebugOptions struct {\n\tinput   map[string]string\n\tbatch   map[string]string\n\tsetting map[string]string\n}\n\nfunc withNDInput(input map[string]string) func(*nodeDebugOptions) {\n\treturn func(options *nodeDebugOptions) {\n\t\toptions.input = input\n\t}\n}\n\nfunc withNDBatch(batch map[string]string) func(*nodeDebugOptions) {\n\treturn func(options *nodeDebugOptions) {\n\t\toptions.batch = batch\n\t}\n}\n\nfunc withNDSettings(settings map[string]string) func(*nodeDebugOptions) {\n\treturn func(options *nodeDebugOptions) {\n\t\toptions.setting = settings\n\t}\n}\n\nfunc (r *wfTestRunner) nodeDebug(id string, nodeID string, opts ...func(*nodeDebugOptions)) string {\n\toptions := &nodeDebugOptions{}\n\tfor _, opt := range opts {\n\t\topt(options)\n\t}\n\n\tnodeDebugReq := &workflow.WorkflowNodeDebugV2Request{\n\t\tWorkflowID: id,\n\t\tNodeID:     nodeID,\n\t}\n\n\tif options.input != nil {\n\t\tnodeDebugReq.Input = options.input\n\t}\n\n\tif options.batch != nil {\n\t\tnodeDebugReq.Batch = options.batch\n\t}\n\n\tif options.setting != nil {\n\t\tnodeDebugReq.Setting = options.setting\n\t}\n\n\tnodeDebugResp := post[workflow.WorkflowNodeDebugV2Response](r, nodeDebugReq)\n\treturn nodeDebugResp.Data.ExecuteID\n}\n\nfunc (r *wfTestRunner) save(id string, schema string) {\n\tdata, err := os.ReadFile(fmt.Sprintf(\"../../../domain/workflow/internal/canvas/examples/%s\", schema))\n\tassert.NoError(r.t, err)\n\n\tsaveReq := &workflow.SaveWorkflowRequest{\n\t\tWorkflowID: id,\n\t\tSchema:     ptr.Of(string(data)),\n\t}\n\n\t_ = post[workflow.SaveWorkflowResponse](r, saveReq)\n}\n\nfunc getCanvas(ctx context.Context, id string) (string, error) {\n\tresponse, err := appworkflow.SVC.GetCanvasInfo(ctx, &workflow.GetCanvasInfoRequest{\n\t\tSpaceID:    \"123\",\n\t\tWorkflowID: ptr.Of(id),\n\t})\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn response.GetData().GetWorkflow().GetSchemaJSON(), nil\n\n}\n\nfunc (r *wfTestRunner) openapiStream(id string, input any) *sse.Reader {\n\tinputStr, _ := sonic.MarshalString(input)\n\n\treq := &workflow.OpenAPIRunFlowRequest{\n\t\tWorkflowID: id,\n\t\tParameters: ptr.Of(inputStr),\n\t}\n\n\tm, err := sonic.Marshal(req)\n\tassert.NoError(r.t, err)\n\n\tc, _ := client.NewClient()\n\thReq, hResp := protocol.AcquireRequest(), protocol.AcquireResponse()\n\thReq.SetRequestURI(\"http://localhost:8888\" + \"/v1/workflow/stream_run\")\n\thReq.SetMethod(\"POST\")\n\thReq.SetBody(m)\n\thReq.SetHeader(\"Content-Type\", \"application/json\")\n\t// Add Authorization header for API authentication\n\thReq.SetHeader(\"Authorization\", \"Bearer test-api-key-123\")\n\terr = c.Do(context.Background(), hReq, hResp)\n\tassert.NoError(r.t, err)\n\n\tif hResp.StatusCode() != http.StatusOK {\n\t\tr.t.Errorf(\"unexpected status code: %d, body: %s\", hResp.StatusCode(), string(hResp.Body()))\n\t}\n\n\tre, err := sse.NewReader(hResp)\n\tassert.NoError(r.t, err)\n\n\treturn re\n}\n\nfunc (r *wfTestRunner) openapiResume(id string, eventID string, resumeData string) *sse.Reader {\n\treq := &workflow.OpenAPIStreamResumeFlowRequest{\n\t\tWorkflowID:  id,\n\t\tEventID:     eventID,\n\t\tResumeData:  resumeData,\n\t\tConnectorID: ptr.Of(strconv.FormatInt(consts.APIConnectorID, 10)),\n\t}\n\n\tm, err := sonic.Marshal(req)\n\tassert.NoError(r.t, err)\n\n\tc, _ := client.NewClient()\n\thReq, hResp := protocol.AcquireRequest(), protocol.AcquireResponse()\n\thReq.SetRequestURI(\"http://localhost:8888\" + \"/v1/workflow/stream_resume\")\n\thReq.SetMethod(\"POST\")\n\thReq.SetBody(m)\n\thReq.SetHeader(\"Content-Type\", \"application/json\")\n\t// Add Authorization header for API authentication\n\thReq.SetHeader(\"Authorization\", \"Bearer test-api-key-123\")\n\terr = c.Do(context.Background(), hReq, hResp)\n\tassert.NoError(r.t, err)\n\n\tif hResp.StatusCode() != http.StatusOK {\n\t\tr.t.Errorf(\"unexpected status code: %d, body: %s\", hResp.StatusCode(), string(hResp.Body()))\n\t}\n\n\tre, err := sse.NewReader(hResp)\n\tassert.NoError(r.t, err)\n\n\treturn re\n}\n\nfunc (r *wfTestRunner) openapiChatFlowRun(wfID string, cID, appID, botID *string, input any, additionalMessage []*workflow.EnterMessage) *sse.Reader {\n\tinputStr, _ := sonic.MarshalString(input)\n\n\treq := &workflow.ChatFlowRunRequest{\n\t\tWorkflowID:         wfID,\n\t\tParameters:         ptr.Of(inputStr),\n\t\tAdditionalMessages: additionalMessage,\n\t}\n\tif cID != nil {\n\t\treq.ConversationID = cID\n\t}\n\tif appID != nil {\n\t\treq.AppID = appID\n\t}\n\tif botID != nil {\n\t\treq.BotID = botID\n\t}\n\n\tm, err := sonic.Marshal(req)\n\tassert.NoError(r.t, err)\n\n\tc, _ := client.NewClient()\n\thReq, hResp := protocol.AcquireRequest(), protocol.AcquireResponse()\n\thReq.SetRequestURI(\"http://localhost:8888\" + \"/v1/workflows/chat\")\n\thReq.SetMethod(\"POST\")\n\thReq.SetBody(m)\n\thReq.SetHeader(\"Content-Type\", \"application/json\")\n\terr = c.Do(context.Background(), hReq, hResp)\n\tassert.NoError(r.t, err)\n\n\tif hResp.StatusCode() != http.StatusOK {\n\t\tr.t.Errorf(\"unexpected status code: %d, body: %s\", hResp.StatusCode(), string(hResp.Body()))\n\t}\n\n\tre, err := sse.NewReader(hResp)\n\tassert.NoError(r.t, err)\n\n\treturn re\n}\n\nfunc (r *wfTestRunner) runServer() func() {\n\tgo func() {\n\t\t_ = r.h.Run()\n\t}()\n\n\treturn func() {\n\t\t_ = r.h.Close()\n\t}\n}\n\nfunc TestNodeTemplateList(t *testing.T) {\n\tmockey.PatchConvey(\"test node cn template list\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tresp := post[workflow.NodeTemplateListResponse](r, &workflow.NodeTemplateListRequest{\n\t\t\tNodeTypes: []string{\"3\", \"5\", \"18\"},\n\t\t})\n\n\t\tassert.Equal(t, 3, len(resp.Data.TemplateList))\n\t\tassert.Equal(t, 3, len(resp.Data.CateList))\n\n\t\tid2Name := map[string]string{\n\t\t\t\"3\":  \"LLM\",\n\t\t\t\"5\":  \"Code\",\n\t\t\t\"18\": \"Question\",\n\t\t}\n\t\tfor _, tl := range resp.Data.TemplateList {\n\t\t\tassert.Equal(t, tl.Name, id2Name[tl.ID])\n\t\t}\n\n\t})\n\tmockey.PatchConvey(\"test node en template list\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tresp := post[workflow.NodeTemplateListResponse](r, &workflow.NodeTemplateListRequest{\n\t\t\tNodeTypes: []string{\"3\", \"5\", \"18\"},\n\t\t}, WithHeaders(map[string]string{\n\t\t\t\"x-locale\": \"en-US\",\n\t\t}))\n\n\t\tid2Name := map[string]string{\n\t\t\t\"3\":  \"LLM\",\n\t\t\t\"5\":  \"Code\",\n\t\t\t\"18\": \"Question\",\n\t\t}\n\t\tassert.Equal(t, 3, len(resp.Data.TemplateList))\n\t\tassert.Equal(t, 3, len(resp.Data.CateList))\n\n\t\tfor _, tl := range resp.Data.TemplateList {\n\t\t\tassert.Equal(t, tl.Name, id2Name[tl.ID])\n\t\t}\n\n\t})\n\n}\n\nfunc TestValidateTree(t *testing.T) {\n\tmockey.PatchConvey(\"test validate tree\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tvars := map[string]*vo.TypeInfo{\n\t\t\t\"app_v1\": {\n\t\t\t\tType: vo.DataTypeString,\n\t\t\t},\n\t\t\t\"app_list_v1\": {\n\t\t\t\tType: vo.DataTypeArray,\n\t\t\t\tElemTypeInfo: &vo.TypeInfo{\n\t\t\t\t\tType: vo.DataTypeString,\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"app_list_v2\": {\n\t\t\t\tType:     vo.DataTypeString,\n\t\t\t\tRequired: true,\n\t\t\t},\n\t\t}\n\n\t\tr.varGetter.EXPECT().GetAppVariablesMeta(gomock.Any(), gomock.Any(), gomock.Any()).Return(vars, nil).AnyTimes()\n\n\t\tt.Run(\"workflow_has_loop\", func(t *testing.T) {\n\t\t\terrs := r.validateTree(\"validate/workflow_has_loop.json\")\n\n\t\t\tpaths := map[string]string{\n\t\t\t\t\"161668\": \"101917\",\n\t\t\t\t\"101917\": \"177387\",\n\t\t\t\t\"177387\": \"161668\",\n\t\t\t\t\"166209\": \"102541\",\n\t\t\t\t\"102541\": \"109507\",\n\t\t\t\t\"109507\": \"166209\",\n\t\t\t}\n\n\t\t\tfor _, i := range errs[0] {\n\t\t\t\tassert.Equal(t, paths[i.PathError.Start], i.PathError.End)\n\t\t\t}\n\t\t})\n\n\t\tt.Run(\"workflow_has_no_connected_nodes\", func(t *testing.T) {\n\t\t\terrs := r.validateTree(\"validate/workflow_has_no_connected_nodes.json\")\n\n\t\t\tfor _, i := range errs[0] {\n\t\t\t\tif i.NodeError != nil {\n\t\t\t\t\tif i.NodeError.NodeID == \"108984\" {\n\t\t\t\t\t\tassert.Equal(t, i.Message, `node \"代码_1\" not connected`)\n\t\t\t\t\t}\n\t\t\t\t\tif i.NodeError.NodeID == \"160892\" {\n\t\t\t\t\t\tassert.Contains(t, i.Message, `node \"意图识别\"'s port \"branch_1\" not connected`)\n\t\t\t\t\t\tassert.Contains(t, i.Message, `node \"意图识别\"'s port \"default\" not connected`)\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tt.Run(\"workflow_ref_variable\", func(t *testing.T) {\n\t\t\terrs := r.validateTree(\"validate/workflow_ref_variable.json\")\n\n\t\t\tfor _, i := range errs[0] {\n\t\t\t\tif i.NodeError != nil {\n\t\t\t\t\tif i.NodeError.NodeID == \"118685\" {\n\t\t\t\t\t\tassert.Equal(t, i.Message, `the node id \"118685\" on which node id \"165568\" depends does not exist`)\n\t\t\t\t\t}\n\n\t\t\t\t\tif i.NodeError.NodeID == \"128176\" {\n\t\t\t\t\t\tassert.Equal(t, i.Message, `the node id \"128176\" on which node id \"11384000\" depends does not exist`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tt.Run(\"workflow_nested_has_loop_or_batch\", func(t *testing.T) {\n\t\t\terrs := r.validateTree(\"validate/workflow_nested_has_loop_or_batch.json\")\n\n\t\t\tassert.Equal(t, errs[0][0].Message, `composite nodes such as batch/loop cannot be nested`)\n\t\t})\n\n\t\tt.Run(\"workflow_variable_assigner\", func(t *testing.T) {\n\t\t\terrs := r.validateTree(\"validate/workflow_variable_assigner.json\")\n\t\t\tassert.Equal(t, errs[0][0].Message, `node name 变量赋值,param [app_list_v2], type mismatch`)\n\t\t})\n\n\t\tt.Run(\"sub_workflow_terminate_plan_type\", func(t *testing.T) {\n\t\t\t_ = r.load(\"validate/workflow_has_no_connected_nodes.json\", withID(7498321598097768457))\n\n\t\t\terrs := r.validateTree(\"validate/sub_workflow_terminate_plan_type.json\")\n\t\t\trequire.Equal(t, 2, len(errs))\n\t\t\tassert.Equal(t, errs[0][0].Message, `node name 变量赋值,param [app_list_v2], type mismatch`)\n\n\t\t\tfor _, i := range errs[1] {\n\t\t\t\tif i.NodeError != nil {\n\t\t\t\t\tif i.NodeError.NodeID == \"108984\" {\n\t\t\t\t\t\tassert.Equal(t, i.Message, `node \"代码_1\" not connected`)\n\t\t\t\t\t}\n\t\t\t\t\tif i.NodeError.NodeID == \"160892\" {\n\t\t\t\t\t\tassert.Contains(t, i.Message, `node \"意图识别\"'s port \"branch_1\" not connected`)\n\t\t\t\t\t\tassert.Contains(t, i.Message, `node \"意图识别\"'s port \"default\" not connected`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tt.Run(\"invalid_input_parameter\", func(t *testing.T) {\n\t\t\terrs := r.validateTree(\"validate/invalid_input_parameter.json\")\n\t\t\tassert.Equal(t, len(errs[0]), 2)\n\t\t\tmsgs := slices.Transform(errs[0], func(item *workflow.ValidateErrorData) string {\n\t\t\t\treturn item.Message\n\t\t\t})\n\t\t\tassert.Contains(t, msgs, `parameter name only allows number or alphabet, and must begin with alphabet, but it's \"123\"`)\n\t\t\tassert.Contains(t, msgs, `ref block error,[blockID] is empty`)\n\t\t})\n\n\t})\n}\n\nfunc TestQueryTypes(t *testing.T) {\n\tmockey.PatchConvey(\"test workflow node types\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tt.Run(\"not sub workflow\", func(t *testing.T) {\n\t\t\tid := r.load(\"query_types/llm_intent_http_nodes.json\")\n\n\t\t\treq := &workflow.QueryWorkflowNodeTypeRequest{\n\t\t\t\tWorkflowID: id,\n\t\t\t}\n\n\t\t\tresponse := post[workflow.QueryWorkflowNodeTypeResponse](r, req)\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"1\")\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"2\")\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"5\")\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"22\")\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"45\")\n\n\t\t\tfor _, prop := range response.Data.NodesProperties {\n\t\t\t\tif prop.ID == \"100001\" {\n\t\t\t\t\tassert.False(t, prop.IsEnableChatHistory)\n\t\t\t\t\tassert.False(t, prop.IsEnableUserQuery)\n\t\t\t\t\tassert.False(t, prop.IsRefGlobalVariable)\n\t\t\t\t}\n\t\t\t\tif prop.ID == \"900001\" || prop.ID == \"117367\" || prop.ID == \"133234\" || prop.ID == \"163493\" {\n\t\t\t\t\tassert.False(t, prop.IsEnableChatHistory)\n\t\t\t\t\tassert.False(t, prop.IsEnableUserQuery)\n\t\t\t\t\tassert.True(t, prop.IsRefGlobalVariable)\n\t\t\t\t}\n\n\t\t\t}\n\t\t})\n\n\t\tt.Run(\"loop conditions\", func(t *testing.T) {\n\t\t\tid := r.load(\"query_types/loop_condition.json\")\n\n\t\t\treq := &workflow.QueryWorkflowNodeTypeRequest{\n\t\t\t\tWorkflowID: id,\n\t\t\t}\n\n\t\t\tresponse := post[workflow.QueryWorkflowNodeTypeResponse](r, req)\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"1\")\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"2\")\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"21\")\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"5\")\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"8\")\n\n\t\t\tfor _, prop := range response.Data.NodesProperties {\n\t\t\t\tif prop.ID == \"100001\" || prop.ID == \"900001\" || prop.ID == \"114884\" || prop.ID == \"143932\" {\n\t\t\t\t\tassert.False(t, prop.IsEnableChatHistory)\n\t\t\t\t\tassert.False(t, prop.IsEnableUserQuery)\n\t\t\t\t\tassert.False(t, prop.IsRefGlobalVariable)\n\t\t\t\t}\n\t\t\t\tif prop.ID == \"119585\" || prop.ID == \"170824\" {\n\t\t\t\t\tassert.False(t, prop.IsEnableChatHistory)\n\t\t\t\t\tassert.False(t, prop.IsEnableUserQuery)\n\t\t\t\t\tassert.True(t, prop.IsRefGlobalVariable)\n\t\t\t\t}\n\n\t\t\t}\n\t\t})\n\n\t\tt.Run(\"has sub workflow\", func(t *testing.T) {\n\t\t\t_ = r.load(\"query_types/wf2.json\", withID(7498668117704163337), withPublish(\"v0.0.1\"))\n\t\t\t_ = r.load(\"query_types/wf2child.json\", withID(7498674832255615002), withPublish(\"v0.0.1\"))\n\t\t\tid := r.load(\"query_types/subworkflows.json\")\n\n\t\t\treq := &workflow.QueryWorkflowNodeTypeRequest{\n\t\t\t\tWorkflowID: id,\n\t\t\t}\n\n\t\t\tresponse := post[workflow.QueryWorkflowNodeTypeResponse](r, req)\n\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"1\")\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"2\")\n\t\t\tassert.Contains(t, response.Data.NodeTypes, \"9\")\n\n\t\t\tassert.Contains(t, response.Data.SubWorkflowNodeTypes, \"5\")\n\t\t\tassert.Contains(t, response.Data.SubWorkflowNodeTypes, \"1\")\n\t\t\tassert.Contains(t, response.Data.SubWorkflowNodeTypes, \"2\")\n\n\t\t\tfor _, prop := range response.Data.NodesProperties {\n\t\t\t\tif prop.ID == \"143310\" {\n\t\t\t\t\tassert.True(t, prop.IsRefGlobalVariable)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor _, prop := range response.Data.SubWorkflowNodesProperties {\n\t\t\t\tif prop.ID == \"116972\" {\n\t\t\t\t\tassert.True(t, prop.IsRefGlobalVariable)\n\t\t\t\t}\n\t\t\t\tif prop.ID == \"124342\" {\n\t\t\t\t\tassert.False(t, prop.IsRefGlobalVariable)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t})\n}\n\nfunc TestResumeWithQANode(t *testing.T) {\n\tmockey.PatchConvey(\"test_resume with qa node\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tchatModel := &testutil.UTChatModel{\n\t\t\tInvokeResultProvider: func(index int, in []*schema.Message) (*schema.Message, error) {\n\t\t\t\tif index == 0 {\n\t\t\t\t\treturn &schema.Message{\n\t\t\t\t\t\tRole:    schema.Assistant,\n\t\t\t\t\t\tContent: `{\"question\": \"what's your age?\"}`,\n\t\t\t\t\t\tResponseMeta: &schema.ResponseMeta{\n\t\t\t\t\t\t\tUsage: &schema.TokenUsage{\n\t\t\t\t\t\t\t\tPromptTokens:     6,\n\t\t\t\t\t\t\t\tCompletionTokens: 7,\n\t\t\t\t\t\t\t\tTotalTokens:      13,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}, nil\n\t\t\t\t} else if index == 1 {\n\t\t\t\t\treturn &schema.Message{\n\t\t\t\t\t\tRole:    schema.Assistant,\n\t\t\t\t\t\tContent: `{\"fields\": {\"name\": \"eino\", \"age\": 1}}`,\n\t\t\t\t\t\tResponseMeta: &schema.ResponseMeta{\n\t\t\t\t\t\t\tUsage: &schema.TokenUsage{\n\t\t\t\t\t\t\t\tPromptTokens:     11,\n\t\t\t\t\t\t\t\tCompletionTokens: 19,\n\t\t\t\t\t\t\t\tTotalTokens:      30,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}, nil\n\t\t\t\t}\n\t\t\t\treturn nil, errors.New(\"not found\")\n\t\t\t},\n\t\t}\n\n\t\tmockey.Mock(modelbuilder.BuildModelByID).Return(chatModel, nil, nil).Build()\n\n\t\tid := r.load(\"qa_with_structured_output.json\")\n\n\t\texeID := r.testRun(id, map[string]string{\n\t\t\t\"input\": \"what's your name and age?\",\n\t\t})\n\n\t\te := r.getProcess(id, exeID)\n\t\tassert.NotNil(t, e.event)\n\t\te.tokenEqual(0, 0)\n\n\t\tr.testResume(id, exeID, e.event.ID, \"my name is eino\")\n\n\t\te2 := r.getProcess(id, exeID, withPreviousEventID(e.event.ID))\n\n\t\tr.testResume(id, exeID, e2.event.ID, \"1 year old\")\n\n\t\te3 := r.getProcess(id, exeID, withPreviousEventID(e2.event.ID))\n\t\te3.assertSuccess()\n\t\tassert.Equal(t, map[string]any{\n\t\t\t\"USER_RESPONSE\": \"1 year old\",\n\t\t\t\"name\":          \"eino\",\n\t\t\t\"age\":           int64(1),\n\t\t}, mustUnmarshalToMap(t, e3.output))\n\t\te3.tokenEqual(17, 26)\n\t})\n}\n\nfunc TestPublishWorkflow(t *testing.T) {\n\tmockey.PatchConvey(\"publish work flow\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tid := r.load(\"publish/publish_workflow.json\", withName(\"pb_we\"))\n\n\t\tlistResponse := post[workflow.GetWorkFlowListResponse](r, &workflow.GetWorkFlowListRequest{\n\t\t\tPage:   ptr.Of(int32(1)),\n\t\t\tSize:   ptr.Of(int32(10)),\n\t\t\tType:   ptr.Of(workflow.WorkFlowType_User),\n\t\t\tStatus: ptr.Of(workflow.WorkFlowListStatus_UnPublished),\n\t\t\tName:   ptr.Of(\"pb_we\"),\n\t\t})\n\n\t\tassert.Equal(t, 1, len(listResponse.Data.WorkflowList))\n\n\t\tr.publish(id, \"v0.0.1\", true)\n\n\t\tlistResponse = post[workflow.GetWorkFlowListResponse](r, &workflow.GetWorkFlowListRequest{\n\t\t\tPage:   ptr.Of(int32(1)),\n\t\t\tSize:   ptr.Of(int32(10)),\n\t\t\tType:   ptr.Of(workflow.WorkFlowType_User),\n\t\t\tStatus: ptr.Of(workflow.WorkFlowListStatus_HadPublished),\n\t\t\tName:   ptr.Of(\"pb_we\"),\n\t\t})\n\n\t\tassert.Equal(t, 1, len(listResponse.Data.WorkflowList))\n\n\t\tr.publish(id, \"v0.0.2\", true)\n\n\t\tdeleteReq := &workflow.DeleteWorkflowRequest{\n\t\t\tWorkflowID: id,\n\t\t}\n\t\t_ = post[workflow.DeleteWorkflowResponse](r, deleteReq)\n\t\ttime.Sleep(time.Second)\n\t})\n}\n\nfunc TestGetCanvasInfo(t *testing.T) {\n\tmockey.PatchConvey(\"test get canvas info\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tid := r.load(\"get_canvas/get_canvas.json\")\n\n\t\tgetCanvas := &workflow.GetCanvasInfoRequest{\n\t\t\tWorkflowID: ptr.Of(id),\n\t\t}\n\t\tresponse := post[workflow.GetCanvasInfoResponse](r, getCanvas)\n\t\tassert.Equal(t, response.Data.Workflow.Status, workflow.WorkFlowDevStatus_CanNotSubmit)\n\t\tassert.Equal(t, response.Data.VcsData.Type, workflow.VCSCanvasType_Draft)\n\n\t\texeID := r.testRun(id, map[string]string{\n\t\t\t\"input\": \"input_v1\",\n\t\t\t\"e\":     \"e\",\n\t\t})\n\t\tr.getProcess(id, exeID)\n\n\t\tresponse = post[workflow.GetCanvasInfoResponse](r, getCanvas)\n\t\tassert.Equal(t, response.Data.Workflow.Status, workflow.WorkFlowDevStatus_CanSubmit)\n\t\tassert.Equal(t, response.Data.VcsData.Type, workflow.VCSCanvasType_Draft)\n\n\t\tr.publish(id, \"v0.0.1\", true)\n\n\t\tresponse = post[workflow.GetCanvasInfoResponse](r, getCanvas)\n\t\tassert.Equal(t, response.Data.Workflow.Status, workflow.WorkFlowDevStatus_HadSubmit)\n\t\tassert.Equal(t, response.Data.VcsData.Type, workflow.VCSCanvasType_Publish)\n\n\t\tr.save(id, \"get_canvas/get_canvas.json\")\n\t\tresponse = post[workflow.GetCanvasInfoResponse](r, getCanvas)\n\t\tassert.Equal(t, response.Data.Workflow.Status, workflow.WorkFlowDevStatus_CanSubmit)\n\t\tassert.Equal(t, response.Data.VcsData.Type, workflow.VCSCanvasType_Draft)\n\n\t\tr.save(id, \"get_canvas/get_canvas_modify.json\")\n\t\tresponse = post[workflow.GetCanvasInfoResponse](r, getCanvas)\n\t\tassert.Equal(t, response.Data.Workflow.Status, workflow.WorkFlowDevStatus_CanNotSubmit)\n\t\tassert.Equal(t, response.Data.VcsData.Type, workflow.VCSCanvasType_Draft)\n\t})\n}\n\nfunc TestUpdateWorkflowMeta(t *testing.T) {\n\tmockey.PatchConvey(\"update workflow meta\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tid := r.load(\"entry_exit.json\")\n\n\t\tupdateMetaReq := &workflow.UpdateWorkflowMetaRequest{\n\t\t\tWorkflowID: id,\n\t\t\tName:       ptr.Of(\"modify_name\"),\n\t\t\tDesc:       ptr.Of(\"modify_desc\"),\n\t\t\tIconURI:    ptr.Of(\"modify_icon_uri\"),\n\t\t}\n\t\t_ = post[workflow.UpdateWorkflowMetaResponse](r, updateMetaReq)\n\n\t\tgetCanvas := &workflow.GetCanvasInfoRequest{\n\t\t\tWorkflowID: ptr.Of(id),\n\t\t}\n\t\tresponse := post[workflow.GetCanvasInfoResponse](r, getCanvas)\n\t\tassert.Equal(t, response.Data.Workflow.Name, \"modify_name\")\n\t\tassert.Equal(t, response.Data.Workflow.Desc, \"modify_desc\")\n\t\tassert.Equal(t, response.Data.Workflow.IconURI, \"modify_icon_uri\")\n\t})\n}\n\nfunc TestListWorkflowAsToolData(t *testing.T) {\n\tmockey.PatchConvey(\"publish list workflow & list workflow as tool data\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\t\tname := \"pb_wf\" + strconv.FormatInt(time.Now().UnixMilli(), 10)\n\t\tid := r.load(\"publish/publish_workflow.json\", withName(name))\n\n\t\tlistResponse := post[workflow.GetWorkFlowListResponse](r, &workflow.GetWorkFlowListRequest{\n\t\t\tPage:   ptr.Of(int32(1)),\n\t\t\tSize:   ptr.Of(int32(10)),\n\t\t\tType:   ptr.Of(workflow.WorkFlowType_User),\n\t\t\tStatus: ptr.Of(workflow.WorkFlowListStatus_UnPublished),\n\t\t\tName:   ptr.Of(name),\n\t\t})\n\n\t\tassert.Equal(t, 1, len(listResponse.Data.WorkflowList))\n\n\t\tr.publish(id, \"v0.0.1\", true)\n\n\t\tres, err := appworkflow.SVC.GetPlaygroundPluginList(t.Context(), &pluginAPI.GetPlaygroundPluginListRequest{\n\t\t\tPluginIds: []string{id},\n\t\t\tSpaceID:   ptr.Of(int64(123)),\n\t\t})\n\t\tassert.NoError(t, err)\n\t\tassert.Equal(t, 1, len(res.Data.PluginList))\n\t\tassert.Equal(t, \"v0.0.1\", res.Data.PluginList[0].VersionName)\n\t\tassert.Equal(t, \"input\", res.Data.PluginList[0].PluginApis[0].Parameters[0].Name)\n\t\tassert.Equal(t, \"obj\", res.Data.PluginList[0].PluginApis[0].Parameters[1].Name)\n\t\tassert.Equal(t, \"field1\", res.Data.PluginList[0].PluginApis[0].Parameters[1].SubParameters[0].Name)\n\t\tassert.Equal(t, \"arr\", res.Data.PluginList[0].PluginApis[0].Parameters[2].Name)\n\t\tassert.Equal(t, \"string\", res.Data.PluginList[0].PluginApis[0].Parameters[2].SubType)\n\n\t\tdeleteReq := &workflow.DeleteWorkflowRequest{\n\t\t\tWorkflowID: id,\n\t\t}\n\t\t_ = post[workflow.DeleteWorkflowResponse](r, deleteReq)\n\t\ttime.Sleep(time.Second)\n\t})\n}\n\nfunc TestWorkflowDetailAndDetailInfo(t *testing.T) {\n\tmockey.PatchConvey(\"workflow detail & detail info\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tname := \"pb_wf\" + strconv.FormatInt(time.Now().UnixMilli(), 10)\n\t\tid := r.load(\"publish/publish_workflow.json\", withName(name))\n\n\t\tdetailReq := &workflow.GetWorkflowDetailRequest{\n\t\t\tWorkflowIds: []string{id},\n\t\t}\n\t\tresponse := post[map[string]any](r, detailReq)\n\t\tassert.Equal(t, 1, len((*response)[\"data\"].([]any)))\n\n\t\tr.publish(id, \"v0.0.1\", true)\n\t\tr.publish(id, \"v0.0.2\", true)\n\n\t\tdetailInfoReq := &workflow.GetWorkflowDetailInfoRequest{\n\t\t\tWorkflowFilterList: []*workflow.WorkflowFilter{\n\t\t\t\t{WorkflowID: id},\n\t\t\t},\n\t\t}\n\t\tdetailInfoResponse := post[map[string]any](r, detailInfoReq)\n\t\tassert.Equal(t, 1, len((*detailInfoResponse)[\"data\"].([]any)))\n\t\tassert.Equal(t, \"v0.0.2\", (*detailInfoResponse)[\"data\"].([]any)[0].(map[string]any)[\"latest_flow_version\"].(string))\n\t\tassert.Equal(t, int64(1), (*detailInfoResponse)[\"data\"].([]any)[0].(map[string]any)[\"end_type\"].(int64))\n\n\t\tdeleteReq := &workflow.DeleteWorkflowRequest{\n\t\t\tWorkflowID: id,\n\t\t}\n\t\t_ = post[workflow.DeleteWorkflowResponse](r, deleteReq)\n\t\ttime.Sleep(time.Second)\n\t})\n}\n\nfunc TestInputComplex(t *testing.T) {\n\tmockey.PatchConvey(\"test input complex\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tid := r.load(\"input_complex.json\")\n\t\texeID := r.testRun(id, map[string]string{})\n\t\te := r.getProcess(id, exeID)\n\t\tr.testResume(id, exeID, e.event.ID, mustMarshalToString(t, map[string]any{\n\t\t\t\"input\":      `{\"name\": \"eino\", \"age\": 1}`,\n\t\t\t\"input_list\": `[{\"name\":\"user_1\"},{\"age\":2}]`,\n\t\t}))\n\t\te2 := r.getProcess(id, exeID, withPreviousEventID(e.event.ID))\n\t\te2.assertSuccess()\n\t\tassert.Equal(t, map[string]any{\n\t\t\t\"output\": map[string]any{\n\t\t\t\t\"name\": \"eino\",\n\t\t\t\t\"age\":  int64(1),\n\t\t\t},\n\t\t\t\"output_list\": []any{\n\t\t\t\tmap[string]any{\n\t\t\t\t\t\"name\": \"user_1\",\n\t\t\t\t\t\"age\":  nil,\n\t\t\t\t},\n\t\t\t\tmap[string]any{\n\t\t\t\t\t\"name\": nil,\n\t\t\t\t\t\"age\":  int64(2),\n\t\t\t\t},\n\t\t\t},\n\t\t}, mustUnmarshalToMap(t, e2.output))\n\t})\n}\n\nfunc TestGetLLMNodeFCSettingsDetailAndMerged(t *testing.T) {\n\tmockey.PatchConvey(\"fc setting detail\", t, func() {\n\t\toperationString := `{\n  \"summary\" : \"根据输入的解梦标题给出相关对应的解梦内容，如果返回的内容为空，给用户返回固定的话术：如果想了解自己梦境的详细解析，需要给我详细的梦见信息，例如： 梦见XXX\",\n  \"operationId\" : \"xz_zgjm\",\n  \"parameters\" : [ {\n    \"description\" : \"查询解梦标题，例如：梦见蛇\",\n    \"in\" : \"query\",\n    \"name\" : \"title\",\n    \"required\" : true,\n    \"schema\" : {\n      \"description\" : \"查询解梦标题，例如：梦见蛇\",\n      \"type\" : \"string\"\n    }\n  } ],\n  \"requestBody\" : {\n    \"content\" : {\n      \"application/json\" : {\n        \"schema\" : {\n          \"type\" : \"object\"\n        }\n      }\n    }\n  },\n  \"responses\" : {\n    \"200\" : {\n      \"content\" : {\n        \"application/json\" : {\n          \"schema\" : {\n            \"properties\" : {\n              \"data\" : {\n                \"description\" : \"返回数据\",\n                \"type\" : \"string\"\n              },\n              \"data_structural\" : {\n                \"description\" : \"返回数据结构\",\n                \"properties\" : {\n                  \"content\" : {\n                    \"description\" : \"解梦内容\",\n                    \"type\" : \"string\"\n                  },\n                  \"title\" : {\n                    \"description\" : \"解梦标题\",\n                    \"type\" : \"string\"\n                  },\n                  \"weburl\" : {\n                    \"description\" : \"当前内容关联的页面地址\",\n                    \"type\" : \"string\"\n                  }\n                },\n                \"type\" : \"object\"\n              },\n              \"err_msg\" : {\n                \"description\" : \"错误提示\",\n                \"type\" : \"string\"\n              }\n            },\n            \"required\" : [ \"data\", \"data_structural\" ],\n            \"type\" : \"object\"\n          }\n        }\n      },\n      \"description\" : \"new desc\"\n    },\n    \"default\" : {\n      \"description\" : \"\"\n    }\n  }\n}`\n\t\toperation := &pluginmodel.Openapi3Operation{}\n\t\t_ = sonic.UnmarshalString(operationString, operation)\n\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tr.plugin.EXPECT().MGetOnlinePlugins(gomock.Any(), gomock.Any()).Return([]*entity3.PluginInfo{\n\t\t\t{\n\t\t\t\tPluginInfo: &pluginmodel.PluginInfo{\n\t\t\t\t\tID:       123,\n\t\t\t\t\tSpaceID:  123,\n\t\t\t\t\tVersion:  ptr.Of(\"v0.0.1\"),\n\t\t\t\t\tManifest: &pluginmodel.PluginManifest{NameForHuman: \"p1\", DescriptionForHuman: \"desc\"},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil).AnyTimes()\n\t\tr.plugin.EXPECT().MGetOnlineTools(gomock.Any(), gomock.Any()).Return([]*entity3.ToolInfo{\n\t\t\t{ID: 123, Operation: operation},\n\t\t}, nil).AnyTimes()\n\n\t\tpluginSrv := pluginImpl.InitDomainService(r.plugin, r.tos)\n\t\tcrossplugin.SetDefaultSVC(pluginSrv)\n\n\t\tt.Run(\"plugin tool info \", func(t *testing.T) {\n\t\t\tfcSettingDetailReq := &workflow.GetLLMNodeFCSettingDetailRequest{\n\t\t\t\tPluginList: []*workflow.PluginFCItem{\n\t\t\t\t\t{PluginID: \"123\", APIID: \"123\"},\n\t\t\t\t},\n\t\t\t}\n\t\t\tresponse := post[map[string]any](r, fcSettingDetailReq)\n\t\t\tassert.Equal(t, (*response)[\"plugin_detail_map\"].(map[string]any)[\"123\"].(map[string]any)[\"description\"], \"desc\")\n\t\t\tassert.Equal(t, (*response)[\"plugin_detail_map\"].(map[string]any)[\"123\"].(map[string]any)[\"name\"], \"p1\")\n\t\t\tassert.Equal(t, (*response)[\"plugin_api_detail_map\"].(map[string]any)[\"123\"].(map[string]any)[\"name\"], \"xz_zgjm\")\n\t\t\tassert.Equal(t, 1, len((*response)[\"plugin_api_detail_map\"].(map[string]any)[\"123\"].(map[string]any)[\"parameters\"].([]any)))\n\t\t})\n\n\t\tt.Run(\"workflow tool info \", func(t *testing.T) {\n\t\t\tr.load(\"entry_exit.json\", withID(123), withPublish(\"v0.0.1\"))\n\t\t\tfcSettingDetailReq := &workflow.GetLLMNodeFCSettingDetailRequest{\n\t\t\t\tWorkflowList: []*workflow.WorkflowFCItem{\n\t\t\t\t\t{WorkflowID: \"123\", PluginID: \"123\", WorkflowVersion: ptr.Of(\"v0.0.1\")},\n\t\t\t\t},\n\t\t\t}\n\t\t\tresponse := post[map[string]any](r, fcSettingDetailReq)\n\t\t\tassert.Equal(t, (*response)[\"workflow_detail_map\"].(map[string]any)[\"123\"].(map[string]any)[\"plugin_id\"], \"123\")\n\t\t\tassert.Equal(t, (*response)[\"workflow_detail_map\"].(map[string]any)[\"123\"].(map[string]any)[\"name\"], \"test_wf\")\n\t\t\tassert.Equal(t, (*response)[\"workflow_detail_map\"].(map[string]any)[\"123\"].(map[string]any)[\"description\"], \"this is a test wf\")\n\t\t})\n\t})\n\tmockey.PatchConvey(\"fc setting merged\", t, func() {\n\t\toperationString := `{\n  \"summary\" : \"根据输入的解梦标题给出相关对应的解梦内容，如果返回的内容为空，给用户返回固定的话术：如果想了解自己梦境的详细解析，需要给我详细的梦见信息，例如： 梦见XXX\",\n  \"operationId\" : \"xz_zgjm\",\n  \"parameters\" : [ {\n    \"description\" : \"查询解梦标题，例如：梦见蛇\",\n    \"in\" : \"query\",\n    \"name\" : \"title\",\n    \"required\" : true,\n    \"schema\" : {\n      \"description\" : \"查询解梦标题，例如：梦见蛇\",\n      \"type\" : \"string\"\n    }\n  } ],\n  \"requestBody\" : {\n    \"content\" : {\n      \"application/json\" : {\n        \"schema\" : {\n          \"type\" : \"object\"\n        }\n      }\n    }\n  },\n  \"responses\" : {\n    \"200\" : {\n      \"content\" : {\n        \"application/json\" : {\n          \"schema\" : {\n            \"properties\" : {\n              \"data\" : {\n                \"description\" : \"返回数据\",\n                \"type\" : \"string\"\n              },\n              \"data_structural\" : {\n                \"description\" : \"返回数据结构\",\n                \"properties\" : {\n                  \"content\" : {\n                    \"description\" : \"解梦内容\",\n                    \"type\" : \"string\"\n                  },\n                  \"title\" : {\n                    \"description\" : \"解梦标题\",\n                    \"type\" : \"string\"\n                  },\n                  \"weburl\" : {\n                    \"description\" : \"当前内容关联的页面地址\",\n                    \"type\" : \"string\"\n                  }\n                },\n                \"type\" : \"object\"\n              },\n              \"err_msg\" : {\n                \"description\" : \"错误提示\",\n                \"type\" : \"string\"\n              }\n            },\n            \"required\" : [ \"data\", \"data_structural\" ],\n            \"type\" : \"object\"\n          }\n        }\n      },\n      \"description\" : \"new desc\"\n    },\n    \"default\" : {\n      \"description\" : \"\"\n    }\n  }\n}`\n\n\t\toperation := &pluginmodel.Openapi3Operation{}\n\t\t_ = sonic.UnmarshalString(operationString, operation)\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tr.plugin.EXPECT().MGetOnlinePlugins(gomock.Any(), gomock.Any()).Return([]*entity3.PluginInfo{\n\t\t\t{\n\t\t\t\tPluginInfo: &pluginmodel.PluginInfo{\n\t\t\t\t\tID:       123,\n\t\t\t\t\tSpaceID:  123,\n\t\t\t\t\tVersion:  ptr.Of(\"v0.0.1\"),\n\t\t\t\t\tManifest: &pluginmodel.PluginManifest{NameForHuman: \"p1\", DescriptionForHuman: \"desc\"},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil).AnyTimes()\n\t\tr.plugin.EXPECT().MGetOnlineTools(gomock.Any(), gomock.Any()).Return([]*entity3.ToolInfo{\n\t\t\t{ID: 123, Operation: operation},\n\t\t}, nil).AnyTimes()\n\n\t\tpluginSrv := pluginImpl.InitDomainService(r.plugin, r.tos)\n\t\tcrossplugin.SetDefaultSVC(pluginSrv)\n\n\t\tt.Run(\"plugin merge\", func(t *testing.T) {\n\t\t\tfcSettingMergedReq := &workflow.GetLLMNodeFCSettingsMergedRequest{\n\t\t\t\tPluginFcSetting: &workflow.FCPluginSetting{\n\t\t\t\t\tPluginID: \"123\", APIID: \"123\",\n\t\t\t\t\tRequestParams: []*workflow.APIParameter{\n\t\t\t\t\t\t{Name: \"title\", LocalDisable: true, LocalDefault: ptr.Of(\"value\")},\n\t\t\t\t\t},\n\t\t\t\t\tResponseParams: []*workflow.APIParameter{\n\t\t\t\t\t\t{Name: \"data123\", LocalDisable: true},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t\tresponse := post[map[string]any](r, fcSettingMergedReq)\n\t\t\tassert.Equal(t, (*response)[\"plugin_fc_setting\"].(map[string]any)[\"request_params\"].([]any)[0].(map[string]any)[\"local_disable\"], true)\n\t\t\tnames := map[string]bool{\n\t\t\t\t\"data\":            true,\n\t\t\t\t\"data_structural\": true,\n\t\t\t\t\"err_msg\":         true,\n\t\t\t}\n\t\t\tassert.Equal(t, 3, len((*response)[\"plugin_fc_setting\"].(map[string]any)[\"response_params\"].([]any)))\n\n\t\t\tfor _, mm := range (*response)[\"plugin_fc_setting\"].(map[string]any)[\"response_params\"].([]any) {\n\t\t\t\tn := mm.(map[string]any)[\"name\"].(string)\n\t\t\t\tassert.True(t, names[n])\n\t\t\t}\n\t\t})\n\t\tt.Run(\"workflow merge\", func(t *testing.T) {\n\t\t\tr.load(\"entry_exit.json\", withID(1234), withPublish(\"v0.0.1\"))\n\t\t\tfcSettingMergedReq := &workflow.GetLLMNodeFCSettingsMergedRequest{\n\t\t\t\tWorkflowFcSetting: &workflow.FCWorkflowSetting{\n\t\t\t\t\tWorkflowID: \"1234\",\n\t\t\t\t\tPluginID:   \"1234\",\n\t\t\t\t\tRequestParams: []*workflow.APIParameter{\n\t\t\t\t\t\t{Name: \"obj\", LocalDisable: true, LocalDefault: ptr.Of(\"{}\")},\n\t\t\t\t\t},\n\t\t\t\t\tResponseParams: []*workflow.APIParameter{\n\t\t\t\t\t\t{Name: \"literal_key\", LocalDisable: true},\n\t\t\t\t\t\t{Name: \"literal_key_bak\", LocalDisable: true},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tresponse := post[map[string]any](r, fcSettingMergedReq)\n\t\t\tassert.Equal(t, 3, len((*response)[\"worflow_fc_setting\"].(map[string]any)[\"request_params\"].([]any)))\n\t\t\tassert.Equal(t, 8, len((*response)[\"worflow_fc_setting\"].(map[string]any)[\"response_params\"].([]any)))\n\n\t\t\tfor _, mm := range (*response)[\"worflow_fc_setting\"].(map[string]any)[\"request_params\"].([]any) {\n\t\t\t\tif mm.(map[string]any)[\"name\"].(string) == \"obj\" {\n\t\t\t\t\tassert.True(t, mm.(map[string]any)[\"local_disable\"].(bool))\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t})\n}\n\nfunc TestNodeDebugLoop(t *testing.T) {\n\tmockey.PatchConvey(\"test node debug loop\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tid := r.load(\"loop_selector_variable_assign_text_processor.json\")\n\t\texeID := r.nodeDebug(id, \"192046\", withNDInput(map[string]string{\"input\": `[\"a\", \"bb\", \"ccc\", \"dddd\"]`}))\n\t\te := r.getProcess(id, exeID, withSpecificNodeID(\"192046\"))\n\t\te.assertSuccess()\n\t\tassert.Equal(t, map[string]any{\n\t\t\t\"converted\": []any{\n\t\t\t\t\"new_a\",\n\t\t\t\t\"new_ccc\",\n\t\t\t},\n\t\t\t\"variable_out\": \"dddd\",\n\t\t}, mustUnmarshalToMap(t, e.output))\n\n\t\tresult := r.getNodeExeHistory(id, exeID, \"192046\", nil)\n\t\tassert.Equal(t, mustUnmarshalToMap(t, e.output), mustUnmarshalToMap(t, result.Output))\n\n\t\t// verify this workflow has not been successfully test ran\n\t\tresult = r.getNodeExeHistory(id, \"\", \"100001\", ptr.Of(workflow.NodeHistoryScene_TestRunInput))\n\t\tassert.Equal(t, \"\", result.Output)\n\n\t\t// verify that another node of this workflow is not node debugged\n\t\tresult = r.getNodeExeHistory(id, \"\", \"wrong_node_id\", ptr.Of(workflow.NodeHistoryScene_TestRunInput))\n\t\tassert.Equal(t, \"\", result.Output)\n\t})\n\n\tmockey.PatchConvey(\"test node debug loop\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tid := r.load(\"loop_selector_variable_assign_text_processor.json\")\n\t\texeID := r.nodeDebug(id, \"192046\", withNDInput(map[string]string{\"input\": `[\"a\", \"bb\", \"ccc\", \"dddd\"]`}))\n\t\te := r.getProcess(id, exeID, withSpecificNodeID(\"192046\"))\n\t\te.assertSuccess()\n\t\tassert.Equal(t, map[string]any{\n\t\t\t\"converted\": []any{\n\t\t\t\t\"new_a\",\n\t\t\t\t\"new_ccc\",\n\t\t\t},\n\t\t\t\"variable_out\": \"dddd\",\n\t\t}, mustUnmarshalToMap(t, e.output))\n\n\t\tresult := r.getNodeExeHistory(id, exeID, \"192046\", nil)\n\t\tassert.Equal(t, mustUnmarshalToMap(t, e.output), mustUnmarshalToMap(t, result.Output))\n\n\t\t// verify this workflow has not been successfully test ran\n\t\tresult = r.getNodeExeHistory(id, \"\", \"100001\", ptr.Of(workflow.NodeHistoryScene_TestRunInput))\n\t\tassert.Equal(t, \"\", result.Output)\n\n\t\t// verify that another node of this workflow is not node debugged\n\t\tresult = r.getNodeExeHistory(id, \"\", \"wrong_node_id\", ptr.Of(workflow.NodeHistoryScene_TestRunInput))\n\t\tassert.Equal(t, \"\", result.Output)\n\t})\n\n\tmockey.PatchConvey(\"test node debug loop\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\t\trunner := mockcode.NewMockRunner(r.ctrl)\n\t\trunner.EXPECT().Run(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, request *coderunner.RunRequest) (*coderunner.RunResponse, error) {\n\t\t\treturn &coderunner.RunResponse{\n\t\t\t\tResult: request.Params,\n\t\t\t}, nil\n\t\t}).AnyTimes()\n\n\t\tcoderunner.SetCodeRunner(runner)\n\t\tid := r.load(\"loop_with_object_input.json\")\n\t\texeID := r.nodeDebug(id, \"122149\",\n\t\t\twithNDInput(map[string]string{\"input\": `[{\"a\":\"1\"},{\"a\":\"2\"}]`}))\n\t\te := r.getProcess(id, exeID, withSpecificNodeID(\"122149\"))\n\t\te.assertSuccess()\n\t\tassert.Equal(t, `{\"output\":[\"1\",\"2\"]}`, e.output)\n\n\t})\n\n}\n\nfunc TestCopyWorkflow(t *testing.T) {\n\tmockey.PatchConvey(\"copy work flow\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tid := r.load(\"publish/publish_workflow.json\", withName(\"original_workflow\"))\n\n\t\tresponse := post[workflow.CopyWorkflowResponse](r, &workflow.CopyWorkflowRequest{\n\t\t\tWorkflowID: id,\n\t\t})\n\n\t\toldCanvasResponse := post[workflow.GetCanvasInfoResponse](r, &workflow.GetCanvasInfoRequest{\n\t\t\tWorkflowID: ptr.Of(id),\n\t\t})\n\n\t\tcopiedCanvasResponse := post[workflow.GetCanvasInfoResponse](r, &workflow.GetCanvasInfoRequest{\n\t\t\tWorkflowID: ptr.Of(response.Data.WorkflowID),\n\t\t})\n\n\t\tassert.Equal(t, ptr.From(oldCanvasResponse.Data.Workflow.SchemaJSON), ptr.From(copiedCanvasResponse.Data.Workflow.SchemaJSON))\n\t\tassert.Equal(t, \"original_workflow_1\", copiedCanvasResponse.Data.Workflow.Name)\n\n\t\t_ = post[workflow.BatchDeleteWorkflowResponse](r, &workflow.BatchDeleteWorkflowRequest{\n\t\t\tWorkflowIDList: []string{id, response.Data.WorkflowID},\n\t\t})\n\n\t\twid, _ := strconv.ParseInt(id, 10, 64)\n\n\t\t_, err := appworkflow.GetWorkflowDomainSVC().Get(context.Background(), &vo.GetPolicy{\n\t\t\tID:       wid,\n\t\t\tQType:    workflowModel.FromDraft,\n\t\t\tCommitID: \"\",\n\t\t})\n\t\tassert.NotNil(t, err)\n\t\tassert.ErrorContains(t, err, strconv.Itoa(errno.ErrWorkflowNotFound))\n\t})\n}\n\nfunc TestReleaseApplicationWorkflows(t *testing.T) {\n\tappID := int64(10001000)\n\tmockey.PatchConvey(\"normal release application workflow\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tvars := map[string]*vo.TypeInfo{\n\t\t\t\"app_v1\": {\n\t\t\t\tType: vo.DataTypeString,\n\t\t\t},\n\t\t\t\"app_list_v1\": {\n\t\t\t\tType: vo.DataTypeArray,\n\t\t\t\tElemTypeInfo: &vo.TypeInfo{\n\t\t\t\t\tType: vo.DataTypeString,\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"app_list_v2\": {\n\t\t\t\tType: vo.DataTypeString,\n\t\t\t},\n\t\t}\n\n\t\tr.varGetter.EXPECT().GetAppVariablesMeta(gomock.Any(), gomock.Any(), gomock.Any()).Return(vars, nil).AnyTimes()\n\n\t\tr.load(\"publish/release_main_workflow.json\", withID(100100100100), withProjectID(appID))\n\t\tr.load(\"publish/release_c1_workflow.json\", withID(7511615200781402118), withProjectID(appID))\n\t\tr.load(\"publish/release_cc1_workflow.json\", withID(7511616004728815618), withProjectID(appID))\n\n\t\twf, err := appworkflow.GetWorkflowDomainSVC().Get(context.Background(), &vo.GetPolicy{\n\t\t\tID:       7511616004728815618,\n\t\t\tMetaOnly: true,\n\t\t})\n\t\tassert.NoError(t, err)\n\t\tversion := \"v0.0.1\"\n\t\tif wf.LatestPublishedVersion != nil {\n\t\t\tversionSchema := strings.Split(*wf.LatestPublishedVersion, \".\")\n\t\t\tvInt, err := strconv.ParseInt(versionSchema[2], 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tnextVer := strconv.FormatInt(vInt+1, 10)\n\t\t\tversionSchema[2] = nextVer\n\t\t\tversion = strings.Join(versionSchema, \".\")\n\t\t}\n\n\t\tvIssues, err := appworkflow.GetWorkflowDomainSVC().ReleaseApplicationWorkflows(context.Background(), appID, &vo.ReleaseWorkflowConfig{\n\t\t\tVersion:      version,\n\t\t\tPluginIDs:    []int64{7511616454588891136},\n\t\t\tConnectorIDs: []int64{consts.APIConnectorID},\n\t\t})\n\t\tassert.NoError(t, err)\n\t\tassert.Equal(t, 0, len(vIssues))\n\n\t\twf, err = appworkflow.GetWorkflowDomainSVC().Get(context.Background(), &vo.GetPolicy{\n\t\t\tID:      100100100100,\n\t\t\tQType:   workflowModel.FromSpecificVersion,\n\t\t\tVersion: version,\n\t\t})\n\t\tassert.NoError(t, err)\n\t\tcanvasSchema := wf.Canvas\n\n\t\tcv := &vo.Canvas{}\n\n\t\terr = sonic.UnmarshalString(canvasSchema, cv)\n\t\tassert.NoError(t, err)\n\n\t\tvar validateCv func(ns []*vo.Node)\n\t\tvalidateCv = func(ns []*vo.Node) {\n\t\t\tfor _, n := range ns {\n\t\t\t\tif n.Type == entity.NodeTypeSubWorkflow.IDStr() {\n\t\t\t\t\tassert.Equal(t, n.Data.Inputs.WorkflowVersion, version)\n\t\t\t\t}\n\t\t\t\tif n.Type == entity.NodeTypePlugin.IDStr() {\n\t\t\t\t\tfor _, apiParam := range n.Data.Inputs.APIParams {\n\t\t\t\t\t\t// In the application, the workflow plugin node When the plugin version is equal to 0, the plugin is a plugin created in the application\n\t\t\t\t\t\tif apiParam.Name == \"pluginVersion\" {\n\t\t\t\t\t\t\tassert.Equal(t, apiParam.Input.Value.Content, version)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif n.Type == entity.NodeTypeLLM.IDStr() {\n\t\t\t\t\tif n.Data.Inputs.FCParam != nil && n.Data.Inputs.FCParam.PluginFCParam != nil {\n\t\t\t\t\t\t// In the application, the workflow llm node When the plugin version is equal to 0, the plugin is a plugin created in the application\n\t\t\t\t\t\tfor _, p := range n.Data.Inputs.FCParam.PluginFCParam.PluginList {\n\t\t\t\t\t\t\t_ = p\n\t\t\t\t\t\t\t// assert.Equal(t, p.PluginVersion, version) TODO: this assert fails\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif n.Data.Inputs.FCParam != nil && n.Data.Inputs.FCParam.WorkflowFCParam != nil {\n\t\t\t\t\t\tfor _, w := range n.Data.Inputs.FCParam.WorkflowFCParam.WorkflowList {\n\t\t\t\t\t\t\tassert.Equal(t, w.WorkflowVersion, version)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif len(n.Blocks) > 0 {\n\t\t\t\t\tvalidateCv(n.Blocks)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvalidateCv(cv.Nodes)\n\t})\n\n\tmockey.PatchConvey(\"has issues release application workflow\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tvars := map[string]*vo.TypeInfo{\n\t\t\t\"app_v1\": {\n\t\t\t\tType: vo.DataTypeString,\n\t\t\t},\n\t\t\t\"app_list_v1\": {\n\t\t\t\tType: vo.DataTypeArray,\n\t\t\t\tElemTypeInfo: &vo.TypeInfo{\n\t\t\t\t\tType: vo.DataTypeString,\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"app_list_v2\": {\n\t\t\t\tType: vo.DataTypeString,\n\t\t\t},\n\t\t}\n\n\t\tr.varGetter.EXPECT().GetAppVariablesMeta(gomock.Any(), gomock.Any(), gomock.Any()).Return(vars, nil).AnyTimes()\n\n\t\tr.load(\"publish/release_error_workflow.json\", withID(1001001001001), withProjectID(100010001))\n\t\twf, err := appworkflow.GetWorkflowDomainSVC().Get(context.Background(), &vo.GetPolicy{\n\t\t\tID:       1001001001001,\n\t\t\tMetaOnly: true,\n\t\t})\n\t\tassert.NoError(t, err)\n\n\t\tversion := \"v0.0.1\"\n\t\tif wf.LatestPublishedVersion != nil {\n\t\t\tversionSchema := strings.Split(*wf.LatestPublishedVersion, \".\")\n\t\t\tvInt, err := strconv.ParseInt(versionSchema[2], 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tnextVer := strconv.FormatInt(vInt+1, 10)\n\t\t\tversionSchema[2] = nextVer\n\t\t\tversion = strings.Join(versionSchema, \".\")\n\t\t}\n\n\t\tvIssues, err := appworkflow.GetWorkflowDomainSVC().ReleaseApplicationWorkflows(context.Background(), 100010001, &vo.ReleaseWorkflowConfig{\n\t\t\tVersion:      version,\n\t\t\tPluginIDs:    []int64{},\n\t\t\tConnectorIDs: []int64{consts.APIConnectorID},\n\t\t})\n\t\tassert.NoError(t, err)\n\t\tassert.Equal(t, 1, len(vIssues))\n\t\tassert.Equal(t, 2, len(vIssues[0].IssueMessages))\n\t})\n}\n\nfunc TestCopyWorkflowAppToLibrary(t *testing.T) {\n\tr := newWfTestRunner(t)\n\tappworkflow.SVC.IDGenerator = r.idGen\n\tdefer r.closeFn()\n\n\tvars := map[string]*vo.TypeInfo{\n\t\t\"app_v1\": {\n\t\t\tType: vo.DataTypeString,\n\t\t},\n\t\t\"app_list_v1\": {\n\t\t\tType: vo.DataTypeArray,\n\t\t\tElemTypeInfo: &vo.TypeInfo{\n\t\t\t\tType: vo.DataTypeString,\n\t\t\t},\n\t\t},\n\t\t\"app_list_v2\": {\n\t\t\tType: vo.DataTypeString,\n\t\t},\n\t}\n\n\tr.varGetter.EXPECT().GetAppVariablesMeta(gomock.Any(), gomock.Any(), gomock.Any()).Return(vars, nil).AnyTimes()\n\n\tmockey.PatchConvey(\"copy with subworkflow, subworkflow with external resource \", t, func() {\n\t\tvar copiedIDs = make([]int64, 0)\n\t\tvar mockPublishWorkflowResource func(ctx context.Context, workflowID int64, mode *int32, op search.OpType, r *search.ResourceDocument) error\n\t\tvar ignoreIDs = map[int64]bool{\n\t\t\t7515027325977624576: true,\n\t\t\t7515027249628708864: true,\n\t\t\t7515027182796668928: true,\n\t\t\t7515027150387281920: true,\n\t\t\t7515027091302121472: true,\n\t\t}\n\t\tmockPublishWorkflowResource = func(ctx context.Context, workflowID int64, mode *int32, op search.OpType, r *search.ResourceDocument) error {\n\t\t\tif ignoreIDs[workflowID] {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\twf, err := appworkflow.GetWorkflowDomainSVC().Get(ctx, &vo.GetPolicy{\n\t\t\t\tID:    workflowID,\n\t\t\t\tQType: workflowModel.FromLatestVersion,\n\t\t\t})\n\t\t\tcopiedIDs = append(copiedIDs, workflowID)\n\t\t\tassert.NoError(t, err)\n\t\t\tassert.Equal(t, \"v0.0.1\", wf.Version)\n\t\t\tcanvas := &vo.Canvas{}\n\t\t\terr = sonic.UnmarshalString(wf.Canvas, canvas)\n\t\t\tassert.NoError(t, err)\n\n\t\t\tcopiedIDMap := slices.ToMap(copiedIDs, func(e int64) (string, bool) {\n\t\t\t\treturn strconv.FormatInt(e, 10), true\n\t\t\t})\n\n\t\t\tvar validateSubWorkflowIDs func(nodes []*vo.Node)\n\t\t\tvalidateSubWorkflowIDs = func(nodes []*vo.Node) {\n\t\t\t\tfor _, node := range nodes {\n\t\t\t\t\tswitch entity.IDStrToNodeType(node.Type) {\n\t\t\t\t\tcase entity.NodeTypePlugin:\n\t\t\t\t\t\tapiParams := slices.ToMap(node.Data.Inputs.APIParams, func(e *vo.Param) (string, *vo.Param) {\n\t\t\t\t\t\t\treturn e.Name, e\n\t\t\t\t\t\t})\n\t\t\t\t\t\tpluginIDParam, ok := apiParams[\"pluginID\"]\n\t\t\t\t\t\tassert.True(t, ok)\n\t\t\t\t\t\tpID, err := strconv.ParseInt(pluginIDParam.Input.Value.Content.(string), 10, 64)\n\t\t\t\t\t\tassert.NoError(t, err)\n\n\t\t\t\t\t\tpluginVersionParam, ok := apiParams[\"pluginVersion\"]\n\t\t\t\t\t\tassert.True(t, ok)\n\n\t\t\t\t\t\tpVersion := pluginVersionParam.Input.Value.Content.(string)\n\n\t\t\t\t\t\tif pVersion == \"0\" {\n\t\t\t\t\t\t\tassert.Equal(t, \"100100\", pID)\n\t\t\t\t\t\t}\n\n\t\t\t\t\tcase entity.NodeTypeSubWorkflow:\n\t\t\t\t\t\tassert.True(t, copiedIDMap[node.Data.Inputs.WorkflowID])\n\t\t\t\t\t\twfId, err := strconv.ParseInt(node.Data.Inputs.WorkflowID, 10, 64)\n\t\t\t\t\t\tassert.NoError(t, err)\n\n\t\t\t\t\t\tsubWf, err := appworkflow.GetWorkflowDomainSVC().Get(ctx, &vo.GetPolicy{\n\t\t\t\t\t\t\tID:    wfId,\n\t\t\t\t\t\t\tQType: workflowModel.FromLatestVersion,\n\t\t\t\t\t\t})\n\t\t\t\t\t\tassert.NoError(t, err)\n\t\t\t\t\t\tsubworkflowCanvas := &vo.Canvas{}\n\t\t\t\t\t\terr = sonic.UnmarshalString(subWf.Canvas, subworkflowCanvas)\n\t\t\t\t\t\tassert.NoError(t, err)\n\t\t\t\t\t\tvalidateSubWorkflowIDs(subworkflowCanvas.Nodes)\n\t\t\t\t\tcase entity.NodeTypeLLM:\n\t\t\t\t\t\tif node.Data.Inputs.LLM != nil && node.Data.Inputs.FCParam != nil && node.Data.Inputs.FCParam.WorkflowFCParam != nil {\n\t\t\t\t\t\t\tfor _, w := range node.Data.Inputs.FCParam.WorkflowFCParam.WorkflowList {\n\t\t\t\t\t\t\t\tassert.True(t, copiedIDMap[w.WorkflowID])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif node.Data.Inputs.LLM != nil && node.Data.Inputs.FCParam != nil && node.Data.Inputs.FCParam.PluginFCParam != nil {\n\t\t\t\t\t\t\tfor _, p := range node.Data.Inputs.FCParam.PluginFCParam.PluginList {\n\t\t\t\t\t\t\t\tif p.PluginVersion == \"0\" {\n\t\t\t\t\t\t\t\t\tassert.Equal(t, \"100100\", p.PluginID)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif node.Data.Inputs.LLM != nil && node.Data.Inputs.FCParam != nil && node.Data.Inputs.FCParam.KnowledgeFCParam != nil {\n\t\t\t\t\t\t\tfor _, k := range node.Data.Inputs.FCParam.KnowledgeFCParam.KnowledgeList {\n\t\t\t\t\t\t\t\tassert.Equal(t, \"100100\", k.ID)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\tcase entity.NodeTypeKnowledgeIndexer, entity.NodeTypeKnowledgeRetriever:\n\t\t\t\t\t\tdatasetListInfoParam := node.Data.Inputs.DatasetParam[0]\n\t\t\t\t\t\tknowledgeIDs := datasetListInfoParam.Input.Value.Content.([]any)\n\t\t\t\t\t\tfor idx := range knowledgeIDs {\n\t\t\t\t\t\t\tassert.Equal(t, \"100100\", knowledgeIDs[idx].(string))\n\t\t\t\t\t\t}\n\t\t\t\t\tcase entity.NodeTypeDatabaseCustomSQL, entity.NodeTypeDatabaseQuery, entity.NodeTypeDatabaseInsert, entity.NodeTypeDatabaseDelete, entity.NodeTypeDatabaseUpdate:\n\t\t\t\t\t\tfor _, d := range node.Data.Inputs.DatabaseInfoList {\n\t\t\t\t\t\t\tassert.Equal(t, \"100100\", d.DatabaseInfoID)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvalidateSubWorkflowIDs(canvas.Nodes)\n\n\t\t\treturn nil\n\n\t\t}\n\n\t\tdefer mockey.Mock(appworkflow.PublishWorkflowResource).To(mockPublishWorkflowResource).Build().UnPatch()\n\n\t\tappID := \"7513788954458456064\"\n\t\tappIDInt64, _ := strconv.ParseInt(appID, 10, 64)\n\n\t\tr.load(\"copy_to_app/child_4.json\", withID(7515027325977624576), withProjectID(appIDInt64))\n\t\tr.load(\"copy_to_app/child_3.json\", withID(7515027249628708864), withProjectID(appIDInt64))\n\t\tr.load(\"copy_to_app/child_2.json\", withID(7515027182796668928), withProjectID(appIDInt64))\n\t\tr.load(\"copy_to_app/child_1.json\", withID(7515027150387281920), withProjectID(appIDInt64))\n\t\tr.load(\"copy_to_app/main.json\", withID(7515027091302121472), withProjectID(appIDInt64))\n\n\t\tdefer mockey.Mock((*appknowledge.KnowledgeApplicationService).CopyKnowledge).Return(&knowledge.CopyKnowledgeResponse{\n\t\t\tTargetKnowledgeID: 100100,\n\t\t}, nil).Build().UnPatch()\n\n\t\tmockCopyDatabase := func(ctx context.Context, req *appmemory.CopyDatabaseRequest) (*appmemory.CopyDatabaseResponse, error) {\n\t\t\tes := make(map[int64]*entity4.Database)\n\t\t\tfor _, id := range req.DatabaseIDs {\n\t\t\t\tes[id] = &entity4.Database{ID: 100100}\n\t\t\t}\n\t\t\treturn &appmemory.CopyDatabaseResponse{\n\t\t\t\tDatabases: es,\n\t\t\t}, nil\n\t\t}\n\n\t\tdefer mockey.Mock((*appmemory.DatabaseApplicationService).CopyDatabase).To(mockCopyDatabase).Build().UnPatch()\n\n\t\tdefer mockey.Mock((*appplugin.PluginApplicationService).CopyPlugin).Return(&dto.CopyPluginResponse{\n\t\t\tPlugin: &entity5.PluginInfo{\n\t\t\t\tPluginInfo: &pluginmodel.PluginInfo{\n\t\t\t\t\tID:      100100,\n\t\t\t\t\tVersion: ptr.Of(\"v0.0.1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil).Build().UnPatch()\n\n\t\t_, is, err := appworkflow.SVC.CopyWorkflowFromAppToLibrary(t.Context(), 7515027091302121472, appIDInt64, appIDInt64)\n\t\tassert.NoError(t, err)\n\t\tassert.Equal(t, 0, len(is))\n\t})\n\n\tmockey.PatchConvey(\"copy only with external resource\", t, func() {\n\t\tvar copiedIDs = make([]int64, 0)\n\t\tvar mockPublishWorkflowResource func(ctx context.Context, workflowID int64, mode *int32, op search.OpType, r *search.ResourceDocument) error\n\t\tvar ignoreIDs = map[int64]bool{\n\t\t\t7516518409656336384: true,\n\t\t\t7516516198096306176: true,\n\t\t}\n\t\tmockPublishWorkflowResource = func(ctx context.Context, workflowID int64, mode *int32, op search.OpType, r *search.ResourceDocument) error {\n\t\t\tif ignoreIDs[workflowID] {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\twf, err := appworkflow.GetWorkflowDomainSVC().Get(ctx, &vo.GetPolicy{\n\t\t\t\tID:    workflowID,\n\t\t\t\tQType: workflowModel.FromLatestVersion,\n\t\t\t})\n\n\t\t\tcopiedIDs = append(copiedIDs, workflowID)\n\t\t\tassert.NoError(t, err)\n\t\t\tassert.Equal(t, \"v0.0.1\", wf.Version)\n\t\t\tcanvas := &vo.Canvas{}\n\t\t\terr = sonic.UnmarshalString(wf.Canvas, canvas)\n\t\t\tassert.NoError(t, err)\n\n\t\t\tcopiedIDMap := slices.ToMap(copiedIDs, func(e int64) (string, bool) {\n\t\t\t\treturn strconv.FormatInt(e, 10), true\n\t\t\t})\n\t\t\tvar validateSubWorkflowIDs func(nodes []*vo.Node)\n\t\t\tvalidateSubWorkflowIDs = func(nodes []*vo.Node) {\n\t\t\t\tfor _, node := range nodes {\n\t\t\t\t\tswitch entity.IDStrToNodeType(node.Type) {\n\t\t\t\t\tcase entity.NodeTypeSubWorkflow:\n\t\t\t\t\t\tassert.True(t, copiedIDMap[node.Data.Inputs.WorkflowID])\n\t\t\t\t\tcase entity.NodeTypeLLM:\n\t\t\t\t\t\tif node.Data.Inputs.FCParam != nil && node.Data.Inputs.FCParam.WorkflowFCParam != nil {\n\t\t\t\t\t\t\tfor _, w := range node.Data.Inputs.FCParam.WorkflowFCParam.WorkflowList {\n\t\t\t\t\t\t\t\tassert.True(t, copiedIDMap[w.WorkflowID])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif node.Data.Inputs.FCParam != nil && node.Data.Inputs.FCParam.PluginFCParam != nil {\n\t\t\t\t\t\t\tfor _, p := range node.Data.Inputs.FCParam.PluginFCParam.PluginList {\n\t\t\t\t\t\t\t\t_ = p\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif node.Data.Inputs.FCParam != nil && node.Data.Inputs.FCParam.KnowledgeFCParam != nil {\n\t\t\t\t\t\t\tfor _, k := range node.Data.Inputs.FCParam.KnowledgeFCParam.KnowledgeList {\n\t\t\t\t\t\t\t\tassert.Equal(t, \"100100\", k.ID)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\tcase entity.NodeTypeKnowledgeIndexer, entity.NodeTypeKnowledgeRetriever:\n\t\t\t\t\t\tdatasetListInfoParam := node.Data.Inputs.DatasetParam[0]\n\t\t\t\t\t\tknowledgeIDs := datasetListInfoParam.Input.Value.Content.([]any)\n\t\t\t\t\t\tfor idx := range knowledgeIDs {\n\t\t\t\t\t\t\tassert.Equal(t, \"100100\", knowledgeIDs[idx].(string))\n\t\t\t\t\t\t}\n\t\t\t\t\tcase entity.NodeTypeDatabaseCustomSQL, entity.NodeTypeDatabaseQuery, entity.NodeTypeDatabaseInsert, entity.NodeTypeDatabaseDelete, entity.NodeTypeDatabaseUpdate:\n\t\t\t\t\t\tfor _, d := range node.Data.Inputs.DatabaseInfoList {\n\t\t\t\t\t\t\tassert.Equal(t, \"100100\", d.DatabaseInfoID)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvalidateSubWorkflowIDs(canvas.Nodes)\n\t\t\treturn nil\n\n\t\t}\n\n\t\tdefer mockey.Mock(appworkflow.PublishWorkflowResource).To(mockPublishWorkflowResource).Build().UnPatch()\n\n\t\tdefer mockey.Mock((*appknowledge.KnowledgeApplicationService).CopyKnowledge).Return(&knowledge.CopyKnowledgeResponse{\n\t\t\tTargetKnowledgeID: 100100,\n\t\t}, nil).Build().UnPatch()\n\n\t\tmockCopyDatabase := func(ctx context.Context, req *appmemory.CopyDatabaseRequest) (*appmemory.CopyDatabaseResponse, error) {\n\t\t\tes := make(map[int64]*entity4.Database)\n\t\t\tfor _, id := range req.DatabaseIDs {\n\t\t\t\tes[id] = &entity4.Database{ID: 100100}\n\t\t\t}\n\t\t\treturn &appmemory.CopyDatabaseResponse{\n\t\t\t\tDatabases: es,\n\t\t\t}, nil\n\t\t}\n\n\t\tdefer mockey.Mock((*appmemory.DatabaseApplicationService).CopyDatabase).To(mockCopyDatabase).Build().UnPatch()\n\n\t\tdefer mockey.Mock((*appplugin.PluginApplicationService).CopyPlugin).Return(&dto.CopyPluginResponse{\n\t\t\tPlugin: &entity5.PluginInfo{\n\t\t\t\tPluginInfo: &pluginmodel.PluginInfo{\n\t\t\t\t\tID:      time.Now().Unix(),\n\t\t\t\t\tVersion: ptr.Of(\"v0.0.1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil).Build().UnPatch()\n\n\t\tappIDInt64 := int64(7516515408422109184)\n\n\t\tr.load(\"copy_to_app/child2_1.json\", withID(7516518409656336384), withProjectID(appIDInt64))\n\t\tr.load(\"copy_to_app/main2.json\", withID(7516516198096306176), withProjectID(appIDInt64))\n\n\t\t_, ret, err := appworkflow.SVC.CopyWorkflowFromAppToLibrary(t.Context(), 7516516198096306176, 123, appIDInt64)\n\t\tassert.NoError(t, err)\n\t\tassert.Equal(t, 0, len(ret))\n\t})\n}\n\nfunc TestMoveWorkflowAppToLibrary(t *testing.T) {\n\tmockey.PatchConvey(\"test move workflow\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tr.publishPatcher.UnPatch()\n\t\tdefer r.closeFn()\n\t\tvars := map[string]*vo.TypeInfo{\n\t\t\t\"app_v1\": {\n\t\t\t\tType: vo.DataTypeString,\n\t\t\t},\n\t\t\t\"app_list_v1\": {\n\t\t\t\tType: vo.DataTypeArray,\n\t\t\t\tElemTypeInfo: &vo.TypeInfo{\n\t\t\t\t\tType: vo.DataTypeString,\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"app_list_v2\": {\n\t\t\t\tType: vo.DataTypeString,\n\t\t\t},\n\t\t}\n\n\t\tr.varGetter.EXPECT().GetAppVariablesMeta(gomock.Any(), gomock.Any(), gomock.Any()).Return(vars, nil).AnyTimes()\n\t\tt.Run(\"move workflow\", func(t *testing.T) {\n\n\t\t\tvar mockPublishWorkflowResource func(ctx context.Context, workflowID int64, mode *int32, op search.OpType, r *search.ResourceDocument) error\n\n\t\t\tnamed2Idx := []string{\"c1\", \"c2\", \"cc1\", \"main\"}\n\t\t\tcallCount := 0\n\t\t\tinitialWf2ID := map[string]int64{}\n\t\t\told2newID := map[int64]int64{}\n\t\t\tmockPublishWorkflowResource = func(ctx context.Context, workflowID int64, mode *int32, op search.OpType, r *search.ResourceDocument) error {\n\t\t\t\tif callCount <= 3 {\n\t\t\t\t\tinitialWf2ID[named2Idx[callCount]] = workflowID\n\t\t\t\t\tcallCount++\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tif op == search.Created {\n\t\t\t\t\tif oldID, ok := initialWf2ID[*r.Name]; ok {\n\t\t\t\t\t\told2newID[oldID] = workflowID\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn nil\n\n\t\t\t}\n\n\t\t\tdefer mockey.Mock(appworkflow.PublishWorkflowResource).To(mockPublishWorkflowResource).Build().UnPatch()\n\n\t\t\tdefer mockey.Mock((*appknowledge.KnowledgeApplicationService).MoveKnowledgeToLibrary).Return(nil).Build().UnPatch()\n\t\t\tdefer mockey.Mock((*appmemory.DatabaseApplicationService).MoveDatabaseToLibrary).Return(&appmemory.MoveDatabaseToLibraryResponse{}, nil).Build().UnPatch()\n\n\t\t\tdefer mockey.Mock((*appplugin.PluginApplicationService).MoveAPPPluginToLibrary).Return(&entity5.PluginInfo{\n\t\t\t\tPluginInfo: &pluginmodel.PluginInfo{\n\t\t\t\t\tID:      time.Now().Unix(),\n\t\t\t\t\tVersion: ptr.Of(\"v0.0.1\"),\n\t\t\t\t},\n\t\t\t}, nil).Build().UnPatch()\n\n\t\t\tctx := t.Context()\n\n\t\t\tappIDInt64 := time.Now().UnixNano()\n\t\t\tc1IdStr := r.load(\"move_to_app/c1.json\", withName(\"c1\"), withProjectID(appIDInt64))\n\t\t\tc2IdStr := r.load(\"move_to_app/c2.json\", withName(\"c2\"), withProjectID(appIDInt64))\n\n\t\t\tdata, err := os.ReadFile(\"../../../domain/workflow/internal/canvas/examples/move_to_app/main.json\")\n\t\t\tassert.NoError(t, err)\n\t\t\tmainCanvas := &vo.Canvas{}\n\t\t\terr = sonic.Unmarshal(data, mainCanvas)\n\t\t\tassert.NoError(t, err)\n\t\t\tfor _, node := range mainCanvas.Nodes {\n\t\t\t\tif node.Type == entity.NodeTypeSubWorkflow.IDStr() {\n\t\t\t\t\tif node.Data.Inputs.WorkflowID == \"7516826260387921920\" {\n\t\t\t\t\t\tnode.Data.Inputs.WorkflowID = c1IdStr\n\t\t\t\t\t}\n\t\t\t\t\tif node.Data.Inputs.WorkflowID == \"7516826283318181888\" {\n\t\t\t\t\t\tnode.Data.Inputs.WorkflowID = c2IdStr\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcc1Data, err := os.ReadFile(\"../../../domain/workflow/internal/canvas/examples/move_to_app/cc1.json\")\n\t\t\tassert.NoError(t, err)\n\t\t\tcc1Canvas := &vo.Canvas{}\n\t\t\terr = sonic.Unmarshal(cc1Data, cc1Canvas)\n\t\t\tassert.NoError(t, err)\n\t\t\tfor _, node := range cc1Canvas.Nodes {\n\t\t\t\tif node.Type == entity.NodeTypeSubWorkflow.IDStr() {\n\t\t\t\t\tif node.Data.Inputs.WorkflowID == \"7516826283318181888\" {\n\t\t\t\t\t\tnode.Data.Inputs.WorkflowID = c2IdStr\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tcc1Data, _ = sonic.Marshal(cc1Canvas)\n\t\t\tcc1IdStr := r.load(\"\", withName(\"cc1\"), withProjectID(appIDInt64), withWorkflowData(cc1Data))\n\t\t\tdata, _ = sonic.Marshal(mainCanvas)\n\t\t\tmIdStr := r.load(\"\", withName(\"main\"), withProjectID(appIDInt64), withWorkflowData(data))\n\n\t\t\tmId, err := strconv.ParseInt(mIdStr, 10, 64)\n\n\t\t\tid, vs, err := appworkflow.SVC.MoveWorkflowFromAppToLibrary(ctx, mId, 123, appIDInt64)\n\t\t\tassert.NoError(t, err)\n\n\t\t\tassert.Equal(t, 0, len(vs))\n\t\t\tassert.Equal(t, id, old2newID[mId])\n\t\t\t_, err = getCanvas(ctx, mIdStr)\n\n\t\t\tassert.NotNil(t, err)\n\t\t\tassert.Contains(t, err.Error(), \"record not found\")\n\t\t\t_, err = getCanvas(ctx, c1IdStr)\n\n\t\t\tassert.NotNil(t, err)\n\t\t\tassert.Contains(t, err.Error(), \"record not found\")\n\t\t\t_, err = getCanvas(ctx, c2IdStr)\n\t\t\tassert.NotNil(t, err)\n\t\t\tassert.Contains(t, err.Error(), \"record not found\")\n\n\t\t\tmIdInt64, _ := strconv.ParseInt(mIdStr, 10, 64)\n\t\t\tnewMainID := old2newID[mIdInt64]\n\t\t\tschemaJson, err := getCanvas(ctx, strconv.FormatInt(newMainID, 10))\n\n\t\t\tassert.NoError(t, err)\n\n\t\t\tc1IDInt64, _ := strconv.ParseInt(c1IdStr, 10, 64)\n\t\t\tc2IDInt64, _ := strconv.ParseInt(c2IdStr, 10, 64)\n\n\t\t\tnewC1ID := old2newID[c1IDInt64]\n\t\t\tnewC2ID := old2newID[c2IDInt64]\n\n\t\t\tnewSubWorkflowID := map[string]bool{\n\t\t\t\tstrconv.FormatInt(newC1ID, 10): true,\n\t\t\t\tstrconv.FormatInt(newC2ID, 10): true,\n\t\t\t}\n\t\t\tnewMainCanvas := &vo.Canvas{}\n\t\t\terr = sonic.UnmarshalString(schemaJson, newMainCanvas)\n\t\t\tassert.NoError(t, err)\n\n\t\t\tfor _, node := range newMainCanvas.Nodes {\n\t\t\t\tif node.Type == entity.NodeTypeSubWorkflow.IDStr() {\n\t\t\t\t\tassert.True(t, newSubWorkflowID[node.Data.Inputs.WorkflowID])\n\t\t\t\t\tassert.Equal(t, \"v0.0.1\", node.Data.Inputs.WorkflowVersion)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tschemaJson, err = getCanvas(ctx, cc1IdStr)\n\t\t\tassert.NoError(t, err)\n\n\t\t\tcc1Canvas = &vo.Canvas{}\n\t\t\terr = sonic.UnmarshalString(schemaJson, cc1Canvas)\n\t\t\tassert.NoError(t, err)\n\n\t\t\tfor _, node := range cc1Canvas.Nodes {\n\t\t\t\tif node.Type == entity.NodeTypeSubWorkflow.IDStr() {\n\t\t\t\t\tassert.True(t, newSubWorkflowID[node.Data.Inputs.WorkflowID])\n\t\t\t\t\tassert.Equal(t, \"v0.0.1\", node.Data.Inputs.WorkflowVersion)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttime.Sleep(time.Second)\n\t\t})\n\n\t})\n}\n\nfunc TestDuplicateWorkflowsByAppID(t *testing.T) {\n\tmockey.PatchConvey(\"test duplicate work\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tr.publishPatcher.UnPatch()\n\t\tdefer r.closeFn()\n\n\t\tvars := map[string]*vo.TypeInfo{\n\t\t\t\"app_v1\": {\n\t\t\t\tType: vo.DataTypeString,\n\t\t\t},\n\t\t\t\"app_list_v1\": {\n\t\t\t\tType: vo.DataTypeArray,\n\t\t\t\tElemTypeInfo: &vo.TypeInfo{\n\t\t\t\t\tType: vo.DataTypeString,\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"app_list_v2\": {\n\t\t\t\tType: vo.DataTypeString,\n\t\t\t},\n\t\t}\n\n\t\tr.varGetter.EXPECT().GetAppVariablesMeta(gomock.Any(), gomock.Any(), gomock.Any()).Return(vars, nil).AnyTimes()\n\t\tvar copiedIDs = make([]int64, 0)\n\t\tvar mockPublishWorkflowResource func(ctx context.Context, workflowID int64, mode *int32, op search.OpType, r *search.ResourceDocument) error\n\t\tvar ignoreIDs = map[int64]bool{\n\t\t\t7515027325977624576: true,\n\t\t\t7515027249628708864: true,\n\t\t\t7515027182796668928: true,\n\t\t\t7515027150387281920: true,\n\t\t\t7515027091302121472: true,\n\t\t\t7515027325977624579: true,\n\t\t}\n\t\tmockPublishWorkflowResource = func(ctx context.Context, workflowID int64, mode *int32, op search.OpType, r *search.ResourceDocument) error {\n\t\t\tif ignoreIDs[workflowID] {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tcopiedIDs = append(copiedIDs, workflowID)\n\t\t\treturn nil\n\n\t\t}\n\n\t\tdefer mockey.Mock(appworkflow.PublishWorkflowResource).To(mockPublishWorkflowResource).Build().UnPatch()\n\n\t\tappIDInt64 := int64(7513788954458456064)\n\n\t\tr.load(\"copy_to_app/child_5.json\", withID(7515027325977624579), withProjectID(appIDInt64))\n\t\tr.load(\"copy_to_app/child_4.json\", withID(7515027325977624576), withProjectID(appIDInt64))\n\t\tr.load(\"copy_to_app/child_3.json\", withID(7515027249628708864), withProjectID(appIDInt64))\n\t\tr.load(\"copy_to_app/child_2.json\", withID(7515027182796668928), withProjectID(appIDInt64))\n\t\tr.load(\"copy_to_app/child_1.json\", withID(7515027150387281920), withProjectID(appIDInt64))\n\t\tr.load(\"copy_to_app/main.json\", withID(7515027091302121472), withProjectID(appIDInt64))\n\t\ttargetAppID := int64(7513788954458456066)\n\n\t\terr := appworkflow.SVC.DuplicateWorkflowsByAppID(t.Context(), appIDInt64, targetAppID, appworkflow.ExternalResource{})\n\t\tassert.NoError(t, err)\n\n\t\tcopiedIDMap := slices.ToMap(copiedIDs, func(e int64) (string, bool) {\n\t\t\treturn strconv.FormatInt(e, 10), true\n\t\t})\n\t\tvar validateSubWorkflowIDs func(nodes []*vo.Node)\n\t\tvalidateSubWorkflowIDs = func(nodes []*vo.Node) {\n\t\t\tfor _, node := range nodes {\n\t\t\t\tif node.Type == entity.NodeTypeSubWorkflow.IDStr() {\n\t\t\t\t\tassert.True(t, copiedIDMap[node.Data.Inputs.WorkflowID])\n\t\t\t\t}\n\t\t\t\tif node.Type == entity.NodeTypeLLM.IDStr() {\n\t\t\t\t\tif node.Data.Inputs.FCParam != nil && node.Data.Inputs.FCParam.WorkflowFCParam != nil {\n\t\t\t\t\t\tfor _, w := range node.Data.Inputs.FCParam.WorkflowFCParam.WorkflowList {\n\t\t\t\t\t\t\tassert.True(t, copiedIDMap[w.WorkflowID])\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t\tfor id := range copiedIDMap {\n\t\t\tschemaString, err := getCanvas(t.Context(), id)\n\t\t\tassert.NoError(t, err)\n\t\t\tcs := &vo.Canvas{}\n\t\t\terr = sonic.UnmarshalString(schemaString, cs)\n\t\t\tassert.NoError(t, err)\n\t\t\tvalidateSubWorkflowIDs(cs.Nodes)\n\t\t}\n\n\t})\n}\n\nfunc TestJsonSerializationDeserialization(t *testing.T) {\n\tmockey.PatchConvey(\"test JSON serialization and deserialization workflow\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tidStr := r.load(\"json/json_test.json\")\n\n\t\tmockey.PatchConvey(\"no type conversion\", func() {\n\t\t\ttestInput := map[string]string{\n\t\t\t\t\"person\": `{\"int\":123,\"string\":\"hello\",\"bool\":true}`,\n\t\t\t}\n\n\t\t\texeID := r.testRun(idStr, testInput)\n\t\t\te := r.getProcess(idStr, exeID)\n\t\t\toutput := e.output\n\t\t\tt.Logf(\"JSON deserialization result (no conversion): %s\", output)\n\n\t\t\tvar result map[string]any\n\t\t\terr := sonic.Unmarshal([]byte(output), &result)\n\t\t\tassert.NoError(t, err, \"Failed to unmarshal output JSON\")\n\n\t\t\toutputData, ok := result[\"output\"].(map[string]any)\n\t\t\tassert.True(t, ok, \"output field is not a map[string]any\")\n\n\t\t\tassert.Equal(t, int64(123), outputData[\"int\"], \"int field mismatch\")\n\t\t\tassert.Equal(t, \"hello\", outputData[\"string\"], \"string field mismatch\")\n\t\t\tassert.Equal(t, true, outputData[\"bool\"], \"bool field mismatch\")\n\t\t})\n\n\t\tmockey.PatchConvey(\"legal type conversion\", func() {\n\t\t\ttestInput := map[string]string{\n\t\t\t\t\"person\": `{\"int\":\"123\",\"string\":456,\"bool\":\"true\"}`,\n\t\t\t}\n\n\t\t\texeID := r.testRun(idStr, testInput)\n\t\t\te := r.getProcess(idStr, exeID)\n\t\t\toutput := e.output\n\t\t\tt.Logf(\"JSON deserialization result (legal conversion): %s\", output)\n\n\t\t\tvar result map[string]any\n\t\t\terr := sonic.Unmarshal([]byte(output), &result)\n\t\t\tassert.NoError(t, err, \"Failed to unmarshal output JSON\")\n\n\t\t\toutputData, ok := result[\"output\"].(map[string]any)\n\t\t\tassert.True(t, ok, \"output field is not a map[string]any\")\n\n\t\t\tassert.Equal(t, int64(123), outputData[\"int\"], \"int field mismatch\")\n\t\t\tassert.Equal(t, \"456\", outputData[\"string\"], \"string field mismatch\")\n\t\t\tassert.Equal(t, true, outputData[\"bool\"], \"bool field mismatch\")\n\t\t})\n\t})\n}\n\nfunc TestJsonSerializationDeserializationWithWarning(t *testing.T) {\n\tmockey.PatchConvey(\"test JSON serialization and deserialization with warning\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tidStr := r.load(\"json/json_test_warning.json\")\n\t\ttestInput := map[string]string{\n\t\t\t\"person\": `{\"int\":1,\"string\":\"abc\",\"bool\":true}`,\n\t\t}\n\n\t\texeID := r.testRun(idStr, testInput)\n\t\te := r.getProcess(idStr, exeID)\n\t\toutput := e.output\n\t\tt.Logf(\"JSON deserialization result (legal conversion): %s\", output)\n\n\t\tvar result map[string]any\n\t\terr := sonic.Unmarshal([]byte(output), &result)\n\t\tassert.NoError(t, err, \"Failed to unmarshal output JSON\")\n\n\t\toutputData, ok := result[\"output\"].(map[string]any)\n\t\tassert.True(t, ok, \"output field is not a map[string]any\")\n\n\t\tassert.Equal(t, nil, outputData[\"int\"], \"int field mismatch\")\n\t\tassert.Equal(t, \"abc\", outputData[\"string\"], \"string field mismatch\")\n\t\tassert.Equal(t, true, outputData[\"bool\"], \"bool field mismatch\")\n\t})\n}\n\nfunc TestChatFlowRoleAPI(t *testing.T) {\n\tmockey.PatchConvey(\"chat flow role api\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\n\t\tworkflowID := r.load(\"/chatflow/start_exit.json\", withMode(workflow.WorkflowMode_ChatFlow))\n\t\tuserConfig := &workflow.UserInputConfig{\n\t\t\tDefaultInputMode: 1,\n\t\t\tSendVoiceMode:    0,\n\t\t}\n\n\t\tcr := &workflow.CreateChatFlowRoleRequest{\n\t\t\tChatFlowRole: &workflow.ChatFlowRole{\n\t\t\t\tWorkflowID:      workflowID,\n\t\t\t\tName:            ptr.Of(\"role_name\"),\n\t\t\t\tDescription:     ptr.Of(\"role_desc\"),\n\t\t\t\tUserInputConfig: userConfig,\n\t\t\t},\n\t\t}\n\n\t\tCreateResp := post[workflow.CreateChatFlowRoleResponse](r, cr)\n\t\tid := CreateResp.ID\n\n\t\tgr := &workflow.GetChatFlowRoleRequest{\n\t\t\tWorkflowID: workflowID,\n\t\t}\n\n\t\tw := ut.PerformRequest(r.h.Engine, \"GET\", fmt.Sprintf(\"/api/workflow_api/chat_flow_role/get?workflow_id=%s\", gr.WorkflowID), nil,\n\t\t\tut.Header{Key: \"Content-Type\", Value: \"application/json\"})\n\t\tres := w.Result()\n\t\tassert.Equal(t, http.StatusOK, res.StatusCode(), string(res.Body()))\n\t\tGetResp := &workflow.GetChatFlowRoleResponse{}\n\t\terr := sonic.Unmarshal(res.Body(), GetResp)\n\t\tassert.NoError(r.t, err)\n\t\trole := GetResp.Role\n\t\tassert.Equal(t, \"role_name\", *role.Name)\n\t\tassert.Equal(t, \"role_desc\", *role.Description)\n\t\tassert.Equal(t, userConfig, role.UserInputConfig)\n\n\t\tcr = &workflow.CreateChatFlowRoleRequest{\n\t\t\tChatFlowRole: &workflow.ChatFlowRole{\n\t\t\t\tID:          id,\n\t\t\t\tWorkflowID:  workflowID,\n\t\t\t\tName:        ptr.Of(\"update_name\"),\n\t\t\t\tDescription: ptr.Of(\"update_desc\"),\n\t\t\t},\n\t\t}\n\n\t\t_ = post[workflow.CreateChatFlowRoleResponse](r, cr)\n\t\tw = ut.PerformRequest(r.h.Engine, \"GET\", fmt.Sprintf(\"/api/workflow_api/chat_flow_role/get?workflow_id=%s\", gr.WorkflowID), nil,\n\t\t\tut.Header{Key: \"Content-Type\", Value: \"application/json\"})\n\t\tres = w.Result()\n\t\tassert.Equal(t, http.StatusOK, res.StatusCode(), string(res.Body()))\n\t\tGetResp = &workflow.GetChatFlowRoleResponse{}\n\t\terr = sonic.Unmarshal(res.Body(), GetResp)\n\t\tassert.NoError(t, err)\n\t\tassert.Equal(t, \"update_name\", *GetResp.Role.Name)\n\t\tassert.Equal(t, \"update_desc\", *GetResp.Role.Description)\n\t\tassert.Equal(t, userConfig, role.UserInputConfig)\n\n\t\tdr := &workflow.DeleteChatFlowRoleRequest{\n\t\t\tWorkflowID: workflowID,\n\t\t\tID:         id,\n\t\t}\n\t\t_ = post[workflow.DeleteChatFlowRoleResponse](r, dr)\n\n\t\tw = ut.PerformRequest(r.h.Engine, \"GET\", fmt.Sprintf(\"/api/workflow_api/chat_flow_role/get?workflow_id=%s\", gr.WorkflowID), nil,\n\t\t\tut.Header{Key: \"Content-Type\", Value: \"application/json\"})\n\t\tres = w.Result()\n\t\tassert.Equal(t, http.StatusOK, res.StatusCode(), string(res.Body()))\n\t\tGetResp = &workflow.GetChatFlowRoleResponse{}\n\t\terr = sonic.Unmarshal(res.Body(), GetResp)\n\t\tassert.NoError(t, err)\n\t\tassert.Nil(t, GetResp.Role)\n\n\t})\n}\n\nfunc TestConversationOfChatFlow(t *testing.T) {\n\n\tmockey.PatchConvey(\"conversation\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\t\tts := time.Now().Unix()\n\t\tcName := \"conversation_\" + strconv.FormatInt(ts, 10)\n\t\tctx := t.Context()\n\t\tt.Run(\"create & update & delete conversation template\", func(t *testing.T) {\n\t\t\tcreateReq := &workflow.CreateProjectConversationDefRequest{\n\t\t\t\tProjectID:        \"123\",\n\t\t\t\tConversationName: cName,\n\t\t\t\tSpaceID:          \"123\",\n\t\t\t}\n\t\t\tresponse := post[workflow.CreateProjectConversationDefResponse](r, createReq)\n\t\t\tresponse2 := post[workflow.CreateProjectConversationDefResponse](r, createReq)\n\t\t\tassert.Equal(t, response2.Code, int64(720702200))\n\t\t\tassert.Contains(t, response2.Msg, fmt.Sprintf(\"conversation name conversation_%d is duplicated\", ts))\n\t\t\tcanvas := &vo.Canvas{}\n\t\t\tdata, err := os.ReadFile(fmt.Sprintf(\"../../../domain/workflow/internal/canvas/examples/%s\", \"chatflow/new_chatflow.json\"))\n\t\t\tassert.NoError(t, err)\n\t\t\terr = sonic.Unmarshal(data, canvas)\n\t\t\tassert.NoError(t, err)\n\n\t\t\tupdateName := cName + \"update_name\"\n\t\t\treplacedWorkflow := func(nodes []*vo.Node) error {\n\t\t\t\tvar startNode *vo.Node\n\t\t\t\tfor _, node := range nodes {\n\t\t\t\t\tif node.Type == entity.NodeTypeEntry.IDStr() {\n\t\t\t\t\t\tstartNode = node\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif startNode == nil {\n\t\t\t\t\treturn fmt.Errorf(\"start node not found\")\n\t\t\t\t}\n\t\t\t\tfor idx, vAny := range startNode.Data.Outputs {\n\t\t\t\t\tv, err := vo.ParseVariable(vAny)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif v.Name == vo.ConversationNameKey {\n\t\t\t\t\t\tv.DefaultValue = cName\n\t\t\t\t\t}\n\t\t\t\t\tstartNode.Data.Outputs[idx] = v\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\terr = replacedWorkflow(canvas.Nodes)\n\t\t\tassert.NoError(t, err)\n\t\t\tdata, err = sonic.Marshal(canvas)\n\t\t\tassert.NoError(t, err)\n\n\t\t\t_ = r.load(\"chatflow/new_chatflow.json\", withID(ts), withProjectID(123), withWorkflowData(data), withMode(workflow.WorkflowMode_ChatFlow))\n\n\t\t\tpost[workflow.UpdateProjectConversationDefResponse](r, &workflow.UpdateProjectConversationDefRequest{\n\t\t\t\tProjectID:        \"123\",\n\t\t\t\tUniqueID:         response.UniqueID,\n\t\t\t\tConversationName: updateName,\n\t\t\t})\n\n\t\t\tschemaJson, err := getCanvas(ctx, strconv.FormatInt(ts, 10))\n\t\t\tassert.NoError(t, err)\n\t\t\tcanvas = &vo.Canvas{}\n\t\t\terr = sonic.UnmarshalString(schemaJson, canvas)\n\t\t\tassert.NoError(t, err)\n\t\t\tfor _, node := range canvas.Nodes {\n\t\t\t\tif node.Type == entity.NodeTypeEntry.IDStr() {\n\t\t\t\t\tfor _, vAny := range node.Data.Outputs {\n\t\t\t\t\t\tv, err := vo.ParseVariable(vAny)\n\t\t\t\t\t\tassert.NoError(t, err)\n\t\t\t\t\t\tif v.Name == vo.ConversationNameKey {\n\t\t\t\t\t\t\tassert.Equal(t, v.DefaultValue, updateName)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdeleteResponse := post[workflow.DeleteProjectConversationDefResponse](r, &workflow.DeleteProjectConversationDefRequest{\n\t\t\t\tProjectID: \"123\",\n\t\t\t\tCheckOnly: true,\n\t\t\t\tUniqueID:  response.UniqueID,\n\t\t\t\tReplace:   make(map[string]string),\n\t\t\t\tSpaceID:   \"123\",\n\t\t\t})\n\n\t\t\tworkflowID := deleteResponse.NeedReplace[0].WorkflowID\n\t\t\tassert.Equal(t, 1, len(deleteResponse.NeedReplace))\n\t\t\tassert.Equal(t, strconv.FormatInt(ts, 10), workflowID)\n\n\t\t\tcreateReq = &workflow.CreateProjectConversationDefRequest{\n\t\t\t\tProjectID:        \"123\",\n\t\t\t\tConversationName: cName + \"copy\",\n\t\t\t\tSpaceID:          \"123\",\n\t\t\t}\n\t\t\t_ = post[workflow.CreateProjectConversationDefResponse](r, createReq)\n\n\t\t\tpost[workflow.DeleteProjectConversationDefResponse](r, &workflow.DeleteProjectConversationDefRequest{\n\t\t\t\tProjectID: \"123\",\n\t\t\t\tCheckOnly: false,\n\t\t\t\tUniqueID:  response.UniqueID,\n\t\t\t\tReplace: map[string]string{\n\t\t\t\t\tworkflowID: cName + \"copy\",\n\t\t\t\t},\n\t\t\t\tSpaceID: \"123\",\n\t\t\t})\n\n\t\t\tschemaJson, err = getCanvas(ctx, strconv.FormatInt(ts, 10))\n\t\t\tassert.NoError(t, err)\n\t\t\tcanvas = &vo.Canvas{}\n\t\t\terr = sonic.UnmarshalString(schemaJson, canvas)\n\t\t\tassert.NoError(t, err)\n\n\t\t\tfor _, node := range canvas.Nodes {\n\t\t\t\tif node.Type == entity.NodeTypeEntry.IDStr() {\n\t\t\t\t\tfor _, vAny := range node.Data.Outputs {\n\t\t\t\t\t\tv, err := vo.ParseVariable(vAny)\n\t\t\t\t\t\tassert.NoError(t, err)\n\t\t\t\t\t\tif v.Name == vo.ConversationNameKey {\n\t\t\t\t\t\t\tassert.Equal(t, v.DefaultValue, cName+\"copy\")\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tt.Run(\"list conversation template\", func(t *testing.T) {\n\t\t\ttsStr := strconv.FormatInt(ts, 10)\n\t\t\tc0Name := \"conversation_list_\" + tsStr + \"0\"\n\t\t\tc1Name := \"conversation_list_\" + tsStr + \"1\"\n\t\t\tc3bakName := \"conversation_bak_list_\" + tsStr + \"3\"\n\n\t\t\tcreateReq := &workflow.CreateProjectConversationDefRequest{\n\t\t\t\tProjectID:        tsStr,\n\t\t\t\tConversationName: c0Name,\n\t\t\t\tSpaceID:          \"123\",\n\t\t\t}\n\t\t\t_ = post[workflow.CreateProjectConversationDefResponse](r, createReq)\n\n\t\t\tcreateReq = &workflow.CreateProjectConversationDefRequest{\n\t\t\t\tProjectID:        tsStr,\n\t\t\t\tConversationName: c1Name,\n\t\t\t\tSpaceID:          \"123\",\n\t\t\t}\n\t\t\t_ = post[workflow.CreateProjectConversationDefResponse](r, createReq)\n\n\t\t\tcreateReq = &workflow.CreateProjectConversationDefRequest{\n\t\t\t\tProjectID:        tsStr,\n\t\t\t\tConversationName: c3bakName,\n\t\t\t\tSpaceID:          \"123\",\n\t\t\t}\n\t\t\t_ = post[workflow.CreateProjectConversationDefResponse](r, createReq)\n\n\t\t\tresponse := post[workflow.ListProjectConversationResponse](r, &workflow.ListProjectConversationRequest{\n\t\t\t\tProjectID:    tsStr,\n\t\t\t\tCreateMethod: workflow.CreateMethod_ManualCreate,\n\t\t\t\tCreateEnv:    workflow.CreateEnv_Draft,\n\t\t\t\tCursor:       \"1\",\n\t\t\t\tLimit:        10000,\n\t\t\t\tConnectorID:  \"100001\",\n\t\t\t})\n\t\t\tassert.Equal(t, 3, len(response.Data))\n\t\t\tnameMap := map[string]bool{\n\t\t\t\tc0Name:    true,\n\t\t\t\tc1Name:    true,\n\t\t\t\tc3bakName: true,\n\t\t\t}\n\t\t\tfor _, v := range response.Data {\n\t\t\t\tassert.True(t, nameMap[v.ConversationName])\n\t\t\t}\n\n\t\t\tresponse = post[workflow.ListProjectConversationResponse](r, &workflow.ListProjectConversationRequest{\n\t\t\t\tProjectID:    tsStr,\n\t\t\t\tCreateMethod: workflow.CreateMethod_ManualCreate,\n\t\t\t\tCreateEnv:    workflow.CreateEnv_Draft,\n\t\t\t\tCursor:       \"1\",\n\t\t\t\tLimit:        10000,\n\t\t\t\tConnectorID:  \"100001\",\n\t\t\t\tNameLike:     \"conversation_list\",\n\t\t\t})\n\t\t\tassert.Equal(t, 2, len(response.Data))\n\t\t})\n\t})\n\n}\n\nfunc TestConversationListNodes(t *testing.T) {\n\tmockey.PatchConvey(\"list dynamic conversation\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\t\tcID := time.Now().UnixNano()\n\t\tappID := cID\n\t\tr.conversation.EXPECT().CreateConversation(gomock.Any(), gomock.Any()).Return(&conventity.Conversation{\n\t\t\tID: appID,\n\t\t}, nil).AnyTimes()\n\t\tidStr := r.load(\"conversation_manager/conversation_list.json\")\n\t\texecID := r.testRun(idStr, map[string]string{\n\t\t\t\"CONVERSATION_NAME\": \"name\" + strconv.FormatInt(cID, 10),\n\t\t}, withRunProjectID(appID))\n\t\te := r.getProcess(idStr, execID)\n\t\ttype conversationInfo struct {\n\t\t\tConversationName string `json:\"conversationName\"`\n\t\t\tConversationId   string `json:\"conversationId\"`\n\t\t}\n\t\tvar output []conversationInfo\n\t\terr := sonic.UnmarshalString(e.output, &output)\n\t\tassert.Nil(t, err)\n\t\texpected := []conversationInfo{\n\t\t\t{\n\t\t\t\tConversationId:   strconv.FormatInt(cID, 10),\n\t\t\t\tConversationName: \"name\" + strconv.FormatInt(cID, 10),\n\t\t\t},\n\t\t}\n\t\tassert.Equal(t, expected, output)\n\t})\n\n\tmockey.PatchConvey(\"list static conversation\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\t\tcID := time.Now().UnixNano()\n\t\tappID := cID\n\t\tr.conversation.EXPECT().CreateConversation(gomock.Any(), gomock.Any()).Return(&conventity.Conversation{\n\t\t\tID: appID,\n\t\t}, nil).AnyTimes()\n\t\tcreateReq := &workflow.CreateProjectConversationDefRequest{\n\t\t\tProjectID:        strconv.FormatInt(appID, 10),\n\t\t\tConversationName: \"name\" + strconv.FormatInt(cID, 10),\n\t\t\tSpaceID:          \"123\",\n\t\t}\n\t\tpost[workflow.CreateProjectConversationDefResponse](r, createReq)\n\t\tidStr := r.load(\"conversation_manager/conversation_list.json\")\n\t\texecID := r.testRun(idStr, map[string]string{\n\t\t\t\"CONVERSATION_NAME\": \"name\" + strconv.FormatInt(cID, 10),\n\t\t}, withRunProjectID(appID))\n\t\te := r.getProcess(idStr, execID)\n\t\ttype conversationInfo struct {\n\t\t\tConversationName string `json:\"conversationName\"`\n\t\t\tConversationId   string `json:\"conversationId\"`\n\t\t}\n\t\tvar output []conversationInfo\n\t\terr := sonic.UnmarshalString(e.output, &output)\n\t\tassert.Nil(t, err)\n\t\texpected := []conversationInfo{\n\t\t\t{\n\t\t\t\tConversationId:   strconv.FormatInt(cID, 10),\n\t\t\t\tConversationName: \"name\" + strconv.FormatInt(cID, 10),\n\t\t\t},\n\t\t}\n\t\tassert.Equal(t, expected, output)\n\t})\n}\n\nfunc TestConversationHistoryNodes(t *testing.T) {\n\tmockey.PatchConvey(\"conversation_history & clear conversation_history for dynamic conversation\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\t\tcID := time.Now().UnixNano()\n\t\tappID := cID\n\t\tr.conversation.EXPECT().CreateConversation(gomock.Any(), gomock.Any()).Return(&conventity.Conversation{\n\t\t\tID: appID,\n\t\t}, nil).AnyTimes()\n\t\tmID := time.Now().Unix()\n\t\tr.message.EXPECT().Create(gomock.Any(), gomock.Any()).Return(&message.Message{\n\t\t\tID: mID,\n\t\t}, nil).AnyTimes()\n\t\trID := time.Now().UnixNano()\n\t\tr.agentRun.EXPECT().Create(gomock.Any(), gomock.Any()).Return(&agententity.RunRecordMeta{\n\t\t\tID: rID,\n\t\t}, nil).AnyTimes()\n\t\tsID := time.Now().UnixNano()\n\t\tr.conversation.EXPECT().GetByID(gomock.Any(), gomock.Any()).Return(&conventity.Conversation{\n\t\t\tID:        cID,\n\t\t\tSectionID: sID,\n\t\t}, nil).AnyTimes()\n\t\tr.message.EXPECT().GetLatestRunIDs(gomock.Any(), gomock.Any()).Return([]int64{rID}, nil).AnyTimes()\n\t\tr.message.EXPECT().GetMessagesByRunIDs(gomock.Any(), gomock.Any()).Return(&message0.GetMessagesByRunIDsResponse{\n\t\t\tMessages: []*message0.WfMessage{\n\t\t\t\t{\n\t\t\t\t\tID:   mID,\n\t\t\t\t\tRole: schema.User,\n\t\t\t\t\tText: ptr.Of(\"你好\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil).AnyTimes()\n\t\tr.conversation.EXPECT().ClearConversationHistory(gomock.Any(), gomock.Any()).Return(&conventity.NewConversationCtxResponse{\n\t\t\tID: cID,\n\t\t}, nil).AnyTimes()\n\n\t\tidStr := r.load(\"conversation_manager/conversation_history.json\")\n\t\texecID := r.testRun(idStr, map[string]string{\n\t\t\t\"CONVERSATION_NAME\": \"name\" + strconv.FormatInt(cID, 10),\n\t\t}, withRunProjectID(appID))\n\t\te := r.getProcess(idStr, execID)\n\t\te.assertSuccess()\n\t\toutput := e.output\n\t\tvar outputMap map[string]any\n\t\terr := sonic.Unmarshal([]byte(output), &outputMap)\n\t\tassert.Nil(t, err)\n\t\tassert.Equal(t, true, outputMap[\"isSuccess\"])\n\t\tvar messageList []any\n\t\tmsg := map[string]any{\n\t\t\t\"role\":    \"user\",\n\t\t\t\"content\": \"你好\",\n\t\t}\n\t\tmessageList = append(messageList, msg)\n\t\tassert.Equal(t, messageList, outputMap[\"history_list\"])\n\t})\n\n\tmockey.PatchConvey(\"conversation_history & clear conversation_history for static conversation\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\t\tcID := time.Now().UnixNano()\n\t\tappID := cID\n\t\tr.conversation.EXPECT().CreateConversation(gomock.Any(), gomock.Any()).Return(&conventity.Conversation{\n\t\t\tID: appID,\n\t\t}, nil).AnyTimes()\n\t\tcreateReq := &workflow.CreateProjectConversationDefRequest{\n\t\t\tProjectID:        strconv.FormatInt(appID, 10),\n\t\t\tConversationName: \"name\" + strconv.FormatInt(cID, 10),\n\t\t\tSpaceID:          \"123\",\n\t\t}\n\t\tpost[workflow.CreateProjectConversationDefResponse](r, createReq)\n\t\tmID := time.Now().Unix()\n\t\tr.message.EXPECT().Create(gomock.Any(), gomock.Any()).Return(&message.Message{\n\t\t\tID: mID,\n\t\t}, nil).AnyTimes()\n\t\trID := time.Now().UnixNano()\n\t\tr.agentRun.EXPECT().Create(gomock.Any(), gomock.Any()).Return(&agententity.RunRecordMeta{\n\t\t\tID: rID,\n\t\t}, nil).AnyTimes()\n\t\tsID := time.Now().UnixNano()\n\t\tr.conversation.EXPECT().GetByID(gomock.Any(), gomock.Any()).Return(&conventity.Conversation{\n\t\t\tID:        cID,\n\t\t\tSectionID: sID,\n\t\t}, nil).AnyTimes()\n\t\tr.message.EXPECT().GetLatestRunIDs(gomock.Any(), gomock.Any()).Return([]int64{rID}, nil).AnyTimes()\n\t\tr.message.EXPECT().GetMessagesByRunIDs(gomock.Any(), gomock.Any()).Return(&message0.GetMessagesByRunIDsResponse{\n\t\t\tMessages: []*message0.WfMessage{\n\t\t\t\t{\n\t\t\t\t\tID:   mID,\n\t\t\t\t\tRole: schema.Assistant,\n\t\t\t\t\tText: ptr.Of(\"你好, 我是coze\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil).AnyTimes()\n\t\tr.conversation.EXPECT().ClearConversationHistory(gomock.Any(), gomock.Any()).Return(&conventity.NewConversationCtxResponse{\n\t\t\tID: cID,\n\t\t}, nil).AnyTimes()\n\n\t\tidStr := r.load(\"conversation_manager/conversation_history.json\")\n\t\texecID := r.testRun(idStr, map[string]string{\n\t\t\t\"CONVERSATION_NAME\": \"name\" + strconv.FormatInt(cID, 10),\n\t\t}, withRunProjectID(appID))\n\t\te := r.getProcess(idStr, execID)\n\t\te.assertSuccess()\n\t\toutput := e.output\n\t\tvar outputMap map[string]any\n\t\terr := sonic.Unmarshal([]byte(output), &outputMap)\n\t\tassert.Nil(t, err)\n\t\tassert.Equal(t, true, outputMap[\"isSuccess\"])\n\t\tvar messageList []any\n\t\tmsg := map[string]any{\n\t\t\t\"role\":    \"assistant\",\n\t\t\t\"content\": \"你好, 我是coze\",\n\t\t}\n\t\tmessageList = append(messageList, msg)\n\t\tassert.Equal(t, messageList, outputMap[\"history_list\"])\n\t})\n\n\tmockey.PatchConvey(\"conversation_history blank list\", t, func() {\n\t\tr := newWfTestRunner(t)\n\t\tdefer r.closeFn()\n\t\tcID := time.Now().UnixNano()\n\t\tappID := cID\n\t\tr.conversation.EXPECT().CreateConversation(gomock.Any(), gomock.Any()).Return(&conventity.Conversation{\n\t\t\tID: appID,\n\t\t}, nil).AnyTimes()\n\t\tmID := time.Now().Unix()\n\t\tr.message.EXPECT().Create(gomock.Any(), gomock.Any()).Return(&message.Message{\n\t\t\tID: mID,\n\t\t}, nil).AnyTimes()\n\t\trID := time.Now().UnixNano()\n\t\tr.agentRun.EXPECT().Create(gomock.Any(), gomock.Any()).Return(&agententity.RunRecordMeta{\n\t\t\tID: rID,\n\t\t}, nil).AnyTimes()\n\t\tsID := time.Now().UnixNano()\n\t\tr.conversation.EXPECT().GetByID(gomock.Any(), gomock.Any()).Return(&conventity.Conversation{\n\t\t\tID:        cID,\n\t\t\tSectionID: sID,\n\t\t}, nil).AnyTimes()\n\t\tr.message.EXPECT().GetLatestRunIDs(gomock.Any(), gomock.Any()).Return([]int64{}, nil).AnyTimes()\n\t\tr.message.EXPECT().GetMessagesByRunIDs(gomock.Any(), gomock.Any()).Return(&message0.GetMessagesByRunIDsResponse{}, nil).AnyTimes()\n\t\tr.conversation.EXPECT().ClearConversationHistory(gomock.Any(), gomock.Any()).Return(&conventity.NewConversationCtxResponse{\n\t\t\tID: cID,\n\t\t}, nil).AnyTimes()\n\n\t\tidStr := r.load(\"conversation_manager/conversation_history.json\")\n\t\texecID := r.testRun(idStr, map[string]string{\n\t\t\t\"CONVERSATION_NAME\": \"name\" + strconv.FormatInt(cID, 10),\n\t\t}, withRunProjectID(appID))\n\t\te := r.getProcess(idStr, execID)\n\t\te.assertSuccess()\n\t\toutput := e.output\n\t\tvar outputMap map[string]any\n\t\terr := sonic.Unmarshal([]byte(output), &outputMap)\n\t\tassert.Nil(t, err)\n\t\tassert.Equal(t, true, outputMap[\"isSuccess\"])\n\t\tassert.Equal(t, []any{}, outputMap[\"history_list\"])\n\t})\n}\n"
  },
  {
    "path": "backend/api/internal/httputil/error_resp.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage httputil\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"net/http\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\ntype data struct {\n\tCode int32  `json:\"code\"`\n\tMsg  string `json:\"msg\"`\n}\n\nfunc BadRequest(c *app.RequestContext, errMsg string) {\n\tc.AbortWithStatusJSON(http.StatusBadRequest, data{Code: http.StatusBadRequest, Msg: errMsg})\n}\n\nfunc Unauthorized(c *app.RequestContext, errMsg string) {\n\tc.AbortWithStatusJSON(http.StatusUnauthorized, data{Code: http.StatusUnauthorized, Msg: errMsg})\n}\n\nfunc InternalError(ctx context.Context, c *app.RequestContext, err error) {\n\tvar customErr errorx.StatusError\n\n\tif errors.As(err, &customErr) && customErr.Code() != 0 {\n\t\tlogs.CtxWarnf(ctx, \"[ErrorX] error:  %v %v \\n\", customErr.Code(), err)\n\t\tc.AbortWithStatusJSON(http.StatusOK, data{Code: customErr.Code(), Msg: customErr.Msg()})\n\t\treturn\n\t}\n\n\tlogs.CtxErrorf(ctx, \"[InternalError]  error: %v \\n\", err)\n\tc.AbortWithStatusJSON(http.StatusInternalServerError, data{Code: 500, Msg: \"internal server error\"})\n}\n"
  },
  {
    "path": "backend/api/middleware/ctx_cache.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage middleware\n\nimport (\n\t\"context\"\n\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n)\n\nfunc ContextCacheMW() app.HandlerFunc {\n\treturn func(c context.Context, ctx *app.RequestContext) {\n\t\tc = ctxcache.Init(c)\n\t\tctx.Next(c)\n\t}\n}\n"
  },
  {
    "path": "backend/api/middleware/host.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage middleware\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\nfunc SetHostMW() app.HandlerFunc {\n\treturn func(c context.Context, ctx *app.RequestContext) {\n\t\tctxcache.Store(c, consts.HostKeyInCtx, string(ctx.Host()))\n\t\tctxcache.Store(c, consts.RequestSchemeKeyInCtx, string(ctx.GetRequest().Scheme()))\n\t\tctx.Next(c)\n\t}\n}\n"
  },
  {
    "path": "backend/api/middleware/i18n.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage middleware\n\nimport (\n\t\"context\"\n\t\"strings\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\n\t\"github.com/coze-dev/coze-studio/backend/domain/user/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/i18n\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\nfunc I18nMW() app.HandlerFunc {\n\treturn func(c context.Context, ctx *app.RequestContext) {\n\t\tsession, ok := ctxcache.Get[*entity.Session](c, consts.SessionDataKeyInCtx)\n\t\tif ok {\n\t\t\tc = i18n.SetLocale(c, session.Locale)\n\t\t\tctx.Next(c)\n\t\t\treturn\n\t\t}\n\n\t\tacceptLanguage := string(ctx.Request.Header.Get(\"Accept-Language\"))\n\t\tlocale := \"en-US\"\n\t\tif acceptLanguage != \"\" {\n\t\t\tlanguages := strings.Split(acceptLanguage, \",\")\n\t\t\tif len(languages) > 0 {\n\t\t\t\tlocale = languages[0]\n\t\t\t}\n\t\t}\n\n\t\tc = i18n.SetLocale(c, locale)\n\n\t\tctx.Next(c)\n\t}\n}\n"
  },
  {
    "path": "backend/api/middleware/log.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage middleware\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n\t\"unsafe\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/google/uuid\"\n\n\t\"github.com/coze-dev/coze-studio/backend/pkg/i18n\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\nfunc AccessLogMW() app.HandlerFunc {\n\treturn func(c context.Context, ctx *app.RequestContext) {\n\t\tstart := time.Now()\n\t\tctx.Next(c)\n\n\t\tstatus := ctx.Response.StatusCode()\n\t\tpath := bytesToString(ctx.Request.URI().PathOriginal())\n\t\tlatency := time.Since(start)\n\t\tmethod := bytesToString(ctx.Request.Header.Method())\n\t\tclientIP := ctx.ClientIP()\n\n\t\thandlerPkgPath := strings.Split(ctx.HandlerName(), \"/\")\n\t\thandleName := \"\"\n\t\tif len(handlerPkgPath) > 0 {\n\t\t\thandleName = handlerPkgPath[len(handlerPkgPath)-1]\n\t\t}\n\n\t\trequestType := ctx.GetInt32(RequestAuthTypeStr)\n\t\tbaseLog := fmt.Sprintf(\"| %s | %s | %d | %v | %s | %s | %v | %s | %d | %s\",\n\t\t\tstring(ctx.GetRequest().Scheme()), ctx.Host(), status,\n\t\t\tlatency, clientIP, method, path, handleName, requestType, i18n.GetLocale(c))\n\n\t\tswitch {\n\t\tcase status >= http.StatusInternalServerError:\n\t\t\tlogs.CtxErrorf(c, \"%s\", baseLog)\n\t\tcase status >= http.StatusBadRequest:\n\t\t\tlogs.CtxWarnf(c, \"%s\", baseLog)\n\t\tdefault:\n\t\t\turlQuery := ctx.Request.URI().QueryString()\n\t\t\treqBody := bytesToString(ctx.Request.Body())\n\t\t\trespBody := bytesToString(ctx.Response.Body())\n\t\t\tmaxPrintLen := 3 * 1024\n\t\t\tif len(respBody) > maxPrintLen {\n\t\t\t\trespBody = respBody[:maxPrintLen]\n\t\t\t}\n\t\t\tif len(reqBody) > maxPrintLen {\n\t\t\t\treqBody = reqBody[:maxPrintLen]\n\t\t\t}\n\n\t\t\trequestAuthType := ctx.GetInt32(RequestAuthTypeStr)\n\t\t\tif requestAuthType != int32(RequestAuthTypeStaticFile) && filepath.Ext(path) == \"\" {\n\t\t\t\tlogs.CtxInfof(c, \"%s \", baseLog)\n\t\t\t\tlogs.CtxDebugf(c, \"query : %s \\nreq : %s \\nresp: %s\",\n\t\t\t\t\turlQuery, reqBody, respBody)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc SetLogIDMW() app.HandlerFunc {\n\treturn func(ctx context.Context, c *app.RequestContext) {\n\t\tlogID := uuid.New().String()\n\t\tctx = context.WithValue(ctx, consts.CtxLogIDKey, logID)\n\n\t\tc.Header(\"X-Log-ID\", logID)\n\t\tc.Next(ctx)\n\t}\n}\n\nfunc bytesToString(b []byte) string {\n\treturn *(*string)(unsafe.Pointer(&b)) // nolint\n}\n"
  },
  {
    "path": "backend/api/middleware/openapi_auth.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage middleware\n\nimport (\n\t\"context\"\n\t\"crypto/md5\"\n\t\"encoding/hex\"\n\t\"regexp\"\n\t\"strings\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/internal/httputil\"\n\t\"github.com/coze-dev/coze-studio/backend/application/openauth\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nconst HeaderAuthorizationKey = \"Authorization\"\n\nvar needAuthPath = map[string]bool{\n\t\"/v3/chat\":                            true,\n\t\"/v1/conversations\":                   true,\n\t\"/v1/conversation/create\":             true,\n\t\"/v1/conversation/message/list\":       true,\n\t\"/v1/files/upload\":                    true,\n\t\"/v1/workflow/run\":                    true,\n\t\"/v1/workflow/stream_run\":             true,\n\t\"/v1/workflow/stream_resume\":          true,\n\t\"/v1/workflow/get_run_history\":        true,\n\t\"/v1/bot/get_online_info\":             true,\n\t\"/v1/workflows/chat\":                  true,\n\t\"/v1/workflow/conversation/create\":    true,\n\t\"/v3/chat/cancel\":                     true,\n\t\"/v1/conversation/retrieve\":           true,\n\t\"/v3/chat/retrieve\":                   true,\n\t\"/v3/chat/message/list\":               true,\n\t\"/open_api/knowledge/document/delete\": true,\n\t\"/open_api/knowledge/document/create\": true,\n\t\"/open_api/knowledge/document/update\": true,\n\t\"/open_api/knowledge/document/list\":   true,\n\t\"/v1/datasets\":                        true,\n}\n\nvar needAuthFunc = map[string]bool{\n\t\"^/v1/conversations/[0-9]+/clear$\": true, // v1/conversations/:conversation_id/clear\n\t\"^/v1/bots/[0-9]+$\":                true,\n\t\"^/v1/conversations/[0-9]+$\":       true,\n\n\t\"^/v1/workflows/[0-9]+$\": true,\n\t\"^/v1/apps/[0-9]+$\":      true,\n\n\t\"^/v1/datasets/[0-9]+$\":         true, // v1/datasets/:dataset_id\n\t\"^/v1/datasets/[0-9]+/images$\":  true, // v1/datasets/:dataset_id/images\n\t\"^/v1/datasets/[0-9]+/process$\": true, // v1/datasets/:dataset_id/process\n}\n\nfunc parseBearerAuthToken(authHeader string) string {\n\tif len(authHeader) == 0 {\n\t\treturn \"\"\n\t}\n\tparts := strings.Split(authHeader, \"Bearer\")\n\tif len(parts) != 2 {\n\t\treturn \"\"\n\t}\n\n\ttoken := strings.TrimSpace(parts[1])\n\tif len(token) == 0 {\n\t\treturn \"\"\n\t}\n\n\treturn token\n}\n\nfunc isNeedOpenapiAuth(c *app.RequestContext) bool {\n\tisNeedAuth := false\n\n\turiPath := c.URI().Path()\n\n\tfor rule, res := range needAuthFunc {\n\t\tif regexp.MustCompile(rule).MatchString(string(uriPath)) {\n\t\t\tisNeedAuth = res\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif needAuthPath[string(c.GetRequest().URI().Path())] {\n\t\tisNeedAuth = true\n\t}\n\n\treturn isNeedAuth\n}\n\nfunc OpenapiAuthMW() app.HandlerFunc {\n\treturn func(ctx context.Context, c *app.RequestContext) {\n\t\trequestAuthType := c.GetInt32(RequestAuthTypeStr)\n\t\tif requestAuthType != int32(RequestAuthTypeOpenAPI) {\n\t\t\tc.Next(ctx)\n\t\t\treturn\n\t\t}\n\n\t\t// open api auth\n\t\tif len(c.Request.Header.Get(HeaderAuthorizationKey)) == 0 {\n\t\t\thttputil.InternalError(ctx, c,\n\t\t\t\terrorx.New(errno.ErrUserAuthenticationFailed, errorx.KV(\"reason\", \"missing authorization in header\")))\n\t\t\treturn\n\t\t}\n\n\t\tapiKey := parseBearerAuthToken(c.Request.Header.Get(HeaderAuthorizationKey))\n\t\tif len(apiKey) == 0 {\n\t\t\thttputil.InternalError(ctx, c,\n\t\t\t\terrorx.New(errno.ErrUserAuthenticationFailed, errorx.KV(\"reason\", \"missing api_key in request\")))\n\t\t\treturn\n\t\t}\n\n\t\tmd5Hash := md5.Sum([]byte(apiKey))\n\t\tmd5Key := hex.EncodeToString(md5Hash[:])\n\t\tapiKeyInfo, err := openauth.OpenAuthApplication.CheckPermission(ctx, md5Key)\n\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplication.CheckPermission failed, err=%v\", err)\n\t\t\thttputil.InternalError(ctx, c,\n\t\t\t\terrorx.New(errno.ErrUserAuthenticationFailed, errorx.KV(\"reason\", err.Error())))\n\t\t\treturn\n\t\t}\n\n\t\tif apiKeyInfo == nil {\n\t\t\thttputil.InternalError(ctx, c,\n\t\t\t\terrorx.New(errno.ErrUserAuthenticationFailed, errorx.KV(\"reason\", \"api key invalid\")))\n\t\t\treturn\n\t\t}\n\n\t\tapiKeyInfo.ConnectorID = consts.APIConnectorID\n\t\tlogs.CtxInfof(ctx, \"OpenapiAuthMW: apiKeyInfo=%v\", conv.DebugJsonToStr(apiKeyInfo))\n\t\tctxcache.Store(ctx, consts.OpenapiAuthKeyInCtx, apiKeyInfo)\n\t\terr = openauth.OpenAuthApplication.UpdateLastUsedAt(ctx, apiKeyInfo.ID, apiKeyInfo.UserID)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplication.UpdateLastUsedAt failed, err=%v\", err)\n\t\t}\n\t\tc.Next(ctx)\n\t}\n}\n"
  },
  {
    "path": "backend/api/middleware/request_inspector.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage middleware\n\nimport (\n\t\"context\"\n\t\"strings\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n)\n\nconst RequestAuthTypeStr = \"RequestAuthTypeStr\"\n\ntype RequestAuthType = int32\n\nconst (\n\tRequestAuthTypeWebAPI     RequestAuthType = 0\n\tRequestAuthTypeOpenAPI    RequestAuthType = 1\n\tRequestAuthTypeStaticFile RequestAuthType = 2\n)\n\nfunc RequestInspectorMW() app.HandlerFunc {\n\treturn func(c context.Context, ctx *app.RequestContext) {\n\t\tauthType := RequestAuthTypeWebAPI // default is web api, session auth\n\n\t\tif isNeedOpenapiAuth(ctx) {\n\t\t\tauthType = RequestAuthTypeOpenAPI\n\t\t} else if isStaticFile(ctx) {\n\t\t\tauthType = RequestAuthTypeStaticFile\n\t\t}\n\n\t\tctx.Set(RequestAuthTypeStr, authType)\n\t\tctx.Next(c)\n\t}\n}\n\nvar staticFilePath = map[string]bool{\n\t\"/static\":      true,\n\t\"/\":            true,\n\t\"/sign\":        true,\n\t\"/favicon.png\": true,\n}\n\nfunc isStaticFile(ctx *app.RequestContext) bool {\n\tpath := string(ctx.GetRequest().URI().Path())\n\tif staticFilePath[path] {\n\t\treturn true\n\t}\n\n\tif strings.HasPrefix(path, \"/static/\") ||\n\t\tstrings.HasPrefix(path, \"/explore/\") ||\n\t\tstrings.HasPrefix(path, \"/admin/\") ||\n\t\tstrings.HasPrefix(path, \"/space/\") {\n\t\treturn true\n\t}\n\n\tif path == \"/information/auth/success\" {\n\t\treturn true\n\t}\n\n\treturn false\n}\n"
  },
  {
    "path": "backend/api/middleware/session.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage middleware\n\nimport (\n\t\"context\"\n\t\"os\"\n\t\"strings\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/internal/httputil\"\n\t\"github.com/coze-dev/coze-studio/backend/application/user\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/user/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nvar noNeedSessionCheckPath = map[string]bool{\n\t\"/api/passport/web/email/login/\":       true,\n\t\"/api/passport/web/email/register/v2/\": true,\n}\n\nfunc SessionAuthMW() app.HandlerFunc {\n\treturn func(c context.Context, ctx *app.RequestContext) {\n\t\trequestAuthType := ctx.GetInt32(RequestAuthTypeStr)\n\t\tif requestAuthType != int32(RequestAuthTypeWebAPI) {\n\t\t\tctx.Next(c)\n\t\t\treturn\n\t\t}\n\n\t\tif noNeedSessionCheckPath[string(ctx.GetRequest().URI().Path())] {\n\t\t\tctx.Next(c)\n\t\t\treturn\n\t\t}\n\n\t\ts := ctx.Cookie(entity.SessionKey)\n\t\tif len(s) == 0 {\n\t\t\tlogs.Errorf(\"[SessionAuthMW] session id is nil\")\n\t\t\thttputil.Unauthorized(ctx, \"missing session_key in cookie\")\n\t\t\treturn\n\t\t}\n\n\t\t// sessionID -> sessionData\n\t\tsession, err := user.UserApplicationSVC.ValidateSession(c, string(s))\n\t\tif err != nil {\n\t\t\tlogs.Errorf(\"[SessionAuthMW] validate session failed, err: %v\", err)\n\t\t\thttputil.InternalError(c, ctx, err)\n\t\t\treturn\n\t\t}\n\n\t\tif session != nil {\n\t\t\tctxcache.Store(c, consts.SessionDataKeyInCtx, session)\n\t\t}\n\n\t\tctx.Next(c)\n\t}\n}\n\nfunc AdminAuthMW() app.HandlerFunc {\n\treturn func(c context.Context, ctx *app.RequestContext) {\n\t\tsession, ok := ctxcache.Get[*entity.Session](c, consts.SessionDataKeyInCtx)\n\t\tif !ok {\n\t\t\tlogs.Errorf(\"[AdminAuthMW] session data is nil\")\n\t\t\thttputil.InternalError(c, ctx,\n\t\t\t\terrorx.New(errno.ErrUserAuthenticationFailed, errorx.KV(\"reason\", \"session data is nil\")))\n\t\t\treturn\n\t\t}\n\n\t\tbaseConf, err := config.Base().GetBaseConfig(c)\n\t\tif err != nil {\n\t\t\tlogs.Errorf(\"[AdminAuthMW] get base config failed, err: %v\", err)\n\t\t\thttputil.InternalError(c, ctx, err)\n\t\t\treturn\n\t\t}\n\n\t\tif baseConf.AdminEmails == \"\" {\n\t\t\tbaseConf.AdminEmails = os.Getenv(consts.AllowRegistrationEmail)\n\t\t}\n\n\t\tif baseConf.AdminEmails == \"\" {\n\t\t\tlogs.CtxWarnf(c, \"[AdminAuthMW] admin emails is empty, you can set it by env %s\", consts.AllowRegistrationEmail)\n\t\t}\n\n\t\tadminEmails := strings.Split(baseConf.AdminEmails, \",\")\n\t\tfor _, adminEmail := range adminEmails {\n\t\t\tif strings.EqualFold(adminEmail, session.UserEmail) {\n\t\t\t\tctx.Next(c)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\thttputil.Unauthorized(ctx, \"the account does not have permission to access\")\n\t}\n}\n"
  },
  {
    "path": "backend/api/model/admin/config/config.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage config\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype ModelType int64\n\nconst (\n\tModelType_LLM           ModelType = 0\n\tModelType_TextEmbedding ModelType = 1\n\tModelType_Rerank        ModelType = 2\n)\n\nfunc (p ModelType) String() string {\n\tswitch p {\n\tcase ModelType_LLM:\n\t\treturn \"LLM\"\n\tcase ModelType_TextEmbedding:\n\t\treturn \"TextEmbedding\"\n\tcase ModelType_Rerank:\n\t\treturn \"Rerank\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ModelTypeFromString(s string) (ModelType, error) {\n\tswitch s {\n\tcase \"LLM\":\n\t\treturn ModelType_LLM, nil\n\tcase \"TextEmbedding\":\n\t\treturn ModelType_TextEmbedding, nil\n\tcase \"Rerank\":\n\t\treturn ModelType_Rerank, nil\n\t}\n\treturn ModelType(0), fmt.Errorf(\"not a valid ModelType string\")\n}\n\nfunc ModelTypePtr(v ModelType) *ModelType { return &v }\nfunc (p *ModelType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ModelType(result.Int64)\n\treturn\n}\n\nfunc (p *ModelType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ThinkingType int64\n\nconst (\n\tThinkingType_Default ThinkingType = 0\n\tThinkingType_Enable  ThinkingType = 1\n\tThinkingType_Disable ThinkingType = 2\n\tThinkingType_Auto    ThinkingType = 3\n)\n\nfunc (p ThinkingType) String() string {\n\tswitch p {\n\tcase ThinkingType_Default:\n\t\treturn \"Default\"\n\tcase ThinkingType_Enable:\n\t\treturn \"Enable\"\n\tcase ThinkingType_Disable:\n\t\treturn \"Disable\"\n\tcase ThinkingType_Auto:\n\t\treturn \"Auto\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ThinkingTypeFromString(s string) (ThinkingType, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn ThinkingType_Default, nil\n\tcase \"Enable\":\n\t\treturn ThinkingType_Enable, nil\n\tcase \"Disable\":\n\t\treturn ThinkingType_Disable, nil\n\tcase \"Auto\":\n\t\treturn ThinkingType_Auto, nil\n\t}\n\treturn ThinkingType(0), fmt.Errorf(\"not a valid ThinkingType string\")\n}\n\nfunc ThinkingTypePtr(v ThinkingType) *ThinkingType { return &v }\nfunc (p *ThinkingType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ThinkingType(result.Int64)\n\treturn\n}\n\nfunc (p *ThinkingType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ModelStatus int64\n\nconst (\n\t// Default state when not configured, equivalent to StatusInUse\n\tModelStatus_StatusDefault ModelStatus = 0\n\t// In the application, it can be used to create new\n\tModelStatus_StatusInUse ModelStatus = 1\n\t// It is offline, unusable, and cannot be created.\n\tModelStatus_StatusDeleted ModelStatus = 2\n)\n\nfunc (p ModelStatus) String() string {\n\tswitch p {\n\tcase ModelStatus_StatusDefault:\n\t\treturn \"StatusDefault\"\n\tcase ModelStatus_StatusInUse:\n\t\treturn \"StatusInUse\"\n\tcase ModelStatus_StatusDeleted:\n\t\treturn \"StatusDeleted\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ModelStatusFromString(s string) (ModelStatus, error) {\n\tswitch s {\n\tcase \"StatusDefault\":\n\t\treturn ModelStatus_StatusDefault, nil\n\tcase \"StatusInUse\":\n\t\treturn ModelStatus_StatusInUse, nil\n\tcase \"StatusDeleted\":\n\t\treturn ModelStatus_StatusDeleted, nil\n\t}\n\treturn ModelStatus(0), fmt.Errorf(\"not a valid ModelStatus string\")\n}\n\nfunc ModelStatusPtr(v ModelStatus) *ModelStatus { return &v }\nfunc (p *ModelStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ModelStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ModelStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype CodeRunnerType int64\n\nconst (\n\tCodeRunnerType_Local   CodeRunnerType = 0\n\tCodeRunnerType_Sandbox CodeRunnerType = 1\n)\n\nfunc (p CodeRunnerType) String() string {\n\tswitch p {\n\tcase CodeRunnerType_Local:\n\t\treturn \"Local\"\n\tcase CodeRunnerType_Sandbox:\n\t\treturn \"Sandbox\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc CodeRunnerTypeFromString(s string) (CodeRunnerType, error) {\n\tswitch s {\n\tcase \"Local\":\n\t\treturn CodeRunnerType_Local, nil\n\tcase \"Sandbox\":\n\t\treturn CodeRunnerType_Sandbox, nil\n\t}\n\treturn CodeRunnerType(0), fmt.Errorf(\"not a valid CodeRunnerType string\")\n}\n\nfunc CodeRunnerTypePtr(v CodeRunnerType) *CodeRunnerType { return &v }\nfunc (p *CodeRunnerType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = CodeRunnerType(result.Int64)\n\treturn\n}\n\nfunc (p *CodeRunnerType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype EmbeddingType int64\n\nconst (\n\tEmbeddingType_Ark    EmbeddingType = 0\n\tEmbeddingType_OpenAI EmbeddingType = 1\n\tEmbeddingType_Ollama EmbeddingType = 2\n\tEmbeddingType_Gemini EmbeddingType = 3\n\tEmbeddingType_HTTP   EmbeddingType = 4\n)\n\nfunc (p EmbeddingType) String() string {\n\tswitch p {\n\tcase EmbeddingType_Ark:\n\t\treturn \"Ark\"\n\tcase EmbeddingType_OpenAI:\n\t\treturn \"OpenAI\"\n\tcase EmbeddingType_Ollama:\n\t\treturn \"Ollama\"\n\tcase EmbeddingType_Gemini:\n\t\treturn \"Gemini\"\n\tcase EmbeddingType_HTTP:\n\t\treturn \"HTTP\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc EmbeddingTypeFromString(s string) (EmbeddingType, error) {\n\tswitch s {\n\tcase \"Ark\":\n\t\treturn EmbeddingType_Ark, nil\n\tcase \"OpenAI\":\n\t\treturn EmbeddingType_OpenAI, nil\n\tcase \"Ollama\":\n\t\treturn EmbeddingType_Ollama, nil\n\tcase \"Gemini\":\n\t\treturn EmbeddingType_Gemini, nil\n\tcase \"HTTP\":\n\t\treturn EmbeddingType_HTTP, nil\n\t}\n\treturn EmbeddingType(0), fmt.Errorf(\"not a valid EmbeddingType string\")\n}\n\nfunc EmbeddingTypePtr(v EmbeddingType) *EmbeddingType { return &v }\nfunc (p *EmbeddingType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = EmbeddingType(result.Int64)\n\treturn\n}\n\nfunc (p *EmbeddingType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype RerankType int64\n\nconst (\n\tRerankType_VikingDB RerankType = 0\n\tRerankType_RRF      RerankType = 1\n)\n\nfunc (p RerankType) String() string {\n\tswitch p {\n\tcase RerankType_VikingDB:\n\t\treturn \"VikingDB\"\n\tcase RerankType_RRF:\n\t\treturn \"RRF\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc RerankTypeFromString(s string) (RerankType, error) {\n\tswitch s {\n\tcase \"VikingDB\":\n\t\treturn RerankType_VikingDB, nil\n\tcase \"RRF\":\n\t\treturn RerankType_RRF, nil\n\t}\n\treturn RerankType(0), fmt.Errorf(\"not a valid RerankType string\")\n}\n\nfunc RerankTypePtr(v RerankType) *RerankType { return &v }\nfunc (p *RerankType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = RerankType(result.Int64)\n\treturn\n}\n\nfunc (p *RerankType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype OCRType int64\n\nconst (\n\tOCRType_Volcengine OCRType = 0\n\tOCRType_Paddleocr  OCRType = 1\n)\n\nfunc (p OCRType) String() string {\n\tswitch p {\n\tcase OCRType_Volcengine:\n\t\treturn \"Volcengine\"\n\tcase OCRType_Paddleocr:\n\t\treturn \"Paddleocr\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OCRTypeFromString(s string) (OCRType, error) {\n\tswitch s {\n\tcase \"Volcengine\":\n\t\treturn OCRType_Volcengine, nil\n\tcase \"Paddleocr\":\n\t\treturn OCRType_Paddleocr, nil\n\t}\n\treturn OCRType(0), fmt.Errorf(\"not a valid OCRType string\")\n}\n\nfunc OCRTypePtr(v OCRType) *OCRType { return &v }\nfunc (p *OCRType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OCRType(result.Int64)\n\treturn\n}\n\nfunc (p *OCRType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ParserType int64\n\nconst (\n\tParserType_builtin   ParserType = 0\n\tParserType_Paddleocr ParserType = 1\n)\n\nfunc (p ParserType) String() string {\n\tswitch p {\n\tcase ParserType_builtin:\n\t\treturn \"builtin\"\n\tcase ParserType_Paddleocr:\n\t\treturn \"Paddleocr\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ParserTypeFromString(s string) (ParserType, error) {\n\tswitch s {\n\tcase \"builtin\":\n\t\treturn ParserType_builtin, nil\n\tcase \"Paddleocr\":\n\t\treturn ParserType_Paddleocr, nil\n\t}\n\treturn ParserType(0), fmt.Errorf(\"not a valid ParserType string\")\n}\n\nfunc ParserTypePtr(v ParserType) *ParserType { return &v }\nfunc (p *ParserType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ParserType(result.Int64)\n\treturn\n}\n\nfunc (p *ParserType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype GetModelListReq struct {\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetModelListReq() *GetModelListReq {\n\treturn &GetModelListReq{}\n}\n\nfunc (p *GetModelListReq) InitDefault() {\n}\n\nvar GetModelListReq_Base_DEFAULT *base.Base\n\nfunc (p *GetModelListReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetModelListReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetModelListReq = map[int16]string{\n\t255: \"Base\",\n}\n\nfunc (p *GetModelListReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetModelListReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetModelListReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetModelListReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetModelListReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetModelListReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetModelListReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetModelListReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetModelListReq(%+v)\", *p)\n\n}\n\ntype GetModelListResp struct {\n\tProviderModelList []*ProviderModelList `thrift:\"provider_model_list,1\" form:\"provider_model_list\" json:\"provider_model_list\" query:\"provider_model_list\"`\n\tCode              int64                `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg               string               `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp          *base.BaseResp       `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetModelListResp() *GetModelListResp {\n\treturn &GetModelListResp{}\n}\n\nfunc (p *GetModelListResp) InitDefault() {\n}\n\nfunc (p *GetModelListResp) GetProviderModelList() (v []*ProviderModelList) {\n\treturn p.ProviderModelList\n}\n\nfunc (p *GetModelListResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetModelListResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetModelListResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetModelListResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetModelListResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetModelListResp = map[int16]string{\n\t1:   \"provider_model_list\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetModelListResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetModelListResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetModelListResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetModelListResp[fieldId]))\n}\n\nfunc (p *GetModelListResp) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProviderModelList, 0, size)\n\tvalues := make([]ProviderModelList, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ProviderModelList = _field\n\treturn nil\n}\nfunc (p *GetModelListResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetModelListResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetModelListResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetModelListResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetModelListResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetModelListResp) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"provider_model_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ProviderModelList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ProviderModelList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetModelListResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetModelListResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetModelListResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetModelListResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetModelListResp(%+v)\", *p)\n\n}\n\ntype ProviderModelList struct {\n\tProvider  *ModelProvider `thrift:\"provider,1\" form:\"provider\" json:\"provider\" query:\"provider\"`\n\tModelList []*Model       `thrift:\"model_list,2\" form:\"model_list\" json:\"model_list\" query:\"model_list\"`\n}\n\nfunc NewProviderModelList() *ProviderModelList {\n\treturn &ProviderModelList{}\n}\n\nfunc (p *ProviderModelList) InitDefault() {\n}\n\nvar ProviderModelList_Provider_DEFAULT *ModelProvider\n\nfunc (p *ProviderModelList) GetProvider() (v *ModelProvider) {\n\tif !p.IsSetProvider() {\n\t\treturn ProviderModelList_Provider_DEFAULT\n\t}\n\treturn p.Provider\n}\n\nfunc (p *ProviderModelList) GetModelList() (v []*Model) {\n\treturn p.ModelList\n}\n\nvar fieldIDToName_ProviderModelList = map[int16]string{\n\t1: \"provider\",\n\t2: \"model_list\",\n}\n\nfunc (p *ProviderModelList) IsSetProvider() bool {\n\treturn p.Provider != nil\n}\n\nfunc (p *ProviderModelList) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProviderModelList[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProviderModelList) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewModelProvider()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Provider = _field\n\treturn nil\n}\nfunc (p *ProviderModelList) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Model, 0, size)\n\tvalues := make([]Model, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ModelList = _field\n\treturn nil\n}\n\nfunc (p *ProviderModelList) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProviderModelList\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProviderModelList) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"provider\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Provider.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProviderModelList) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_list\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ModelList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ModelList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ProviderModelList) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProviderModelList(%+v)\", *p)\n\n}\n\ntype I18nText struct {\n\tZhCn string `thrift:\"zh_cn,1\" form:\"zh_cn\" json:\"zh_cn\" query:\"zh_cn\"`\n\tEnUs string `thrift:\"en_us,2\" form:\"en_us\" json:\"en_us\" query:\"en_us\"`\n}\n\nfunc NewI18nText() *I18nText {\n\treturn &I18nText{}\n}\n\nfunc (p *I18nText) InitDefault() {\n}\n\nfunc (p *I18nText) GetZhCn() (v string) {\n\treturn p.ZhCn\n}\n\nfunc (p *I18nText) GetEnUs() (v string) {\n\treturn p.EnUs\n}\n\nvar fieldIDToName_I18nText = map[int16]string{\n\t1: \"zh_cn\",\n\t2: \"en_us\",\n}\n\nfunc (p *I18nText) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_I18nText[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *I18nText) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ZhCn = _field\n\treturn nil\n}\nfunc (p *I18nText) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EnUs = _field\n\treturn nil\n}\n\nfunc (p *I18nText) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"I18nText\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *I18nText) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"zh_cn\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ZhCn); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *I18nText) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"en_us\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.EnUs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *I18nText) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"I18nText(%+v)\", *p)\n\n}\n\ntype ModelProvider struct {\n\tName        *I18nText                `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tIconURI     string                   `thrift:\"icon_uri,2\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tIconURL     string                   `thrift:\"icon_url,3\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tDescription *I18nText                `thrift:\"description,4\" form:\"description\" json:\"description\" query:\"description\"`\n\tModelClass  developer_api.ModelClass `thrift:\"model_class,5\" form:\"model_class\" json:\"model_class\" query:\"model_class\"`\n}\n\nfunc NewModelProvider() *ModelProvider {\n\treturn &ModelProvider{}\n}\n\nfunc (p *ModelProvider) InitDefault() {\n}\n\nvar ModelProvider_Name_DEFAULT *I18nText\n\nfunc (p *ModelProvider) GetName() (v *I18nText) {\n\tif !p.IsSetName() {\n\t\treturn ModelProvider_Name_DEFAULT\n\t}\n\treturn p.Name\n}\n\nfunc (p *ModelProvider) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *ModelProvider) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nvar ModelProvider_Description_DEFAULT *I18nText\n\nfunc (p *ModelProvider) GetDescription() (v *I18nText) {\n\tif !p.IsSetDescription() {\n\t\treturn ModelProvider_Description_DEFAULT\n\t}\n\treturn p.Description\n}\n\nfunc (p *ModelProvider) GetModelClass() (v developer_api.ModelClass) {\n\treturn p.ModelClass\n}\n\nvar fieldIDToName_ModelProvider = map[int16]string{\n\t1: \"name\",\n\t2: \"icon_uri\",\n\t3: \"icon_url\",\n\t4: \"description\",\n\t5: \"model_class\",\n}\n\nfunc (p *ModelProvider) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *ModelProvider) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *ModelProvider) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelProvider[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ModelProvider) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewI18nText()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ModelProvider) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *ModelProvider) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *ModelProvider) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewI18nText()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *ModelProvider) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field developer_api.ModelClass\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = developer_api.ModelClass(v)\n\t}\n\tp.ModelClass = _field\n\treturn nil\n}\n\nfunc (p *ModelProvider) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelProvider\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelProvider) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Name.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelProvider) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ModelProvider) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ModelProvider) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Description.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ModelProvider) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_class\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ModelClass)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *ModelProvider) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelProvider(%+v)\", *p)\n\n}\n\ntype DisplayInfo struct {\n\tName         string    `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tDescription  *I18nText `thrift:\"description,3\" form:\"description\" json:\"description\" query:\"description\"`\n\tOutputTokens int64     `thrift:\"output_tokens,4\" form:\"output_tokens\" json:\"output_tokens\" query:\"output_tokens\"`\n\tMaxTokens    int64     `thrift:\"max_tokens,5\" form:\"max_tokens\" json:\"max_tokens\" query:\"max_tokens\"`\n}\n\nfunc NewDisplayInfo() *DisplayInfo {\n\treturn &DisplayInfo{}\n}\n\nfunc (p *DisplayInfo) InitDefault() {\n}\n\nfunc (p *DisplayInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nvar DisplayInfo_Description_DEFAULT *I18nText\n\nfunc (p *DisplayInfo) GetDescription() (v *I18nText) {\n\tif !p.IsSetDescription() {\n\t\treturn DisplayInfo_Description_DEFAULT\n\t}\n\treturn p.Description\n}\n\nfunc (p *DisplayInfo) GetOutputTokens() (v int64) {\n\treturn p.OutputTokens\n}\n\nfunc (p *DisplayInfo) GetMaxTokens() (v int64) {\n\treturn p.MaxTokens\n}\n\nvar fieldIDToName_DisplayInfo = map[int16]string{\n\t1: \"name\",\n\t3: \"description\",\n\t4: \"output_tokens\",\n\t5: \"max_tokens\",\n}\n\nfunc (p *DisplayInfo) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *DisplayInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DisplayInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DisplayInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DisplayInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewI18nText()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *DisplayInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OutputTokens = _field\n\treturn nil\n}\nfunc (p *DisplayInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MaxTokens = _field\n\treturn nil\n}\n\nfunc (p *DisplayInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DisplayInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DisplayInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DisplayInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Description.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DisplayInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"output_tokens\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.OutputTokens); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DisplayInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"max_tokens\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.MaxTokens); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *DisplayInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DisplayInfo(%+v)\", *p)\n\n}\n\ntype Model struct {\n\tID              int64                           `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tProvider        *ModelProvider                  `thrift:\"provider,2\" form:\"provider\" json:\"provider\" query:\"provider\"`\n\tDisplayInfo     *DisplayInfo                    `thrift:\"display_info,3\" form:\"display_info\" json:\"display_info\" query:\"display_info\"`\n\tCapability      *developer_api.ModelAbility     `thrift:\"capability,4\" form:\"capability\" json:\"capability\" query:\"capability\"`\n\tConnection      *Connection                     `thrift:\"connection,5\" form:\"connection\" json:\"connection\" query:\"connection\"`\n\tType            ModelType                       `thrift:\"type,6\" form:\"type\" json:\"type\" query:\"type\"`\n\tParameters      []*developer_api.ModelParameter `thrift:\"parameters,7\" form:\"parameters\" json:\"parameters\" query:\"parameters\"`\n\tStatus          ModelStatus                     `thrift:\"status,8\" form:\"status\" json:\"status\" query:\"status\"`\n\tEnableBase64URL bool                            `thrift:\"enable_base64_url,9\" form:\"enable_base64_url\" json:\"enable_base64_url\" query:\"enable_base64_url\"`\n\tDeleteAtMs      int64                           `thrift:\"delete_at_ms,10\" form:\"delete_at_ms\" json:\"delete_at_ms\" query:\"delete_at_ms\"`\n}\n\nfunc NewModel() *Model {\n\treturn &Model{}\n}\n\nfunc (p *Model) InitDefault() {\n}\n\nfunc (p *Model) GetID() (v int64) {\n\treturn p.ID\n}\n\nvar Model_Provider_DEFAULT *ModelProvider\n\nfunc (p *Model) GetProvider() (v *ModelProvider) {\n\tif !p.IsSetProvider() {\n\t\treturn Model_Provider_DEFAULT\n\t}\n\treturn p.Provider\n}\n\nvar Model_DisplayInfo_DEFAULT *DisplayInfo\n\nfunc (p *Model) GetDisplayInfo() (v *DisplayInfo) {\n\tif !p.IsSetDisplayInfo() {\n\t\treturn Model_DisplayInfo_DEFAULT\n\t}\n\treturn p.DisplayInfo\n}\n\nvar Model_Capability_DEFAULT *developer_api.ModelAbility\n\nfunc (p *Model) GetCapability() (v *developer_api.ModelAbility) {\n\tif !p.IsSetCapability() {\n\t\treturn Model_Capability_DEFAULT\n\t}\n\treturn p.Capability\n}\n\nvar Model_Connection_DEFAULT *Connection\n\nfunc (p *Model) GetConnection() (v *Connection) {\n\tif !p.IsSetConnection() {\n\t\treturn Model_Connection_DEFAULT\n\t}\n\treturn p.Connection\n}\n\nfunc (p *Model) GetType() (v ModelType) {\n\treturn p.Type\n}\n\nfunc (p *Model) GetParameters() (v []*developer_api.ModelParameter) {\n\treturn p.Parameters\n}\n\nfunc (p *Model) GetStatus() (v ModelStatus) {\n\treturn p.Status\n}\n\nfunc (p *Model) GetEnableBase64URL() (v bool) {\n\treturn p.EnableBase64URL\n}\n\nfunc (p *Model) GetDeleteAtMs() (v int64) {\n\treturn p.DeleteAtMs\n}\n\nvar fieldIDToName_Model = map[int16]string{\n\t1:  \"id\",\n\t2:  \"provider\",\n\t3:  \"display_info\",\n\t4:  \"capability\",\n\t5:  \"connection\",\n\t6:  \"type\",\n\t7:  \"parameters\",\n\t8:  \"status\",\n\t9:  \"enable_base64_url\",\n\t10: \"delete_at_ms\",\n}\n\nfunc (p *Model) IsSetProvider() bool {\n\treturn p.Provider != nil\n}\n\nfunc (p *Model) IsSetDisplayInfo() bool {\n\treturn p.DisplayInfo != nil\n}\n\nfunc (p *Model) IsSetCapability() bool {\n\treturn p.Capability != nil\n}\n\nfunc (p *Model) IsSetConnection() bool {\n\treturn p.Connection != nil\n}\n\nfunc (p *Model) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Model[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Model) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *Model) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewModelProvider()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Provider = _field\n\treturn nil\n}\nfunc (p *Model) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewDisplayInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DisplayInfo = _field\n\treturn nil\n}\nfunc (p *Model) ReadField4(iprot thrift.TProtocol) error {\n\t_field := developer_api.NewModelAbility()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Capability = _field\n\treturn nil\n}\nfunc (p *Model) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewConnection()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Connection = _field\n\treturn nil\n}\nfunc (p *Model) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field ModelType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ModelType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *Model) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*developer_api.ModelParameter, 0, size)\n\tvalues := make([]developer_api.ModelParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\nfunc (p *Model) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field ModelStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ModelStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *Model) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EnableBase64URL = _field\n\treturn nil\n}\nfunc (p *Model) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DeleteAtMs = _field\n\treturn nil\n}\n\nfunc (p *Model) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Model\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Model) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Model) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"provider\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Provider.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Model) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"display_info\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.DisplayInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Model) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"capability\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Capability.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Model) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connection\", thrift.STRUCT, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Connection.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Model) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Model) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"parameters\", thrift.LIST, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Parameters)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Parameters {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Model) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *Model) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"enable_base64_url\", thrift.BOOL, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.EnableBase64URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *Model) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"delete_at_ms\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DeleteAtMs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\n\nfunc (p *Model) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Model(%+v)\", *p)\n\n}\n\ntype Connection struct {\n\tBaseConnInfo *BaseConnectionInfo `thrift:\"base_conn_info,1\" form:\"base_conn_info\" json:\"base_conn_info\" query:\"base_conn_info\"`\n\tArk          *ArkConnInfo        `thrift:\"ark,2,optional\" form:\"ark\" json:\"ark,omitempty\" query:\"ark\"`\n\tOpenai       *OpenAIConnInfo     `thrift:\"openai,3,optional\" form:\"openai\" json:\"openai,omitempty\" query:\"openai\"`\n\tDeepseek     *DeepseekConnInfo   `thrift:\"deepseek,4,optional\" form:\"deepseek\" json:\"deepseek,omitempty\" query:\"deepseek\"`\n\tGemini       *GeminiConnInfo     `thrift:\"gemini,5,optional\" form:\"gemini\" json:\"gemini,omitempty\" query:\"gemini\"`\n\tQwen         *QwenConnInfo       `thrift:\"qwen,6,optional\" form:\"qwen\" json:\"qwen,omitempty\" query:\"qwen\"`\n\tOllama       *OllamaConnInfo     `thrift:\"ollama,7,optional\" form:\"ollama\" json:\"ollama,omitempty\" query:\"ollama\"`\n\tClaude       *ClaudeConnInfo     `thrift:\"claude,8,optional\" form:\"claude\" json:\"claude,omitempty\" query:\"claude\"`\n}\n\nfunc NewConnection() *Connection {\n\treturn &Connection{}\n}\n\nfunc (p *Connection) InitDefault() {\n}\n\nvar Connection_BaseConnInfo_DEFAULT *BaseConnectionInfo\n\nfunc (p *Connection) GetBaseConnInfo() (v *BaseConnectionInfo) {\n\tif !p.IsSetBaseConnInfo() {\n\t\treturn Connection_BaseConnInfo_DEFAULT\n\t}\n\treturn p.BaseConnInfo\n}\n\nvar Connection_Ark_DEFAULT *ArkConnInfo\n\nfunc (p *Connection) GetArk() (v *ArkConnInfo) {\n\tif !p.IsSetArk() {\n\t\treturn Connection_Ark_DEFAULT\n\t}\n\treturn p.Ark\n}\n\nvar Connection_Openai_DEFAULT *OpenAIConnInfo\n\nfunc (p *Connection) GetOpenai() (v *OpenAIConnInfo) {\n\tif !p.IsSetOpenai() {\n\t\treturn Connection_Openai_DEFAULT\n\t}\n\treturn p.Openai\n}\n\nvar Connection_Deepseek_DEFAULT *DeepseekConnInfo\n\nfunc (p *Connection) GetDeepseek() (v *DeepseekConnInfo) {\n\tif !p.IsSetDeepseek() {\n\t\treturn Connection_Deepseek_DEFAULT\n\t}\n\treturn p.Deepseek\n}\n\nvar Connection_Gemini_DEFAULT *GeminiConnInfo\n\nfunc (p *Connection) GetGemini() (v *GeminiConnInfo) {\n\tif !p.IsSetGemini() {\n\t\treturn Connection_Gemini_DEFAULT\n\t}\n\treturn p.Gemini\n}\n\nvar Connection_Qwen_DEFAULT *QwenConnInfo\n\nfunc (p *Connection) GetQwen() (v *QwenConnInfo) {\n\tif !p.IsSetQwen() {\n\t\treturn Connection_Qwen_DEFAULT\n\t}\n\treturn p.Qwen\n}\n\nvar Connection_Ollama_DEFAULT *OllamaConnInfo\n\nfunc (p *Connection) GetOllama() (v *OllamaConnInfo) {\n\tif !p.IsSetOllama() {\n\t\treturn Connection_Ollama_DEFAULT\n\t}\n\treturn p.Ollama\n}\n\nvar Connection_Claude_DEFAULT *ClaudeConnInfo\n\nfunc (p *Connection) GetClaude() (v *ClaudeConnInfo) {\n\tif !p.IsSetClaude() {\n\t\treturn Connection_Claude_DEFAULT\n\t}\n\treturn p.Claude\n}\n\nvar fieldIDToName_Connection = map[int16]string{\n\t1: \"base_conn_info\",\n\t2: \"ark\",\n\t3: \"openai\",\n\t4: \"deepseek\",\n\t5: \"gemini\",\n\t6: \"qwen\",\n\t7: \"ollama\",\n\t8: \"claude\",\n}\n\nfunc (p *Connection) IsSetBaseConnInfo() bool {\n\treturn p.BaseConnInfo != nil\n}\n\nfunc (p *Connection) IsSetArk() bool {\n\treturn p.Ark != nil\n}\n\nfunc (p *Connection) IsSetOpenai() bool {\n\treturn p.Openai != nil\n}\n\nfunc (p *Connection) IsSetDeepseek() bool {\n\treturn p.Deepseek != nil\n}\n\nfunc (p *Connection) IsSetGemini() bool {\n\treturn p.Gemini != nil\n}\n\nfunc (p *Connection) IsSetQwen() bool {\n\treturn p.Qwen != nil\n}\n\nfunc (p *Connection) IsSetOllama() bool {\n\treturn p.Ollama != nil\n}\n\nfunc (p *Connection) IsSetClaude() bool {\n\treturn p.Claude != nil\n}\n\nfunc (p *Connection) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Connection[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Connection) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBaseConnectionInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseConnInfo = _field\n\treturn nil\n}\nfunc (p *Connection) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewArkConnInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Ark = _field\n\treturn nil\n}\nfunc (p *Connection) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewOpenAIConnInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Openai = _field\n\treturn nil\n}\nfunc (p *Connection) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewDeepseekConnInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Deepseek = _field\n\treturn nil\n}\nfunc (p *Connection) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewGeminiConnInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Gemini = _field\n\treturn nil\n}\nfunc (p *Connection) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewQwenConnInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Qwen = _field\n\treturn nil\n}\nfunc (p *Connection) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewOllamaConnInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Ollama = _field\n\treturn nil\n}\nfunc (p *Connection) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewClaudeConnInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Claude = _field\n\treturn nil\n}\n\nfunc (p *Connection) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Connection\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Connection) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"base_conn_info\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseConnInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Connection) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetArk() {\n\t\tif err = oprot.WriteFieldBegin(\"ark\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Ark.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Connection) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOpenai() {\n\t\tif err = oprot.WriteFieldBegin(\"openai\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Openai.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Connection) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDeepseek() {\n\t\tif err = oprot.WriteFieldBegin(\"deepseek\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Deepseek.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Connection) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetGemini() {\n\t\tif err = oprot.WriteFieldBegin(\"gemini\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Gemini.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Connection) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetQwen() {\n\t\tif err = oprot.WriteFieldBegin(\"qwen\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Qwen.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Connection) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOllama() {\n\t\tif err = oprot.WriteFieldBegin(\"ollama\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Ollama.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Connection) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetClaude() {\n\t\tif err = oprot.WriteFieldBegin(\"claude\", thrift.STRUCT, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Claude.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *Connection) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Connection(%+v)\", *p)\n\n}\n\ntype BaseConnectionInfo struct {\n\tBaseURL      string       `thrift:\"base_url,1\" form:\"base_url\" json:\"base_url\" query:\"base_url\"`\n\tAPIKey       string       `thrift:\"api_key,2\" form:\"api_key\" json:\"api_key\" query:\"api_key\"`\n\tModel        string       `thrift:\"model,3\" form:\"model\" json:\"model\" query:\"model\"`\n\tThinkingType ThinkingType `thrift:\"thinking_type,4\" form:\"thinking_type\" json:\"thinking_type\" query:\"thinking_type\"`\n}\n\nfunc NewBaseConnectionInfo() *BaseConnectionInfo {\n\treturn &BaseConnectionInfo{}\n}\n\nfunc (p *BaseConnectionInfo) InitDefault() {\n}\n\nfunc (p *BaseConnectionInfo) GetBaseURL() (v string) {\n\treturn p.BaseURL\n}\n\nfunc (p *BaseConnectionInfo) GetAPIKey() (v string) {\n\treturn p.APIKey\n}\n\nfunc (p *BaseConnectionInfo) GetModel() (v string) {\n\treturn p.Model\n}\n\nfunc (p *BaseConnectionInfo) GetThinkingType() (v ThinkingType) {\n\treturn p.ThinkingType\n}\n\nvar fieldIDToName_BaseConnectionInfo = map[int16]string{\n\t1: \"base_url\",\n\t2: \"api_key\",\n\t3: \"model\",\n\t4: \"thinking_type\",\n}\n\nfunc (p *BaseConnectionInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BaseConnectionInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BaseConnectionInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BaseURL = _field\n\treturn nil\n}\nfunc (p *BaseConnectionInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIKey = _field\n\treturn nil\n}\nfunc (p *BaseConnectionInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Model = _field\n\treturn nil\n}\nfunc (p *BaseConnectionInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field ThinkingType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ThinkingType(v)\n\t}\n\tp.ThinkingType = _field\n\treturn nil\n}\n\nfunc (p *BaseConnectionInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BaseConnectionInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BaseConnectionInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"base_url\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BaseURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BaseConnectionInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_key\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIKey); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BaseConnectionInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Model); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BaseConnectionInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"thinking_type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ThinkingType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *BaseConnectionInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BaseConnectionInfo(%+v)\", *p)\n\n}\n\ntype EmbeddingInfo struct {\n\tDims int32 `thrift:\"dims,1\" form:\"dims\" json:\"dims\" query:\"dims\"`\n}\n\nfunc NewEmbeddingInfo() *EmbeddingInfo {\n\treturn &EmbeddingInfo{}\n}\n\nfunc (p *EmbeddingInfo) InitDefault() {\n}\n\nfunc (p *EmbeddingInfo) GetDims() (v int32) {\n\treturn p.Dims\n}\n\nvar fieldIDToName_EmbeddingInfo = map[int16]string{\n\t1: \"dims\",\n}\n\nfunc (p *EmbeddingInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_EmbeddingInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *EmbeddingInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Dims = _field\n\treturn nil\n}\n\nfunc (p *EmbeddingInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"EmbeddingInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *EmbeddingInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dims\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Dims); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *EmbeddingInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"EmbeddingInfo(%+v)\", *p)\n\n}\n\ntype ArkConnInfo struct {\n\tRegion  string `thrift:\"region,1\" form:\"region\" json:\"region\" query:\"region\"`\n\tAPIType string `thrift:\"api_type,3\" form:\"api_type\" json:\"api_type\" query:\"api_type\"`\n}\n\nfunc NewArkConnInfo() *ArkConnInfo {\n\treturn &ArkConnInfo{}\n}\n\nfunc (p *ArkConnInfo) InitDefault() {\n}\n\nfunc (p *ArkConnInfo) GetRegion() (v string) {\n\treturn p.Region\n}\n\nfunc (p *ArkConnInfo) GetAPIType() (v string) {\n\treturn p.APIType\n}\n\nvar fieldIDToName_ArkConnInfo = map[int16]string{\n\t1: \"region\",\n\t3: \"api_type\",\n}\n\nfunc (p *ArkConnInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ArkConnInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ArkConnInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Region = _field\n\treturn nil\n}\nfunc (p *ArkConnInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIType = _field\n\treturn nil\n}\n\nfunc (p *ArkConnInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ArkConnInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ArkConnInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"region\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Region); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ArkConnInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_type\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ArkConnInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ArkConnInfo(%+v)\", *p)\n\n}\n\ntype OpenAIConnInfo struct {\n\tByAzure    bool   `thrift:\"by_azure,6\" form:\"by_azure\" json:\"by_azure\" query:\"by_azure\"`\n\tAPIVersion string `thrift:\"api_version,7\" form:\"api_version\" json:\"api_version\" query:\"api_version\"`\n}\n\nfunc NewOpenAIConnInfo() *OpenAIConnInfo {\n\treturn &OpenAIConnInfo{}\n}\n\nfunc (p *OpenAIConnInfo) InitDefault() {\n}\n\nfunc (p *OpenAIConnInfo) GetByAzure() (v bool) {\n\treturn p.ByAzure\n}\n\nfunc (p *OpenAIConnInfo) GetAPIVersion() (v string) {\n\treturn p.APIVersion\n}\n\nvar fieldIDToName_OpenAIConnInfo = map[int16]string{\n\t6: \"by_azure\",\n\t7: \"api_version\",\n}\n\nfunc (p *OpenAIConnInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAIConnInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAIConnInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ByAzure = _field\n\treturn nil\n}\nfunc (p *OpenAIConnInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIVersion = _field\n\treturn nil\n}\n\nfunc (p *OpenAIConnInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAIConnInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAIConnInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"by_azure\", thrift.BOOL, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.ByAzure); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *OpenAIConnInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_version\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *OpenAIConnInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAIConnInfo(%+v)\", *p)\n\n}\n\ntype GeminiConnInfo struct {\n\t// \"1\" for BackendGeminiAPI / \"2\" for BackendVertexAI\n\tBackend  int32  `thrift:\"backend,1\" form:\"backend\" json:\"backend\" query:\"backend\"`\n\tProject  string `thrift:\"project,2\" form:\"project\" json:\"project\" query:\"project\"`\n\tLocation string `thrift:\"location,3\" form:\"location\" json:\"location\" query:\"location\"`\n}\n\nfunc NewGeminiConnInfo() *GeminiConnInfo {\n\treturn &GeminiConnInfo{}\n}\n\nfunc (p *GeminiConnInfo) InitDefault() {\n}\n\nfunc (p *GeminiConnInfo) GetBackend() (v int32) {\n\treturn p.Backend\n}\n\nfunc (p *GeminiConnInfo) GetProject() (v string) {\n\treturn p.Project\n}\n\nfunc (p *GeminiConnInfo) GetLocation() (v string) {\n\treturn p.Location\n}\n\nvar fieldIDToName_GeminiConnInfo = map[int16]string{\n\t1: \"backend\",\n\t2: \"project\",\n\t3: \"location\",\n}\n\nfunc (p *GeminiConnInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GeminiConnInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GeminiConnInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Backend = _field\n\treturn nil\n}\nfunc (p *GeminiConnInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Project = _field\n\treturn nil\n}\nfunc (p *GeminiConnInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Location = _field\n\treturn nil\n}\n\nfunc (p *GeminiConnInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GeminiConnInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GeminiConnInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"backend\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Backend); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GeminiConnInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Project); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GeminiConnInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"location\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Location); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *GeminiConnInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GeminiConnInfo(%+v)\", *p)\n\n}\n\ntype DeepseekConnInfo struct {\n}\n\nfunc NewDeepseekConnInfo() *DeepseekConnInfo {\n\treturn &DeepseekConnInfo{}\n}\n\nfunc (p *DeepseekConnInfo) InitDefault() {\n}\n\nvar fieldIDToName_DeepseekConnInfo = map[int16]string{}\n\nfunc (p *DeepseekConnInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\tgoto SkipFieldTypeError\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nSkipFieldTypeError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T skip field type %d error\", p, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeepseekConnInfo) Write(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteStructBegin(\"DeepseekConnInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeepseekConnInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeepseekConnInfo(%+v)\", *p)\n\n}\n\ntype QwenConnInfo struct {\n}\n\nfunc NewQwenConnInfo() *QwenConnInfo {\n\treturn &QwenConnInfo{}\n}\n\nfunc (p *QwenConnInfo) InitDefault() {\n}\n\nvar fieldIDToName_QwenConnInfo = map[int16]string{}\n\nfunc (p *QwenConnInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\tgoto SkipFieldTypeError\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nSkipFieldTypeError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T skip field type %d error\", p, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *QwenConnInfo) Write(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteStructBegin(\"QwenConnInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *QwenConnInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"QwenConnInfo(%+v)\", *p)\n\n}\n\ntype OllamaConnInfo struct {\n}\n\nfunc NewOllamaConnInfo() *OllamaConnInfo {\n\treturn &OllamaConnInfo{}\n}\n\nfunc (p *OllamaConnInfo) InitDefault() {\n}\n\nvar fieldIDToName_OllamaConnInfo = map[int16]string{}\n\nfunc (p *OllamaConnInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\tgoto SkipFieldTypeError\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nSkipFieldTypeError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T skip field type %d error\", p, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OllamaConnInfo) Write(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteStructBegin(\"OllamaConnInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OllamaConnInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OllamaConnInfo(%+v)\", *p)\n\n}\n\ntype ClaudeConnInfo struct {\n}\n\nfunc NewClaudeConnInfo() *ClaudeConnInfo {\n\treturn &ClaudeConnInfo{}\n}\n\nfunc (p *ClaudeConnInfo) InitDefault() {\n}\n\nvar fieldIDToName_ClaudeConnInfo = map[int16]string{}\n\nfunc (p *ClaudeConnInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\tgoto SkipFieldTypeError\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nSkipFieldTypeError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T skip field type %d error\", p, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ClaudeConnInfo) Write(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteStructBegin(\"ClaudeConnInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ClaudeConnInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ClaudeConnInfo(%+v)\", *p)\n\n}\n\ntype CreateModelReq struct {\n\tModelClass      developer_api.ModelClass `thrift:\"model_class,1\" form:\"model_class\" json:\"model_class\" query:\"model_class\"`\n\tModelName       string                   `thrift:\"model_name,2\" form:\"model_name\" json:\"model_name\" query:\"model_name\"`\n\tConnection      *Connection              `thrift:\"connection,3\" form:\"connection\" json:\"connection\" query:\"connection\"`\n\tEnableBase64URL bool                     `thrift:\"enable_base64_url,4\" form:\"enable_base64_url\" json:\"enable_base64_url\" query:\"enable_base64_url\"`\n\tBase            *base.Base               `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCreateModelReq() *CreateModelReq {\n\treturn &CreateModelReq{}\n}\n\nfunc (p *CreateModelReq) InitDefault() {\n}\n\nfunc (p *CreateModelReq) GetModelClass() (v developer_api.ModelClass) {\n\treturn p.ModelClass\n}\n\nfunc (p *CreateModelReq) GetModelName() (v string) {\n\treturn p.ModelName\n}\n\nvar CreateModelReq_Connection_DEFAULT *Connection\n\nfunc (p *CreateModelReq) GetConnection() (v *Connection) {\n\tif !p.IsSetConnection() {\n\t\treturn CreateModelReq_Connection_DEFAULT\n\t}\n\treturn p.Connection\n}\n\nfunc (p *CreateModelReq) GetEnableBase64URL() (v bool) {\n\treturn p.EnableBase64URL\n}\n\nvar CreateModelReq_Base_DEFAULT *base.Base\n\nfunc (p *CreateModelReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateModelReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateModelReq = map[int16]string{\n\t1:   \"model_class\",\n\t2:   \"model_name\",\n\t3:   \"connection\",\n\t4:   \"enable_base64_url\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateModelReq) IsSetConnection() bool {\n\treturn p.Connection != nil\n}\n\nfunc (p *CreateModelReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateModelReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateModelReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateModelReq) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field developer_api.ModelClass\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = developer_api.ModelClass(v)\n\t}\n\tp.ModelClass = _field\n\treturn nil\n}\nfunc (p *CreateModelReq) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelName = _field\n\treturn nil\n}\nfunc (p *CreateModelReq) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewConnection()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Connection = _field\n\treturn nil\n}\nfunc (p *CreateModelReq) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EnableBase64URL = _field\n\treturn nil\n}\nfunc (p *CreateModelReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateModelReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateModelReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateModelReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_class\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ModelClass)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateModelReq) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ModelName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateModelReq) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connection\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Connection.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateModelReq) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"enable_base64_url\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.EnableBase64URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CreateModelReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateModelReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateModelReq(%+v)\", *p)\n\n}\n\ntype CreateModelResp struct {\n\tID       int64          `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewCreateModelResp() *CreateModelResp {\n\treturn &CreateModelResp{}\n}\n\nfunc (p *CreateModelResp) InitDefault() {\n}\n\nfunc (p *CreateModelResp) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *CreateModelResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CreateModelResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CreateModelResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateModelResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateModelResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateModelResp = map[int16]string{\n\t1:   \"id\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateModelResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateModelResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateModelResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateModelResp[fieldId]))\n}\n\nfunc (p *CreateModelResp) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *CreateModelResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateModelResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateModelResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateModelResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateModelResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateModelResp) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateModelResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CreateModelResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CreateModelResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateModelResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateModelResp(%+v)\", *p)\n\n}\n\ntype DeleteModelReq struct {\n\tID   int64      `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteModelReq() *DeleteModelReq {\n\treturn &DeleteModelReq{}\n}\n\nfunc (p *DeleteModelReq) InitDefault() {\n}\n\nfunc (p *DeleteModelReq) GetID() (v int64) {\n\treturn p.ID\n}\n\nvar DeleteModelReq_Base_DEFAULT *base.Base\n\nfunc (p *DeleteModelReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteModelReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteModelReq = map[int16]string{\n\t1:   \"id\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteModelReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteModelReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteModelReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteModelReq) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *DeleteModelReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteModelReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteModelReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteModelReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteModelReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteModelReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteModelReq(%+v)\", *p)\n\n}\n\ntype DeleteModelResp struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDeleteModelResp() *DeleteModelResp {\n\treturn &DeleteModelResp{}\n}\n\nfunc (p *DeleteModelResp) InitDefault() {\n}\n\nfunc (p *DeleteModelResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DeleteModelResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DeleteModelResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteModelResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteModelResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteModelResp = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteModelResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteModelResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteModelResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteModelResp[fieldId]))\n}\n\nfunc (p *DeleteModelResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteModelResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeleteModelResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteModelResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteModelResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteModelResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DeleteModelResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DeleteModelResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteModelResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteModelResp(%+v)\", *p)\n\n}\n\ntype UpdateModelReq struct {\n\tModel *Model     `thrift:\"model,1\" form:\"model\" json:\"model\" query:\"model\"`\n\tBase  *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateModelReq() *UpdateModelReq {\n\treturn &UpdateModelReq{}\n}\n\nfunc (p *UpdateModelReq) InitDefault() {\n}\n\nvar UpdateModelReq_Model_DEFAULT *Model\n\nfunc (p *UpdateModelReq) GetModel() (v *Model) {\n\tif !p.IsSetModel() {\n\t\treturn UpdateModelReq_Model_DEFAULT\n\t}\n\treturn p.Model\n}\n\nvar UpdateModelReq_Base_DEFAULT *base.Base\n\nfunc (p *UpdateModelReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateModelReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateModelReq = map[int16]string{\n\t1:   \"model\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateModelReq) IsSetModel() bool {\n\treturn p.Model != nil\n}\n\nfunc (p *UpdateModelReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateModelReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateModelReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateModelReq) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewModel()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Model = _field\n\treturn nil\n}\nfunc (p *UpdateModelReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateModelReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateModelReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateModelReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Model.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateModelReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateModelReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateModelReq(%+v)\", *p)\n\n}\n\ntype UpdateModelResp struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewUpdateModelResp() *UpdateModelResp {\n\treturn &UpdateModelResp{}\n}\n\nfunc (p *UpdateModelResp) InitDefault() {\n}\n\nfunc (p *UpdateModelResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateModelResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateModelResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateModelResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateModelResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateModelResp = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateModelResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateModelResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateModelResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateModelResp[fieldId]))\n}\n\nfunc (p *UpdateModelResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateModelResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateModelResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateModelResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateModelResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateModelResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateModelResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateModelResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateModelResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateModelResp(%+v)\", *p)\n\n}\n\ntype SaveBasicConfigurationReq struct {\n\tConfiguration *BasicConfiguration `thrift:\"configuration,1\" form:\"configuration\" json:\"configuration\" query:\"configuration\"`\n\tBase          *base.Base          `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewSaveBasicConfigurationReq() *SaveBasicConfigurationReq {\n\treturn &SaveBasicConfigurationReq{}\n}\n\nfunc (p *SaveBasicConfigurationReq) InitDefault() {\n}\n\nvar SaveBasicConfigurationReq_Configuration_DEFAULT *BasicConfiguration\n\nfunc (p *SaveBasicConfigurationReq) GetConfiguration() (v *BasicConfiguration) {\n\tif !p.IsSetConfiguration() {\n\t\treturn SaveBasicConfigurationReq_Configuration_DEFAULT\n\t}\n\treturn p.Configuration\n}\n\nvar SaveBasicConfigurationReq_Base_DEFAULT *base.Base\n\nfunc (p *SaveBasicConfigurationReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SaveBasicConfigurationReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SaveBasicConfigurationReq = map[int16]string{\n\t1:   \"configuration\",\n\t255: \"Base\",\n}\n\nfunc (p *SaveBasicConfigurationReq) IsSetConfiguration() bool {\n\treturn p.Configuration != nil\n}\n\nfunc (p *SaveBasicConfigurationReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SaveBasicConfigurationReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SaveBasicConfigurationReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SaveBasicConfigurationReq) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBasicConfiguration()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Configuration = _field\n\treturn nil\n}\nfunc (p *SaveBasicConfigurationReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SaveBasicConfigurationReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveBasicConfigurationReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SaveBasicConfigurationReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"configuration\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Configuration.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SaveBasicConfigurationReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SaveBasicConfigurationReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SaveBasicConfigurationReq(%+v)\", *p)\n\n}\n\ntype SaveBasicConfigurationResp struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewSaveBasicConfigurationResp() *SaveBasicConfigurationResp {\n\treturn &SaveBasicConfigurationResp{}\n}\n\nfunc (p *SaveBasicConfigurationResp) InitDefault() {\n}\n\nfunc (p *SaveBasicConfigurationResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *SaveBasicConfigurationResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar SaveBasicConfigurationResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SaveBasicConfigurationResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SaveBasicConfigurationResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SaveBasicConfigurationResp = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *SaveBasicConfigurationResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SaveBasicConfigurationResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SaveBasicConfigurationResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SaveBasicConfigurationResp[fieldId]))\n}\n\nfunc (p *SaveBasicConfigurationResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *SaveBasicConfigurationResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *SaveBasicConfigurationResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SaveBasicConfigurationResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveBasicConfigurationResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SaveBasicConfigurationResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *SaveBasicConfigurationResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *SaveBasicConfigurationResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SaveBasicConfigurationResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SaveBasicConfigurationResp(%+v)\", *p)\n\n}\n\ntype GetBasicConfigurationReq struct {\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetBasicConfigurationReq() *GetBasicConfigurationReq {\n\treturn &GetBasicConfigurationReq{}\n}\n\nfunc (p *GetBasicConfigurationReq) InitDefault() {\n}\n\nvar GetBasicConfigurationReq_Base_DEFAULT *base.Base\n\nfunc (p *GetBasicConfigurationReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetBasicConfigurationReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetBasicConfigurationReq = map[int16]string{\n\t255: \"Base\",\n}\n\nfunc (p *GetBasicConfigurationReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetBasicConfigurationReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetBasicConfigurationReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetBasicConfigurationReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetBasicConfigurationReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBasicConfigurationReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetBasicConfigurationReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetBasicConfigurationReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetBasicConfigurationReq(%+v)\", *p)\n\n}\n\ntype GetBasicConfigurationResp struct {\n\tConfiguration *BasicConfiguration `thrift:\"configuration,1\" form:\"configuration\" json:\"configuration\" query:\"configuration\"`\n\tCode          int64               `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg           string              `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp      *base.BaseResp      `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetBasicConfigurationResp() *GetBasicConfigurationResp {\n\treturn &GetBasicConfigurationResp{}\n}\n\nfunc (p *GetBasicConfigurationResp) InitDefault() {\n}\n\nvar GetBasicConfigurationResp_Configuration_DEFAULT *BasicConfiguration\n\nfunc (p *GetBasicConfigurationResp) GetConfiguration() (v *BasicConfiguration) {\n\tif !p.IsSetConfiguration() {\n\t\treturn GetBasicConfigurationResp_Configuration_DEFAULT\n\t}\n\treturn p.Configuration\n}\n\nfunc (p *GetBasicConfigurationResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetBasicConfigurationResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetBasicConfigurationResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetBasicConfigurationResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetBasicConfigurationResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetBasicConfigurationResp = map[int16]string{\n\t1:   \"configuration\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetBasicConfigurationResp) IsSetConfiguration() bool {\n\treturn p.Configuration != nil\n}\n\nfunc (p *GetBasicConfigurationResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetBasicConfigurationResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetBasicConfigurationResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetBasicConfigurationResp[fieldId]))\n}\n\nfunc (p *GetBasicConfigurationResp) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBasicConfiguration()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Configuration = _field\n\treturn nil\n}\nfunc (p *GetBasicConfigurationResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetBasicConfigurationResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetBasicConfigurationResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetBasicConfigurationResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBasicConfigurationResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetBasicConfigurationResp) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"configuration\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Configuration.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetBasicConfigurationResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetBasicConfigurationResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetBasicConfigurationResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetBasicConfigurationResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetBasicConfigurationResp(%+v)\", *p)\n\n}\n\ntype SandboxConfig struct {\n\tAllowEnv       string  `thrift:\"allow_env,1\" form:\"allow_env\" json:\"allow_env\" query:\"allow_env\"`\n\tAllowRead      string  `thrift:\"allow_read,2\" form:\"allow_read\" json:\"allow_read\" query:\"allow_read\"`\n\tAllowWrite     string  `thrift:\"allow_write,3\" form:\"allow_write\" json:\"allow_write\" query:\"allow_write\"`\n\tAllowRun       string  `thrift:\"allow_run,4\" form:\"allow_run\" json:\"allow_run\" query:\"allow_run\"`\n\tAllowNet       string  `thrift:\"allow_net,5\" form:\"allow_net\" json:\"allow_net\" query:\"allow_net\"`\n\tAllowFfi       string  `thrift:\"allow_ffi,6\" form:\"allow_ffi\" json:\"allow_ffi\" query:\"allow_ffi\"`\n\tNodeModulesDir string  `thrift:\"node_modules_dir,7\" form:\"node_modules_dir\" json:\"node_modules_dir\" query:\"node_modules_dir\"`\n\tTimeoutSeconds float64 `thrift:\"timeout_seconds,8\" form:\"timeout_seconds\" json:\"timeout_seconds\" query:\"timeout_seconds\"`\n\tMemoryLimitMb  int64   `thrift:\"memory_limit_mb,9\" form:\"memory_limit_mb\" json:\"memory_limit_mb\" query:\"memory_limit_mb\"`\n}\n\nfunc NewSandboxConfig() *SandboxConfig {\n\treturn &SandboxConfig{}\n}\n\nfunc (p *SandboxConfig) InitDefault() {\n}\n\nfunc (p *SandboxConfig) GetAllowEnv() (v string) {\n\treturn p.AllowEnv\n}\n\nfunc (p *SandboxConfig) GetAllowRead() (v string) {\n\treturn p.AllowRead\n}\n\nfunc (p *SandboxConfig) GetAllowWrite() (v string) {\n\treturn p.AllowWrite\n}\n\nfunc (p *SandboxConfig) GetAllowRun() (v string) {\n\treturn p.AllowRun\n}\n\nfunc (p *SandboxConfig) GetAllowNet() (v string) {\n\treturn p.AllowNet\n}\n\nfunc (p *SandboxConfig) GetAllowFfi() (v string) {\n\treturn p.AllowFfi\n}\n\nfunc (p *SandboxConfig) GetNodeModulesDir() (v string) {\n\treturn p.NodeModulesDir\n}\n\nfunc (p *SandboxConfig) GetTimeoutSeconds() (v float64) {\n\treturn p.TimeoutSeconds\n}\n\nfunc (p *SandboxConfig) GetMemoryLimitMb() (v int64) {\n\treturn p.MemoryLimitMb\n}\n\nvar fieldIDToName_SandboxConfig = map[int16]string{\n\t1: \"allow_env\",\n\t2: \"allow_read\",\n\t3: \"allow_write\",\n\t4: \"allow_run\",\n\t5: \"allow_net\",\n\t6: \"allow_ffi\",\n\t7: \"node_modules_dir\",\n\t8: \"timeout_seconds\",\n\t9: \"memory_limit_mb\",\n}\n\nfunc (p *SandboxConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SandboxConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SandboxConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AllowEnv = _field\n\treturn nil\n}\nfunc (p *SandboxConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AllowRead = _field\n\treturn nil\n}\nfunc (p *SandboxConfig) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AllowWrite = _field\n\treturn nil\n}\nfunc (p *SandboxConfig) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AllowRun = _field\n\treturn nil\n}\nfunc (p *SandboxConfig) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AllowNet = _field\n\treturn nil\n}\nfunc (p *SandboxConfig) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AllowFfi = _field\n\treturn nil\n}\nfunc (p *SandboxConfig) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeModulesDir = _field\n\treturn nil\n}\nfunc (p *SandboxConfig) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TimeoutSeconds = _field\n\treturn nil\n}\nfunc (p *SandboxConfig) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MemoryLimitMb = _field\n\treturn nil\n}\n\nfunc (p *SandboxConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SandboxConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SandboxConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"allow_env\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AllowEnv); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SandboxConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"allow_read\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AllowRead); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SandboxConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"allow_write\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AllowWrite); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SandboxConfig) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"allow_run\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AllowRun); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SandboxConfig) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"allow_net\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AllowNet); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *SandboxConfig) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"allow_ffi\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AllowFfi); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *SandboxConfig) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_modules_dir\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeModulesDir); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *SandboxConfig) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"timeout_seconds\", thrift.DOUBLE, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.TimeoutSeconds); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *SandboxConfig) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"memory_limit_mb\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.MemoryLimitMb); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *SandboxConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SandboxConfig(%+v)\", *p)\n\n}\n\ntype BasicConfiguration struct {\n\tAdminEmails             string               `thrift:\"admin_emails,1\" form:\"admin_emails\" json:\"admin_emails\" query:\"admin_emails\"`\n\tDisableUserRegistration bool                 `thrift:\"disable_user_registration,2\" form:\"disable_user_registration\" json:\"disable_user_registration\" query:\"disable_user_registration\"`\n\tAllowRegistrationEmail  string               `thrift:\"allow_registration_email,3\" form:\"allow_registration_email\" json:\"allow_registration_email\" query:\"allow_registration_email\"`\n\tPluginConfiguration     *PluginConfiguration `thrift:\"plugin_configuration,4\" form:\"plugin_configuration\" json:\"plugin_configuration\" query:\"plugin_configuration\"`\n\tCodeRunnerType          CodeRunnerType       `thrift:\"code_runner_type,5\" form:\"code_runner_type\" json:\"code_runner_type\" query:\"code_runner_type\"`\n\tSandboxConfig           *SandboxConfig       `thrift:\"sandbox_config,6,optional\" form:\"sandbox_config\" json:\"sandbox_config,omitempty\" query:\"sandbox_config\"`\n\tServerHost              string               `thrift:\"server_host,7\" form:\"server_host\" json:\"server_host\" query:\"server_host\"`\n}\n\nfunc NewBasicConfiguration() *BasicConfiguration {\n\treturn &BasicConfiguration{}\n}\n\nfunc (p *BasicConfiguration) InitDefault() {\n}\n\nfunc (p *BasicConfiguration) GetAdminEmails() (v string) {\n\treturn p.AdminEmails\n}\n\nfunc (p *BasicConfiguration) GetDisableUserRegistration() (v bool) {\n\treturn p.DisableUserRegistration\n}\n\nfunc (p *BasicConfiguration) GetAllowRegistrationEmail() (v string) {\n\treturn p.AllowRegistrationEmail\n}\n\nvar BasicConfiguration_PluginConfiguration_DEFAULT *PluginConfiguration\n\nfunc (p *BasicConfiguration) GetPluginConfiguration() (v *PluginConfiguration) {\n\tif !p.IsSetPluginConfiguration() {\n\t\treturn BasicConfiguration_PluginConfiguration_DEFAULT\n\t}\n\treturn p.PluginConfiguration\n}\n\nfunc (p *BasicConfiguration) GetCodeRunnerType() (v CodeRunnerType) {\n\treturn p.CodeRunnerType\n}\n\nvar BasicConfiguration_SandboxConfig_DEFAULT *SandboxConfig\n\nfunc (p *BasicConfiguration) GetSandboxConfig() (v *SandboxConfig) {\n\tif !p.IsSetSandboxConfig() {\n\t\treturn BasicConfiguration_SandboxConfig_DEFAULT\n\t}\n\treturn p.SandboxConfig\n}\n\nfunc (p *BasicConfiguration) GetServerHost() (v string) {\n\treturn p.ServerHost\n}\n\nvar fieldIDToName_BasicConfiguration = map[int16]string{\n\t1: \"admin_emails\",\n\t2: \"disable_user_registration\",\n\t3: \"allow_registration_email\",\n\t4: \"plugin_configuration\",\n\t5: \"code_runner_type\",\n\t6: \"sandbox_config\",\n\t7: \"server_host\",\n}\n\nfunc (p *BasicConfiguration) IsSetPluginConfiguration() bool {\n\treturn p.PluginConfiguration != nil\n}\n\nfunc (p *BasicConfiguration) IsSetSandboxConfig() bool {\n\treturn p.SandboxConfig != nil\n}\n\nfunc (p *BasicConfiguration) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BasicConfiguration[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BasicConfiguration) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AdminEmails = _field\n\treturn nil\n}\nfunc (p *BasicConfiguration) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DisableUserRegistration = _field\n\treturn nil\n}\nfunc (p *BasicConfiguration) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AllowRegistrationEmail = _field\n\treturn nil\n}\nfunc (p *BasicConfiguration) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewPluginConfiguration()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PluginConfiguration = _field\n\treturn nil\n}\nfunc (p *BasicConfiguration) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field CodeRunnerType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = CodeRunnerType(v)\n\t}\n\tp.CodeRunnerType = _field\n\treturn nil\n}\nfunc (p *BasicConfiguration) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewSandboxConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SandboxConfig = _field\n\treturn nil\n}\nfunc (p *BasicConfiguration) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ServerHost = _field\n\treturn nil\n}\n\nfunc (p *BasicConfiguration) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BasicConfiguration\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BasicConfiguration) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"admin_emails\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AdminEmails); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BasicConfiguration) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"disable_user_registration\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.DisableUserRegistration); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BasicConfiguration) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"allow_registration_email\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AllowRegistrationEmail); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BasicConfiguration) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_configuration\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.PluginConfiguration.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BasicConfiguration) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code_runner_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.CodeRunnerType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BasicConfiguration) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSandboxConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"sandbox_config\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SandboxConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *BasicConfiguration) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"server_host\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ServerHost); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *BasicConfiguration) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BasicConfiguration(%+v)\", *p)\n\n}\n\ntype PluginConfiguration struct {\n\tCozeSaasPluginEnabled bool   `thrift:\"coze_saas_plugin_enabled,1\" form:\"coze_saas_plugin_enabled\" json:\"coze_saas_plugin_enabled\" query:\"coze_saas_plugin_enabled\"`\n\tCozeAPIToken          string `thrift:\"coze_api_token,2\" form:\"coze_api_token\" json:\"coze_api_token\" query:\"coze_api_token\"`\n\tCozeSaasAPIBaseURL    string `thrift:\"coze_saas_api_base_url,3\" form:\"coze_saas_api_base_url\" json:\"coze_saas_api_base_url\" query:\"coze_saas_api_base_url\"`\n}\n\nfunc NewPluginConfiguration() *PluginConfiguration {\n\treturn &PluginConfiguration{}\n}\n\nfunc (p *PluginConfiguration) InitDefault() {\n}\n\nfunc (p *PluginConfiguration) GetCozeSaasPluginEnabled() (v bool) {\n\treturn p.CozeSaasPluginEnabled\n}\n\nfunc (p *PluginConfiguration) GetCozeAPIToken() (v string) {\n\treturn p.CozeAPIToken\n}\n\nfunc (p *PluginConfiguration) GetCozeSaasAPIBaseURL() (v string) {\n\treturn p.CozeSaasAPIBaseURL\n}\n\nvar fieldIDToName_PluginConfiguration = map[int16]string{\n\t1: \"coze_saas_plugin_enabled\",\n\t2: \"coze_api_token\",\n\t3: \"coze_saas_api_base_url\",\n}\n\nfunc (p *PluginConfiguration) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginConfiguration[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginConfiguration) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CozeSaasPluginEnabled = _field\n\treturn nil\n}\nfunc (p *PluginConfiguration) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CozeAPIToken = _field\n\treturn nil\n}\nfunc (p *PluginConfiguration) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CozeSaasAPIBaseURL = _field\n\treturn nil\n}\n\nfunc (p *PluginConfiguration) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginConfiguration\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginConfiguration) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"coze_saas_plugin_enabled\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CozeSaasPluginEnabled); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginConfiguration) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"coze_api_token\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CozeAPIToken); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginConfiguration) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"coze_saas_api_base_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CozeSaasAPIBaseURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *PluginConfiguration) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginConfiguration(%+v)\", *p)\n\n}\n\ntype UpdateKnowledgeConfigReq struct {\n\tKnowledgeConfig *KnowledgeConfig `thrift:\"knowledge_config,1\" form:\"knowledge_config\" json:\"knowledge_config\" query:\"knowledge_config\"`\n\tBase            *base.Base       `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateKnowledgeConfigReq() *UpdateKnowledgeConfigReq {\n\treturn &UpdateKnowledgeConfigReq{}\n}\n\nfunc (p *UpdateKnowledgeConfigReq) InitDefault() {\n}\n\nvar UpdateKnowledgeConfigReq_KnowledgeConfig_DEFAULT *KnowledgeConfig\n\nfunc (p *UpdateKnowledgeConfigReq) GetKnowledgeConfig() (v *KnowledgeConfig) {\n\tif !p.IsSetKnowledgeConfig() {\n\t\treturn UpdateKnowledgeConfigReq_KnowledgeConfig_DEFAULT\n\t}\n\treturn p.KnowledgeConfig\n}\n\nvar UpdateKnowledgeConfigReq_Base_DEFAULT *base.Base\n\nfunc (p *UpdateKnowledgeConfigReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateKnowledgeConfigReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateKnowledgeConfigReq = map[int16]string{\n\t1:   \"knowledge_config\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateKnowledgeConfigReq) IsSetKnowledgeConfig() bool {\n\treturn p.KnowledgeConfig != nil\n}\n\nfunc (p *UpdateKnowledgeConfigReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateKnowledgeConfigReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateKnowledgeConfigReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateKnowledgeConfigReq) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewKnowledgeConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.KnowledgeConfig = _field\n\treturn nil\n}\nfunc (p *UpdateKnowledgeConfigReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateKnowledgeConfigReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateKnowledgeConfigReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateKnowledgeConfigReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"knowledge_config\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.KnowledgeConfig.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateKnowledgeConfigReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateKnowledgeConfigReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateKnowledgeConfigReq(%+v)\", *p)\n\n}\n\ntype UpdateKnowledgeConfigResp struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewUpdateKnowledgeConfigResp() *UpdateKnowledgeConfigResp {\n\treturn &UpdateKnowledgeConfigResp{}\n}\n\nfunc (p *UpdateKnowledgeConfigResp) InitDefault() {\n}\n\nfunc (p *UpdateKnowledgeConfigResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateKnowledgeConfigResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateKnowledgeConfigResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateKnowledgeConfigResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateKnowledgeConfigResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateKnowledgeConfigResp = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateKnowledgeConfigResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateKnowledgeConfigResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateKnowledgeConfigResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateKnowledgeConfigResp[fieldId]))\n}\n\nfunc (p *UpdateKnowledgeConfigResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateKnowledgeConfigResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateKnowledgeConfigResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateKnowledgeConfigResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateKnowledgeConfigResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateKnowledgeConfigResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateKnowledgeConfigResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateKnowledgeConfigResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateKnowledgeConfigResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateKnowledgeConfigResp(%+v)\", *p)\n\n}\n\ntype GetKnowledgeConfigReq struct {\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetKnowledgeConfigReq() *GetKnowledgeConfigReq {\n\treturn &GetKnowledgeConfigReq{}\n}\n\nfunc (p *GetKnowledgeConfigReq) InitDefault() {\n}\n\nvar GetKnowledgeConfigReq_Base_DEFAULT *base.Base\n\nfunc (p *GetKnowledgeConfigReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetKnowledgeConfigReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetKnowledgeConfigReq = map[int16]string{\n\t255: \"Base\",\n}\n\nfunc (p *GetKnowledgeConfigReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetKnowledgeConfigReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetKnowledgeConfigReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetKnowledgeConfigReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetKnowledgeConfigReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetKnowledgeConfigReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetKnowledgeConfigReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetKnowledgeConfigReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetKnowledgeConfigReq(%+v)\", *p)\n\n}\n\ntype GetKnowledgeConfigResp struct {\n\tKnowledgeConfig *KnowledgeConfig `thrift:\"knowledge_config,1\" form:\"knowledge_config\" json:\"knowledge_config\" query:\"knowledge_config\"`\n\tCode            int64            `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg             string           `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp        *base.BaseResp   `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetKnowledgeConfigResp() *GetKnowledgeConfigResp {\n\treturn &GetKnowledgeConfigResp{}\n}\n\nfunc (p *GetKnowledgeConfigResp) InitDefault() {\n}\n\nvar GetKnowledgeConfigResp_KnowledgeConfig_DEFAULT *KnowledgeConfig\n\nfunc (p *GetKnowledgeConfigResp) GetKnowledgeConfig() (v *KnowledgeConfig) {\n\tif !p.IsSetKnowledgeConfig() {\n\t\treturn GetKnowledgeConfigResp_KnowledgeConfig_DEFAULT\n\t}\n\treturn p.KnowledgeConfig\n}\n\nfunc (p *GetKnowledgeConfigResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetKnowledgeConfigResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetKnowledgeConfigResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetKnowledgeConfigResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetKnowledgeConfigResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetKnowledgeConfigResp = map[int16]string{\n\t1:   \"knowledge_config\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetKnowledgeConfigResp) IsSetKnowledgeConfig() bool {\n\treturn p.KnowledgeConfig != nil\n}\n\nfunc (p *GetKnowledgeConfigResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetKnowledgeConfigResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetKnowledgeConfigResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetKnowledgeConfigResp[fieldId]))\n}\n\nfunc (p *GetKnowledgeConfigResp) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewKnowledgeConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.KnowledgeConfig = _field\n\treturn nil\n}\nfunc (p *GetKnowledgeConfigResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetKnowledgeConfigResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetKnowledgeConfigResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetKnowledgeConfigResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetKnowledgeConfigResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetKnowledgeConfigResp) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"knowledge_config\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.KnowledgeConfig.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetKnowledgeConfigResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetKnowledgeConfigResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetKnowledgeConfigResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetKnowledgeConfigResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetKnowledgeConfigResp(%+v)\", *p)\n\n}\n\ntype KnowledgeConfig struct {\n\tEmbeddingConfig *EmbeddingConfig `thrift:\"embedding_config,1\" form:\"embedding_config\" json:\"embedding_config\" query:\"embedding_config\"`\n\tRerankConfig    *RerankConfig    `thrift:\"rerank_config,2\" form:\"rerank_config\" json:\"rerank_config\" query:\"rerank_config\"`\n\tOcrConfig       *OCRConfig       `thrift:\"ocr_config,3\" form:\"ocr_config\" json:\"ocr_config\" query:\"ocr_config\"`\n\tParserConfig    *ParserConfig    `thrift:\"parser_config,4\" form:\"parser_config\" json:\"parser_config\" query:\"parser_config\"`\n\tBuiltinModelID  int64            `thrift:\"builtin_model_id,5\" form:\"builtin_model_id\" json:\"builtin_model_id\" query:\"builtin_model_id\"`\n}\n\nfunc NewKnowledgeConfig() *KnowledgeConfig {\n\treturn &KnowledgeConfig{}\n}\n\nfunc (p *KnowledgeConfig) InitDefault() {\n}\n\nvar KnowledgeConfig_EmbeddingConfig_DEFAULT *EmbeddingConfig\n\nfunc (p *KnowledgeConfig) GetEmbeddingConfig() (v *EmbeddingConfig) {\n\tif !p.IsSetEmbeddingConfig() {\n\t\treturn KnowledgeConfig_EmbeddingConfig_DEFAULT\n\t}\n\treturn p.EmbeddingConfig\n}\n\nvar KnowledgeConfig_RerankConfig_DEFAULT *RerankConfig\n\nfunc (p *KnowledgeConfig) GetRerankConfig() (v *RerankConfig) {\n\tif !p.IsSetRerankConfig() {\n\t\treturn KnowledgeConfig_RerankConfig_DEFAULT\n\t}\n\treturn p.RerankConfig\n}\n\nvar KnowledgeConfig_OcrConfig_DEFAULT *OCRConfig\n\nfunc (p *KnowledgeConfig) GetOcrConfig() (v *OCRConfig) {\n\tif !p.IsSetOcrConfig() {\n\t\treturn KnowledgeConfig_OcrConfig_DEFAULT\n\t}\n\treturn p.OcrConfig\n}\n\nvar KnowledgeConfig_ParserConfig_DEFAULT *ParserConfig\n\nfunc (p *KnowledgeConfig) GetParserConfig() (v *ParserConfig) {\n\tif !p.IsSetParserConfig() {\n\t\treturn KnowledgeConfig_ParserConfig_DEFAULT\n\t}\n\treturn p.ParserConfig\n}\n\nfunc (p *KnowledgeConfig) GetBuiltinModelID() (v int64) {\n\treturn p.BuiltinModelID\n}\n\nvar fieldIDToName_KnowledgeConfig = map[int16]string{\n\t1: \"embedding_config\",\n\t2: \"rerank_config\",\n\t3: \"ocr_config\",\n\t4: \"parser_config\",\n\t5: \"builtin_model_id\",\n}\n\nfunc (p *KnowledgeConfig) IsSetEmbeddingConfig() bool {\n\treturn p.EmbeddingConfig != nil\n}\n\nfunc (p *KnowledgeConfig) IsSetRerankConfig() bool {\n\treturn p.RerankConfig != nil\n}\n\nfunc (p *KnowledgeConfig) IsSetOcrConfig() bool {\n\treturn p.OcrConfig != nil\n}\n\nfunc (p *KnowledgeConfig) IsSetParserConfig() bool {\n\treturn p.ParserConfig != nil\n}\n\nfunc (p *KnowledgeConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_KnowledgeConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *KnowledgeConfig) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewEmbeddingConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.EmbeddingConfig = _field\n\treturn nil\n}\nfunc (p *KnowledgeConfig) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewRerankConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RerankConfig = _field\n\treturn nil\n}\nfunc (p *KnowledgeConfig) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewOCRConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OcrConfig = _field\n\treturn nil\n}\nfunc (p *KnowledgeConfig) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewParserConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ParserConfig = _field\n\treturn nil\n}\nfunc (p *KnowledgeConfig) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BuiltinModelID = _field\n\treturn nil\n}\n\nfunc (p *KnowledgeConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"KnowledgeConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *KnowledgeConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"embedding_config\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.EmbeddingConfig.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *KnowledgeConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"rerank_config\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.RerankConfig.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *KnowledgeConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ocr_config\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.OcrConfig.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *KnowledgeConfig) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"parser_config\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ParserConfig.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *KnowledgeConfig) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"builtin_model_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BuiltinModelID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *KnowledgeConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"KnowledgeConfig(%+v)\", *p)\n\n}\n\ntype EmbeddingConfig struct {\n\tType         EmbeddingType        `thrift:\"type,1\" form:\"type\" json:\"type\" query:\"type\"`\n\tMaxBatchSize int32                `thrift:\"max_batch_size,2\" form:\"max_batch_size\" json:\"max_batch_size\" query:\"max_batch_size\"`\n\tConnection   *EmbeddingConnection `thrift:\"connection,3\" form:\"connection\" json:\"connection\" query:\"connection\"`\n}\n\nfunc NewEmbeddingConfig() *EmbeddingConfig {\n\treturn &EmbeddingConfig{}\n}\n\nfunc (p *EmbeddingConfig) InitDefault() {\n}\n\nfunc (p *EmbeddingConfig) GetType() (v EmbeddingType) {\n\treturn p.Type\n}\n\nfunc (p *EmbeddingConfig) GetMaxBatchSize() (v int32) {\n\treturn p.MaxBatchSize\n}\n\nvar EmbeddingConfig_Connection_DEFAULT *EmbeddingConnection\n\nfunc (p *EmbeddingConfig) GetConnection() (v *EmbeddingConnection) {\n\tif !p.IsSetConnection() {\n\t\treturn EmbeddingConfig_Connection_DEFAULT\n\t}\n\treturn p.Connection\n}\n\nvar fieldIDToName_EmbeddingConfig = map[int16]string{\n\t1: \"type\",\n\t2: \"max_batch_size\",\n\t3: \"connection\",\n}\n\nfunc (p *EmbeddingConfig) IsSetConnection() bool {\n\treturn p.Connection != nil\n}\n\nfunc (p *EmbeddingConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_EmbeddingConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *EmbeddingConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field EmbeddingType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = EmbeddingType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *EmbeddingConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MaxBatchSize = _field\n\treturn nil\n}\nfunc (p *EmbeddingConfig) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewEmbeddingConnection()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Connection = _field\n\treturn nil\n}\n\nfunc (p *EmbeddingConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"EmbeddingConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *EmbeddingConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *EmbeddingConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"max_batch_size\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.MaxBatchSize); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *EmbeddingConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connection\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Connection.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *EmbeddingConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"EmbeddingConfig(%+v)\", *p)\n\n}\n\ntype EmbeddingConnection struct {\n\tBaseConnInfo  *BaseConnectionInfo `thrift:\"base_conn_info,1\" form:\"base_conn_info\" json:\"base_conn_info\" query:\"base_conn_info\"`\n\tEmbeddingInfo *EmbeddingInfo      `thrift:\"embedding_info,2\" form:\"embedding_info\" json:\"embedding_info\" query:\"embedding_info\"`\n\tArk           *ArkConnInfo        `thrift:\"ark,3,optional\" form:\"ark\" json:\"ark,omitempty\" query:\"ark\"`\n\tOpenai        *OpenAIConnInfo     `thrift:\"openai,4,optional\" form:\"openai\" json:\"openai,omitempty\" query:\"openai\"`\n\tOllama        *OllamaConnInfo     `thrift:\"ollama,5,optional\" form:\"ollama\" json:\"ollama,omitempty\" query:\"ollama\"`\n\tGemini        *GeminiConnInfo     `thrift:\"gemini,6,optional\" form:\"gemini\" json:\"gemini,omitempty\" query:\"gemini\"`\n\tHTTP          *HttpConnection     `thrift:\"http,7,optional\" form:\"http\" json:\"http,omitempty\" query:\"http\"`\n}\n\nfunc NewEmbeddingConnection() *EmbeddingConnection {\n\treturn &EmbeddingConnection{}\n}\n\nfunc (p *EmbeddingConnection) InitDefault() {\n}\n\nvar EmbeddingConnection_BaseConnInfo_DEFAULT *BaseConnectionInfo\n\nfunc (p *EmbeddingConnection) GetBaseConnInfo() (v *BaseConnectionInfo) {\n\tif !p.IsSetBaseConnInfo() {\n\t\treturn EmbeddingConnection_BaseConnInfo_DEFAULT\n\t}\n\treturn p.BaseConnInfo\n}\n\nvar EmbeddingConnection_EmbeddingInfo_DEFAULT *EmbeddingInfo\n\nfunc (p *EmbeddingConnection) GetEmbeddingInfo() (v *EmbeddingInfo) {\n\tif !p.IsSetEmbeddingInfo() {\n\t\treturn EmbeddingConnection_EmbeddingInfo_DEFAULT\n\t}\n\treturn p.EmbeddingInfo\n}\n\nvar EmbeddingConnection_Ark_DEFAULT *ArkConnInfo\n\nfunc (p *EmbeddingConnection) GetArk() (v *ArkConnInfo) {\n\tif !p.IsSetArk() {\n\t\treturn EmbeddingConnection_Ark_DEFAULT\n\t}\n\treturn p.Ark\n}\n\nvar EmbeddingConnection_Openai_DEFAULT *OpenAIConnInfo\n\nfunc (p *EmbeddingConnection) GetOpenai() (v *OpenAIConnInfo) {\n\tif !p.IsSetOpenai() {\n\t\treturn EmbeddingConnection_Openai_DEFAULT\n\t}\n\treturn p.Openai\n}\n\nvar EmbeddingConnection_Ollama_DEFAULT *OllamaConnInfo\n\nfunc (p *EmbeddingConnection) GetOllama() (v *OllamaConnInfo) {\n\tif !p.IsSetOllama() {\n\t\treturn EmbeddingConnection_Ollama_DEFAULT\n\t}\n\treturn p.Ollama\n}\n\nvar EmbeddingConnection_Gemini_DEFAULT *GeminiConnInfo\n\nfunc (p *EmbeddingConnection) GetGemini() (v *GeminiConnInfo) {\n\tif !p.IsSetGemini() {\n\t\treturn EmbeddingConnection_Gemini_DEFAULT\n\t}\n\treturn p.Gemini\n}\n\nvar EmbeddingConnection_HTTP_DEFAULT *HttpConnection\n\nfunc (p *EmbeddingConnection) GetHTTP() (v *HttpConnection) {\n\tif !p.IsSetHTTP() {\n\t\treturn EmbeddingConnection_HTTP_DEFAULT\n\t}\n\treturn p.HTTP\n}\n\nvar fieldIDToName_EmbeddingConnection = map[int16]string{\n\t1: \"base_conn_info\",\n\t2: \"embedding_info\",\n\t3: \"ark\",\n\t4: \"openai\",\n\t5: \"ollama\",\n\t6: \"gemini\",\n\t7: \"http\",\n}\n\nfunc (p *EmbeddingConnection) IsSetBaseConnInfo() bool {\n\treturn p.BaseConnInfo != nil\n}\n\nfunc (p *EmbeddingConnection) IsSetEmbeddingInfo() bool {\n\treturn p.EmbeddingInfo != nil\n}\n\nfunc (p *EmbeddingConnection) IsSetArk() bool {\n\treturn p.Ark != nil\n}\n\nfunc (p *EmbeddingConnection) IsSetOpenai() bool {\n\treturn p.Openai != nil\n}\n\nfunc (p *EmbeddingConnection) IsSetOllama() bool {\n\treturn p.Ollama != nil\n}\n\nfunc (p *EmbeddingConnection) IsSetGemini() bool {\n\treturn p.Gemini != nil\n}\n\nfunc (p *EmbeddingConnection) IsSetHTTP() bool {\n\treturn p.HTTP != nil\n}\n\nfunc (p *EmbeddingConnection) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_EmbeddingConnection[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *EmbeddingConnection) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBaseConnectionInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseConnInfo = _field\n\treturn nil\n}\nfunc (p *EmbeddingConnection) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewEmbeddingInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.EmbeddingInfo = _field\n\treturn nil\n}\nfunc (p *EmbeddingConnection) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewArkConnInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Ark = _field\n\treturn nil\n}\nfunc (p *EmbeddingConnection) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewOpenAIConnInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Openai = _field\n\treturn nil\n}\nfunc (p *EmbeddingConnection) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewOllamaConnInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Ollama = _field\n\treturn nil\n}\nfunc (p *EmbeddingConnection) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewGeminiConnInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Gemini = _field\n\treturn nil\n}\nfunc (p *EmbeddingConnection) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewHttpConnection()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.HTTP = _field\n\treturn nil\n}\n\nfunc (p *EmbeddingConnection) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"EmbeddingConnection\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *EmbeddingConnection) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"base_conn_info\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseConnInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *EmbeddingConnection) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"embedding_info\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.EmbeddingInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *EmbeddingConnection) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetArk() {\n\t\tif err = oprot.WriteFieldBegin(\"ark\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Ark.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *EmbeddingConnection) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOpenai() {\n\t\tif err = oprot.WriteFieldBegin(\"openai\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Openai.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *EmbeddingConnection) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOllama() {\n\t\tif err = oprot.WriteFieldBegin(\"ollama\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Ollama.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *EmbeddingConnection) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetGemini() {\n\t\tif err = oprot.WriteFieldBegin(\"gemini\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Gemini.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *EmbeddingConnection) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHTTP() {\n\t\tif err = oprot.WriteFieldBegin(\"http\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.HTTP.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *EmbeddingConnection) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"EmbeddingConnection(%+v)\", *p)\n\n}\n\ntype HttpConnection struct {\n\tAddress string `thrift:\"address,1\" form:\"address\" json:\"address\" query:\"address\"`\n}\n\nfunc NewHttpConnection() *HttpConnection {\n\treturn &HttpConnection{}\n}\n\nfunc (p *HttpConnection) InitDefault() {\n}\n\nfunc (p *HttpConnection) GetAddress() (v string) {\n\treturn p.Address\n}\n\nvar fieldIDToName_HttpConnection = map[int16]string{\n\t1: \"address\",\n}\n\nfunc (p *HttpConnection) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_HttpConnection[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *HttpConnection) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Address = _field\n\treturn nil\n}\n\nfunc (p *HttpConnection) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"HttpConnection\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *HttpConnection) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"address\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Address); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *HttpConnection) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"HttpConnection(%+v)\", *p)\n\n}\n\ntype RerankConfig struct {\n\tType           RerankType      `thrift:\"type,1\" form:\"type\" json:\"type\" query:\"type\"`\n\tVikingdbConfig *VikingDBConfig `thrift:\"vikingdb_config,2\" form:\"vikingdb_config\" json:\"vikingdb_config\" query:\"vikingdb_config\"`\n}\n\nfunc NewRerankConfig() *RerankConfig {\n\treturn &RerankConfig{}\n}\n\nfunc (p *RerankConfig) InitDefault() {\n}\n\nfunc (p *RerankConfig) GetType() (v RerankType) {\n\treturn p.Type\n}\n\nvar RerankConfig_VikingdbConfig_DEFAULT *VikingDBConfig\n\nfunc (p *RerankConfig) GetVikingdbConfig() (v *VikingDBConfig) {\n\tif !p.IsSetVikingdbConfig() {\n\t\treturn RerankConfig_VikingdbConfig_DEFAULT\n\t}\n\treturn p.VikingdbConfig\n}\n\nvar fieldIDToName_RerankConfig = map[int16]string{\n\t1: \"type\",\n\t2: \"vikingdb_config\",\n}\n\nfunc (p *RerankConfig) IsSetVikingdbConfig() bool {\n\treturn p.VikingdbConfig != nil\n}\n\nfunc (p *RerankConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RerankConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *RerankConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field RerankType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = RerankType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *RerankConfig) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewVikingDBConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.VikingdbConfig = _field\n\treturn nil\n}\n\nfunc (p *RerankConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RerankConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RerankConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RerankConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"vikingdb_config\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.VikingdbConfig.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *RerankConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RerankConfig(%+v)\", *p)\n\n}\n\ntype VikingDBConfig struct {\n\tAk     string `thrift:\"ak,1\" form:\"ak\" json:\"ak\" query:\"ak\"`\n\tSk     string `thrift:\"sk,2\" form:\"sk\" json:\"sk\" query:\"sk\"`\n\tHost   string `thrift:\"host,3\" form:\"host\" json:\"host\" query:\"host\"`\n\tRegion string `thrift:\"region,4\" form:\"region\" json:\"region\" query:\"region\"`\n\tModel  string `thrift:\"model,5\" form:\"model\" json:\"model\" query:\"model\"`\n}\n\nfunc NewVikingDBConfig() *VikingDBConfig {\n\treturn &VikingDBConfig{}\n}\n\nfunc (p *VikingDBConfig) InitDefault() {\n}\n\nfunc (p *VikingDBConfig) GetAk() (v string) {\n\treturn p.Ak\n}\n\nfunc (p *VikingDBConfig) GetSk() (v string) {\n\treturn p.Sk\n}\n\nfunc (p *VikingDBConfig) GetHost() (v string) {\n\treturn p.Host\n}\n\nfunc (p *VikingDBConfig) GetRegion() (v string) {\n\treturn p.Region\n}\n\nfunc (p *VikingDBConfig) GetModel() (v string) {\n\treturn p.Model\n}\n\nvar fieldIDToName_VikingDBConfig = map[int16]string{\n\t1: \"ak\",\n\t2: \"sk\",\n\t3: \"host\",\n\t4: \"region\",\n\t5: \"model\",\n}\n\nfunc (p *VikingDBConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_VikingDBConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *VikingDBConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Ak = _field\n\treturn nil\n}\nfunc (p *VikingDBConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Sk = _field\n\treturn nil\n}\nfunc (p *VikingDBConfig) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Host = _field\n\treturn nil\n}\nfunc (p *VikingDBConfig) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Region = _field\n\treturn nil\n}\nfunc (p *VikingDBConfig) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Model = _field\n\treturn nil\n}\n\nfunc (p *VikingDBConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"VikingDBConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *VikingDBConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ak\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Ak); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *VikingDBConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sk\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Sk); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *VikingDBConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"host\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Host); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *VikingDBConfig) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"region\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Region); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *VikingDBConfig) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Model); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *VikingDBConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"VikingDBConfig(%+v)\", *p)\n\n}\n\ntype OCRConfig struct {\n\tType            OCRType `thrift:\"type,1\" form:\"type\" json:\"type\" query:\"type\"`\n\tVolcengineAk    string  `thrift:\"volcengine_ak,2\" form:\"volcengine_ak\" json:\"volcengine_ak\" query:\"volcengine_ak\"`\n\tVolcengineSk    string  `thrift:\"volcengine_sk,3\" form:\"volcengine_sk\" json:\"volcengine_sk\" query:\"volcengine_sk\"`\n\tPaddleocrAPIURL string  `thrift:\"paddleocr_api_url,4\" form:\"paddleocr_api_url\" json:\"paddleocr_api_url\" query:\"paddleocr_api_url\"`\n}\n\nfunc NewOCRConfig() *OCRConfig {\n\treturn &OCRConfig{}\n}\n\nfunc (p *OCRConfig) InitDefault() {\n}\n\nfunc (p *OCRConfig) GetType() (v OCRType) {\n\treturn p.Type\n}\n\nfunc (p *OCRConfig) GetVolcengineAk() (v string) {\n\treturn p.VolcengineAk\n}\n\nfunc (p *OCRConfig) GetVolcengineSk() (v string) {\n\treturn p.VolcengineSk\n}\n\nfunc (p *OCRConfig) GetPaddleocrAPIURL() (v string) {\n\treturn p.PaddleocrAPIURL\n}\n\nvar fieldIDToName_OCRConfig = map[int16]string{\n\t1: \"type\",\n\t2: \"volcengine_ak\",\n\t3: \"volcengine_sk\",\n\t4: \"paddleocr_api_url\",\n}\n\nfunc (p *OCRConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OCRConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OCRConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field OCRType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = OCRType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *OCRConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VolcengineAk = _field\n\treturn nil\n}\nfunc (p *OCRConfig) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VolcengineSk = _field\n\treturn nil\n}\nfunc (p *OCRConfig) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PaddleocrAPIURL = _field\n\treturn nil\n}\n\nfunc (p *OCRConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OCRConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OCRConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OCRConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"volcengine_ak\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VolcengineAk); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OCRConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"volcengine_sk\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VolcengineSk); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *OCRConfig) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"paddleocr_api_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PaddleocrAPIURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *OCRConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OCRConfig(%+v)\", *p)\n\n}\n\ntype ParserConfig struct {\n\tType                     ParserType `thrift:\"type,1\" form:\"type\" json:\"type\" query:\"type\"`\n\tPaddleocrStructureAPIURL string     `thrift:\"paddleocr_structure_api_url,2\" form:\"paddleocr_structure_api_url\" json:\"paddleocr_structure_api_url\" query:\"paddleocr_structure_api_url\"`\n}\n\nfunc NewParserConfig() *ParserConfig {\n\treturn &ParserConfig{}\n}\n\nfunc (p *ParserConfig) InitDefault() {\n}\n\nfunc (p *ParserConfig) GetType() (v ParserType) {\n\treturn p.Type\n}\n\nfunc (p *ParserConfig) GetPaddleocrStructureAPIURL() (v string) {\n\treturn p.PaddleocrStructureAPIURL\n}\n\nvar fieldIDToName_ParserConfig = map[int16]string{\n\t1: \"type\",\n\t2: \"paddleocr_structure_api_url\",\n}\n\nfunc (p *ParserConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ParserConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ParserConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field ParserType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ParserType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ParserConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PaddleocrStructureAPIURL = _field\n\treturn nil\n}\n\nfunc (p *ParserConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ParserConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ParserConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ParserConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"paddleocr_structure_api_url\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PaddleocrStructureAPIURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ParserConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ParserConfig(%+v)\", *p)\n\n}\n\ntype ConfigService interface {\n\tGetBasicConfiguration(ctx context.Context, req *GetBasicConfigurationReq) (r *GetBasicConfigurationResp, err error)\n\n\tSaveBasicConfiguration(ctx context.Context, req *SaveBasicConfigurationReq) (r *SaveBasicConfigurationResp, err error)\n\n\tGetKnowledgeConfig(ctx context.Context, req *GetKnowledgeConfigReq) (r *GetKnowledgeConfigResp, err error)\n\n\tUpdateKnowledgeConfig(ctx context.Context, req *UpdateKnowledgeConfigReq) (r *UpdateKnowledgeConfigResp, err error)\n\n\tGetModelList(ctx context.Context, req *GetModelListReq) (r *GetModelListResp, err error)\n\n\tCreateModel(ctx context.Context, req *CreateModelReq) (r *CreateModelResp, err error)\n\n\tDeleteModel(ctx context.Context, req *DeleteModelReq) (r *DeleteModelResp, err error)\n}\n\ntype ConfigServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewConfigServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *ConfigServiceClient {\n\treturn &ConfigServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewConfigServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *ConfigServiceClient {\n\treturn &ConfigServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewConfigServiceClient(c thrift.TClient) *ConfigServiceClient {\n\treturn &ConfigServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *ConfigServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *ConfigServiceClient) GetBasicConfiguration(ctx context.Context, req *GetBasicConfigurationReq) (r *GetBasicConfigurationResp, err error) {\n\tvar _args ConfigServiceGetBasicConfigurationArgs\n\t_args.Req = req\n\tvar _result ConfigServiceGetBasicConfigurationResult\n\tif err = p.Client_().Call(ctx, \"GetBasicConfiguration\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConfigServiceClient) SaveBasicConfiguration(ctx context.Context, req *SaveBasicConfigurationReq) (r *SaveBasicConfigurationResp, err error) {\n\tvar _args ConfigServiceSaveBasicConfigurationArgs\n\t_args.Req = req\n\tvar _result ConfigServiceSaveBasicConfigurationResult\n\tif err = p.Client_().Call(ctx, \"SaveBasicConfiguration\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConfigServiceClient) GetKnowledgeConfig(ctx context.Context, req *GetKnowledgeConfigReq) (r *GetKnowledgeConfigResp, err error) {\n\tvar _args ConfigServiceGetKnowledgeConfigArgs\n\t_args.Req = req\n\tvar _result ConfigServiceGetKnowledgeConfigResult\n\tif err = p.Client_().Call(ctx, \"GetKnowledgeConfig\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConfigServiceClient) UpdateKnowledgeConfig(ctx context.Context, req *UpdateKnowledgeConfigReq) (r *UpdateKnowledgeConfigResp, err error) {\n\tvar _args ConfigServiceUpdateKnowledgeConfigArgs\n\t_args.Req = req\n\tvar _result ConfigServiceUpdateKnowledgeConfigResult\n\tif err = p.Client_().Call(ctx, \"UpdateKnowledgeConfig\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConfigServiceClient) GetModelList(ctx context.Context, req *GetModelListReq) (r *GetModelListResp, err error) {\n\tvar _args ConfigServiceGetModelListArgs\n\t_args.Req = req\n\tvar _result ConfigServiceGetModelListResult\n\tif err = p.Client_().Call(ctx, \"GetModelList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConfigServiceClient) CreateModel(ctx context.Context, req *CreateModelReq) (r *CreateModelResp, err error) {\n\tvar _args ConfigServiceCreateModelArgs\n\t_args.Req = req\n\tvar _result ConfigServiceCreateModelResult\n\tif err = p.Client_().Call(ctx, \"CreateModel\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConfigServiceClient) DeleteModel(ctx context.Context, req *DeleteModelReq) (r *DeleteModelResp, err error) {\n\tvar _args ConfigServiceDeleteModelArgs\n\t_args.Req = req\n\tvar _result ConfigServiceDeleteModelResult\n\tif err = p.Client_().Call(ctx, \"DeleteModel\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype ConfigServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      ConfigService\n}\n\nfunc (p *ConfigServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *ConfigServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *ConfigServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewConfigServiceProcessor(handler ConfigService) *ConfigServiceProcessor {\n\tself := &ConfigServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"GetBasicConfiguration\", &configServiceProcessorGetBasicConfiguration{handler: handler})\n\tself.AddToProcessorMap(\"SaveBasicConfiguration\", &configServiceProcessorSaveBasicConfiguration{handler: handler})\n\tself.AddToProcessorMap(\"GetKnowledgeConfig\", &configServiceProcessorGetKnowledgeConfig{handler: handler})\n\tself.AddToProcessorMap(\"UpdateKnowledgeConfig\", &configServiceProcessorUpdateKnowledgeConfig{handler: handler})\n\tself.AddToProcessorMap(\"GetModelList\", &configServiceProcessorGetModelList{handler: handler})\n\tself.AddToProcessorMap(\"CreateModel\", &configServiceProcessorCreateModel{handler: handler})\n\tself.AddToProcessorMap(\"DeleteModel\", &configServiceProcessorDeleteModel{handler: handler})\n\treturn self\n}\nfunc (p *ConfigServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype configServiceProcessorGetBasicConfiguration struct {\n\thandler ConfigService\n}\n\nfunc (p *configServiceProcessorGetBasicConfiguration) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConfigServiceGetBasicConfigurationArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetBasicConfiguration\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConfigServiceGetBasicConfigurationResult{}\n\tvar retval *GetBasicConfigurationResp\n\tif retval, err2 = p.handler.GetBasicConfiguration(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetBasicConfiguration: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetBasicConfiguration\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetBasicConfiguration\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype configServiceProcessorSaveBasicConfiguration struct {\n\thandler ConfigService\n}\n\nfunc (p *configServiceProcessorSaveBasicConfiguration) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConfigServiceSaveBasicConfigurationArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"SaveBasicConfiguration\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConfigServiceSaveBasicConfigurationResult{}\n\tvar retval *SaveBasicConfigurationResp\n\tif retval, err2 = p.handler.SaveBasicConfiguration(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing SaveBasicConfiguration: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"SaveBasicConfiguration\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"SaveBasicConfiguration\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype configServiceProcessorGetKnowledgeConfig struct {\n\thandler ConfigService\n}\n\nfunc (p *configServiceProcessorGetKnowledgeConfig) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConfigServiceGetKnowledgeConfigArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetKnowledgeConfig\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConfigServiceGetKnowledgeConfigResult{}\n\tvar retval *GetKnowledgeConfigResp\n\tif retval, err2 = p.handler.GetKnowledgeConfig(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetKnowledgeConfig: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetKnowledgeConfig\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetKnowledgeConfig\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype configServiceProcessorUpdateKnowledgeConfig struct {\n\thandler ConfigService\n}\n\nfunc (p *configServiceProcessorUpdateKnowledgeConfig) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConfigServiceUpdateKnowledgeConfigArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateKnowledgeConfig\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConfigServiceUpdateKnowledgeConfigResult{}\n\tvar retval *UpdateKnowledgeConfigResp\n\tif retval, err2 = p.handler.UpdateKnowledgeConfig(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateKnowledgeConfig: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateKnowledgeConfig\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateKnowledgeConfig\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype configServiceProcessorGetModelList struct {\n\thandler ConfigService\n}\n\nfunc (p *configServiceProcessorGetModelList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConfigServiceGetModelListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetModelList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConfigServiceGetModelListResult{}\n\tvar retval *GetModelListResp\n\tif retval, err2 = p.handler.GetModelList(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetModelList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetModelList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetModelList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype configServiceProcessorCreateModel struct {\n\thandler ConfigService\n}\n\nfunc (p *configServiceProcessorCreateModel) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConfigServiceCreateModelArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateModel\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConfigServiceCreateModelResult{}\n\tvar retval *CreateModelResp\n\tif retval, err2 = p.handler.CreateModel(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateModel: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateModel\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateModel\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype configServiceProcessorDeleteModel struct {\n\thandler ConfigService\n}\n\nfunc (p *configServiceProcessorDeleteModel) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConfigServiceDeleteModelArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteModel\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConfigServiceDeleteModelResult{}\n\tvar retval *DeleteModelResp\n\tif retval, err2 = p.handler.DeleteModel(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteModel: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteModel\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteModel\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype ConfigServiceGetBasicConfigurationArgs struct {\n\tReq *GetBasicConfigurationReq `thrift:\"req,1\"`\n}\n\nfunc NewConfigServiceGetBasicConfigurationArgs() *ConfigServiceGetBasicConfigurationArgs {\n\treturn &ConfigServiceGetBasicConfigurationArgs{}\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationArgs) InitDefault() {\n}\n\nvar ConfigServiceGetBasicConfigurationArgs_Req_DEFAULT *GetBasicConfigurationReq\n\nfunc (p *ConfigServiceGetBasicConfigurationArgs) GetReq() (v *GetBasicConfigurationReq) {\n\tif !p.IsSetReq() {\n\t\treturn ConfigServiceGetBasicConfigurationArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ConfigServiceGetBasicConfigurationArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceGetBasicConfigurationArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetBasicConfigurationReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBasicConfiguration_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceGetBasicConfigurationArgs(%+v)\", *p)\n\n}\n\ntype ConfigServiceGetBasicConfigurationResult struct {\n\tSuccess *GetBasicConfigurationResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewConfigServiceGetBasicConfigurationResult() *ConfigServiceGetBasicConfigurationResult {\n\treturn &ConfigServiceGetBasicConfigurationResult{}\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationResult) InitDefault() {\n}\n\nvar ConfigServiceGetBasicConfigurationResult_Success_DEFAULT *GetBasicConfigurationResp\n\nfunc (p *ConfigServiceGetBasicConfigurationResult) GetSuccess() (v *GetBasicConfigurationResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConfigServiceGetBasicConfigurationResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConfigServiceGetBasicConfigurationResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceGetBasicConfigurationResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetBasicConfigurationResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBasicConfiguration_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetBasicConfigurationResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceGetBasicConfigurationResult(%+v)\", *p)\n\n}\n\ntype ConfigServiceSaveBasicConfigurationArgs struct {\n\tReq *SaveBasicConfigurationReq `thrift:\"req,1\"`\n}\n\nfunc NewConfigServiceSaveBasicConfigurationArgs() *ConfigServiceSaveBasicConfigurationArgs {\n\treturn &ConfigServiceSaveBasicConfigurationArgs{}\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationArgs) InitDefault() {\n}\n\nvar ConfigServiceSaveBasicConfigurationArgs_Req_DEFAULT *SaveBasicConfigurationReq\n\nfunc (p *ConfigServiceSaveBasicConfigurationArgs) GetReq() (v *SaveBasicConfigurationReq) {\n\tif !p.IsSetReq() {\n\t\treturn ConfigServiceSaveBasicConfigurationArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ConfigServiceSaveBasicConfigurationArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceSaveBasicConfigurationArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewSaveBasicConfigurationReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveBasicConfiguration_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceSaveBasicConfigurationArgs(%+v)\", *p)\n\n}\n\ntype ConfigServiceSaveBasicConfigurationResult struct {\n\tSuccess *SaveBasicConfigurationResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewConfigServiceSaveBasicConfigurationResult() *ConfigServiceSaveBasicConfigurationResult {\n\treturn &ConfigServiceSaveBasicConfigurationResult{}\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationResult) InitDefault() {\n}\n\nvar ConfigServiceSaveBasicConfigurationResult_Success_DEFAULT *SaveBasicConfigurationResp\n\nfunc (p *ConfigServiceSaveBasicConfigurationResult) GetSuccess() (v *SaveBasicConfigurationResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConfigServiceSaveBasicConfigurationResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConfigServiceSaveBasicConfigurationResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceSaveBasicConfigurationResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewSaveBasicConfigurationResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveBasicConfiguration_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceSaveBasicConfigurationResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceSaveBasicConfigurationResult(%+v)\", *p)\n\n}\n\ntype ConfigServiceGetKnowledgeConfigArgs struct {\n\tReq *GetKnowledgeConfigReq `thrift:\"req,1\"`\n}\n\nfunc NewConfigServiceGetKnowledgeConfigArgs() *ConfigServiceGetKnowledgeConfigArgs {\n\treturn &ConfigServiceGetKnowledgeConfigArgs{}\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigArgs) InitDefault() {\n}\n\nvar ConfigServiceGetKnowledgeConfigArgs_Req_DEFAULT *GetKnowledgeConfigReq\n\nfunc (p *ConfigServiceGetKnowledgeConfigArgs) GetReq() (v *GetKnowledgeConfigReq) {\n\tif !p.IsSetReq() {\n\t\treturn ConfigServiceGetKnowledgeConfigArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ConfigServiceGetKnowledgeConfigArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceGetKnowledgeConfigArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetKnowledgeConfigReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetKnowledgeConfig_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceGetKnowledgeConfigArgs(%+v)\", *p)\n\n}\n\ntype ConfigServiceGetKnowledgeConfigResult struct {\n\tSuccess *GetKnowledgeConfigResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewConfigServiceGetKnowledgeConfigResult() *ConfigServiceGetKnowledgeConfigResult {\n\treturn &ConfigServiceGetKnowledgeConfigResult{}\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigResult) InitDefault() {\n}\n\nvar ConfigServiceGetKnowledgeConfigResult_Success_DEFAULT *GetKnowledgeConfigResp\n\nfunc (p *ConfigServiceGetKnowledgeConfigResult) GetSuccess() (v *GetKnowledgeConfigResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConfigServiceGetKnowledgeConfigResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConfigServiceGetKnowledgeConfigResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceGetKnowledgeConfigResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetKnowledgeConfigResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetKnowledgeConfig_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetKnowledgeConfigResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceGetKnowledgeConfigResult(%+v)\", *p)\n\n}\n\ntype ConfigServiceUpdateKnowledgeConfigArgs struct {\n\tReq *UpdateKnowledgeConfigReq `thrift:\"req,1\"`\n}\n\nfunc NewConfigServiceUpdateKnowledgeConfigArgs() *ConfigServiceUpdateKnowledgeConfigArgs {\n\treturn &ConfigServiceUpdateKnowledgeConfigArgs{}\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigArgs) InitDefault() {\n}\n\nvar ConfigServiceUpdateKnowledgeConfigArgs_Req_DEFAULT *UpdateKnowledgeConfigReq\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigArgs) GetReq() (v *UpdateKnowledgeConfigReq) {\n\tif !p.IsSetReq() {\n\t\treturn ConfigServiceUpdateKnowledgeConfigArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ConfigServiceUpdateKnowledgeConfigArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceUpdateKnowledgeConfigArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateKnowledgeConfigReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateKnowledgeConfig_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceUpdateKnowledgeConfigArgs(%+v)\", *p)\n\n}\n\ntype ConfigServiceUpdateKnowledgeConfigResult struct {\n\tSuccess *UpdateKnowledgeConfigResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewConfigServiceUpdateKnowledgeConfigResult() *ConfigServiceUpdateKnowledgeConfigResult {\n\treturn &ConfigServiceUpdateKnowledgeConfigResult{}\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigResult) InitDefault() {\n}\n\nvar ConfigServiceUpdateKnowledgeConfigResult_Success_DEFAULT *UpdateKnowledgeConfigResp\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigResult) GetSuccess() (v *UpdateKnowledgeConfigResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConfigServiceUpdateKnowledgeConfigResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConfigServiceUpdateKnowledgeConfigResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceUpdateKnowledgeConfigResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateKnowledgeConfigResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateKnowledgeConfig_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceUpdateKnowledgeConfigResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceUpdateKnowledgeConfigResult(%+v)\", *p)\n\n}\n\ntype ConfigServiceGetModelListArgs struct {\n\tReq *GetModelListReq `thrift:\"req,1\"`\n}\n\nfunc NewConfigServiceGetModelListArgs() *ConfigServiceGetModelListArgs {\n\treturn &ConfigServiceGetModelListArgs{}\n}\n\nfunc (p *ConfigServiceGetModelListArgs) InitDefault() {\n}\n\nvar ConfigServiceGetModelListArgs_Req_DEFAULT *GetModelListReq\n\nfunc (p *ConfigServiceGetModelListArgs) GetReq() (v *GetModelListReq) {\n\tif !p.IsSetReq() {\n\t\treturn ConfigServiceGetModelListArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ConfigServiceGetModelListArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ConfigServiceGetModelListArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ConfigServiceGetModelListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceGetModelListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetModelListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetModelListReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceGetModelListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetModelList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetModelListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetModelListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceGetModelListArgs(%+v)\", *p)\n\n}\n\ntype ConfigServiceGetModelListResult struct {\n\tSuccess *GetModelListResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewConfigServiceGetModelListResult() *ConfigServiceGetModelListResult {\n\treturn &ConfigServiceGetModelListResult{}\n}\n\nfunc (p *ConfigServiceGetModelListResult) InitDefault() {\n}\n\nvar ConfigServiceGetModelListResult_Success_DEFAULT *GetModelListResp\n\nfunc (p *ConfigServiceGetModelListResult) GetSuccess() (v *GetModelListResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConfigServiceGetModelListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConfigServiceGetModelListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConfigServiceGetModelListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConfigServiceGetModelListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceGetModelListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetModelListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetModelListResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceGetModelListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetModelList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetModelListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceGetModelListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceGetModelListResult(%+v)\", *p)\n\n}\n\ntype ConfigServiceCreateModelArgs struct {\n\tReq *CreateModelReq `thrift:\"req,1\"`\n}\n\nfunc NewConfigServiceCreateModelArgs() *ConfigServiceCreateModelArgs {\n\treturn &ConfigServiceCreateModelArgs{}\n}\n\nfunc (p *ConfigServiceCreateModelArgs) InitDefault() {\n}\n\nvar ConfigServiceCreateModelArgs_Req_DEFAULT *CreateModelReq\n\nfunc (p *ConfigServiceCreateModelArgs) GetReq() (v *CreateModelReq) {\n\tif !p.IsSetReq() {\n\t\treturn ConfigServiceCreateModelArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ConfigServiceCreateModelArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ConfigServiceCreateModelArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ConfigServiceCreateModelArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceCreateModelArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceCreateModelArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateModelReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceCreateModelArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateModel_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceCreateModelArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceCreateModelArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceCreateModelArgs(%+v)\", *p)\n\n}\n\ntype ConfigServiceCreateModelResult struct {\n\tSuccess *CreateModelResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewConfigServiceCreateModelResult() *ConfigServiceCreateModelResult {\n\treturn &ConfigServiceCreateModelResult{}\n}\n\nfunc (p *ConfigServiceCreateModelResult) InitDefault() {\n}\n\nvar ConfigServiceCreateModelResult_Success_DEFAULT *CreateModelResp\n\nfunc (p *ConfigServiceCreateModelResult) GetSuccess() (v *CreateModelResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConfigServiceCreateModelResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConfigServiceCreateModelResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConfigServiceCreateModelResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConfigServiceCreateModelResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceCreateModelResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceCreateModelResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateModelResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceCreateModelResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateModel_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceCreateModelResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceCreateModelResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceCreateModelResult(%+v)\", *p)\n\n}\n\ntype ConfigServiceDeleteModelArgs struct {\n\tReq *DeleteModelReq `thrift:\"req,1\"`\n}\n\nfunc NewConfigServiceDeleteModelArgs() *ConfigServiceDeleteModelArgs {\n\treturn &ConfigServiceDeleteModelArgs{}\n}\n\nfunc (p *ConfigServiceDeleteModelArgs) InitDefault() {\n}\n\nvar ConfigServiceDeleteModelArgs_Req_DEFAULT *DeleteModelReq\n\nfunc (p *ConfigServiceDeleteModelArgs) GetReq() (v *DeleteModelReq) {\n\tif !p.IsSetReq() {\n\t\treturn ConfigServiceDeleteModelArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ConfigServiceDeleteModelArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ConfigServiceDeleteModelArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ConfigServiceDeleteModelArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceDeleteModelArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceDeleteModelArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteModelReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceDeleteModelArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteModel_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceDeleteModelArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceDeleteModelArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceDeleteModelArgs(%+v)\", *p)\n\n}\n\ntype ConfigServiceDeleteModelResult struct {\n\tSuccess *DeleteModelResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewConfigServiceDeleteModelResult() *ConfigServiceDeleteModelResult {\n\treturn &ConfigServiceDeleteModelResult{}\n}\n\nfunc (p *ConfigServiceDeleteModelResult) InitDefault() {\n}\n\nvar ConfigServiceDeleteModelResult_Success_DEFAULT *DeleteModelResp\n\nfunc (p *ConfigServiceDeleteModelResult) GetSuccess() (v *DeleteModelResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConfigServiceDeleteModelResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConfigServiceDeleteModelResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConfigServiceDeleteModelResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConfigServiceDeleteModelResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConfigServiceDeleteModelResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceDeleteModelResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteModelResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConfigServiceDeleteModelResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteModel_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConfigServiceDeleteModelResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConfigServiceDeleteModelResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConfigServiceDeleteModelResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/app/bot_common/bot_common.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage bot_common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\nconst (\n\tShortcutSendTypeQuery = \"query\"\n\n\tShortcutSendTypePanel = \"panel\"\n)\n\ntype CacheType int64\n\nconst (\n\t// 缓存关闭\n\tCacheType_CacheClosed CacheType = 0\n\t// 前缀缓存\n\tCacheType_PrefixCache CacheType = 1\n)\n\nfunc (p CacheType) String() string {\n\tswitch p {\n\tcase CacheType_CacheClosed:\n\t\treturn \"CacheClosed\"\n\tcase CacheType_PrefixCache:\n\t\treturn \"PrefixCache\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc CacheTypeFromString(s string) (CacheType, error) {\n\tswitch s {\n\tcase \"CacheClosed\":\n\t\treturn CacheType_CacheClosed, nil\n\tcase \"PrefixCache\":\n\t\treturn CacheType_PrefixCache, nil\n\t}\n\treturn CacheType(0), fmt.Errorf(\"not a valid CacheType string\")\n}\n\nfunc CacheTypePtr(v CacheType) *CacheType { return &v }\nfunc (p *CacheType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = CacheType(result.Int64)\n\treturn\n}\n\nfunc (p *CacheType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ModelStyle int64\n\nconst (\n\tModelStyle_Custom   ModelStyle = 0\n\tModelStyle_Creative ModelStyle = 1\n\tModelStyle_Balance  ModelStyle = 2\n\tModelStyle_Precise  ModelStyle = 3\n)\n\nfunc (p ModelStyle) String() string {\n\tswitch p {\n\tcase ModelStyle_Custom:\n\t\treturn \"Custom\"\n\tcase ModelStyle_Creative:\n\t\treturn \"Creative\"\n\tcase ModelStyle_Balance:\n\t\treturn \"Balance\"\n\tcase ModelStyle_Precise:\n\t\treturn \"Precise\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ModelStyleFromString(s string) (ModelStyle, error) {\n\tswitch s {\n\tcase \"Custom\":\n\t\treturn ModelStyle_Custom, nil\n\tcase \"Creative\":\n\t\treturn ModelStyle_Creative, nil\n\tcase \"Balance\":\n\t\treturn ModelStyle_Balance, nil\n\tcase \"Precise\":\n\t\treturn ModelStyle_Precise, nil\n\t}\n\treturn ModelStyle(0), fmt.Errorf(\"not a valid ModelStyle string\")\n}\n\nfunc ModelStylePtr(v ModelStyle) *ModelStyle { return &v }\nfunc (p *ModelStyle) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ModelStyle(result.Int64)\n\treturn\n}\n\nfunc (p *ModelStyle) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ModelResponseFormat int64\n\nconst (\n\tModelResponseFormat_Text     ModelResponseFormat = 0\n\tModelResponseFormat_Markdown ModelResponseFormat = 1\n\tModelResponseFormat_JSON     ModelResponseFormat = 2\n)\n\nfunc (p ModelResponseFormat) String() string {\n\tswitch p {\n\tcase ModelResponseFormat_Text:\n\t\treturn \"Text\"\n\tcase ModelResponseFormat_Markdown:\n\t\treturn \"Markdown\"\n\tcase ModelResponseFormat_JSON:\n\t\treturn \"JSON\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ModelResponseFormatFromString(s string) (ModelResponseFormat, error) {\n\tswitch s {\n\tcase \"Text\":\n\t\treturn ModelResponseFormat_Text, nil\n\tcase \"Markdown\":\n\t\treturn ModelResponseFormat_Markdown, nil\n\tcase \"JSON\":\n\t\treturn ModelResponseFormat_JSON, nil\n\t}\n\treturn ModelResponseFormat(0), fmt.Errorf(\"not a valid ModelResponseFormat string\")\n}\n\nfunc ModelResponseFormatPtr(v ModelResponseFormat) *ModelResponseFormat { return &v }\nfunc (p *ModelResponseFormat) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ModelResponseFormat(result.Int64)\n\treturn\n}\n\nfunc (p *ModelResponseFormat) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// The type of transmission allowed by the context\ntype ContextMode int64\n\nconst (\n\tContextMode_Chat           ContextMode = 0\n\tContextMode_FunctionCall_1 ContextMode = 1\n\tContextMode_FunctionCall_2 ContextMode = 2\n\tContextMode_FunctionCall_3 ContextMode = 3\n)\n\nfunc (p ContextMode) String() string {\n\tswitch p {\n\tcase ContextMode_Chat:\n\t\treturn \"Chat\"\n\tcase ContextMode_FunctionCall_1:\n\t\treturn \"FunctionCall_1\"\n\tcase ContextMode_FunctionCall_2:\n\t\treturn \"FunctionCall_2\"\n\tcase ContextMode_FunctionCall_3:\n\t\treturn \"FunctionCall_3\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ContextModeFromString(s string) (ContextMode, error) {\n\tswitch s {\n\tcase \"Chat\":\n\t\treturn ContextMode_Chat, nil\n\tcase \"FunctionCall_1\":\n\t\treturn ContextMode_FunctionCall_1, nil\n\tcase \"FunctionCall_2\":\n\t\treturn ContextMode_FunctionCall_2, nil\n\tcase \"FunctionCall_3\":\n\t\treturn ContextMode_FunctionCall_3, nil\n\t}\n\treturn ContextMode(0), fmt.Errorf(\"not a valid ContextMode string\")\n}\n\nfunc ContextModePtr(v ContextMode) *ContextMode { return &v }\nfunc (p *ContextMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ContextMode(result.Int64)\n\treturn\n}\n\nfunc (p *ContextMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ModelFuncConfigType int64\n\nconst (\n\tModelFuncConfigType_Plugin                ModelFuncConfigType = 1\n\tModelFuncConfigType_Workflow              ModelFuncConfigType = 2\n\tModelFuncConfigType_ImageFlow             ModelFuncConfigType = 3\n\tModelFuncConfigType_Trigger               ModelFuncConfigType = 4\n\tModelFuncConfigType_KnowledgeText         ModelFuncConfigType = 5\n\tModelFuncConfigType_KnowledgeTable        ModelFuncConfigType = 6\n\tModelFuncConfigType_KnowledgeAutoCall     ModelFuncConfigType = 7\n\tModelFuncConfigType_KnowledgeOnDemandCall ModelFuncConfigType = 8\n\tModelFuncConfigType_Variable              ModelFuncConfigType = 9\n\tModelFuncConfigType_Database              ModelFuncConfigType = 10\n\tModelFuncConfigType_LongTermMemory        ModelFuncConfigType = 11\n\tModelFuncConfigType_FileBox               ModelFuncConfigType = 12\n\tModelFuncConfigType_Onboarding            ModelFuncConfigType = 13\n\tModelFuncConfigType_Suggestion            ModelFuncConfigType = 14\n\tModelFuncConfigType_ShortcutCommand       ModelFuncConfigType = 15\n\tModelFuncConfigType_BackGroundImage       ModelFuncConfigType = 16\n\tModelFuncConfigType_TTS                   ModelFuncConfigType = 17\n\tModelFuncConfigType_MultiAgentRecognize   ModelFuncConfigType = 18\n\tModelFuncConfigType_KnowledgePhoto        ModelFuncConfigType = 19\n\tModelFuncConfigType_HookInfo              ModelFuncConfigType = 20\n)\n\nfunc (p ModelFuncConfigType) String() string {\n\tswitch p {\n\tcase ModelFuncConfigType_Plugin:\n\t\treturn \"Plugin\"\n\tcase ModelFuncConfigType_Workflow:\n\t\treturn \"Workflow\"\n\tcase ModelFuncConfigType_ImageFlow:\n\t\treturn \"ImageFlow\"\n\tcase ModelFuncConfigType_Trigger:\n\t\treturn \"Trigger\"\n\tcase ModelFuncConfigType_KnowledgeText:\n\t\treturn \"KnowledgeText\"\n\tcase ModelFuncConfigType_KnowledgeTable:\n\t\treturn \"KnowledgeTable\"\n\tcase ModelFuncConfigType_KnowledgeAutoCall:\n\t\treturn \"KnowledgeAutoCall\"\n\tcase ModelFuncConfigType_KnowledgeOnDemandCall:\n\t\treturn \"KnowledgeOnDemandCall\"\n\tcase ModelFuncConfigType_Variable:\n\t\treturn \"Variable\"\n\tcase ModelFuncConfigType_Database:\n\t\treturn \"Database\"\n\tcase ModelFuncConfigType_LongTermMemory:\n\t\treturn \"LongTermMemory\"\n\tcase ModelFuncConfigType_FileBox:\n\t\treturn \"FileBox\"\n\tcase ModelFuncConfigType_Onboarding:\n\t\treturn \"Onboarding\"\n\tcase ModelFuncConfigType_Suggestion:\n\t\treturn \"Suggestion\"\n\tcase ModelFuncConfigType_ShortcutCommand:\n\t\treturn \"ShortcutCommand\"\n\tcase ModelFuncConfigType_BackGroundImage:\n\t\treturn \"BackGroundImage\"\n\tcase ModelFuncConfigType_TTS:\n\t\treturn \"TTS\"\n\tcase ModelFuncConfigType_MultiAgentRecognize:\n\t\treturn \"MultiAgentRecognize\"\n\tcase ModelFuncConfigType_KnowledgePhoto:\n\t\treturn \"KnowledgePhoto\"\n\tcase ModelFuncConfigType_HookInfo:\n\t\treturn \"HookInfo\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ModelFuncConfigTypeFromString(s string) (ModelFuncConfigType, error) {\n\tswitch s {\n\tcase \"Plugin\":\n\t\treturn ModelFuncConfigType_Plugin, nil\n\tcase \"Workflow\":\n\t\treturn ModelFuncConfigType_Workflow, nil\n\tcase \"ImageFlow\":\n\t\treturn ModelFuncConfigType_ImageFlow, nil\n\tcase \"Trigger\":\n\t\treturn ModelFuncConfigType_Trigger, nil\n\tcase \"KnowledgeText\":\n\t\treturn ModelFuncConfigType_KnowledgeText, nil\n\tcase \"KnowledgeTable\":\n\t\treturn ModelFuncConfigType_KnowledgeTable, nil\n\tcase \"KnowledgeAutoCall\":\n\t\treturn ModelFuncConfigType_KnowledgeAutoCall, nil\n\tcase \"KnowledgeOnDemandCall\":\n\t\treturn ModelFuncConfigType_KnowledgeOnDemandCall, nil\n\tcase \"Variable\":\n\t\treturn ModelFuncConfigType_Variable, nil\n\tcase \"Database\":\n\t\treturn ModelFuncConfigType_Database, nil\n\tcase \"LongTermMemory\":\n\t\treturn ModelFuncConfigType_LongTermMemory, nil\n\tcase \"FileBox\":\n\t\treturn ModelFuncConfigType_FileBox, nil\n\tcase \"Onboarding\":\n\t\treturn ModelFuncConfigType_Onboarding, nil\n\tcase \"Suggestion\":\n\t\treturn ModelFuncConfigType_Suggestion, nil\n\tcase \"ShortcutCommand\":\n\t\treturn ModelFuncConfigType_ShortcutCommand, nil\n\tcase \"BackGroundImage\":\n\t\treturn ModelFuncConfigType_BackGroundImage, nil\n\tcase \"TTS\":\n\t\treturn ModelFuncConfigType_TTS, nil\n\tcase \"MultiAgentRecognize\":\n\t\treturn ModelFuncConfigType_MultiAgentRecognize, nil\n\tcase \"KnowledgePhoto\":\n\t\treturn ModelFuncConfigType_KnowledgePhoto, nil\n\tcase \"HookInfo\":\n\t\treturn ModelFuncConfigType_HookInfo, nil\n\t}\n\treturn ModelFuncConfigType(0), fmt.Errorf(\"not a valid ModelFuncConfigType string\")\n}\n\nfunc ModelFuncConfigTypePtr(v ModelFuncConfigType) *ModelFuncConfigType { return &v }\nfunc (p *ModelFuncConfigType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ModelFuncConfigType(result.Int64)\n\treturn\n}\n\nfunc (p *ModelFuncConfigType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ModelFuncConfigStatus int64\n\nconst (\n\tModelFuncConfigStatus_FullSupport ModelFuncConfigStatus = 0\n\tModelFuncConfigStatus_PoorSupport ModelFuncConfigStatus = 1\n\tModelFuncConfigStatus_NotSupport  ModelFuncConfigStatus = 2\n)\n\nfunc (p ModelFuncConfigStatus) String() string {\n\tswitch p {\n\tcase ModelFuncConfigStatus_FullSupport:\n\t\treturn \"FullSupport\"\n\tcase ModelFuncConfigStatus_PoorSupport:\n\t\treturn \"PoorSupport\"\n\tcase ModelFuncConfigStatus_NotSupport:\n\t\treturn \"NotSupport\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ModelFuncConfigStatusFromString(s string) (ModelFuncConfigStatus, error) {\n\tswitch s {\n\tcase \"FullSupport\":\n\t\treturn ModelFuncConfigStatus_FullSupport, nil\n\tcase \"PoorSupport\":\n\t\treturn ModelFuncConfigStatus_PoorSupport, nil\n\tcase \"NotSupport\":\n\t\treturn ModelFuncConfigStatus_NotSupport, nil\n\t}\n\treturn ModelFuncConfigStatus(0), fmt.Errorf(\"not a valid ModelFuncConfigStatus string\")\n}\n\nfunc ModelFuncConfigStatusPtr(v ModelFuncConfigStatus) *ModelFuncConfigStatus { return &v }\nfunc (p *ModelFuncConfigStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ModelFuncConfigStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ModelFuncConfigStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginFrom int64\n\nconst (\n\tPluginFrom_Default  PluginFrom = 0\n\tPluginFrom_FromSaas PluginFrom = 1\n)\n\nfunc (p PluginFrom) String() string {\n\tswitch p {\n\tcase PluginFrom_Default:\n\t\treturn \"Default\"\n\tcase PluginFrom_FromSaas:\n\t\treturn \"FromSaas\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginFromFromString(s string) (PluginFrom, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn PluginFrom_Default, nil\n\tcase \"FromSaas\":\n\t\treturn PluginFrom_FromSaas, nil\n\t}\n\treturn PluginFrom(0), fmt.Errorf(\"not a valid PluginFrom string\")\n}\n\nfunc PluginFromPtr(v PluginFrom) *PluginFrom { return &v }\nfunc (p *PluginFrom) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginFrom(result.Int64)\n\treturn\n}\n\nfunc (p *PluginFrom) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype WorkflowMode int64\n\nconst (\n\tWorkflowMode_Workflow  WorkflowMode = 0\n\tWorkflowMode_Imageflow WorkflowMode = 1\n\tWorkflowMode_SceneFlow WorkflowMode = 2\n\tWorkflowMode_ChatFlow  WorkflowMode = 3\n\tWorkflowMode_All       WorkflowMode = 100\n)\n\nfunc (p WorkflowMode) String() string {\n\tswitch p {\n\tcase WorkflowMode_Workflow:\n\t\treturn \"Workflow\"\n\tcase WorkflowMode_Imageflow:\n\t\treturn \"Imageflow\"\n\tcase WorkflowMode_SceneFlow:\n\t\treturn \"SceneFlow\"\n\tcase WorkflowMode_ChatFlow:\n\t\treturn \"ChatFlow\"\n\tcase WorkflowMode_All:\n\t\treturn \"All\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc WorkflowModeFromString(s string) (WorkflowMode, error) {\n\tswitch s {\n\tcase \"Workflow\":\n\t\treturn WorkflowMode_Workflow, nil\n\tcase \"Imageflow\":\n\t\treturn WorkflowMode_Imageflow, nil\n\tcase \"SceneFlow\":\n\t\treturn WorkflowMode_SceneFlow, nil\n\tcase \"ChatFlow\":\n\t\treturn WorkflowMode_ChatFlow, nil\n\tcase \"All\":\n\t\treturn WorkflowMode_All, nil\n\t}\n\treturn WorkflowMode(0), fmt.Errorf(\"not a valid WorkflowMode string\")\n}\n\nfunc WorkflowModePtr(v WorkflowMode) *WorkflowMode { return &v }\nfunc (p *WorkflowMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = WorkflowMode(result.Int64)\n\treturn\n}\n\nfunc (p *WorkflowMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// onboarding content generation mode\ntype OnboardingMode int64\n\nconst (\n\t// No.\n\tOnboardingMode_NO_NEED OnboardingMode = 1\n\t// Manually specify content (multi-language support is covered by LLM)\n\tOnboardingMode_USE_MANUAL OnboardingMode = 2\n\t// Generated by LLM\n\tOnboardingMode_USE_LLM OnboardingMode = 3\n)\n\nfunc (p OnboardingMode) String() string {\n\tswitch p {\n\tcase OnboardingMode_NO_NEED:\n\t\treturn \"NO_NEED\"\n\tcase OnboardingMode_USE_MANUAL:\n\t\treturn \"USE_MANUAL\"\n\tcase OnboardingMode_USE_LLM:\n\t\treturn \"USE_LLM\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OnboardingModeFromString(s string) (OnboardingMode, error) {\n\tswitch s {\n\tcase \"NO_NEED\":\n\t\treturn OnboardingMode_NO_NEED, nil\n\tcase \"USE_MANUAL\":\n\t\treturn OnboardingMode_USE_MANUAL, nil\n\tcase \"USE_LLM\":\n\t\treturn OnboardingMode_USE_LLM, nil\n\t}\n\treturn OnboardingMode(0), fmt.Errorf(\"not a valid OnboardingMode string\")\n}\n\nfunc OnboardingModePtr(v OnboardingMode) *OnboardingMode { return &v }\nfunc (p *OnboardingMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OnboardingMode(result.Int64)\n\treturn\n}\n\nfunc (p *OnboardingMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SuggestedQuestionsShowMode int64\n\nconst (\n\tSuggestedQuestionsShowMode_Random SuggestedQuestionsShowMode = 0\n\tSuggestedQuestionsShowMode_All    SuggestedQuestionsShowMode = 1\n)\n\nfunc (p SuggestedQuestionsShowMode) String() string {\n\tswitch p {\n\tcase SuggestedQuestionsShowMode_Random:\n\t\treturn \"Random\"\n\tcase SuggestedQuestionsShowMode_All:\n\t\treturn \"All\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SuggestedQuestionsShowModeFromString(s string) (SuggestedQuestionsShowMode, error) {\n\tswitch s {\n\tcase \"Random\":\n\t\treturn SuggestedQuestionsShowMode_Random, nil\n\tcase \"All\":\n\t\treturn SuggestedQuestionsShowMode_All, nil\n\t}\n\treturn SuggestedQuestionsShowMode(0), fmt.Errorf(\"not a valid SuggestedQuestionsShowMode string\")\n}\n\nfunc SuggestedQuestionsShowModePtr(v SuggestedQuestionsShowMode) *SuggestedQuestionsShowMode {\n\treturn &v\n}\nfunc (p *SuggestedQuestionsShowMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SuggestedQuestionsShowMode(result.Int64)\n\treturn\n}\n\nfunc (p *SuggestedQuestionsShowMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SuggestReplyMode int64\n\nconst (\n\tSuggestReplyMode_System  SuggestReplyMode = 0\n\tSuggestReplyMode_Custom  SuggestReplyMode = 1\n\tSuggestReplyMode_Disable SuggestReplyMode = 2\n\t// Agent specific, multiplexed source Bot configuration\n\tSuggestReplyMode_OriBot SuggestReplyMode = 3\n)\n\nfunc (p SuggestReplyMode) String() string {\n\tswitch p {\n\tcase SuggestReplyMode_System:\n\t\treturn \"System\"\n\tcase SuggestReplyMode_Custom:\n\t\treturn \"Custom\"\n\tcase SuggestReplyMode_Disable:\n\t\treturn \"Disable\"\n\tcase SuggestReplyMode_OriBot:\n\t\treturn \"OriBot\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SuggestReplyModeFromString(s string) (SuggestReplyMode, error) {\n\tswitch s {\n\tcase \"System\":\n\t\treturn SuggestReplyMode_System, nil\n\tcase \"Custom\":\n\t\treturn SuggestReplyMode_Custom, nil\n\tcase \"Disable\":\n\t\treturn SuggestReplyMode_Disable, nil\n\tcase \"OriBot\":\n\t\treturn SuggestReplyMode_OriBot, nil\n\t}\n\treturn SuggestReplyMode(0), fmt.Errorf(\"not a valid SuggestReplyMode string\")\n}\n\nfunc SuggestReplyModePtr(v SuggestReplyMode) *SuggestReplyMode { return &v }\nfunc (p *SuggestReplyMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SuggestReplyMode(result.Int64)\n\treturn\n}\n\nfunc (p *SuggestReplyMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DefaultUserInputType int64\n\nconst (\n\t// Not set\n\tDefaultUserInputType_NotSet DefaultUserInputType = 0\n\t// Text\n\tDefaultUserInputType_Text DefaultUserInputType = 1\n\t// Hold down the voice\n\tDefaultUserInputType_Voice DefaultUserInputType = 2\n\t// voice call\n\tDefaultUserInputType_Call DefaultUserInputType = 3\n)\n\nfunc (p DefaultUserInputType) String() string {\n\tswitch p {\n\tcase DefaultUserInputType_NotSet:\n\t\treturn \"NotSet\"\n\tcase DefaultUserInputType_Text:\n\t\treturn \"Text\"\n\tcase DefaultUserInputType_Voice:\n\t\treturn \"Voice\"\n\tcase DefaultUserInputType_Call:\n\t\treturn \"Call\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DefaultUserInputTypeFromString(s string) (DefaultUserInputType, error) {\n\tswitch s {\n\tcase \"NotSet\":\n\t\treturn DefaultUserInputType_NotSet, nil\n\tcase \"Text\":\n\t\treturn DefaultUserInputType_Text, nil\n\tcase \"Voice\":\n\t\treturn DefaultUserInputType_Voice, nil\n\tcase \"Call\":\n\t\treturn DefaultUserInputType_Call, nil\n\t}\n\treturn DefaultUserInputType(0), fmt.Errorf(\"not a valid DefaultUserInputType string\")\n}\n\nfunc DefaultUserInputTypePtr(v DefaultUserInputType) *DefaultUserInputType { return &v }\nfunc (p *DefaultUserInputType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DefaultUserInputType(result.Int64)\n\treturn\n}\n\nfunc (p *DefaultUserInputType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// AnswerActions\ntype AnswerActionsMode int64\n\nconst (\n\tAnswerActionsMode_Default   AnswerActionsMode = 1\n\tAnswerActionsMode_Customize AnswerActionsMode = 2\n)\n\nfunc (p AnswerActionsMode) String() string {\n\tswitch p {\n\tcase AnswerActionsMode_Default:\n\t\treturn \"Default\"\n\tcase AnswerActionsMode_Customize:\n\t\treturn \"Customize\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AnswerActionsModeFromString(s string) (AnswerActionsMode, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn AnswerActionsMode_Default, nil\n\tcase \"Customize\":\n\t\treturn AnswerActionsMode_Customize, nil\n\t}\n\treturn AnswerActionsMode(0), fmt.Errorf(\"not a valid AnswerActionsMode string\")\n}\n\nfunc AnswerActionsModePtr(v AnswerActionsMode) *AnswerActionsMode { return &v }\nfunc (p *AnswerActionsMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AnswerActionsMode(result.Int64)\n\treturn\n}\n\nfunc (p *AnswerActionsMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype AnswerActionTriggerType int64\n\nconst (\n\t// Platform preset Trigger action\n\tAnswerActionTriggerType_Direct AnswerActionTriggerType = 1\n\t// Click Action to display the custom H5 page\n\tAnswerActionTriggerType_WebView AnswerActionTriggerType = 2\n\t// Click Action to send a custom user message\n\tAnswerActionTriggerType_SendMessage AnswerActionTriggerType = 3\n)\n\nfunc (p AnswerActionTriggerType) String() string {\n\tswitch p {\n\tcase AnswerActionTriggerType_Direct:\n\t\treturn \"Direct\"\n\tcase AnswerActionTriggerType_WebView:\n\t\treturn \"WebView\"\n\tcase AnswerActionTriggerType_SendMessage:\n\t\treturn \"SendMessage\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AnswerActionTriggerTypeFromString(s string) (AnswerActionTriggerType, error) {\n\tswitch s {\n\tcase \"Direct\":\n\t\treturn AnswerActionTriggerType_Direct, nil\n\tcase \"WebView\":\n\t\treturn AnswerActionTriggerType_WebView, nil\n\tcase \"SendMessage\":\n\t\treturn AnswerActionTriggerType_SendMessage, nil\n\t}\n\treturn AnswerActionTriggerType(0), fmt.Errorf(\"not a valid AnswerActionTriggerType string\")\n}\n\nfunc AnswerActionTriggerTypePtr(v AnswerActionTriggerType) *AnswerActionTriggerType { return &v }\nfunc (p *AnswerActionTriggerType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AnswerActionTriggerType(result.Int64)\n\treturn\n}\n\nfunc (p *AnswerActionTriggerType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SearchStrategy int64\n\nconst (\n\t// semantic search\n\tSearchStrategy_SemanticSearch SearchStrategy = 0\n\t// Hybrid Search\n\tSearchStrategy_HybirdSearch SearchStrategy = 1\n\t// Full Text Search\n\tSearchStrategy_FullTextSearch SearchStrategy = 20\n)\n\nfunc (p SearchStrategy) String() string {\n\tswitch p {\n\tcase SearchStrategy_SemanticSearch:\n\t\treturn \"SemanticSearch\"\n\tcase SearchStrategy_HybirdSearch:\n\t\treturn \"HybirdSearch\"\n\tcase SearchStrategy_FullTextSearch:\n\t\treturn \"FullTextSearch\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SearchStrategyFromString(s string) (SearchStrategy, error) {\n\tswitch s {\n\tcase \"SemanticSearch\":\n\t\treturn SearchStrategy_SemanticSearch, nil\n\tcase \"HybirdSearch\":\n\t\treturn SearchStrategy_HybirdSearch, nil\n\tcase \"FullTextSearch\":\n\t\treturn SearchStrategy_FullTextSearch, nil\n\t}\n\treturn SearchStrategy(0), fmt.Errorf(\"not a valid SearchStrategy string\")\n}\n\nfunc SearchStrategyPtr(v SearchStrategy) *SearchStrategy { return &v }\nfunc (p *SearchStrategy) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SearchStrategy(result.Int64)\n\treturn\n}\n\nfunc (p *SearchStrategy) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype KnowledgeShowSourceMode int64\n\nconst (\n\tKnowledgeShowSourceMode_ReplyBottom KnowledgeShowSourceMode = 0\n\tKnowledgeShowSourceMode_CardList    KnowledgeShowSourceMode = 1\n)\n\nfunc (p KnowledgeShowSourceMode) String() string {\n\tswitch p {\n\tcase KnowledgeShowSourceMode_ReplyBottom:\n\t\treturn \"ReplyBottom\"\n\tcase KnowledgeShowSourceMode_CardList:\n\t\treturn \"CardList\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc KnowledgeShowSourceModeFromString(s string) (KnowledgeShowSourceMode, error) {\n\tswitch s {\n\tcase \"ReplyBottom\":\n\t\treturn KnowledgeShowSourceMode_ReplyBottom, nil\n\tcase \"CardList\":\n\t\treturn KnowledgeShowSourceMode_CardList, nil\n\t}\n\treturn KnowledgeShowSourceMode(0), fmt.Errorf(\"not a valid KnowledgeShowSourceMode string\")\n}\n\nfunc KnowledgeShowSourceModePtr(v KnowledgeShowSourceMode) *KnowledgeShowSourceMode { return &v }\nfunc (p *KnowledgeShowSourceMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = KnowledgeShowSourceMode(result.Int64)\n\treturn\n}\n\nfunc (p *KnowledgeShowSourceMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype KnowledgeNoRecallReplyMode int64\n\nconst (\n\tKnowledgeNoRecallReplyMode_Default         KnowledgeNoRecallReplyMode = 0\n\tKnowledgeNoRecallReplyMode_CustomizePrompt KnowledgeNoRecallReplyMode = 1\n)\n\nfunc (p KnowledgeNoRecallReplyMode) String() string {\n\tswitch p {\n\tcase KnowledgeNoRecallReplyMode_Default:\n\t\treturn \"Default\"\n\tcase KnowledgeNoRecallReplyMode_CustomizePrompt:\n\t\treturn \"CustomizePrompt\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc KnowledgeNoRecallReplyModeFromString(s string) (KnowledgeNoRecallReplyMode, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn KnowledgeNoRecallReplyMode_Default, nil\n\tcase \"CustomizePrompt\":\n\t\treturn KnowledgeNoRecallReplyMode_CustomizePrompt, nil\n\t}\n\treturn KnowledgeNoRecallReplyMode(0), fmt.Errorf(\"not a valid KnowledgeNoRecallReplyMode string\")\n}\n\nfunc KnowledgeNoRecallReplyModePtr(v KnowledgeNoRecallReplyMode) *KnowledgeNoRecallReplyMode {\n\treturn &v\n}\nfunc (p *KnowledgeNoRecallReplyMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = KnowledgeNoRecallReplyMode(result.Int64)\n\treturn\n}\n\nfunc (p *KnowledgeNoRecallReplyMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SocietyVisibility int64\n\nconst (\n\t// Visible to all\n\tSocietyVisibility_Public SocietyVisibility = 1\n\t// Visible to host only\n\tSocietyVisibility_Anonymous SocietyVisibility = 2\n\t// custom\n\tSocietyVisibility_Custom SocietyVisibility = 3\n)\n\nfunc (p SocietyVisibility) String() string {\n\tswitch p {\n\tcase SocietyVisibility_Public:\n\t\treturn \"Public\"\n\tcase SocietyVisibility_Anonymous:\n\t\treturn \"Anonymous\"\n\tcase SocietyVisibility_Custom:\n\t\treturn \"Custom\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SocietyVisibilityFromString(s string) (SocietyVisibility, error) {\n\tswitch s {\n\tcase \"Public\":\n\t\treturn SocietyVisibility_Public, nil\n\tcase \"Anonymous\":\n\t\treturn SocietyVisibility_Anonymous, nil\n\tcase \"Custom\":\n\t\treturn SocietyVisibility_Custom, nil\n\t}\n\treturn SocietyVisibility(0), fmt.Errorf(\"not a valid SocietyVisibility string\")\n}\n\nfunc SocietyVisibilityPtr(v SocietyVisibility) *SocietyVisibility { return &v }\nfunc (p *SocietyVisibility) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SocietyVisibility(result.Int64)\n\treturn\n}\n\nfunc (p *SocietyVisibility) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype FieldItemType int64\n\nconst (\n\t// Text String\n\tFieldItemType_Text FieldItemType = 1\n\t// Digital Integer\n\tFieldItemType_Number FieldItemType = 2\n\t// Time Time\n\tFieldItemType_Date FieldItemType = 3\n\t// float Number\n\tFieldItemType_Float FieldItemType = 4\n\t// bool Boolean\n\tFieldItemType_Boolean FieldItemType = 5\n)\n\nfunc (p FieldItemType) String() string {\n\tswitch p {\n\tcase FieldItemType_Text:\n\t\treturn \"Text\"\n\tcase FieldItemType_Number:\n\t\treturn \"Number\"\n\tcase FieldItemType_Date:\n\t\treturn \"Date\"\n\tcase FieldItemType_Float:\n\t\treturn \"Float\"\n\tcase FieldItemType_Boolean:\n\t\treturn \"Boolean\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc FieldItemTypeFromString(s string) (FieldItemType, error) {\n\tswitch s {\n\tcase \"Text\":\n\t\treturn FieldItemType_Text, nil\n\tcase \"Number\":\n\t\treturn FieldItemType_Number, nil\n\tcase \"Date\":\n\t\treturn FieldItemType_Date, nil\n\tcase \"Float\":\n\t\treturn FieldItemType_Float, nil\n\tcase \"Boolean\":\n\t\treturn FieldItemType_Boolean, nil\n\t}\n\treturn FieldItemType(0), fmt.Errorf(\"not a valid FieldItemType string\")\n}\n\nfunc FieldItemTypePtr(v FieldItemType) *FieldItemType { return &v }\nfunc (p *FieldItemType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = FieldItemType(result.Int64)\n\treturn\n}\n\nfunc (p *FieldItemType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BotTableRWMode int64\n\nconst (\n\tBotTableRWMode_LimitedReadWrite   BotTableRWMode = 1\n\tBotTableRWMode_ReadOnly           BotTableRWMode = 2\n\tBotTableRWMode_UnlimitedReadWrite BotTableRWMode = 3\n\tBotTableRWMode_RWModeMax          BotTableRWMode = 4\n)\n\nfunc (p BotTableRWMode) String() string {\n\tswitch p {\n\tcase BotTableRWMode_LimitedReadWrite:\n\t\treturn \"LimitedReadWrite\"\n\tcase BotTableRWMode_ReadOnly:\n\t\treturn \"ReadOnly\"\n\tcase BotTableRWMode_UnlimitedReadWrite:\n\t\treturn \"UnlimitedReadWrite\"\n\tcase BotTableRWMode_RWModeMax:\n\t\treturn \"RWModeMax\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotTableRWModeFromString(s string) (BotTableRWMode, error) {\n\tswitch s {\n\tcase \"LimitedReadWrite\":\n\t\treturn BotTableRWMode_LimitedReadWrite, nil\n\tcase \"ReadOnly\":\n\t\treturn BotTableRWMode_ReadOnly, nil\n\tcase \"UnlimitedReadWrite\":\n\t\treturn BotTableRWMode_UnlimitedReadWrite, nil\n\tcase \"RWModeMax\":\n\t\treturn BotTableRWMode_RWModeMax, nil\n\t}\n\treturn BotTableRWMode(0), fmt.Errorf(\"not a valid BotTableRWMode string\")\n}\n\nfunc BotTableRWModePtr(v BotTableRWMode) *BotTableRWMode { return &v }\nfunc (p *BotTableRWMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotTableRWMode(result.Int64)\n\treturn\n}\n\nfunc (p *BotTableRWMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype AgentType int64\n\nconst (\n\tAgentType_Start_Agent  AgentType = 0\n\tAgentType_LLM_Agent    AgentType = 1\n\tAgentType_Task_Agent   AgentType = 2\n\tAgentType_Global_Agent AgentType = 3\n\tAgentType_Bot_Agent    AgentType = 4\n)\n\nfunc (p AgentType) String() string {\n\tswitch p {\n\tcase AgentType_Start_Agent:\n\t\treturn \"Start_Agent\"\n\tcase AgentType_LLM_Agent:\n\t\treturn \"LLM_Agent\"\n\tcase AgentType_Task_Agent:\n\t\treturn \"Task_Agent\"\n\tcase AgentType_Global_Agent:\n\t\treturn \"Global_Agent\"\n\tcase AgentType_Bot_Agent:\n\t\treturn \"Bot_Agent\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AgentTypeFromString(s string) (AgentType, error) {\n\tswitch s {\n\tcase \"Start_Agent\":\n\t\treturn AgentType_Start_Agent, nil\n\tcase \"LLM_Agent\":\n\t\treturn AgentType_LLM_Agent, nil\n\tcase \"Task_Agent\":\n\t\treturn AgentType_Task_Agent, nil\n\tcase \"Global_Agent\":\n\t\treturn AgentType_Global_Agent, nil\n\tcase \"Bot_Agent\":\n\t\treturn AgentType_Bot_Agent, nil\n\t}\n\treturn AgentType(0), fmt.Errorf(\"not a valid AgentType string\")\n}\n\nfunc AgentTypePtr(v AgentType) *AgentType { return &v }\nfunc (p *AgentType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AgentType(result.Int64)\n\treturn\n}\n\nfunc (p *AgentType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Version Compatibility: 0 - Old Version 1 - Rollback New Version 2 - Non-Rollback New Version 3 - Rollback New Version (no longer prompted)\ntype AgentVersionCompat int64\n\nconst (\n\tAgentVersionCompat_OldVersion             AgentVersionCompat = 0\n\tAgentVersionCompat_MiddleVersion          AgentVersionCompat = 1\n\tAgentVersionCompat_NewVersion             AgentVersionCompat = 2\n\tAgentVersionCompat_MiddleVersionNotPrompt AgentVersionCompat = 3\n)\n\nfunc (p AgentVersionCompat) String() string {\n\tswitch p {\n\tcase AgentVersionCompat_OldVersion:\n\t\treturn \"OldVersion\"\n\tcase AgentVersionCompat_MiddleVersion:\n\t\treturn \"MiddleVersion\"\n\tcase AgentVersionCompat_NewVersion:\n\t\treturn \"NewVersion\"\n\tcase AgentVersionCompat_MiddleVersionNotPrompt:\n\t\treturn \"MiddleVersionNotPrompt\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AgentVersionCompatFromString(s string) (AgentVersionCompat, error) {\n\tswitch s {\n\tcase \"OldVersion\":\n\t\treturn AgentVersionCompat_OldVersion, nil\n\tcase \"MiddleVersion\":\n\t\treturn AgentVersionCompat_MiddleVersion, nil\n\tcase \"NewVersion\":\n\t\treturn AgentVersionCompat_NewVersion, nil\n\tcase \"MiddleVersionNotPrompt\":\n\t\treturn AgentVersionCompat_MiddleVersionNotPrompt, nil\n\t}\n\treturn AgentVersionCompat(0), fmt.Errorf(\"not a valid AgentVersionCompat string\")\n}\n\nfunc AgentVersionCompatPtr(v AgentVersionCompat) *AgentVersionCompat { return &v }\nfunc (p *AgentVersionCompat) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AgentVersionCompat(result.Int64)\n\treturn\n}\n\nfunc (p *AgentVersionCompat) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype MultiAgentSessionType int64\n\nconst (\n\tMultiAgentSessionType_Flow MultiAgentSessionType = 1\n\tMultiAgentSessionType_Host MultiAgentSessionType = 2\n)\n\nfunc (p MultiAgentSessionType) String() string {\n\tswitch p {\n\tcase MultiAgentSessionType_Flow:\n\t\treturn \"Flow\"\n\tcase MultiAgentSessionType_Host:\n\t\treturn \"Host\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc MultiAgentSessionTypeFromString(s string) (MultiAgentSessionType, error) {\n\tswitch s {\n\tcase \"Flow\":\n\t\treturn MultiAgentSessionType_Flow, nil\n\tcase \"Host\":\n\t\treturn MultiAgentSessionType_Host, nil\n\t}\n\treturn MultiAgentSessionType(0), fmt.Errorf(\"not a valid MultiAgentSessionType string\")\n}\n\nfunc MultiAgentSessionTypePtr(v MultiAgentSessionType) *MultiAgentSessionType { return &v }\nfunc (p *MultiAgentSessionType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = MultiAgentSessionType(result.Int64)\n\treturn\n}\n\nfunc (p *MultiAgentSessionType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype MultiAgentConnectorType int64\n\nconst (\n\tMultiAgentConnectorType_Curve    MultiAgentConnectorType = 0\n\tMultiAgentConnectorType_Straight MultiAgentConnectorType = 1\n)\n\nfunc (p MultiAgentConnectorType) String() string {\n\tswitch p {\n\tcase MultiAgentConnectorType_Curve:\n\t\treturn \"Curve\"\n\tcase MultiAgentConnectorType_Straight:\n\t\treturn \"Straight\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc MultiAgentConnectorTypeFromString(s string) (MultiAgentConnectorType, error) {\n\tswitch s {\n\tcase \"Curve\":\n\t\treturn MultiAgentConnectorType_Curve, nil\n\tcase \"Straight\":\n\t\treturn MultiAgentConnectorType_Straight, nil\n\t}\n\treturn MultiAgentConnectorType(0), fmt.Errorf(\"not a valid MultiAgentConnectorType string\")\n}\n\nfunc MultiAgentConnectorTypePtr(v MultiAgentConnectorType) *MultiAgentConnectorType { return &v }\nfunc (p *MultiAgentConnectorType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = MultiAgentConnectorType(result.Int64)\n\treturn\n}\n\nfunc (p *MultiAgentConnectorType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BotMode int64\n\nconst (\n\tBotMode_SingleMode   BotMode = 0\n\tBotMode_MultiMode    BotMode = 1\n\tBotMode_WorkflowMode BotMode = 2\n)\n\nfunc (p BotMode) String() string {\n\tswitch p {\n\tcase BotMode_SingleMode:\n\t\treturn \"SingleMode\"\n\tcase BotMode_MultiMode:\n\t\treturn \"MultiMode\"\n\tcase BotMode_WorkflowMode:\n\t\treturn \"WorkflowMode\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotModeFromString(s string) (BotMode, error) {\n\tswitch s {\n\tcase \"SingleMode\":\n\t\treturn BotMode_SingleMode, nil\n\tcase \"MultiMode\":\n\t\treturn BotMode_MultiMode, nil\n\tcase \"WorkflowMode\":\n\t\treturn BotMode_WorkflowMode, nil\n\t}\n\treturn BotMode(0), fmt.Errorf(\"not a valid BotMode string\")\n}\n\nfunc BotModePtr(v BotMode) *BotMode { return &v }\nfunc (p *BotMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotMode(result.Int64)\n\treturn\n}\n\nfunc (p *BotMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BotSpecies int64\n\nconst (\n\t// Bot type\n\tBotSpecies_Default BotSpecies = 0\n\t// Created from coze\n\tBotSpecies_Function BotSpecies = 1\n)\n\nfunc (p BotSpecies) String() string {\n\tswitch p {\n\tcase BotSpecies_Default:\n\t\treturn \"Default\"\n\tcase BotSpecies_Function:\n\t\treturn \"Function\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotSpeciesFromString(s string) (BotSpecies, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn BotSpecies_Default, nil\n\tcase \"Function\":\n\t\treturn BotSpecies_Function, nil\n\t}\n\treturn BotSpecies(0), fmt.Errorf(\"not a valid BotSpecies string\")\n}\n\nfunc BotSpeciesPtr(v BotSpecies) *BotSpecies { return &v }\nfunc (p *BotSpecies) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotSpecies(result.Int64)\n\treturn\n}\n\nfunc (p *BotSpecies) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype TimeCapsuleMode int64\n\nconst (\n\t// close\n\tTimeCapsuleMode_Off TimeCapsuleMode = 0\n\t// open\n\tTimeCapsuleMode_On TimeCapsuleMode = 1\n)\n\nfunc (p TimeCapsuleMode) String() string {\n\tswitch p {\n\tcase TimeCapsuleMode_Off:\n\t\treturn \"Off\"\n\tcase TimeCapsuleMode_On:\n\t\treturn \"On\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TimeCapsuleModeFromString(s string) (TimeCapsuleMode, error) {\n\tswitch s {\n\tcase \"Off\":\n\t\treturn TimeCapsuleMode_Off, nil\n\tcase \"On\":\n\t\treturn TimeCapsuleMode_On, nil\n\t}\n\treturn TimeCapsuleMode(0), fmt.Errorf(\"not a valid TimeCapsuleMode string\")\n}\n\nfunc TimeCapsuleModePtr(v TimeCapsuleMode) *TimeCapsuleMode { return &v }\nfunc (p *TimeCapsuleMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = TimeCapsuleMode(result.Int64)\n\treturn\n}\n\nfunc (p *TimeCapsuleMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DisablePromptCalling int64\n\nconst (\n\tDisablePromptCalling_Off DisablePromptCalling = 0\n\tDisablePromptCalling_On  DisablePromptCalling = 1\n)\n\nfunc (p DisablePromptCalling) String() string {\n\tswitch p {\n\tcase DisablePromptCalling_Off:\n\t\treturn \"Off\"\n\tcase DisablePromptCalling_On:\n\t\treturn \"On\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DisablePromptCallingFromString(s string) (DisablePromptCalling, error) {\n\tswitch s {\n\tcase \"Off\":\n\t\treturn DisablePromptCalling_Off, nil\n\tcase \"On\":\n\t\treturn DisablePromptCalling_On, nil\n\t}\n\treturn DisablePromptCalling(0), fmt.Errorf(\"not a valid DisablePromptCalling string\")\n}\n\nfunc DisablePromptCallingPtr(v DisablePromptCalling) *DisablePromptCalling { return &v }\nfunc (p *DisablePromptCalling) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DisablePromptCalling(result.Int64)\n\treturn\n}\n\nfunc (p *DisablePromptCalling) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype FileboxInfoMode int64\n\nconst (\n\tFileboxInfoMode_Off FileboxInfoMode = 0\n\tFileboxInfoMode_On  FileboxInfoMode = 1\n)\n\nfunc (p FileboxInfoMode) String() string {\n\tswitch p {\n\tcase FileboxInfoMode_Off:\n\t\treturn \"Off\"\n\tcase FileboxInfoMode_On:\n\t\treturn \"On\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc FileboxInfoModeFromString(s string) (FileboxInfoMode, error) {\n\tswitch s {\n\tcase \"Off\":\n\t\treturn FileboxInfoMode_Off, nil\n\tcase \"On\":\n\t\treturn FileboxInfoMode_On, nil\n\t}\n\treturn FileboxInfoMode(0), fmt.Errorf(\"not a valid FileboxInfoMode string\")\n}\n\nfunc FileboxInfoModePtr(v FileboxInfoMode) *FileboxInfoMode { return &v }\nfunc (p *FileboxInfoMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = FileboxInfoMode(result.Int64)\n\treturn\n}\n\nfunc (p *FileboxInfoMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BotStatus int64\n\nconst (\n\tBotStatus_Deleted BotStatus = 0\n\tBotStatus_Using   BotStatus = 1\n\tBotStatus_Banned  BotStatus = 2\n)\n\nfunc (p BotStatus) String() string {\n\tswitch p {\n\tcase BotStatus_Deleted:\n\t\treturn \"Deleted\"\n\tcase BotStatus_Using:\n\t\treturn \"Using\"\n\tcase BotStatus_Banned:\n\t\treturn \"Banned\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotStatusFromString(s string) (BotStatus, error) {\n\tswitch s {\n\tcase \"Deleted\":\n\t\treturn BotStatus_Deleted, nil\n\tcase \"Using\":\n\t\treturn BotStatus_Using, nil\n\tcase \"Banned\":\n\t\treturn BotStatus_Banned, nil\n\t}\n\treturn BotStatus(0), fmt.Errorf(\"not a valid BotStatus string\")\n}\n\nfunc BotStatusPtr(v BotStatus) *BotStatus { return &v }\nfunc (p *BotStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotStatus(result.Int64)\n\treturn\n}\n\nfunc (p *BotStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BusinessType int64\n\nconst (\n\tBusinessType_Default      BusinessType = 0\n\tBusinessType_DouyinAvatar BusinessType = 1\n)\n\nfunc (p BusinessType) String() string {\n\tswitch p {\n\tcase BusinessType_Default:\n\t\treturn \"Default\"\n\tcase BusinessType_DouyinAvatar:\n\t\treturn \"DouyinAvatar\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BusinessTypeFromString(s string) (BusinessType, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn BusinessType_Default, nil\n\tcase \"DouyinAvatar\":\n\t\treturn BusinessType_DouyinAvatar, nil\n\t}\n\treturn BusinessType(0), fmt.Errorf(\"not a valid BusinessType string\")\n}\n\nfunc BusinessTypePtr(v BusinessType) *BusinessType { return &v }\nfunc (p *BusinessType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BusinessType(result.Int64)\n\treturn\n}\n\nfunc (p *BusinessType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BacktrackMode int64\n\nconst (\n\tBacktrackMode_Current      BacktrackMode = 1\n\tBacktrackMode_Previous     BacktrackMode = 2\n\tBacktrackMode_Start        BacktrackMode = 3\n\tBacktrackMode_MostSuitable BacktrackMode = 4\n)\n\nfunc (p BacktrackMode) String() string {\n\tswitch p {\n\tcase BacktrackMode_Current:\n\t\treturn \"Current\"\n\tcase BacktrackMode_Previous:\n\t\treturn \"Previous\"\n\tcase BacktrackMode_Start:\n\t\treturn \"Start\"\n\tcase BacktrackMode_MostSuitable:\n\t\treturn \"MostSuitable\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BacktrackModeFromString(s string) (BacktrackMode, error) {\n\tswitch s {\n\tcase \"Current\":\n\t\treturn BacktrackMode_Current, nil\n\tcase \"Previous\":\n\t\treturn BacktrackMode_Previous, nil\n\tcase \"Start\":\n\t\treturn BacktrackMode_Start, nil\n\tcase \"MostSuitable\":\n\t\treturn BacktrackMode_MostSuitable, nil\n\t}\n\treturn BacktrackMode(0), fmt.Errorf(\"not a valid BacktrackMode string\")\n}\n\nfunc BacktrackModePtr(v BacktrackMode) *BacktrackMode { return &v }\nfunc (p *BacktrackMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BacktrackMode(result.Int64)\n\treturn\n}\n\nfunc (p *BacktrackMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype RecognitionMode int64\n\nconst (\n\tRecognitionMode_FunctionCall RecognitionMode = 1\n\tRecognitionMode_Independent  RecognitionMode = 2\n)\n\nfunc (p RecognitionMode) String() string {\n\tswitch p {\n\tcase RecognitionMode_FunctionCall:\n\t\treturn \"FunctionCall\"\n\tcase RecognitionMode_Independent:\n\t\treturn \"Independent\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc RecognitionModeFromString(s string) (RecognitionMode, error) {\n\tswitch s {\n\tcase \"FunctionCall\":\n\t\treturn RecognitionMode_FunctionCall, nil\n\tcase \"Independent\":\n\t\treturn RecognitionMode_Independent, nil\n\t}\n\treturn RecognitionMode(0), fmt.Errorf(\"not a valid RecognitionMode string\")\n}\n\nfunc RecognitionModePtr(v RecognitionMode) *RecognitionMode { return &v }\nfunc (p *RecognitionMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = RecognitionMode(result.Int64)\n\treturn\n}\n\nfunc (p *RecognitionMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype IndependentTiming int64\n\nconst (\n\t// Determine user input (front)\n\tIndependentTiming_Pre IndependentTiming = 1\n\t// Determine node output (postfix)\n\tIndependentTiming_Post IndependentTiming = 2\n\t// Front mode and rear mode support simultaneous selection\n\tIndependentTiming_PreAndPost IndependentTiming = 3\n)\n\nfunc (p IndependentTiming) String() string {\n\tswitch p {\n\tcase IndependentTiming_Pre:\n\t\treturn \"Pre\"\n\tcase IndependentTiming_Post:\n\t\treturn \"Post\"\n\tcase IndependentTiming_PreAndPost:\n\t\treturn \"PreAndPost\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc IndependentTimingFromString(s string) (IndependentTiming, error) {\n\tswitch s {\n\tcase \"Pre\":\n\t\treturn IndependentTiming_Pre, nil\n\tcase \"Post\":\n\t\treturn IndependentTiming_Post, nil\n\tcase \"PreAndPost\":\n\t\treturn IndependentTiming_PreAndPost, nil\n\t}\n\treturn IndependentTiming(0), fmt.Errorf(\"not a valid IndependentTiming string\")\n}\n\nfunc IndependentTimingPtr(v IndependentTiming) *IndependentTiming { return &v }\nfunc (p *IndependentTiming) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = IndependentTiming(result.Int64)\n\treturn\n}\n\nfunc (p *IndependentTiming) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype IndependentRecognitionModelType int64\n\nconst (\n\t// Small model\n\tIndependentRecognitionModelType_SLM IndependentRecognitionModelType = 0\n\t// Large model\n\tIndependentRecognitionModelType_LLM IndependentRecognitionModelType = 1\n)\n\nfunc (p IndependentRecognitionModelType) String() string {\n\tswitch p {\n\tcase IndependentRecognitionModelType_SLM:\n\t\treturn \"SLM\"\n\tcase IndependentRecognitionModelType_LLM:\n\t\treturn \"LLM\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc IndependentRecognitionModelTypeFromString(s string) (IndependentRecognitionModelType, error) {\n\tswitch s {\n\tcase \"SLM\":\n\t\treturn IndependentRecognitionModelType_SLM, nil\n\tcase \"LLM\":\n\t\treturn IndependentRecognitionModelType_LLM, nil\n\t}\n\treturn IndependentRecognitionModelType(0), fmt.Errorf(\"not a valid IndependentRecognitionModelType string\")\n}\n\nfunc IndependentRecognitionModelTypePtr(v IndependentRecognitionModelType) *IndependentRecognitionModelType {\n\treturn &v\n}\nfunc (p *IndependentRecognitionModelType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = IndependentRecognitionModelType(result.Int64)\n\treturn\n}\n\nfunc (p *IndependentRecognitionModelType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype MessageFeedbackType int64\n\nconst (\n\tMessageFeedbackType_Default MessageFeedbackType = 0\n\tMessageFeedbackType_Like    MessageFeedbackType = 1\n\tMessageFeedbackType_Unlike  MessageFeedbackType = 2\n)\n\nfunc (p MessageFeedbackType) String() string {\n\tswitch p {\n\tcase MessageFeedbackType_Default:\n\t\treturn \"Default\"\n\tcase MessageFeedbackType_Like:\n\t\treturn \"Like\"\n\tcase MessageFeedbackType_Unlike:\n\t\treturn \"Unlike\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc MessageFeedbackTypeFromString(s string) (MessageFeedbackType, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn MessageFeedbackType_Default, nil\n\tcase \"Like\":\n\t\treturn MessageFeedbackType_Like, nil\n\tcase \"Unlike\":\n\t\treturn MessageFeedbackType_Unlike, nil\n\t}\n\treturn MessageFeedbackType(0), fmt.Errorf(\"not a valid MessageFeedbackType string\")\n}\n\nfunc MessageFeedbackTypePtr(v MessageFeedbackType) *MessageFeedbackType { return &v }\nfunc (p *MessageFeedbackType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = MessageFeedbackType(result.Int64)\n\treturn\n}\n\nfunc (p *MessageFeedbackType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype MessageFeedbackDetailType int64\n\nconst (\n\tMessageFeedbackDetailType_UnlikeDefault MessageFeedbackDetailType = 0\n\t// Harmful information\n\tMessageFeedbackDetailType_UnlikeHarmful MessageFeedbackDetailType = 1\n\t// incorrect information\n\tMessageFeedbackDetailType_UnlikeIncorrect MessageFeedbackDetailType = 2\n\t// Did not follow instructions\n\tMessageFeedbackDetailType_UnlikeNotFollowInstructions MessageFeedbackDetailType = 3\n\t// other\n\tMessageFeedbackDetailType_UnlikeOthers MessageFeedbackDetailType = 4\n)\n\nfunc (p MessageFeedbackDetailType) String() string {\n\tswitch p {\n\tcase MessageFeedbackDetailType_UnlikeDefault:\n\t\treturn \"UnlikeDefault\"\n\tcase MessageFeedbackDetailType_UnlikeHarmful:\n\t\treturn \"UnlikeHarmful\"\n\tcase MessageFeedbackDetailType_UnlikeIncorrect:\n\t\treturn \"UnlikeIncorrect\"\n\tcase MessageFeedbackDetailType_UnlikeNotFollowInstructions:\n\t\treturn \"UnlikeNotFollowInstructions\"\n\tcase MessageFeedbackDetailType_UnlikeOthers:\n\t\treturn \"UnlikeOthers\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc MessageFeedbackDetailTypeFromString(s string) (MessageFeedbackDetailType, error) {\n\tswitch s {\n\tcase \"UnlikeDefault\":\n\t\treturn MessageFeedbackDetailType_UnlikeDefault, nil\n\tcase \"UnlikeHarmful\":\n\t\treturn MessageFeedbackDetailType_UnlikeHarmful, nil\n\tcase \"UnlikeIncorrect\":\n\t\treturn MessageFeedbackDetailType_UnlikeIncorrect, nil\n\tcase \"UnlikeNotFollowInstructions\":\n\t\treturn MessageFeedbackDetailType_UnlikeNotFollowInstructions, nil\n\tcase \"UnlikeOthers\":\n\t\treturn MessageFeedbackDetailType_UnlikeOthers, nil\n\t}\n\treturn MessageFeedbackDetailType(0), fmt.Errorf(\"not a valid MessageFeedbackDetailType string\")\n}\n\nfunc MessageFeedbackDetailTypePtr(v MessageFeedbackDetailType) *MessageFeedbackDetailType { return &v }\nfunc (p *MessageFeedbackDetailType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = MessageFeedbackDetailType(result.Int64)\n\treturn\n}\n\nfunc (p *MessageFeedbackDetailType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype Scene int64\n\nconst (\n\tScene_Default    Scene = 0\n\tScene_Explore    Scene = 1\n\tScene_BotStore   Scene = 2\n\tScene_CozeHome   Scene = 3\n\tScene_Playground Scene = 4\n\t// evaluation platform\n\tScene_Evaluation Scene = 5\n\tScene_AgentAPP   Scene = 6\n\t//Prompt optimization\n\tScene_PromptOptimize Scene = 7\n\t// Createbot's nl2bot features\n\tScene_GenerateAgentInfo Scene = 8\n)\n\nfunc (p Scene) String() string {\n\tswitch p {\n\tcase Scene_Default:\n\t\treturn \"Default\"\n\tcase Scene_Explore:\n\t\treturn \"Explore\"\n\tcase Scene_BotStore:\n\t\treturn \"BotStore\"\n\tcase Scene_CozeHome:\n\t\treturn \"CozeHome\"\n\tcase Scene_Playground:\n\t\treturn \"Playground\"\n\tcase Scene_Evaluation:\n\t\treturn \"Evaluation\"\n\tcase Scene_AgentAPP:\n\t\treturn \"AgentAPP\"\n\tcase Scene_PromptOptimize:\n\t\treturn \"PromptOptimize\"\n\tcase Scene_GenerateAgentInfo:\n\t\treturn \"GenerateAgentInfo\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SceneFromString(s string) (Scene, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn Scene_Default, nil\n\tcase \"Explore\":\n\t\treturn Scene_Explore, nil\n\tcase \"BotStore\":\n\t\treturn Scene_BotStore, nil\n\tcase \"CozeHome\":\n\t\treturn Scene_CozeHome, nil\n\tcase \"Playground\":\n\t\treturn Scene_Playground, nil\n\tcase \"Evaluation\":\n\t\treturn Scene_Evaluation, nil\n\tcase \"AgentAPP\":\n\t\treturn Scene_AgentAPP, nil\n\tcase \"PromptOptimize\":\n\t\treturn Scene_PromptOptimize, nil\n\tcase \"GenerateAgentInfo\":\n\t\treturn Scene_GenerateAgentInfo, nil\n\t}\n\treturn Scene(0), fmt.Errorf(\"not a valid Scene string\")\n}\n\nfunc ScenePtr(v Scene) *Scene { return &v }\nfunc (p *Scene) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = Scene(result.Int64)\n\treturn\n}\n\nfunc (p *Scene) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n//\tstruct ContentAttachment {\n//\t   1: required string FileID (api.body = \"file_id\")\n//\t}\n//\n//\tstruct MetaContent{\n//\t    1: required string Type (api.body=\"type\"),\n//\t    2: optional string Text ( api.body=\"text\"),\n//\t    3: optional string FileID (api.body=\"file_id\"),\n//\t    4: optional string FileURL (api.body=\"file_url\"),\n//\t    5: optional string Card (api.body=\"card\"),\n//\t}\n//\n//\tstruct EnterMessage  {\n//\t    1: required string Role (api.body = \"role\")\n//\t    2: string Content (api.body = \"content\")//content\n//\t    3: map<string,string> MetaData(api.body = \"meta_data\")\n//\t    4: string ContentType(api.body = \"content_type\")//text/card/object_string\n//\t    5: string Type(api.body = \"type\")\n//\t}\n//\n//\tstruct OpenMessageApi {\n//\t    1: string Id (api.body = \"id\")//primary key ID\n//\t    2: string BotId (api.body = \"bot_id\")//bot id//TODO All i64 plus annotation str, imported parameters and exported parameters are required\n//\t    3: string Role(api.body = \"role\")\n//\t    4: string Content (api.body = \"content\")//content\n//\t    5: string ConversationId(api.body = \"conversation_id\")   // conversation id\n//\t    6: map<string,string> MetaData(api.body = \"meta_data\")\n//\t    7: string CreatedAt (api.body = \"created_at\")//create_time\n//\t    8: string UpdatedAt (api.body = \"updated_at\")//Update time//Change TODO time to int\n//\t    9: string ChatId(api.body = \"chat_id\")\n//\t    10: string ContentType(api.body = \"content_type\")\n//\t    11: string Type(api.body = \"type\")\n//\t}\ntype ReferenceUpdateType int64\n\nconst (\n\tReferenceUpdateType_ManualUpdate ReferenceUpdateType = 1\n\tReferenceUpdateType_AutoUpdate   ReferenceUpdateType = 2\n)\n\nfunc (p ReferenceUpdateType) String() string {\n\tswitch p {\n\tcase ReferenceUpdateType_ManualUpdate:\n\t\treturn \"ManualUpdate\"\n\tcase ReferenceUpdateType_AutoUpdate:\n\t\treturn \"AutoUpdate\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ReferenceUpdateTypeFromString(s string) (ReferenceUpdateType, error) {\n\tswitch s {\n\tcase \"ManualUpdate\":\n\t\treturn ReferenceUpdateType_ManualUpdate, nil\n\tcase \"AutoUpdate\":\n\t\treturn ReferenceUpdateType_AutoUpdate, nil\n\t}\n\treturn ReferenceUpdateType(0), fmt.Errorf(\"not a valid ReferenceUpdateType string\")\n}\n\nfunc ReferenceUpdateTypePtr(v ReferenceUpdateType) *ReferenceUpdateType { return &v }\nfunc (p *ReferenceUpdateType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ReferenceUpdateType(result.Int64)\n\treturn\n}\n\nfunc (p *ReferenceUpdateType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ReferenceInfoStatus int64\n\nconst (\n\t// 1: Updates are available\n\tReferenceInfoStatus_HasUpdates ReferenceInfoStatus = 1\n\t// 2: Deleted\n\tReferenceInfoStatus_IsDelete ReferenceInfoStatus = 2\n)\n\nfunc (p ReferenceInfoStatus) String() string {\n\tswitch p {\n\tcase ReferenceInfoStatus_HasUpdates:\n\t\treturn \"HasUpdates\"\n\tcase ReferenceInfoStatus_IsDelete:\n\t\treturn \"IsDelete\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ReferenceInfoStatusFromString(s string) (ReferenceInfoStatus, error) {\n\tswitch s {\n\tcase \"HasUpdates\":\n\t\treturn ReferenceInfoStatus_HasUpdates, nil\n\tcase \"IsDelete\":\n\t\treturn ReferenceInfoStatus_IsDelete, nil\n\t}\n\treturn ReferenceInfoStatus(0), fmt.Errorf(\"not a valid ReferenceInfoStatus string\")\n}\n\nfunc ReferenceInfoStatusPtr(v ReferenceInfoStatus) *ReferenceInfoStatus { return &v }\nfunc (p *ReferenceInfoStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ReferenceInfoStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ReferenceInfoStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ShortcutSendType = string\n\ntype AuthToken struct {\n\tServiceID       string `thrift:\"service_id,1\" form:\"service_id\" json:\"service_id\" query:\"service_id\"`\n\tAccessKeyID     string `thrift:\"access_key_id,2\" form:\"access_key_id\" json:\"access_key_id\" query:\"access_key_id\"`\n\tSecretAccessKey string `thrift:\"secret_access_key,3\" form:\"secret_access_key\" json:\"secret_access_key\" query:\"secret_access_key\"`\n\tSessionToken    string `thrift:\"session_token,4\" form:\"session_token\" json:\"session_token\" query:\"session_token\"`\n\tExpiredTime     string `thrift:\"expired_time,5\" form:\"expired_time\" json:\"expired_time\" query:\"expired_time\"`\n\tCurrentTime     string `thrift:\"current_time,6\" form:\"current_time\" json:\"current_time\" query:\"current_time\"`\n\tUploadHost      string `thrift:\"upload_host,7\" form:\"upload_host\" json:\"upload_host\" query:\"upload_host\"`\n\tHostScheme      string `thrift:\"host_scheme,8\" form:\"host_scheme\" json:\"host_scheme\" query:\"host_scheme\"`\n}\n\nfunc NewAuthToken() *AuthToken {\n\treturn &AuthToken{}\n}\n\nfunc (p *AuthToken) InitDefault() {\n}\n\nfunc (p *AuthToken) GetServiceID() (v string) {\n\treturn p.ServiceID\n}\n\nfunc (p *AuthToken) GetAccessKeyID() (v string) {\n\treturn p.AccessKeyID\n}\n\nfunc (p *AuthToken) GetSecretAccessKey() (v string) {\n\treturn p.SecretAccessKey\n}\n\nfunc (p *AuthToken) GetSessionToken() (v string) {\n\treturn p.SessionToken\n}\n\nfunc (p *AuthToken) GetExpiredTime() (v string) {\n\treturn p.ExpiredTime\n}\n\nfunc (p *AuthToken) GetCurrentTime() (v string) {\n\treturn p.CurrentTime\n}\n\nfunc (p *AuthToken) GetUploadHost() (v string) {\n\treturn p.UploadHost\n}\n\nfunc (p *AuthToken) GetHostScheme() (v string) {\n\treturn p.HostScheme\n}\n\nvar fieldIDToName_AuthToken = map[int16]string{\n\t1: \"service_id\",\n\t2: \"access_key_id\",\n\t3: \"secret_access_key\",\n\t4: \"session_token\",\n\t5: \"expired_time\",\n\t6: \"current_time\",\n\t7: \"upload_host\",\n\t8: \"host_scheme\",\n}\n\nfunc (p *AuthToken) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AuthToken[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AuthToken) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ServiceID = _field\n\treturn nil\n}\nfunc (p *AuthToken) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AccessKeyID = _field\n\treturn nil\n}\nfunc (p *AuthToken) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SecretAccessKey = _field\n\treturn nil\n}\nfunc (p *AuthToken) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SessionToken = _field\n\treturn nil\n}\nfunc (p *AuthToken) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExpiredTime = _field\n\treturn nil\n}\nfunc (p *AuthToken) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CurrentTime = _field\n\treturn nil\n}\nfunc (p *AuthToken) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UploadHost = _field\n\treturn nil\n}\nfunc (p *AuthToken) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HostScheme = _field\n\treturn nil\n}\n\nfunc (p *AuthToken) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AuthToken\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AuthToken) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"service_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ServiceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AuthToken) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"access_key_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AccessKeyID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AuthToken) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"secret_access_key\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SecretAccessKey); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *AuthToken) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"session_token\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SessionToken); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *AuthToken) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"expired_time\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExpiredTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *AuthToken) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"current_time\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CurrentTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *AuthToken) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"upload_host\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UploadHost); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *AuthToken) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"host_scheme\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.HostScheme); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *AuthToken) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AuthToken(%+v)\", *p)\n\n}\n\ntype PromptInfo struct {\n\t// Text prompt\n\tPrompt *string `thrift:\"Prompt,1,optional\" form:\"prompt\" json:\"prompt,omitempty\"`\n}\n\nfunc NewPromptInfo() *PromptInfo {\n\treturn &PromptInfo{}\n}\n\nfunc (p *PromptInfo) InitDefault() {\n}\n\nvar PromptInfo_Prompt_DEFAULT string\n\nfunc (p *PromptInfo) GetPrompt() (v string) {\n\tif !p.IsSetPrompt() {\n\t\treturn PromptInfo_Prompt_DEFAULT\n\t}\n\treturn *p.Prompt\n}\n\nvar fieldIDToName_PromptInfo = map[int16]string{\n\t1: \"Prompt\",\n}\n\nfunc (p *PromptInfo) IsSetPrompt() bool {\n\treturn p.Prompt != nil\n}\n\nfunc (p *PromptInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PromptInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PromptInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Prompt = _field\n\treturn nil\n}\n\nfunc (p *PromptInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PromptInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PromptInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrompt() {\n\t\tif err = oprot.WriteFieldBegin(\"Prompt\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Prompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PromptInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PromptInfo(%+v)\", *p)\n\n}\n\ntype ModelInfo struct {\n\t// Model ID\n\tModelId *int64 `thrift:\"ModelId,1,optional\" form:\"model_id\" json:\"model_id,string,omitempty\"`\n\t// Temperature, model output randomness, the larger the value, the more random, the smaller the more conservative (0-1]\n\tTemperature *float64 `thrift:\"Temperature,2,optional\" form:\"temperature\" json:\"temperature,omitempty\"`\n\t// Maximum Token Reply\n\tMaxTokens *int32 `thrift:\"MaxTokens,3,optional\" form:\"max_tokens\" json:\"max_tokens,omitempty\"`\n\t// Another model's output randomness, the larger the value, the more random [0, 1]\n\tTopP *float64 `thrift:\"TopP,4,optional\" form:\"top_p\" json:\"top_p,omitempty\"`\n\t// Frequency penalty, adjust the frequency of words in the generated content, the fewer positive words are [-1.0, 1.0]\n\tFrequencyPenalty *float64 `thrift:\"FrequencyPenalty,5,optional\" form:\"frequency_penalty\" json:\"frequency_penalty,omitempty\"`\n\t// There is a penalty, adjust the frequency of new words in the generated content, avoid repeating words with positive values, and use new words [-1.0, 1.0]\n\tPresencePenalty *float64 `thrift:\"PresencePenalty,6,optional\" form:\"presence_penalty\" json:\"presence_penalty,omitempty\"`\n\t// contextual policy\n\tShortMemoryPolicy *ShortMemoryPolicy `thrift:\"ShortMemoryPolicy,7,optional\" form:\"short_memory_policy\" json:\"short_memory_policy,omitempty\"`\n\t// When generating, sample the size of the candidate set\n\tTopK *int32 `thrift:\"TopK,8,optional\" form:\"top_k\" json:\"top_k,omitempty\"`\n\t// model reply content format\n\tResponseFormat *ModelResponseFormat `thrift:\"ResponseFormat,9,optional\" form:\"response_format\" json:\"response_format,omitempty\"`\n\tModelStyle     *ModelStyle          `thrift:\"ModelStyle,10,optional\" form:\"model_style\" json:\"model_style,omitempty\"`\n\t// 缓存配置\n\tCacheType *CacheType `thrift:\"CacheType,11,optional\" form:\"cache_type\" json:\"cache_type,omitempty\"`\n\t// sp拼接当前时间\n\tSpCurrentTime *bool `thrift:\"SpCurrentTime,12,optional\" form:\"sp_current_time\" json:\"sp_current_time,omitempty\"`\n\t// sp拼接防泄露指令\n\tSpAntiLeak *bool `thrift:\"SpAntiLeak,13,optional\" form:\"sp_anti_leak\" json:\"sp_anti_leak,omitempty\"`\n\t// sp拼接声纹信息\n\tSpVoiceInfo *bool `thrift:\"SpVoiceInfo,14,optional\" form:\"sp_voice_info\" json:\"sp_voice_info,omitempty\"`\n\t// User-selected model style\n\tParameters map[string]string `thrift:\"Parameters,15,optional\" form:\"parameters\" json:\"parameters,omitempty\"`\n}\n\nfunc NewModelInfo() *ModelInfo {\n\treturn &ModelInfo{}\n}\n\nfunc (p *ModelInfo) InitDefault() {\n}\n\nvar ModelInfo_ModelId_DEFAULT int64\n\nfunc (p *ModelInfo) GetModelId() (v int64) {\n\tif !p.IsSetModelId() {\n\t\treturn ModelInfo_ModelId_DEFAULT\n\t}\n\treturn *p.ModelId\n}\n\nvar ModelInfo_Temperature_DEFAULT float64\n\nfunc (p *ModelInfo) GetTemperature() (v float64) {\n\tif !p.IsSetTemperature() {\n\t\treturn ModelInfo_Temperature_DEFAULT\n\t}\n\treturn *p.Temperature\n}\n\nvar ModelInfo_MaxTokens_DEFAULT int32\n\nfunc (p *ModelInfo) GetMaxTokens() (v int32) {\n\tif !p.IsSetMaxTokens() {\n\t\treturn ModelInfo_MaxTokens_DEFAULT\n\t}\n\treturn *p.MaxTokens\n}\n\nvar ModelInfo_TopP_DEFAULT float64\n\nfunc (p *ModelInfo) GetTopP() (v float64) {\n\tif !p.IsSetTopP() {\n\t\treturn ModelInfo_TopP_DEFAULT\n\t}\n\treturn *p.TopP\n}\n\nvar ModelInfo_FrequencyPenalty_DEFAULT float64\n\nfunc (p *ModelInfo) GetFrequencyPenalty() (v float64) {\n\tif !p.IsSetFrequencyPenalty() {\n\t\treturn ModelInfo_FrequencyPenalty_DEFAULT\n\t}\n\treturn *p.FrequencyPenalty\n}\n\nvar ModelInfo_PresencePenalty_DEFAULT float64\n\nfunc (p *ModelInfo) GetPresencePenalty() (v float64) {\n\tif !p.IsSetPresencePenalty() {\n\t\treturn ModelInfo_PresencePenalty_DEFAULT\n\t}\n\treturn *p.PresencePenalty\n}\n\nvar ModelInfo_ShortMemoryPolicy_DEFAULT *ShortMemoryPolicy\n\nfunc (p *ModelInfo) GetShortMemoryPolicy() (v *ShortMemoryPolicy) {\n\tif !p.IsSetShortMemoryPolicy() {\n\t\treturn ModelInfo_ShortMemoryPolicy_DEFAULT\n\t}\n\treturn p.ShortMemoryPolicy\n}\n\nvar ModelInfo_TopK_DEFAULT int32\n\nfunc (p *ModelInfo) GetTopK() (v int32) {\n\tif !p.IsSetTopK() {\n\t\treturn ModelInfo_TopK_DEFAULT\n\t}\n\treturn *p.TopK\n}\n\nvar ModelInfo_ResponseFormat_DEFAULT ModelResponseFormat\n\nfunc (p *ModelInfo) GetResponseFormat() (v ModelResponseFormat) {\n\tif !p.IsSetResponseFormat() {\n\t\treturn ModelInfo_ResponseFormat_DEFAULT\n\t}\n\treturn *p.ResponseFormat\n}\n\nvar ModelInfo_ModelStyle_DEFAULT ModelStyle\n\nfunc (p *ModelInfo) GetModelStyle() (v ModelStyle) {\n\tif !p.IsSetModelStyle() {\n\t\treturn ModelInfo_ModelStyle_DEFAULT\n\t}\n\treturn *p.ModelStyle\n}\n\nvar ModelInfo_CacheType_DEFAULT CacheType\n\nfunc (p *ModelInfo) GetCacheType() (v CacheType) {\n\tif !p.IsSetCacheType() {\n\t\treturn ModelInfo_CacheType_DEFAULT\n\t}\n\treturn *p.CacheType\n}\n\nvar ModelInfo_SpCurrentTime_DEFAULT bool\n\nfunc (p *ModelInfo) GetSpCurrentTime() (v bool) {\n\tif !p.IsSetSpCurrentTime() {\n\t\treturn ModelInfo_SpCurrentTime_DEFAULT\n\t}\n\treturn *p.SpCurrentTime\n}\n\nvar ModelInfo_SpAntiLeak_DEFAULT bool\n\nfunc (p *ModelInfo) GetSpAntiLeak() (v bool) {\n\tif !p.IsSetSpAntiLeak() {\n\t\treturn ModelInfo_SpAntiLeak_DEFAULT\n\t}\n\treturn *p.SpAntiLeak\n}\n\nvar ModelInfo_SpVoiceInfo_DEFAULT bool\n\nfunc (p *ModelInfo) GetSpVoiceInfo() (v bool) {\n\tif !p.IsSetSpVoiceInfo() {\n\t\treturn ModelInfo_SpVoiceInfo_DEFAULT\n\t}\n\treturn *p.SpVoiceInfo\n}\n\nvar ModelInfo_Parameters_DEFAULT map[string]string\n\nfunc (p *ModelInfo) GetParameters() (v map[string]string) {\n\tif !p.IsSetParameters() {\n\t\treturn ModelInfo_Parameters_DEFAULT\n\t}\n\treturn p.Parameters\n}\n\nvar fieldIDToName_ModelInfo = map[int16]string{\n\t1:  \"ModelId\",\n\t2:  \"Temperature\",\n\t3:  \"MaxTokens\",\n\t4:  \"TopP\",\n\t5:  \"FrequencyPenalty\",\n\t6:  \"PresencePenalty\",\n\t7:  \"ShortMemoryPolicy\",\n\t8:  \"TopK\",\n\t9:  \"ResponseFormat\",\n\t10: \"ModelStyle\",\n\t11: \"CacheType\",\n\t12: \"SpCurrentTime\",\n\t13: \"SpAntiLeak\",\n\t14: \"SpVoiceInfo\",\n\t15: \"Parameters\",\n}\n\nfunc (p *ModelInfo) IsSetModelId() bool {\n\treturn p.ModelId != nil\n}\n\nfunc (p *ModelInfo) IsSetTemperature() bool {\n\treturn p.Temperature != nil\n}\n\nfunc (p *ModelInfo) IsSetMaxTokens() bool {\n\treturn p.MaxTokens != nil\n}\n\nfunc (p *ModelInfo) IsSetTopP() bool {\n\treturn p.TopP != nil\n}\n\nfunc (p *ModelInfo) IsSetFrequencyPenalty() bool {\n\treturn p.FrequencyPenalty != nil\n}\n\nfunc (p *ModelInfo) IsSetPresencePenalty() bool {\n\treturn p.PresencePenalty != nil\n}\n\nfunc (p *ModelInfo) IsSetShortMemoryPolicy() bool {\n\treturn p.ShortMemoryPolicy != nil\n}\n\nfunc (p *ModelInfo) IsSetTopK() bool {\n\treturn p.TopK != nil\n}\n\nfunc (p *ModelInfo) IsSetResponseFormat() bool {\n\treturn p.ResponseFormat != nil\n}\n\nfunc (p *ModelInfo) IsSetModelStyle() bool {\n\treturn p.ModelStyle != nil\n}\n\nfunc (p *ModelInfo) IsSetCacheType() bool {\n\treturn p.CacheType != nil\n}\n\nfunc (p *ModelInfo) IsSetSpCurrentTime() bool {\n\treturn p.SpCurrentTime != nil\n}\n\nfunc (p *ModelInfo) IsSetSpAntiLeak() bool {\n\treturn p.SpAntiLeak != nil\n}\n\nfunc (p *ModelInfo) IsSetSpVoiceInfo() bool {\n\treturn p.SpVoiceInfo != nil\n}\n\nfunc (p *ModelInfo) IsSetParameters() bool {\n\treturn p.Parameters != nil\n}\n\nfunc (p *ModelInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ModelInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ModelId = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Temperature = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.MaxTokens = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TopP = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FrequencyPenalty = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PresencePenalty = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewShortMemoryPolicy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ShortMemoryPolicy = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TopK = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *ModelResponseFormat\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ModelResponseFormat(v)\n\t\t_field = &tmp\n\t}\n\tp.ResponseFormat = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *ModelStyle\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ModelStyle(v)\n\t\t_field = &tmp\n\t}\n\tp.ModelStyle = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *CacheType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := CacheType(v)\n\t\t_field = &tmp\n\t}\n\tp.CacheType = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpCurrentTime = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpAntiLeak = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpVoiceInfo = _field\n\treturn nil\n}\nfunc (p *ModelInfo) ReadField15(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\n\nfunc (p *ModelInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelId() {\n\t\tif err = oprot.WriteFieldBegin(\"ModelId\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ModelId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTemperature() {\n\t\tif err = oprot.WriteFieldBegin(\"Temperature\", thrift.DOUBLE, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Temperature); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMaxTokens() {\n\t\tif err = oprot.WriteFieldBegin(\"MaxTokens\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.MaxTokens); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTopP() {\n\t\tif err = oprot.WriteFieldBegin(\"TopP\", thrift.DOUBLE, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.TopP); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFrequencyPenalty() {\n\t\tif err = oprot.WriteFieldBegin(\"FrequencyPenalty\", thrift.DOUBLE, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.FrequencyPenalty); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPresencePenalty() {\n\t\tif err = oprot.WriteFieldBegin(\"PresencePenalty\", thrift.DOUBLE, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.PresencePenalty); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShortMemoryPolicy() {\n\t\tif err = oprot.WriteFieldBegin(\"ShortMemoryPolicy\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ShortMemoryPolicy.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTopK() {\n\t\tif err = oprot.WriteFieldBegin(\"TopK\", thrift.I32, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.TopK); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResponseFormat() {\n\t\tif err = oprot.WriteFieldBegin(\"ResponseFormat\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ResponseFormat)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelStyle() {\n\t\tif err = oprot.WriteFieldBegin(\"ModelStyle\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ModelStyle)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCacheType() {\n\t\tif err = oprot.WriteFieldBegin(\"CacheType\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.CacheType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpCurrentTime() {\n\t\tif err = oprot.WriteFieldBegin(\"SpCurrentTime\", thrift.BOOL, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SpCurrentTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpAntiLeak() {\n\t\tif err = oprot.WriteFieldBegin(\"SpAntiLeak\", thrift.BOOL, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SpAntiLeak); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpVoiceInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"SpVoiceInfo\", thrift.BOOL, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SpVoiceInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *ModelInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"Parameters\", thrift.MAP, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Parameters)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.Parameters {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\n\nfunc (p *ModelInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelInfo(%+v)\", *p)\n\n}\n\ntype ShortMemoryPolicy struct {\n\t// The type of transmission allowed by the context\n\tContextMode *ContextMode `thrift:\"ContextMode,1,optional\" form:\"context_mode\" json:\"context_mode,omitempty\"`\n\t// Number of rounds of context band\n\tHistoryRound *int32 `thrift:\"HistoryRound,2,optional\" form:\"history_round\" json:\"history_round,omitempty\"`\n}\n\nfunc NewShortMemoryPolicy() *ShortMemoryPolicy {\n\treturn &ShortMemoryPolicy{}\n}\n\nfunc (p *ShortMemoryPolicy) InitDefault() {\n}\n\nvar ShortMemoryPolicy_ContextMode_DEFAULT ContextMode\n\nfunc (p *ShortMemoryPolicy) GetContextMode() (v ContextMode) {\n\tif !p.IsSetContextMode() {\n\t\treturn ShortMemoryPolicy_ContextMode_DEFAULT\n\t}\n\treturn *p.ContextMode\n}\n\nvar ShortMemoryPolicy_HistoryRound_DEFAULT int32\n\nfunc (p *ShortMemoryPolicy) GetHistoryRound() (v int32) {\n\tif !p.IsSetHistoryRound() {\n\t\treturn ShortMemoryPolicy_HistoryRound_DEFAULT\n\t}\n\treturn *p.HistoryRound\n}\n\nvar fieldIDToName_ShortMemoryPolicy = map[int16]string{\n\t1: \"ContextMode\",\n\t2: \"HistoryRound\",\n}\n\nfunc (p *ShortMemoryPolicy) IsSetContextMode() bool {\n\treturn p.ContextMode != nil\n}\n\nfunc (p *ShortMemoryPolicy) IsSetHistoryRound() bool {\n\treturn p.HistoryRound != nil\n}\n\nfunc (p *ShortMemoryPolicy) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ShortMemoryPolicy[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ShortMemoryPolicy) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *ContextMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ContextMode(v)\n\t\t_field = &tmp\n\t}\n\tp.ContextMode = _field\n\treturn nil\n}\nfunc (p *ShortMemoryPolicy) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HistoryRound = _field\n\treturn nil\n}\n\nfunc (p *ShortMemoryPolicy) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ShortMemoryPolicy\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ShortMemoryPolicy) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContextMode() {\n\t\tif err = oprot.WriteFieldBegin(\"ContextMode\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ContextMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ShortMemoryPolicy) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHistoryRound() {\n\t\tif err = oprot.WriteFieldBegin(\"HistoryRound\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.HistoryRound); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ShortMemoryPolicy) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ShortMemoryPolicy(%+v)\", *p)\n\n}\n\ntype PluginInfo struct {\n\t// Plugin ID\n\tPluginId *int64 `thrift:\"PluginId,1,optional\" form:\"plugin_id\" json:\"plugin_id,string,omitempty\"`\n\t// api Id\n\tApiId *int64 `thrift:\"ApiId,2,optional\" form:\"api_id\" json:\"api_id,string,omitempty\"`\n\t// API name O project\n\tApiName    *string     `thrift:\"ApiName,3,optional\" form:\"api_name\" json:\"api_name,omitempty\"`\n\tPluginFrom *PluginFrom `thrift:\"PluginFrom,99,optional\" form:\"plugin_from\" json:\"plugin_from,omitempty\"`\n\t// api version\n\tApiVersionMs *int64 `thrift:\"ApiVersionMs,100,optional\" form:\"api_version_ms\" json:\"api_version_ms,string,omitempty\"`\n}\n\nfunc NewPluginInfo() *PluginInfo {\n\treturn &PluginInfo{}\n}\n\nfunc (p *PluginInfo) InitDefault() {\n}\n\nvar PluginInfo_PluginId_DEFAULT int64\n\nfunc (p *PluginInfo) GetPluginId() (v int64) {\n\tif !p.IsSetPluginId() {\n\t\treturn PluginInfo_PluginId_DEFAULT\n\t}\n\treturn *p.PluginId\n}\n\nvar PluginInfo_ApiId_DEFAULT int64\n\nfunc (p *PluginInfo) GetApiId() (v int64) {\n\tif !p.IsSetApiId() {\n\t\treturn PluginInfo_ApiId_DEFAULT\n\t}\n\treturn *p.ApiId\n}\n\nvar PluginInfo_ApiName_DEFAULT string\n\nfunc (p *PluginInfo) GetApiName() (v string) {\n\tif !p.IsSetApiName() {\n\t\treturn PluginInfo_ApiName_DEFAULT\n\t}\n\treturn *p.ApiName\n}\n\nvar PluginInfo_PluginFrom_DEFAULT PluginFrom\n\nfunc (p *PluginInfo) GetPluginFrom() (v PluginFrom) {\n\tif !p.IsSetPluginFrom() {\n\t\treturn PluginInfo_PluginFrom_DEFAULT\n\t}\n\treturn *p.PluginFrom\n}\n\nvar PluginInfo_ApiVersionMs_DEFAULT int64\n\nfunc (p *PluginInfo) GetApiVersionMs() (v int64) {\n\tif !p.IsSetApiVersionMs() {\n\t\treturn PluginInfo_ApiVersionMs_DEFAULT\n\t}\n\treturn *p.ApiVersionMs\n}\n\nvar fieldIDToName_PluginInfo = map[int16]string{\n\t1:   \"PluginId\",\n\t2:   \"ApiId\",\n\t3:   \"ApiName\",\n\t99:  \"PluginFrom\",\n\t100: \"ApiVersionMs\",\n}\n\nfunc (p *PluginInfo) IsSetPluginId() bool {\n\treturn p.PluginId != nil\n}\n\nfunc (p *PluginInfo) IsSetApiId() bool {\n\treturn p.ApiId != nil\n}\n\nfunc (p *PluginInfo) IsSetApiName() bool {\n\treturn p.ApiName != nil\n}\n\nfunc (p *PluginInfo) IsSetPluginFrom() bool {\n\treturn p.PluginFrom != nil\n}\n\nfunc (p *PluginInfo) IsSetApiVersionMs() bool {\n\treturn p.ApiVersionMs != nil\n}\n\nfunc (p *PluginInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 99:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField99(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 100:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField100(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginId = _field\n\treturn nil\n}\nfunc (p *PluginInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ApiId = _field\n\treturn nil\n}\nfunc (p *PluginInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ApiName = _field\n\treturn nil\n}\nfunc (p *PluginInfo) ReadField99(iprot thrift.TProtocol) error {\n\n\tvar _field *PluginFrom\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := PluginFrom(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginFrom = _field\n\treturn nil\n}\nfunc (p *PluginInfo) ReadField100(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ApiVersionMs = _field\n\treturn nil\n}\n\nfunc (p *PluginInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField99(oprot); err != nil {\n\t\t\tfieldId = 99\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField100(oprot); err != nil {\n\t\t\tfieldId = 100\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginId() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginId\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.PluginId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetApiId() {\n\t\tif err = oprot.WriteFieldBegin(\"ApiId\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ApiId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetApiName() {\n\t\tif err = oprot.WriteFieldBegin(\"ApiName\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ApiName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginInfo) writeField99(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginFrom() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginFrom\", thrift.I32, 99); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginFrom)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 99 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 99 end error: \", p), err)\n}\nfunc (p *PluginInfo) writeField100(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetApiVersionMs() {\n\t\tif err = oprot.WriteFieldBegin(\"ApiVersionMs\", thrift.I64, 100); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ApiVersionMs); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 100 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 100 end error: \", p), err)\n}\n\nfunc (p *PluginInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginInfo(%+v)\", *p)\n\n}\n\ntype WorkflowInfo struct {\n\t// WorkflowId\n\tWorkflowId *int64 `thrift:\"WorkflowId,1,optional\" form:\"workflow_id\" json:\"workflow_id,string,omitempty\"`\n\t// Plugin ID\n\tPluginId *int64 `thrift:\"PluginId,2,optional\" form:\"plugin_id\" json:\"plugin_id,string,omitempty\"`\n\t// api Id\n\tApiId *int64 `thrift:\"ApiId,3,optional\" form:\"api_id\" json:\"api_id,string,omitempty\"`\n\t// Workflow or imageflow, default to workflow\n\tFlowMode *WorkflowMode `thrift:\"FlowMode,4,optional\" form:\"flow_mode\" json:\"flow_mode,omitempty\"`\n\t// workflow name\n\tWorkflowName *string            `thrift:\"WorkflowName,5,optional\" form:\"workflow_name\" json:\"workflow_name,omitempty\"`\n\tDesc         *string            `thrift:\"Desc,6,optional\" form:\"desc\" form:\"desc\" json:\"desc,omitempty\"`\n\tParameters   []*PluginParameter `thrift:\"Parameters,7,optional\" form:\"parameters\" form:\"parameters\" json:\"parameters,omitempty\"`\n\tPluginIcon   *string            `thrift:\"PluginIcon,8,optional\" form:\"plugin_icon\" form:\"plugin_icon\" json:\"plugin_icon,omitempty\"`\n}\n\nfunc NewWorkflowInfo() *WorkflowInfo {\n\treturn &WorkflowInfo{}\n}\n\nfunc (p *WorkflowInfo) InitDefault() {\n}\n\nvar WorkflowInfo_WorkflowId_DEFAULT int64\n\nfunc (p *WorkflowInfo) GetWorkflowId() (v int64) {\n\tif !p.IsSetWorkflowId() {\n\t\treturn WorkflowInfo_WorkflowId_DEFAULT\n\t}\n\treturn *p.WorkflowId\n}\n\nvar WorkflowInfo_PluginId_DEFAULT int64\n\nfunc (p *WorkflowInfo) GetPluginId() (v int64) {\n\tif !p.IsSetPluginId() {\n\t\treturn WorkflowInfo_PluginId_DEFAULT\n\t}\n\treturn *p.PluginId\n}\n\nvar WorkflowInfo_ApiId_DEFAULT int64\n\nfunc (p *WorkflowInfo) GetApiId() (v int64) {\n\tif !p.IsSetApiId() {\n\t\treturn WorkflowInfo_ApiId_DEFAULT\n\t}\n\treturn *p.ApiId\n}\n\nvar WorkflowInfo_FlowMode_DEFAULT WorkflowMode\n\nfunc (p *WorkflowInfo) GetFlowMode() (v WorkflowMode) {\n\tif !p.IsSetFlowMode() {\n\t\treturn WorkflowInfo_FlowMode_DEFAULT\n\t}\n\treturn *p.FlowMode\n}\n\nvar WorkflowInfo_WorkflowName_DEFAULT string\n\nfunc (p *WorkflowInfo) GetWorkflowName() (v string) {\n\tif !p.IsSetWorkflowName() {\n\t\treturn WorkflowInfo_WorkflowName_DEFAULT\n\t}\n\treturn *p.WorkflowName\n}\n\nvar WorkflowInfo_Desc_DEFAULT string\n\nfunc (p *WorkflowInfo) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn WorkflowInfo_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar WorkflowInfo_Parameters_DEFAULT []*PluginParameter\n\nfunc (p *WorkflowInfo) GetParameters() (v []*PluginParameter) {\n\tif !p.IsSetParameters() {\n\t\treturn WorkflowInfo_Parameters_DEFAULT\n\t}\n\treturn p.Parameters\n}\n\nvar WorkflowInfo_PluginIcon_DEFAULT string\n\nfunc (p *WorkflowInfo) GetPluginIcon() (v string) {\n\tif !p.IsSetPluginIcon() {\n\t\treturn WorkflowInfo_PluginIcon_DEFAULT\n\t}\n\treturn *p.PluginIcon\n}\n\nvar fieldIDToName_WorkflowInfo = map[int16]string{\n\t1: \"WorkflowId\",\n\t2: \"PluginId\",\n\t3: \"ApiId\",\n\t4: \"FlowMode\",\n\t5: \"WorkflowName\",\n\t6: \"Desc\",\n\t7: \"Parameters\",\n\t8: \"PluginIcon\",\n}\n\nfunc (p *WorkflowInfo) IsSetWorkflowId() bool {\n\treturn p.WorkflowId != nil\n}\n\nfunc (p *WorkflowInfo) IsSetPluginId() bool {\n\treturn p.PluginId != nil\n}\n\nfunc (p *WorkflowInfo) IsSetApiId() bool {\n\treturn p.ApiId != nil\n}\n\nfunc (p *WorkflowInfo) IsSetFlowMode() bool {\n\treturn p.FlowMode != nil\n}\n\nfunc (p *WorkflowInfo) IsSetWorkflowName() bool {\n\treturn p.WorkflowName != nil\n}\n\nfunc (p *WorkflowInfo) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *WorkflowInfo) IsSetParameters() bool {\n\treturn p.Parameters != nil\n}\n\nfunc (p *WorkflowInfo) IsSetPluginIcon() bool {\n\treturn p.PluginIcon != nil\n}\n\nfunc (p *WorkflowInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowId = _field\n\treturn nil\n}\nfunc (p *WorkflowInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginId = _field\n\treturn nil\n}\nfunc (p *WorkflowInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ApiId = _field\n\treturn nil\n}\nfunc (p *WorkflowInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := WorkflowMode(v)\n\t\t_field = &tmp\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *WorkflowInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowName = _field\n\treturn nil\n}\nfunc (p *WorkflowInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *WorkflowInfo) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginParameter, 0, size)\n\tvalues := make([]PluginParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\nfunc (p *WorkflowInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginIcon = _field\n\treturn nil\n}\n\nfunc (p *WorkflowInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowId() {\n\t\tif err = oprot.WriteFieldBegin(\"WorkflowId\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.WorkflowId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginId() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginId\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.PluginId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetApiId() {\n\t\tif err = oprot.WriteFieldBegin(\"ApiId\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ApiId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFlowMode() {\n\t\tif err = oprot.WriteFieldBegin(\"FlowMode\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FlowMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowName() {\n\t\tif err = oprot.WriteFieldBegin(\"WorkflowName\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WorkflowName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"Desc\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkflowInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"Parameters\", thrift.LIST, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Parameters)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Parameters {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkflowInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginIcon() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginIcon\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PluginIcon); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *WorkflowInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowInfo(%+v)\", *p)\n\n}\n\ntype PluginParameter struct {\n\tName          *string            `thrift:\"Name,1,optional\" form:\"name\" json:\"name,omitempty\"`\n\tDesc          *string            `thrift:\"Desc,2,optional\" form:\"desc\" json:\"desc,omitempty\"`\n\tRequired      *bool              `thrift:\"Required,3,optional\" form:\"required\" json:\"required,omitempty\"`\n\tType          *string            `thrift:\"Type,4,optional\" form:\"type\" json:\"type,omitempty\"`\n\tSubParameters []*PluginParameter `thrift:\"SubParameters,5,optional\" form:\"sub_parameters\" json:\"sub_parameters,omitempty\"`\n\t// If Type is an array, there is a subtype\n\tSubType *string `thrift:\"SubType,6,optional\" form:\"sub_type\" json:\"sub_type,omitempty\"`\n}\n\nfunc NewPluginParameter() *PluginParameter {\n\treturn &PluginParameter{}\n}\n\nfunc (p *PluginParameter) InitDefault() {\n}\n\nvar PluginParameter_Name_DEFAULT string\n\nfunc (p *PluginParameter) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn PluginParameter_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar PluginParameter_Desc_DEFAULT string\n\nfunc (p *PluginParameter) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn PluginParameter_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar PluginParameter_Required_DEFAULT bool\n\nfunc (p *PluginParameter) GetRequired() (v bool) {\n\tif !p.IsSetRequired() {\n\t\treturn PluginParameter_Required_DEFAULT\n\t}\n\treturn *p.Required\n}\n\nvar PluginParameter_Type_DEFAULT string\n\nfunc (p *PluginParameter) GetType() (v string) {\n\tif !p.IsSetType() {\n\t\treturn PluginParameter_Type_DEFAULT\n\t}\n\treturn *p.Type\n}\n\nvar PluginParameter_SubParameters_DEFAULT []*PluginParameter\n\nfunc (p *PluginParameter) GetSubParameters() (v []*PluginParameter) {\n\tif !p.IsSetSubParameters() {\n\t\treturn PluginParameter_SubParameters_DEFAULT\n\t}\n\treturn p.SubParameters\n}\n\nvar PluginParameter_SubType_DEFAULT string\n\nfunc (p *PluginParameter) GetSubType() (v string) {\n\tif !p.IsSetSubType() {\n\t\treturn PluginParameter_SubType_DEFAULT\n\t}\n\treturn *p.SubType\n}\n\nvar fieldIDToName_PluginParameter = map[int16]string{\n\t1: \"Name\",\n\t2: \"Desc\",\n\t3: \"Required\",\n\t4: \"Type\",\n\t5: \"SubParameters\",\n\t6: \"SubType\",\n}\n\nfunc (p *PluginParameter) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *PluginParameter) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *PluginParameter) IsSetRequired() bool {\n\treturn p.Required != nil\n}\n\nfunc (p *PluginParameter) IsSetType() bool {\n\treturn p.Type != nil\n}\n\nfunc (p *PluginParameter) IsSetSubParameters() bool {\n\treturn p.SubParameters != nil\n}\n\nfunc (p *PluginParameter) IsSetSubType() bool {\n\treturn p.SubType != nil\n}\n\nfunc (p *PluginParameter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginParameter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginParameter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Required = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginParameter, 0, size)\n\tvalues := make([]PluginParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubParameters = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubType = _field\n\treturn nil\n}\n\nfunc (p *PluginParameter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginParameter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginParameter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"Desc\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRequired() {\n\t\tif err = oprot.WriteFieldBegin(\"Required\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Required); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetType() {\n\t\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Type); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"SubParameters\", thrift.LIST, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubParameters)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SubParameters {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubType() {\n\t\tif err = oprot.WriteFieldBegin(\"SubType\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SubType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *PluginParameter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginParameter(%+v)\", *p)\n\n}\n\ntype OnboardingInfo struct {\n\t// Coze Opening Dialog\n\tPrologue *string `thrift:\"Prologue,1,optional\" form:\"prologue\" json:\"prologue,omitempty\"`\n\t// suggestion question\n\tSuggestedQuestions []string `thrift:\"SuggestedQuestions,2,optional\" form:\"suggested_questions\" json:\"suggested_questions,omitempty\"`\n\t// Opener model\n\tOnboardingMode *OnboardingMode `thrift:\"OnboardingMode,3,optional\" form:\"onboarding_mode\" json:\"onboarding_mode,omitempty\"`\n\t// LLM Generation, User-defined Prompt\n\tCustomizedOnboardingPrompt *string `thrift:\"CustomizedOnboardingPrompt,4,optional\" form:\"customized_onboarding_prompt\" json:\"customized_onboarding_prompt,omitempty\"`\n\t// The opening statement presets the problem display method, and the default is 0 random display.\n\tSuggestedQuestionsShowMode *SuggestedQuestionsShowMode `thrift:\"SuggestedQuestionsShowMode,5,optional\" form:\"suggested_questions_show_mode\" json:\"suggested_questions_show_mode,omitempty\"`\n}\n\nfunc NewOnboardingInfo() *OnboardingInfo {\n\treturn &OnboardingInfo{}\n}\n\nfunc (p *OnboardingInfo) InitDefault() {\n}\n\nvar OnboardingInfo_Prologue_DEFAULT string\n\nfunc (p *OnboardingInfo) GetPrologue() (v string) {\n\tif !p.IsSetPrologue() {\n\t\treturn OnboardingInfo_Prologue_DEFAULT\n\t}\n\treturn *p.Prologue\n}\n\nvar OnboardingInfo_SuggestedQuestions_DEFAULT []string\n\nfunc (p *OnboardingInfo) GetSuggestedQuestions() (v []string) {\n\tif !p.IsSetSuggestedQuestions() {\n\t\treturn OnboardingInfo_SuggestedQuestions_DEFAULT\n\t}\n\treturn p.SuggestedQuestions\n}\n\nvar OnboardingInfo_OnboardingMode_DEFAULT OnboardingMode\n\nfunc (p *OnboardingInfo) GetOnboardingMode() (v OnboardingMode) {\n\tif !p.IsSetOnboardingMode() {\n\t\treturn OnboardingInfo_OnboardingMode_DEFAULT\n\t}\n\treturn *p.OnboardingMode\n}\n\nvar OnboardingInfo_CustomizedOnboardingPrompt_DEFAULT string\n\nfunc (p *OnboardingInfo) GetCustomizedOnboardingPrompt() (v string) {\n\tif !p.IsSetCustomizedOnboardingPrompt() {\n\t\treturn OnboardingInfo_CustomizedOnboardingPrompt_DEFAULT\n\t}\n\treturn *p.CustomizedOnboardingPrompt\n}\n\nvar OnboardingInfo_SuggestedQuestionsShowMode_DEFAULT SuggestedQuestionsShowMode\n\nfunc (p *OnboardingInfo) GetSuggestedQuestionsShowMode() (v SuggestedQuestionsShowMode) {\n\tif !p.IsSetSuggestedQuestionsShowMode() {\n\t\treturn OnboardingInfo_SuggestedQuestionsShowMode_DEFAULT\n\t}\n\treturn *p.SuggestedQuestionsShowMode\n}\n\nvar fieldIDToName_OnboardingInfo = map[int16]string{\n\t1: \"Prologue\",\n\t2: \"SuggestedQuestions\",\n\t3: \"OnboardingMode\",\n\t4: \"CustomizedOnboardingPrompt\",\n\t5: \"SuggestedQuestionsShowMode\",\n}\n\nfunc (p *OnboardingInfo) IsSetPrologue() bool {\n\treturn p.Prologue != nil\n}\n\nfunc (p *OnboardingInfo) IsSetSuggestedQuestions() bool {\n\treturn p.SuggestedQuestions != nil\n}\n\nfunc (p *OnboardingInfo) IsSetOnboardingMode() bool {\n\treturn p.OnboardingMode != nil\n}\n\nfunc (p *OnboardingInfo) IsSetCustomizedOnboardingPrompt() bool {\n\treturn p.CustomizedOnboardingPrompt != nil\n}\n\nfunc (p *OnboardingInfo) IsSetSuggestedQuestionsShowMode() bool {\n\treturn p.SuggestedQuestionsShowMode != nil\n}\n\nfunc (p *OnboardingInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OnboardingInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OnboardingInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Prologue = _field\n\treturn nil\n}\nfunc (p *OnboardingInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestedQuestions = _field\n\treturn nil\n}\nfunc (p *OnboardingInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *OnboardingMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := OnboardingMode(v)\n\t\t_field = &tmp\n\t}\n\tp.OnboardingMode = _field\n\treturn nil\n}\nfunc (p *OnboardingInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CustomizedOnboardingPrompt = _field\n\treturn nil\n}\nfunc (p *OnboardingInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *SuggestedQuestionsShowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := SuggestedQuestionsShowMode(v)\n\t\t_field = &tmp\n\t}\n\tp.SuggestedQuestionsShowMode = _field\n\treturn nil\n}\n\nfunc (p *OnboardingInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OnboardingInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OnboardingInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrologue() {\n\t\tif err = oprot.WriteFieldBegin(\"Prologue\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Prologue); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OnboardingInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestedQuestions() {\n\t\tif err = oprot.WriteFieldBegin(\"SuggestedQuestions\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.SuggestedQuestions)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SuggestedQuestions {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OnboardingInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOnboardingMode() {\n\t\tif err = oprot.WriteFieldBegin(\"OnboardingMode\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.OnboardingMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *OnboardingInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCustomizedOnboardingPrompt() {\n\t\tif err = oprot.WriteFieldBegin(\"CustomizedOnboardingPrompt\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CustomizedOnboardingPrompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *OnboardingInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestedQuestionsShowMode() {\n\t\tif err = oprot.WriteFieldBegin(\"SuggestedQuestionsShowMode\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SuggestedQuestionsShowMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *OnboardingInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OnboardingInfo(%+v)\", *p)\n\n}\n\n// suggest\ntype SuggestReplyInfo struct {\n\t// Coze Auto-Suggestion\n\tSuggestReplyMode *SuggestReplyMode `thrift:\"SuggestReplyMode,1,optional\" form:\"suggest_reply_mode\" json:\"suggest_reply_mode,omitempty\"`\n\t// user-defined suggestion questions\n\tCustomizedSuggestPrompt *string `thrift:\"CustomizedSuggestPrompt,2,optional\" form:\"customized_suggest_prompt\" json:\"customized_suggest_prompt,omitempty\"`\n\t// The name of the ChainTask that runs the Prompt\n\tChainTaskName *string `thrift:\"ChainTaskName,3,optional\" form:\"chain_task_name\" json:\"chain_task_name,omitempty\"`\n}\n\nfunc NewSuggestReplyInfo() *SuggestReplyInfo {\n\treturn &SuggestReplyInfo{}\n}\n\nfunc (p *SuggestReplyInfo) InitDefault() {\n}\n\nvar SuggestReplyInfo_SuggestReplyMode_DEFAULT SuggestReplyMode\n\nfunc (p *SuggestReplyInfo) GetSuggestReplyMode() (v SuggestReplyMode) {\n\tif !p.IsSetSuggestReplyMode() {\n\t\treturn SuggestReplyInfo_SuggestReplyMode_DEFAULT\n\t}\n\treturn *p.SuggestReplyMode\n}\n\nvar SuggestReplyInfo_CustomizedSuggestPrompt_DEFAULT string\n\nfunc (p *SuggestReplyInfo) GetCustomizedSuggestPrompt() (v string) {\n\tif !p.IsSetCustomizedSuggestPrompt() {\n\t\treturn SuggestReplyInfo_CustomizedSuggestPrompt_DEFAULT\n\t}\n\treturn *p.CustomizedSuggestPrompt\n}\n\nvar SuggestReplyInfo_ChainTaskName_DEFAULT string\n\nfunc (p *SuggestReplyInfo) GetChainTaskName() (v string) {\n\tif !p.IsSetChainTaskName() {\n\t\treturn SuggestReplyInfo_ChainTaskName_DEFAULT\n\t}\n\treturn *p.ChainTaskName\n}\n\nvar fieldIDToName_SuggestReplyInfo = map[int16]string{\n\t1: \"SuggestReplyMode\",\n\t2: \"CustomizedSuggestPrompt\",\n\t3: \"ChainTaskName\",\n}\n\nfunc (p *SuggestReplyInfo) IsSetSuggestReplyMode() bool {\n\treturn p.SuggestReplyMode != nil\n}\n\nfunc (p *SuggestReplyInfo) IsSetCustomizedSuggestPrompt() bool {\n\treturn p.CustomizedSuggestPrompt != nil\n}\n\nfunc (p *SuggestReplyInfo) IsSetChainTaskName() bool {\n\treturn p.ChainTaskName != nil\n}\n\nfunc (p *SuggestReplyInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SuggestReplyInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SuggestReplyInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *SuggestReplyMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := SuggestReplyMode(v)\n\t\t_field = &tmp\n\t}\n\tp.SuggestReplyMode = _field\n\treturn nil\n}\nfunc (p *SuggestReplyInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CustomizedSuggestPrompt = _field\n\treturn nil\n}\nfunc (p *SuggestReplyInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ChainTaskName = _field\n\treturn nil\n}\n\nfunc (p *SuggestReplyInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SuggestReplyInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SuggestReplyInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestReplyMode() {\n\t\tif err = oprot.WriteFieldBegin(\"SuggestReplyMode\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SuggestReplyMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SuggestReplyInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCustomizedSuggestPrompt() {\n\t\tif err = oprot.WriteFieldBegin(\"CustomizedSuggestPrompt\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CustomizedSuggestPrompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SuggestReplyInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChainTaskName() {\n\t\tif err = oprot.WriteFieldBegin(\"ChainTaskName\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ChainTaskName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *SuggestReplyInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SuggestReplyInfo(%+v)\", *p)\n\n}\n\n// tts Voices\ntype VoicesInfo struct {\n\t// Coze Voices\n\tMuted *bool `thrift:\"Muted,1,optional\" form:\"muted\" json:\"muted,omitempty\"`\n\t// Multi-voice voice configuration\n\tI18nLangVoice map[string]int64 `thrift:\"I18nLangVoice,2,optional\" form:\"i18n_lang_voice\" json:\"i18n_lang_voice,omitempty\"`\n\t// Multi-voice tone configuration, string type\n\tI18nLangVoiceStr map[string]string `thrift:\"I18nLangVoiceStr,7,optional\" form:\"i18n_lang_voice_str\" json:\"i18n_lang_voice_str,omitempty\"`\n\t// Whether to play automatically\n\tAutoplay *bool `thrift:\"Autoplay,3,optional\" form:\"autoplay\" json:\"autoplay,omitempty\"`\n\t// autoplay timbre\n\tAutoplayVoice map[string]int64 `thrift:\"AutoplayVoice,4,optional\" form:\"autoplay_voice\" json:\"autoplay_voice,omitempty\"`\n\t// Whether to turn off voice calls, true: turn off false: turn on, default is false\n\tCloseVoiceCall *bool `thrift:\"CloseVoiceCall,5,optional\" form:\"voice_call\" json:\"voice_call,omitempty\"`\n\t// Default user input type\n\tDefaultUserInputType *DefaultUserInputType `thrift:\"DefaultUserInputType,6,optional\" form:\"default_user_input_type\" json:\"default_user_input_type,omitempty\"`\n}\n\nfunc NewVoicesInfo() *VoicesInfo {\n\treturn &VoicesInfo{}\n}\n\nfunc (p *VoicesInfo) InitDefault() {\n}\n\nvar VoicesInfo_Muted_DEFAULT bool\n\nfunc (p *VoicesInfo) GetMuted() (v bool) {\n\tif !p.IsSetMuted() {\n\t\treturn VoicesInfo_Muted_DEFAULT\n\t}\n\treturn *p.Muted\n}\n\nvar VoicesInfo_I18nLangVoice_DEFAULT map[string]int64\n\nfunc (p *VoicesInfo) GetI18nLangVoice() (v map[string]int64) {\n\tif !p.IsSetI18nLangVoice() {\n\t\treturn VoicesInfo_I18nLangVoice_DEFAULT\n\t}\n\treturn p.I18nLangVoice\n}\n\nvar VoicesInfo_I18nLangVoiceStr_DEFAULT map[string]string\n\nfunc (p *VoicesInfo) GetI18nLangVoiceStr() (v map[string]string) {\n\tif !p.IsSetI18nLangVoiceStr() {\n\t\treturn VoicesInfo_I18nLangVoiceStr_DEFAULT\n\t}\n\treturn p.I18nLangVoiceStr\n}\n\nvar VoicesInfo_Autoplay_DEFAULT bool\n\nfunc (p *VoicesInfo) GetAutoplay() (v bool) {\n\tif !p.IsSetAutoplay() {\n\t\treturn VoicesInfo_Autoplay_DEFAULT\n\t}\n\treturn *p.Autoplay\n}\n\nvar VoicesInfo_AutoplayVoice_DEFAULT map[string]int64\n\nfunc (p *VoicesInfo) GetAutoplayVoice() (v map[string]int64) {\n\tif !p.IsSetAutoplayVoice() {\n\t\treturn VoicesInfo_AutoplayVoice_DEFAULT\n\t}\n\treturn p.AutoplayVoice\n}\n\nvar VoicesInfo_CloseVoiceCall_DEFAULT bool\n\nfunc (p *VoicesInfo) GetCloseVoiceCall() (v bool) {\n\tif !p.IsSetCloseVoiceCall() {\n\t\treturn VoicesInfo_CloseVoiceCall_DEFAULT\n\t}\n\treturn *p.CloseVoiceCall\n}\n\nvar VoicesInfo_DefaultUserInputType_DEFAULT DefaultUserInputType\n\nfunc (p *VoicesInfo) GetDefaultUserInputType() (v DefaultUserInputType) {\n\tif !p.IsSetDefaultUserInputType() {\n\t\treturn VoicesInfo_DefaultUserInputType_DEFAULT\n\t}\n\treturn *p.DefaultUserInputType\n}\n\nvar fieldIDToName_VoicesInfo = map[int16]string{\n\t1: \"Muted\",\n\t2: \"I18nLangVoice\",\n\t7: \"I18nLangVoiceStr\",\n\t3: \"Autoplay\",\n\t4: \"AutoplayVoice\",\n\t5: \"CloseVoiceCall\",\n\t6: \"DefaultUserInputType\",\n}\n\nfunc (p *VoicesInfo) IsSetMuted() bool {\n\treturn p.Muted != nil\n}\n\nfunc (p *VoicesInfo) IsSetI18nLangVoice() bool {\n\treturn p.I18nLangVoice != nil\n}\n\nfunc (p *VoicesInfo) IsSetI18nLangVoiceStr() bool {\n\treturn p.I18nLangVoiceStr != nil\n}\n\nfunc (p *VoicesInfo) IsSetAutoplay() bool {\n\treturn p.Autoplay != nil\n}\n\nfunc (p *VoicesInfo) IsSetAutoplayVoice() bool {\n\treturn p.AutoplayVoice != nil\n}\n\nfunc (p *VoicesInfo) IsSetCloseVoiceCall() bool {\n\treturn p.CloseVoiceCall != nil\n}\n\nfunc (p *VoicesInfo) IsSetDefaultUserInputType() bool {\n\treturn p.DefaultUserInputType != nil\n}\n\nfunc (p *VoicesInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_VoicesInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *VoicesInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Muted = _field\n\treturn nil\n}\nfunc (p *VoicesInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]int64, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.I18nLangVoice = _field\n\treturn nil\n}\nfunc (p *VoicesInfo) ReadField7(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.I18nLangVoiceStr = _field\n\treturn nil\n}\nfunc (p *VoicesInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Autoplay = _field\n\treturn nil\n}\nfunc (p *VoicesInfo) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]int64, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.AutoplayVoice = _field\n\treturn nil\n}\nfunc (p *VoicesInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CloseVoiceCall = _field\n\treturn nil\n}\nfunc (p *VoicesInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *DefaultUserInputType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DefaultUserInputType(v)\n\t\t_field = &tmp\n\t}\n\tp.DefaultUserInputType = _field\n\treturn nil\n}\n\nfunc (p *VoicesInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"VoicesInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *VoicesInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMuted() {\n\t\tif err = oprot.WriteFieldBegin(\"Muted\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Muted); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *VoicesInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetI18nLangVoice() {\n\t\tif err = oprot.WriteFieldBegin(\"I18nLangVoice\", thrift.MAP, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.I64, len(p.I18nLangVoice)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.I18nLangVoice {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *VoicesInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetI18nLangVoiceStr() {\n\t\tif err = oprot.WriteFieldBegin(\"I18nLangVoiceStr\", thrift.MAP, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.I18nLangVoiceStr)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.I18nLangVoiceStr {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *VoicesInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAutoplay() {\n\t\tif err = oprot.WriteFieldBegin(\"Autoplay\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Autoplay); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *VoicesInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAutoplayVoice() {\n\t\tif err = oprot.WriteFieldBegin(\"AutoplayVoice\", thrift.MAP, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.I64, len(p.AutoplayVoice)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.AutoplayVoice {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *VoicesInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCloseVoiceCall() {\n\t\tif err = oprot.WriteFieldBegin(\"CloseVoiceCall\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.CloseVoiceCall); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *VoicesInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDefaultUserInputType() {\n\t\tif err = oprot.WriteFieldBegin(\"DefaultUserInputType\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.DefaultUserInputType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *VoicesInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"VoicesInfo(%+v)\", *p)\n\n}\n\ntype AnswerActionTriggerRule struct {\n\tType           AnswerActionTriggerType `thrift:\"Type,1\" form:\"type\" json:\"type\"`\n\tNeedPreloading bool                    `thrift:\"NeedPreloading,2\" form:\"need_preloading\" json:\"need_preloading\"`\n\t// According to AnswerActionTriggerType\n\tTriggerData map[string]string `thrift:\"TriggerData,3\" form:\"trigger_data\" json:\"trigger_data\"`\n}\n\nfunc NewAnswerActionTriggerRule() *AnswerActionTriggerRule {\n\treturn &AnswerActionTriggerRule{}\n}\n\nfunc (p *AnswerActionTriggerRule) InitDefault() {\n}\n\nfunc (p *AnswerActionTriggerRule) GetType() (v AnswerActionTriggerType) {\n\treturn p.Type\n}\n\nfunc (p *AnswerActionTriggerRule) GetNeedPreloading() (v bool) {\n\treturn p.NeedPreloading\n}\n\nfunc (p *AnswerActionTriggerRule) GetTriggerData() (v map[string]string) {\n\treturn p.TriggerData\n}\n\nvar fieldIDToName_AnswerActionTriggerRule = map[int16]string{\n\t1: \"Type\",\n\t2: \"NeedPreloading\",\n\t3: \"TriggerData\",\n}\n\nfunc (p *AnswerActionTriggerRule) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AnswerActionTriggerRule[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AnswerActionTriggerRule) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field AnswerActionTriggerType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = AnswerActionTriggerType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *AnswerActionTriggerRule) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NeedPreloading = _field\n\treturn nil\n}\nfunc (p *AnswerActionTriggerRule) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TriggerData = _field\n\treturn nil\n}\n\nfunc (p *AnswerActionTriggerRule) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AnswerActionTriggerRule\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AnswerActionTriggerRule) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AnswerActionTriggerRule) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"NeedPreloading\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.NeedPreloading); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AnswerActionTriggerRule) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TriggerData\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.TriggerData)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.TriggerData {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *AnswerActionTriggerRule) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AnswerActionTriggerRule(%+v)\", *p)\n\n}\n\ntype ActionIcon struct {\n\t// Customized button type does not need to be passed\n\tType string `thrift:\"Type,1\" form:\"type\" json:\"type\"`\n\t// default state\n\tDefaultUrl string `thrift:\"DefaultUrl,2\" form:\"default_url\" json:\"default_url\"`\n\t// The state of pressing the button\n\tActiveUrl string `thrift:\"ActiveUrl,3\" form:\"active_url\" json:\"active_url\"`\n\t// default state\n\tDefaultUri string `thrift:\"DefaultUri,4\" form:\"default_uri\" json:\"default_uri\"`\n\t// The state of pressing the button\n\tActiveUri string `thrift:\"ActiveUri,5\" form:\"active_uri\" json:\"active_uri\"`\n}\n\nfunc NewActionIcon() *ActionIcon {\n\treturn &ActionIcon{}\n}\n\nfunc (p *ActionIcon) InitDefault() {\n}\n\nfunc (p *ActionIcon) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *ActionIcon) GetDefaultUrl() (v string) {\n\treturn p.DefaultUrl\n}\n\nfunc (p *ActionIcon) GetActiveUrl() (v string) {\n\treturn p.ActiveUrl\n}\n\nfunc (p *ActionIcon) GetDefaultUri() (v string) {\n\treturn p.DefaultUri\n}\n\nfunc (p *ActionIcon) GetActiveUri() (v string) {\n\treturn p.ActiveUri\n}\n\nvar fieldIDToName_ActionIcon = map[int16]string{\n\t1: \"Type\",\n\t2: \"DefaultUrl\",\n\t3: \"ActiveUrl\",\n\t4: \"DefaultUri\",\n\t5: \"ActiveUri\",\n}\n\nfunc (p *ActionIcon) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ActionIcon[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ActionIcon) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ActionIcon) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DefaultUrl = _field\n\treturn nil\n}\nfunc (p *ActionIcon) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ActiveUrl = _field\n\treturn nil\n}\nfunc (p *ActionIcon) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DefaultUri = _field\n\treturn nil\n}\nfunc (p *ActionIcon) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ActiveUri = _field\n\treturn nil\n}\n\nfunc (p *ActionIcon) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ActionIcon\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ActionIcon) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ActionIcon) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DefaultUrl\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DefaultUrl); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ActionIcon) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ActiveUrl\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ActiveUrl); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ActionIcon) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DefaultUri\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DefaultUri); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ActionIcon) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ActiveUri\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ActiveUri); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *ActionIcon) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ActionIcon(%+v)\", *p)\n\n}\n\ntype AnswerActionConfig struct {\n\t// The prefabricated one only needs to pass the key.\n\tKey string `thrift:\"Key,1\" form:\"key\" json:\"key\"`\n\t// default\n\tName string `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\t// Send uri.\n\tIcon *ActionIcon `thrift:\"Icon,3\" form:\"icon\" json:\"icon\"`\n\t// Store the name of user i18\n\tNameI18n map[string]string `thrift:\"NameI18n,4\" form:\"name_i18n\" json:\"name_i18n\"`\n\t// Direct has no value; WebView contains webview_url and webview_callback_psm keys; SendMessage contains send_message_prompt\n\tTriggerRule *AnswerActionTriggerRule `thrift:\"TriggerRule,5\" form:\"trigger_rule\" json:\"trigger_rule\"`\n\t// location\n\tPosition int32 `thrift:\"Position,6\" form:\"position\" json:\"position\"`\n}\n\nfunc NewAnswerActionConfig() *AnswerActionConfig {\n\treturn &AnswerActionConfig{}\n}\n\nfunc (p *AnswerActionConfig) InitDefault() {\n}\n\nfunc (p *AnswerActionConfig) GetKey() (v string) {\n\treturn p.Key\n}\n\nfunc (p *AnswerActionConfig) GetName() (v string) {\n\treturn p.Name\n}\n\nvar AnswerActionConfig_Icon_DEFAULT *ActionIcon\n\nfunc (p *AnswerActionConfig) GetIcon() (v *ActionIcon) {\n\tif !p.IsSetIcon() {\n\t\treturn AnswerActionConfig_Icon_DEFAULT\n\t}\n\treturn p.Icon\n}\n\nfunc (p *AnswerActionConfig) GetNameI18n() (v map[string]string) {\n\treturn p.NameI18n\n}\n\nvar AnswerActionConfig_TriggerRule_DEFAULT *AnswerActionTriggerRule\n\nfunc (p *AnswerActionConfig) GetTriggerRule() (v *AnswerActionTriggerRule) {\n\tif !p.IsSetTriggerRule() {\n\t\treturn AnswerActionConfig_TriggerRule_DEFAULT\n\t}\n\treturn p.TriggerRule\n}\n\nfunc (p *AnswerActionConfig) GetPosition() (v int32) {\n\treturn p.Position\n}\n\nvar fieldIDToName_AnswerActionConfig = map[int16]string{\n\t1: \"Key\",\n\t2: \"Name\",\n\t3: \"Icon\",\n\t4: \"NameI18n\",\n\t5: \"TriggerRule\",\n\t6: \"Position\",\n}\n\nfunc (p *AnswerActionConfig) IsSetIcon() bool {\n\treturn p.Icon != nil\n}\n\nfunc (p *AnswerActionConfig) IsSetTriggerRule() bool {\n\treturn p.TriggerRule != nil\n}\n\nfunc (p *AnswerActionConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AnswerActionConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AnswerActionConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *AnswerActionConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *AnswerActionConfig) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewActionIcon()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *AnswerActionConfig) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NameI18n = _field\n\treturn nil\n}\nfunc (p *AnswerActionConfig) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewAnswerActionTriggerRule()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TriggerRule = _field\n\treturn nil\n}\nfunc (p *AnswerActionConfig) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Position = _field\n\treturn nil\n}\n\nfunc (p *AnswerActionConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AnswerActionConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AnswerActionConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Key\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Key); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AnswerActionConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AnswerActionConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Icon\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Icon.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *AnswerActionConfig) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"NameI18n\", thrift.MAP, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.NameI18n)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.NameI18n {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *AnswerActionConfig) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TriggerRule\", thrift.STRUCT, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.TriggerRule.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *AnswerActionConfig) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Position\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Position); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *AnswerActionConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AnswerActionConfig(%+v)\", *p)\n\n}\n\ntype AnswerActions struct {\n\tAnswerActionsMode   AnswerActionsMode     `thrift:\"AnswerActionsMode,1\" form:\"answer_actions_mode\" json:\"answer_actions_mode\"`\n\tAnswerActionConfigs []*AnswerActionConfig `thrift:\"AnswerActionConfigs,2\" form:\"answer_action_configs\" json:\"answer_action_configs\"`\n}\n\nfunc NewAnswerActions() *AnswerActions {\n\treturn &AnswerActions{}\n}\n\nfunc (p *AnswerActions) InitDefault() {\n}\n\nfunc (p *AnswerActions) GetAnswerActionsMode() (v AnswerActionsMode) {\n\treturn p.AnswerActionsMode\n}\n\nfunc (p *AnswerActions) GetAnswerActionConfigs() (v []*AnswerActionConfig) {\n\treturn p.AnswerActionConfigs\n}\n\nvar fieldIDToName_AnswerActions = map[int16]string{\n\t1: \"AnswerActionsMode\",\n\t2: \"AnswerActionConfigs\",\n}\n\nfunc (p *AnswerActions) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AnswerActions[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AnswerActions) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field AnswerActionsMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = AnswerActionsMode(v)\n\t}\n\tp.AnswerActionsMode = _field\n\treturn nil\n}\nfunc (p *AnswerActions) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*AnswerActionConfig, 0, size)\n\tvalues := make([]AnswerActionConfig, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.AnswerActionConfigs = _field\n\treturn nil\n}\n\nfunc (p *AnswerActions) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AnswerActions\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AnswerActions) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AnswerActionsMode\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.AnswerActionsMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AnswerActions) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AnswerActionConfigs\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.AnswerActionConfigs)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.AnswerActionConfigs {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *AnswerActions) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AnswerActions(%+v)\", *p)\n\n}\n\n// bot ext\ntype BotExtInfo struct {\n\tAnswerActions   *AnswerActions `thrift:\"AnswerActions,1,optional\" form:\"answer_actions\" json:\"answer_actions,omitempty\"`\n\tCardIds         []int32        `thrift:\"CardIds,2,optional\" form:\"card_ids\" json:\"card_ids,omitempty\"`\n\tPromptId        *int32         `thrift:\"PromptId,3,optional\" form:\"prompt_id\" json:\"prompt_id,omitempty\"`\n\tBotTemplateName *string        `thrift:\"BotTemplateName,4,optional\" form:\"bot_template_name\" json:\"bot_template_name,omitempty\"`\n\tUseUGCVoice     *bool          `thrift:\"UseUGCVoice,5,optional\" form:\"use_ugc_voice\" json:\"use_ugc_voice,omitempty\"`\n\tAppId           *int32         `thrift:\"AppId,6,optional\" form:\"app_id\" json:\"app_id,omitempty\"`\n\t// Whether to bind the Mini Program logo\n\tBindingMp *bool `thrift:\"BindingMp,7,optional\" form:\"binding_mp\" json:\"binding_mp,omitempty\"`\n}\n\nfunc NewBotExtInfo() *BotExtInfo {\n\treturn &BotExtInfo{}\n}\n\nfunc (p *BotExtInfo) InitDefault() {\n}\n\nvar BotExtInfo_AnswerActions_DEFAULT *AnswerActions\n\nfunc (p *BotExtInfo) GetAnswerActions() (v *AnswerActions) {\n\tif !p.IsSetAnswerActions() {\n\t\treturn BotExtInfo_AnswerActions_DEFAULT\n\t}\n\treturn p.AnswerActions\n}\n\nvar BotExtInfo_CardIds_DEFAULT []int32\n\nfunc (p *BotExtInfo) GetCardIds() (v []int32) {\n\tif !p.IsSetCardIds() {\n\t\treturn BotExtInfo_CardIds_DEFAULT\n\t}\n\treturn p.CardIds\n}\n\nvar BotExtInfo_PromptId_DEFAULT int32\n\nfunc (p *BotExtInfo) GetPromptId() (v int32) {\n\tif !p.IsSetPromptId() {\n\t\treturn BotExtInfo_PromptId_DEFAULT\n\t}\n\treturn *p.PromptId\n}\n\nvar BotExtInfo_BotTemplateName_DEFAULT string\n\nfunc (p *BotExtInfo) GetBotTemplateName() (v string) {\n\tif !p.IsSetBotTemplateName() {\n\t\treturn BotExtInfo_BotTemplateName_DEFAULT\n\t}\n\treturn *p.BotTemplateName\n}\n\nvar BotExtInfo_UseUGCVoice_DEFAULT bool\n\nfunc (p *BotExtInfo) GetUseUGCVoice() (v bool) {\n\tif !p.IsSetUseUGCVoice() {\n\t\treturn BotExtInfo_UseUGCVoice_DEFAULT\n\t}\n\treturn *p.UseUGCVoice\n}\n\nvar BotExtInfo_AppId_DEFAULT int32\n\nfunc (p *BotExtInfo) GetAppId() (v int32) {\n\tif !p.IsSetAppId() {\n\t\treturn BotExtInfo_AppId_DEFAULT\n\t}\n\treturn *p.AppId\n}\n\nvar BotExtInfo_BindingMp_DEFAULT bool\n\nfunc (p *BotExtInfo) GetBindingMp() (v bool) {\n\tif !p.IsSetBindingMp() {\n\t\treturn BotExtInfo_BindingMp_DEFAULT\n\t}\n\treturn *p.BindingMp\n}\n\nvar fieldIDToName_BotExtInfo = map[int16]string{\n\t1: \"AnswerActions\",\n\t2: \"CardIds\",\n\t3: \"PromptId\",\n\t4: \"BotTemplateName\",\n\t5: \"UseUGCVoice\",\n\t6: \"AppId\",\n\t7: \"BindingMp\",\n}\n\nfunc (p *BotExtInfo) IsSetAnswerActions() bool {\n\treturn p.AnswerActions != nil\n}\n\nfunc (p *BotExtInfo) IsSetCardIds() bool {\n\treturn p.CardIds != nil\n}\n\nfunc (p *BotExtInfo) IsSetPromptId() bool {\n\treturn p.PromptId != nil\n}\n\nfunc (p *BotExtInfo) IsSetBotTemplateName() bool {\n\treturn p.BotTemplateName != nil\n}\n\nfunc (p *BotExtInfo) IsSetUseUGCVoice() bool {\n\treturn p.UseUGCVoice != nil\n}\n\nfunc (p *BotExtInfo) IsSetAppId() bool {\n\treturn p.AppId != nil\n}\n\nfunc (p *BotExtInfo) IsSetBindingMp() bool {\n\treturn p.BindingMp != nil\n}\n\nfunc (p *BotExtInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotExtInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotExtInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewAnswerActions()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AnswerActions = _field\n\treturn nil\n}\nfunc (p *BotExtInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int32, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int32\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CardIds = _field\n\treturn nil\n}\nfunc (p *BotExtInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PromptId = _field\n\treturn nil\n}\nfunc (p *BotExtInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotTemplateName = _field\n\treturn nil\n}\nfunc (p *BotExtInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UseUGCVoice = _field\n\treturn nil\n}\nfunc (p *BotExtInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AppId = _field\n\treturn nil\n}\nfunc (p *BotExtInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BindingMp = _field\n\treturn nil\n}\n\nfunc (p *BotExtInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotExtInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotExtInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAnswerActions() {\n\t\tif err = oprot.WriteFieldBegin(\"AnswerActions\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.AnswerActions.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotExtInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCardIds() {\n\t\tif err = oprot.WriteFieldBegin(\"CardIds\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.CardIds)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.CardIds {\n\t\t\tif err := oprot.WriteI32(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotExtInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPromptId() {\n\t\tif err = oprot.WriteFieldBegin(\"PromptId\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PromptId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotExtInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotTemplateName() {\n\t\tif err = oprot.WriteFieldBegin(\"BotTemplateName\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BotTemplateName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BotExtInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUseUGCVoice() {\n\t\tif err = oprot.WriteFieldBegin(\"UseUGCVoice\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.UseUGCVoice); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BotExtInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAppId() {\n\t\tif err = oprot.WriteFieldBegin(\"AppId\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.AppId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *BotExtInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindingMp() {\n\t\tif err = oprot.WriteFieldBegin(\"BindingMp\", thrift.BOOL, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.BindingMp); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *BotExtInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotExtInfo(%+v)\", *p)\n\n}\n\ntype KnowledgeInfo struct {\n\t// Knowledge ID\n\tId *string `thrift:\"Id,1,optional\" form:\"id\" json:\"id,omitempty\"`\n\t// Knowledge base name\n\tName *string `thrift:\"Name,2,optional\" form:\"name\" json:\"name,omitempty\"`\n}\n\nfunc NewKnowledgeInfo() *KnowledgeInfo {\n\treturn &KnowledgeInfo{}\n}\n\nfunc (p *KnowledgeInfo) InitDefault() {\n}\n\nvar KnowledgeInfo_Id_DEFAULT string\n\nfunc (p *KnowledgeInfo) GetId() (v string) {\n\tif !p.IsSetId() {\n\t\treturn KnowledgeInfo_Id_DEFAULT\n\t}\n\treturn *p.Id\n}\n\nvar KnowledgeInfo_Name_DEFAULT string\n\nfunc (p *KnowledgeInfo) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn KnowledgeInfo_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar fieldIDToName_KnowledgeInfo = map[int16]string{\n\t1: \"Id\",\n\t2: \"Name\",\n}\n\nfunc (p *KnowledgeInfo) IsSetId() bool {\n\treturn p.Id != nil\n}\n\nfunc (p *KnowledgeInfo) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *KnowledgeInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_KnowledgeInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *KnowledgeInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Id = _field\n\treturn nil\n}\nfunc (p *KnowledgeInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\n\nfunc (p *KnowledgeInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"KnowledgeInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *KnowledgeInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetId() {\n\t\tif err = oprot.WriteFieldBegin(\"Id\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Id); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *KnowledgeInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *KnowledgeInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"KnowledgeInfo(%+v)\", *p)\n\n}\n\ntype Knowledge struct {\n\t// Knowledge Base Information\n\tKnowledgeInfo []*KnowledgeInfo `thrift:\"KnowledgeInfo,1,optional\" form:\"knowledge_info\" json:\"knowledge_info,omitempty\"`\n\t// recall maximum data volume\n\tTopK *int64 `thrift:\"TopK,2,optional\" form:\"top_k\" json:\"top_k,omitempty\"`\n\t// minimum match\n\tMinScore *float64 `thrift:\"MinScore,3,optional\" form:\"min_score\" json:\"min_score,omitempty\"`\n\t// automatic recall\n\tAuto *bool `thrift:\"Auto,4,optional\" form:\"auto\" json:\"auto,omitempty\"`\n\t// search strategy\n\tSearchStrategy *SearchStrategy `thrift:\"SearchStrategy,5,optional\" form:\"search_strategy\" json:\"search_strategy,omitempty\"`\n\t// Whether to show the source\n\tShowSource *bool `thrift:\"ShowSource,6,optional\" form:\"show_source\" json:\"show_source,omitempty\"`\n\t// No recall reply mode, default 0\n\tNoRecallReplyMode *KnowledgeNoRecallReplyMode `thrift:\"NoRecallReplyMode,7,optional\" form:\"no_recall_reply_mode\" json:\"no_recall_reply_mode,omitempty\"`\n\t// Custom prompt for no recall reply, effective when NoRecallReplyMode = 1\n\tNoRecallReplyCustomizePrompt *string `thrift:\"NoRecallReplyCustomizePrompt,8,optional\" form:\"no_recall_reply_customize_prompt\" json:\"no_recall_reply_customize_prompt,omitempty\"`\n\t// Source display method, default value 0 card list method\n\tShowSourceMode *KnowledgeShowSourceMode `thrift:\"ShowSourceMode,9,optional\" form:\"show_source_mode\" json:\"show_source_mode,omitempty\"`\n\t// Recall policy, default value is true\n\tRecallStrategy *RecallStrategy `thrift:\"RecallStrategy,10,optional\" form:\"recall_strategy\" json:\"recall_strategy,omitempty\"`\n}\n\nfunc NewKnowledge() *Knowledge {\n\treturn &Knowledge{}\n}\n\nfunc (p *Knowledge) InitDefault() {\n}\n\nvar Knowledge_KnowledgeInfo_DEFAULT []*KnowledgeInfo\n\nfunc (p *Knowledge) GetKnowledgeInfo() (v []*KnowledgeInfo) {\n\tif !p.IsSetKnowledgeInfo() {\n\t\treturn Knowledge_KnowledgeInfo_DEFAULT\n\t}\n\treturn p.KnowledgeInfo\n}\n\nvar Knowledge_TopK_DEFAULT int64\n\nfunc (p *Knowledge) GetTopK() (v int64) {\n\tif !p.IsSetTopK() {\n\t\treturn Knowledge_TopK_DEFAULT\n\t}\n\treturn *p.TopK\n}\n\nvar Knowledge_MinScore_DEFAULT float64\n\nfunc (p *Knowledge) GetMinScore() (v float64) {\n\tif !p.IsSetMinScore() {\n\t\treturn Knowledge_MinScore_DEFAULT\n\t}\n\treturn *p.MinScore\n}\n\nvar Knowledge_Auto_DEFAULT bool\n\nfunc (p *Knowledge) GetAuto() (v bool) {\n\tif !p.IsSetAuto() {\n\t\treturn Knowledge_Auto_DEFAULT\n\t}\n\treturn *p.Auto\n}\n\nvar Knowledge_SearchStrategy_DEFAULT SearchStrategy\n\nfunc (p *Knowledge) GetSearchStrategy() (v SearchStrategy) {\n\tif !p.IsSetSearchStrategy() {\n\t\treturn Knowledge_SearchStrategy_DEFAULT\n\t}\n\treturn *p.SearchStrategy\n}\n\nvar Knowledge_ShowSource_DEFAULT bool\n\nfunc (p *Knowledge) GetShowSource() (v bool) {\n\tif !p.IsSetShowSource() {\n\t\treturn Knowledge_ShowSource_DEFAULT\n\t}\n\treturn *p.ShowSource\n}\n\nvar Knowledge_NoRecallReplyMode_DEFAULT KnowledgeNoRecallReplyMode\n\nfunc (p *Knowledge) GetNoRecallReplyMode() (v KnowledgeNoRecallReplyMode) {\n\tif !p.IsSetNoRecallReplyMode() {\n\t\treturn Knowledge_NoRecallReplyMode_DEFAULT\n\t}\n\treturn *p.NoRecallReplyMode\n}\n\nvar Knowledge_NoRecallReplyCustomizePrompt_DEFAULT string\n\nfunc (p *Knowledge) GetNoRecallReplyCustomizePrompt() (v string) {\n\tif !p.IsSetNoRecallReplyCustomizePrompt() {\n\t\treturn Knowledge_NoRecallReplyCustomizePrompt_DEFAULT\n\t}\n\treturn *p.NoRecallReplyCustomizePrompt\n}\n\nvar Knowledge_ShowSourceMode_DEFAULT KnowledgeShowSourceMode\n\nfunc (p *Knowledge) GetShowSourceMode() (v KnowledgeShowSourceMode) {\n\tif !p.IsSetShowSourceMode() {\n\t\treturn Knowledge_ShowSourceMode_DEFAULT\n\t}\n\treturn *p.ShowSourceMode\n}\n\nvar Knowledge_RecallStrategy_DEFAULT *RecallStrategy\n\nfunc (p *Knowledge) GetRecallStrategy() (v *RecallStrategy) {\n\tif !p.IsSetRecallStrategy() {\n\t\treturn Knowledge_RecallStrategy_DEFAULT\n\t}\n\treturn p.RecallStrategy\n}\n\nvar fieldIDToName_Knowledge = map[int16]string{\n\t1:  \"KnowledgeInfo\",\n\t2:  \"TopK\",\n\t3:  \"MinScore\",\n\t4:  \"Auto\",\n\t5:  \"SearchStrategy\",\n\t6:  \"ShowSource\",\n\t7:  \"NoRecallReplyMode\",\n\t8:  \"NoRecallReplyCustomizePrompt\",\n\t9:  \"ShowSourceMode\",\n\t10: \"RecallStrategy\",\n}\n\nfunc (p *Knowledge) IsSetKnowledgeInfo() bool {\n\treturn p.KnowledgeInfo != nil\n}\n\nfunc (p *Knowledge) IsSetTopK() bool {\n\treturn p.TopK != nil\n}\n\nfunc (p *Knowledge) IsSetMinScore() bool {\n\treturn p.MinScore != nil\n}\n\nfunc (p *Knowledge) IsSetAuto() bool {\n\treturn p.Auto != nil\n}\n\nfunc (p *Knowledge) IsSetSearchStrategy() bool {\n\treturn p.SearchStrategy != nil\n}\n\nfunc (p *Knowledge) IsSetShowSource() bool {\n\treturn p.ShowSource != nil\n}\n\nfunc (p *Knowledge) IsSetNoRecallReplyMode() bool {\n\treturn p.NoRecallReplyMode != nil\n}\n\nfunc (p *Knowledge) IsSetNoRecallReplyCustomizePrompt() bool {\n\treturn p.NoRecallReplyCustomizePrompt != nil\n}\n\nfunc (p *Knowledge) IsSetShowSourceMode() bool {\n\treturn p.ShowSourceMode != nil\n}\n\nfunc (p *Knowledge) IsSetRecallStrategy() bool {\n\treturn p.RecallStrategy != nil\n}\n\nfunc (p *Knowledge) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Knowledge[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Knowledge) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*KnowledgeInfo, 0, size)\n\tvalues := make([]KnowledgeInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.KnowledgeInfo = _field\n\treturn nil\n}\nfunc (p *Knowledge) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TopK = _field\n\treturn nil\n}\nfunc (p *Knowledge) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.MinScore = _field\n\treturn nil\n}\nfunc (p *Knowledge) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Auto = _field\n\treturn nil\n}\nfunc (p *Knowledge) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *SearchStrategy\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := SearchStrategy(v)\n\t\t_field = &tmp\n\t}\n\tp.SearchStrategy = _field\n\treturn nil\n}\nfunc (p *Knowledge) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ShowSource = _field\n\treturn nil\n}\nfunc (p *Knowledge) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *KnowledgeNoRecallReplyMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := KnowledgeNoRecallReplyMode(v)\n\t\t_field = &tmp\n\t}\n\tp.NoRecallReplyMode = _field\n\treturn nil\n}\nfunc (p *Knowledge) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NoRecallReplyCustomizePrompt = _field\n\treturn nil\n}\nfunc (p *Knowledge) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *KnowledgeShowSourceMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := KnowledgeShowSourceMode(v)\n\t\t_field = &tmp\n\t}\n\tp.ShowSourceMode = _field\n\treturn nil\n}\nfunc (p *Knowledge) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewRecallStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RecallStrategy = _field\n\treturn nil\n}\n\nfunc (p *Knowledge) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Knowledge\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Knowledge) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKnowledgeInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"KnowledgeInfo\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.KnowledgeInfo)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.KnowledgeInfo {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Knowledge) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTopK() {\n\t\tif err = oprot.WriteFieldBegin(\"TopK\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.TopK); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Knowledge) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMinScore() {\n\t\tif err = oprot.WriteFieldBegin(\"MinScore\", thrift.DOUBLE, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.MinScore); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Knowledge) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuto() {\n\t\tif err = oprot.WriteFieldBegin(\"Auto\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Auto); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Knowledge) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSearchStrategy() {\n\t\tif err = oprot.WriteFieldBegin(\"SearchStrategy\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SearchStrategy)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Knowledge) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShowSource() {\n\t\tif err = oprot.WriteFieldBegin(\"ShowSource\", thrift.BOOL, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.ShowSource); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Knowledge) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNoRecallReplyMode() {\n\t\tif err = oprot.WriteFieldBegin(\"NoRecallReplyMode\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.NoRecallReplyMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Knowledge) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNoRecallReplyCustomizePrompt() {\n\t\tif err = oprot.WriteFieldBegin(\"NoRecallReplyCustomizePrompt\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.NoRecallReplyCustomizePrompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *Knowledge) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShowSourceMode() {\n\t\tif err = oprot.WriteFieldBegin(\"ShowSourceMode\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ShowSourceMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *Knowledge) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRecallStrategy() {\n\t\tif err = oprot.WriteFieldBegin(\"RecallStrategy\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RecallStrategy.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\n\nfunc (p *Knowledge) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Knowledge(%+v)\", *p)\n\n}\n\ntype RecallStrategy struct {\n\tUseRerank  *bool `thrift:\"UseRerank,1,optional\" form:\"use_rerank\" json:\"use_rerank,omitempty\"`\n\tUseRewrite *bool `thrift:\"UseRewrite,2,optional\" form:\"use_rewrite\" json:\"use_rewrite,omitempty\"`\n\tUseNl2sql  *bool `thrift:\"UseNl2sql,3,optional\" form:\"use_nl2sql\" json:\"use_nl2sql,omitempty\"`\n}\n\nfunc NewRecallStrategy() *RecallStrategy {\n\treturn &RecallStrategy{}\n}\n\nfunc (p *RecallStrategy) InitDefault() {\n}\n\nvar RecallStrategy_UseRerank_DEFAULT bool\n\nfunc (p *RecallStrategy) GetUseRerank() (v bool) {\n\tif !p.IsSetUseRerank() {\n\t\treturn RecallStrategy_UseRerank_DEFAULT\n\t}\n\treturn *p.UseRerank\n}\n\nvar RecallStrategy_UseRewrite_DEFAULT bool\n\nfunc (p *RecallStrategy) GetUseRewrite() (v bool) {\n\tif !p.IsSetUseRewrite() {\n\t\treturn RecallStrategy_UseRewrite_DEFAULT\n\t}\n\treturn *p.UseRewrite\n}\n\nvar RecallStrategy_UseNl2sql_DEFAULT bool\n\nfunc (p *RecallStrategy) GetUseNl2sql() (v bool) {\n\tif !p.IsSetUseNl2sql() {\n\t\treturn RecallStrategy_UseNl2sql_DEFAULT\n\t}\n\treturn *p.UseNl2sql\n}\n\nvar fieldIDToName_RecallStrategy = map[int16]string{\n\t1: \"UseRerank\",\n\t2: \"UseRewrite\",\n\t3: \"UseNl2sql\",\n}\n\nfunc (p *RecallStrategy) IsSetUseRerank() bool {\n\treturn p.UseRerank != nil\n}\n\nfunc (p *RecallStrategy) IsSetUseRewrite() bool {\n\treturn p.UseRewrite != nil\n}\n\nfunc (p *RecallStrategy) IsSetUseNl2sql() bool {\n\treturn p.UseNl2sql != nil\n}\n\nfunc (p *RecallStrategy) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RecallStrategy[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *RecallStrategy) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UseRerank = _field\n\treturn nil\n}\nfunc (p *RecallStrategy) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UseRewrite = _field\n\treturn nil\n}\nfunc (p *RecallStrategy) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UseNl2sql = _field\n\treturn nil\n}\n\nfunc (p *RecallStrategy) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RecallStrategy\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RecallStrategy) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUseRerank() {\n\t\tif err = oprot.WriteFieldBegin(\"UseRerank\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.UseRerank); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RecallStrategy) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUseRewrite() {\n\t\tif err = oprot.WriteFieldBegin(\"UseRewrite\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.UseRewrite); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *RecallStrategy) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUseNl2sql() {\n\t\tif err = oprot.WriteFieldBegin(\"UseNl2sql\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.UseNl2sql); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *RecallStrategy) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RecallStrategy(%+v)\", *p)\n\n}\n\ntype SocietyVisibiltyConfig struct {\n\t// Visibility in Social Scene: Public = 1, Anonymous = 2\n\tVisibilityType SocietyVisibility `thrift:\"VisibilityType,1\" json:\"visibility_type,omitempty\" form:\"visibility_type\" `\n\t// list of visible characters\n\tVisibilityRoles []string `thrift:\"VisibilityRoles,2\" json:\"visibility_roles,omitempty\" form:\"visibility_roles\" `\n}\n\nfunc NewSocietyVisibiltyConfig() *SocietyVisibiltyConfig {\n\treturn &SocietyVisibiltyConfig{}\n}\n\nfunc (p *SocietyVisibiltyConfig) InitDefault() {\n}\n\nfunc (p *SocietyVisibiltyConfig) GetVisibilityType() (v SocietyVisibility) {\n\treturn p.VisibilityType\n}\n\nfunc (p *SocietyVisibiltyConfig) GetVisibilityRoles() (v []string) {\n\treturn p.VisibilityRoles\n}\n\nvar fieldIDToName_SocietyVisibiltyConfig = map[int16]string{\n\t1: \"VisibilityType\",\n\t2: \"VisibilityRoles\",\n}\n\nfunc (p *SocietyVisibiltyConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SocietyVisibiltyConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SocietyVisibiltyConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field SocietyVisibility\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SocietyVisibility(v)\n\t}\n\tp.VisibilityType = _field\n\treturn nil\n}\nfunc (p *SocietyVisibiltyConfig) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.VisibilityRoles = _field\n\treturn nil\n}\n\nfunc (p *SocietyVisibiltyConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SocietyVisibiltyConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SocietyVisibiltyConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VisibilityType\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.VisibilityType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SocietyVisibiltyConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VisibilityRoles\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.VisibilityRoles)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.VisibilityRoles {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *SocietyVisibiltyConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SocietyVisibiltyConfig(%+v)\", *p)\n\n}\n\ntype Variable struct {\n\t// key, Field\n\tKey *string `thrift:\"Key,1,optional\" form:\"key\" json:\"key,omitempty\"`\n\t// describe\n\tDescription *string `thrift:\"Description,2,optional\" form:\"description\" json:\"description,omitempty\"`\n\t// default value\n\tDefaultValue *string `thrift:\"DefaultValue,3,optional\" form:\"default_value\" json:\"default_value,omitempty\"`\n\t// Whether the system value is the system value\n\tIsSystem *bool `thrift:\"IsSystem,4,optional\" form:\"is_system\" json:\"is_system,omitempty\"`\n\t// Whether to support calling in Prompt, the default is supported\n\tPromptDisabled *bool `thrift:\"PromptDisabled,5,optional\" form:\"prompt_disabled\" json:\"prompt_disabled,omitempty\"`\n\t// Visibility in Social Scene: Public = 1, Anonymous = 2\n\tSocietyVisibilityConfig *SocietyVisibiltyConfig `thrift:\"SocietyVisibilityConfig,6,optional\" json:\"society_visibility_config,omitempty\" form:\"society_visibility_config\" `\n\t// Whether to disable, the default is false to enable\n\tIsDisabled *bool `thrift:\"IsDisabled,7,optional\" form:\"is_disabled\" json:\"is_disabled,omitempty\"`\n}\n\nfunc NewVariable() *Variable {\n\treturn &Variable{}\n}\n\nfunc (p *Variable) InitDefault() {\n}\n\nvar Variable_Key_DEFAULT string\n\nfunc (p *Variable) GetKey() (v string) {\n\tif !p.IsSetKey() {\n\t\treturn Variable_Key_DEFAULT\n\t}\n\treturn *p.Key\n}\n\nvar Variable_Description_DEFAULT string\n\nfunc (p *Variable) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn Variable_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar Variable_DefaultValue_DEFAULT string\n\nfunc (p *Variable) GetDefaultValue() (v string) {\n\tif !p.IsSetDefaultValue() {\n\t\treturn Variable_DefaultValue_DEFAULT\n\t}\n\treturn *p.DefaultValue\n}\n\nvar Variable_IsSystem_DEFAULT bool\n\nfunc (p *Variable) GetIsSystem() (v bool) {\n\tif !p.IsSetIsSystem() {\n\t\treturn Variable_IsSystem_DEFAULT\n\t}\n\treturn *p.IsSystem\n}\n\nvar Variable_PromptDisabled_DEFAULT bool\n\nfunc (p *Variable) GetPromptDisabled() (v bool) {\n\tif !p.IsSetPromptDisabled() {\n\t\treturn Variable_PromptDisabled_DEFAULT\n\t}\n\treturn *p.PromptDisabled\n}\n\nvar Variable_SocietyVisibilityConfig_DEFAULT *SocietyVisibiltyConfig\n\nfunc (p *Variable) GetSocietyVisibilityConfig() (v *SocietyVisibiltyConfig) {\n\tif !p.IsSetSocietyVisibilityConfig() {\n\t\treturn Variable_SocietyVisibilityConfig_DEFAULT\n\t}\n\treturn p.SocietyVisibilityConfig\n}\n\nvar Variable_IsDisabled_DEFAULT bool\n\nfunc (p *Variable) GetIsDisabled() (v bool) {\n\tif !p.IsSetIsDisabled() {\n\t\treturn Variable_IsDisabled_DEFAULT\n\t}\n\treturn *p.IsDisabled\n}\n\nvar fieldIDToName_Variable = map[int16]string{\n\t1: \"Key\",\n\t2: \"Description\",\n\t3: \"DefaultValue\",\n\t4: \"IsSystem\",\n\t5: \"PromptDisabled\",\n\t6: \"SocietyVisibilityConfig\",\n\t7: \"IsDisabled\",\n}\n\nfunc (p *Variable) IsSetKey() bool {\n\treturn p.Key != nil\n}\n\nfunc (p *Variable) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *Variable) IsSetDefaultValue() bool {\n\treturn p.DefaultValue != nil\n}\n\nfunc (p *Variable) IsSetIsSystem() bool {\n\treturn p.IsSystem != nil\n}\n\nfunc (p *Variable) IsSetPromptDisabled() bool {\n\treturn p.PromptDisabled != nil\n}\n\nfunc (p *Variable) IsSetSocietyVisibilityConfig() bool {\n\treturn p.SocietyVisibilityConfig != nil\n}\n\nfunc (p *Variable) IsSetIsDisabled() bool {\n\treturn p.IsDisabled != nil\n}\n\nfunc (p *Variable) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Variable[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Variable) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DefaultValue = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsSystem = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PromptDisabled = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewSocietyVisibiltyConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SocietyVisibilityConfig = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsDisabled = _field\n\treturn nil\n}\n\nfunc (p *Variable) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Variable\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Variable) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKey() {\n\t\tif err = oprot.WriteFieldBegin(\"Key\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Key); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Variable) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Variable) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDefaultValue() {\n\t\tif err = oprot.WriteFieldBegin(\"DefaultValue\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DefaultValue); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Variable) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsSystem() {\n\t\tif err = oprot.WriteFieldBegin(\"IsSystem\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsSystem); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Variable) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPromptDisabled() {\n\t\tif err = oprot.WriteFieldBegin(\"PromptDisabled\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.PromptDisabled); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Variable) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSocietyVisibilityConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"SocietyVisibilityConfig\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SocietyVisibilityConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Variable) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsDisabled() {\n\t\tif err = oprot.WriteFieldBegin(\"IsDisabled\", thrift.BOOL, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsDisabled); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *Variable) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Variable(%+v)\", *p)\n\n}\n\ntype TaskInfo struct {\n\t// Scheduled Tasks on Coze\n\tUserTaskAllowed *bool `thrift:\"UserTaskAllowed,1,optional\" form:\"user_task_allowed\" json:\"user_task_allowed,omitempty\"`\n\t// Allow preset tasks\n\tEnablePresetTask *int64 `thrift:\"EnablePresetTask,2,optional\" form:\"enable_preset_task\" json:\"enable_preset_task,omitempty\"`\n}\n\nfunc NewTaskInfo() *TaskInfo {\n\treturn &TaskInfo{}\n}\n\nfunc (p *TaskInfo) InitDefault() {\n}\n\nvar TaskInfo_UserTaskAllowed_DEFAULT bool\n\nfunc (p *TaskInfo) GetUserTaskAllowed() (v bool) {\n\tif !p.IsSetUserTaskAllowed() {\n\t\treturn TaskInfo_UserTaskAllowed_DEFAULT\n\t}\n\treturn *p.UserTaskAllowed\n}\n\nvar TaskInfo_EnablePresetTask_DEFAULT int64\n\nfunc (p *TaskInfo) GetEnablePresetTask() (v int64) {\n\tif !p.IsSetEnablePresetTask() {\n\t\treturn TaskInfo_EnablePresetTask_DEFAULT\n\t}\n\treturn *p.EnablePresetTask\n}\n\nvar fieldIDToName_TaskInfo = map[int16]string{\n\t1: \"UserTaskAllowed\",\n\t2: \"EnablePresetTask\",\n}\n\nfunc (p *TaskInfo) IsSetUserTaskAllowed() bool {\n\treturn p.UserTaskAllowed != nil\n}\n\nfunc (p *TaskInfo) IsSetEnablePresetTask() bool {\n\treturn p.EnablePresetTask != nil\n}\n\nfunc (p *TaskInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TaskInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TaskInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserTaskAllowed = _field\n\treturn nil\n}\nfunc (p *TaskInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EnablePresetTask = _field\n\treturn nil\n}\n\nfunc (p *TaskInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TaskInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TaskInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserTaskAllowed() {\n\t\tif err = oprot.WriteFieldBegin(\"UserTaskAllowed\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.UserTaskAllowed); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TaskInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEnablePresetTask() {\n\t\tif err = oprot.WriteFieldBegin(\"EnablePresetTask\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EnablePresetTask); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *TaskInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TaskInfo(%+v)\", *p)\n\n}\n\ntype FieldItem struct {\n\t// field name\n\tName *string `thrift:\"Name,1,optional\" form:\"name\" json:\"name,omitempty\"`\n\t// Field description\n\tDesc *string `thrift:\"Desc,2,optional\" form:\"desc\" json:\"desc,omitempty\"`\n\t// field type\n\tType *FieldItemType `thrift:\"Type,3,optional\" form:\"type\" json:\"type,omitempty\"`\n\t// Is it required?\n\tMustRequired *bool `thrift:\"MustRequired,4,optional\" form:\"must_required\" json:\"must_required,omitempty\"`\n\t// The field Id is added as 0.\n\tId *int64 `thrift:\"Id,5,optional\" form:\"id\" json:\"id,string,omitempty\"`\n\t// Field type str\n\tTypeStr *string `thrift:\"TypeStr,6,optional\" form:\"type_str\" json:\"type_str,omitempty\"`\n\t// Field type str\n\tAlterId *int64 `thrift:\"AlterId,7,optional\" form:\"alterId\" json:\"alterId,omitempty\"`\n}\n\nfunc NewFieldItem() *FieldItem {\n\treturn &FieldItem{}\n}\n\nfunc (p *FieldItem) InitDefault() {\n}\n\nvar FieldItem_Name_DEFAULT string\n\nfunc (p *FieldItem) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn FieldItem_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar FieldItem_Desc_DEFAULT string\n\nfunc (p *FieldItem) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn FieldItem_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar FieldItem_Type_DEFAULT FieldItemType\n\nfunc (p *FieldItem) GetType() (v FieldItemType) {\n\tif !p.IsSetType() {\n\t\treturn FieldItem_Type_DEFAULT\n\t}\n\treturn *p.Type\n}\n\nvar FieldItem_MustRequired_DEFAULT bool\n\nfunc (p *FieldItem) GetMustRequired() (v bool) {\n\tif !p.IsSetMustRequired() {\n\t\treturn FieldItem_MustRequired_DEFAULT\n\t}\n\treturn *p.MustRequired\n}\n\nvar FieldItem_Id_DEFAULT int64\n\nfunc (p *FieldItem) GetId() (v int64) {\n\tif !p.IsSetId() {\n\t\treturn FieldItem_Id_DEFAULT\n\t}\n\treturn *p.Id\n}\n\nvar FieldItem_TypeStr_DEFAULT string\n\nfunc (p *FieldItem) GetTypeStr() (v string) {\n\tif !p.IsSetTypeStr() {\n\t\treturn FieldItem_TypeStr_DEFAULT\n\t}\n\treturn *p.TypeStr\n}\n\nvar FieldItem_AlterId_DEFAULT int64\n\nfunc (p *FieldItem) GetAlterId() (v int64) {\n\tif !p.IsSetAlterId() {\n\t\treturn FieldItem_AlterId_DEFAULT\n\t}\n\treturn *p.AlterId\n}\n\nvar fieldIDToName_FieldItem = map[int16]string{\n\t1: \"Name\",\n\t2: \"Desc\",\n\t3: \"Type\",\n\t4: \"MustRequired\",\n\t5: \"Id\",\n\t6: \"TypeStr\",\n\t7: \"AlterId\",\n}\n\nfunc (p *FieldItem) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *FieldItem) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *FieldItem) IsSetType() bool {\n\treturn p.Type != nil\n}\n\nfunc (p *FieldItem) IsSetMustRequired() bool {\n\treturn p.MustRequired != nil\n}\n\nfunc (p *FieldItem) IsSetId() bool {\n\treturn p.Id != nil\n}\n\nfunc (p *FieldItem) IsSetTypeStr() bool {\n\treturn p.TypeStr != nil\n}\n\nfunc (p *FieldItem) IsSetAlterId() bool {\n\treturn p.AlterId != nil\n}\n\nfunc (p *FieldItem) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FieldItem[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FieldItem) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *FieldItemType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := FieldItemType(v)\n\t\t_field = &tmp\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.MustRequired = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Id = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TypeStr = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AlterId = _field\n\treturn nil\n}\n\nfunc (p *FieldItem) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FieldItem\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FieldItem) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"Desc\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetType() {\n\t\tif err = oprot.WriteFieldBegin(\"Type\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Type)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMustRequired() {\n\t\tif err = oprot.WriteFieldBegin(\"MustRequired\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.MustRequired); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetId() {\n\t\tif err = oprot.WriteFieldBegin(\"Id\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Id); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTypeStr() {\n\t\tif err = oprot.WriteFieldBegin(\"TypeStr\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TypeStr); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAlterId() {\n\t\tif err = oprot.WriteFieldBegin(\"AlterId\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.AlterId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *FieldItem) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FieldItem(%+v)\", *p)\n\n}\n\ntype Database struct {\n\t// table id\n\tTableId *string `thrift:\"TableId,1,optional\" form:\"table_id\" json:\"table_id,omitempty\"`\n\t// Table name\n\tTableName *string `thrift:\"TableName,2,optional\" form:\"table_name\" json:\"table_name,omitempty\"`\n\t// Table Introduction\n\tTableDesc *string `thrift:\"TableDesc,3,optional\" form:\"table_desc\" json:\"table_desc,omitempty\"`\n\t// Table field information\n\tFieldList []*FieldItem `thrift:\"FieldList,4,optional\" form:\"field_list\" json:\"field_list,omitempty\"`\n\t// Whether to support calling in Prompt, the default is supported\n\tPromptDisabled *bool           `thrift:\"PromptDisabled,5,optional\" form:\"prompt_disabled\" json:\"prompt_disabled,omitempty\"`\n\tRWMode         *BotTableRWMode `thrift:\"RWMode,6,optional\" form:\"rw_mode\" json:\"rw_mode,omitempty\"`\n}\n\nfunc NewDatabase() *Database {\n\treturn &Database{}\n}\n\nfunc (p *Database) InitDefault() {\n}\n\nvar Database_TableId_DEFAULT string\n\nfunc (p *Database) GetTableId() (v string) {\n\tif !p.IsSetTableId() {\n\t\treturn Database_TableId_DEFAULT\n\t}\n\treturn *p.TableId\n}\n\nvar Database_TableName_DEFAULT string\n\nfunc (p *Database) GetTableName() (v string) {\n\tif !p.IsSetTableName() {\n\t\treturn Database_TableName_DEFAULT\n\t}\n\treturn *p.TableName\n}\n\nvar Database_TableDesc_DEFAULT string\n\nfunc (p *Database) GetTableDesc() (v string) {\n\tif !p.IsSetTableDesc() {\n\t\treturn Database_TableDesc_DEFAULT\n\t}\n\treturn *p.TableDesc\n}\n\nvar Database_FieldList_DEFAULT []*FieldItem\n\nfunc (p *Database) GetFieldList() (v []*FieldItem) {\n\tif !p.IsSetFieldList() {\n\t\treturn Database_FieldList_DEFAULT\n\t}\n\treturn p.FieldList\n}\n\nvar Database_PromptDisabled_DEFAULT bool\n\nfunc (p *Database) GetPromptDisabled() (v bool) {\n\tif !p.IsSetPromptDisabled() {\n\t\treturn Database_PromptDisabled_DEFAULT\n\t}\n\treturn *p.PromptDisabled\n}\n\nvar Database_RWMode_DEFAULT BotTableRWMode\n\nfunc (p *Database) GetRWMode() (v BotTableRWMode) {\n\tif !p.IsSetRWMode() {\n\t\treturn Database_RWMode_DEFAULT\n\t}\n\treturn *p.RWMode\n}\n\nvar fieldIDToName_Database = map[int16]string{\n\t1: \"TableId\",\n\t2: \"TableName\",\n\t3: \"TableDesc\",\n\t4: \"FieldList\",\n\t5: \"PromptDisabled\",\n\t6: \"RWMode\",\n}\n\nfunc (p *Database) IsSetTableId() bool {\n\treturn p.TableId != nil\n}\n\nfunc (p *Database) IsSetTableName() bool {\n\treturn p.TableName != nil\n}\n\nfunc (p *Database) IsSetTableDesc() bool {\n\treturn p.TableDesc != nil\n}\n\nfunc (p *Database) IsSetFieldList() bool {\n\treturn p.FieldList != nil\n}\n\nfunc (p *Database) IsSetPromptDisabled() bool {\n\treturn p.PromptDisabled != nil\n}\n\nfunc (p *Database) IsSetRWMode() bool {\n\treturn p.RWMode != nil\n}\n\nfunc (p *Database) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Database[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Database) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TableId = _field\n\treturn nil\n}\nfunc (p *Database) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TableName = _field\n\treturn nil\n}\nfunc (p *Database) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TableDesc = _field\n\treturn nil\n}\nfunc (p *Database) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*FieldItem, 0, size)\n\tvalues := make([]FieldItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FieldList = _field\n\treturn nil\n}\nfunc (p *Database) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PromptDisabled = _field\n\treturn nil\n}\nfunc (p *Database) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *BotTableRWMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := BotTableRWMode(v)\n\t\t_field = &tmp\n\t}\n\tp.RWMode = _field\n\treturn nil\n}\n\nfunc (p *Database) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Database\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Database) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableId() {\n\t\tif err = oprot.WriteFieldBegin(\"TableId\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TableId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Database) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableName() {\n\t\tif err = oprot.WriteFieldBegin(\"TableName\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TableName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Database) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"TableDesc\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TableDesc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Database) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFieldList() {\n\t\tif err = oprot.WriteFieldBegin(\"FieldList\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FieldList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Database) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPromptDisabled() {\n\t\tif err = oprot.WriteFieldBegin(\"PromptDisabled\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.PromptDisabled); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Database) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRWMode() {\n\t\tif err = oprot.WriteFieldBegin(\"RWMode\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.RWMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *Database) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Database(%+v)\", *p)\n\n}\n\ntype Agent struct {\n\tAgentId   int64  `thrift:\"AgentId,1\" form:\"agent_id\" json:\"agent_id,string\"`\n\tAgentName string `thrift:\"AgentName,2\" form:\"agent_name\" json:\"agent_name\"`\n\t// Prompt message\n\tPromptInfo *PromptInfo `thrift:\"PromptInfo,3\" form:\"prompt_info\" json:\"prompt_info\"`\n\t// List of plugins\n\tPluginInfoList []*PluginInfo `thrift:\"PluginInfoList,4\" form:\"plugin_info_list\" json:\"plugin_info_list\"`\n\t// dataset\n\tKnowledge *Knowledge `thrift:\"Knowledge,5\" form:\"knowledge\" json:\"knowledge\"`\n\t// Workflow List\n\tWorkflowInfoList []*WorkflowInfo `thrift:\"WorkflowInfoList,6\" form:\"workflow_info_list\" json:\"workflow_info_list\"`\n\t// model configuration\n\tModelInfo *ModelInfo `thrift:\"ModelInfo,7\" form:\"model_info\" json:\"model_info\"`\n\t// intent information\n\tIntents   []*Intent `thrift:\"Intents,8\" form:\"intents\" json:\"intents\"`\n\tAgentType AgentType `thrift:\"AgentType,9\" form:\"agent_type\" json:\"agent_type\"`\n\t// Is it a rootagent?\n\tRootAgent        bool              `thrift:\"RootAgent,10\" form:\"root_agent\" json:\"root_agent\"`\n\tReferenceId      int64             `thrift:\"ReferenceId,11\" form:\"reference_id\" json:\"reference_id,string\"`\n\tFirstVersion     string            `thrift:\"FirstVersion,12\" form:\"first_version\" json:\"first_version\"`\n\tLastVersion      string            `thrift:\"LastVersion,13\" form:\"last_version\" json:\"last_version\"`\n\tAgentPosition    *AgentPosition    `thrift:\"AgentPosition,14\" form:\"agent_position\" json:\"agent_position\"`\n\tIconUri          string            `thrift:\"IconUri,15\" form:\"icon_uri\" json:\"icon_uri\"`\n\tJumpConfig       *JumpConfig       `thrift:\"JumpConfig,16\" form:\"jump_config\" json:\"jump_config\"`\n\tSuggestReplyInfo *SuggestReplyInfo `thrift:\"SuggestReplyInfo,17\" form:\"suggest_reply_info\" json:\"suggest_reply_info\"`\n\tDescription      string            `thrift:\"Description,18\" form:\"description\" json:\"description\"`\n\t// multi_agent version compatibility field\n\tVersionCompat AgentVersionCompat `thrift:\"VersionCompat,19\" form:\"version_compat\" json:\"version_compat\"`\n\tHookInfo      *HookInfo          `thrift:\"HookInfo,20,optional\" form:\"hook_info\" json:\"hook_info,omitempty\"`\n\t//The current version of the subbot\n\tCurrentVersion *string `thrift:\"CurrentVersion,21,optional\" form:\"current_version\" json:\"current_version,omitempty\"`\n\t// 1: Available update 2: Removed\n\tReferenceInfoStatus *ReferenceInfoStatus `thrift:\"ReferenceInfoStatus,22,optional\" form:\"reference_info_status\" json:\"reference_info_status,omitempty\"`\n\t//Subbot update type\n\tUpdateType *ReferenceUpdateType `thrift:\"UpdateType,23,optional\" form:\"update_type\" json:\"update_type,omitempty\"`\n}\n\nfunc NewAgent() *Agent {\n\treturn &Agent{}\n}\n\nfunc (p *Agent) InitDefault() {\n}\n\nfunc (p *Agent) GetAgentId() (v int64) {\n\treturn p.AgentId\n}\n\nfunc (p *Agent) GetAgentName() (v string) {\n\treturn p.AgentName\n}\n\nvar Agent_PromptInfo_DEFAULT *PromptInfo\n\nfunc (p *Agent) GetPromptInfo() (v *PromptInfo) {\n\tif !p.IsSetPromptInfo() {\n\t\treturn Agent_PromptInfo_DEFAULT\n\t}\n\treturn p.PromptInfo\n}\n\nfunc (p *Agent) GetPluginInfoList() (v []*PluginInfo) {\n\treturn p.PluginInfoList\n}\n\nvar Agent_Knowledge_DEFAULT *Knowledge\n\nfunc (p *Agent) GetKnowledge() (v *Knowledge) {\n\tif !p.IsSetKnowledge() {\n\t\treturn Agent_Knowledge_DEFAULT\n\t}\n\treturn p.Knowledge\n}\n\nfunc (p *Agent) GetWorkflowInfoList() (v []*WorkflowInfo) {\n\treturn p.WorkflowInfoList\n}\n\nvar Agent_ModelInfo_DEFAULT *ModelInfo\n\nfunc (p *Agent) GetModelInfo() (v *ModelInfo) {\n\tif !p.IsSetModelInfo() {\n\t\treturn Agent_ModelInfo_DEFAULT\n\t}\n\treturn p.ModelInfo\n}\n\nfunc (p *Agent) GetIntents() (v []*Intent) {\n\treturn p.Intents\n}\n\nfunc (p *Agent) GetAgentType() (v AgentType) {\n\treturn p.AgentType\n}\n\nfunc (p *Agent) GetRootAgent() (v bool) {\n\treturn p.RootAgent\n}\n\nfunc (p *Agent) GetReferenceId() (v int64) {\n\treturn p.ReferenceId\n}\n\nfunc (p *Agent) GetFirstVersion() (v string) {\n\treturn p.FirstVersion\n}\n\nfunc (p *Agent) GetLastVersion() (v string) {\n\treturn p.LastVersion\n}\n\nvar Agent_AgentPosition_DEFAULT *AgentPosition\n\nfunc (p *Agent) GetAgentPosition() (v *AgentPosition) {\n\tif !p.IsSetAgentPosition() {\n\t\treturn Agent_AgentPosition_DEFAULT\n\t}\n\treturn p.AgentPosition\n}\n\nfunc (p *Agent) GetIconUri() (v string) {\n\treturn p.IconUri\n}\n\nvar Agent_JumpConfig_DEFAULT *JumpConfig\n\nfunc (p *Agent) GetJumpConfig() (v *JumpConfig) {\n\tif !p.IsSetJumpConfig() {\n\t\treturn Agent_JumpConfig_DEFAULT\n\t}\n\treturn p.JumpConfig\n}\n\nvar Agent_SuggestReplyInfo_DEFAULT *SuggestReplyInfo\n\nfunc (p *Agent) GetSuggestReplyInfo() (v *SuggestReplyInfo) {\n\tif !p.IsSetSuggestReplyInfo() {\n\t\treturn Agent_SuggestReplyInfo_DEFAULT\n\t}\n\treturn p.SuggestReplyInfo\n}\n\nfunc (p *Agent) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *Agent) GetVersionCompat() (v AgentVersionCompat) {\n\treturn p.VersionCompat\n}\n\nvar Agent_HookInfo_DEFAULT *HookInfo\n\nfunc (p *Agent) GetHookInfo() (v *HookInfo) {\n\tif !p.IsSetHookInfo() {\n\t\treturn Agent_HookInfo_DEFAULT\n\t}\n\treturn p.HookInfo\n}\n\nvar Agent_CurrentVersion_DEFAULT string\n\nfunc (p *Agent) GetCurrentVersion() (v string) {\n\tif !p.IsSetCurrentVersion() {\n\t\treturn Agent_CurrentVersion_DEFAULT\n\t}\n\treturn *p.CurrentVersion\n}\n\nvar Agent_ReferenceInfoStatus_DEFAULT ReferenceInfoStatus\n\nfunc (p *Agent) GetReferenceInfoStatus() (v ReferenceInfoStatus) {\n\tif !p.IsSetReferenceInfoStatus() {\n\t\treturn Agent_ReferenceInfoStatus_DEFAULT\n\t}\n\treturn *p.ReferenceInfoStatus\n}\n\nvar Agent_UpdateType_DEFAULT ReferenceUpdateType\n\nfunc (p *Agent) GetUpdateType() (v ReferenceUpdateType) {\n\tif !p.IsSetUpdateType() {\n\t\treturn Agent_UpdateType_DEFAULT\n\t}\n\treturn *p.UpdateType\n}\n\nvar fieldIDToName_Agent = map[int16]string{\n\t1:  \"AgentId\",\n\t2:  \"AgentName\",\n\t3:  \"PromptInfo\",\n\t4:  \"PluginInfoList\",\n\t5:  \"Knowledge\",\n\t6:  \"WorkflowInfoList\",\n\t7:  \"ModelInfo\",\n\t8:  \"Intents\",\n\t9:  \"AgentType\",\n\t10: \"RootAgent\",\n\t11: \"ReferenceId\",\n\t12: \"FirstVersion\",\n\t13: \"LastVersion\",\n\t14: \"AgentPosition\",\n\t15: \"IconUri\",\n\t16: \"JumpConfig\",\n\t17: \"SuggestReplyInfo\",\n\t18: \"Description\",\n\t19: \"VersionCompat\",\n\t20: \"HookInfo\",\n\t21: \"CurrentVersion\",\n\t22: \"ReferenceInfoStatus\",\n\t23: \"UpdateType\",\n}\n\nfunc (p *Agent) IsSetPromptInfo() bool {\n\treturn p.PromptInfo != nil\n}\n\nfunc (p *Agent) IsSetKnowledge() bool {\n\treturn p.Knowledge != nil\n}\n\nfunc (p *Agent) IsSetModelInfo() bool {\n\treturn p.ModelInfo != nil\n}\n\nfunc (p *Agent) IsSetAgentPosition() bool {\n\treturn p.AgentPosition != nil\n}\n\nfunc (p *Agent) IsSetJumpConfig() bool {\n\treturn p.JumpConfig != nil\n}\n\nfunc (p *Agent) IsSetSuggestReplyInfo() bool {\n\treturn p.SuggestReplyInfo != nil\n}\n\nfunc (p *Agent) IsSetHookInfo() bool {\n\treturn p.HookInfo != nil\n}\n\nfunc (p *Agent) IsSetCurrentVersion() bool {\n\treturn p.CurrentVersion != nil\n}\n\nfunc (p *Agent) IsSetReferenceInfoStatus() bool {\n\treturn p.ReferenceInfoStatus != nil\n}\n\nfunc (p *Agent) IsSetUpdateType() bool {\n\treturn p.UpdateType != nil\n}\n\nfunc (p *Agent) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Agent[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Agent) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AgentId = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AgentName = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewPromptInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PromptInfo = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginInfo, 0, size)\n\tvalues := make([]PluginInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginInfoList = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewKnowledge()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Knowledge = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowInfo, 0, size)\n\tvalues := make([]WorkflowInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowInfoList = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewModelInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ModelInfo = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Intent, 0, size)\n\tvalues := make([]Intent, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Intents = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field AgentType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = AgentType(v)\n\t}\n\tp.AgentType = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RootAgent = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReferenceId = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FirstVersion = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LastVersion = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField14(iprot thrift.TProtocol) error {\n\t_field := NewAgentPosition()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AgentPosition = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconUri = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField16(iprot thrift.TProtocol) error {\n\t_field := NewJumpConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.JumpConfig = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField17(iprot thrift.TProtocol) error {\n\t_field := NewSuggestReplyInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestReplyInfo = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field AgentVersionCompat\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = AgentVersionCompat(v)\n\t}\n\tp.VersionCompat = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField20(iprot thrift.TProtocol) error {\n\t_field := NewHookInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.HookInfo = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CurrentVersion = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field *ReferenceInfoStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ReferenceInfoStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.ReferenceInfoStatus = _field\n\treturn nil\n}\nfunc (p *Agent) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field *ReferenceUpdateType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ReferenceUpdateType(v)\n\t\t_field = &tmp\n\t}\n\tp.UpdateType = _field\n\treturn nil\n}\n\nfunc (p *Agent) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Agent\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Agent) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AgentId\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.AgentId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Agent) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AgentName\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AgentName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Agent) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PromptInfo\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.PromptInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Agent) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PluginInfoList\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Agent) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Knowledge\", thrift.STRUCT, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Knowledge.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Agent) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowInfoList\", thrift.LIST, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.WorkflowInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Agent) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ModelInfo\", thrift.STRUCT, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ModelInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Agent) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Intents\", thrift.LIST, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Intents)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Intents {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *Agent) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AgentType\", thrift.I32, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.AgentType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *Agent) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"RootAgent\", thrift.BOOL, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.RootAgent); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *Agent) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ReferenceId\", thrift.I64, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ReferenceId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *Agent) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"FirstVersion\", thrift.STRING, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FirstVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *Agent) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"LastVersion\", thrift.STRING, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LastVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *Agent) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AgentPosition\", thrift.STRUCT, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.AgentPosition.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *Agent) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IconUri\", thrift.STRING, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconUri); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *Agent) writeField16(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"JumpConfig\", thrift.STRUCT, 16); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.JumpConfig.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *Agent) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SuggestReplyInfo\", thrift.STRUCT, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.SuggestReplyInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *Agent) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *Agent) writeField19(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VersionCompat\", thrift.I32, 19); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.VersionCompat)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *Agent) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHookInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"HookInfo\", thrift.STRUCT, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.HookInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *Agent) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCurrentVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"CurrentVersion\", thrift.STRING, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CurrentVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *Agent) writeField22(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReferenceInfoStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"ReferenceInfoStatus\", thrift.I32, 22); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ReferenceInfoStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *Agent) writeField23(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUpdateType() {\n\t\tif err = oprot.WriteFieldBegin(\"UpdateType\", thrift.I32, 23); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.UpdateType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\n\nfunc (p *Agent) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Agent(%+v)\", *p)\n\n}\n\ntype AgentPosition struct {\n\tX float64 `thrift:\"x,1\" form:\"x\" json:\"x\" query:\"x\"`\n\tY float64 `thrift:\"y,2\" form:\"y\" json:\"y\" query:\"y\"`\n}\n\nfunc NewAgentPosition() *AgentPosition {\n\treturn &AgentPosition{}\n}\n\nfunc (p *AgentPosition) InitDefault() {\n}\n\nfunc (p *AgentPosition) GetX() (v float64) {\n\treturn p.X\n}\n\nfunc (p *AgentPosition) GetY() (v float64) {\n\treturn p.Y\n}\n\nvar fieldIDToName_AgentPosition = map[int16]string{\n\t1: \"x\",\n\t2: \"y\",\n}\n\nfunc (p *AgentPosition) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentPosition[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentPosition) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.X = _field\n\treturn nil\n}\nfunc (p *AgentPosition) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Y = _field\n\treturn nil\n}\n\nfunc (p *AgentPosition) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AgentPosition\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentPosition) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"x\", thrift.DOUBLE, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.X); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AgentPosition) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"y\", thrift.DOUBLE, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.Y); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *AgentPosition) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentPosition(%+v)\", *p)\n\n}\n\ntype Intent struct {\n\tIntentId    string                `thrift:\"IntentId,1\" form:\"intent_id\" json:\"intent_id\"`\n\tPrompt      string                `thrift:\"Prompt,2\" form:\"prompt\" json:\"prompt\"`\n\tNextAgentId int64                 `thrift:\"NextAgentId,3\" form:\"next_agent_id\" json:\"next_agent_id,string\"`\n\tSessionType MultiAgentSessionType `thrift:\"SessionType,4\" form:\"session_type\" json:\"session_type\"`\n}\n\nfunc NewIntent() *Intent {\n\treturn &Intent{}\n}\n\nfunc (p *Intent) InitDefault() {\n}\n\nfunc (p *Intent) GetIntentId() (v string) {\n\treturn p.IntentId\n}\n\nfunc (p *Intent) GetPrompt() (v string) {\n\treturn p.Prompt\n}\n\nfunc (p *Intent) GetNextAgentId() (v int64) {\n\treturn p.NextAgentId\n}\n\nfunc (p *Intent) GetSessionType() (v MultiAgentSessionType) {\n\treturn p.SessionType\n}\n\nvar fieldIDToName_Intent = map[int16]string{\n\t1: \"IntentId\",\n\t2: \"Prompt\",\n\t3: \"NextAgentId\",\n\t4: \"SessionType\",\n}\n\nfunc (p *Intent) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Intent[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Intent) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IntentId = _field\n\treturn nil\n}\nfunc (p *Intent) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Prompt = _field\n\treturn nil\n}\nfunc (p *Intent) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NextAgentId = _field\n\treturn nil\n}\nfunc (p *Intent) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field MultiAgentSessionType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = MultiAgentSessionType(v)\n\t}\n\tp.SessionType = _field\n\treturn nil\n}\n\nfunc (p *Intent) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Intent\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Intent) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IntentId\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IntentId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Intent) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Prompt\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Prompt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Intent) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"NextAgentId\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.NextAgentId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Intent) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SessionType\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SessionType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *Intent) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Intent(%+v)\", *p)\n\n}\n\n// Time Capsule Information\ntype TimeCapsuleInfo struct {\n\tTimeCapsuleMode      *TimeCapsuleMode      `thrift:\"TimeCapsuleMode,1,optional\" form:\"time_capsule_mode\" json:\"time_capsule_mode,omitempty\"`\n\tDisablePromptCalling *DisablePromptCalling `thrift:\"DisablePromptCalling,2,optional\" form:\"disable_prompt_calling\" json:\"disable_prompt_calling,omitempty\"`\n}\n\nfunc NewTimeCapsuleInfo() *TimeCapsuleInfo {\n\treturn &TimeCapsuleInfo{}\n}\n\nfunc (p *TimeCapsuleInfo) InitDefault() {\n}\n\nvar TimeCapsuleInfo_TimeCapsuleMode_DEFAULT TimeCapsuleMode\n\nfunc (p *TimeCapsuleInfo) GetTimeCapsuleMode() (v TimeCapsuleMode) {\n\tif !p.IsSetTimeCapsuleMode() {\n\t\treturn TimeCapsuleInfo_TimeCapsuleMode_DEFAULT\n\t}\n\treturn *p.TimeCapsuleMode\n}\n\nvar TimeCapsuleInfo_DisablePromptCalling_DEFAULT DisablePromptCalling\n\nfunc (p *TimeCapsuleInfo) GetDisablePromptCalling() (v DisablePromptCalling) {\n\tif !p.IsSetDisablePromptCalling() {\n\t\treturn TimeCapsuleInfo_DisablePromptCalling_DEFAULT\n\t}\n\treturn *p.DisablePromptCalling\n}\n\nvar fieldIDToName_TimeCapsuleInfo = map[int16]string{\n\t1: \"TimeCapsuleMode\",\n\t2: \"DisablePromptCalling\",\n}\n\nfunc (p *TimeCapsuleInfo) IsSetTimeCapsuleMode() bool {\n\treturn p.TimeCapsuleMode != nil\n}\n\nfunc (p *TimeCapsuleInfo) IsSetDisablePromptCalling() bool {\n\treturn p.DisablePromptCalling != nil\n}\n\nfunc (p *TimeCapsuleInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TimeCapsuleInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TimeCapsuleInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *TimeCapsuleMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TimeCapsuleMode(v)\n\t\t_field = &tmp\n\t}\n\tp.TimeCapsuleMode = _field\n\treturn nil\n}\nfunc (p *TimeCapsuleInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *DisablePromptCalling\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DisablePromptCalling(v)\n\t\t_field = &tmp\n\t}\n\tp.DisablePromptCalling = _field\n\treturn nil\n}\n\nfunc (p *TimeCapsuleInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TimeCapsuleInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TimeCapsuleInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTimeCapsuleMode() {\n\t\tif err = oprot.WriteFieldBegin(\"TimeCapsuleMode\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.TimeCapsuleMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TimeCapsuleInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDisablePromptCalling() {\n\t\tif err = oprot.WriteFieldBegin(\"DisablePromptCalling\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.DisablePromptCalling)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *TimeCapsuleInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TimeCapsuleInfo(%+v)\", *p)\n\n}\n\ntype BotTagInfo struct {\n\t// Time capsule information tag key: time_capsule\n\tTimeCapsuleInfo *TimeCapsuleInfo `thrift:\"TimeCapsuleInfo,1,optional\" form:\"time_capsule_info\" json:\"time_capsule_info,omitempty\"`\n}\n\nfunc NewBotTagInfo() *BotTagInfo {\n\treturn &BotTagInfo{}\n}\n\nfunc (p *BotTagInfo) InitDefault() {\n}\n\nvar BotTagInfo_TimeCapsuleInfo_DEFAULT *TimeCapsuleInfo\n\nfunc (p *BotTagInfo) GetTimeCapsuleInfo() (v *TimeCapsuleInfo) {\n\tif !p.IsSetTimeCapsuleInfo() {\n\t\treturn BotTagInfo_TimeCapsuleInfo_DEFAULT\n\t}\n\treturn p.TimeCapsuleInfo\n}\n\nvar fieldIDToName_BotTagInfo = map[int16]string{\n\t1: \"TimeCapsuleInfo\",\n}\n\nfunc (p *BotTagInfo) IsSetTimeCapsuleInfo() bool {\n\treturn p.TimeCapsuleInfo != nil\n}\n\nfunc (p *BotTagInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotTagInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotTagInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewTimeCapsuleInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TimeCapsuleInfo = _field\n\treturn nil\n}\n\nfunc (p *BotTagInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotTagInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotTagInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTimeCapsuleInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"TimeCapsuleInfo\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TimeCapsuleInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *BotTagInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotTagInfo(%+v)\", *p)\n\n}\n\ntype FileboxInfo struct {\n\tMode *FileboxInfoMode `thrift:\"Mode,1,optional\" form:\"Mode\" json:\"Mode,omitempty\" query:\"Mode\"`\n}\n\nfunc NewFileboxInfo() *FileboxInfo {\n\treturn &FileboxInfo{}\n}\n\nfunc (p *FileboxInfo) InitDefault() {\n}\n\nvar FileboxInfo_Mode_DEFAULT FileboxInfoMode\n\nfunc (p *FileboxInfo) GetMode() (v FileboxInfoMode) {\n\tif !p.IsSetMode() {\n\t\treturn FileboxInfo_Mode_DEFAULT\n\t}\n\treturn *p.Mode\n}\n\nvar fieldIDToName_FileboxInfo = map[int16]string{\n\t1: \"Mode\",\n}\n\nfunc (p *FileboxInfo) IsSetMode() bool {\n\treturn p.Mode != nil\n}\n\nfunc (p *FileboxInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FileboxInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FileboxInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *FileboxInfoMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := FileboxInfoMode(v)\n\t\t_field = &tmp\n\t}\n\tp.Mode = _field\n\treturn nil\n}\n\nfunc (p *FileboxInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FileboxInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FileboxInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMode() {\n\t\tif err = oprot.WriteFieldBegin(\"Mode\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Mode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *FileboxInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FileboxInfo(%+v)\", *p)\n\n}\n\n// bot information\ntype BotInfo struct {\n\t// bot id\n\tBotId int64 `thrift:\"BotId,1\" form:\"bot_id\" json:\"bot_id,string\"`\n\t// bot name\n\tName string `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\t// Bot description\n\tDescription string `thrift:\"Description,3\" form:\"description\" json:\"description\"`\n\t// Bot icon uri\n\tIconUri string `thrift:\"IconUri,4\" form:\"icon_uri\" json:\"icon_uri\"`\n\t// Bot icon url\n\tIconUrl string `thrift:\"IconUrl,5\" form:\"icon_url\" json:\"icon_url\"`\n\t// creator id\n\tCreatorId int64 `thrift:\"CreatorId,6\" form:\"creator_id\" json:\"creator_id,string\"`\n\t// create_time\n\tCreateTime int64 `thrift:\"CreateTime,7\" form:\"create_time\" json:\"create_time,string\"`\n\t// update time\n\tUpdateTime int64 `thrift:\"UpdateTime,8\" form:\"update_time\" json:\"update_time,string\"`\n\t// line of business\n\tConnectorId int64 `thrift:\"ConnectorId,9\" form:\"connector_id\" json:\"connector_id,string\"`\n\t// Version, ms\n\tVersion string `thrift:\"Version,10\" form:\"version\" json:\"version\"`\n\t// model configuration\n\tModelInfo *ModelInfo `thrift:\"ModelInfo,11\" form:\"model_info\" json:\"model_info\"`\n\t// Prompt message\n\tPromptInfo *PromptInfo `thrift:\"PromptInfo,12\" form:\"prompt_info\" json:\"prompt_info\"`\n\t// List of plugins\n\tPluginInfoList []*PluginInfo `thrift:\"PluginInfoList,13\" form:\"plugin_info_list\" json:\"plugin_info_list\"`\n\t// Workflow List\n\tWorkflowInfoList []*WorkflowInfo `thrift:\"WorkflowInfoList,14\" form:\"workflow_info_list\" json:\"workflow_info_list\"`\n\t// opening statement\n\tOnboardingInfo *OnboardingInfo `thrift:\"OnboardingInfo,15\" form:\"onboarding_info\" json:\"onboarding_info\"`\n\t// dataset\n\tKnowledge *Knowledge `thrift:\"Knowledge,16\" form:\"knowledge\" json:\"knowledge\"`\n\t// KV storage\n\tVariableList []*Variable `thrift:\"VariableList,17\" form:\"variable_list\" json:\"variable_list\"`\n\t// Task management/preset tasks\n\tTaskInfo *TaskInfo `thrift:\"TaskInfo,18\" form:\"task_info\" json:\"task_info\"`\n\t// data table\n\tDatabaseList []*Database `thrift:\"DatabaseList,19\" form:\"database_list\" json:\"database_list\"`\n\t// referral question\n\tSuggestReplyInfo *SuggestReplyInfo `thrift:\"SuggestReplyInfo,20\" form:\"suggest_reply_info\" json:\"suggest_reply_info\"`\n\t// Timbre Configuration\n\tVoicesInfo *VoicesInfo `thrift:\"VoicesInfo,21\" form:\"voices_info\" json:\"voices_info\"`\n\t// Additional information, extended fields\n\tBotExtInfo *BotExtInfo `thrift:\"BotExtInfo,22\" form:\"bot_ext_info\" json:\"bot_ext_info\"`\n\t// Bot type, single agent or multi agent\n\tBotMode BotMode `thrift:\"BotMode,23\" form:\"bot_mode\" json:\"bot_mode\"`\n\t// Multi agent mode agent information\n\tAgents []*Agent `thrift:\"Agents,24\" form:\"agents\" json:\"agents\"`\n\t// Bot type\n\tBotSpecies BotSpecies `thrift:\"BotSpecies,25\" form:\"bot_species\" json:\"bot_species\"`\n\t// Bot tag information, user new field\n\tBotTagInfo *BotTagInfo `thrift:\"BotTagInfo,26\" form:\"bot_tag_info\" json:\"bot_tag_info\"`\n\t// FileBox Information\n\tFileboxInfo *FileboxInfo `thrift:\"FileboxInfo,27\" form:\"filebox_info\" json:\"filebox_info\"`\n\t// multi_agent structure\n\tMultiAgentInfo *MultiAgentInfo `thrift:\"MultiAgentInfo,28\" form:\"multi_agent_info\" json:\"multi_agent_info\"`\n\t// Background cover list structure\n\tBackgroundImageInfoList []*BackgroundImageInfo `thrift:\"BackgroundImageInfoList,29\" form:\"background_image_info_list\" json:\"background_image_info_list\"`\n\tShortcutSort            []string               `thrift:\"ShortcutSort,30\" form:\"shortcut_sort\" json:\"shortcut_sort\"`\n\t// bot state\n\tStatus BotStatus `thrift:\"Status,31\" form:\"status\" json:\"status\"`\n\t// Hook information\n\tHookInfo *HookInfo `thrift:\"HookInfo,32,optional\" form:\"hook_info\" json:\"hook_info,omitempty\"`\n\t// User query collection configuration\n\tUserQueryCollectConf *UserQueryCollectConf `thrift:\"UserQueryCollectConf,33\" form:\"user_query_collect_conf\" json:\"user_query_collect_conf\"`\n\t// Orchestration information for workflow patterns\n\tLayoutInfo   *LayoutInfo  `thrift:\"LayoutInfo,34\" form:\"layout_info\" json:\"layout_info\"`\n\tBusinessType BusinessType `thrift:\"BusinessType,35\" form:\"business_type\" json:\"business_type\"`\n}\n\nfunc NewBotInfo() *BotInfo {\n\treturn &BotInfo{}\n}\n\nfunc (p *BotInfo) InitDefault() {\n}\n\nfunc (p *BotInfo) GetBotId() (v int64) {\n\treturn p.BotId\n}\n\nfunc (p *BotInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *BotInfo) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *BotInfo) GetIconUri() (v string) {\n\treturn p.IconUri\n}\n\nfunc (p *BotInfo) GetIconUrl() (v string) {\n\treturn p.IconUrl\n}\n\nfunc (p *BotInfo) GetCreatorId() (v int64) {\n\treturn p.CreatorId\n}\n\nfunc (p *BotInfo) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *BotInfo) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nfunc (p *BotInfo) GetConnectorId() (v int64) {\n\treturn p.ConnectorId\n}\n\nfunc (p *BotInfo) GetVersion() (v string) {\n\treturn p.Version\n}\n\nvar BotInfo_ModelInfo_DEFAULT *ModelInfo\n\nfunc (p *BotInfo) GetModelInfo() (v *ModelInfo) {\n\tif !p.IsSetModelInfo() {\n\t\treturn BotInfo_ModelInfo_DEFAULT\n\t}\n\treturn p.ModelInfo\n}\n\nvar BotInfo_PromptInfo_DEFAULT *PromptInfo\n\nfunc (p *BotInfo) GetPromptInfo() (v *PromptInfo) {\n\tif !p.IsSetPromptInfo() {\n\t\treturn BotInfo_PromptInfo_DEFAULT\n\t}\n\treturn p.PromptInfo\n}\n\nfunc (p *BotInfo) GetPluginInfoList() (v []*PluginInfo) {\n\treturn p.PluginInfoList\n}\n\nfunc (p *BotInfo) GetWorkflowInfoList() (v []*WorkflowInfo) {\n\treturn p.WorkflowInfoList\n}\n\nvar BotInfo_OnboardingInfo_DEFAULT *OnboardingInfo\n\nfunc (p *BotInfo) GetOnboardingInfo() (v *OnboardingInfo) {\n\tif !p.IsSetOnboardingInfo() {\n\t\treturn BotInfo_OnboardingInfo_DEFAULT\n\t}\n\treturn p.OnboardingInfo\n}\n\nvar BotInfo_Knowledge_DEFAULT *Knowledge\n\nfunc (p *BotInfo) GetKnowledge() (v *Knowledge) {\n\tif !p.IsSetKnowledge() {\n\t\treturn BotInfo_Knowledge_DEFAULT\n\t}\n\treturn p.Knowledge\n}\n\nfunc (p *BotInfo) GetVariableList() (v []*Variable) {\n\treturn p.VariableList\n}\n\nvar BotInfo_TaskInfo_DEFAULT *TaskInfo\n\nfunc (p *BotInfo) GetTaskInfo() (v *TaskInfo) {\n\tif !p.IsSetTaskInfo() {\n\t\treturn BotInfo_TaskInfo_DEFAULT\n\t}\n\treturn p.TaskInfo\n}\n\nfunc (p *BotInfo) GetDatabaseList() (v []*Database) {\n\treturn p.DatabaseList\n}\n\nvar BotInfo_SuggestReplyInfo_DEFAULT *SuggestReplyInfo\n\nfunc (p *BotInfo) GetSuggestReplyInfo() (v *SuggestReplyInfo) {\n\tif !p.IsSetSuggestReplyInfo() {\n\t\treturn BotInfo_SuggestReplyInfo_DEFAULT\n\t}\n\treturn p.SuggestReplyInfo\n}\n\nvar BotInfo_VoicesInfo_DEFAULT *VoicesInfo\n\nfunc (p *BotInfo) GetVoicesInfo() (v *VoicesInfo) {\n\tif !p.IsSetVoicesInfo() {\n\t\treturn BotInfo_VoicesInfo_DEFAULT\n\t}\n\treturn p.VoicesInfo\n}\n\nvar BotInfo_BotExtInfo_DEFAULT *BotExtInfo\n\nfunc (p *BotInfo) GetBotExtInfo() (v *BotExtInfo) {\n\tif !p.IsSetBotExtInfo() {\n\t\treturn BotInfo_BotExtInfo_DEFAULT\n\t}\n\treturn p.BotExtInfo\n}\n\nfunc (p *BotInfo) GetBotMode() (v BotMode) {\n\treturn p.BotMode\n}\n\nfunc (p *BotInfo) GetAgents() (v []*Agent) {\n\treturn p.Agents\n}\n\nfunc (p *BotInfo) GetBotSpecies() (v BotSpecies) {\n\treturn p.BotSpecies\n}\n\nvar BotInfo_BotTagInfo_DEFAULT *BotTagInfo\n\nfunc (p *BotInfo) GetBotTagInfo() (v *BotTagInfo) {\n\tif !p.IsSetBotTagInfo() {\n\t\treturn BotInfo_BotTagInfo_DEFAULT\n\t}\n\treturn p.BotTagInfo\n}\n\nvar BotInfo_FileboxInfo_DEFAULT *FileboxInfo\n\nfunc (p *BotInfo) GetFileboxInfo() (v *FileboxInfo) {\n\tif !p.IsSetFileboxInfo() {\n\t\treturn BotInfo_FileboxInfo_DEFAULT\n\t}\n\treturn p.FileboxInfo\n}\n\nvar BotInfo_MultiAgentInfo_DEFAULT *MultiAgentInfo\n\nfunc (p *BotInfo) GetMultiAgentInfo() (v *MultiAgentInfo) {\n\tif !p.IsSetMultiAgentInfo() {\n\t\treturn BotInfo_MultiAgentInfo_DEFAULT\n\t}\n\treturn p.MultiAgentInfo\n}\n\nfunc (p *BotInfo) GetBackgroundImageInfoList() (v []*BackgroundImageInfo) {\n\treturn p.BackgroundImageInfoList\n}\n\nfunc (p *BotInfo) GetShortcutSort() (v []string) {\n\treturn p.ShortcutSort\n}\n\nfunc (p *BotInfo) GetStatus() (v BotStatus) {\n\treturn p.Status\n}\n\nvar BotInfo_HookInfo_DEFAULT *HookInfo\n\nfunc (p *BotInfo) GetHookInfo() (v *HookInfo) {\n\tif !p.IsSetHookInfo() {\n\t\treturn BotInfo_HookInfo_DEFAULT\n\t}\n\treturn p.HookInfo\n}\n\nvar BotInfo_UserQueryCollectConf_DEFAULT *UserQueryCollectConf\n\nfunc (p *BotInfo) GetUserQueryCollectConf() (v *UserQueryCollectConf) {\n\tif !p.IsSetUserQueryCollectConf() {\n\t\treturn BotInfo_UserQueryCollectConf_DEFAULT\n\t}\n\treturn p.UserQueryCollectConf\n}\n\nvar BotInfo_LayoutInfo_DEFAULT *LayoutInfo\n\nfunc (p *BotInfo) GetLayoutInfo() (v *LayoutInfo) {\n\tif !p.IsSetLayoutInfo() {\n\t\treturn BotInfo_LayoutInfo_DEFAULT\n\t}\n\treturn p.LayoutInfo\n}\n\nfunc (p *BotInfo) GetBusinessType() (v BusinessType) {\n\treturn p.BusinessType\n}\n\nvar fieldIDToName_BotInfo = map[int16]string{\n\t1:  \"BotId\",\n\t2:  \"Name\",\n\t3:  \"Description\",\n\t4:  \"IconUri\",\n\t5:  \"IconUrl\",\n\t6:  \"CreatorId\",\n\t7:  \"CreateTime\",\n\t8:  \"UpdateTime\",\n\t9:  \"ConnectorId\",\n\t10: \"Version\",\n\t11: \"ModelInfo\",\n\t12: \"PromptInfo\",\n\t13: \"PluginInfoList\",\n\t14: \"WorkflowInfoList\",\n\t15: \"OnboardingInfo\",\n\t16: \"Knowledge\",\n\t17: \"VariableList\",\n\t18: \"TaskInfo\",\n\t19: \"DatabaseList\",\n\t20: \"SuggestReplyInfo\",\n\t21: \"VoicesInfo\",\n\t22: \"BotExtInfo\",\n\t23: \"BotMode\",\n\t24: \"Agents\",\n\t25: \"BotSpecies\",\n\t26: \"BotTagInfo\",\n\t27: \"FileboxInfo\",\n\t28: \"MultiAgentInfo\",\n\t29: \"BackgroundImageInfoList\",\n\t30: \"ShortcutSort\",\n\t31: \"Status\",\n\t32: \"HookInfo\",\n\t33: \"UserQueryCollectConf\",\n\t34: \"LayoutInfo\",\n\t35: \"BusinessType\",\n}\n\nfunc (p *BotInfo) IsSetModelInfo() bool {\n\treturn p.ModelInfo != nil\n}\n\nfunc (p *BotInfo) IsSetPromptInfo() bool {\n\treturn p.PromptInfo != nil\n}\n\nfunc (p *BotInfo) IsSetOnboardingInfo() bool {\n\treturn p.OnboardingInfo != nil\n}\n\nfunc (p *BotInfo) IsSetKnowledge() bool {\n\treturn p.Knowledge != nil\n}\n\nfunc (p *BotInfo) IsSetTaskInfo() bool {\n\treturn p.TaskInfo != nil\n}\n\nfunc (p *BotInfo) IsSetSuggestReplyInfo() bool {\n\treturn p.SuggestReplyInfo != nil\n}\n\nfunc (p *BotInfo) IsSetVoicesInfo() bool {\n\treturn p.VoicesInfo != nil\n}\n\nfunc (p *BotInfo) IsSetBotExtInfo() bool {\n\treturn p.BotExtInfo != nil\n}\n\nfunc (p *BotInfo) IsSetBotTagInfo() bool {\n\treturn p.BotTagInfo != nil\n}\n\nfunc (p *BotInfo) IsSetFileboxInfo() bool {\n\treturn p.FileboxInfo != nil\n}\n\nfunc (p *BotInfo) IsSetMultiAgentInfo() bool {\n\treturn p.MultiAgentInfo != nil\n}\n\nfunc (p *BotInfo) IsSetHookInfo() bool {\n\treturn p.HookInfo != nil\n}\n\nfunc (p *BotInfo) IsSetUserQueryCollectConf() bool {\n\treturn p.UserQueryCollectConf != nil\n}\n\nfunc (p *BotInfo) IsSetLayoutInfo() bool {\n\treturn p.LayoutInfo != nil\n}\n\nfunc (p *BotInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 25:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField25(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 26:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField26(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 27:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField27(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 28:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField28(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 29:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField29(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 30:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField30(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 31:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField31(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 32:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField32(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 33:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField33(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 34:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField34(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 35:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField35(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotId = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconUri = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconUrl = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorId = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorId = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField11(iprot thrift.TProtocol) error {\n\t_field := NewModelInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ModelInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField12(iprot thrift.TProtocol) error {\n\t_field := NewPromptInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PromptInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField13(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginInfo, 0, size)\n\tvalues := make([]PluginInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginInfoList = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField14(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowInfo, 0, size)\n\tvalues := make([]WorkflowInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowInfoList = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField15(iprot thrift.TProtocol) error {\n\t_field := NewOnboardingInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OnboardingInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField16(iprot thrift.TProtocol) error {\n\t_field := NewKnowledge()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Knowledge = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField17(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Variable, 0, size)\n\tvalues := make([]Variable, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.VariableList = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField18(iprot thrift.TProtocol) error {\n\t_field := NewTaskInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TaskInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField19(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Database, 0, size)\n\tvalues := make([]Database, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DatabaseList = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField20(iprot thrift.TProtocol) error {\n\t_field := NewSuggestReplyInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestReplyInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField21(iprot thrift.TProtocol) error {\n\t_field := NewVoicesInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.VoicesInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField22(iprot thrift.TProtocol) error {\n\t_field := NewBotExtInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotExtInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field BotMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotMode(v)\n\t}\n\tp.BotMode = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField24(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Agent, 0, size)\n\tvalues := make([]Agent, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Agents = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField25(iprot thrift.TProtocol) error {\n\n\tvar _field BotSpecies\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotSpecies(v)\n\t}\n\tp.BotSpecies = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField26(iprot thrift.TProtocol) error {\n\t_field := NewBotTagInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotTagInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField27(iprot thrift.TProtocol) error {\n\t_field := NewFileboxInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FileboxInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField28(iprot thrift.TProtocol) error {\n\t_field := NewMultiAgentInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.MultiAgentInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField29(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*BackgroundImageInfo, 0, size)\n\tvalues := make([]BackgroundImageInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BackgroundImageInfoList = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField30(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ShortcutSort = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField31(iprot thrift.TProtocol) error {\n\n\tvar _field BotStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField32(iprot thrift.TProtocol) error {\n\t_field := NewHookInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.HookInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField33(iprot thrift.TProtocol) error {\n\t_field := NewUserQueryCollectConf()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserQueryCollectConf = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField34(iprot thrift.TProtocol) error {\n\t_field := NewLayoutInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.LayoutInfo = _field\n\treturn nil\n}\nfunc (p *BotInfo) ReadField35(iprot thrift.TProtocol) error {\n\n\tvar _field BusinessType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BusinessType(v)\n\t}\n\tp.BusinessType = _field\n\treturn nil\n}\n\nfunc (p *BotInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField25(oprot); err != nil {\n\t\t\tfieldId = 25\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField26(oprot); err != nil {\n\t\t\tfieldId = 26\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField27(oprot); err != nil {\n\t\t\tfieldId = 27\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField28(oprot); err != nil {\n\t\t\tfieldId = 28\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField29(oprot); err != nil {\n\t\t\tfieldId = 29\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField30(oprot); err != nil {\n\t\t\tfieldId = 30\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField31(oprot); err != nil {\n\t\t\tfieldId = 31\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField32(oprot); err != nil {\n\t\t\tfieldId = 32\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField33(oprot); err != nil {\n\t\t\tfieldId = 33\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField34(oprot); err != nil {\n\t\t\tfieldId = 34\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField35(oprot); err != nil {\n\t\t\tfieldId = 35\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotId\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IconUri\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconUri); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IconUrl\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconUrl); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CreatorId\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatorId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CreateTime\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UpdateTime\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConnectorId\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConnectorId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Version\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ModelInfo\", thrift.STRUCT, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ModelInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PromptInfo\", thrift.STRUCT, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.PromptInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PluginInfoList\", thrift.LIST, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowInfoList\", thrift.LIST, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.WorkflowInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"OnboardingInfo\", thrift.STRUCT, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.OnboardingInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Knowledge\", thrift.STRUCT, 16); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Knowledge.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VariableList\", thrift.LIST, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.VariableList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.VariableList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TaskInfo\", thrift.STRUCT, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.TaskInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DatabaseList\", thrift.LIST, 19); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.DatabaseList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DatabaseList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SuggestReplyInfo\", thrift.STRUCT, 20); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.SuggestReplyInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField21(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VoicesInfo\", thrift.STRUCT, 21); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.VoicesInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField22(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotExtInfo\", thrift.STRUCT, 22); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BotExtInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField23(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotMode\", thrift.I32, 23); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BotMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField24(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Agents\", thrift.LIST, 24); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Agents)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Agents {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField25(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotSpecies\", thrift.I32, 25); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BotSpecies)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField26(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotTagInfo\", thrift.STRUCT, 26); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BotTagInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 26 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 26 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField27(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"FileboxInfo\", thrift.STRUCT, 27); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.FileboxInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 27 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 27 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField28(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"MultiAgentInfo\", thrift.STRUCT, 28); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.MultiAgentInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 28 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 28 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField29(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BackgroundImageInfoList\", thrift.LIST, 29); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.BackgroundImageInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.BackgroundImageInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 29 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 29 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField30(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ShortcutSort\", thrift.LIST, 30); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.ShortcutSort)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ShortcutSort {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 30 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 30 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField31(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Status\", thrift.I32, 31); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 31 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 31 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField32(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHookInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"HookInfo\", thrift.STRUCT, 32); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.HookInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 32 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 32 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField33(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserQueryCollectConf\", thrift.STRUCT, 33); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.UserQueryCollectConf.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 33 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 33 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField34(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"LayoutInfo\", thrift.STRUCT, 34); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.LayoutInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 34 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 34 end error: \", p), err)\n}\nfunc (p *BotInfo) writeField35(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BusinessType\", thrift.I32, 35); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BusinessType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 35 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 35 end error: \", p), err)\n}\n\nfunc (p *BotInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotInfo(%+v)\", *p)\n\n}\n\ntype CommonKnowledge struct {\n\t// Knowledge Base Information\n\tKnowledgeInfos []*KnowledgeInfo `thrift:\"knowledge_infos,1\" form:\"knowledge_infos\" json:\"knowledge_infos\" query:\"knowledge_infos\"`\n}\n\nfunc NewCommonKnowledge() *CommonKnowledge {\n\treturn &CommonKnowledge{}\n}\n\nfunc (p *CommonKnowledge) InitDefault() {\n}\n\nfunc (p *CommonKnowledge) GetKnowledgeInfos() (v []*KnowledgeInfo) {\n\treturn p.KnowledgeInfos\n}\n\nvar fieldIDToName_CommonKnowledge = map[int16]string{\n\t1: \"knowledge_infos\",\n}\n\nfunc (p *CommonKnowledge) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CommonKnowledge[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CommonKnowledge) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*KnowledgeInfo, 0, size)\n\tvalues := make([]KnowledgeInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.KnowledgeInfos = _field\n\treturn nil\n}\n\nfunc (p *CommonKnowledge) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CommonKnowledge\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CommonKnowledge) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"knowledge_infos\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.KnowledgeInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.KnowledgeInfos {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *CommonKnowledge) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CommonKnowledge(%+v)\", *p)\n\n}\n\ntype ShortcutCommandComponent struct {\n\t// Panel parameters\n\tName string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\t//parameter description\n\tDescription string `thrift:\"description,2\" form:\"description\" json:\"description\" query:\"description\"`\n\t// Input type text, select, file\n\tType string `thrift:\"type,3\" form:\"type\" json:\"type\" query:\"type\"`\n\t// When requesting a tool, the key of the parameter corresponds to the parameter name of the tool. If not, it will not be returned.\n\tToolParameter *string `thrift:\"tool_parameter,4,optional\" form:\"tool_parameter\" json:\"tool_parameter,omitempty\" query:\"tool_parameter\"`\n\t// Options list when type is select or what types are supported when type is file image, doc, table, audio, video, zip, code, txt, ppt\n\tOptions []string `thrift:\"options,5,optional\" form:\"options\" json:\"options,omitempty\" query:\"options\"`\n\t// Default value, not returned when not configured\n\tDefaultValue *string `thrift:\"default_value,6,optional\" form:\"default_value\" json:\"default_value,omitempty\" query:\"default_value\"`\n\t// Whether to hide or not to show, the shortcut command of the online bot tool type does not return the component with hide = true\n\tIsHide bool `thrift:\"is_hide,7\" form:\"is_hide\" json:\"is_hide\" query:\"is_hide\"`\n}\n\nfunc NewShortcutCommandComponent() *ShortcutCommandComponent {\n\treturn &ShortcutCommandComponent{}\n}\n\nfunc (p *ShortcutCommandComponent) InitDefault() {\n}\n\nfunc (p *ShortcutCommandComponent) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ShortcutCommandComponent) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *ShortcutCommandComponent) GetType() (v string) {\n\treturn p.Type\n}\n\nvar ShortcutCommandComponent_ToolParameter_DEFAULT string\n\nfunc (p *ShortcutCommandComponent) GetToolParameter() (v string) {\n\tif !p.IsSetToolParameter() {\n\t\treturn ShortcutCommandComponent_ToolParameter_DEFAULT\n\t}\n\treturn *p.ToolParameter\n}\n\nvar ShortcutCommandComponent_Options_DEFAULT []string\n\nfunc (p *ShortcutCommandComponent) GetOptions() (v []string) {\n\tif !p.IsSetOptions() {\n\t\treturn ShortcutCommandComponent_Options_DEFAULT\n\t}\n\treturn p.Options\n}\n\nvar ShortcutCommandComponent_DefaultValue_DEFAULT string\n\nfunc (p *ShortcutCommandComponent) GetDefaultValue() (v string) {\n\tif !p.IsSetDefaultValue() {\n\t\treturn ShortcutCommandComponent_DefaultValue_DEFAULT\n\t}\n\treturn *p.DefaultValue\n}\n\nfunc (p *ShortcutCommandComponent) GetIsHide() (v bool) {\n\treturn p.IsHide\n}\n\nvar fieldIDToName_ShortcutCommandComponent = map[int16]string{\n\t1: \"name\",\n\t2: \"description\",\n\t3: \"type\",\n\t4: \"tool_parameter\",\n\t5: \"options\",\n\t6: \"default_value\",\n\t7: \"is_hide\",\n}\n\nfunc (p *ShortcutCommandComponent) IsSetToolParameter() bool {\n\treturn p.ToolParameter != nil\n}\n\nfunc (p *ShortcutCommandComponent) IsSetOptions() bool {\n\treturn p.Options != nil\n}\n\nfunc (p *ShortcutCommandComponent) IsSetDefaultValue() bool {\n\treturn p.DefaultValue != nil\n}\n\nfunc (p *ShortcutCommandComponent) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ShortcutCommandComponent[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ShortcutCommandComponent) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandComponent) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandComponent) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandComponent) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ToolParameter = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandComponent) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Options = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandComponent) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DefaultValue = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandComponent) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsHide = _field\n\treturn nil\n}\n\nfunc (p *ShortcutCommandComponent) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ShortcutCommandComponent\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ShortcutCommandComponent) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ShortcutCommandComponent) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ShortcutCommandComponent) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ShortcutCommandComponent) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetToolParameter() {\n\t\tif err = oprot.WriteFieldBegin(\"tool_parameter\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ToolParameter); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ShortcutCommandComponent) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOptions() {\n\t\tif err = oprot.WriteFieldBegin(\"options\", thrift.LIST, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Options)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Options {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ShortcutCommandComponent) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDefaultValue() {\n\t\tif err = oprot.WriteFieldBegin(\"default_value\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DefaultValue); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ShortcutCommandComponent) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_hide\", thrift.BOOL, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsHide); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *ShortcutCommandComponent) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ShortcutCommandComponent(%+v)\", *p)\n\n}\n\ntype ShortcutToolParam struct {\n\tName             string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tIsRequired       bool   `thrift:\"is_required,2\" form:\"is_required\" json:\"is_required\" query:\"is_required\"`\n\tDescription      string `thrift:\"description,3\" form:\"description\" json:\"description\" query:\"description\"`\n\tType             string `thrift:\"type,4\" form:\"type\" json:\"type\" query:\"type\"`\n\tDefaultValue     string `thrift:\"default_value,5\" form:\"default_value\" json:\"default_value\" query:\"default_value\"`\n\tIsReferComponent bool   `thrift:\"is_refer_component,6\" form:\"is_refer_component\" json:\"is_refer_component\" query:\"is_refer_component\"`\n}\n\nfunc NewShortcutToolParam() *ShortcutToolParam {\n\treturn &ShortcutToolParam{}\n}\n\nfunc (p *ShortcutToolParam) InitDefault() {\n}\n\nfunc (p *ShortcutToolParam) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ShortcutToolParam) GetIsRequired() (v bool) {\n\treturn p.IsRequired\n}\n\nfunc (p *ShortcutToolParam) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *ShortcutToolParam) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *ShortcutToolParam) GetDefaultValue() (v string) {\n\treturn p.DefaultValue\n}\n\nfunc (p *ShortcutToolParam) GetIsReferComponent() (v bool) {\n\treturn p.IsReferComponent\n}\n\nvar fieldIDToName_ShortcutToolParam = map[int16]string{\n\t1: \"name\",\n\t2: \"is_required\",\n\t3: \"description\",\n\t4: \"type\",\n\t5: \"default_value\",\n\t6: \"is_refer_component\",\n}\n\nfunc (p *ShortcutToolParam) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ShortcutToolParam[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ShortcutToolParam) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ShortcutToolParam) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsRequired = _field\n\treturn nil\n}\nfunc (p *ShortcutToolParam) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *ShortcutToolParam) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ShortcutToolParam) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DefaultValue = _field\n\treturn nil\n}\nfunc (p *ShortcutToolParam) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsReferComponent = _field\n\treturn nil\n}\n\nfunc (p *ShortcutToolParam) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ShortcutToolParam\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ShortcutToolParam) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ShortcutToolParam) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_required\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsRequired); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ShortcutToolParam) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ShortcutToolParam) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ShortcutToolParam) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"default_value\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DefaultValue); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ShortcutToolParam) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_refer_component\", thrift.BOOL, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsReferComponent); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *ShortcutToolParam) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ShortcutToolParam(%+v)\", *p)\n\n}\n\ntype ShortcutCommandToolInfo struct {\n\t//\n\tName string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\t// Tool type workflow plugin\n\tType          string               `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n\tPluginID      *int64               `thrift:\"plugin_id,3,optional\" form:\"plugin_id\" json:\"plugin_id,string,omitempty\" query:\"plugin_id\"`\n\tPluginAPIName *string              `thrift:\"plugin_api_name,4,optional\" form:\"plugin_api_name\" json:\"plugin_api_name,omitempty\" query:\"plugin_api_name\"`\n\tWorkflowID    *int64               `thrift:\"workflow_id,5,optional\" form:\"workflow_id\" json:\"workflow_id,string,omitempty\" query:\"workflow_id\"`\n\tParams        []*ShortcutToolParam `thrift:\"params,6,optional\" form:\"params\" json:\"params,omitempty\" query:\"params\"`\n}\n\nfunc NewShortcutCommandToolInfo() *ShortcutCommandToolInfo {\n\treturn &ShortcutCommandToolInfo{}\n}\n\nfunc (p *ShortcutCommandToolInfo) InitDefault() {\n}\n\nfunc (p *ShortcutCommandToolInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ShortcutCommandToolInfo) GetType() (v string) {\n\treturn p.Type\n}\n\nvar ShortcutCommandToolInfo_PluginID_DEFAULT int64\n\nfunc (p *ShortcutCommandToolInfo) GetPluginID() (v int64) {\n\tif !p.IsSetPluginID() {\n\t\treturn ShortcutCommandToolInfo_PluginID_DEFAULT\n\t}\n\treturn *p.PluginID\n}\n\nvar ShortcutCommandToolInfo_PluginAPIName_DEFAULT string\n\nfunc (p *ShortcutCommandToolInfo) GetPluginAPIName() (v string) {\n\tif !p.IsSetPluginAPIName() {\n\t\treturn ShortcutCommandToolInfo_PluginAPIName_DEFAULT\n\t}\n\treturn *p.PluginAPIName\n}\n\nvar ShortcutCommandToolInfo_WorkflowID_DEFAULT int64\n\nfunc (p *ShortcutCommandToolInfo) GetWorkflowID() (v int64) {\n\tif !p.IsSetWorkflowID() {\n\t\treturn ShortcutCommandToolInfo_WorkflowID_DEFAULT\n\t}\n\treturn *p.WorkflowID\n}\n\nvar ShortcutCommandToolInfo_Params_DEFAULT []*ShortcutToolParam\n\nfunc (p *ShortcutCommandToolInfo) GetParams() (v []*ShortcutToolParam) {\n\tif !p.IsSetParams() {\n\t\treturn ShortcutCommandToolInfo_Params_DEFAULT\n\t}\n\treturn p.Params\n}\n\nvar fieldIDToName_ShortcutCommandToolInfo = map[int16]string{\n\t1: \"name\",\n\t2: \"type\",\n\t3: \"plugin_id\",\n\t4: \"plugin_api_name\",\n\t5: \"workflow_id\",\n\t6: \"params\",\n}\n\nfunc (p *ShortcutCommandToolInfo) IsSetPluginID() bool {\n\treturn p.PluginID != nil\n}\n\nfunc (p *ShortcutCommandToolInfo) IsSetPluginAPIName() bool {\n\treturn p.PluginAPIName != nil\n}\n\nfunc (p *ShortcutCommandToolInfo) IsSetWorkflowID() bool {\n\treturn p.WorkflowID != nil\n}\n\nfunc (p *ShortcutCommandToolInfo) IsSetParams() bool {\n\treturn p.Params != nil\n}\n\nfunc (p *ShortcutCommandToolInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ShortcutCommandToolInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ShortcutCommandToolInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandToolInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandToolInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandToolInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginAPIName = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandToolInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandToolInfo) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ShortcutToolParam, 0, size)\n\tvalues := make([]ShortcutToolParam, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Params = _field\n\treturn nil\n}\n\nfunc (p *ShortcutCommandToolInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ShortcutCommandToolInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ShortcutCommandToolInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ShortcutCommandToolInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ShortcutCommandToolInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginID() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.PluginID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ShortcutCommandToolInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginAPIName() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_api_name\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PluginAPIName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ShortcutCommandToolInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowID() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.WorkflowID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ShortcutCommandToolInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParams() {\n\t\tif err = oprot.WriteFieldBegin(\"params\", thrift.LIST, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Params)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Params {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *ShortcutCommandToolInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ShortcutCommandToolInfo(%+v)\", *p)\n\n}\n\ntype ShortcutCommandInfo struct {\n\t// Quick Command ID\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\t// Shortcut button name\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\t// Quick Instruction\n\tCommand string `thrift:\"command,3\" form:\"command\" json:\"command\" query:\"command\"`\n\t// shortcut description\n\tDescription string `thrift:\"description,4\" form:\"description\" json:\"description\" query:\"description\"`\n\t// Command query template\n\tQueryTemplate string `thrift:\"query_template,5\" form:\"query_template\" json:\"query_template\" query:\"query_template\"`\n\t// Quick command icon\n\tIconURL string `thrift:\"icon_url,6\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\t// Component list (parameter list)\n\tComponents []*ShortcutCommandComponent `thrift:\"components,7,optional\" form:\"components\" json:\"components,omitempty\" query:\"components\"`\n\t// Tool information\n\tTool *ShortcutCommandToolInfo `thrift:\"tool,8,optional\" form:\"tool\" json:\"tool,omitempty\" query:\"tool\"`\n\t//When the multi instruction is executed by which node, it will not be returned without configuration\n\tAgentID *int64 `thrift:\"agent_id,9,optional\" form:\"agent_id\" json:\"agent_id,string,omitempty\" query:\"agent_id\"`\n\t// chatsdk used\n\tSendType *ShortcutSendType `thrift:\"send_type,10,optional\" form:\"send_type\" json:\"send_type,omitempty\" query:\"send_type\"`\n\t// chatsdk schema\n\tCardSchema *string `thrift:\"card_schema,11,optional\" form:\"card_schema\" json:\"card_schema,omitempty\" query:\"card_schema\"`\n}\n\nfunc NewShortcutCommandInfo() *ShortcutCommandInfo {\n\treturn &ShortcutCommandInfo{}\n}\n\nfunc (p *ShortcutCommandInfo) InitDefault() {\n}\n\nfunc (p *ShortcutCommandInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *ShortcutCommandInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ShortcutCommandInfo) GetCommand() (v string) {\n\treturn p.Command\n}\n\nfunc (p *ShortcutCommandInfo) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *ShortcutCommandInfo) GetQueryTemplate() (v string) {\n\treturn p.QueryTemplate\n}\n\nfunc (p *ShortcutCommandInfo) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nvar ShortcutCommandInfo_Components_DEFAULT []*ShortcutCommandComponent\n\nfunc (p *ShortcutCommandInfo) GetComponents() (v []*ShortcutCommandComponent) {\n\tif !p.IsSetComponents() {\n\t\treturn ShortcutCommandInfo_Components_DEFAULT\n\t}\n\treturn p.Components\n}\n\nvar ShortcutCommandInfo_Tool_DEFAULT *ShortcutCommandToolInfo\n\nfunc (p *ShortcutCommandInfo) GetTool() (v *ShortcutCommandToolInfo) {\n\tif !p.IsSetTool() {\n\t\treturn ShortcutCommandInfo_Tool_DEFAULT\n\t}\n\treturn p.Tool\n}\n\nvar ShortcutCommandInfo_AgentID_DEFAULT int64\n\nfunc (p *ShortcutCommandInfo) GetAgentID() (v int64) {\n\tif !p.IsSetAgentID() {\n\t\treturn ShortcutCommandInfo_AgentID_DEFAULT\n\t}\n\treturn *p.AgentID\n}\n\nvar ShortcutCommandInfo_SendType_DEFAULT ShortcutSendType\n\nfunc (p *ShortcutCommandInfo) GetSendType() (v ShortcutSendType) {\n\tif !p.IsSetSendType() {\n\t\treturn ShortcutCommandInfo_SendType_DEFAULT\n\t}\n\treturn *p.SendType\n}\n\nvar ShortcutCommandInfo_CardSchema_DEFAULT string\n\nfunc (p *ShortcutCommandInfo) GetCardSchema() (v string) {\n\tif !p.IsSetCardSchema() {\n\t\treturn ShortcutCommandInfo_CardSchema_DEFAULT\n\t}\n\treturn *p.CardSchema\n}\n\nvar fieldIDToName_ShortcutCommandInfo = map[int16]string{\n\t1:  \"id\",\n\t2:  \"name\",\n\t3:  \"command\",\n\t4:  \"description\",\n\t5:  \"query_template\",\n\t6:  \"icon_url\",\n\t7:  \"components\",\n\t8:  \"tool\",\n\t9:  \"agent_id\",\n\t10: \"send_type\",\n\t11: \"card_schema\",\n}\n\nfunc (p *ShortcutCommandInfo) IsSetComponents() bool {\n\treturn p.Components != nil\n}\n\nfunc (p *ShortcutCommandInfo) IsSetTool() bool {\n\treturn p.Tool != nil\n}\n\nfunc (p *ShortcutCommandInfo) IsSetAgentID() bool {\n\treturn p.AgentID != nil\n}\n\nfunc (p *ShortcutCommandInfo) IsSetSendType() bool {\n\treturn p.SendType != nil\n}\n\nfunc (p *ShortcutCommandInfo) IsSetCardSchema() bool {\n\treturn p.CardSchema != nil\n}\n\nfunc (p *ShortcutCommandInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ShortcutCommandInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ShortcutCommandInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Command = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.QueryTemplate = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandInfo) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ShortcutCommandComponent, 0, size)\n\tvalues := make([]ShortcutCommandComponent, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Components = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandInfo) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewShortcutCommandToolInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Tool = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AgentID = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *ShortcutSendType\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SendType = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CardSchema = _field\n\treturn nil\n}\n\nfunc (p *ShortcutCommandInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ShortcutCommandInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ShortcutCommandInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ShortcutCommandInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ShortcutCommandInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"command\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Command); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ShortcutCommandInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ShortcutCommandInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"query_template\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.QueryTemplate); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ShortcutCommandInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ShortcutCommandInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetComponents() {\n\t\tif err = oprot.WriteFieldBegin(\"components\", thrift.LIST, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Components)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Components {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ShortcutCommandInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTool() {\n\t\tif err = oprot.WriteFieldBegin(\"tool\", thrift.STRUCT, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Tool.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ShortcutCommandInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAgentID() {\n\t\tif err = oprot.WriteFieldBegin(\"agent_id\", thrift.I64, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.AgentID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ShortcutCommandInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSendType() {\n\t\tif err = oprot.WriteFieldBegin(\"send_type\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SendType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ShortcutCommandInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCardSchema() {\n\t\tif err = oprot.WriteFieldBegin(\"card_schema\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CardSchema); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\n\nfunc (p *ShortcutCommandInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ShortcutCommandInfo(%+v)\", *p)\n\n}\n\ntype OpenAPIBotInfo struct {\n\t// bot id\n\tBotID int64 `thrift:\"bot_id,1\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\t// bot name\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\t// Bot description\n\tDescription string `thrift:\"description,3\" form:\"description\" json:\"description\" query:\"description\"`\n\t// Bot image url\n\tIconURL string `thrift:\"icon_url,4\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\t// create_time\n\tCreateTime int64 `thrift:\"create_time,5\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\t// update time\n\tUpdateTime int64 `thrift:\"update_time,6\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\t// version\n\tVersion string `thrift:\"version,7\" form:\"version\" json:\"version\" query:\"version\"`\n\t// Prompt message\n\tPromptInfo *PromptInfo `thrift:\"prompt_info,8\" form:\"prompt_info\" json:\"prompt_info\" query:\"prompt_info\"`\n\t// opening statement\n\tOnboardingInfo *OnboardingInfo `thrift:\"onboarding_info,9\" form:\"onboarding_info\" json:\"onboarding_info\" query:\"onboarding_info\"`\n\t// Bot type, single agent or multi agent\n\tBotMode BotMode `thrift:\"bot_mode,10\" form:\"bot_mode\" json:\"bot_mode\" query:\"bot_mode\"`\n\t//    11: optional list < VoiceData > voice_data_list,//selected voice message\n\tModelInfo *ModelInfo `thrift:\"model_info,12,optional\" form:\"model_info\" json:\"model_info,omitempty\" query:\"model_info\"`\n\t// Plugin information list\n\tPluginInfoList []*PluginInfo `thrift:\"plugin_info_list,13\" form:\"plugin_info_list\" json:\"plugin_info_list\" query:\"plugin_info_list\"`\n\t// Knowledge Base Information\n\tKnowledge *CommonKnowledge `thrift:\"knowledge,14,optional\" form:\"knowledge\" json:\"knowledge,omitempty\" query:\"knowledge\"`\n\t// Workflow information list\n\tWorkflowInfoList []*WorkflowInfo `thrift:\"workflow_info_list,15\" form:\"workflow_info_list\" json:\"workflow_info_list\" query:\"workflow_info_list\"`\n\t// Quick Command Information List\n\tShortcutCommands []*ShortcutCommandInfo `thrift:\"shortcut_commands,16\" form:\"shortcut_commands\" json:\"shortcut_commands\" query:\"shortcut_commands\"`\n\t//    17: list < Voice > voice_info_list,//Tone Configuration\n\tDefaultUserInputType string `thrift:\"default_user_input_type,18\" form:\"default_user_input_type\" json:\"default_user_input_type\" query:\"default_user_input_type\"`\n\t// User Question Suggestions\n\tSuggestReplyInfo *SuggestReplyInfo `thrift:\"suggest_reply_info,19\" form:\"suggest_reply_info\" json:\"suggest_reply_info\" query:\"suggest_reply_info\"`\n\t// background image\n\tBackgroundImageInfo *BackgroundImageInfo `thrift:\"background_image_info,20\" form:\"background_image_info\" json:\"background_image_info\" query:\"background_image_info\"`\n\t// Variable list\n\tVariables []*Variable `thrift:\"variables,21\" form:\"variables\" json:\"variables\" query:\"variables\"`\n}\n\nfunc NewOpenAPIBotInfo() *OpenAPIBotInfo {\n\treturn &OpenAPIBotInfo{}\n}\n\nfunc (p *OpenAPIBotInfo) InitDefault() {\n}\n\nfunc (p *OpenAPIBotInfo) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *OpenAPIBotInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *OpenAPIBotInfo) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *OpenAPIBotInfo) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *OpenAPIBotInfo) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *OpenAPIBotInfo) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nfunc (p *OpenAPIBotInfo) GetVersion() (v string) {\n\treturn p.Version\n}\n\nvar OpenAPIBotInfo_PromptInfo_DEFAULT *PromptInfo\n\nfunc (p *OpenAPIBotInfo) GetPromptInfo() (v *PromptInfo) {\n\tif !p.IsSetPromptInfo() {\n\t\treturn OpenAPIBotInfo_PromptInfo_DEFAULT\n\t}\n\treturn p.PromptInfo\n}\n\nvar OpenAPIBotInfo_OnboardingInfo_DEFAULT *OnboardingInfo\n\nfunc (p *OpenAPIBotInfo) GetOnboardingInfo() (v *OnboardingInfo) {\n\tif !p.IsSetOnboardingInfo() {\n\t\treturn OpenAPIBotInfo_OnboardingInfo_DEFAULT\n\t}\n\treturn p.OnboardingInfo\n}\n\nfunc (p *OpenAPIBotInfo) GetBotMode() (v BotMode) {\n\treturn p.BotMode\n}\n\nvar OpenAPIBotInfo_ModelInfo_DEFAULT *ModelInfo\n\nfunc (p *OpenAPIBotInfo) GetModelInfo() (v *ModelInfo) {\n\tif !p.IsSetModelInfo() {\n\t\treturn OpenAPIBotInfo_ModelInfo_DEFAULT\n\t}\n\treturn p.ModelInfo\n}\n\nfunc (p *OpenAPIBotInfo) GetPluginInfoList() (v []*PluginInfo) {\n\treturn p.PluginInfoList\n}\n\nvar OpenAPIBotInfo_Knowledge_DEFAULT *CommonKnowledge\n\nfunc (p *OpenAPIBotInfo) GetKnowledge() (v *CommonKnowledge) {\n\tif !p.IsSetKnowledge() {\n\t\treturn OpenAPIBotInfo_Knowledge_DEFAULT\n\t}\n\treturn p.Knowledge\n}\n\nfunc (p *OpenAPIBotInfo) GetWorkflowInfoList() (v []*WorkflowInfo) {\n\treturn p.WorkflowInfoList\n}\n\nfunc (p *OpenAPIBotInfo) GetShortcutCommands() (v []*ShortcutCommandInfo) {\n\treturn p.ShortcutCommands\n}\n\nfunc (p *OpenAPIBotInfo) GetDefaultUserInputType() (v string) {\n\treturn p.DefaultUserInputType\n}\n\nvar OpenAPIBotInfo_SuggestReplyInfo_DEFAULT *SuggestReplyInfo\n\nfunc (p *OpenAPIBotInfo) GetSuggestReplyInfo() (v *SuggestReplyInfo) {\n\tif !p.IsSetSuggestReplyInfo() {\n\t\treturn OpenAPIBotInfo_SuggestReplyInfo_DEFAULT\n\t}\n\treturn p.SuggestReplyInfo\n}\n\nvar OpenAPIBotInfo_BackgroundImageInfo_DEFAULT *BackgroundImageInfo\n\nfunc (p *OpenAPIBotInfo) GetBackgroundImageInfo() (v *BackgroundImageInfo) {\n\tif !p.IsSetBackgroundImageInfo() {\n\t\treturn OpenAPIBotInfo_BackgroundImageInfo_DEFAULT\n\t}\n\treturn p.BackgroundImageInfo\n}\n\nfunc (p *OpenAPIBotInfo) GetVariables() (v []*Variable) {\n\treturn p.Variables\n}\n\nvar fieldIDToName_OpenAPIBotInfo = map[int16]string{\n\t1:  \"bot_id\",\n\t2:  \"name\",\n\t3:  \"description\",\n\t4:  \"icon_url\",\n\t5:  \"create_time\",\n\t6:  \"update_time\",\n\t7:  \"version\",\n\t8:  \"prompt_info\",\n\t9:  \"onboarding_info\",\n\t10: \"bot_mode\",\n\t12: \"model_info\",\n\t13: \"plugin_info_list\",\n\t14: \"knowledge\",\n\t15: \"workflow_info_list\",\n\t16: \"shortcut_commands\",\n\t18: \"default_user_input_type\",\n\t19: \"suggest_reply_info\",\n\t20: \"background_image_info\",\n\t21: \"variables\",\n}\n\nfunc (p *OpenAPIBotInfo) IsSetPromptInfo() bool {\n\treturn p.PromptInfo != nil\n}\n\nfunc (p *OpenAPIBotInfo) IsSetOnboardingInfo() bool {\n\treturn p.OnboardingInfo != nil\n}\n\nfunc (p *OpenAPIBotInfo) IsSetModelInfo() bool {\n\treturn p.ModelInfo != nil\n}\n\nfunc (p *OpenAPIBotInfo) IsSetKnowledge() bool {\n\treturn p.Knowledge != nil\n}\n\nfunc (p *OpenAPIBotInfo) IsSetSuggestReplyInfo() bool {\n\treturn p.SuggestReplyInfo != nil\n}\n\nfunc (p *OpenAPIBotInfo) IsSetBackgroundImageInfo() bool {\n\treturn p.BackgroundImageInfo != nil\n}\n\nfunc (p *OpenAPIBotInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIBotInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIBotInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewPromptInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PromptInfo = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField9(iprot thrift.TProtocol) error {\n\t_field := NewOnboardingInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OnboardingInfo = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field BotMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotMode(v)\n\t}\n\tp.BotMode = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField12(iprot thrift.TProtocol) error {\n\t_field := NewModelInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ModelInfo = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField13(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginInfo, 0, size)\n\tvalues := make([]PluginInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginInfoList = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField14(iprot thrift.TProtocol) error {\n\t_field := NewCommonKnowledge()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Knowledge = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField15(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowInfo, 0, size)\n\tvalues := make([]WorkflowInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowInfoList = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField16(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ShortcutCommandInfo, 0, size)\n\tvalues := make([]ShortcutCommandInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ShortcutCommands = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DefaultUserInputType = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField19(iprot thrift.TProtocol) error {\n\t_field := NewSuggestReplyInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestReplyInfo = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField20(iprot thrift.TProtocol) error {\n\t_field := NewBackgroundImageInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BackgroundImageInfo = _field\n\treturn nil\n}\nfunc (p *OpenAPIBotInfo) ReadField21(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Variable, 0, size)\n\tvalues := make([]Variable, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Variables = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIBotInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIBotInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIBotInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"prompt_info\", thrift.STRUCT, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.PromptInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"onboarding_info\", thrift.STRUCT, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.OnboardingInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_mode\", thrift.I32, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BotMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"model_info\", thrift.STRUCT, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ModelInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_info_list\", thrift.LIST, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKnowledge() {\n\t\tif err = oprot.WriteFieldBegin(\"knowledge\", thrift.STRUCT, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Knowledge.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_info_list\", thrift.LIST, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.WorkflowInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"shortcut_commands\", thrift.LIST, 16); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ShortcutCommands)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ShortcutCommands {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"default_user_input_type\", thrift.STRING, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DefaultUserInputType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"suggest_reply_info\", thrift.STRUCT, 19); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.SuggestReplyInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"background_image_info\", thrift.STRUCT, 20); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BackgroundImageInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *OpenAPIBotInfo) writeField21(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"variables\", thrift.LIST, 21); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Variables)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Variables {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\n\nfunc (p *OpenAPIBotInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIBotInfo(%+v)\", *p)\n\n}\n\ntype LayoutInfo struct {\n\t// workflowId\n\tWorkflowId string `thrift:\"WorkflowId,1\" form:\"workflow_id\" json:\"workflow_id\"`\n\t// PluginId\n\tPluginId string `thrift:\"PluginId,2\" form:\"plugin_id\" json:\"plugin_id\"`\n}\n\nfunc NewLayoutInfo() *LayoutInfo {\n\treturn &LayoutInfo{}\n}\n\nfunc (p *LayoutInfo) InitDefault() {\n}\n\nfunc (p *LayoutInfo) GetWorkflowId() (v string) {\n\treturn p.WorkflowId\n}\n\nfunc (p *LayoutInfo) GetPluginId() (v string) {\n\treturn p.PluginId\n}\n\nvar fieldIDToName_LayoutInfo = map[int16]string{\n\t1: \"WorkflowId\",\n\t2: \"PluginId\",\n}\n\nfunc (p *LayoutInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_LayoutInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *LayoutInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowId = _field\n\treturn nil\n}\nfunc (p *LayoutInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginId = _field\n\treturn nil\n}\n\nfunc (p *LayoutInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"LayoutInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *LayoutInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowId\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *LayoutInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PluginId\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *LayoutInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"LayoutInfo(%+v)\", *p)\n\n}\n\ntype UserQueryCollectConf struct {\n\t// Whether to turn on the collection switch\n\tIsCollected bool `thrift:\"IsCollected,1\" form:\"is_collected\" json:\"is_collected\"`\n\t// Privacy Policy Link\n\tPrivatePolicy string `thrift:\"PrivatePolicy,2\" form:\"private_policy\" json:\"private_policy\"`\n}\n\nfunc NewUserQueryCollectConf() *UserQueryCollectConf {\n\treturn &UserQueryCollectConf{}\n}\n\nfunc (p *UserQueryCollectConf) InitDefault() {\n}\n\nfunc (p *UserQueryCollectConf) GetIsCollected() (v bool) {\n\treturn p.IsCollected\n}\n\nfunc (p *UserQueryCollectConf) GetPrivatePolicy() (v string) {\n\treturn p.PrivatePolicy\n}\n\nvar fieldIDToName_UserQueryCollectConf = map[int16]string{\n\t1: \"IsCollected\",\n\t2: \"PrivatePolicy\",\n}\n\nfunc (p *UserQueryCollectConf) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserQueryCollectConf[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserQueryCollectConf) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsCollected = _field\n\treturn nil\n}\nfunc (p *UserQueryCollectConf) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PrivatePolicy = _field\n\treturn nil\n}\n\nfunc (p *UserQueryCollectConf) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserQueryCollectConf\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserQueryCollectConf) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsCollected\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsCollected); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserQueryCollectConf) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PrivatePolicy\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PrivatePolicy); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UserQueryCollectConf) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserQueryCollectConf(%+v)\", *p)\n\n}\n\ntype MultiAgentInfo struct {\n\t// multi_agent session takeover\n\tSessionType MultiAgentSessionType `thrift:\"SessionType,1\" form:\"session_type\" json:\"session_type\"`\n\t// multi_agent version compatibility field, front-end use\n\tVersionCompatInfo *AgentVersionCompatInfo `thrift:\"VersionCompatInfo,2\" form:\"version_compat_info\" json:\"version_compat_info\"`\n\t// multi_agent connection type, front end\n\tConnectorType MultiAgentConnectorType `thrift:\"ConnectorType,3\" form:\"connector_type\" json:\"connector_type\"`\n}\n\nfunc NewMultiAgentInfo() *MultiAgentInfo {\n\treturn &MultiAgentInfo{}\n}\n\nfunc (p *MultiAgentInfo) InitDefault() {\n}\n\nfunc (p *MultiAgentInfo) GetSessionType() (v MultiAgentSessionType) {\n\treturn p.SessionType\n}\n\nvar MultiAgentInfo_VersionCompatInfo_DEFAULT *AgentVersionCompatInfo\n\nfunc (p *MultiAgentInfo) GetVersionCompatInfo() (v *AgentVersionCompatInfo) {\n\tif !p.IsSetVersionCompatInfo() {\n\t\treturn MultiAgentInfo_VersionCompatInfo_DEFAULT\n\t}\n\treturn p.VersionCompatInfo\n}\n\nfunc (p *MultiAgentInfo) GetConnectorType() (v MultiAgentConnectorType) {\n\treturn p.ConnectorType\n}\n\nvar fieldIDToName_MultiAgentInfo = map[int16]string{\n\t1: \"SessionType\",\n\t2: \"VersionCompatInfo\",\n\t3: \"ConnectorType\",\n}\n\nfunc (p *MultiAgentInfo) IsSetVersionCompatInfo() bool {\n\treturn p.VersionCompatInfo != nil\n}\n\nfunc (p *MultiAgentInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MultiAgentInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MultiAgentInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field MultiAgentSessionType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = MultiAgentSessionType(v)\n\t}\n\tp.SessionType = _field\n\treturn nil\n}\nfunc (p *MultiAgentInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewAgentVersionCompatInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.VersionCompatInfo = _field\n\treturn nil\n}\nfunc (p *MultiAgentInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field MultiAgentConnectorType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = MultiAgentConnectorType(v)\n\t}\n\tp.ConnectorType = _field\n\treturn nil\n}\n\nfunc (p *MultiAgentInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MultiAgentInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MultiAgentInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SessionType\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SessionType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MultiAgentInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VersionCompatInfo\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.VersionCompatInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MultiAgentInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConnectorType\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ConnectorType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *MultiAgentInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MultiAgentInfo(%+v)\", *p)\n\n}\n\ntype AgentVersionCompatInfo struct {\n\tVersionCompat AgentVersionCompat `thrift:\"VersionCompat,1\" form:\"version_compat\" json:\"version_compat\"`\n\tVersion       string             `thrift:\"version,2\" form:\"version\" json:\"version\" query:\"version\"`\n}\n\nfunc NewAgentVersionCompatInfo() *AgentVersionCompatInfo {\n\treturn &AgentVersionCompatInfo{}\n}\n\nfunc (p *AgentVersionCompatInfo) InitDefault() {\n}\n\nfunc (p *AgentVersionCompatInfo) GetVersionCompat() (v AgentVersionCompat) {\n\treturn p.VersionCompat\n}\n\nfunc (p *AgentVersionCompatInfo) GetVersion() (v string) {\n\treturn p.Version\n}\n\nvar fieldIDToName_AgentVersionCompatInfo = map[int16]string{\n\t1: \"VersionCompat\",\n\t2: \"version\",\n}\n\nfunc (p *AgentVersionCompatInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentVersionCompatInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentVersionCompatInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field AgentVersionCompat\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = AgentVersionCompat(v)\n\t}\n\tp.VersionCompat = _field\n\treturn nil\n}\nfunc (p *AgentVersionCompatInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\n\nfunc (p *AgentVersionCompatInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AgentVersionCompatInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentVersionCompatInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VersionCompat\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.VersionCompat)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AgentVersionCompatInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *AgentVersionCompatInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentVersionCompatInfo(%+v)\", *p)\n\n}\n\ntype BackgroundImageInfo struct {\n\t// Web background cover\n\tWebBackgroundImage *BackgroundImageDetail `thrift:\"WebBackgroundImage,1,optional\" form:\"web_background_image\" json:\"web_background_image,omitempty\"`\n\t// Mobile end background cover\n\tMobileBackgroundImage *BackgroundImageDetail `thrift:\"MobileBackgroundImage,2,optional\" form:\"mobile_background_image\" json:\"mobile_background_image,omitempty\"`\n}\n\nfunc NewBackgroundImageInfo() *BackgroundImageInfo {\n\treturn &BackgroundImageInfo{}\n}\n\nfunc (p *BackgroundImageInfo) InitDefault() {\n}\n\nvar BackgroundImageInfo_WebBackgroundImage_DEFAULT *BackgroundImageDetail\n\nfunc (p *BackgroundImageInfo) GetWebBackgroundImage() (v *BackgroundImageDetail) {\n\tif !p.IsSetWebBackgroundImage() {\n\t\treturn BackgroundImageInfo_WebBackgroundImage_DEFAULT\n\t}\n\treturn p.WebBackgroundImage\n}\n\nvar BackgroundImageInfo_MobileBackgroundImage_DEFAULT *BackgroundImageDetail\n\nfunc (p *BackgroundImageInfo) GetMobileBackgroundImage() (v *BackgroundImageDetail) {\n\tif !p.IsSetMobileBackgroundImage() {\n\t\treturn BackgroundImageInfo_MobileBackgroundImage_DEFAULT\n\t}\n\treturn p.MobileBackgroundImage\n}\n\nvar fieldIDToName_BackgroundImageInfo = map[int16]string{\n\t1: \"WebBackgroundImage\",\n\t2: \"MobileBackgroundImage\",\n}\n\nfunc (p *BackgroundImageInfo) IsSetWebBackgroundImage() bool {\n\treturn p.WebBackgroundImage != nil\n}\n\nfunc (p *BackgroundImageInfo) IsSetMobileBackgroundImage() bool {\n\treturn p.MobileBackgroundImage != nil\n}\n\nfunc (p *BackgroundImageInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BackgroundImageInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BackgroundImageInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBackgroundImageDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.WebBackgroundImage = _field\n\treturn nil\n}\nfunc (p *BackgroundImageInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewBackgroundImageDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.MobileBackgroundImage = _field\n\treturn nil\n}\n\nfunc (p *BackgroundImageInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BackgroundImageInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BackgroundImageInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWebBackgroundImage() {\n\t\tif err = oprot.WriteFieldBegin(\"WebBackgroundImage\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.WebBackgroundImage.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BackgroundImageInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMobileBackgroundImage() {\n\t\tif err = oprot.WriteFieldBegin(\"MobileBackgroundImage\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.MobileBackgroundImage.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *BackgroundImageInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BackgroundImageInfo(%+v)\", *p)\n\n}\n\ntype BackgroundImageDetail struct {\n\t// original image\n\tOriginImageUri *string `thrift:\"OriginImageUri,1,optional\" form:\"origin_image_uri\" json:\"origin_image_uri,omitempty\"`\n\tOriginImageUrl *string `thrift:\"OriginImageUrl,2,optional\" form:\"origin_image_url\" json:\"origin_image_url,omitempty\"`\n\t// Actual use of pictures\n\tImageUri   *string `thrift:\"ImageUri,3,optional\" form:\"image_uri\" json:\"image_uri,omitempty\"`\n\tImageUrl   *string `thrift:\"ImageUrl,4,optional\" form:\"image_url\" json:\"image_url,omitempty\"`\n\tThemeColor *string `thrift:\"ThemeColor,5,optional\" form:\"theme_color\" json:\"theme_color,omitempty\"`\n\t// Gradual change of position\n\tGradientPosition *GradientPosition `thrift:\"GradientPosition,6,optional\" form:\"gradient_position\" json:\"gradient_position,omitempty\"`\n\t// Crop canvas position\n\tCanvasPosition *CanvasPosition `thrift:\"CanvasPosition,7,optional\" form:\"canvas_position\" json:\"canvas_position,omitempty\"`\n}\n\nfunc NewBackgroundImageDetail() *BackgroundImageDetail {\n\treturn &BackgroundImageDetail{}\n}\n\nfunc (p *BackgroundImageDetail) InitDefault() {\n}\n\nvar BackgroundImageDetail_OriginImageUri_DEFAULT string\n\nfunc (p *BackgroundImageDetail) GetOriginImageUri() (v string) {\n\tif !p.IsSetOriginImageUri() {\n\t\treturn BackgroundImageDetail_OriginImageUri_DEFAULT\n\t}\n\treturn *p.OriginImageUri\n}\n\nvar BackgroundImageDetail_OriginImageUrl_DEFAULT string\n\nfunc (p *BackgroundImageDetail) GetOriginImageUrl() (v string) {\n\tif !p.IsSetOriginImageUrl() {\n\t\treturn BackgroundImageDetail_OriginImageUrl_DEFAULT\n\t}\n\treturn *p.OriginImageUrl\n}\n\nvar BackgroundImageDetail_ImageUri_DEFAULT string\n\nfunc (p *BackgroundImageDetail) GetImageUri() (v string) {\n\tif !p.IsSetImageUri() {\n\t\treturn BackgroundImageDetail_ImageUri_DEFAULT\n\t}\n\treturn *p.ImageUri\n}\n\nvar BackgroundImageDetail_ImageUrl_DEFAULT string\n\nfunc (p *BackgroundImageDetail) GetImageUrl() (v string) {\n\tif !p.IsSetImageUrl() {\n\t\treturn BackgroundImageDetail_ImageUrl_DEFAULT\n\t}\n\treturn *p.ImageUrl\n}\n\nvar BackgroundImageDetail_ThemeColor_DEFAULT string\n\nfunc (p *BackgroundImageDetail) GetThemeColor() (v string) {\n\tif !p.IsSetThemeColor() {\n\t\treturn BackgroundImageDetail_ThemeColor_DEFAULT\n\t}\n\treturn *p.ThemeColor\n}\n\nvar BackgroundImageDetail_GradientPosition_DEFAULT *GradientPosition\n\nfunc (p *BackgroundImageDetail) GetGradientPosition() (v *GradientPosition) {\n\tif !p.IsSetGradientPosition() {\n\t\treturn BackgroundImageDetail_GradientPosition_DEFAULT\n\t}\n\treturn p.GradientPosition\n}\n\nvar BackgroundImageDetail_CanvasPosition_DEFAULT *CanvasPosition\n\nfunc (p *BackgroundImageDetail) GetCanvasPosition() (v *CanvasPosition) {\n\tif !p.IsSetCanvasPosition() {\n\t\treturn BackgroundImageDetail_CanvasPosition_DEFAULT\n\t}\n\treturn p.CanvasPosition\n}\n\nvar fieldIDToName_BackgroundImageDetail = map[int16]string{\n\t1: \"OriginImageUri\",\n\t2: \"OriginImageUrl\",\n\t3: \"ImageUri\",\n\t4: \"ImageUrl\",\n\t5: \"ThemeColor\",\n\t6: \"GradientPosition\",\n\t7: \"CanvasPosition\",\n}\n\nfunc (p *BackgroundImageDetail) IsSetOriginImageUri() bool {\n\treturn p.OriginImageUri != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetOriginImageUrl() bool {\n\treturn p.OriginImageUrl != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetImageUri() bool {\n\treturn p.ImageUri != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetImageUrl() bool {\n\treturn p.ImageUrl != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetThemeColor() bool {\n\treturn p.ThemeColor != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetGradientPosition() bool {\n\treturn p.GradientPosition != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetCanvasPosition() bool {\n\treturn p.CanvasPosition != nil\n}\n\nfunc (p *BackgroundImageDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BackgroundImageDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BackgroundImageDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OriginImageUri = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OriginImageUrl = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ImageUri = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ImageUrl = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ThemeColor = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewGradientPosition()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.GradientPosition = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewCanvasPosition()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CanvasPosition = _field\n\treturn nil\n}\n\nfunc (p *BackgroundImageDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BackgroundImageDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BackgroundImageDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOriginImageUri() {\n\t\tif err = oprot.WriteFieldBegin(\"OriginImageUri\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OriginImageUri); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOriginImageUrl() {\n\t\tif err = oprot.WriteFieldBegin(\"OriginImageUrl\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OriginImageUrl); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetImageUri() {\n\t\tif err = oprot.WriteFieldBegin(\"ImageUri\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ImageUri); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetImageUrl() {\n\t\tif err = oprot.WriteFieldBegin(\"ImageUrl\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ImageUrl); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetThemeColor() {\n\t\tif err = oprot.WriteFieldBegin(\"ThemeColor\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ThemeColor); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetGradientPosition() {\n\t\tif err = oprot.WriteFieldBegin(\"GradientPosition\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.GradientPosition.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCanvasPosition() {\n\t\tif err = oprot.WriteFieldBegin(\"CanvasPosition\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.CanvasPosition.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *BackgroundImageDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BackgroundImageDetail(%+v)\", *p)\n\n}\n\ntype GradientPosition struct {\n\tLeft  *float64 `thrift:\"Left,1,optional\" form:\"left\" json:\"left,omitempty\"`\n\tRight *float64 `thrift:\"Right,2,optional\" form:\"right\" json:\"right,omitempty\"`\n}\n\nfunc NewGradientPosition() *GradientPosition {\n\treturn &GradientPosition{}\n}\n\nfunc (p *GradientPosition) InitDefault() {\n}\n\nvar GradientPosition_Left_DEFAULT float64\n\nfunc (p *GradientPosition) GetLeft() (v float64) {\n\tif !p.IsSetLeft() {\n\t\treturn GradientPosition_Left_DEFAULT\n\t}\n\treturn *p.Left\n}\n\nvar GradientPosition_Right_DEFAULT float64\n\nfunc (p *GradientPosition) GetRight() (v float64) {\n\tif !p.IsSetRight() {\n\t\treturn GradientPosition_Right_DEFAULT\n\t}\n\treturn *p.Right\n}\n\nvar fieldIDToName_GradientPosition = map[int16]string{\n\t1: \"Left\",\n\t2: \"Right\",\n}\n\nfunc (p *GradientPosition) IsSetLeft() bool {\n\treturn p.Left != nil\n}\n\nfunc (p *GradientPosition) IsSetRight() bool {\n\treturn p.Right != nil\n}\n\nfunc (p *GradientPosition) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GradientPosition[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GradientPosition) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Left = _field\n\treturn nil\n}\nfunc (p *GradientPosition) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Right = _field\n\treturn nil\n}\n\nfunc (p *GradientPosition) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GradientPosition\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GradientPosition) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLeft() {\n\t\tif err = oprot.WriteFieldBegin(\"Left\", thrift.DOUBLE, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Left); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GradientPosition) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRight() {\n\t\tif err = oprot.WriteFieldBegin(\"Right\", thrift.DOUBLE, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Right); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *GradientPosition) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GradientPosition(%+v)\", *p)\n\n}\n\ntype CanvasPosition struct {\n\tWidth  *float64 `thrift:\"Width,1,optional\" form:\"width\" json:\"width,omitempty\"`\n\tHeight *float64 `thrift:\"Height,2,optional\" form:\"height\" json:\"height,omitempty\"`\n\tLeft   *float64 `thrift:\"Left,3,optional\" form:\"left\" json:\"left,omitempty\"`\n\tTop    *float64 `thrift:\"Top,4,optional\" form:\"top\" json:\"top,omitempty\"`\n}\n\nfunc NewCanvasPosition() *CanvasPosition {\n\treturn &CanvasPosition{}\n}\n\nfunc (p *CanvasPosition) InitDefault() {\n}\n\nvar CanvasPosition_Width_DEFAULT float64\n\nfunc (p *CanvasPosition) GetWidth() (v float64) {\n\tif !p.IsSetWidth() {\n\t\treturn CanvasPosition_Width_DEFAULT\n\t}\n\treturn *p.Width\n}\n\nvar CanvasPosition_Height_DEFAULT float64\n\nfunc (p *CanvasPosition) GetHeight() (v float64) {\n\tif !p.IsSetHeight() {\n\t\treturn CanvasPosition_Height_DEFAULT\n\t}\n\treturn *p.Height\n}\n\nvar CanvasPosition_Left_DEFAULT float64\n\nfunc (p *CanvasPosition) GetLeft() (v float64) {\n\tif !p.IsSetLeft() {\n\t\treturn CanvasPosition_Left_DEFAULT\n\t}\n\treturn *p.Left\n}\n\nvar CanvasPosition_Top_DEFAULT float64\n\nfunc (p *CanvasPosition) GetTop() (v float64) {\n\tif !p.IsSetTop() {\n\t\treturn CanvasPosition_Top_DEFAULT\n\t}\n\treturn *p.Top\n}\n\nvar fieldIDToName_CanvasPosition = map[int16]string{\n\t1: \"Width\",\n\t2: \"Height\",\n\t3: \"Left\",\n\t4: \"Top\",\n}\n\nfunc (p *CanvasPosition) IsSetWidth() bool {\n\treturn p.Width != nil\n}\n\nfunc (p *CanvasPosition) IsSetHeight() bool {\n\treturn p.Height != nil\n}\n\nfunc (p *CanvasPosition) IsSetLeft() bool {\n\treturn p.Left != nil\n}\n\nfunc (p *CanvasPosition) IsSetTop() bool {\n\treturn p.Top != nil\n}\n\nfunc (p *CanvasPosition) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CanvasPosition[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CanvasPosition) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Width = _field\n\treturn nil\n}\nfunc (p *CanvasPosition) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Height = _field\n\treturn nil\n}\nfunc (p *CanvasPosition) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Left = _field\n\treturn nil\n}\nfunc (p *CanvasPosition) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Top = _field\n\treturn nil\n}\n\nfunc (p *CanvasPosition) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CanvasPosition\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CanvasPosition) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWidth() {\n\t\tif err = oprot.WriteFieldBegin(\"Width\", thrift.DOUBLE, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Width); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CanvasPosition) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHeight() {\n\t\tif err = oprot.WriteFieldBegin(\"Height\", thrift.DOUBLE, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Height); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CanvasPosition) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLeft() {\n\t\tif err = oprot.WriteFieldBegin(\"Left\", thrift.DOUBLE, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Left); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CanvasPosition) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTop() {\n\t\tif err = oprot.WriteFieldBegin(\"Top\", thrift.DOUBLE, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Top); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *CanvasPosition) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CanvasPosition(%+v)\", *p)\n\n}\n\n// Update for bot information\ntype BotInfoForUpdate struct {\n\t// bot id\n\tBotId *int64 `thrift:\"BotId,1,optional\" form:\"bot_id\" json:\"bot_id,string,omitempty\"`\n\t// bot name\n\tName *string `thrift:\"Name,2,optional\" form:\"name\" json:\"name,omitempty\"`\n\t// Bot description\n\tDescription *string `thrift:\"Description,3,optional\" form:\"description\" json:\"description,omitempty\"`\n\t// Bot icon uri\n\tIconUri *string `thrift:\"IconUri,4,optional\" form:\"icon_uri\" json:\"icon_uri,omitempty\"`\n\t// Bot icon url\n\tIconUrl *string `thrift:\"IconUrl,5,optional\" form:\"icon_url\" json:\"icon_url,omitempty\"`\n\t// creator id\n\tCreatorId *int64 `thrift:\"CreatorId,6,optional\" form:\"creator_id\" json:\"creator_id,string,omitempty\"`\n\t// create_time\n\tCreateTime *int64 `thrift:\"CreateTime,7,optional\" form:\"create_time\" json:\"create_time,string,omitempty\"`\n\t// update time\n\tUpdateTime *int64 `thrift:\"UpdateTime,8,optional\" form:\"update_time\" json:\"update_time,string,omitempty\"`\n\t// line of business\n\tConnectorId *int64 `thrift:\"ConnectorId,9,optional\" form:\"connector_id\" json:\"connector_id,string,omitempty\"`\n\t// Version, ms\n\tVersion *string `thrift:\"Version,10,optional\" form:\"version\" json:\"version,omitempty\"`\n\t// model configuration\n\tModelInfo *ModelInfo `thrift:\"ModelInfo,11,optional\" form:\"model_info\" json:\"model_info,omitempty\"`\n\t// Prompt message\n\tPromptInfo *PromptInfo `thrift:\"PromptInfo,12,optional\" form:\"prompt_info\" json:\"prompt_info,omitempty\"`\n\t// List of plugins\n\tPluginInfoList []*PluginInfo `thrift:\"PluginInfoList,13,optional\" form:\"plugin_info_list\" json:\"plugin_info_list,omitempty\"`\n\t// Workflow List\n\tWorkflowInfoList []*WorkflowInfo `thrift:\"WorkflowInfoList,14,optional\" form:\"workflow_info_list\" json:\"workflow_info_list,omitempty\"`\n\t// opening statement\n\tOnboardingInfo *OnboardingInfo `thrift:\"OnboardingInfo,15,optional\" form:\"onboarding_info\" json:\"onboarding_info,omitempty\"`\n\t// dataset\n\tKnowledge *Knowledge `thrift:\"Knowledge,16,optional\" form:\"knowledge\" json:\"knowledge,omitempty\"`\n\t// KV storage\n\tVariableList []*Variable `thrift:\"VariableList,17,optional\" form:\"variable_list\" json:\"variable_list,omitempty\"`\n\t// Task management/preset tasks\n\tTaskInfo *TaskInfo `thrift:\"TaskInfo,18,optional\" form:\"task_info\" json:\"task_info,omitempty\"`\n\t// data table\n\tDatabaseList []*Database `thrift:\"DatabaseList,19,optional\" form:\"database_list\" json:\"database_list,omitempty\"`\n\t// referral question\n\tSuggestReplyInfo *SuggestReplyInfo `thrift:\"SuggestReplyInfo,20,optional\" form:\"suggest_reply_info\" json:\"suggest_reply_info,omitempty\"`\n\t// Timbre Configuration\n\tVoicesInfo *VoicesInfo `thrift:\"VoicesInfo,21,optional\" form:\"voices_info\" json:\"voices_info,omitempty\"`\n\t// Additional information, extended fields\n\tBotExtInfo *BotExtInfo `thrift:\"BotExtInfo,22,optional\" form:\"bot_ext_info\" json:\"bot_ext_info,omitempty\"`\n\t// Bot type, single agent or multi agent\n\tBotMode *BotMode `thrift:\"BotMode,23,optional\" form:\"bot_mode\" json:\"bot_mode,omitempty\"`\n\t// Multi agent mode agent information\n\tAgents []*AgentForUpdate `thrift:\"Agents,24,optional\" form:\"agents\" json:\"agents,omitempty\"`\n\t// Bot type\n\tBotSpecies BotSpecies `thrift:\"BotSpecies,25\" form:\"bot_species\" json:\"bot_species\"`\n\t// Bot tag information, user new field\n\tBotTagInfo *BotTagInfo `thrift:\"BotTagInfo,26,optional\" form:\"bot_tag_info\" json:\"bot_tag_info,omitempty\"`\n\t// FileBox Information\n\tFileboxInfo *FileboxInfo `thrift:\"FileboxInfo,27,optional\" form:\"filebox_info\" json:\"filebox_info,omitempty\"`\n\t// multi_agent structure\n\tMultiAgentInfo *MultiAgentInfo `thrift:\"MultiAgentInfo,28,optional\" form:\"multi_agent_info\" json:\"multi_agent_info,omitempty\"`\n\t// Background cover list structure\n\tBackgroundImageInfoList []*BackgroundImageInfo `thrift:\"BackgroundImageInfoList,29,optional\" form:\"background_image_info_list\" json:\"background_image_info_list,omitempty\"`\n\tShortcutSort            []string               `thrift:\"ShortcutSort,30,optional\" form:\"shortcut_sort\" json:\"shortcut_sort,omitempty\"`\n\tHookInfo                *HookInfo              `thrift:\"HookInfo,31,optional\" form:\"hook_info\" json:\"hook_info,omitempty\"`\n\t// User query collection configuration\n\tUserQueryCollectConf *UserQueryCollectConf `thrift:\"UserQueryCollectConf,32,optional\" form:\"user_query_collect_conf\" json:\"user_query_collect_conf,omitempty\"`\n\t// Orchestration information for workflow patterns\n\tLayoutInfo *LayoutInfo `thrift:\"LayoutInfo,33,optional\" form:\"layout_info\" json:\"layout_info,omitempty\"`\n}\n\nfunc NewBotInfoForUpdate() *BotInfoForUpdate {\n\treturn &BotInfoForUpdate{}\n}\n\nfunc (p *BotInfoForUpdate) InitDefault() {\n}\n\nvar BotInfoForUpdate_BotId_DEFAULT int64\n\nfunc (p *BotInfoForUpdate) GetBotId() (v int64) {\n\tif !p.IsSetBotId() {\n\t\treturn BotInfoForUpdate_BotId_DEFAULT\n\t}\n\treturn *p.BotId\n}\n\nvar BotInfoForUpdate_Name_DEFAULT string\n\nfunc (p *BotInfoForUpdate) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn BotInfoForUpdate_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar BotInfoForUpdate_Description_DEFAULT string\n\nfunc (p *BotInfoForUpdate) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn BotInfoForUpdate_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar BotInfoForUpdate_IconUri_DEFAULT string\n\nfunc (p *BotInfoForUpdate) GetIconUri() (v string) {\n\tif !p.IsSetIconUri() {\n\t\treturn BotInfoForUpdate_IconUri_DEFAULT\n\t}\n\treturn *p.IconUri\n}\n\nvar BotInfoForUpdate_IconUrl_DEFAULT string\n\nfunc (p *BotInfoForUpdate) GetIconUrl() (v string) {\n\tif !p.IsSetIconUrl() {\n\t\treturn BotInfoForUpdate_IconUrl_DEFAULT\n\t}\n\treturn *p.IconUrl\n}\n\nvar BotInfoForUpdate_CreatorId_DEFAULT int64\n\nfunc (p *BotInfoForUpdate) GetCreatorId() (v int64) {\n\tif !p.IsSetCreatorId() {\n\t\treturn BotInfoForUpdate_CreatorId_DEFAULT\n\t}\n\treturn *p.CreatorId\n}\n\nvar BotInfoForUpdate_CreateTime_DEFAULT int64\n\nfunc (p *BotInfoForUpdate) GetCreateTime() (v int64) {\n\tif !p.IsSetCreateTime() {\n\t\treturn BotInfoForUpdate_CreateTime_DEFAULT\n\t}\n\treturn *p.CreateTime\n}\n\nvar BotInfoForUpdate_UpdateTime_DEFAULT int64\n\nfunc (p *BotInfoForUpdate) GetUpdateTime() (v int64) {\n\tif !p.IsSetUpdateTime() {\n\t\treturn BotInfoForUpdate_UpdateTime_DEFAULT\n\t}\n\treturn *p.UpdateTime\n}\n\nvar BotInfoForUpdate_ConnectorId_DEFAULT int64\n\nfunc (p *BotInfoForUpdate) GetConnectorId() (v int64) {\n\tif !p.IsSetConnectorId() {\n\t\treturn BotInfoForUpdate_ConnectorId_DEFAULT\n\t}\n\treturn *p.ConnectorId\n}\n\nvar BotInfoForUpdate_Version_DEFAULT string\n\nfunc (p *BotInfoForUpdate) GetVersion() (v string) {\n\tif !p.IsSetVersion() {\n\t\treturn BotInfoForUpdate_Version_DEFAULT\n\t}\n\treturn *p.Version\n}\n\nvar BotInfoForUpdate_ModelInfo_DEFAULT *ModelInfo\n\nfunc (p *BotInfoForUpdate) GetModelInfo() (v *ModelInfo) {\n\tif !p.IsSetModelInfo() {\n\t\treturn BotInfoForUpdate_ModelInfo_DEFAULT\n\t}\n\treturn p.ModelInfo\n}\n\nvar BotInfoForUpdate_PromptInfo_DEFAULT *PromptInfo\n\nfunc (p *BotInfoForUpdate) GetPromptInfo() (v *PromptInfo) {\n\tif !p.IsSetPromptInfo() {\n\t\treturn BotInfoForUpdate_PromptInfo_DEFAULT\n\t}\n\treturn p.PromptInfo\n}\n\nvar BotInfoForUpdate_PluginInfoList_DEFAULT []*PluginInfo\n\nfunc (p *BotInfoForUpdate) GetPluginInfoList() (v []*PluginInfo) {\n\tif !p.IsSetPluginInfoList() {\n\t\treturn BotInfoForUpdate_PluginInfoList_DEFAULT\n\t}\n\treturn p.PluginInfoList\n}\n\nvar BotInfoForUpdate_WorkflowInfoList_DEFAULT []*WorkflowInfo\n\nfunc (p *BotInfoForUpdate) GetWorkflowInfoList() (v []*WorkflowInfo) {\n\tif !p.IsSetWorkflowInfoList() {\n\t\treturn BotInfoForUpdate_WorkflowInfoList_DEFAULT\n\t}\n\treturn p.WorkflowInfoList\n}\n\nvar BotInfoForUpdate_OnboardingInfo_DEFAULT *OnboardingInfo\n\nfunc (p *BotInfoForUpdate) GetOnboardingInfo() (v *OnboardingInfo) {\n\tif !p.IsSetOnboardingInfo() {\n\t\treturn BotInfoForUpdate_OnboardingInfo_DEFAULT\n\t}\n\treturn p.OnboardingInfo\n}\n\nvar BotInfoForUpdate_Knowledge_DEFAULT *Knowledge\n\nfunc (p *BotInfoForUpdate) GetKnowledge() (v *Knowledge) {\n\tif !p.IsSetKnowledge() {\n\t\treturn BotInfoForUpdate_Knowledge_DEFAULT\n\t}\n\treturn p.Knowledge\n}\n\nvar BotInfoForUpdate_VariableList_DEFAULT []*Variable\n\nfunc (p *BotInfoForUpdate) GetVariableList() (v []*Variable) {\n\tif !p.IsSetVariableList() {\n\t\treturn BotInfoForUpdate_VariableList_DEFAULT\n\t}\n\treturn p.VariableList\n}\n\nvar BotInfoForUpdate_TaskInfo_DEFAULT *TaskInfo\n\nfunc (p *BotInfoForUpdate) GetTaskInfo() (v *TaskInfo) {\n\tif !p.IsSetTaskInfo() {\n\t\treturn BotInfoForUpdate_TaskInfo_DEFAULT\n\t}\n\treturn p.TaskInfo\n}\n\nvar BotInfoForUpdate_DatabaseList_DEFAULT []*Database\n\nfunc (p *BotInfoForUpdate) GetDatabaseList() (v []*Database) {\n\tif !p.IsSetDatabaseList() {\n\t\treturn BotInfoForUpdate_DatabaseList_DEFAULT\n\t}\n\treturn p.DatabaseList\n}\n\nvar BotInfoForUpdate_SuggestReplyInfo_DEFAULT *SuggestReplyInfo\n\nfunc (p *BotInfoForUpdate) GetSuggestReplyInfo() (v *SuggestReplyInfo) {\n\tif !p.IsSetSuggestReplyInfo() {\n\t\treturn BotInfoForUpdate_SuggestReplyInfo_DEFAULT\n\t}\n\treturn p.SuggestReplyInfo\n}\n\nvar BotInfoForUpdate_VoicesInfo_DEFAULT *VoicesInfo\n\nfunc (p *BotInfoForUpdate) GetVoicesInfo() (v *VoicesInfo) {\n\tif !p.IsSetVoicesInfo() {\n\t\treturn BotInfoForUpdate_VoicesInfo_DEFAULT\n\t}\n\treturn p.VoicesInfo\n}\n\nvar BotInfoForUpdate_BotExtInfo_DEFAULT *BotExtInfo\n\nfunc (p *BotInfoForUpdate) GetBotExtInfo() (v *BotExtInfo) {\n\tif !p.IsSetBotExtInfo() {\n\t\treturn BotInfoForUpdate_BotExtInfo_DEFAULT\n\t}\n\treturn p.BotExtInfo\n}\n\nvar BotInfoForUpdate_BotMode_DEFAULT BotMode\n\nfunc (p *BotInfoForUpdate) GetBotMode() (v BotMode) {\n\tif !p.IsSetBotMode() {\n\t\treturn BotInfoForUpdate_BotMode_DEFAULT\n\t}\n\treturn *p.BotMode\n}\n\nvar BotInfoForUpdate_Agents_DEFAULT []*AgentForUpdate\n\nfunc (p *BotInfoForUpdate) GetAgents() (v []*AgentForUpdate) {\n\tif !p.IsSetAgents() {\n\t\treturn BotInfoForUpdate_Agents_DEFAULT\n\t}\n\treturn p.Agents\n}\n\nfunc (p *BotInfoForUpdate) GetBotSpecies() (v BotSpecies) {\n\treturn p.BotSpecies\n}\n\nvar BotInfoForUpdate_BotTagInfo_DEFAULT *BotTagInfo\n\nfunc (p *BotInfoForUpdate) GetBotTagInfo() (v *BotTagInfo) {\n\tif !p.IsSetBotTagInfo() {\n\t\treturn BotInfoForUpdate_BotTagInfo_DEFAULT\n\t}\n\treturn p.BotTagInfo\n}\n\nvar BotInfoForUpdate_FileboxInfo_DEFAULT *FileboxInfo\n\nfunc (p *BotInfoForUpdate) GetFileboxInfo() (v *FileboxInfo) {\n\tif !p.IsSetFileboxInfo() {\n\t\treturn BotInfoForUpdate_FileboxInfo_DEFAULT\n\t}\n\treturn p.FileboxInfo\n}\n\nvar BotInfoForUpdate_MultiAgentInfo_DEFAULT *MultiAgentInfo\n\nfunc (p *BotInfoForUpdate) GetMultiAgentInfo() (v *MultiAgentInfo) {\n\tif !p.IsSetMultiAgentInfo() {\n\t\treturn BotInfoForUpdate_MultiAgentInfo_DEFAULT\n\t}\n\treturn p.MultiAgentInfo\n}\n\nvar BotInfoForUpdate_BackgroundImageInfoList_DEFAULT []*BackgroundImageInfo\n\nfunc (p *BotInfoForUpdate) GetBackgroundImageInfoList() (v []*BackgroundImageInfo) {\n\tif !p.IsSetBackgroundImageInfoList() {\n\t\treturn BotInfoForUpdate_BackgroundImageInfoList_DEFAULT\n\t}\n\treturn p.BackgroundImageInfoList\n}\n\nvar BotInfoForUpdate_ShortcutSort_DEFAULT []string\n\nfunc (p *BotInfoForUpdate) GetShortcutSort() (v []string) {\n\tif !p.IsSetShortcutSort() {\n\t\treturn BotInfoForUpdate_ShortcutSort_DEFAULT\n\t}\n\treturn p.ShortcutSort\n}\n\nvar BotInfoForUpdate_HookInfo_DEFAULT *HookInfo\n\nfunc (p *BotInfoForUpdate) GetHookInfo() (v *HookInfo) {\n\tif !p.IsSetHookInfo() {\n\t\treturn BotInfoForUpdate_HookInfo_DEFAULT\n\t}\n\treturn p.HookInfo\n}\n\nvar BotInfoForUpdate_UserQueryCollectConf_DEFAULT *UserQueryCollectConf\n\nfunc (p *BotInfoForUpdate) GetUserQueryCollectConf() (v *UserQueryCollectConf) {\n\tif !p.IsSetUserQueryCollectConf() {\n\t\treturn BotInfoForUpdate_UserQueryCollectConf_DEFAULT\n\t}\n\treturn p.UserQueryCollectConf\n}\n\nvar BotInfoForUpdate_LayoutInfo_DEFAULT *LayoutInfo\n\nfunc (p *BotInfoForUpdate) GetLayoutInfo() (v *LayoutInfo) {\n\tif !p.IsSetLayoutInfo() {\n\t\treturn BotInfoForUpdate_LayoutInfo_DEFAULT\n\t}\n\treturn p.LayoutInfo\n}\n\nvar fieldIDToName_BotInfoForUpdate = map[int16]string{\n\t1:  \"BotId\",\n\t2:  \"Name\",\n\t3:  \"Description\",\n\t4:  \"IconUri\",\n\t5:  \"IconUrl\",\n\t6:  \"CreatorId\",\n\t7:  \"CreateTime\",\n\t8:  \"UpdateTime\",\n\t9:  \"ConnectorId\",\n\t10: \"Version\",\n\t11: \"ModelInfo\",\n\t12: \"PromptInfo\",\n\t13: \"PluginInfoList\",\n\t14: \"WorkflowInfoList\",\n\t15: \"OnboardingInfo\",\n\t16: \"Knowledge\",\n\t17: \"VariableList\",\n\t18: \"TaskInfo\",\n\t19: \"DatabaseList\",\n\t20: \"SuggestReplyInfo\",\n\t21: \"VoicesInfo\",\n\t22: \"BotExtInfo\",\n\t23: \"BotMode\",\n\t24: \"Agents\",\n\t25: \"BotSpecies\",\n\t26: \"BotTagInfo\",\n\t27: \"FileboxInfo\",\n\t28: \"MultiAgentInfo\",\n\t29: \"BackgroundImageInfoList\",\n\t30: \"ShortcutSort\",\n\t31: \"HookInfo\",\n\t32: \"UserQueryCollectConf\",\n\t33: \"LayoutInfo\",\n}\n\nfunc (p *BotInfoForUpdate) IsSetBotId() bool {\n\treturn p.BotId != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetIconUri() bool {\n\treturn p.IconUri != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetIconUrl() bool {\n\treturn p.IconUrl != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetCreatorId() bool {\n\treturn p.CreatorId != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetCreateTime() bool {\n\treturn p.CreateTime != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetUpdateTime() bool {\n\treturn p.UpdateTime != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetConnectorId() bool {\n\treturn p.ConnectorId != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetVersion() bool {\n\treturn p.Version != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetModelInfo() bool {\n\treturn p.ModelInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetPromptInfo() bool {\n\treturn p.PromptInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetPluginInfoList() bool {\n\treturn p.PluginInfoList != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetWorkflowInfoList() bool {\n\treturn p.WorkflowInfoList != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetOnboardingInfo() bool {\n\treturn p.OnboardingInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetKnowledge() bool {\n\treturn p.Knowledge != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetVariableList() bool {\n\treturn p.VariableList != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetTaskInfo() bool {\n\treturn p.TaskInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetDatabaseList() bool {\n\treturn p.DatabaseList != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetSuggestReplyInfo() bool {\n\treturn p.SuggestReplyInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetVoicesInfo() bool {\n\treturn p.VoicesInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetBotExtInfo() bool {\n\treturn p.BotExtInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetBotMode() bool {\n\treturn p.BotMode != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetAgents() bool {\n\treturn p.Agents != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetBotTagInfo() bool {\n\treturn p.BotTagInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetFileboxInfo() bool {\n\treturn p.FileboxInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetMultiAgentInfo() bool {\n\treturn p.MultiAgentInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetBackgroundImageInfoList() bool {\n\treturn p.BackgroundImageInfoList != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetShortcutSort() bool {\n\treturn p.ShortcutSort != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetHookInfo() bool {\n\treturn p.HookInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetUserQueryCollectConf() bool {\n\treturn p.UserQueryCollectConf != nil\n}\n\nfunc (p *BotInfoForUpdate) IsSetLayoutInfo() bool {\n\treturn p.LayoutInfo != nil\n}\n\nfunc (p *BotInfoForUpdate) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 25:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField25(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 26:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField26(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 27:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField27(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 28:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField28(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 29:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField29(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 30:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField30(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 31:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField31(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 32:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField32(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 33:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField33(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotInfoForUpdate[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotInfoForUpdate) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotId = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IconUri = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IconUrl = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatorId = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorId = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField11(iprot thrift.TProtocol) error {\n\t_field := NewModelInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ModelInfo = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField12(iprot thrift.TProtocol) error {\n\t_field := NewPromptInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PromptInfo = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField13(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginInfo, 0, size)\n\tvalues := make([]PluginInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginInfoList = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField14(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowInfo, 0, size)\n\tvalues := make([]WorkflowInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowInfoList = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField15(iprot thrift.TProtocol) error {\n\t_field := NewOnboardingInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OnboardingInfo = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField16(iprot thrift.TProtocol) error {\n\t_field := NewKnowledge()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Knowledge = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField17(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Variable, 0, size)\n\tvalues := make([]Variable, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.VariableList = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField18(iprot thrift.TProtocol) error {\n\t_field := NewTaskInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TaskInfo = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField19(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Database, 0, size)\n\tvalues := make([]Database, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DatabaseList = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField20(iprot thrift.TProtocol) error {\n\t_field := NewSuggestReplyInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestReplyInfo = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField21(iprot thrift.TProtocol) error {\n\t_field := NewVoicesInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.VoicesInfo = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField22(iprot thrift.TProtocol) error {\n\t_field := NewBotExtInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotExtInfo = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field *BotMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := BotMode(v)\n\t\t_field = &tmp\n\t}\n\tp.BotMode = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField24(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*AgentForUpdate, 0, size)\n\tvalues := make([]AgentForUpdate, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Agents = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField25(iprot thrift.TProtocol) error {\n\n\tvar _field BotSpecies\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotSpecies(v)\n\t}\n\tp.BotSpecies = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField26(iprot thrift.TProtocol) error {\n\t_field := NewBotTagInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotTagInfo = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField27(iprot thrift.TProtocol) error {\n\t_field := NewFileboxInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FileboxInfo = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField28(iprot thrift.TProtocol) error {\n\t_field := NewMultiAgentInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.MultiAgentInfo = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField29(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*BackgroundImageInfo, 0, size)\n\tvalues := make([]BackgroundImageInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BackgroundImageInfoList = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField30(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ShortcutSort = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField31(iprot thrift.TProtocol) error {\n\t_field := NewHookInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.HookInfo = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField32(iprot thrift.TProtocol) error {\n\t_field := NewUserQueryCollectConf()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserQueryCollectConf = _field\n\treturn nil\n}\nfunc (p *BotInfoForUpdate) ReadField33(iprot thrift.TProtocol) error {\n\t_field := NewLayoutInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.LayoutInfo = _field\n\treturn nil\n}\n\nfunc (p *BotInfoForUpdate) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotInfoForUpdate\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField25(oprot); err != nil {\n\t\t\tfieldId = 25\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField26(oprot); err != nil {\n\t\t\tfieldId = 26\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField27(oprot); err != nil {\n\t\t\tfieldId = 27\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField28(oprot); err != nil {\n\t\t\tfieldId = 28\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField29(oprot); err != nil {\n\t\t\tfieldId = 29\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField30(oprot); err != nil {\n\t\t\tfieldId = 30\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField31(oprot); err != nil {\n\t\t\tfieldId = 31\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField32(oprot); err != nil {\n\t\t\tfieldId = 32\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField33(oprot); err != nil {\n\t\t\tfieldId = 33\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotInfoForUpdate) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotId() {\n\t\tif err = oprot.WriteFieldBegin(\"BotId\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIconUri() {\n\t\tif err = oprot.WriteFieldBegin(\"IconUri\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IconUri); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIconUrl() {\n\t\tif err = oprot.WriteFieldBegin(\"IconUrl\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IconUrl); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatorId() {\n\t\tif err = oprot.WriteFieldBegin(\"CreatorId\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreatorId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreateTime() {\n\t\tif err = oprot.WriteFieldBegin(\"CreateTime\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreateTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUpdateTime() {\n\t\tif err = oprot.WriteFieldBegin(\"UpdateTime\", thrift.I64, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.UpdateTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorId() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorId\", thrift.I64, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"Version\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Version); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"ModelInfo\", thrift.STRUCT, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ModelInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPromptInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"PromptInfo\", thrift.STRUCT, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.PromptInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginInfoList() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginInfoList\", thrift.LIST, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginInfoList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PluginInfoList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowInfoList() {\n\t\tif err = oprot.WriteFieldBegin(\"WorkflowInfoList\", thrift.LIST, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowInfoList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.WorkflowInfoList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOnboardingInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"OnboardingInfo\", thrift.STRUCT, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.OnboardingInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKnowledge() {\n\t\tif err = oprot.WriteFieldBegin(\"Knowledge\", thrift.STRUCT, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Knowledge.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVariableList() {\n\t\tif err = oprot.WriteFieldBegin(\"VariableList\", thrift.LIST, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.VariableList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.VariableList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTaskInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"TaskInfo\", thrift.STRUCT, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TaskInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDatabaseList() {\n\t\tif err = oprot.WriteFieldBegin(\"DatabaseList\", thrift.LIST, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.DatabaseList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.DatabaseList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestReplyInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"SuggestReplyInfo\", thrift.STRUCT, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SuggestReplyInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVoicesInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"VoicesInfo\", thrift.STRUCT, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.VoicesInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField22(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotExtInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"BotExtInfo\", thrift.STRUCT, 22); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BotExtInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField23(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotMode() {\n\t\tif err = oprot.WriteFieldBegin(\"BotMode\", thrift.I32, 23); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.BotMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField24(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAgents() {\n\t\tif err = oprot.WriteFieldBegin(\"Agents\", thrift.LIST, 24); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Agents)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Agents {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField25(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotSpecies\", thrift.I32, 25); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BotSpecies)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField26(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotTagInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"BotTagInfo\", thrift.STRUCT, 26); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BotTagInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 26 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 26 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField27(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFileboxInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"FileboxInfo\", thrift.STRUCT, 27); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.FileboxInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 27 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 27 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField28(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMultiAgentInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"MultiAgentInfo\", thrift.STRUCT, 28); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.MultiAgentInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 28 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 28 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField29(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBackgroundImageInfoList() {\n\t\tif err = oprot.WriteFieldBegin(\"BackgroundImageInfoList\", thrift.LIST, 29); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.BackgroundImageInfoList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.BackgroundImageInfoList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 29 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 29 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField30(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShortcutSort() {\n\t\tif err = oprot.WriteFieldBegin(\"ShortcutSort\", thrift.LIST, 30); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.ShortcutSort)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ShortcutSort {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 30 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 30 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField31(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHookInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"HookInfo\", thrift.STRUCT, 31); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.HookInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 31 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 31 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField32(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserQueryCollectConf() {\n\t\tif err = oprot.WriteFieldBegin(\"UserQueryCollectConf\", thrift.STRUCT, 32); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.UserQueryCollectConf.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 32 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 32 end error: \", p), err)\n}\nfunc (p *BotInfoForUpdate) writeField33(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLayoutInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"LayoutInfo\", thrift.STRUCT, 33); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.LayoutInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 33 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 33 end error: \", p), err)\n}\n\nfunc (p *BotInfoForUpdate) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotInfoForUpdate(%+v)\", *p)\n\n}\n\ntype AgentForUpdate struct {\n\t// The agw field names are specially mapped, note that\n\tAgentId *int64 `thrift:\"AgentId,1,optional\" form:\"id\" json:\"id,string,omitempty\"`\n\t// The agw field names are specially mapped, note that\n\tAgentName *string `thrift:\"AgentName,2,optional\" form:\"name\" json:\"name,omitempty\"`\n\t// Prompt message\n\tPromptInfo *PromptInfo `thrift:\"PromptInfo,3,optional\" form:\"prompt_info\" json:\"prompt_info,omitempty\"`\n\t// List of plugins\n\tPluginInfoList []*PluginInfo `thrift:\"PluginInfoList,4,optional\" form:\"plugin_info_list\" json:\"plugin_info_list,omitempty\"`\n\t// dataset\n\tKnowledge *Knowledge `thrift:\"Knowledge,5,optional\" form:\"knowledge\" json:\"knowledge,omitempty\"`\n\t// Workflow List\n\tWorkflowInfoList []*WorkflowInfo `thrift:\"WorkflowInfoList,6,optional\" form:\"workflow_info_list\" json:\"workflow_info_list,omitempty\"`\n\t// model configuration\n\tModelInfo *ModelInfo `thrift:\"ModelInfo,7,optional\" form:\"model_info\" json:\"model_info,omitempty\"`\n\t// intent information\n\tIntents   []*Intent  `thrift:\"Intents,8,optional\" form:\"intents\" json:\"intents,omitempty\"`\n\tAgentType *AgentType `thrift:\"AgentType,9,optional\" form:\"agent_type\" json:\"agent_type,omitempty\"`\n\t// Is it a rootagent?\n\tRootAgent        *bool             `thrift:\"RootAgent,10,optional\" form:\"root_agent\" json:\"root_agent,omitempty\"`\n\tReferenceId      *int64            `thrift:\"ReferenceId,11,optional\" form:\"reference_id\" json:\"reference_id,string,omitempty\"`\n\tFirstVersion     *string           `thrift:\"FirstVersion,12,optional\" form:\"first_version\" json:\"first_version,omitempty\"`\n\tLastVersion      *string           `thrift:\"LastVersion,13,optional\" form:\"last_version\" json:\"last_version,omitempty\"`\n\tPosition         *AgentPosition    `thrift:\"Position,14,optional\" form:\"agent_position\" json:\"agent_position,omitempty\"`\n\tIconUri          *string           `thrift:\"IconUri,15,optional\" form:\"icon_uri\" json:\"icon_uri,omitempty\"`\n\tJumpConfig       *JumpConfig       `thrift:\"JumpConfig,16,optional\" form:\"jump_config\" json:\"jump_config,omitempty\"`\n\tSuggestReplyInfo *SuggestReplyInfo `thrift:\"SuggestReplyInfo,17,optional\" form:\"suggest_reply_info\" json:\"suggest_reply_info,omitempty\"`\n\tDescription      *string           `thrift:\"Description,18,optional\" form:\"description\" json:\"description,omitempty\"`\n\t// multi_agent version compatibility field\n\tVersionCompat *AgentVersionCompat `thrift:\"VersionCompat,19,optional\" form:\"version_compat\" json:\"version_compat,omitempty\"`\n\tHookInfo      *HookInfo           `thrift:\"HookInfo,20,optional\" form:\"hook_info\" json:\"hook_info,omitempty\"`\n}\n\nfunc NewAgentForUpdate() *AgentForUpdate {\n\treturn &AgentForUpdate{}\n}\n\nfunc (p *AgentForUpdate) InitDefault() {\n}\n\nvar AgentForUpdate_AgentId_DEFAULT int64\n\nfunc (p *AgentForUpdate) GetAgentId() (v int64) {\n\tif !p.IsSetAgentId() {\n\t\treturn AgentForUpdate_AgentId_DEFAULT\n\t}\n\treturn *p.AgentId\n}\n\nvar AgentForUpdate_AgentName_DEFAULT string\n\nfunc (p *AgentForUpdate) GetAgentName() (v string) {\n\tif !p.IsSetAgentName() {\n\t\treturn AgentForUpdate_AgentName_DEFAULT\n\t}\n\treturn *p.AgentName\n}\n\nvar AgentForUpdate_PromptInfo_DEFAULT *PromptInfo\n\nfunc (p *AgentForUpdate) GetPromptInfo() (v *PromptInfo) {\n\tif !p.IsSetPromptInfo() {\n\t\treturn AgentForUpdate_PromptInfo_DEFAULT\n\t}\n\treturn p.PromptInfo\n}\n\nvar AgentForUpdate_PluginInfoList_DEFAULT []*PluginInfo\n\nfunc (p *AgentForUpdate) GetPluginInfoList() (v []*PluginInfo) {\n\tif !p.IsSetPluginInfoList() {\n\t\treturn AgentForUpdate_PluginInfoList_DEFAULT\n\t}\n\treturn p.PluginInfoList\n}\n\nvar AgentForUpdate_Knowledge_DEFAULT *Knowledge\n\nfunc (p *AgentForUpdate) GetKnowledge() (v *Knowledge) {\n\tif !p.IsSetKnowledge() {\n\t\treturn AgentForUpdate_Knowledge_DEFAULT\n\t}\n\treturn p.Knowledge\n}\n\nvar AgentForUpdate_WorkflowInfoList_DEFAULT []*WorkflowInfo\n\nfunc (p *AgentForUpdate) GetWorkflowInfoList() (v []*WorkflowInfo) {\n\tif !p.IsSetWorkflowInfoList() {\n\t\treturn AgentForUpdate_WorkflowInfoList_DEFAULT\n\t}\n\treturn p.WorkflowInfoList\n}\n\nvar AgentForUpdate_ModelInfo_DEFAULT *ModelInfo\n\nfunc (p *AgentForUpdate) GetModelInfo() (v *ModelInfo) {\n\tif !p.IsSetModelInfo() {\n\t\treturn AgentForUpdate_ModelInfo_DEFAULT\n\t}\n\treturn p.ModelInfo\n}\n\nvar AgentForUpdate_Intents_DEFAULT []*Intent\n\nfunc (p *AgentForUpdate) GetIntents() (v []*Intent) {\n\tif !p.IsSetIntents() {\n\t\treturn AgentForUpdate_Intents_DEFAULT\n\t}\n\treturn p.Intents\n}\n\nvar AgentForUpdate_AgentType_DEFAULT AgentType\n\nfunc (p *AgentForUpdate) GetAgentType() (v AgentType) {\n\tif !p.IsSetAgentType() {\n\t\treturn AgentForUpdate_AgentType_DEFAULT\n\t}\n\treturn *p.AgentType\n}\n\nvar AgentForUpdate_RootAgent_DEFAULT bool\n\nfunc (p *AgentForUpdate) GetRootAgent() (v bool) {\n\tif !p.IsSetRootAgent() {\n\t\treturn AgentForUpdate_RootAgent_DEFAULT\n\t}\n\treturn *p.RootAgent\n}\n\nvar AgentForUpdate_ReferenceId_DEFAULT int64\n\nfunc (p *AgentForUpdate) GetReferenceId() (v int64) {\n\tif !p.IsSetReferenceId() {\n\t\treturn AgentForUpdate_ReferenceId_DEFAULT\n\t}\n\treturn *p.ReferenceId\n}\n\nvar AgentForUpdate_FirstVersion_DEFAULT string\n\nfunc (p *AgentForUpdate) GetFirstVersion() (v string) {\n\tif !p.IsSetFirstVersion() {\n\t\treturn AgentForUpdate_FirstVersion_DEFAULT\n\t}\n\treturn *p.FirstVersion\n}\n\nvar AgentForUpdate_LastVersion_DEFAULT string\n\nfunc (p *AgentForUpdate) GetLastVersion() (v string) {\n\tif !p.IsSetLastVersion() {\n\t\treturn AgentForUpdate_LastVersion_DEFAULT\n\t}\n\treturn *p.LastVersion\n}\n\nvar AgentForUpdate_Position_DEFAULT *AgentPosition\n\nfunc (p *AgentForUpdate) GetPosition() (v *AgentPosition) {\n\tif !p.IsSetPosition() {\n\t\treturn AgentForUpdate_Position_DEFAULT\n\t}\n\treturn p.Position\n}\n\nvar AgentForUpdate_IconUri_DEFAULT string\n\nfunc (p *AgentForUpdate) GetIconUri() (v string) {\n\tif !p.IsSetIconUri() {\n\t\treturn AgentForUpdate_IconUri_DEFAULT\n\t}\n\treturn *p.IconUri\n}\n\nvar AgentForUpdate_JumpConfig_DEFAULT *JumpConfig\n\nfunc (p *AgentForUpdate) GetJumpConfig() (v *JumpConfig) {\n\tif !p.IsSetJumpConfig() {\n\t\treturn AgentForUpdate_JumpConfig_DEFAULT\n\t}\n\treturn p.JumpConfig\n}\n\nvar AgentForUpdate_SuggestReplyInfo_DEFAULT *SuggestReplyInfo\n\nfunc (p *AgentForUpdate) GetSuggestReplyInfo() (v *SuggestReplyInfo) {\n\tif !p.IsSetSuggestReplyInfo() {\n\t\treturn AgentForUpdate_SuggestReplyInfo_DEFAULT\n\t}\n\treturn p.SuggestReplyInfo\n}\n\nvar AgentForUpdate_Description_DEFAULT string\n\nfunc (p *AgentForUpdate) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn AgentForUpdate_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar AgentForUpdate_VersionCompat_DEFAULT AgentVersionCompat\n\nfunc (p *AgentForUpdate) GetVersionCompat() (v AgentVersionCompat) {\n\tif !p.IsSetVersionCompat() {\n\t\treturn AgentForUpdate_VersionCompat_DEFAULT\n\t}\n\treturn *p.VersionCompat\n}\n\nvar AgentForUpdate_HookInfo_DEFAULT *HookInfo\n\nfunc (p *AgentForUpdate) GetHookInfo() (v *HookInfo) {\n\tif !p.IsSetHookInfo() {\n\t\treturn AgentForUpdate_HookInfo_DEFAULT\n\t}\n\treturn p.HookInfo\n}\n\nvar fieldIDToName_AgentForUpdate = map[int16]string{\n\t1:  \"AgentId\",\n\t2:  \"AgentName\",\n\t3:  \"PromptInfo\",\n\t4:  \"PluginInfoList\",\n\t5:  \"Knowledge\",\n\t6:  \"WorkflowInfoList\",\n\t7:  \"ModelInfo\",\n\t8:  \"Intents\",\n\t9:  \"AgentType\",\n\t10: \"RootAgent\",\n\t11: \"ReferenceId\",\n\t12: \"FirstVersion\",\n\t13: \"LastVersion\",\n\t14: \"Position\",\n\t15: \"IconUri\",\n\t16: \"JumpConfig\",\n\t17: \"SuggestReplyInfo\",\n\t18: \"Description\",\n\t19: \"VersionCompat\",\n\t20: \"HookInfo\",\n}\n\nfunc (p *AgentForUpdate) IsSetAgentId() bool {\n\treturn p.AgentId != nil\n}\n\nfunc (p *AgentForUpdate) IsSetAgentName() bool {\n\treturn p.AgentName != nil\n}\n\nfunc (p *AgentForUpdate) IsSetPromptInfo() bool {\n\treturn p.PromptInfo != nil\n}\n\nfunc (p *AgentForUpdate) IsSetPluginInfoList() bool {\n\treturn p.PluginInfoList != nil\n}\n\nfunc (p *AgentForUpdate) IsSetKnowledge() bool {\n\treturn p.Knowledge != nil\n}\n\nfunc (p *AgentForUpdate) IsSetWorkflowInfoList() bool {\n\treturn p.WorkflowInfoList != nil\n}\n\nfunc (p *AgentForUpdate) IsSetModelInfo() bool {\n\treturn p.ModelInfo != nil\n}\n\nfunc (p *AgentForUpdate) IsSetIntents() bool {\n\treturn p.Intents != nil\n}\n\nfunc (p *AgentForUpdate) IsSetAgentType() bool {\n\treturn p.AgentType != nil\n}\n\nfunc (p *AgentForUpdate) IsSetRootAgent() bool {\n\treturn p.RootAgent != nil\n}\n\nfunc (p *AgentForUpdate) IsSetReferenceId() bool {\n\treturn p.ReferenceId != nil\n}\n\nfunc (p *AgentForUpdate) IsSetFirstVersion() bool {\n\treturn p.FirstVersion != nil\n}\n\nfunc (p *AgentForUpdate) IsSetLastVersion() bool {\n\treturn p.LastVersion != nil\n}\n\nfunc (p *AgentForUpdate) IsSetPosition() bool {\n\treturn p.Position != nil\n}\n\nfunc (p *AgentForUpdate) IsSetIconUri() bool {\n\treturn p.IconUri != nil\n}\n\nfunc (p *AgentForUpdate) IsSetJumpConfig() bool {\n\treturn p.JumpConfig != nil\n}\n\nfunc (p *AgentForUpdate) IsSetSuggestReplyInfo() bool {\n\treturn p.SuggestReplyInfo != nil\n}\n\nfunc (p *AgentForUpdate) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *AgentForUpdate) IsSetVersionCompat() bool {\n\treturn p.VersionCompat != nil\n}\n\nfunc (p *AgentForUpdate) IsSetHookInfo() bool {\n\treturn p.HookInfo != nil\n}\n\nfunc (p *AgentForUpdate) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentForUpdate[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentForUpdate) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AgentId = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AgentName = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewPromptInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PromptInfo = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginInfo, 0, size)\n\tvalues := make([]PluginInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginInfoList = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewKnowledge()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Knowledge = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowInfo, 0, size)\n\tvalues := make([]WorkflowInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowInfoList = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewModelInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ModelInfo = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Intent, 0, size)\n\tvalues := make([]Intent, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Intents = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *AgentType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := AgentType(v)\n\t\t_field = &tmp\n\t}\n\tp.AgentType = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RootAgent = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ReferenceId = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FirstVersion = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LastVersion = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField14(iprot thrift.TProtocol) error {\n\t_field := NewAgentPosition()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Position = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IconUri = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField16(iprot thrift.TProtocol) error {\n\t_field := NewJumpConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.JumpConfig = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField17(iprot thrift.TProtocol) error {\n\t_field := NewSuggestReplyInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestReplyInfo = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *AgentVersionCompat\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := AgentVersionCompat(v)\n\t\t_field = &tmp\n\t}\n\tp.VersionCompat = _field\n\treturn nil\n}\nfunc (p *AgentForUpdate) ReadField20(iprot thrift.TProtocol) error {\n\t_field := NewHookInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.HookInfo = _field\n\treturn nil\n}\n\nfunc (p *AgentForUpdate) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AgentForUpdate\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentForUpdate) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAgentId() {\n\t\tif err = oprot.WriteFieldBegin(\"AgentId\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.AgentId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAgentName() {\n\t\tif err = oprot.WriteFieldBegin(\"AgentName\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.AgentName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPromptInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"PromptInfo\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.PromptInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginInfoList() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginInfoList\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginInfoList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PluginInfoList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKnowledge() {\n\t\tif err = oprot.WriteFieldBegin(\"Knowledge\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Knowledge.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowInfoList() {\n\t\tif err = oprot.WriteFieldBegin(\"WorkflowInfoList\", thrift.LIST, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowInfoList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.WorkflowInfoList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"ModelInfo\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ModelInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIntents() {\n\t\tif err = oprot.WriteFieldBegin(\"Intents\", thrift.LIST, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Intents)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Intents {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAgentType() {\n\t\tif err = oprot.WriteFieldBegin(\"AgentType\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AgentType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRootAgent() {\n\t\tif err = oprot.WriteFieldBegin(\"RootAgent\", thrift.BOOL, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.RootAgent); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReferenceId() {\n\t\tif err = oprot.WriteFieldBegin(\"ReferenceId\", thrift.I64, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ReferenceId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFirstVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"FirstVersion\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FirstVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLastVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"LastVersion\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LastVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPosition() {\n\t\tif err = oprot.WriteFieldBegin(\"Position\", thrift.STRUCT, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Position.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIconUri() {\n\t\tif err = oprot.WriteFieldBegin(\"IconUri\", thrift.STRING, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IconUri); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetJumpConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"JumpConfig\", thrift.STRUCT, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.JumpConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestReplyInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"SuggestReplyInfo\", thrift.STRUCT, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SuggestReplyInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersionCompat() {\n\t\tif err = oprot.WriteFieldBegin(\"VersionCompat\", thrift.I32, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.VersionCompat)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *AgentForUpdate) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHookInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"HookInfo\", thrift.STRUCT, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.HookInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\n\nfunc (p *AgentForUpdate) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentForUpdate(%+v)\", *p)\n\n}\n\ntype TableDetail struct {\n\t// table id\n\tTableId *string `thrift:\"TableId,1,optional\" form:\"TableId\" json:\"TableId,omitempty\" query:\"TableId\"`\n\t// Table name\n\tTableName *string `thrift:\"TableName,2,optional\" form:\"TableName\" json:\"TableName,omitempty\" query:\"TableName\"`\n\t// Table Introduction\n\tTableDesc *string `thrift:\"TableDesc,3,optional\" form:\"TableDesc\" json:\"TableDesc,omitempty\" query:\"TableDesc\"`\n\t// Table field information\n\tFieldList []*FieldItem `thrift:\"FieldList,4,optional\" form:\"FieldList\" json:\"FieldList,omitempty\" query:\"FieldList\"`\n\t// Whether to support calling in Prompt, the default is supported\n\tPromptDisabled *bool `thrift:\"PromptDisabled,5,optional\" form:\"prompt_disabled\" json:\"prompt_disabled,omitempty\"`\n}\n\nfunc NewTableDetail() *TableDetail {\n\treturn &TableDetail{}\n}\n\nfunc (p *TableDetail) InitDefault() {\n}\n\nvar TableDetail_TableId_DEFAULT string\n\nfunc (p *TableDetail) GetTableId() (v string) {\n\tif !p.IsSetTableId() {\n\t\treturn TableDetail_TableId_DEFAULT\n\t}\n\treturn *p.TableId\n}\n\nvar TableDetail_TableName_DEFAULT string\n\nfunc (p *TableDetail) GetTableName() (v string) {\n\tif !p.IsSetTableName() {\n\t\treturn TableDetail_TableName_DEFAULT\n\t}\n\treturn *p.TableName\n}\n\nvar TableDetail_TableDesc_DEFAULT string\n\nfunc (p *TableDetail) GetTableDesc() (v string) {\n\tif !p.IsSetTableDesc() {\n\t\treturn TableDetail_TableDesc_DEFAULT\n\t}\n\treturn *p.TableDesc\n}\n\nvar TableDetail_FieldList_DEFAULT []*FieldItem\n\nfunc (p *TableDetail) GetFieldList() (v []*FieldItem) {\n\tif !p.IsSetFieldList() {\n\t\treturn TableDetail_FieldList_DEFAULT\n\t}\n\treturn p.FieldList\n}\n\nvar TableDetail_PromptDisabled_DEFAULT bool\n\nfunc (p *TableDetail) GetPromptDisabled() (v bool) {\n\tif !p.IsSetPromptDisabled() {\n\t\treturn TableDetail_PromptDisabled_DEFAULT\n\t}\n\treturn *p.PromptDisabled\n}\n\nvar fieldIDToName_TableDetail = map[int16]string{\n\t1: \"TableId\",\n\t2: \"TableName\",\n\t3: \"TableDesc\",\n\t4: \"FieldList\",\n\t5: \"PromptDisabled\",\n}\n\nfunc (p *TableDetail) IsSetTableId() bool {\n\treturn p.TableId != nil\n}\n\nfunc (p *TableDetail) IsSetTableName() bool {\n\treturn p.TableName != nil\n}\n\nfunc (p *TableDetail) IsSetTableDesc() bool {\n\treturn p.TableDesc != nil\n}\n\nfunc (p *TableDetail) IsSetFieldList() bool {\n\treturn p.FieldList != nil\n}\n\nfunc (p *TableDetail) IsSetPromptDisabled() bool {\n\treturn p.PromptDisabled != nil\n}\n\nfunc (p *TableDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TableDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TableDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TableId = _field\n\treturn nil\n}\nfunc (p *TableDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TableName = _field\n\treturn nil\n}\nfunc (p *TableDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TableDesc = _field\n\treturn nil\n}\nfunc (p *TableDetail) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*FieldItem, 0, size)\n\tvalues := make([]FieldItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FieldList = _field\n\treturn nil\n}\nfunc (p *TableDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PromptDisabled = _field\n\treturn nil\n}\n\nfunc (p *TableDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TableDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TableDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableId() {\n\t\tif err = oprot.WriteFieldBegin(\"TableId\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TableId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TableDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableName() {\n\t\tif err = oprot.WriteFieldBegin(\"TableName\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TableName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TableDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"TableDesc\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TableDesc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *TableDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFieldList() {\n\t\tif err = oprot.WriteFieldBegin(\"FieldList\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FieldList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *TableDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPromptDisabled() {\n\t\tif err = oprot.WriteFieldBegin(\"PromptDisabled\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.PromptDisabled); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *TableDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TableDetail(%+v)\", *p)\n\n}\n\ntype TaskPluginInputField struct {\n\tName *string `thrift:\"Name,1,optional\" form:\"Name\" json:\"Name,omitempty\" query:\"Name\"`\n\t// \"Input\", \"Reference\"\n\tType  *string `thrift:\"Type,2,optional\" form:\"Type\" json:\"Type,omitempty\" query:\"Type\"`\n\tValue *string `thrift:\"Value,3,optional\" form:\"Value\" json:\"Value,omitempty\" query:\"Value\"`\n}\n\nfunc NewTaskPluginInputField() *TaskPluginInputField {\n\treturn &TaskPluginInputField{}\n}\n\nfunc (p *TaskPluginInputField) InitDefault() {\n}\n\nvar TaskPluginInputField_Name_DEFAULT string\n\nfunc (p *TaskPluginInputField) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn TaskPluginInputField_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar TaskPluginInputField_Type_DEFAULT string\n\nfunc (p *TaskPluginInputField) GetType() (v string) {\n\tif !p.IsSetType() {\n\t\treturn TaskPluginInputField_Type_DEFAULT\n\t}\n\treturn *p.Type\n}\n\nvar TaskPluginInputField_Value_DEFAULT string\n\nfunc (p *TaskPluginInputField) GetValue() (v string) {\n\tif !p.IsSetValue() {\n\t\treturn TaskPluginInputField_Value_DEFAULT\n\t}\n\treturn *p.Value\n}\n\nvar fieldIDToName_TaskPluginInputField = map[int16]string{\n\t1: \"Name\",\n\t2: \"Type\",\n\t3: \"Value\",\n}\n\nfunc (p *TaskPluginInputField) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *TaskPluginInputField) IsSetType() bool {\n\treturn p.Type != nil\n}\n\nfunc (p *TaskPluginInputField) IsSetValue() bool {\n\treturn p.Value != nil\n}\n\nfunc (p *TaskPluginInputField) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TaskPluginInputField[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TaskPluginInputField) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *TaskPluginInputField) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *TaskPluginInputField) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Value = _field\n\treturn nil\n}\n\nfunc (p *TaskPluginInputField) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TaskPluginInputField\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TaskPluginInputField) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TaskPluginInputField) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetType() {\n\t\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Type); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TaskPluginInputField) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetValue() {\n\t\tif err = oprot.WriteFieldBegin(\"Value\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *TaskPluginInputField) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TaskPluginInputField(%+v)\", *p)\n\n}\n\ntype TaskPluginInput struct {\n\tParams []*TaskPluginInputField `thrift:\"Params,1,optional\" form:\"Params\" json:\"Params,omitempty\" query:\"Params\"`\n}\n\nfunc NewTaskPluginInput() *TaskPluginInput {\n\treturn &TaskPluginInput{}\n}\n\nfunc (p *TaskPluginInput) InitDefault() {\n}\n\nvar TaskPluginInput_Params_DEFAULT []*TaskPluginInputField\n\nfunc (p *TaskPluginInput) GetParams() (v []*TaskPluginInputField) {\n\tif !p.IsSetParams() {\n\t\treturn TaskPluginInput_Params_DEFAULT\n\t}\n\treturn p.Params\n}\n\nvar fieldIDToName_TaskPluginInput = map[int16]string{\n\t1: \"Params\",\n}\n\nfunc (p *TaskPluginInput) IsSetParams() bool {\n\treturn p.Params != nil\n}\n\nfunc (p *TaskPluginInput) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TaskPluginInput[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TaskPluginInput) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TaskPluginInputField, 0, size)\n\tvalues := make([]TaskPluginInputField, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Params = _field\n\treturn nil\n}\n\nfunc (p *TaskPluginInput) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TaskPluginInput\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TaskPluginInput) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParams() {\n\t\tif err = oprot.WriteFieldBegin(\"Params\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Params)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Params {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *TaskPluginInput) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TaskPluginInput(%+v)\", *p)\n\n}\n\ntype TaskWebhookField struct {\n\tName        *string             `thrift:\"Name,1,optional\" form:\"Name\" json:\"Name,omitempty\" query:\"Name\"`\n\tType        *string             `thrift:\"Type,2,optional\" form:\"Type\" json:\"Type,omitempty\" query:\"Type\"`\n\tDescription *string             `thrift:\"Description,3,optional\" form:\"Description\" json:\"Description,omitempty\" query:\"Description\"`\n\tChildren    []*TaskWebhookField `thrift:\"Children,4,optional\" form:\"Children\" json:\"Children,omitempty\" query:\"Children\"`\n}\n\nfunc NewTaskWebhookField() *TaskWebhookField {\n\treturn &TaskWebhookField{}\n}\n\nfunc (p *TaskWebhookField) InitDefault() {\n}\n\nvar TaskWebhookField_Name_DEFAULT string\n\nfunc (p *TaskWebhookField) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn TaskWebhookField_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar TaskWebhookField_Type_DEFAULT string\n\nfunc (p *TaskWebhookField) GetType() (v string) {\n\tif !p.IsSetType() {\n\t\treturn TaskWebhookField_Type_DEFAULT\n\t}\n\treturn *p.Type\n}\n\nvar TaskWebhookField_Description_DEFAULT string\n\nfunc (p *TaskWebhookField) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn TaskWebhookField_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar TaskWebhookField_Children_DEFAULT []*TaskWebhookField\n\nfunc (p *TaskWebhookField) GetChildren() (v []*TaskWebhookField) {\n\tif !p.IsSetChildren() {\n\t\treturn TaskWebhookField_Children_DEFAULT\n\t}\n\treturn p.Children\n}\n\nvar fieldIDToName_TaskWebhookField = map[int16]string{\n\t1: \"Name\",\n\t2: \"Type\",\n\t3: \"Description\",\n\t4: \"Children\",\n}\n\nfunc (p *TaskWebhookField) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *TaskWebhookField) IsSetType() bool {\n\treturn p.Type != nil\n}\n\nfunc (p *TaskWebhookField) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *TaskWebhookField) IsSetChildren() bool {\n\treturn p.Children != nil\n}\n\nfunc (p *TaskWebhookField) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TaskWebhookField[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TaskWebhookField) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *TaskWebhookField) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *TaskWebhookField) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *TaskWebhookField) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TaskWebhookField, 0, size)\n\tvalues := make([]TaskWebhookField, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Children = _field\n\treturn nil\n}\n\nfunc (p *TaskWebhookField) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TaskWebhookField\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TaskWebhookField) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TaskWebhookField) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetType() {\n\t\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Type); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TaskWebhookField) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *TaskWebhookField) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChildren() {\n\t\tif err = oprot.WriteFieldBegin(\"Children\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Children)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Children {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *TaskWebhookField) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TaskWebhookField(%+v)\", *p)\n\n}\n\ntype TaskWebhookOutput struct {\n\tParams []*TaskWebhookField `thrift:\"Params,1,optional\" form:\"Params\" json:\"Params,omitempty\" query:\"Params\"`\n}\n\nfunc NewTaskWebhookOutput() *TaskWebhookOutput {\n\treturn &TaskWebhookOutput{}\n}\n\nfunc (p *TaskWebhookOutput) InitDefault() {\n}\n\nvar TaskWebhookOutput_Params_DEFAULT []*TaskWebhookField\n\nfunc (p *TaskWebhookOutput) GetParams() (v []*TaskWebhookField) {\n\tif !p.IsSetParams() {\n\t\treturn TaskWebhookOutput_Params_DEFAULT\n\t}\n\treturn p.Params\n}\n\nvar fieldIDToName_TaskWebhookOutput = map[int16]string{\n\t1: \"Params\",\n}\n\nfunc (p *TaskWebhookOutput) IsSetParams() bool {\n\treturn p.Params != nil\n}\n\nfunc (p *TaskWebhookOutput) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TaskWebhookOutput[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TaskWebhookOutput) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TaskWebhookField, 0, size)\n\tvalues := make([]TaskWebhookField, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Params = _field\n\treturn nil\n}\n\nfunc (p *TaskWebhookOutput) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TaskWebhookOutput\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TaskWebhookOutput) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParams() {\n\t\tif err = oprot.WriteFieldBegin(\"Params\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Params)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Params {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *TaskWebhookOutput) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TaskWebhookOutput(%+v)\", *p)\n\n}\n\ntype TaskInfoDetail struct {\n\t// Tasks Detail\n\tTaskId *string `thrift:\"TaskId,1,optional\" form:\"TaskId\" json:\"TaskId,omitempty\" query:\"TaskId\"`\n\t// The query executed when the timer fires, for example: Remind me to drink water. Phase 2: TriggerType == \"Time\"\n\tUserQuestion *string `thrift:\"UserQuestion,2,optional\" form:\"UserQuestion\" json:\"UserQuestion,omitempty\" query:\"UserQuestion\"`\n\t// Timed task create_time\n\tCreateTime *string `thrift:\"CreateTime,3,optional\" form:\"CreateTime\" json:\"CreateTime,omitempty\" query:\"CreateTime\"`\n\t// The time when the scheduled task will next execute\n\tNextTime *string `thrift:\"NextTime,4,optional\" form:\"NextTime\" json:\"NextTime,omitempty\" query:\"NextTime\"`\n\t// Task Status: Valid/Invalid\n\tStatus *int64 `thrift:\"Status,5,optional\" form:\"Status\" json:\"Status,omitempty\" query:\"Status\"`\n\t// 1-Draft, 2-Online\n\tPresetType *int32 `thrift:\"PresetType,6,optional\" form:\"PresetType\" json:\"PresetType,omitempty\" query:\"PresetType\"`\n\t// crontab expression for timed tasks\n\tCronExpr *string `thrift:\"CronExpr,7,optional\" form:\"CronExpr\" json:\"CronExpr,omitempty\" query:\"CronExpr\"`\n\t// Treated UserQuestions, such as Drinking Water\n\tTaskContent *string `thrift:\"TaskContent,8,optional\" form:\"TaskContent\" json:\"TaskContent,omitempty\" query:\"TaskContent\"`\n\t// Time Zone\n\tTimeZone *string `thrift:\"TimeZone,9,optional\" form:\"TimeZone\" json:\"TimeZone,omitempty\" query:\"TimeZone\"`\n\t// task name\n\tTaskName *string `thrift:\"TaskName,10,optional\" form:\"TaskName\" json:\"TaskName,omitempty\" query:\"TaskName\"`\n\t// \"Time\", \"Event\"\n\tTriggerType *string `thrift:\"TriggerType,11,optional\" form:\"TriggerType\" json:\"TriggerType,omitempty\" query:\"TriggerType\"`\n\t// \"Bot query\", \"Plugin\", \"Workflow\"\n\tAction *string `thrift:\"Action,12,optional\" form:\"Action\" json:\"Action,omitempty\" query:\"Action\"`\n\t// Action == \"Bot query\"\n\tBotQuery *string `thrift:\"BotQuery,13,optional\" form:\"BotQuery\" json:\"BotQuery,omitempty\" query:\"BotQuery\"`\n\t// Both plugins and workflows use this field\n\tPluginName *string `thrift:\"PluginName,14,optional\" form:\"PluginName\" json:\"PluginName,omitempty\" query:\"PluginName\"`\n\t// Both plugins and workflows use this field\n\tPluginInput *TaskPluginInput `thrift:\"PluginInput,15,optional\" form:\"PluginInput\" json:\"PluginInput,omitempty\" query:\"PluginInput\"`\n\t// TriggerType == \"Event\"\n\tWebhookUrl *string `thrift:\"WebhookUrl,16,optional\" form:\"WebhookUrl\" json:\"WebhookUrl,omitempty\" query:\"WebhookUrl\"`\n\t// TriggerType == \"Event\"\n\tWebhookBearerToken *string `thrift:\"WebhookBearerToken,17,optional\" form:\"WebhookBearerToken\" json:\"WebhookBearerToken,omitempty\" query:\"WebhookBearerToken\"`\n\t// TriggerType == \"Event\"\n\tWebhookOutput *TaskWebhookOutput `thrift:\"WebhookOutput,18,optional\" form:\"WebhookOutput\" json:\"WebhookOutput,omitempty\" query:\"WebhookOutput\"`\n\t// Traceability ID. Generated when created, updated/released unchanged\n\tOriginId *string `thrift:\"OriginId,19,optional\" form:\"OriginId\" json:\"OriginId,omitempty\" query:\"OriginId\"`\n}\n\nfunc NewTaskInfoDetail() *TaskInfoDetail {\n\treturn &TaskInfoDetail{}\n}\n\nfunc (p *TaskInfoDetail) InitDefault() {\n}\n\nvar TaskInfoDetail_TaskId_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetTaskId() (v string) {\n\tif !p.IsSetTaskId() {\n\t\treturn TaskInfoDetail_TaskId_DEFAULT\n\t}\n\treturn *p.TaskId\n}\n\nvar TaskInfoDetail_UserQuestion_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetUserQuestion() (v string) {\n\tif !p.IsSetUserQuestion() {\n\t\treturn TaskInfoDetail_UserQuestion_DEFAULT\n\t}\n\treturn *p.UserQuestion\n}\n\nvar TaskInfoDetail_CreateTime_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetCreateTime() (v string) {\n\tif !p.IsSetCreateTime() {\n\t\treturn TaskInfoDetail_CreateTime_DEFAULT\n\t}\n\treturn *p.CreateTime\n}\n\nvar TaskInfoDetail_NextTime_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetNextTime() (v string) {\n\tif !p.IsSetNextTime() {\n\t\treturn TaskInfoDetail_NextTime_DEFAULT\n\t}\n\treturn *p.NextTime\n}\n\nvar TaskInfoDetail_Status_DEFAULT int64\n\nfunc (p *TaskInfoDetail) GetStatus() (v int64) {\n\tif !p.IsSetStatus() {\n\t\treturn TaskInfoDetail_Status_DEFAULT\n\t}\n\treturn *p.Status\n}\n\nvar TaskInfoDetail_PresetType_DEFAULT int32\n\nfunc (p *TaskInfoDetail) GetPresetType() (v int32) {\n\tif !p.IsSetPresetType() {\n\t\treturn TaskInfoDetail_PresetType_DEFAULT\n\t}\n\treturn *p.PresetType\n}\n\nvar TaskInfoDetail_CronExpr_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetCronExpr() (v string) {\n\tif !p.IsSetCronExpr() {\n\t\treturn TaskInfoDetail_CronExpr_DEFAULT\n\t}\n\treturn *p.CronExpr\n}\n\nvar TaskInfoDetail_TaskContent_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetTaskContent() (v string) {\n\tif !p.IsSetTaskContent() {\n\t\treturn TaskInfoDetail_TaskContent_DEFAULT\n\t}\n\treturn *p.TaskContent\n}\n\nvar TaskInfoDetail_TimeZone_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetTimeZone() (v string) {\n\tif !p.IsSetTimeZone() {\n\t\treturn TaskInfoDetail_TimeZone_DEFAULT\n\t}\n\treturn *p.TimeZone\n}\n\nvar TaskInfoDetail_TaskName_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetTaskName() (v string) {\n\tif !p.IsSetTaskName() {\n\t\treturn TaskInfoDetail_TaskName_DEFAULT\n\t}\n\treturn *p.TaskName\n}\n\nvar TaskInfoDetail_TriggerType_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetTriggerType() (v string) {\n\tif !p.IsSetTriggerType() {\n\t\treturn TaskInfoDetail_TriggerType_DEFAULT\n\t}\n\treturn *p.TriggerType\n}\n\nvar TaskInfoDetail_Action_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetAction() (v string) {\n\tif !p.IsSetAction() {\n\t\treturn TaskInfoDetail_Action_DEFAULT\n\t}\n\treturn *p.Action\n}\n\nvar TaskInfoDetail_BotQuery_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetBotQuery() (v string) {\n\tif !p.IsSetBotQuery() {\n\t\treturn TaskInfoDetail_BotQuery_DEFAULT\n\t}\n\treturn *p.BotQuery\n}\n\nvar TaskInfoDetail_PluginName_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetPluginName() (v string) {\n\tif !p.IsSetPluginName() {\n\t\treturn TaskInfoDetail_PluginName_DEFAULT\n\t}\n\treturn *p.PluginName\n}\n\nvar TaskInfoDetail_PluginInput_DEFAULT *TaskPluginInput\n\nfunc (p *TaskInfoDetail) GetPluginInput() (v *TaskPluginInput) {\n\tif !p.IsSetPluginInput() {\n\t\treturn TaskInfoDetail_PluginInput_DEFAULT\n\t}\n\treturn p.PluginInput\n}\n\nvar TaskInfoDetail_WebhookUrl_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetWebhookUrl() (v string) {\n\tif !p.IsSetWebhookUrl() {\n\t\treturn TaskInfoDetail_WebhookUrl_DEFAULT\n\t}\n\treturn *p.WebhookUrl\n}\n\nvar TaskInfoDetail_WebhookBearerToken_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetWebhookBearerToken() (v string) {\n\tif !p.IsSetWebhookBearerToken() {\n\t\treturn TaskInfoDetail_WebhookBearerToken_DEFAULT\n\t}\n\treturn *p.WebhookBearerToken\n}\n\nvar TaskInfoDetail_WebhookOutput_DEFAULT *TaskWebhookOutput\n\nfunc (p *TaskInfoDetail) GetWebhookOutput() (v *TaskWebhookOutput) {\n\tif !p.IsSetWebhookOutput() {\n\t\treturn TaskInfoDetail_WebhookOutput_DEFAULT\n\t}\n\treturn p.WebhookOutput\n}\n\nvar TaskInfoDetail_OriginId_DEFAULT string\n\nfunc (p *TaskInfoDetail) GetOriginId() (v string) {\n\tif !p.IsSetOriginId() {\n\t\treturn TaskInfoDetail_OriginId_DEFAULT\n\t}\n\treturn *p.OriginId\n}\n\nvar fieldIDToName_TaskInfoDetail = map[int16]string{\n\t1:  \"TaskId\",\n\t2:  \"UserQuestion\",\n\t3:  \"CreateTime\",\n\t4:  \"NextTime\",\n\t5:  \"Status\",\n\t6:  \"PresetType\",\n\t7:  \"CronExpr\",\n\t8:  \"TaskContent\",\n\t9:  \"TimeZone\",\n\t10: \"TaskName\",\n\t11: \"TriggerType\",\n\t12: \"Action\",\n\t13: \"BotQuery\",\n\t14: \"PluginName\",\n\t15: \"PluginInput\",\n\t16: \"WebhookUrl\",\n\t17: \"WebhookBearerToken\",\n\t18: \"WebhookOutput\",\n\t19: \"OriginId\",\n}\n\nfunc (p *TaskInfoDetail) IsSetTaskId() bool {\n\treturn p.TaskId != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetUserQuestion() bool {\n\treturn p.UserQuestion != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetCreateTime() bool {\n\treturn p.CreateTime != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetNextTime() bool {\n\treturn p.NextTime != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetStatus() bool {\n\treturn p.Status != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetPresetType() bool {\n\treturn p.PresetType != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetCronExpr() bool {\n\treturn p.CronExpr != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetTaskContent() bool {\n\treturn p.TaskContent != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetTimeZone() bool {\n\treturn p.TimeZone != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetTaskName() bool {\n\treturn p.TaskName != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetTriggerType() bool {\n\treturn p.TriggerType != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetAction() bool {\n\treturn p.Action != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetBotQuery() bool {\n\treturn p.BotQuery != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetPluginName() bool {\n\treturn p.PluginName != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetPluginInput() bool {\n\treturn p.PluginInput != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetWebhookUrl() bool {\n\treturn p.WebhookUrl != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetWebhookBearerToken() bool {\n\treturn p.WebhookBearerToken != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetWebhookOutput() bool {\n\treturn p.WebhookOutput != nil\n}\n\nfunc (p *TaskInfoDetail) IsSetOriginId() bool {\n\treturn p.OriginId != nil\n}\n\nfunc (p *TaskInfoDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TaskInfoDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TaskInfoDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TaskId = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserQuestion = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NextTime = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PresetType = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CronExpr = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TaskContent = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TimeZone = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TaskName = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TriggerType = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Action = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotQuery = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginName = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField15(iprot thrift.TProtocol) error {\n\t_field := NewTaskPluginInput()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PluginInput = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WebhookUrl = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WebhookBearerToken = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField18(iprot thrift.TProtocol) error {\n\t_field := NewTaskWebhookOutput()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.WebhookOutput = _field\n\treturn nil\n}\nfunc (p *TaskInfoDetail) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OriginId = _field\n\treturn nil\n}\n\nfunc (p *TaskInfoDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TaskInfoDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TaskInfoDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTaskId() {\n\t\tif err = oprot.WriteFieldBegin(\"TaskId\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TaskId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserQuestion() {\n\t\tif err = oprot.WriteFieldBegin(\"UserQuestion\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UserQuestion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreateTime() {\n\t\tif err = oprot.WriteFieldBegin(\"CreateTime\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CreateTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNextTime() {\n\t\tif err = oprot.WriteFieldBegin(\"NextTime\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.NextTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"Status\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Status); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPresetType() {\n\t\tif err = oprot.WriteFieldBegin(\"PresetType\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PresetType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCronExpr() {\n\t\tif err = oprot.WriteFieldBegin(\"CronExpr\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CronExpr); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTaskContent() {\n\t\tif err = oprot.WriteFieldBegin(\"TaskContent\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TaskContent); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTimeZone() {\n\t\tif err = oprot.WriteFieldBegin(\"TimeZone\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TimeZone); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTaskName() {\n\t\tif err = oprot.WriteFieldBegin(\"TaskName\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TaskName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTriggerType() {\n\t\tif err = oprot.WriteFieldBegin(\"TriggerType\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TriggerType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAction() {\n\t\tif err = oprot.WriteFieldBegin(\"Action\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Action); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotQuery() {\n\t\tif err = oprot.WriteFieldBegin(\"BotQuery\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BotQuery); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginName() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginName\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PluginName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginInput() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginInput\", thrift.STRUCT, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.PluginInput.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWebhookUrl() {\n\t\tif err = oprot.WriteFieldBegin(\"WebhookUrl\", thrift.STRING, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WebhookUrl); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWebhookBearerToken() {\n\t\tif err = oprot.WriteFieldBegin(\"WebhookBearerToken\", thrift.STRING, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WebhookBearerToken); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWebhookOutput() {\n\t\tif err = oprot.WriteFieldBegin(\"WebhookOutput\", thrift.STRUCT, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.WebhookOutput.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *TaskInfoDetail) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOriginId() {\n\t\tif err = oprot.WriteFieldBegin(\"OriginId\", thrift.STRING, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OriginId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\n\nfunc (p *TaskInfoDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TaskInfoDetail(%+v)\", *p)\n\n}\n\ntype DraftBotInfoV2 struct {\n\tBotInfo           *BotInfo `thrift:\"BotInfo,1\" form:\"BotInfo\" json:\"BotInfo\" query:\"BotInfo\"`\n\tCanvasData        *string  `thrift:\"CanvasData,2,optional\" form:\"CanvasData\" json:\"CanvasData,omitempty\" query:\"CanvasData\"`\n\tBaseCommitVersion *int64   `thrift:\"BaseCommitVersion,3,optional\" form:\"BaseCommitVersion\" json:\"BaseCommitVersion,omitempty\" query:\"BaseCommitVersion\"`\n\tCommitVersion     *int64   `thrift:\"CommitVersion,4,optional\" form:\"CommitVersion\" json:\"CommitVersion,omitempty\" query:\"CommitVersion\"`\n\t// TableInfo\n\tTableInfo map[string]*TableDetail `thrift:\"TableInfo,5,optional\" form:\"TableInfo\" json:\"TableInfo,omitempty\" query:\"TableInfo\"`\n\t// taskInfo\n\tTaskInfo map[string]*TaskInfoDetail `thrift:\"TaskInfo,6,optional\" form:\"TaskInfo\" json:\"TaskInfo,omitempty\" query:\"TaskInfo\"`\n}\n\nfunc NewDraftBotInfoV2() *DraftBotInfoV2 {\n\treturn &DraftBotInfoV2{}\n}\n\nfunc (p *DraftBotInfoV2) InitDefault() {\n}\n\nvar DraftBotInfoV2_BotInfo_DEFAULT *BotInfo\n\nfunc (p *DraftBotInfoV2) GetBotInfo() (v *BotInfo) {\n\tif !p.IsSetBotInfo() {\n\t\treturn DraftBotInfoV2_BotInfo_DEFAULT\n\t}\n\treturn p.BotInfo\n}\n\nvar DraftBotInfoV2_CanvasData_DEFAULT string\n\nfunc (p *DraftBotInfoV2) GetCanvasData() (v string) {\n\tif !p.IsSetCanvasData() {\n\t\treturn DraftBotInfoV2_CanvasData_DEFAULT\n\t}\n\treturn *p.CanvasData\n}\n\nvar DraftBotInfoV2_BaseCommitVersion_DEFAULT int64\n\nfunc (p *DraftBotInfoV2) GetBaseCommitVersion() (v int64) {\n\tif !p.IsSetBaseCommitVersion() {\n\t\treturn DraftBotInfoV2_BaseCommitVersion_DEFAULT\n\t}\n\treturn *p.BaseCommitVersion\n}\n\nvar DraftBotInfoV2_CommitVersion_DEFAULT int64\n\nfunc (p *DraftBotInfoV2) GetCommitVersion() (v int64) {\n\tif !p.IsSetCommitVersion() {\n\t\treturn DraftBotInfoV2_CommitVersion_DEFAULT\n\t}\n\treturn *p.CommitVersion\n}\n\nvar DraftBotInfoV2_TableInfo_DEFAULT map[string]*TableDetail\n\nfunc (p *DraftBotInfoV2) GetTableInfo() (v map[string]*TableDetail) {\n\tif !p.IsSetTableInfo() {\n\t\treturn DraftBotInfoV2_TableInfo_DEFAULT\n\t}\n\treturn p.TableInfo\n}\n\nvar DraftBotInfoV2_TaskInfo_DEFAULT map[string]*TaskInfoDetail\n\nfunc (p *DraftBotInfoV2) GetTaskInfo() (v map[string]*TaskInfoDetail) {\n\tif !p.IsSetTaskInfo() {\n\t\treturn DraftBotInfoV2_TaskInfo_DEFAULT\n\t}\n\treturn p.TaskInfo\n}\n\nvar fieldIDToName_DraftBotInfoV2 = map[int16]string{\n\t1: \"BotInfo\",\n\t2: \"CanvasData\",\n\t3: \"BaseCommitVersion\",\n\t4: \"CommitVersion\",\n\t5: \"TableInfo\",\n\t6: \"TaskInfo\",\n}\n\nfunc (p *DraftBotInfoV2) IsSetBotInfo() bool {\n\treturn p.BotInfo != nil\n}\n\nfunc (p *DraftBotInfoV2) IsSetCanvasData() bool {\n\treturn p.CanvasData != nil\n}\n\nfunc (p *DraftBotInfoV2) IsSetBaseCommitVersion() bool {\n\treturn p.BaseCommitVersion != nil\n}\n\nfunc (p *DraftBotInfoV2) IsSetCommitVersion() bool {\n\treturn p.CommitVersion != nil\n}\n\nfunc (p *DraftBotInfoV2) IsSetTableInfo() bool {\n\treturn p.TableInfo != nil\n}\n\nfunc (p *DraftBotInfoV2) IsSetTaskInfo() bool {\n\treturn p.TaskInfo != nil\n}\n\nfunc (p *DraftBotInfoV2) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftBotInfoV2[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DraftBotInfoV2) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBotInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotInfo = _field\n\treturn nil\n}\nfunc (p *DraftBotInfoV2) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CanvasData = _field\n\treturn nil\n}\nfunc (p *DraftBotInfoV2) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BaseCommitVersion = _field\n\treturn nil\n}\nfunc (p *DraftBotInfoV2) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitVersion = _field\n\treturn nil\n}\nfunc (p *DraftBotInfoV2) ReadField5(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*TableDetail, size)\n\tvalues := make([]TableDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableInfo = _field\n\treturn nil\n}\nfunc (p *DraftBotInfoV2) ReadField6(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*TaskInfoDetail, size)\n\tvalues := make([]TaskInfoDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TaskInfo = _field\n\treturn nil\n}\n\nfunc (p *DraftBotInfoV2) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftBotInfoV2\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftBotInfoV2) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotInfo\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BotInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftBotInfoV2) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCanvasData() {\n\t\tif err = oprot.WriteFieldBegin(\"CanvasData\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CanvasData); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DraftBotInfoV2) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseCommitVersion\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BaseCommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DraftBotInfoV2) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"CommitVersion\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DraftBotInfoV2) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"TableInfo\", thrift.MAP, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.TableInfo)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.TableInfo {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DraftBotInfoV2) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTaskInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"TaskInfo\", thrift.MAP, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.TaskInfo)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.TaskInfo {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *DraftBotInfoV2) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftBotInfoV2(%+v)\", *p)\n\n}\n\ntype JumpConfig struct {\n\tBacktrack       BacktrackMode          `thrift:\"backtrack,1\" form:\"backtrack\" json:\"backtrack\" query:\"backtrack\"`\n\tRecognition     RecognitionMode        `thrift:\"recognition,2\" form:\"recognition\" json:\"recognition\" query:\"recognition\"`\n\tIndependentConf *IndependentModeConfig `thrift:\"independent_conf,3,optional\" form:\"independent_conf\" json:\"independent_conf,omitempty\" query:\"independent_conf\"`\n}\n\nfunc NewJumpConfig() *JumpConfig {\n\treturn &JumpConfig{}\n}\n\nfunc (p *JumpConfig) InitDefault() {\n}\n\nfunc (p *JumpConfig) GetBacktrack() (v BacktrackMode) {\n\treturn p.Backtrack\n}\n\nfunc (p *JumpConfig) GetRecognition() (v RecognitionMode) {\n\treturn p.Recognition\n}\n\nvar JumpConfig_IndependentConf_DEFAULT *IndependentModeConfig\n\nfunc (p *JumpConfig) GetIndependentConf() (v *IndependentModeConfig) {\n\tif !p.IsSetIndependentConf() {\n\t\treturn JumpConfig_IndependentConf_DEFAULT\n\t}\n\treturn p.IndependentConf\n}\n\nvar fieldIDToName_JumpConfig = map[int16]string{\n\t1: \"backtrack\",\n\t2: \"recognition\",\n\t3: \"independent_conf\",\n}\n\nfunc (p *JumpConfig) IsSetIndependentConf() bool {\n\treturn p.IndependentConf != nil\n}\n\nfunc (p *JumpConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_JumpConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *JumpConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field BacktrackMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BacktrackMode(v)\n\t}\n\tp.Backtrack = _field\n\treturn nil\n}\nfunc (p *JumpConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field RecognitionMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = RecognitionMode(v)\n\t}\n\tp.Recognition = _field\n\treturn nil\n}\nfunc (p *JumpConfig) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewIndependentModeConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.IndependentConf = _field\n\treturn nil\n}\n\nfunc (p *JumpConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"JumpConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *JumpConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"backtrack\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Backtrack)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *JumpConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"recognition\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Recognition)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *JumpConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIndependentConf() {\n\t\tif err = oprot.WriteFieldBegin(\"independent_conf\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.IndependentConf.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *JumpConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"JumpConfig(%+v)\", *p)\n\n}\n\ntype IndependentModeConfig struct {\n\t// judge timing\n\tJudgeTiming  IndependentTiming               `thrift:\"judge_timing,1\" form:\"judge_timing\" json:\"judge_timing\" query:\"judge_timing\"`\n\tHistoryRound int32                           `thrift:\"history_round,2\" form:\"history_round\" json:\"history_round\" query:\"history_round\"`\n\tModelType    IndependentRecognitionModelType `thrift:\"model_type,3\" form:\"model_type\" json:\"model_type\" query:\"model_type\"`\n\tModelID      *string                         `thrift:\"model_id,4,optional\" form:\"model_id\" json:\"model_id,omitempty\" query:\"model_id\"`\n\tPrompt       *string                         `thrift:\"prompt,5,optional\" form:\"prompt\" json:\"prompt,omitempty\" query:\"prompt\"`\n}\n\nfunc NewIndependentModeConfig() *IndependentModeConfig {\n\treturn &IndependentModeConfig{}\n}\n\nfunc (p *IndependentModeConfig) InitDefault() {\n}\n\nfunc (p *IndependentModeConfig) GetJudgeTiming() (v IndependentTiming) {\n\treturn p.JudgeTiming\n}\n\nfunc (p *IndependentModeConfig) GetHistoryRound() (v int32) {\n\treturn p.HistoryRound\n}\n\nfunc (p *IndependentModeConfig) GetModelType() (v IndependentRecognitionModelType) {\n\treturn p.ModelType\n}\n\nvar IndependentModeConfig_ModelID_DEFAULT string\n\nfunc (p *IndependentModeConfig) GetModelID() (v string) {\n\tif !p.IsSetModelID() {\n\t\treturn IndependentModeConfig_ModelID_DEFAULT\n\t}\n\treturn *p.ModelID\n}\n\nvar IndependentModeConfig_Prompt_DEFAULT string\n\nfunc (p *IndependentModeConfig) GetPrompt() (v string) {\n\tif !p.IsSetPrompt() {\n\t\treturn IndependentModeConfig_Prompt_DEFAULT\n\t}\n\treturn *p.Prompt\n}\n\nvar fieldIDToName_IndependentModeConfig = map[int16]string{\n\t1: \"judge_timing\",\n\t2: \"history_round\",\n\t3: \"model_type\",\n\t4: \"model_id\",\n\t5: \"prompt\",\n}\n\nfunc (p *IndependentModeConfig) IsSetModelID() bool {\n\treturn p.ModelID != nil\n}\n\nfunc (p *IndependentModeConfig) IsSetPrompt() bool {\n\treturn p.Prompt != nil\n}\n\nfunc (p *IndependentModeConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IndependentModeConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IndependentModeConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field IndependentTiming\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = IndependentTiming(v)\n\t}\n\tp.JudgeTiming = _field\n\treturn nil\n}\nfunc (p *IndependentModeConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HistoryRound = _field\n\treturn nil\n}\nfunc (p *IndependentModeConfig) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field IndependentRecognitionModelType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = IndependentRecognitionModelType(v)\n\t}\n\tp.ModelType = _field\n\treturn nil\n}\nfunc (p *IndependentModeConfig) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ModelID = _field\n\treturn nil\n}\nfunc (p *IndependentModeConfig) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Prompt = _field\n\treturn nil\n}\n\nfunc (p *IndependentModeConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"IndependentModeConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IndependentModeConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"judge_timing\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.JudgeTiming)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *IndependentModeConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"history_round\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.HistoryRound); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *IndependentModeConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_type\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ModelType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *IndependentModeConfig) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelID() {\n\t\tif err = oprot.WriteFieldBegin(\"model_id\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ModelID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *IndependentModeConfig) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrompt() {\n\t\tif err = oprot.WriteFieldBegin(\"prompt\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Prompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *IndependentModeConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IndependentModeConfig(%+v)\", *p)\n\n}\n\ntype MessageFeedback struct {\n\t// feedback type\n\tFeedbackType MessageFeedbackType `thrift:\"feedback_type,1\" form:\"feedback_type\" json:\"feedback_type\" query:\"feedback_type\"`\n\t// segmentation type\n\tDetailTypes []MessageFeedbackDetailType `thrift:\"detail_types,2\" form:\"detail_types\" json:\"detail_types\" query:\"detail_types\"`\n\t// Negative feedback custom content, corresponding to user selection Others\n\tDetailContent string `thrift:\"detail_content,3\" form:\"detail_content\" json:\"detail_content\" query:\"detail_content\"`\n}\n\nfunc NewMessageFeedback() *MessageFeedback {\n\treturn &MessageFeedback{}\n}\n\nfunc (p *MessageFeedback) InitDefault() {\n}\n\nfunc (p *MessageFeedback) GetFeedbackType() (v MessageFeedbackType) {\n\treturn p.FeedbackType\n}\n\nfunc (p *MessageFeedback) GetDetailTypes() (v []MessageFeedbackDetailType) {\n\treturn p.DetailTypes\n}\n\nfunc (p *MessageFeedback) GetDetailContent() (v string) {\n\treturn p.DetailContent\n}\n\nvar fieldIDToName_MessageFeedback = map[int16]string{\n\t1: \"feedback_type\",\n\t2: \"detail_types\",\n\t3: \"detail_content\",\n}\n\nfunc (p *MessageFeedback) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageFeedback[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageFeedback) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field MessageFeedbackType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = MessageFeedbackType(v)\n\t}\n\tp.FeedbackType = _field\n\treturn nil\n}\nfunc (p *MessageFeedback) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]MessageFeedbackDetailType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem MessageFeedbackDetailType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = MessageFeedbackDetailType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DetailTypes = _field\n\treturn nil\n}\nfunc (p *MessageFeedback) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DetailContent = _field\n\treturn nil\n}\n\nfunc (p *MessageFeedback) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MessageFeedback\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageFeedback) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"feedback_type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FeedbackType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MessageFeedback) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"detail_types\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I32, len(p.DetailTypes)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DetailTypes {\n\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MessageFeedback) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"detail_content\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DetailContent); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *MessageFeedback) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageFeedback(%+v)\", *p)\n\n}\n\ntype UserLabel struct {\n\tLabelID   string `thrift:\"label_id,1\" form:\"label_id\" json:\"label_id\" query:\"label_id\"`\n\tLabelName string `thrift:\"label_name,2\" form:\"label_name\" json:\"label_name\" query:\"label_name\"`\n\tIconURI   string `thrift:\"icon_uri,3\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tIconURL   string `thrift:\"icon_url,4\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tJumpLink  string `thrift:\"jump_link,5\" form:\"jump_link\" json:\"jump_link\" query:\"jump_link\"`\n}\n\nfunc NewUserLabel() *UserLabel {\n\treturn &UserLabel{}\n}\n\nfunc (p *UserLabel) InitDefault() {\n}\n\nfunc (p *UserLabel) GetLabelID() (v string) {\n\treturn p.LabelID\n}\n\nfunc (p *UserLabel) GetLabelName() (v string) {\n\treturn p.LabelName\n}\n\nfunc (p *UserLabel) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *UserLabel) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *UserLabel) GetJumpLink() (v string) {\n\treturn p.JumpLink\n}\n\nvar fieldIDToName_UserLabel = map[int16]string{\n\t1: \"label_id\",\n\t2: \"label_name\",\n\t3: \"icon_uri\",\n\t4: \"icon_url\",\n\t5: \"jump_link\",\n}\n\nfunc (p *UserLabel) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserLabel[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserLabel) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LabelID = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LabelName = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.JumpLink = _field\n\treturn nil\n}\n\nfunc (p *UserLabel) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserLabel\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserLabel) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LabelID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LabelName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"jump_link\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.JumpLink); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *UserLabel) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserLabel(%+v)\", *p)\n\n}\n\ntype ChatV3ChatDetail struct {\n\tID             string            `thrift:\"ID,1,required\" form:\"id,required\" json:\"id,required\"`\n\tConversationID string            `thrift:\"ConversationID,2,required\" form:\"conversation_id,required\" json:\"conversation_id,required\"`\n\tBotID          string            `thrift:\"BotID,3,required\" form:\"bot_id,required\" json:\"bot_id,required\"`\n\tCreatedAt      *int32            `thrift:\"CreatedAt,4,optional\" form:\"created_at\" json:\"created_at,omitempty\"`\n\tCompletedAt    *int32            `thrift:\"CompletedAt,5,optional\" form:\"completed_at\" json:\"completed_at,omitempty\"`\n\tFailedAt       *int32            `thrift:\"FailedAt,6,optional\" form:\"failed_at\" json:\"failed_at,omitempty\"`\n\tMetaData       map[string]string `thrift:\"MetaData,7,optional\" form:\"meta_data\" json:\"meta_data,omitempty\"`\n\tLastError      *LastError        `thrift:\"LastError,8,optional\" form:\"last_error\" json:\"last_error,omitempty\"`\n\tStatus         string            `thrift:\"Status,9,required\" form:\"status,required\" json:\"status,required\"`\n\tUsage          *Usage            `thrift:\"Usage,10,optional\" form:\"usage\" json:\"usage,omitempty\"`\n\tRequiredAction *RequiredAction   `thrift:\"RequiredAction,11,optional\" form:\"required_action\" json:\"required_action,omitempty\"`\n\tSectionID      *string           `thrift:\"SectionID,12,optional\" form:\"section_id\" json:\"section_id,omitempty\"`\n}\n\nfunc NewChatV3ChatDetail() *ChatV3ChatDetail {\n\treturn &ChatV3ChatDetail{}\n}\n\nfunc (p *ChatV3ChatDetail) InitDefault() {\n}\n\nfunc (p *ChatV3ChatDetail) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *ChatV3ChatDetail) GetConversationID() (v string) {\n\treturn p.ConversationID\n}\n\nfunc (p *ChatV3ChatDetail) GetBotID() (v string) {\n\treturn p.BotID\n}\n\nvar ChatV3ChatDetail_CreatedAt_DEFAULT int32\n\nfunc (p *ChatV3ChatDetail) GetCreatedAt() (v int32) {\n\tif !p.IsSetCreatedAt() {\n\t\treturn ChatV3ChatDetail_CreatedAt_DEFAULT\n\t}\n\treturn *p.CreatedAt\n}\n\nvar ChatV3ChatDetail_CompletedAt_DEFAULT int32\n\nfunc (p *ChatV3ChatDetail) GetCompletedAt() (v int32) {\n\tif !p.IsSetCompletedAt() {\n\t\treturn ChatV3ChatDetail_CompletedAt_DEFAULT\n\t}\n\treturn *p.CompletedAt\n}\n\nvar ChatV3ChatDetail_FailedAt_DEFAULT int32\n\nfunc (p *ChatV3ChatDetail) GetFailedAt() (v int32) {\n\tif !p.IsSetFailedAt() {\n\t\treturn ChatV3ChatDetail_FailedAt_DEFAULT\n\t}\n\treturn *p.FailedAt\n}\n\nvar ChatV3ChatDetail_MetaData_DEFAULT map[string]string\n\nfunc (p *ChatV3ChatDetail) GetMetaData() (v map[string]string) {\n\tif !p.IsSetMetaData() {\n\t\treturn ChatV3ChatDetail_MetaData_DEFAULT\n\t}\n\treturn p.MetaData\n}\n\nvar ChatV3ChatDetail_LastError_DEFAULT *LastError\n\nfunc (p *ChatV3ChatDetail) GetLastError() (v *LastError) {\n\tif !p.IsSetLastError() {\n\t\treturn ChatV3ChatDetail_LastError_DEFAULT\n\t}\n\treturn p.LastError\n}\n\nfunc (p *ChatV3ChatDetail) GetStatus() (v string) {\n\treturn p.Status\n}\n\nvar ChatV3ChatDetail_Usage_DEFAULT *Usage\n\nfunc (p *ChatV3ChatDetail) GetUsage() (v *Usage) {\n\tif !p.IsSetUsage() {\n\t\treturn ChatV3ChatDetail_Usage_DEFAULT\n\t}\n\treturn p.Usage\n}\n\nvar ChatV3ChatDetail_RequiredAction_DEFAULT *RequiredAction\n\nfunc (p *ChatV3ChatDetail) GetRequiredAction() (v *RequiredAction) {\n\tif !p.IsSetRequiredAction() {\n\t\treturn ChatV3ChatDetail_RequiredAction_DEFAULT\n\t}\n\treturn p.RequiredAction\n}\n\nvar ChatV3ChatDetail_SectionID_DEFAULT string\n\nfunc (p *ChatV3ChatDetail) GetSectionID() (v string) {\n\tif !p.IsSetSectionID() {\n\t\treturn ChatV3ChatDetail_SectionID_DEFAULT\n\t}\n\treturn *p.SectionID\n}\n\nvar fieldIDToName_ChatV3ChatDetail = map[int16]string{\n\t1:  \"ID\",\n\t2:  \"ConversationID\",\n\t3:  \"BotID\",\n\t4:  \"CreatedAt\",\n\t5:  \"CompletedAt\",\n\t6:  \"FailedAt\",\n\t7:  \"MetaData\",\n\t8:  \"LastError\",\n\t9:  \"Status\",\n\t10: \"Usage\",\n\t11: \"RequiredAction\",\n\t12: \"SectionID\",\n}\n\nfunc (p *ChatV3ChatDetail) IsSetCreatedAt() bool {\n\treturn p.CreatedAt != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetCompletedAt() bool {\n\treturn p.CompletedAt != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetFailedAt() bool {\n\treturn p.FailedAt != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetMetaData() bool {\n\treturn p.MetaData != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetLastError() bool {\n\treturn p.LastError != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetUsage() bool {\n\treturn p.Usage != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetRequiredAction() bool {\n\treturn p.RequiredAction != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetSectionID() bool {\n\treturn p.SectionID != nil\n}\n\nfunc (p *ChatV3ChatDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\tvar issetConversationID bool = false\n\tvar issetBotID bool = false\n\tvar issetStatus bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetStatus = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetStatus {\n\t\tfieldId = 9\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatV3ChatDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ChatV3ChatDetail[fieldId]))\n}\n\nfunc (p *ChatV3ChatDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CompletedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FailedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField7(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewLastError()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.LastError = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewUsage()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Usage = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField11(iprot thrift.TProtocol) error {\n\t_field := NewRequiredAction()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RequiredAction = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SectionID = _field\n\treturn nil\n}\n\nfunc (p *ChatV3ChatDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatV3ChatDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatV3ChatDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotID\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"CreatedAt\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.CreatedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCompletedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"CompletedAt\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.CompletedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFailedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"FailedAt\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.FailedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMetaData() {\n\t\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.MetaData {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLastError() {\n\t\tif err = oprot.WriteFieldBegin(\"LastError\", thrift.STRUCT, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.LastError.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Status\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Status); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUsage() {\n\t\tif err = oprot.WriteFieldBegin(\"Usage\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Usage.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRequiredAction() {\n\t\tif err = oprot.WriteFieldBegin(\"RequiredAction\", thrift.STRUCT, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RequiredAction.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSectionID() {\n\t\tif err = oprot.WriteFieldBegin(\"SectionID\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SectionID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\n\nfunc (p *ChatV3ChatDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatV3ChatDetail(%+v)\", *p)\n\n}\n\ntype LastError struct {\n\tCode int32  `thrift:\"Code,1,required\" form:\"code,required\" json:\"code,required\"`\n\tMsg  string `thrift:\"Msg,2,required\" form:\"msg,required\" json:\"msg,required\"`\n}\n\nfunc NewLastError() *LastError {\n\treturn &LastError{}\n}\n\nfunc (p *LastError) InitDefault() {\n}\n\nfunc (p *LastError) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *LastError) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_LastError = map[int16]string{\n\t1: \"Code\",\n\t2: \"Msg\",\n}\n\nfunc (p *LastError) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_LastError[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_LastError[fieldId]))\n}\n\nfunc (p *LastError) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *LastError) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *LastError) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"LastError\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *LastError) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *LastError) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *LastError) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"LastError(%+v)\", *p)\n\n}\n\ntype Usage struct {\n\tTokenCount   *int32 `thrift:\"TokenCount,1,optional\" form:\"token_count\" json:\"token_count,omitempty\"`\n\tOutputTokens *int32 `thrift:\"OutputTokens,2,optional\" form:\"output_count\" json:\"output_count,omitempty\"`\n\tInputTokens  *int32 `thrift:\"InputTokens,3,optional\" form:\"input_count\" json:\"input_count,omitempty\"`\n}\n\nfunc NewUsage() *Usage {\n\treturn &Usage{}\n}\n\nfunc (p *Usage) InitDefault() {\n}\n\nvar Usage_TokenCount_DEFAULT int32\n\nfunc (p *Usage) GetTokenCount() (v int32) {\n\tif !p.IsSetTokenCount() {\n\t\treturn Usage_TokenCount_DEFAULT\n\t}\n\treturn *p.TokenCount\n}\n\nvar Usage_OutputTokens_DEFAULT int32\n\nfunc (p *Usage) GetOutputTokens() (v int32) {\n\tif !p.IsSetOutputTokens() {\n\t\treturn Usage_OutputTokens_DEFAULT\n\t}\n\treturn *p.OutputTokens\n}\n\nvar Usage_InputTokens_DEFAULT int32\n\nfunc (p *Usage) GetInputTokens() (v int32) {\n\tif !p.IsSetInputTokens() {\n\t\treturn Usage_InputTokens_DEFAULT\n\t}\n\treturn *p.InputTokens\n}\n\nvar fieldIDToName_Usage = map[int16]string{\n\t1: \"TokenCount\",\n\t2: \"OutputTokens\",\n\t3: \"InputTokens\",\n}\n\nfunc (p *Usage) IsSetTokenCount() bool {\n\treturn p.TokenCount != nil\n}\n\nfunc (p *Usage) IsSetOutputTokens() bool {\n\treturn p.OutputTokens != nil\n}\n\nfunc (p *Usage) IsSetInputTokens() bool {\n\treturn p.InputTokens != nil\n}\n\nfunc (p *Usage) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Usage[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Usage) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TokenCount = _field\n\treturn nil\n}\nfunc (p *Usage) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OutputTokens = _field\n\treturn nil\n}\nfunc (p *Usage) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.InputTokens = _field\n\treturn nil\n}\n\nfunc (p *Usage) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Usage\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Usage) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTokenCount() {\n\t\tif err = oprot.WriteFieldBegin(\"TokenCount\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.TokenCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Usage) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOutputTokens() {\n\t\tif err = oprot.WriteFieldBegin(\"OutputTokens\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.OutputTokens); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Usage) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInputTokens() {\n\t\tif err = oprot.WriteFieldBegin(\"InputTokens\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.InputTokens); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *Usage) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Usage(%+v)\", *p)\n\n}\n\ntype RequiredAction struct {\n\tType              string             `thrift:\"Type,1\" form:\"type\" json:\"type\"`\n\tSubmitToolOutputs *SubmitToolOutputs `thrift:\"SubmitToolOutputs,2\" form:\"submit_tool_outputs\" json:\"submit_tool_outputs\"`\n}\n\nfunc NewRequiredAction() *RequiredAction {\n\treturn &RequiredAction{}\n}\n\nfunc (p *RequiredAction) InitDefault() {\n}\n\nfunc (p *RequiredAction) GetType() (v string) {\n\treturn p.Type\n}\n\nvar RequiredAction_SubmitToolOutputs_DEFAULT *SubmitToolOutputs\n\nfunc (p *RequiredAction) GetSubmitToolOutputs() (v *SubmitToolOutputs) {\n\tif !p.IsSetSubmitToolOutputs() {\n\t\treturn RequiredAction_SubmitToolOutputs_DEFAULT\n\t}\n\treturn p.SubmitToolOutputs\n}\n\nvar fieldIDToName_RequiredAction = map[int16]string{\n\t1: \"Type\",\n\t2: \"SubmitToolOutputs\",\n}\n\nfunc (p *RequiredAction) IsSetSubmitToolOutputs() bool {\n\treturn p.SubmitToolOutputs != nil\n}\n\nfunc (p *RequiredAction) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RequiredAction[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *RequiredAction) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *RequiredAction) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewSubmitToolOutputs()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SubmitToolOutputs = _field\n\treturn nil\n}\n\nfunc (p *RequiredAction) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RequiredAction\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RequiredAction) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RequiredAction) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SubmitToolOutputs\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.SubmitToolOutputs.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *RequiredAction) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RequiredAction(%+v)\", *p)\n\n}\n\ntype SubmitToolOutputs struct {\n\tToolCalls []*InterruptPlugin `thrift:\"ToolCalls,1\" form:\"tool_calls\" json:\"tool_calls\"`\n}\n\nfunc NewSubmitToolOutputs() *SubmitToolOutputs {\n\treturn &SubmitToolOutputs{}\n}\n\nfunc (p *SubmitToolOutputs) InitDefault() {\n}\n\nfunc (p *SubmitToolOutputs) GetToolCalls() (v []*InterruptPlugin) {\n\treturn p.ToolCalls\n}\n\nvar fieldIDToName_SubmitToolOutputs = map[int16]string{\n\t1: \"ToolCalls\",\n}\n\nfunc (p *SubmitToolOutputs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SubmitToolOutputs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SubmitToolOutputs) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*InterruptPlugin, 0, size)\n\tvalues := make([]InterruptPlugin, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ToolCalls = _field\n\treturn nil\n}\n\nfunc (p *SubmitToolOutputs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitToolOutputs\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SubmitToolOutputs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ToolCalls\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ToolCalls)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ToolCalls {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *SubmitToolOutputs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SubmitToolOutputs(%+v)\", *p)\n\n}\n\ntype InterruptPlugin struct {\n\tID          string                `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tType        string                `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n\tFunction    *InterruptFunction    `thrift:\"function,3\" form:\"function\" json:\"function\" query:\"function\"`\n\tRequireInfo *InterruptRequireInfo `thrift:\"require_info,4\" form:\"require_info\" json:\"require_info\" query:\"require_info\"`\n}\n\nfunc NewInterruptPlugin() *InterruptPlugin {\n\treturn &InterruptPlugin{}\n}\n\nfunc (p *InterruptPlugin) InitDefault() {\n}\n\nfunc (p *InterruptPlugin) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *InterruptPlugin) GetType() (v string) {\n\treturn p.Type\n}\n\nvar InterruptPlugin_Function_DEFAULT *InterruptFunction\n\nfunc (p *InterruptPlugin) GetFunction() (v *InterruptFunction) {\n\tif !p.IsSetFunction() {\n\t\treturn InterruptPlugin_Function_DEFAULT\n\t}\n\treturn p.Function\n}\n\nvar InterruptPlugin_RequireInfo_DEFAULT *InterruptRequireInfo\n\nfunc (p *InterruptPlugin) GetRequireInfo() (v *InterruptRequireInfo) {\n\tif !p.IsSetRequireInfo() {\n\t\treturn InterruptPlugin_RequireInfo_DEFAULT\n\t}\n\treturn p.RequireInfo\n}\n\nvar fieldIDToName_InterruptPlugin = map[int16]string{\n\t1: \"id\",\n\t2: \"type\",\n\t3: \"function\",\n\t4: \"require_info\",\n}\n\nfunc (p *InterruptPlugin) IsSetFunction() bool {\n\treturn p.Function != nil\n}\n\nfunc (p *InterruptPlugin) IsSetRequireInfo() bool {\n\treturn p.RequireInfo != nil\n}\n\nfunc (p *InterruptPlugin) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_InterruptPlugin[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *InterruptPlugin) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *InterruptPlugin) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *InterruptPlugin) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewInterruptFunction()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Function = _field\n\treturn nil\n}\nfunc (p *InterruptPlugin) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewInterruptRequireInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RequireInfo = _field\n\treturn nil\n}\n\nfunc (p *InterruptPlugin) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"InterruptPlugin\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *InterruptPlugin) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *InterruptPlugin) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *InterruptPlugin) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"function\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Function.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *InterruptPlugin) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"require_info\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.RequireInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *InterruptPlugin) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"InterruptPlugin(%+v)\", *p)\n\n}\n\ntype InterruptFunction struct {\n\tName      string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tArguments string `thrift:\"arguments,2\" form:\"arguments\" json:\"arguments\" query:\"arguments\"`\n}\n\nfunc NewInterruptFunction() *InterruptFunction {\n\treturn &InterruptFunction{}\n}\n\nfunc (p *InterruptFunction) InitDefault() {\n}\n\nfunc (p *InterruptFunction) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *InterruptFunction) GetArguments() (v string) {\n\treturn p.Arguments\n}\n\nvar fieldIDToName_InterruptFunction = map[int16]string{\n\t1: \"name\",\n\t2: \"arguments\",\n}\n\nfunc (p *InterruptFunction) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_InterruptFunction[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *InterruptFunction) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *InterruptFunction) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Arguments = _field\n\treturn nil\n}\n\nfunc (p *InterruptFunction) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"InterruptFunction\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *InterruptFunction) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *InterruptFunction) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"arguments\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Arguments); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *InterruptFunction) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"InterruptFunction(%+v)\", *p)\n\n}\n\ntype InterruptRequireInfo struct {\n\tInfos []string `thrift:\"infos,1\" form:\"infos\" json:\"infos\" query:\"infos\"`\n}\n\nfunc NewInterruptRequireInfo() *InterruptRequireInfo {\n\treturn &InterruptRequireInfo{}\n}\n\nfunc (p *InterruptRequireInfo) InitDefault() {\n}\n\nfunc (p *InterruptRequireInfo) GetInfos() (v []string) {\n\treturn p.Infos\n}\n\nvar fieldIDToName_InterruptRequireInfo = map[int16]string{\n\t1: \"infos\",\n}\n\nfunc (p *InterruptRequireInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_InterruptRequireInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *InterruptRequireInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Infos = _field\n\treturn nil\n}\n\nfunc (p *InterruptRequireInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"InterruptRequireInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *InterruptRequireInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"infos\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Infos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Infos {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *InterruptRequireInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"InterruptRequireInfo(%+v)\", *p)\n\n}\n\ntype ChatV3MessageDetail struct {\n\tID               string            `thrift:\"ID,1,required\" form:\"id,required\" json:\"id,required\"`\n\tConversationID   string            `thrift:\"ConversationID,2,required\" form:\"conversation_id,required\" json:\"conversation_id,required\"`\n\tBotID            string            `thrift:\"BotID,3,required\" form:\"bot_id,required\" json:\"bot_id,required\"`\n\tRole             string            `thrift:\"Role,4,required\" form:\"role,required\" json:\"role,required\"`\n\tType             string            `thrift:\"Type,5,required\" form:\"type,required\" json:\"type,required\"`\n\tContent          string            `thrift:\"Content,6,required\" form:\"content,required\" json:\"content,required\"`\n\tContentType      string            `thrift:\"ContentType,7,required\" form:\"content_type,required\" json:\"content_type,required\"`\n\tMetaData         map[string]string `thrift:\"MetaData,8,optional\" form:\"meta_data\" json:\"meta_data,omitempty\"`\n\tChatID           string            `thrift:\"ChatID,9,required\" form:\"chat_id,required\" json:\"chat_id,required\"`\n\tSectionID        *string           `thrift:\"SectionID,10,optional\" form:\"section_id\" json:\"section_id,omitempty\"`\n\tCreatedAt        *int64            `thrift:\"CreatedAt,11,optional\" form:\"created_at\" json:\"created_at,omitempty\"`\n\tUpdatedAt        *int64            `thrift:\"UpdatedAt,12,optional\" form:\"updated_at\" json:\"updated_at,omitempty\"`\n\tReasoningContent *string           `thrift:\"ReasoningContent,13,optional\" form:\"reasoning_content\" json:\"reasoning_content,omitempty\"`\n}\n\nfunc NewChatV3MessageDetail() *ChatV3MessageDetail {\n\treturn &ChatV3MessageDetail{}\n}\n\nfunc (p *ChatV3MessageDetail) InitDefault() {\n}\n\nfunc (p *ChatV3MessageDetail) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *ChatV3MessageDetail) GetConversationID() (v string) {\n\treturn p.ConversationID\n}\n\nfunc (p *ChatV3MessageDetail) GetBotID() (v string) {\n\treturn p.BotID\n}\n\nfunc (p *ChatV3MessageDetail) GetRole() (v string) {\n\treturn p.Role\n}\n\nfunc (p *ChatV3MessageDetail) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *ChatV3MessageDetail) GetContent() (v string) {\n\treturn p.Content\n}\n\nfunc (p *ChatV3MessageDetail) GetContentType() (v string) {\n\treturn p.ContentType\n}\n\nvar ChatV3MessageDetail_MetaData_DEFAULT map[string]string\n\nfunc (p *ChatV3MessageDetail) GetMetaData() (v map[string]string) {\n\tif !p.IsSetMetaData() {\n\t\treturn ChatV3MessageDetail_MetaData_DEFAULT\n\t}\n\treturn p.MetaData\n}\n\nfunc (p *ChatV3MessageDetail) GetChatID() (v string) {\n\treturn p.ChatID\n}\n\nvar ChatV3MessageDetail_SectionID_DEFAULT string\n\nfunc (p *ChatV3MessageDetail) GetSectionID() (v string) {\n\tif !p.IsSetSectionID() {\n\t\treturn ChatV3MessageDetail_SectionID_DEFAULT\n\t}\n\treturn *p.SectionID\n}\n\nvar ChatV3MessageDetail_CreatedAt_DEFAULT int64\n\nfunc (p *ChatV3MessageDetail) GetCreatedAt() (v int64) {\n\tif !p.IsSetCreatedAt() {\n\t\treturn ChatV3MessageDetail_CreatedAt_DEFAULT\n\t}\n\treturn *p.CreatedAt\n}\n\nvar ChatV3MessageDetail_UpdatedAt_DEFAULT int64\n\nfunc (p *ChatV3MessageDetail) GetUpdatedAt() (v int64) {\n\tif !p.IsSetUpdatedAt() {\n\t\treturn ChatV3MessageDetail_UpdatedAt_DEFAULT\n\t}\n\treturn *p.UpdatedAt\n}\n\nvar ChatV3MessageDetail_ReasoningContent_DEFAULT string\n\nfunc (p *ChatV3MessageDetail) GetReasoningContent() (v string) {\n\tif !p.IsSetReasoningContent() {\n\t\treturn ChatV3MessageDetail_ReasoningContent_DEFAULT\n\t}\n\treturn *p.ReasoningContent\n}\n\nvar fieldIDToName_ChatV3MessageDetail = map[int16]string{\n\t1:  \"ID\",\n\t2:  \"ConversationID\",\n\t3:  \"BotID\",\n\t4:  \"Role\",\n\t5:  \"Type\",\n\t6:  \"Content\",\n\t7:  \"ContentType\",\n\t8:  \"MetaData\",\n\t9:  \"ChatID\",\n\t10: \"SectionID\",\n\t11: \"CreatedAt\",\n\t12: \"UpdatedAt\",\n\t13: \"ReasoningContent\",\n}\n\nfunc (p *ChatV3MessageDetail) IsSetMetaData() bool {\n\treturn p.MetaData != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetSectionID() bool {\n\treturn p.SectionID != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetCreatedAt() bool {\n\treturn p.CreatedAt != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetUpdatedAt() bool {\n\treturn p.UpdatedAt != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetReasoningContent() bool {\n\treturn p.ReasoningContent != nil\n}\n\nfunc (p *ChatV3MessageDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\tvar issetConversationID bool = false\n\tvar issetBotID bool = false\n\tvar issetRole bool = false\n\tvar issetType bool = false\n\tvar issetContent bool = false\n\tvar issetContentType bool = false\n\tvar issetChatID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetRole = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetContent = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetContentType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetChatID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetRole {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetType {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetContent {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetContentType {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetChatID {\n\t\tfieldId = 9\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatV3MessageDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ChatV3MessageDetail[fieldId]))\n}\n\nfunc (p *ChatV3MessageDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Role = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ContentType = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField8(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ChatID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SectionID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UpdatedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ReasoningContent = _field\n\treturn nil\n}\n\nfunc (p *ChatV3MessageDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatV3MessageDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatV3MessageDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotID\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Role\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Role); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Content\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ContentType\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ContentType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMetaData() {\n\t\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.MetaData {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ChatID\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ChatID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSectionID() {\n\t\tif err = oprot.WriteFieldBegin(\"SectionID\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SectionID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"CreatedAt\", thrift.I64, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreatedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUpdatedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"UpdatedAt\", thrift.I64, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.UpdatedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReasoningContent() {\n\t\tif err = oprot.WriteFieldBegin(\"ReasoningContent\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ReasoningContent); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *ChatV3MessageDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatV3MessageDetail(%+v)\", *p)\n\n}\n\ntype HookInfo struct {\n\t// Pre agent jump hook\n\tPreAgentJumpHook []*HookItem `thrift:\"pre_agent_jump_hook,1,optional\" form:\"pre_agent_jump_hook\" json:\"pre_agent_jump_hook,omitempty\" query:\"pre_agent_jump_hook\"`\n\t// Post agent jump hook\n\tPostAgentJumpHook []*HookItem `thrift:\"post_agent_jump_hook,2,optional\" form:\"post_agent_jump_hook\" json:\"post_agent_jump_hook,omitempty\" query:\"post_agent_jump_hook\"`\n\t// Process hook\n\tFlowHook []*HookItem `thrift:\"flow_hook,3,optional\" form:\"flow_hook\" json:\"flow_hook,omitempty\" query:\"flow_hook\"`\n\t// Atomic power hook\n\tAtomicHook []*HookItem `thrift:\"atomic_hook,4,optional\" form:\"atomic_hook\" json:\"atomic_hook,omitempty\" query:\"atomic_hook\"`\n\t// Model call hook\n\tLlmCallHook []*HookItem `thrift:\"llm_call_hook,5,optional\" form:\"llm_call_hook\" json:\"llm_call_hook,omitempty\" query:\"llm_call_hook\"`\n\t// Conversation result hook\n\tResParsingHook []*HookItem `thrift:\"res_parsing_hook,6,optional\" form:\"res_parsing_hook\" json:\"res_parsing_hook,omitempty\" query:\"res_parsing_hook\"`\n\t// suggesion hook\n\tSuggestionHook []*HookItem `thrift:\"suggestion_hook,7,optional\" form:\"suggestion_hook\" json:\"suggestion_hook,omitempty\" query:\"suggestion_hook\"`\n}\n\nfunc NewHookInfo() *HookInfo {\n\treturn &HookInfo{}\n}\n\nfunc (p *HookInfo) InitDefault() {\n}\n\nvar HookInfo_PreAgentJumpHook_DEFAULT []*HookItem\n\nfunc (p *HookInfo) GetPreAgentJumpHook() (v []*HookItem) {\n\tif !p.IsSetPreAgentJumpHook() {\n\t\treturn HookInfo_PreAgentJumpHook_DEFAULT\n\t}\n\treturn p.PreAgentJumpHook\n}\n\nvar HookInfo_PostAgentJumpHook_DEFAULT []*HookItem\n\nfunc (p *HookInfo) GetPostAgentJumpHook() (v []*HookItem) {\n\tif !p.IsSetPostAgentJumpHook() {\n\t\treturn HookInfo_PostAgentJumpHook_DEFAULT\n\t}\n\treturn p.PostAgentJumpHook\n}\n\nvar HookInfo_FlowHook_DEFAULT []*HookItem\n\nfunc (p *HookInfo) GetFlowHook() (v []*HookItem) {\n\tif !p.IsSetFlowHook() {\n\t\treturn HookInfo_FlowHook_DEFAULT\n\t}\n\treturn p.FlowHook\n}\n\nvar HookInfo_AtomicHook_DEFAULT []*HookItem\n\nfunc (p *HookInfo) GetAtomicHook() (v []*HookItem) {\n\tif !p.IsSetAtomicHook() {\n\t\treturn HookInfo_AtomicHook_DEFAULT\n\t}\n\treturn p.AtomicHook\n}\n\nvar HookInfo_LlmCallHook_DEFAULT []*HookItem\n\nfunc (p *HookInfo) GetLlmCallHook() (v []*HookItem) {\n\tif !p.IsSetLlmCallHook() {\n\t\treturn HookInfo_LlmCallHook_DEFAULT\n\t}\n\treturn p.LlmCallHook\n}\n\nvar HookInfo_ResParsingHook_DEFAULT []*HookItem\n\nfunc (p *HookInfo) GetResParsingHook() (v []*HookItem) {\n\tif !p.IsSetResParsingHook() {\n\t\treturn HookInfo_ResParsingHook_DEFAULT\n\t}\n\treturn p.ResParsingHook\n}\n\nvar HookInfo_SuggestionHook_DEFAULT []*HookItem\n\nfunc (p *HookInfo) GetSuggestionHook() (v []*HookItem) {\n\tif !p.IsSetSuggestionHook() {\n\t\treturn HookInfo_SuggestionHook_DEFAULT\n\t}\n\treturn p.SuggestionHook\n}\n\nvar fieldIDToName_HookInfo = map[int16]string{\n\t1: \"pre_agent_jump_hook\",\n\t2: \"post_agent_jump_hook\",\n\t3: \"flow_hook\",\n\t4: \"atomic_hook\",\n\t5: \"llm_call_hook\",\n\t6: \"res_parsing_hook\",\n\t7: \"suggestion_hook\",\n}\n\nfunc (p *HookInfo) IsSetPreAgentJumpHook() bool {\n\treturn p.PreAgentJumpHook != nil\n}\n\nfunc (p *HookInfo) IsSetPostAgentJumpHook() bool {\n\treturn p.PostAgentJumpHook != nil\n}\n\nfunc (p *HookInfo) IsSetFlowHook() bool {\n\treturn p.FlowHook != nil\n}\n\nfunc (p *HookInfo) IsSetAtomicHook() bool {\n\treturn p.AtomicHook != nil\n}\n\nfunc (p *HookInfo) IsSetLlmCallHook() bool {\n\treturn p.LlmCallHook != nil\n}\n\nfunc (p *HookInfo) IsSetResParsingHook() bool {\n\treturn p.ResParsingHook != nil\n}\n\nfunc (p *HookInfo) IsSetSuggestionHook() bool {\n\treturn p.SuggestionHook != nil\n}\n\nfunc (p *HookInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_HookInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *HookInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*HookItem, 0, size)\n\tvalues := make([]HookItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PreAgentJumpHook = _field\n\treturn nil\n}\nfunc (p *HookInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*HookItem, 0, size)\n\tvalues := make([]HookItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PostAgentJumpHook = _field\n\treturn nil\n}\nfunc (p *HookInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*HookItem, 0, size)\n\tvalues := make([]HookItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FlowHook = _field\n\treturn nil\n}\nfunc (p *HookInfo) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*HookItem, 0, size)\n\tvalues := make([]HookItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.AtomicHook = _field\n\treturn nil\n}\nfunc (p *HookInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*HookItem, 0, size)\n\tvalues := make([]HookItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.LlmCallHook = _field\n\treturn nil\n}\nfunc (p *HookInfo) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*HookItem, 0, size)\n\tvalues := make([]HookItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResParsingHook = _field\n\treturn nil\n}\nfunc (p *HookInfo) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*HookItem, 0, size)\n\tvalues := make([]HookItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestionHook = _field\n\treturn nil\n}\n\nfunc (p *HookInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"HookInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *HookInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPreAgentJumpHook() {\n\t\tif err = oprot.WriteFieldBegin(\"pre_agent_jump_hook\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PreAgentJumpHook)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PreAgentJumpHook {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *HookInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPostAgentJumpHook() {\n\t\tif err = oprot.WriteFieldBegin(\"post_agent_jump_hook\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PostAgentJumpHook)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PostAgentJumpHook {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *HookInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFlowHook() {\n\t\tif err = oprot.WriteFieldBegin(\"flow_hook\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FlowHook)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FlowHook {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *HookInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAtomicHook() {\n\t\tif err = oprot.WriteFieldBegin(\"atomic_hook\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.AtomicHook)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.AtomicHook {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *HookInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLlmCallHook() {\n\t\tif err = oprot.WriteFieldBegin(\"llm_call_hook\", thrift.LIST, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.LlmCallHook)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.LlmCallHook {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *HookInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResParsingHook() {\n\t\tif err = oprot.WriteFieldBegin(\"res_parsing_hook\", thrift.LIST, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResParsingHook)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ResParsingHook {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *HookInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestionHook() {\n\t\tif err = oprot.WriteFieldBegin(\"suggestion_hook\", thrift.LIST, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SuggestionHook)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SuggestionHook {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *HookInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"HookInfo(%+v)\", *p)\n\n}\n\ntype HookItem struct {\n\tURI         *string  `thrift:\"uri,1,optional\" form:\"uri\" json:\"uri,omitempty\" query:\"uri\"`\n\tFilterRules []string `thrift:\"filter_rules,2,optional\" form:\"filter_rules\" json:\"filter_rules,omitempty\" query:\"filter_rules\"`\n\tStrongDep   *bool    `thrift:\"strong_dep,3,optional\" form:\"strong_dep\" json:\"strong_dep,omitempty\" query:\"strong_dep\"`\n\tTimeoutMs   *int64   `thrift:\"timeout_ms,4,optional\" form:\"timeout_ms\" json:\"timeout_ms,omitempty\" query:\"timeout_ms\"`\n}\n\nfunc NewHookItem() *HookItem {\n\treturn &HookItem{}\n}\n\nfunc (p *HookItem) InitDefault() {\n}\n\nvar HookItem_URI_DEFAULT string\n\nfunc (p *HookItem) GetURI() (v string) {\n\tif !p.IsSetURI() {\n\t\treturn HookItem_URI_DEFAULT\n\t}\n\treturn *p.URI\n}\n\nvar HookItem_FilterRules_DEFAULT []string\n\nfunc (p *HookItem) GetFilterRules() (v []string) {\n\tif !p.IsSetFilterRules() {\n\t\treturn HookItem_FilterRules_DEFAULT\n\t}\n\treturn p.FilterRules\n}\n\nvar HookItem_StrongDep_DEFAULT bool\n\nfunc (p *HookItem) GetStrongDep() (v bool) {\n\tif !p.IsSetStrongDep() {\n\t\treturn HookItem_StrongDep_DEFAULT\n\t}\n\treturn *p.StrongDep\n}\n\nvar HookItem_TimeoutMs_DEFAULT int64\n\nfunc (p *HookItem) GetTimeoutMs() (v int64) {\n\tif !p.IsSetTimeoutMs() {\n\t\treturn HookItem_TimeoutMs_DEFAULT\n\t}\n\treturn *p.TimeoutMs\n}\n\nvar fieldIDToName_HookItem = map[int16]string{\n\t1: \"uri\",\n\t2: \"filter_rules\",\n\t3: \"strong_dep\",\n\t4: \"timeout_ms\",\n}\n\nfunc (p *HookItem) IsSetURI() bool {\n\treturn p.URI != nil\n}\n\nfunc (p *HookItem) IsSetFilterRules() bool {\n\treturn p.FilterRules != nil\n}\n\nfunc (p *HookItem) IsSetStrongDep() bool {\n\treturn p.StrongDep != nil\n}\n\nfunc (p *HookItem) IsSetTimeoutMs() bool {\n\treturn p.TimeoutMs != nil\n}\n\nfunc (p *HookItem) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_HookItem[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *HookItem) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.URI = _field\n\treturn nil\n}\nfunc (p *HookItem) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FilterRules = _field\n\treturn nil\n}\nfunc (p *HookItem) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.StrongDep = _field\n\treturn nil\n}\nfunc (p *HookItem) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TimeoutMs = _field\n\treturn nil\n}\n\nfunc (p *HookItem) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"HookItem\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *HookItem) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetURI() {\n\t\tif err = oprot.WriteFieldBegin(\"uri\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.URI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *HookItem) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFilterRules() {\n\t\tif err = oprot.WriteFieldBegin(\"filter_rules\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.FilterRules)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FilterRules {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *HookItem) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStrongDep() {\n\t\tif err = oprot.WriteFieldBegin(\"strong_dep\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.StrongDep); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *HookItem) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTimeoutMs() {\n\t\tif err = oprot.WriteFieldBegin(\"timeout_ms\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.TimeoutMs); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *HookItem) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"HookItem(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/app/bot_open_api/bot_open_api.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage bot_open_api\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype OauthAuthorizationCodeReq struct {\n\tCode  string `thrift:\"code,1\" json:\"code\" query:\"code\"`\n\tState string `thrift:\"state,2\" json:\"state\" query:\"state\"`\n}\n\nfunc NewOauthAuthorizationCodeReq() *OauthAuthorizationCodeReq {\n\treturn &OauthAuthorizationCodeReq{}\n}\n\nfunc (p *OauthAuthorizationCodeReq) InitDefault() {\n}\n\nfunc (p *OauthAuthorizationCodeReq) GetCode() (v string) {\n\treturn p.Code\n}\n\nfunc (p *OauthAuthorizationCodeReq) GetState() (v string) {\n\treturn p.State\n}\n\nvar fieldIDToName_OauthAuthorizationCodeReq = map[int16]string{\n\t1: \"code\",\n\t2: \"state\",\n}\n\nfunc (p *OauthAuthorizationCodeReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OauthAuthorizationCodeReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OauthAuthorizationCodeReq) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *OauthAuthorizationCodeReq) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.State = _field\n\treturn nil\n}\n\nfunc (p *OauthAuthorizationCodeReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OauthAuthorizationCodeReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OauthAuthorizationCodeReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OauthAuthorizationCodeReq) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"state\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.State); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *OauthAuthorizationCodeReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OauthAuthorizationCodeReq(%+v)\", *p)\n\n}\n\ntype OauthAuthorizationCodeResp struct {\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewOauthAuthorizationCodeResp() *OauthAuthorizationCodeResp {\n\treturn &OauthAuthorizationCodeResp{}\n}\n\nfunc (p *OauthAuthorizationCodeResp) InitDefault() {\n}\n\nvar OauthAuthorizationCodeResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *OauthAuthorizationCodeResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn OauthAuthorizationCodeResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_OauthAuthorizationCodeResp = map[int16]string{\n\t255: \"BaseResp\",\n}\n\nfunc (p *OauthAuthorizationCodeResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *OauthAuthorizationCodeResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OauthAuthorizationCodeResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_OauthAuthorizationCodeResp[fieldId]))\n}\n\nfunc (p *OauthAuthorizationCodeResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *OauthAuthorizationCodeResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OauthAuthorizationCodeResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OauthAuthorizationCodeResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *OauthAuthorizationCodeResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OauthAuthorizationCodeResp(%+v)\", *p)\n\n}\n\ntype GetBotOnlineInfoReq struct {\n\t// botId\n\tBotID int64 `thrift:\"bot_id,1,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\t// Keep it first, don't expose it, and don't use the field\n\tConnectorID *string `thrift:\"connector_id,2,optional\" form:\"connector_id\" json:\"connector_id,omitempty\" query:\"connector_id\"`\n\t// bot version, get the latest version if you don't pass it on.\n\tVersion *string `thrift:\"version,3,optional\" form:\"version\" json:\"version,omitempty\" query:\"version\"`\n}\n\nfunc NewGetBotOnlineInfoReq() *GetBotOnlineInfoReq {\n\treturn &GetBotOnlineInfoReq{}\n}\n\nfunc (p *GetBotOnlineInfoReq) InitDefault() {\n}\n\nfunc (p *GetBotOnlineInfoReq) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar GetBotOnlineInfoReq_ConnectorID_DEFAULT string\n\nfunc (p *GetBotOnlineInfoReq) GetConnectorID() (v string) {\n\tif !p.IsSetConnectorID() {\n\t\treturn GetBotOnlineInfoReq_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar GetBotOnlineInfoReq_Version_DEFAULT string\n\nfunc (p *GetBotOnlineInfoReq) GetVersion() (v string) {\n\tif !p.IsSetVersion() {\n\t\treturn GetBotOnlineInfoReq_Version_DEFAULT\n\t}\n\treturn *p.Version\n}\n\nvar fieldIDToName_GetBotOnlineInfoReq = map[int16]string{\n\t1: \"bot_id\",\n\t2: \"connector_id\",\n\t3: \"version\",\n}\n\nfunc (p *GetBotOnlineInfoReq) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *GetBotOnlineInfoReq) IsSetVersion() bool {\n\treturn p.Version != nil\n}\n\nfunc (p *GetBotOnlineInfoReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetBotOnlineInfoReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetBotOnlineInfoReq[fieldId]))\n}\n\nfunc (p *GetBotOnlineInfoReq) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetBotOnlineInfoReq) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *GetBotOnlineInfoReq) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Version = _field\n\treturn nil\n}\n\nfunc (p *GetBotOnlineInfoReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotOnlineInfoReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetBotOnlineInfoReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetBotOnlineInfoReq) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetBotOnlineInfoReq) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Version); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *GetBotOnlineInfoReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetBotOnlineInfoReq(%+v)\", *p)\n\n}\n\ntype UploadFileOpenRequest struct {\n\t// file type\n\tContentType string `thrift:\"ContentType,1,required\" header:\"Content-Type,required\" json:\"ContentType,required\"`\n\t// binary data\n\tData []byte     `thrift:\"Data,2,required\" json:\"Data,required\" raw_body:\",required\"`\n\tBase *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewUploadFileOpenRequest() *UploadFileOpenRequest {\n\treturn &UploadFileOpenRequest{}\n}\n\nfunc (p *UploadFileOpenRequest) InitDefault() {\n}\n\nfunc (p *UploadFileOpenRequest) GetContentType() (v string) {\n\treturn p.ContentType\n}\n\nfunc (p *UploadFileOpenRequest) GetData() (v []byte) {\n\treturn p.Data\n}\n\nvar UploadFileOpenRequest_Base_DEFAULT *base.Base\n\nfunc (p *UploadFileOpenRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UploadFileOpenRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UploadFileOpenRequest = map[int16]string{\n\t1:   \"ContentType\",\n\t2:   \"Data\",\n\t255: \"Base\",\n}\n\nfunc (p *UploadFileOpenRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UploadFileOpenRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetContentType bool = false\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetContentType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetContentType {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadFileOpenRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UploadFileOpenRequest[fieldId]))\n}\n\nfunc (p *UploadFileOpenRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ContentType = _field\n\treturn nil\n}\nfunc (p *UploadFileOpenRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field []byte\n\tif v, err := iprot.ReadBinary(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = []byte(v)\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *UploadFileOpenRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UploadFileOpenRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadFileOpenRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadFileOpenRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ContentType\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ContentType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UploadFileOpenRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBinary([]byte(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UploadFileOpenRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UploadFileOpenRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadFileOpenRequest(%+v)\", *p)\n\n}\n\ntype UploadFileOpenResponse struct {\n\tFile     *File          `thrift:\"File,1,optional\" form:\"data\" json:\"data,omitempty\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewUploadFileOpenResponse() *UploadFileOpenResponse {\n\treturn &UploadFileOpenResponse{}\n}\n\nfunc (p *UploadFileOpenResponse) InitDefault() {\n}\n\nvar UploadFileOpenResponse_File_DEFAULT *File\n\nfunc (p *UploadFileOpenResponse) GetFile() (v *File) {\n\tif !p.IsSetFile() {\n\t\treturn UploadFileOpenResponse_File_DEFAULT\n\t}\n\treturn p.File\n}\n\nfunc (p *UploadFileOpenResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UploadFileOpenResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UploadFileOpenResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UploadFileOpenResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UploadFileOpenResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UploadFileOpenResponse = map[int16]string{\n\t1:   \"File\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UploadFileOpenResponse) IsSetFile() bool {\n\treturn p.File != nil\n}\n\nfunc (p *UploadFileOpenResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UploadFileOpenResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadFileOpenResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UploadFileOpenResponse[fieldId]))\n}\n\nfunc (p *UploadFileOpenResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewFile()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.File = _field\n\treturn nil\n}\nfunc (p *UploadFileOpenResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UploadFileOpenResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UploadFileOpenResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UploadFileOpenResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadFileOpenResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadFileOpenResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFile() {\n\t\tif err = oprot.WriteFieldBegin(\"File\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.File.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UploadFileOpenResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UploadFileOpenResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UploadFileOpenResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UploadFileOpenResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadFileOpenResponse(%+v)\", *p)\n\n}\n\ntype File struct {\n\t// URI\n\tURI string `thrift:\"URI,1\" form:\"uri\" json:\"uri\"`\n\t// bytes\n\tBytes int64 `thrift:\"Bytes,2\" form:\"bytes\" json:\"bytes\"`\n\t// create at\n\tCreatedAt int64 `thrift:\"CreatedAt,3\" form:\"CreatedAt\" json:\"CreatedAt\" query:\"CreatedAt\"`\n\t// file name\n\tFileName string `thrift:\"FileName,4\" form:\"file_name\" json:\"file_name\"`\n\tURL      string `thrift:\"URL,5\" form:\"url\" json:\"url\"`\n\tID       string `thrift:\"ID,6\" form:\"id\" json:\"id\"`\n}\n\nfunc NewFile() *File {\n\treturn &File{}\n}\n\nfunc (p *File) InitDefault() {\n}\n\nfunc (p *File) GetURI() (v string) {\n\treturn p.URI\n}\n\nfunc (p *File) GetBytes() (v int64) {\n\treturn p.Bytes\n}\n\nfunc (p *File) GetCreatedAt() (v int64) {\n\treturn p.CreatedAt\n}\n\nfunc (p *File) GetFileName() (v string) {\n\treturn p.FileName\n}\n\nfunc (p *File) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *File) GetID() (v string) {\n\treturn p.ID\n}\n\nvar fieldIDToName_File = map[int16]string{\n\t1: \"URI\",\n\t2: \"Bytes\",\n\t3: \"CreatedAt\",\n\t4: \"FileName\",\n\t5: \"URL\",\n\t6: \"ID\",\n}\n\nfunc (p *File) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_File[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *File) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URI = _field\n\treturn nil\n}\nfunc (p *File) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Bytes = _field\n\treturn nil\n}\nfunc (p *File) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatedAt = _field\n\treturn nil\n}\nfunc (p *File) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileName = _field\n\treturn nil\n}\nfunc (p *File) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *File) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\n\nfunc (p *File) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"File\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *File) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"URI\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *File) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Bytes\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Bytes); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *File) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CreatedAt\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *File) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"FileName\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FileName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *File) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"URL\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *File) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *File) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"File(%+v)\", *p)\n\n}\n\n// resp\ntype GetBotOnlineInfoResp struct {\n\tCode int32                      `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string                     `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tData *bot_common.OpenAPIBotInfo `thrift:\"data,3,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n}\n\nfunc NewGetBotOnlineInfoResp() *GetBotOnlineInfoResp {\n\treturn &GetBotOnlineInfoResp{}\n}\n\nfunc (p *GetBotOnlineInfoResp) InitDefault() {\n}\n\nfunc (p *GetBotOnlineInfoResp) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetBotOnlineInfoResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetBotOnlineInfoResp_Data_DEFAULT *bot_common.OpenAPIBotInfo\n\nfunc (p *GetBotOnlineInfoResp) GetData() (v *bot_common.OpenAPIBotInfo) {\n\tif !p.IsSetData() {\n\t\treturn GetBotOnlineInfoResp_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_GetBotOnlineInfoResp = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *GetBotOnlineInfoResp) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetBotOnlineInfoResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetBotOnlineInfoResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetBotOnlineInfoResp[fieldId]))\n}\n\nfunc (p *GetBotOnlineInfoResp) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetBotOnlineInfoResp) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetBotOnlineInfoResp) ReadField3(iprot thrift.TProtocol) error {\n\t_field := bot_common.NewOpenAPIBotInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *GetBotOnlineInfoResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotOnlineInfoResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetBotOnlineInfoResp) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetBotOnlineInfoResp) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetBotOnlineInfoResp) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *GetBotOnlineInfoResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetBotOnlineInfoResp(%+v)\", *p)\n\n}\n\ntype WorkspacePermission struct {\n\tWorkspaceIDList []string `thrift:\"workspace_id_list,1\" form:\"workspace_id_list\" json:\"workspace_id_list\" query:\"workspace_id_list\"`\n\tPermissionList  []string `thrift:\"permission_list,2\" form:\"permission_list\" json:\"permission_list\" query:\"permission_list\"`\n}\n\nfunc NewWorkspacePermission() *WorkspacePermission {\n\treturn &WorkspacePermission{}\n}\n\nfunc (p *WorkspacePermission) InitDefault() {\n}\n\nfunc (p *WorkspacePermission) GetWorkspaceIDList() (v []string) {\n\treturn p.WorkspaceIDList\n}\n\nfunc (p *WorkspacePermission) GetPermissionList() (v []string) {\n\treturn p.PermissionList\n}\n\nvar fieldIDToName_WorkspacePermission = map[int16]string{\n\t1: \"workspace_id_list\",\n\t2: \"permission_list\",\n}\n\nfunc (p *WorkspacePermission) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkspacePermission[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkspacePermission) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkspaceIDList = _field\n\treturn nil\n}\nfunc (p *WorkspacePermission) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PermissionList = _field\n\treturn nil\n}\n\nfunc (p *WorkspacePermission) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkspacePermission\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkspacePermission) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workspace_id_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.WorkspaceIDList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.WorkspaceIDList {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkspacePermission) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"permission_list\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.PermissionList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PermissionList {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *WorkspacePermission) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkspacePermission(%+v)\", *p)\n\n}\n\ntype AccountPermission struct {\n\tPermissionList []string `thrift:\"permission_list,1\" form:\"permission_list\" json:\"permission_list\" query:\"permission_list\"`\n}\n\nfunc NewAccountPermission() *AccountPermission {\n\treturn &AccountPermission{}\n}\n\nfunc (p *AccountPermission) InitDefault() {\n}\n\nfunc (p *AccountPermission) GetPermissionList() (v []string) {\n\treturn p.PermissionList\n}\n\nvar fieldIDToName_AccountPermission = map[int16]string{\n\t1: \"permission_list\",\n}\n\nfunc (p *AccountPermission) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AccountPermission[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AccountPermission) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PermissionList = _field\n\treturn nil\n}\n\nfunc (p *AccountPermission) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AccountPermission\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AccountPermission) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"permission_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.PermissionList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PermissionList {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *AccountPermission) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AccountPermission(%+v)\", *p)\n\n}\n\ntype Scope struct {\n\tWorkspacePermission *WorkspacePermission `thrift:\"workspace_permission,1\" form:\"workspace_permission\" json:\"workspace_permission\" query:\"workspace_permission\"`\n\tAccountPermission   *AccountPermission   `thrift:\"account_permission,2\" form:\"account_permission\" json:\"account_permission\" query:\"account_permission\"`\n}\n\nfunc NewScope() *Scope {\n\treturn &Scope{}\n}\n\nfunc (p *Scope) InitDefault() {\n}\n\nvar Scope_WorkspacePermission_DEFAULT *WorkspacePermission\n\nfunc (p *Scope) GetWorkspacePermission() (v *WorkspacePermission) {\n\tif !p.IsSetWorkspacePermission() {\n\t\treturn Scope_WorkspacePermission_DEFAULT\n\t}\n\treturn p.WorkspacePermission\n}\n\nvar Scope_AccountPermission_DEFAULT *AccountPermission\n\nfunc (p *Scope) GetAccountPermission() (v *AccountPermission) {\n\tif !p.IsSetAccountPermission() {\n\t\treturn Scope_AccountPermission_DEFAULT\n\t}\n\treturn p.AccountPermission\n}\n\nvar fieldIDToName_Scope = map[int16]string{\n\t1: \"workspace_permission\",\n\t2: \"account_permission\",\n}\n\nfunc (p *Scope) IsSetWorkspacePermission() bool {\n\treturn p.WorkspacePermission != nil\n}\n\nfunc (p *Scope) IsSetAccountPermission() bool {\n\treturn p.AccountPermission != nil\n}\n\nfunc (p *Scope) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Scope[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Scope) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkspacePermission()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.WorkspacePermission = _field\n\treturn nil\n}\nfunc (p *Scope) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewAccountPermission()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AccountPermission = _field\n\treturn nil\n}\n\nfunc (p *Scope) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Scope\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Scope) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workspace_permission\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.WorkspacePermission.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Scope) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"account_permission\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.AccountPermission.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *Scope) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Scope(%+v)\", *p)\n\n}\n\ntype ImpersonateCozeUserRequest struct {\n\tDurationSeconds int64  `thrift:\"duration_seconds,1\" form:\"duration_seconds\" json:\"duration_seconds\" query:\"duration_seconds\"`\n\tScope           *Scope `thrift:\"scope,2\" form:\"scope\" json:\"scope\" query:\"scope\"`\n}\n\nfunc NewImpersonateCozeUserRequest() *ImpersonateCozeUserRequest {\n\treturn &ImpersonateCozeUserRequest{}\n}\n\nfunc (p *ImpersonateCozeUserRequest) InitDefault() {\n}\n\nfunc (p *ImpersonateCozeUserRequest) GetDurationSeconds() (v int64) {\n\treturn p.DurationSeconds\n}\n\nvar ImpersonateCozeUserRequest_Scope_DEFAULT *Scope\n\nfunc (p *ImpersonateCozeUserRequest) GetScope() (v *Scope) {\n\tif !p.IsSetScope() {\n\t\treturn ImpersonateCozeUserRequest_Scope_DEFAULT\n\t}\n\treturn p.Scope\n}\n\nvar fieldIDToName_ImpersonateCozeUserRequest = map[int16]string{\n\t1: \"duration_seconds\",\n\t2: \"scope\",\n}\n\nfunc (p *ImpersonateCozeUserRequest) IsSetScope() bool {\n\treturn p.Scope != nil\n}\n\nfunc (p *ImpersonateCozeUserRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ImpersonateCozeUserRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ImpersonateCozeUserRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DurationSeconds = _field\n\treturn nil\n}\nfunc (p *ImpersonateCozeUserRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewScope()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Scope = _field\n\treturn nil\n}\n\nfunc (p *ImpersonateCozeUserRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ImpersonateCozeUserRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ImpersonateCozeUserRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"duration_seconds\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DurationSeconds); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ImpersonateCozeUserRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"scope\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Scope.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ImpersonateCozeUserRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ImpersonateCozeUserRequest(%+v)\", *p)\n\n}\n\ntype ImpersonateCozeUserResponse struct {\n\tCode int32                            `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string                           `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tData *ImpersonateCozeUserResponseData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n}\n\nfunc NewImpersonateCozeUserResponse() *ImpersonateCozeUserResponse {\n\treturn &ImpersonateCozeUserResponse{}\n}\n\nfunc (p *ImpersonateCozeUserResponse) InitDefault() {\n}\n\nfunc (p *ImpersonateCozeUserResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *ImpersonateCozeUserResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ImpersonateCozeUserResponse_Data_DEFAULT *ImpersonateCozeUserResponseData\n\nfunc (p *ImpersonateCozeUserResponse) GetData() (v *ImpersonateCozeUserResponseData) {\n\tif !p.IsSetData() {\n\t\treturn ImpersonateCozeUserResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_ImpersonateCozeUserResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *ImpersonateCozeUserResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *ImpersonateCozeUserResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ImpersonateCozeUserResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ImpersonateCozeUserResponse[fieldId]))\n}\n\nfunc (p *ImpersonateCozeUserResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ImpersonateCozeUserResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ImpersonateCozeUserResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewImpersonateCozeUserResponseData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *ImpersonateCozeUserResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ImpersonateCozeUserResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ImpersonateCozeUserResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ImpersonateCozeUserResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ImpersonateCozeUserResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ImpersonateCozeUserResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ImpersonateCozeUserResponse(%+v)\", *p)\n\n}\n\ntype ImpersonateCozeUserResponseData struct {\n\tAccessToken string `thrift:\"access_token,1,required\" form:\"access_token,required\" json:\"access_token,required\" query:\"access_token,required\"`\n\tExpiresIn   int64  `thrift:\"expires_in,2,required\" form:\"expires_in,required\" json:\"expires_in,required\" query:\"expires_in,required\"`\n\tTokenType   string `thrift:\"token_type,3,required\" form:\"token_type,required\" json:\"token_type,required\" query:\"token_type,required\"`\n}\n\nfunc NewImpersonateCozeUserResponseData() *ImpersonateCozeUserResponseData {\n\treturn &ImpersonateCozeUserResponseData{}\n}\n\nfunc (p *ImpersonateCozeUserResponseData) InitDefault() {\n}\n\nfunc (p *ImpersonateCozeUserResponseData) GetAccessToken() (v string) {\n\treturn p.AccessToken\n}\n\nfunc (p *ImpersonateCozeUserResponseData) GetExpiresIn() (v int64) {\n\treturn p.ExpiresIn\n}\n\nfunc (p *ImpersonateCozeUserResponseData) GetTokenType() (v string) {\n\treturn p.TokenType\n}\n\nvar fieldIDToName_ImpersonateCozeUserResponseData = map[int16]string{\n\t1: \"access_token\",\n\t2: \"expires_in\",\n\t3: \"token_type\",\n}\n\nfunc (p *ImpersonateCozeUserResponseData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetAccessToken bool = false\n\tvar issetExpiresIn bool = false\n\tvar issetTokenType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetAccessToken = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetExpiresIn = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTokenType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetAccessToken {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetExpiresIn {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTokenType {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ImpersonateCozeUserResponseData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ImpersonateCozeUserResponseData[fieldId]))\n}\n\nfunc (p *ImpersonateCozeUserResponseData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AccessToken = _field\n\treturn nil\n}\nfunc (p *ImpersonateCozeUserResponseData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExpiresIn = _field\n\treturn nil\n}\nfunc (p *ImpersonateCozeUserResponseData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TokenType = _field\n\treturn nil\n}\n\nfunc (p *ImpersonateCozeUserResponseData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ImpersonateCozeUserResponseData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ImpersonateCozeUserResponseData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"access_token\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AccessToken); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ImpersonateCozeUserResponseData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"expires_in\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ExpiresIn); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ImpersonateCozeUserResponseData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token_type\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TokenType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ImpersonateCozeUserResponseData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ImpersonateCozeUserResponseData(%+v)\", *p)\n\n}\n\ntype OpenGetBotInfoRequest struct {\n\tBotID       int64      `thrift:\"bot_id,1\" json:\"bot_id,string\" path:\"bot_id\"`\n\tIsPublished *bool      `thrift:\"is_published,2,optional\" json:\"is_published,omitempty\" query:\"is_published\"`\n\tConnectorID *int64     `thrift:\"connector_id,3,optional\" json:\"connector_id,string,omitempty\" query:\"connector_id\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewOpenGetBotInfoRequest() *OpenGetBotInfoRequest {\n\treturn &OpenGetBotInfoRequest{}\n}\n\nfunc (p *OpenGetBotInfoRequest) InitDefault() {\n}\n\nfunc (p *OpenGetBotInfoRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar OpenGetBotInfoRequest_IsPublished_DEFAULT bool\n\nfunc (p *OpenGetBotInfoRequest) GetIsPublished() (v bool) {\n\tif !p.IsSetIsPublished() {\n\t\treturn OpenGetBotInfoRequest_IsPublished_DEFAULT\n\t}\n\treturn *p.IsPublished\n}\n\nvar OpenGetBotInfoRequest_ConnectorID_DEFAULT int64\n\nfunc (p *OpenGetBotInfoRequest) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn OpenGetBotInfoRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar OpenGetBotInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *OpenGetBotInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn OpenGetBotInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_OpenGetBotInfoRequest = map[int16]string{\n\t1:   \"bot_id\",\n\t2:   \"is_published\",\n\t3:   \"connector_id\",\n\t255: \"Base\",\n}\n\nfunc (p *OpenGetBotInfoRequest) IsSetIsPublished() bool {\n\treturn p.IsPublished != nil\n}\n\nfunc (p *OpenGetBotInfoRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *OpenGetBotInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *OpenGetBotInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenGetBotInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenGetBotInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *OpenGetBotInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsPublished = _field\n\treturn nil\n}\nfunc (p *OpenGetBotInfoRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *OpenGetBotInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *OpenGetBotInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenGetBotInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenGetBotInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OpenGetBotInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsPublished() {\n\t\tif err = oprot.WriteFieldBegin(\"is_published\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsPublished); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OpenGetBotInfoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *OpenGetBotInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *OpenGetBotInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenGetBotInfoRequest(%+v)\", *p)\n\n}\n\ntype OpenGetBotInfoResponse struct {\n\tData     *bot_common.OpenAPIBotInfo `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                      `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                     `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp             `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewOpenGetBotInfoResponse() *OpenGetBotInfoResponse {\n\treturn &OpenGetBotInfoResponse{}\n}\n\nfunc (p *OpenGetBotInfoResponse) InitDefault() {\n}\n\nvar OpenGetBotInfoResponse_Data_DEFAULT *bot_common.OpenAPIBotInfo\n\nfunc (p *OpenGetBotInfoResponse) GetData() (v *bot_common.OpenAPIBotInfo) {\n\tif !p.IsSetData() {\n\t\treturn OpenGetBotInfoResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *OpenGetBotInfoResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *OpenGetBotInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar OpenGetBotInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *OpenGetBotInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn OpenGetBotInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_OpenGetBotInfoResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *OpenGetBotInfoResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *OpenGetBotInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *OpenGetBotInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenGetBotInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenGetBotInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := bot_common.NewOpenAPIBotInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *OpenGetBotInfoResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *OpenGetBotInfoResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *OpenGetBotInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *OpenGetBotInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenGetBotInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenGetBotInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OpenGetBotInfoResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *OpenGetBotInfoResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *OpenGetBotInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *OpenGetBotInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenGetBotInfoResponse(%+v)\", *p)\n\n}\n\ntype BotOpenApiService interface {\n\tOauthAuthorizationCode(ctx context.Context, request *OauthAuthorizationCodeReq) (r *OauthAuthorizationCodeResp, err error)\n\t//openapi\n\tGetBotOnlineInfo(ctx context.Context, request *GetBotOnlineInfoReq) (r *GetBotOnlineInfoResp, err error)\n\n\tOpenGetBotInfo(ctx context.Context, request *OpenGetBotInfoRequest) (r *OpenGetBotInfoResponse, err error)\n\n\tImpersonateCozeUser(ctx context.Context, request *ImpersonateCozeUserRequest) (r *ImpersonateCozeUserResponse, err error)\n\t// File related OpenAPI\n\tUploadFileOpen(ctx context.Context, request *UploadFileOpenRequest) (r *UploadFileOpenResponse, err error)\n}\n\ntype BotOpenApiServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewBotOpenApiServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *BotOpenApiServiceClient {\n\treturn &BotOpenApiServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewBotOpenApiServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *BotOpenApiServiceClient {\n\treturn &BotOpenApiServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewBotOpenApiServiceClient(c thrift.TClient) *BotOpenApiServiceClient {\n\treturn &BotOpenApiServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *BotOpenApiServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *BotOpenApiServiceClient) OauthAuthorizationCode(ctx context.Context, request *OauthAuthorizationCodeReq) (r *OauthAuthorizationCodeResp, err error) {\n\tvar _args BotOpenApiServiceOauthAuthorizationCodeArgs\n\t_args.Request = request\n\tvar _result BotOpenApiServiceOauthAuthorizationCodeResult\n\tif err = p.Client_().Call(ctx, \"OauthAuthorizationCode\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *BotOpenApiServiceClient) GetBotOnlineInfo(ctx context.Context, request *GetBotOnlineInfoReq) (r *GetBotOnlineInfoResp, err error) {\n\tvar _args BotOpenApiServiceGetBotOnlineInfoArgs\n\t_args.Request = request\n\tvar _result BotOpenApiServiceGetBotOnlineInfoResult\n\tif err = p.Client_().Call(ctx, \"GetBotOnlineInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *BotOpenApiServiceClient) OpenGetBotInfo(ctx context.Context, request *OpenGetBotInfoRequest) (r *OpenGetBotInfoResponse, err error) {\n\tvar _args BotOpenApiServiceOpenGetBotInfoArgs\n\t_args.Request = request\n\tvar _result BotOpenApiServiceOpenGetBotInfoResult\n\tif err = p.Client_().Call(ctx, \"OpenGetBotInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *BotOpenApiServiceClient) ImpersonateCozeUser(ctx context.Context, request *ImpersonateCozeUserRequest) (r *ImpersonateCozeUserResponse, err error) {\n\tvar _args BotOpenApiServiceImpersonateCozeUserArgs\n\t_args.Request = request\n\tvar _result BotOpenApiServiceImpersonateCozeUserResult\n\tif err = p.Client_().Call(ctx, \"ImpersonateCozeUser\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *BotOpenApiServiceClient) UploadFileOpen(ctx context.Context, request *UploadFileOpenRequest) (r *UploadFileOpenResponse, err error) {\n\tvar _args BotOpenApiServiceUploadFileOpenArgs\n\t_args.Request = request\n\tvar _result BotOpenApiServiceUploadFileOpenResult\n\tif err = p.Client_().Call(ctx, \"UploadFileOpen\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype BotOpenApiServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      BotOpenApiService\n}\n\nfunc (p *BotOpenApiServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *BotOpenApiServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *BotOpenApiServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewBotOpenApiServiceProcessor(handler BotOpenApiService) *BotOpenApiServiceProcessor {\n\tself := &BotOpenApiServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"OauthAuthorizationCode\", &botOpenApiServiceProcessorOauthAuthorizationCode{handler: handler})\n\tself.AddToProcessorMap(\"GetBotOnlineInfo\", &botOpenApiServiceProcessorGetBotOnlineInfo{handler: handler})\n\tself.AddToProcessorMap(\"OpenGetBotInfo\", &botOpenApiServiceProcessorOpenGetBotInfo{handler: handler})\n\tself.AddToProcessorMap(\"ImpersonateCozeUser\", &botOpenApiServiceProcessorImpersonateCozeUser{handler: handler})\n\tself.AddToProcessorMap(\"UploadFileOpen\", &botOpenApiServiceProcessorUploadFileOpen{handler: handler})\n\treturn self\n}\nfunc (p *BotOpenApiServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype botOpenApiServiceProcessorOauthAuthorizationCode struct {\n\thandler BotOpenApiService\n}\n\nfunc (p *botOpenApiServiceProcessorOauthAuthorizationCode) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := BotOpenApiServiceOauthAuthorizationCodeArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"OauthAuthorizationCode\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := BotOpenApiServiceOauthAuthorizationCodeResult{}\n\tvar retval *OauthAuthorizationCodeResp\n\tif retval, err2 = p.handler.OauthAuthorizationCode(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing OauthAuthorizationCode: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"OauthAuthorizationCode\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"OauthAuthorizationCode\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype botOpenApiServiceProcessorGetBotOnlineInfo struct {\n\thandler BotOpenApiService\n}\n\nfunc (p *botOpenApiServiceProcessorGetBotOnlineInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := BotOpenApiServiceGetBotOnlineInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetBotOnlineInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := BotOpenApiServiceGetBotOnlineInfoResult{}\n\tvar retval *GetBotOnlineInfoResp\n\tif retval, err2 = p.handler.GetBotOnlineInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetBotOnlineInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetBotOnlineInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetBotOnlineInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype botOpenApiServiceProcessorOpenGetBotInfo struct {\n\thandler BotOpenApiService\n}\n\nfunc (p *botOpenApiServiceProcessorOpenGetBotInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := BotOpenApiServiceOpenGetBotInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"OpenGetBotInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := BotOpenApiServiceOpenGetBotInfoResult{}\n\tvar retval *OpenGetBotInfoResponse\n\tif retval, err2 = p.handler.OpenGetBotInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing OpenGetBotInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"OpenGetBotInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"OpenGetBotInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype botOpenApiServiceProcessorImpersonateCozeUser struct {\n\thandler BotOpenApiService\n}\n\nfunc (p *botOpenApiServiceProcessorImpersonateCozeUser) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := BotOpenApiServiceImpersonateCozeUserArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ImpersonateCozeUser\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := BotOpenApiServiceImpersonateCozeUserResult{}\n\tvar retval *ImpersonateCozeUserResponse\n\tif retval, err2 = p.handler.ImpersonateCozeUser(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ImpersonateCozeUser: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ImpersonateCozeUser\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ImpersonateCozeUser\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype botOpenApiServiceProcessorUploadFileOpen struct {\n\thandler BotOpenApiService\n}\n\nfunc (p *botOpenApiServiceProcessorUploadFileOpen) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := BotOpenApiServiceUploadFileOpenArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UploadFileOpen\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := BotOpenApiServiceUploadFileOpenResult{}\n\tvar retval *UploadFileOpenResponse\n\tif retval, err2 = p.handler.UploadFileOpen(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UploadFileOpen: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UploadFileOpen\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UploadFileOpen\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype BotOpenApiServiceOauthAuthorizationCodeArgs struct {\n\tRequest *OauthAuthorizationCodeReq `thrift:\"request,1\"`\n}\n\nfunc NewBotOpenApiServiceOauthAuthorizationCodeArgs() *BotOpenApiServiceOauthAuthorizationCodeArgs {\n\treturn &BotOpenApiServiceOauthAuthorizationCodeArgs{}\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeArgs) InitDefault() {\n}\n\nvar BotOpenApiServiceOauthAuthorizationCodeArgs_Request_DEFAULT *OauthAuthorizationCodeReq\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeArgs) GetRequest() (v *OauthAuthorizationCodeReq) {\n\tif !p.IsSetRequest() {\n\t\treturn BotOpenApiServiceOauthAuthorizationCodeArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_BotOpenApiServiceOauthAuthorizationCodeArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotOpenApiServiceOauthAuthorizationCodeArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewOauthAuthorizationCodeReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OauthAuthorizationCode_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotOpenApiServiceOauthAuthorizationCodeArgs(%+v)\", *p)\n\n}\n\ntype BotOpenApiServiceOauthAuthorizationCodeResult struct {\n\tSuccess *OauthAuthorizationCodeResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewBotOpenApiServiceOauthAuthorizationCodeResult() *BotOpenApiServiceOauthAuthorizationCodeResult {\n\treturn &BotOpenApiServiceOauthAuthorizationCodeResult{}\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeResult) InitDefault() {\n}\n\nvar BotOpenApiServiceOauthAuthorizationCodeResult_Success_DEFAULT *OauthAuthorizationCodeResp\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeResult) GetSuccess() (v *OauthAuthorizationCodeResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn BotOpenApiServiceOauthAuthorizationCodeResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_BotOpenApiServiceOauthAuthorizationCodeResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotOpenApiServiceOauthAuthorizationCodeResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewOauthAuthorizationCodeResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OauthAuthorizationCode_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOauthAuthorizationCodeResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotOpenApiServiceOauthAuthorizationCodeResult(%+v)\", *p)\n\n}\n\ntype BotOpenApiServiceGetBotOnlineInfoArgs struct {\n\tRequest *GetBotOnlineInfoReq `thrift:\"request,1\"`\n}\n\nfunc NewBotOpenApiServiceGetBotOnlineInfoArgs() *BotOpenApiServiceGetBotOnlineInfoArgs {\n\treturn &BotOpenApiServiceGetBotOnlineInfoArgs{}\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoArgs) InitDefault() {\n}\n\nvar BotOpenApiServiceGetBotOnlineInfoArgs_Request_DEFAULT *GetBotOnlineInfoReq\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoArgs) GetRequest() (v *GetBotOnlineInfoReq) {\n\tif !p.IsSetRequest() {\n\t\treturn BotOpenApiServiceGetBotOnlineInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_BotOpenApiServiceGetBotOnlineInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotOpenApiServiceGetBotOnlineInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetBotOnlineInfoReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotOnlineInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotOpenApiServiceGetBotOnlineInfoArgs(%+v)\", *p)\n\n}\n\ntype BotOpenApiServiceGetBotOnlineInfoResult struct {\n\tSuccess *GetBotOnlineInfoResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewBotOpenApiServiceGetBotOnlineInfoResult() *BotOpenApiServiceGetBotOnlineInfoResult {\n\treturn &BotOpenApiServiceGetBotOnlineInfoResult{}\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoResult) InitDefault() {\n}\n\nvar BotOpenApiServiceGetBotOnlineInfoResult_Success_DEFAULT *GetBotOnlineInfoResp\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoResult) GetSuccess() (v *GetBotOnlineInfoResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn BotOpenApiServiceGetBotOnlineInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_BotOpenApiServiceGetBotOnlineInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotOpenApiServiceGetBotOnlineInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetBotOnlineInfoResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotOnlineInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceGetBotOnlineInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotOpenApiServiceGetBotOnlineInfoResult(%+v)\", *p)\n\n}\n\ntype BotOpenApiServiceOpenGetBotInfoArgs struct {\n\tRequest *OpenGetBotInfoRequest `thrift:\"request,1\"`\n}\n\nfunc NewBotOpenApiServiceOpenGetBotInfoArgs() *BotOpenApiServiceOpenGetBotInfoArgs {\n\treturn &BotOpenApiServiceOpenGetBotInfoArgs{}\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoArgs) InitDefault() {\n}\n\nvar BotOpenApiServiceOpenGetBotInfoArgs_Request_DEFAULT *OpenGetBotInfoRequest\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoArgs) GetRequest() (v *OpenGetBotInfoRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn BotOpenApiServiceOpenGetBotInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_BotOpenApiServiceOpenGetBotInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotOpenApiServiceOpenGetBotInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewOpenGetBotInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenGetBotInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotOpenApiServiceOpenGetBotInfoArgs(%+v)\", *p)\n\n}\n\ntype BotOpenApiServiceOpenGetBotInfoResult struct {\n\tSuccess *OpenGetBotInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewBotOpenApiServiceOpenGetBotInfoResult() *BotOpenApiServiceOpenGetBotInfoResult {\n\treturn &BotOpenApiServiceOpenGetBotInfoResult{}\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoResult) InitDefault() {\n}\n\nvar BotOpenApiServiceOpenGetBotInfoResult_Success_DEFAULT *OpenGetBotInfoResponse\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoResult) GetSuccess() (v *OpenGetBotInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn BotOpenApiServiceOpenGetBotInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_BotOpenApiServiceOpenGetBotInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotOpenApiServiceOpenGetBotInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewOpenGetBotInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenGetBotInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceOpenGetBotInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotOpenApiServiceOpenGetBotInfoResult(%+v)\", *p)\n\n}\n\ntype BotOpenApiServiceImpersonateCozeUserArgs struct {\n\tRequest *ImpersonateCozeUserRequest `thrift:\"request,1\"`\n}\n\nfunc NewBotOpenApiServiceImpersonateCozeUserArgs() *BotOpenApiServiceImpersonateCozeUserArgs {\n\treturn &BotOpenApiServiceImpersonateCozeUserArgs{}\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserArgs) InitDefault() {\n}\n\nvar BotOpenApiServiceImpersonateCozeUserArgs_Request_DEFAULT *ImpersonateCozeUserRequest\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserArgs) GetRequest() (v *ImpersonateCozeUserRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn BotOpenApiServiceImpersonateCozeUserArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_BotOpenApiServiceImpersonateCozeUserArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotOpenApiServiceImpersonateCozeUserArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewImpersonateCozeUserRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ImpersonateCozeUser_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotOpenApiServiceImpersonateCozeUserArgs(%+v)\", *p)\n\n}\n\ntype BotOpenApiServiceImpersonateCozeUserResult struct {\n\tSuccess *ImpersonateCozeUserResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewBotOpenApiServiceImpersonateCozeUserResult() *BotOpenApiServiceImpersonateCozeUserResult {\n\treturn &BotOpenApiServiceImpersonateCozeUserResult{}\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserResult) InitDefault() {\n}\n\nvar BotOpenApiServiceImpersonateCozeUserResult_Success_DEFAULT *ImpersonateCozeUserResponse\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserResult) GetSuccess() (v *ImpersonateCozeUserResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn BotOpenApiServiceImpersonateCozeUserResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_BotOpenApiServiceImpersonateCozeUserResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotOpenApiServiceImpersonateCozeUserResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewImpersonateCozeUserResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ImpersonateCozeUser_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceImpersonateCozeUserResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotOpenApiServiceImpersonateCozeUserResult(%+v)\", *p)\n\n}\n\ntype BotOpenApiServiceUploadFileOpenArgs struct {\n\tRequest *UploadFileOpenRequest `thrift:\"request,1\"`\n}\n\nfunc NewBotOpenApiServiceUploadFileOpenArgs() *BotOpenApiServiceUploadFileOpenArgs {\n\treturn &BotOpenApiServiceUploadFileOpenArgs{}\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenArgs) InitDefault() {\n}\n\nvar BotOpenApiServiceUploadFileOpenArgs_Request_DEFAULT *UploadFileOpenRequest\n\nfunc (p *BotOpenApiServiceUploadFileOpenArgs) GetRequest() (v *UploadFileOpenRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn BotOpenApiServiceUploadFileOpenArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_BotOpenApiServiceUploadFileOpenArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotOpenApiServiceUploadFileOpenArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUploadFileOpenRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadFileOpen_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotOpenApiServiceUploadFileOpenArgs(%+v)\", *p)\n\n}\n\ntype BotOpenApiServiceUploadFileOpenResult struct {\n\tSuccess *UploadFileOpenResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewBotOpenApiServiceUploadFileOpenResult() *BotOpenApiServiceUploadFileOpenResult {\n\treturn &BotOpenApiServiceUploadFileOpenResult{}\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenResult) InitDefault() {\n}\n\nvar BotOpenApiServiceUploadFileOpenResult_Success_DEFAULT *UploadFileOpenResponse\n\nfunc (p *BotOpenApiServiceUploadFileOpenResult) GetSuccess() (v *UploadFileOpenResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn BotOpenApiServiceUploadFileOpenResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_BotOpenApiServiceUploadFileOpenResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotOpenApiServiceUploadFileOpenResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUploadFileOpenResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadFileOpen_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *BotOpenApiServiceUploadFileOpenResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotOpenApiServiceUploadFileOpenResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/app/developer_api/developer_api.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage developer_api\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n)\n\ntype VisibilityType int64\n\nconst (\n\t// invisible\n\tVisibilityType_Invisible VisibilityType = 0\n\t// visible\n\tVisibilityType_Visible VisibilityType = 1\n)\n\nfunc (p VisibilityType) String() string {\n\tswitch p {\n\tcase VisibilityType_Invisible:\n\t\treturn \"Invisible\"\n\tcase VisibilityType_Visible:\n\t\treturn \"Visible\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc VisibilityTypeFromString(s string) (VisibilityType, error) {\n\tswitch s {\n\tcase \"Invisible\":\n\t\treturn VisibilityType_Invisible, nil\n\tcase \"Visible\":\n\t\treturn VisibilityType_Visible, nil\n\t}\n\treturn VisibilityType(0), fmt.Errorf(\"not a valid VisibilityType string\")\n}\n\nfunc VisibilityTypePtr(v VisibilityType) *VisibilityType { return &v }\nfunc (p *VisibilityType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = VisibilityType(result.Int64)\n\treturn\n}\n\nfunc (p *VisibilityType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// draft bot display info\ntype TabStatus int64\n\nconst (\n\tTabStatus_Default TabStatus = 0\n\tTabStatus_Open    TabStatus = 1\n\tTabStatus_Close   TabStatus = 2\n\tTabStatus_Hide    TabStatus = 3\n)\n\nfunc (p TabStatus) String() string {\n\tswitch p {\n\tcase TabStatus_Default:\n\t\treturn \"Default\"\n\tcase TabStatus_Open:\n\t\treturn \"Open\"\n\tcase TabStatus_Close:\n\t\treturn \"Close\"\n\tcase TabStatus_Hide:\n\t\treturn \"Hide\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TabStatusFromString(s string) (TabStatus, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn TabStatus_Default, nil\n\tcase \"Open\":\n\t\treturn TabStatus_Open, nil\n\tcase \"Close\":\n\t\treturn TabStatus_Close, nil\n\tcase \"Hide\":\n\t\treturn TabStatus_Hide, nil\n\t}\n\treturn TabStatus(0), fmt.Errorf(\"not a valid TabStatus string\")\n}\n\nfunc TabStatusPtr(v TabStatus) *TabStatus { return &v }\nfunc (p *TabStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = TabStatus(result.Int64)\n\treturn\n}\n\nfunc (p *TabStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PublishResultStatus int64\n\nconst (\n\t// success\n\tPublishResultStatus_Success PublishResultStatus = 1\n\t// fail\n\tPublishResultStatus_Failed PublishResultStatus = 2\n\t// in approval\n\tPublishResultStatus_InReview PublishResultStatus = 3\n)\n\nfunc (p PublishResultStatus) String() string {\n\tswitch p {\n\tcase PublishResultStatus_Success:\n\t\treturn \"Success\"\n\tcase PublishResultStatus_Failed:\n\t\treturn \"Failed\"\n\tcase PublishResultStatus_InReview:\n\t\treturn \"InReview\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PublishResultStatusFromString(s string) (PublishResultStatus, error) {\n\tswitch s {\n\tcase \"Success\":\n\t\treturn PublishResultStatus_Success, nil\n\tcase \"Failed\":\n\t\treturn PublishResultStatus_Failed, nil\n\tcase \"InReview\":\n\t\treturn PublishResultStatus_InReview, nil\n\t}\n\treturn PublishResultStatus(0), fmt.Errorf(\"not a valid PublishResultStatus string\")\n}\n\nfunc PublishResultStatusPtr(v PublishResultStatus) *PublishResultStatus { return &v }\nfunc (p *PublishResultStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PublishResultStatus(result.Int64)\n\treturn\n}\n\nfunc (p *PublishResultStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype AgentType int64\n\nconst (\n\tAgentType_Start_Agent  AgentType = 0\n\tAgentType_LLM_Agent    AgentType = 1\n\tAgentType_Task_Agent   AgentType = 2\n\tAgentType_Global_Agent AgentType = 3\n\tAgentType_Bot_Agent    AgentType = 4\n)\n\nfunc (p AgentType) String() string {\n\tswitch p {\n\tcase AgentType_Start_Agent:\n\t\treturn \"Start_Agent\"\n\tcase AgentType_LLM_Agent:\n\t\treturn \"LLM_Agent\"\n\tcase AgentType_Task_Agent:\n\t\treturn \"Task_Agent\"\n\tcase AgentType_Global_Agent:\n\t\treturn \"Global_Agent\"\n\tcase AgentType_Bot_Agent:\n\t\treturn \"Bot_Agent\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AgentTypeFromString(s string) (AgentType, error) {\n\tswitch s {\n\tcase \"Start_Agent\":\n\t\treturn AgentType_Start_Agent, nil\n\tcase \"LLM_Agent\":\n\t\treturn AgentType_LLM_Agent, nil\n\tcase \"Task_Agent\":\n\t\treturn AgentType_Task_Agent, nil\n\tcase \"Global_Agent\":\n\t\treturn AgentType_Global_Agent, nil\n\tcase \"Bot_Agent\":\n\t\treturn AgentType_Bot_Agent, nil\n\t}\n\treturn AgentType(0), fmt.Errorf(\"not a valid AgentType string\")\n}\n\nfunc AgentTypePtr(v AgentType) *AgentType { return &v }\nfunc (p *AgentType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AgentType(result.Int64)\n\treturn\n}\n\nfunc (p *AgentType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ReferenceInfoStatus int64\n\nconst (\n\t// 1: Updates are available\n\tReferenceInfoStatus_HasUpdates ReferenceInfoStatus = 1\n\t// 2: Deleted\n\tReferenceInfoStatus_IsDelete ReferenceInfoStatus = 2\n)\n\nfunc (p ReferenceInfoStatus) String() string {\n\tswitch p {\n\tcase ReferenceInfoStatus_HasUpdates:\n\t\treturn \"HasUpdates\"\n\tcase ReferenceInfoStatus_IsDelete:\n\t\treturn \"IsDelete\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ReferenceInfoStatusFromString(s string) (ReferenceInfoStatus, error) {\n\tswitch s {\n\tcase \"HasUpdates\":\n\t\treturn ReferenceInfoStatus_HasUpdates, nil\n\tcase \"IsDelete\":\n\t\treturn ReferenceInfoStatus_IsDelete, nil\n\t}\n\treturn ReferenceInfoStatus(0), fmt.Errorf(\"not a valid ReferenceInfoStatus string\")\n}\n\nfunc ReferenceInfoStatusPtr(v ReferenceInfoStatus) *ReferenceInfoStatus { return &v }\nfunc (p *ReferenceInfoStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ReferenceInfoStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ReferenceInfoStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ReferenceUpdateType int64\n\nconst (\n\tReferenceUpdateType_ManualUpdate ReferenceUpdateType = 1\n\tReferenceUpdateType_AutoUpdate   ReferenceUpdateType = 2\n)\n\nfunc (p ReferenceUpdateType) String() string {\n\tswitch p {\n\tcase ReferenceUpdateType_ManualUpdate:\n\t\treturn \"ManualUpdate\"\n\tcase ReferenceUpdateType_AutoUpdate:\n\t\treturn \"AutoUpdate\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ReferenceUpdateTypeFromString(s string) (ReferenceUpdateType, error) {\n\tswitch s {\n\tcase \"ManualUpdate\":\n\t\treturn ReferenceUpdateType_ManualUpdate, nil\n\tcase \"AutoUpdate\":\n\t\treturn ReferenceUpdateType_AutoUpdate, nil\n\t}\n\treturn ReferenceUpdateType(0), fmt.Errorf(\"not a valid ReferenceUpdateType string\")\n}\n\nfunc ReferenceUpdateTypePtr(v ReferenceUpdateType) *ReferenceUpdateType { return &v }\nfunc (p *ReferenceUpdateType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ReferenceUpdateType(result.Int64)\n\treturn\n}\n\nfunc (p *ReferenceUpdateType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BacktrackMode int64\n\nconst (\n\tBacktrackMode_Current      BacktrackMode = 1\n\tBacktrackMode_Previous     BacktrackMode = 2\n\tBacktrackMode_Start        BacktrackMode = 3\n\tBacktrackMode_MostSuitable BacktrackMode = 4\n)\n\nfunc (p BacktrackMode) String() string {\n\tswitch p {\n\tcase BacktrackMode_Current:\n\t\treturn \"Current\"\n\tcase BacktrackMode_Previous:\n\t\treturn \"Previous\"\n\tcase BacktrackMode_Start:\n\t\treturn \"Start\"\n\tcase BacktrackMode_MostSuitable:\n\t\treturn \"MostSuitable\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BacktrackModeFromString(s string) (BacktrackMode, error) {\n\tswitch s {\n\tcase \"Current\":\n\t\treturn BacktrackMode_Current, nil\n\tcase \"Previous\":\n\t\treturn BacktrackMode_Previous, nil\n\tcase \"Start\":\n\t\treturn BacktrackMode_Start, nil\n\tcase \"MostSuitable\":\n\t\treturn BacktrackMode_MostSuitable, nil\n\t}\n\treturn BacktrackMode(0), fmt.Errorf(\"not a valid BacktrackMode string\")\n}\n\nfunc BacktrackModePtr(v BacktrackMode) *BacktrackMode { return &v }\nfunc (p *BacktrackMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BacktrackMode(result.Int64)\n\treturn\n}\n\nfunc (p *BacktrackMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype RecognitionMode int64\n\nconst (\n\tRecognitionMode_FunctionCall RecognitionMode = 1\n\tRecognitionMode_Independent  RecognitionMode = 2\n)\n\nfunc (p RecognitionMode) String() string {\n\tswitch p {\n\tcase RecognitionMode_FunctionCall:\n\t\treturn \"FunctionCall\"\n\tcase RecognitionMode_Independent:\n\t\treturn \"Independent\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc RecognitionModeFromString(s string) (RecognitionMode, error) {\n\tswitch s {\n\tcase \"FunctionCall\":\n\t\treturn RecognitionMode_FunctionCall, nil\n\tcase \"Independent\":\n\t\treturn RecognitionMode_Independent, nil\n\t}\n\treturn RecognitionMode(0), fmt.Errorf(\"not a valid RecognitionMode string\")\n}\n\nfunc RecognitionModePtr(v RecognitionMode) *RecognitionMode { return &v }\nfunc (p *RecognitionMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = RecognitionMode(result.Int64)\n\treturn\n}\n\nfunc (p *RecognitionMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype IndependentTiming int64\n\nconst (\n\t// Determine user input (front)\n\tIndependentTiming_Pre IndependentTiming = 1\n\t// Determine node output (postfix)\n\tIndependentTiming_Post IndependentTiming = 2\n\t// Front mode and rear mode support simultaneous selection\n\tIndependentTiming_PreAndPost IndependentTiming = 3\n)\n\nfunc (p IndependentTiming) String() string {\n\tswitch p {\n\tcase IndependentTiming_Pre:\n\t\treturn \"Pre\"\n\tcase IndependentTiming_Post:\n\t\treturn \"Post\"\n\tcase IndependentTiming_PreAndPost:\n\t\treturn \"PreAndPost\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc IndependentTimingFromString(s string) (IndependentTiming, error) {\n\tswitch s {\n\tcase \"Pre\":\n\t\treturn IndependentTiming_Pre, nil\n\tcase \"Post\":\n\t\treturn IndependentTiming_Post, nil\n\tcase \"PreAndPost\":\n\t\treturn IndependentTiming_PreAndPost, nil\n\t}\n\treturn IndependentTiming(0), fmt.Errorf(\"not a valid IndependentTiming string\")\n}\n\nfunc IndependentTimingPtr(v IndependentTiming) *IndependentTiming { return &v }\nfunc (p *IndependentTiming) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = IndependentTiming(result.Int64)\n\treturn\n}\n\nfunc (p *IndependentTiming) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype IndependentRecognitionModelType int64\n\nconst (\n\t// Small model\n\tIndependentRecognitionModelType_SLM IndependentRecognitionModelType = 0\n\t// Large model\n\tIndependentRecognitionModelType_LLM IndependentRecognitionModelType = 1\n)\n\nfunc (p IndependentRecognitionModelType) String() string {\n\tswitch p {\n\tcase IndependentRecognitionModelType_SLM:\n\t\treturn \"SLM\"\n\tcase IndependentRecognitionModelType_LLM:\n\t\treturn \"LLM\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc IndependentRecognitionModelTypeFromString(s string) (IndependentRecognitionModelType, error) {\n\tswitch s {\n\tcase \"SLM\":\n\t\treturn IndependentRecognitionModelType_SLM, nil\n\tcase \"LLM\":\n\t\treturn IndependentRecognitionModelType_LLM, nil\n\t}\n\treturn IndependentRecognitionModelType(0), fmt.Errorf(\"not a valid IndependentRecognitionModelType string\")\n}\n\nfunc IndependentRecognitionModelTypePtr(v IndependentRecognitionModelType) *IndependentRecognitionModelType {\n\treturn &v\n}\nfunc (p *IndependentRecognitionModelType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = IndependentRecognitionModelType(result.Int64)\n\treturn\n}\n\nfunc (p *IndependentRecognitionModelType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PublishType int64\n\nconst (\n\tPublishType_OnlinePublish PublishType = 0\n\tPublishType_PrePublish    PublishType = 1\n)\n\nfunc (p PublishType) String() string {\n\tswitch p {\n\tcase PublishType_OnlinePublish:\n\t\treturn \"OnlinePublish\"\n\tcase PublishType_PrePublish:\n\t\treturn \"PrePublish\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PublishTypeFromString(s string) (PublishType, error) {\n\tswitch s {\n\tcase \"OnlinePublish\":\n\t\treturn PublishType_OnlinePublish, nil\n\tcase \"PrePublish\":\n\t\treturn PublishType_PrePublish, nil\n\t}\n\treturn PublishType(0), fmt.Errorf(\"not a valid PublishType string\")\n}\n\nfunc PublishTypePtr(v PublishType) *PublishType { return &v }\nfunc (p *PublishType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PublishType(result.Int64)\n\treturn\n}\n\nfunc (p *PublishType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BotMode int64\n\nconst (\n\tBotMode_SingleMode   BotMode = 0\n\tBotMode_MultiMode    BotMode = 1\n\tBotMode_WorkflowMode BotMode = 2\n)\n\nfunc (p BotMode) String() string {\n\tswitch p {\n\tcase BotMode_SingleMode:\n\t\treturn \"SingleMode\"\n\tcase BotMode_MultiMode:\n\t\treturn \"MultiMode\"\n\tcase BotMode_WorkflowMode:\n\t\treturn \"WorkflowMode\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotModeFromString(s string) (BotMode, error) {\n\tswitch s {\n\tcase \"SingleMode\":\n\t\treturn BotMode_SingleMode, nil\n\tcase \"MultiMode\":\n\t\treturn BotMode_MultiMode, nil\n\tcase \"WorkflowMode\":\n\t\treturn BotMode_WorkflowMode, nil\n\t}\n\treturn BotMode(0), fmt.Errorf(\"not a valid BotMode string\")\n}\n\nfunc BotModePtr(v BotMode) *BotMode { return &v }\nfunc (p *BotMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotMode(result.Int64)\n\treturn\n}\n\nfunc (p *BotMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype HistoryType int64\n\nconst (\n\t// abandoned\n\tHistoryType_SUBMIT HistoryType = 1\n\t// publish\n\tHistoryType_FLAG HistoryType = 2\n\t// submit\n\tHistoryType_COMMIT HistoryType = 4\n\t// Submit and publish\n\tHistoryType_COMMITANDFLAG HistoryType = 5\n)\n\nfunc (p HistoryType) String() string {\n\tswitch p {\n\tcase HistoryType_SUBMIT:\n\t\treturn \"SUBMIT\"\n\tcase HistoryType_FLAG:\n\t\treturn \"FLAG\"\n\tcase HistoryType_COMMIT:\n\t\treturn \"COMMIT\"\n\tcase HistoryType_COMMITANDFLAG:\n\t\treturn \"COMMITANDFLAG\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc HistoryTypeFromString(s string) (HistoryType, error) {\n\tswitch s {\n\tcase \"SUBMIT\":\n\t\treturn HistoryType_SUBMIT, nil\n\tcase \"FLAG\":\n\t\treturn HistoryType_FLAG, nil\n\tcase \"COMMIT\":\n\t\treturn HistoryType_COMMIT, nil\n\tcase \"COMMITANDFLAG\":\n\t\treturn HistoryType_COMMITANDFLAG, nil\n\t}\n\treturn HistoryType(0), fmt.Errorf(\"not a valid HistoryType string\")\n}\n\nfunc HistoryTypePtr(v HistoryType) *HistoryType { return &v }\nfunc (p *HistoryType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = HistoryType(result.Int64)\n\treturn\n}\n\nfunc (p *HistoryType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ConnectorDynamicStatus int64\n\nconst (\n\tConnectorDynamicStatus_Normal          ConnectorDynamicStatus = 0\n\tConnectorDynamicStatus_Offline         ConnectorDynamicStatus = 1\n\tConnectorDynamicStatus_TokenDisconnect ConnectorDynamicStatus = 2\n)\n\nfunc (p ConnectorDynamicStatus) String() string {\n\tswitch p {\n\tcase ConnectorDynamicStatus_Normal:\n\t\treturn \"Normal\"\n\tcase ConnectorDynamicStatus_Offline:\n\t\treturn \"Offline\"\n\tcase ConnectorDynamicStatus_TokenDisconnect:\n\t\treturn \"TokenDisconnect\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ConnectorDynamicStatusFromString(s string) (ConnectorDynamicStatus, error) {\n\tswitch s {\n\tcase \"Normal\":\n\t\treturn ConnectorDynamicStatus_Normal, nil\n\tcase \"Offline\":\n\t\treturn ConnectorDynamicStatus_Offline, nil\n\tcase \"TokenDisconnect\":\n\t\treturn ConnectorDynamicStatus_TokenDisconnect, nil\n\t}\n\treturn ConnectorDynamicStatus(0), fmt.Errorf(\"not a valid ConnectorDynamicStatus string\")\n}\n\nfunc ConnectorDynamicStatusPtr(v ConnectorDynamicStatus) *ConnectorDynamicStatus { return &v }\nfunc (p *ConnectorDynamicStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ConnectorDynamicStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ConnectorDynamicStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype IconType int64\n\nconst (\n\tIconType_Bot        IconType = 1\n\tIconType_User       IconType = 2\n\tIconType_Plugin     IconType = 3\n\tIconType_Dataset    IconType = 4\n\tIconType_Space      IconType = 5\n\tIconType_Workflow   IconType = 6\n\tIconType_Imageflow  IconType = 7\n\tIconType_Society    IconType = 8\n\tIconType_Connector  IconType = 9\n\tIconType_ChatFlow   IconType = 10\n\tIconType_Voice      IconType = 11\n\tIconType_Enterprise IconType = 12\n)\n\nfunc (p IconType) String() string {\n\tswitch p {\n\tcase IconType_Bot:\n\t\treturn \"Bot\"\n\tcase IconType_User:\n\t\treturn \"User\"\n\tcase IconType_Plugin:\n\t\treturn \"Plugin\"\n\tcase IconType_Dataset:\n\t\treturn \"Dataset\"\n\tcase IconType_Space:\n\t\treturn \"Space\"\n\tcase IconType_Workflow:\n\t\treturn \"Workflow\"\n\tcase IconType_Imageflow:\n\t\treturn \"Imageflow\"\n\tcase IconType_Society:\n\t\treturn \"Society\"\n\tcase IconType_Connector:\n\t\treturn \"Connector\"\n\tcase IconType_ChatFlow:\n\t\treturn \"ChatFlow\"\n\tcase IconType_Voice:\n\t\treturn \"Voice\"\n\tcase IconType_Enterprise:\n\t\treturn \"Enterprise\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc IconTypeFromString(s string) (IconType, error) {\n\tswitch s {\n\tcase \"Bot\":\n\t\treturn IconType_Bot, nil\n\tcase \"User\":\n\t\treturn IconType_User, nil\n\tcase \"Plugin\":\n\t\treturn IconType_Plugin, nil\n\tcase \"Dataset\":\n\t\treturn IconType_Dataset, nil\n\tcase \"Space\":\n\t\treturn IconType_Space, nil\n\tcase \"Workflow\":\n\t\treturn IconType_Workflow, nil\n\tcase \"Imageflow\":\n\t\treturn IconType_Imageflow, nil\n\tcase \"Society\":\n\t\treturn IconType_Society, nil\n\tcase \"Connector\":\n\t\treturn IconType_Connector, nil\n\tcase \"ChatFlow\":\n\t\treturn IconType_ChatFlow, nil\n\tcase \"Voice\":\n\t\treturn IconType_Voice, nil\n\tcase \"Enterprise\":\n\t\treturn IconType_Enterprise, nil\n\t}\n\treturn IconType(0), fmt.Errorf(\"not a valid IconType string\")\n}\n\nfunc IconTypePtr(v IconType) *IconType { return &v }\nfunc (p *IconType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = IconType(result.Int64)\n\treturn\n}\n\nfunc (p *IconType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype FileBizType int64\n\nconst (\n\tFileBizType_BIZ_UNKNOWN            FileBizType = 0\n\tFileBizType_BIZ_BOT_ICON           FileBizType = 1\n\tFileBizType_BIZ_BOT_DATASET        FileBizType = 2\n\tFileBizType_BIZ_DATASET_ICON       FileBizType = 3\n\tFileBizType_BIZ_PLUGIN_ICON        FileBizType = 4\n\tFileBizType_BIZ_BOT_SPACE          FileBizType = 5\n\tFileBizType_BIZ_BOT_WORKFLOW       FileBizType = 6\n\tFileBizType_BIZ_SOCIETY_ICON       FileBizType = 7\n\tFileBizType_BIZ_CONNECTOR_ICON     FileBizType = 8\n\tFileBizType_BIZ_LIBRARY_VOICE_ICON FileBizType = 9\n\tFileBizType_BIZ_ENTERPRISE_ICON    FileBizType = 10\n)\n\nfunc (p FileBizType) String() string {\n\tswitch p {\n\tcase FileBizType_BIZ_UNKNOWN:\n\t\treturn \"BIZ_UNKNOWN\"\n\tcase FileBizType_BIZ_BOT_ICON:\n\t\treturn \"BIZ_BOT_ICON\"\n\tcase FileBizType_BIZ_BOT_DATASET:\n\t\treturn \"BIZ_BOT_DATASET\"\n\tcase FileBizType_BIZ_DATASET_ICON:\n\t\treturn \"BIZ_DATASET_ICON\"\n\tcase FileBizType_BIZ_PLUGIN_ICON:\n\t\treturn \"BIZ_PLUGIN_ICON\"\n\tcase FileBizType_BIZ_BOT_SPACE:\n\t\treturn \"BIZ_BOT_SPACE\"\n\tcase FileBizType_BIZ_BOT_WORKFLOW:\n\t\treturn \"BIZ_BOT_WORKFLOW\"\n\tcase FileBizType_BIZ_SOCIETY_ICON:\n\t\treturn \"BIZ_SOCIETY_ICON\"\n\tcase FileBizType_BIZ_CONNECTOR_ICON:\n\t\treturn \"BIZ_CONNECTOR_ICON\"\n\tcase FileBizType_BIZ_LIBRARY_VOICE_ICON:\n\t\treturn \"BIZ_LIBRARY_VOICE_ICON\"\n\tcase FileBizType_BIZ_ENTERPRISE_ICON:\n\t\treturn \"BIZ_ENTERPRISE_ICON\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc FileBizTypeFromString(s string) (FileBizType, error) {\n\tswitch s {\n\tcase \"BIZ_UNKNOWN\":\n\t\treturn FileBizType_BIZ_UNKNOWN, nil\n\tcase \"BIZ_BOT_ICON\":\n\t\treturn FileBizType_BIZ_BOT_ICON, nil\n\tcase \"BIZ_BOT_DATASET\":\n\t\treturn FileBizType_BIZ_BOT_DATASET, nil\n\tcase \"BIZ_DATASET_ICON\":\n\t\treturn FileBizType_BIZ_DATASET_ICON, nil\n\tcase \"BIZ_PLUGIN_ICON\":\n\t\treturn FileBizType_BIZ_PLUGIN_ICON, nil\n\tcase \"BIZ_BOT_SPACE\":\n\t\treturn FileBizType_BIZ_BOT_SPACE, nil\n\tcase \"BIZ_BOT_WORKFLOW\":\n\t\treturn FileBizType_BIZ_BOT_WORKFLOW, nil\n\tcase \"BIZ_SOCIETY_ICON\":\n\t\treturn FileBizType_BIZ_SOCIETY_ICON, nil\n\tcase \"BIZ_CONNECTOR_ICON\":\n\t\treturn FileBizType_BIZ_CONNECTOR_ICON, nil\n\tcase \"BIZ_LIBRARY_VOICE_ICON\":\n\t\treturn FileBizType_BIZ_LIBRARY_VOICE_ICON, nil\n\tcase \"BIZ_ENTERPRISE_ICON\":\n\t\treturn FileBizType_BIZ_ENTERPRISE_ICON, nil\n\t}\n\treturn FileBizType(0), fmt.Errorf(\"not a valid FileBizType string\")\n}\n\nfunc FileBizTypePtr(v FileBizType) *FileBizType { return &v }\nfunc (p *FileBizType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = FileBizType(result.Int64)\n\treturn\n}\n\nfunc (p *FileBizType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ModelScene int64\n\nconst (\n\tModelScene_Douyin ModelScene = 1\n)\n\nfunc (p ModelScene) String() string {\n\tswitch p {\n\tcase ModelScene_Douyin:\n\t\treturn \"Douyin\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ModelSceneFromString(s string) (ModelScene, error) {\n\tswitch s {\n\tcase \"Douyin\":\n\t\treturn ModelScene_Douyin, nil\n\t}\n\treturn ModelScene(0), fmt.Errorf(\"not a valid ModelScene string\")\n}\n\nfunc ModelScenePtr(v ModelScene) *ModelScene { return &v }\nfunc (p *ModelScene) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ModelScene(result.Int64)\n\treturn\n}\n\nfunc (p *ModelScene) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ModelClass int64\n\nconst (\n\tModelClass_GPT    ModelClass = 1\n\tModelClass_SEED   ModelClass = 2\n\tModelClass_Claude ModelClass = 3\n\t// name: MiniMax\n\tModelClass_MiniMax         ModelClass = 4\n\tModelClass_Plugin          ModelClass = 5\n\tModelClass_StableDiffusion ModelClass = 6\n\tModelClass_ByteArtist      ModelClass = 7\n\tModelClass_Maas            ModelClass = 9\n\t// Abandoned: Qianfan (Baidu Cloud)\n\tModelClass_QianFan ModelClass = 10\n\t// name：Google Gemini\n\tModelClass_Gemini ModelClass = 11\n\t// name: Moonshot\n\tModelClass_Moonshot ModelClass = 12\n\t// Name: Zhipu\n\tModelClass_GLM ModelClass = 13\n\t// Name: Volcano Ark\n\tModelClass_MaaSAutoSync ModelClass = 14\n\t// Name: Tongyi Qianwen\n\tModelClass_QWen ModelClass = 15\n\t// name: Cohere\n\tModelClass_Cohere ModelClass = 16\n\t// Name: Baichuan Intelligent\n\tModelClass_Baichuan ModelClass = 17\n\t// Name: ERNIE Bot\n\tModelClass_Ernie ModelClass = 18\n\t// Name: Magic Square\n\tModelClass_DeekSeek ModelClass = 19\n\t// name: Llama\n\tModelClass_Llama   ModelClass = 20\n\tModelClass_StepFun ModelClass = 23\n\tModelClass_Other   ModelClass = 999\n)\n\nfunc (p ModelClass) String() string {\n\tswitch p {\n\tcase ModelClass_GPT:\n\t\treturn \"GPT\"\n\tcase ModelClass_SEED:\n\t\treturn \"SEED\"\n\tcase ModelClass_Claude:\n\t\treturn \"Claude\"\n\tcase ModelClass_MiniMax:\n\t\treturn \"MiniMax\"\n\tcase ModelClass_Plugin:\n\t\treturn \"Plugin\"\n\tcase ModelClass_StableDiffusion:\n\t\treturn \"StableDiffusion\"\n\tcase ModelClass_ByteArtist:\n\t\treturn \"ByteArtist\"\n\tcase ModelClass_Maas:\n\t\treturn \"Maas\"\n\tcase ModelClass_QianFan:\n\t\treturn \"QianFan\"\n\tcase ModelClass_Gemini:\n\t\treturn \"Gemini\"\n\tcase ModelClass_Moonshot:\n\t\treturn \"Moonshot\"\n\tcase ModelClass_GLM:\n\t\treturn \"GLM\"\n\tcase ModelClass_MaaSAutoSync:\n\t\treturn \"MaaSAutoSync\"\n\tcase ModelClass_QWen:\n\t\treturn \"QWen\"\n\tcase ModelClass_Cohere:\n\t\treturn \"Cohere\"\n\tcase ModelClass_Baichuan:\n\t\treturn \"Baichuan\"\n\tcase ModelClass_Ernie:\n\t\treturn \"Ernie\"\n\tcase ModelClass_DeekSeek:\n\t\treturn \"DeekSeek\"\n\tcase ModelClass_Llama:\n\t\treturn \"Llama\"\n\tcase ModelClass_StepFun:\n\t\treturn \"StepFun\"\n\tcase ModelClass_Other:\n\t\treturn \"Other\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ModelClassFromString(s string) (ModelClass, error) {\n\tswitch s {\n\tcase \"GPT\":\n\t\treturn ModelClass_GPT, nil\n\tcase \"SEED\":\n\t\treturn ModelClass_SEED, nil\n\tcase \"Claude\":\n\t\treturn ModelClass_Claude, nil\n\tcase \"MiniMax\":\n\t\treturn ModelClass_MiniMax, nil\n\tcase \"Plugin\":\n\t\treturn ModelClass_Plugin, nil\n\tcase \"StableDiffusion\":\n\t\treturn ModelClass_StableDiffusion, nil\n\tcase \"ByteArtist\":\n\t\treturn ModelClass_ByteArtist, nil\n\tcase \"Maas\":\n\t\treturn ModelClass_Maas, nil\n\tcase \"QianFan\":\n\t\treturn ModelClass_QianFan, nil\n\tcase \"Gemini\":\n\t\treturn ModelClass_Gemini, nil\n\tcase \"Moonshot\":\n\t\treturn ModelClass_Moonshot, nil\n\tcase \"GLM\":\n\t\treturn ModelClass_GLM, nil\n\tcase \"MaaSAutoSync\":\n\t\treturn ModelClass_MaaSAutoSync, nil\n\tcase \"QWen\":\n\t\treturn ModelClass_QWen, nil\n\tcase \"Cohere\":\n\t\treturn ModelClass_Cohere, nil\n\tcase \"Baichuan\":\n\t\treturn ModelClass_Baichuan, nil\n\tcase \"Ernie\":\n\t\treturn ModelClass_Ernie, nil\n\tcase \"DeekSeek\":\n\t\treturn ModelClass_DeekSeek, nil\n\tcase \"Llama\":\n\t\treturn ModelClass_Llama, nil\n\tcase \"StepFun\":\n\t\treturn ModelClass_StepFun, nil\n\tcase \"Other\":\n\t\treturn ModelClass_Other, nil\n\t}\n\treturn ModelClass(0), fmt.Errorf(\"not a valid ModelClass string\")\n}\n\nfunc ModelClassPtr(v ModelClass) *ModelClass { return &v }\nfunc (p *ModelClass) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ModelClass(result.Int64)\n\treturn\n}\n\nfunc (p *ModelClass) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ModelTagClass int64\n\nconst (\n\tModelTagClass_ModelType      ModelTagClass = 1\n\tModelTagClass_ModelUserRight ModelTagClass = 2\n\tModelTagClass_ModelFeature   ModelTagClass = 3\n\tModelTagClass_ModelFunction  ModelTagClass = 4\n\t// Do not do this issue\n\tModelTagClass_Custom ModelTagClass = 20\n\tModelTagClass_Others ModelTagClass = 100\n)\n\nfunc (p ModelTagClass) String() string {\n\tswitch p {\n\tcase ModelTagClass_ModelType:\n\t\treturn \"ModelType\"\n\tcase ModelTagClass_ModelUserRight:\n\t\treturn \"ModelUserRight\"\n\tcase ModelTagClass_ModelFeature:\n\t\treturn \"ModelFeature\"\n\tcase ModelTagClass_ModelFunction:\n\t\treturn \"ModelFunction\"\n\tcase ModelTagClass_Custom:\n\t\treturn \"Custom\"\n\tcase ModelTagClass_Others:\n\t\treturn \"Others\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ModelTagClassFromString(s string) (ModelTagClass, error) {\n\tswitch s {\n\tcase \"ModelType\":\n\t\treturn ModelTagClass_ModelType, nil\n\tcase \"ModelUserRight\":\n\t\treturn ModelTagClass_ModelUserRight, nil\n\tcase \"ModelFeature\":\n\t\treturn ModelTagClass_ModelFeature, nil\n\tcase \"ModelFunction\":\n\t\treturn ModelTagClass_ModelFunction, nil\n\tcase \"Custom\":\n\t\treturn ModelTagClass_Custom, nil\n\tcase \"Others\":\n\t\treturn ModelTagClass_Others, nil\n\t}\n\treturn ModelTagClass(0), fmt.Errorf(\"not a valid ModelTagClass string\")\n}\n\nfunc ModelTagClassPtr(v ModelTagClass) *ModelTagClass { return &v }\nfunc (p *ModelTagClass) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ModelTagClass(result.Int64)\n\treturn\n}\n\nfunc (p *ModelTagClass) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ModelParamType int64\n\nconst (\n\tModelParamType_Float   ModelParamType = 1\n\tModelParamType_Int     ModelParamType = 2\n\tModelParamType_Boolean ModelParamType = 3\n\tModelParamType_String  ModelParamType = 4\n)\n\nfunc (p ModelParamType) String() string {\n\tswitch p {\n\tcase ModelParamType_Float:\n\t\treturn \"Float\"\n\tcase ModelParamType_Int:\n\t\treturn \"Int\"\n\tcase ModelParamType_Boolean:\n\t\treturn \"Boolean\"\n\tcase ModelParamType_String:\n\t\treturn \"String\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ModelParamTypeFromString(s string) (ModelParamType, error) {\n\tswitch s {\n\tcase \"Float\":\n\t\treturn ModelParamType_Float, nil\n\tcase \"Int\":\n\t\treturn ModelParamType_Int, nil\n\tcase \"Boolean\":\n\t\treturn ModelParamType_Boolean, nil\n\tcase \"String\":\n\t\treturn ModelParamType_String, nil\n\t}\n\treturn ModelParamType(0), fmt.Errorf(\"not a valid ModelParamType string\")\n}\n\nfunc ModelParamTypePtr(v ModelParamType) *ModelParamType { return &v }\nfunc (p *ModelParamType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ModelParamType(result.Int64)\n\treturn\n}\n\nfunc (p *ModelParamType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ModelTagValue int64\n\nconst (\n\tModelTagValue_Flagship           ModelTagValue = 1\n\tModelTagValue_HighSpeed          ModelTagValue = 2\n\tModelTagValue_ToolInvocation     ModelTagValue = 3\n\tModelTagValue_RolePlaying        ModelTagValue = 4\n\tModelTagValue_LongText           ModelTagValue = 5\n\tModelTagValue_ImageUnderstanding ModelTagValue = 6\n\tModelTagValue_Reasoning          ModelTagValue = 7\n\tModelTagValue_VideoUnderstanding ModelTagValue = 8\n\tModelTagValue_CostPerformance    ModelTagValue = 9\n\tModelTagValue_CodeSpecialization ModelTagValue = 10\n\tModelTagValue_AudioUnderstanding ModelTagValue = 11\n)\n\nfunc (p ModelTagValue) String() string {\n\tswitch p {\n\tcase ModelTagValue_Flagship:\n\t\treturn \"Flagship\"\n\tcase ModelTagValue_HighSpeed:\n\t\treturn \"HighSpeed\"\n\tcase ModelTagValue_ToolInvocation:\n\t\treturn \"ToolInvocation\"\n\tcase ModelTagValue_RolePlaying:\n\t\treturn \"RolePlaying\"\n\tcase ModelTagValue_LongText:\n\t\treturn \"LongText\"\n\tcase ModelTagValue_ImageUnderstanding:\n\t\treturn \"ImageUnderstanding\"\n\tcase ModelTagValue_Reasoning:\n\t\treturn \"Reasoning\"\n\tcase ModelTagValue_VideoUnderstanding:\n\t\treturn \"VideoUnderstanding\"\n\tcase ModelTagValue_CostPerformance:\n\t\treturn \"CostPerformance\"\n\tcase ModelTagValue_CodeSpecialization:\n\t\treturn \"CodeSpecialization\"\n\tcase ModelTagValue_AudioUnderstanding:\n\t\treturn \"AudioUnderstanding\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ModelTagValueFromString(s string) (ModelTagValue, error) {\n\tswitch s {\n\tcase \"Flagship\":\n\t\treturn ModelTagValue_Flagship, nil\n\tcase \"HighSpeed\":\n\t\treturn ModelTagValue_HighSpeed, nil\n\tcase \"ToolInvocation\":\n\t\treturn ModelTagValue_ToolInvocation, nil\n\tcase \"RolePlaying\":\n\t\treturn ModelTagValue_RolePlaying, nil\n\tcase \"LongText\":\n\t\treturn ModelTagValue_LongText, nil\n\tcase \"ImageUnderstanding\":\n\t\treturn ModelTagValue_ImageUnderstanding, nil\n\tcase \"Reasoning\":\n\t\treturn ModelTagValue_Reasoning, nil\n\tcase \"VideoUnderstanding\":\n\t\treturn ModelTagValue_VideoUnderstanding, nil\n\tcase \"CostPerformance\":\n\t\treturn ModelTagValue_CostPerformance, nil\n\tcase \"CodeSpecialization\":\n\t\treturn ModelTagValue_CodeSpecialization, nil\n\tcase \"AudioUnderstanding\":\n\t\treturn ModelTagValue_AudioUnderstanding, nil\n\t}\n\treturn ModelTagValue(0), fmt.Errorf(\"not a valid ModelTagValue string\")\n}\n\nfunc ModelTagValuePtr(v ModelTagValue) *ModelTagValue { return &v }\nfunc (p *ModelTagValue) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ModelTagValue(result.Int64)\n\treturn\n}\n\nfunc (p *ModelTagValue) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype CommitStatus int64\n\nconst (\n\tCommitStatus_Undefined CommitStatus = 0\n\t// It is the latest, the same as the main draft\n\tCommitStatus_Uptodate CommitStatus = 1\n\t// Behind the main draft\n\tCommitStatus_Behind CommitStatus = 2\n\t// No personal draft\n\tCommitStatus_NoDraftReplica CommitStatus = 3\n)\n\nfunc (p CommitStatus) String() string {\n\tswitch p {\n\tcase CommitStatus_Undefined:\n\t\treturn \"Undefined\"\n\tcase CommitStatus_Uptodate:\n\t\treturn \"Uptodate\"\n\tcase CommitStatus_Behind:\n\t\treturn \"Behind\"\n\tcase CommitStatus_NoDraftReplica:\n\t\treturn \"NoDraftReplica\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc CommitStatusFromString(s string) (CommitStatus, error) {\n\tswitch s {\n\tcase \"Undefined\":\n\t\treturn CommitStatus_Undefined, nil\n\tcase \"Uptodate\":\n\t\treturn CommitStatus_Uptodate, nil\n\tcase \"Behind\":\n\t\treturn CommitStatus_Behind, nil\n\tcase \"NoDraftReplica\":\n\t\treturn CommitStatus_NoDraftReplica, nil\n\t}\n\treturn CommitStatus(0), fmt.Errorf(\"not a valid CommitStatus string\")\n}\n\nfunc CommitStatusPtr(v CommitStatus) *CommitStatus { return &v }\nfunc (p *CommitStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = CommitStatus(result.Int64)\n\treturn\n}\n\nfunc (p *CommitStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ConfigStatus int64\n\nconst (\n\t// Configured\n\tConfigStatus_Configured ConfigStatus = 1\n\t// Not configured\n\tConfigStatus_NotConfigured ConfigStatus = 2\n\t// Token changes\n\tConfigStatus_Disconnected ConfigStatus = 3\n\t// Configuring, authorizing\n\tConfigStatus_Configuring ConfigStatus = 4\n\t// Need to reconfigure\n\tConfigStatus_NeedReconfiguring ConfigStatus = 5\n)\n\nfunc (p ConfigStatus) String() string {\n\tswitch p {\n\tcase ConfigStatus_Configured:\n\t\treturn \"Configured\"\n\tcase ConfigStatus_NotConfigured:\n\t\treturn \"NotConfigured\"\n\tcase ConfigStatus_Disconnected:\n\t\treturn \"Disconnected\"\n\tcase ConfigStatus_Configuring:\n\t\treturn \"Configuring\"\n\tcase ConfigStatus_NeedReconfiguring:\n\t\treturn \"NeedReconfiguring\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ConfigStatusFromString(s string) (ConfigStatus, error) {\n\tswitch s {\n\tcase \"Configured\":\n\t\treturn ConfigStatus_Configured, nil\n\tcase \"NotConfigured\":\n\t\treturn ConfigStatus_NotConfigured, nil\n\tcase \"Disconnected\":\n\t\treturn ConfigStatus_Disconnected, nil\n\tcase \"Configuring\":\n\t\treturn ConfigStatus_Configuring, nil\n\tcase \"NeedReconfiguring\":\n\t\treturn ConfigStatus_NeedReconfiguring, nil\n\t}\n\treturn ConfigStatus(0), fmt.Errorf(\"not a valid ConfigStatus string\")\n}\n\nfunc ConfigStatusPtr(v ConfigStatus) *ConfigStatus { return &v }\nfunc (p *ConfigStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ConfigStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ConfigStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BindType int64\n\nconst (\n\t// No binding required\n\tBindType_NoBindRequired BindType = 1\n\t// Auth binding\n\tBindType_AuthBind BindType = 2\n\t// Kv binding =\n\tBindType_KvBind BindType = 3\n\t// Kv and Auth authorization\n\tBindType_KvAuthBind BindType = 4\n\t// API channel binding\n\tBindType_ApiBind    BindType = 5\n\tBindType_WebSDKBind BindType = 6\n\tBindType_StoreBind  BindType = 7\n\t// One button each for authorization and configuration\n\tBindType_AuthAndConfig BindType = 8\n)\n\nfunc (p BindType) String() string {\n\tswitch p {\n\tcase BindType_NoBindRequired:\n\t\treturn \"NoBindRequired\"\n\tcase BindType_AuthBind:\n\t\treturn \"AuthBind\"\n\tcase BindType_KvBind:\n\t\treturn \"KvBind\"\n\tcase BindType_KvAuthBind:\n\t\treturn \"KvAuthBind\"\n\tcase BindType_ApiBind:\n\t\treturn \"ApiBind\"\n\tcase BindType_WebSDKBind:\n\t\treturn \"WebSDKBind\"\n\tcase BindType_StoreBind:\n\t\treturn \"StoreBind\"\n\tcase BindType_AuthAndConfig:\n\t\treturn \"AuthAndConfig\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BindTypeFromString(s string) (BindType, error) {\n\tswitch s {\n\tcase \"NoBindRequired\":\n\t\treturn BindType_NoBindRequired, nil\n\tcase \"AuthBind\":\n\t\treturn BindType_AuthBind, nil\n\tcase \"KvBind\":\n\t\treturn BindType_KvBind, nil\n\tcase \"KvAuthBind\":\n\t\treturn BindType_KvAuthBind, nil\n\tcase \"ApiBind\":\n\t\treturn BindType_ApiBind, nil\n\tcase \"WebSDKBind\":\n\t\treturn BindType_WebSDKBind, nil\n\tcase \"StoreBind\":\n\t\treturn BindType_StoreBind, nil\n\tcase \"AuthAndConfig\":\n\t\treturn BindType_AuthAndConfig, nil\n\t}\n\treturn BindType(0), fmt.Errorf(\"not a valid BindType string\")\n}\n\nfunc BindTypePtr(v BindType) *BindType { return &v }\nfunc (p *BindType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BindType(result.Int64)\n\treturn\n}\n\nfunc (p *BindType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype AllowPublishStatus int64\n\nconst (\n\tAllowPublishStatus_Allowed AllowPublishStatus = 0\n\tAllowPublishStatus_Forbid  AllowPublishStatus = 1\n)\n\nfunc (p AllowPublishStatus) String() string {\n\tswitch p {\n\tcase AllowPublishStatus_Allowed:\n\t\treturn \"Allowed\"\n\tcase AllowPublishStatus_Forbid:\n\t\treturn \"Forbid\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AllowPublishStatusFromString(s string) (AllowPublishStatus, error) {\n\tswitch s {\n\tcase \"Allowed\":\n\t\treturn AllowPublishStatus_Allowed, nil\n\tcase \"Forbid\":\n\t\treturn AllowPublishStatus_Forbid, nil\n\t}\n\treturn AllowPublishStatus(0), fmt.Errorf(\"not a valid AllowPublishStatus string\")\n}\n\nfunc AllowPublishStatusPtr(v AllowPublishStatus) *AllowPublishStatus { return &v }\nfunc (p *AllowPublishStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AllowPublishStatus(result.Int64)\n\treturn\n}\n\nfunc (p *AllowPublishStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BotConnectorStatus int64\n\nconst (\n\t// Normal\n\tBotConnectorStatus_Normal BotConnectorStatus = 0\n\t// Under review.\n\tBotConnectorStatus_InReview BotConnectorStatus = 1\n\t// offline\n\tBotConnectorStatus_Offline BotConnectorStatus = 2\n)\n\nfunc (p BotConnectorStatus) String() string {\n\tswitch p {\n\tcase BotConnectorStatus_Normal:\n\t\treturn \"Normal\"\n\tcase BotConnectorStatus_InReview:\n\t\treturn \"InReview\"\n\tcase BotConnectorStatus_Offline:\n\t\treturn \"Offline\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotConnectorStatusFromString(s string) (BotConnectorStatus, error) {\n\tswitch s {\n\tcase \"Normal\":\n\t\treturn BotConnectorStatus_Normal, nil\n\tcase \"InReview\":\n\t\treturn BotConnectorStatus_InReview, nil\n\tcase \"Offline\":\n\t\treturn BotConnectorStatus_Offline, nil\n\t}\n\treturn BotConnectorStatus(0), fmt.Errorf(\"not a valid BotConnectorStatus string\")\n}\n\nfunc BotConnectorStatusPtr(v BotConnectorStatus) *BotConnectorStatus { return &v }\nfunc (p *BotConnectorStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotConnectorStatus(result.Int64)\n\treturn\n}\n\nfunc (p *BotConnectorStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype UserAuthStatus int64\n\nconst (\n\t// Authorized\n\tUserAuthStatus_Authorized UserAuthStatus = 1\n\t// unauthorized\n\tUserAuthStatus_UnAuthorized UserAuthStatus = 2\n\t// Authorizing\n\tUserAuthStatus_Authorizing UserAuthStatus = 3\n)\n\nfunc (p UserAuthStatus) String() string {\n\tswitch p {\n\tcase UserAuthStatus_Authorized:\n\t\treturn \"Authorized\"\n\tcase UserAuthStatus_UnAuthorized:\n\t\treturn \"UnAuthorized\"\n\tcase UserAuthStatus_Authorizing:\n\t\treturn \"Authorizing\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc UserAuthStatusFromString(s string) (UserAuthStatus, error) {\n\tswitch s {\n\tcase \"Authorized\":\n\t\treturn UserAuthStatus_Authorized, nil\n\tcase \"UnAuthorized\":\n\t\treturn UserAuthStatus_UnAuthorized, nil\n\tcase \"Authorizing\":\n\t\treturn UserAuthStatus_Authorizing, nil\n\t}\n\treturn UserAuthStatus(0), fmt.Errorf(\"not a valid UserAuthStatus string\")\n}\n\nfunc UserAuthStatusPtr(v UserAuthStatus) *UserAuthStatus { return &v }\nfunc (p *UserAuthStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = UserAuthStatus(result.Int64)\n\treturn\n}\n\nfunc (p *UserAuthStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DraftBotCreateRequest struct {\n\tSpaceID          int64             `thrift:\"space_id,1,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\tName             string            `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tDescription      string            `thrift:\"description,3\" form:\"description\" json:\"description\" query:\"description\"`\n\tIconURI          string            `thrift:\"icon_uri,4\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tVisibility       VisibilityType    `thrift:\"visibility,5\" form:\"visibility\" json:\"visibility\" query:\"visibility\"`\n\tMonetizationConf *MonetizationConf `thrift:\"monetization_conf,6,optional\" form:\"monetization_conf\" json:\"monetization_conf,omitempty\" query:\"monetization_conf\"`\n\t// Create source navi: navbar space: space\n\tCreateFrom   *string                  `thrift:\"create_from,7,optional\" form:\"create_from\" json:\"create_from,omitempty\" query:\"create_from\"`\n\tBusinessType *bot_common.BusinessType `thrift:\"business_type,9,optional\" form:\"business_type\" json:\"business_type,omitempty\" query:\"business_type\"`\n}\n\nfunc NewDraftBotCreateRequest() *DraftBotCreateRequest {\n\treturn &DraftBotCreateRequest{}\n}\n\nfunc (p *DraftBotCreateRequest) InitDefault() {\n}\n\nfunc (p *DraftBotCreateRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *DraftBotCreateRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *DraftBotCreateRequest) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *DraftBotCreateRequest) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *DraftBotCreateRequest) GetVisibility() (v VisibilityType) {\n\treturn p.Visibility\n}\n\nvar DraftBotCreateRequest_MonetizationConf_DEFAULT *MonetizationConf\n\nfunc (p *DraftBotCreateRequest) GetMonetizationConf() (v *MonetizationConf) {\n\tif !p.IsSetMonetizationConf() {\n\t\treturn DraftBotCreateRequest_MonetizationConf_DEFAULT\n\t}\n\treturn p.MonetizationConf\n}\n\nvar DraftBotCreateRequest_CreateFrom_DEFAULT string\n\nfunc (p *DraftBotCreateRequest) GetCreateFrom() (v string) {\n\tif !p.IsSetCreateFrom() {\n\t\treturn DraftBotCreateRequest_CreateFrom_DEFAULT\n\t}\n\treturn *p.CreateFrom\n}\n\nvar DraftBotCreateRequest_BusinessType_DEFAULT bot_common.BusinessType\n\nfunc (p *DraftBotCreateRequest) GetBusinessType() (v bot_common.BusinessType) {\n\tif !p.IsSetBusinessType() {\n\t\treturn DraftBotCreateRequest_BusinessType_DEFAULT\n\t}\n\treturn *p.BusinessType\n}\n\nvar fieldIDToName_DraftBotCreateRequest = map[int16]string{\n\t1: \"space_id\",\n\t2: \"name\",\n\t3: \"description\",\n\t4: \"icon_uri\",\n\t5: \"visibility\",\n\t6: \"monetization_conf\",\n\t7: \"create_from\",\n\t9: \"business_type\",\n}\n\nfunc (p *DraftBotCreateRequest) IsSetMonetizationConf() bool {\n\treturn p.MonetizationConf != nil\n}\n\nfunc (p *DraftBotCreateRequest) IsSetCreateFrom() bool {\n\treturn p.CreateFrom != nil\n}\n\nfunc (p *DraftBotCreateRequest) IsSetBusinessType() bool {\n\treturn p.BusinessType != nil\n}\n\nfunc (p *DraftBotCreateRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftBotCreateRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DraftBotCreateRequest[fieldId]))\n}\n\nfunc (p *DraftBotCreateRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *DraftBotCreateRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DraftBotCreateRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *DraftBotCreateRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *DraftBotCreateRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field VisibilityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = VisibilityType(v)\n\t}\n\tp.Visibility = _field\n\treturn nil\n}\nfunc (p *DraftBotCreateRequest) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewMonetizationConf()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.MonetizationConf = _field\n\treturn nil\n}\nfunc (p *DraftBotCreateRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreateFrom = _field\n\treturn nil\n}\nfunc (p *DraftBotCreateRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *bot_common.BusinessType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := bot_common.BusinessType(v)\n\t\t_field = &tmp\n\t}\n\tp.BusinessType = _field\n\treturn nil\n}\n\nfunc (p *DraftBotCreateRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftBotCreateRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftBotCreateRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftBotCreateRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DraftBotCreateRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DraftBotCreateRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DraftBotCreateRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"visibility\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Visibility)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DraftBotCreateRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMonetizationConf() {\n\t\tif err = oprot.WriteFieldBegin(\"monetization_conf\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.MonetizationConf.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DraftBotCreateRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreateFrom() {\n\t\tif err = oprot.WriteFieldBegin(\"create_from\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CreateFrom); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *DraftBotCreateRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBusinessType() {\n\t\tif err = oprot.WriteFieldBegin(\"business_type\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.BusinessType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *DraftBotCreateRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftBotCreateRequest(%+v)\", *p)\n\n}\n\ntype MonetizationConf struct {\n\tIsEnable *bool `thrift:\"is_enable,1,optional\" form:\"is_enable\" json:\"is_enable,omitempty\" query:\"is_enable\"`\n}\n\nfunc NewMonetizationConf() *MonetizationConf {\n\treturn &MonetizationConf{}\n}\n\nfunc (p *MonetizationConf) InitDefault() {\n}\n\nvar MonetizationConf_IsEnable_DEFAULT bool\n\nfunc (p *MonetizationConf) GetIsEnable() (v bool) {\n\tif !p.IsSetIsEnable() {\n\t\treturn MonetizationConf_IsEnable_DEFAULT\n\t}\n\treturn *p.IsEnable\n}\n\nvar fieldIDToName_MonetizationConf = map[int16]string{\n\t1: \"is_enable\",\n}\n\nfunc (p *MonetizationConf) IsSetIsEnable() bool {\n\treturn p.IsEnable != nil\n}\n\nfunc (p *MonetizationConf) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MonetizationConf[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MonetizationConf) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsEnable = _field\n\treturn nil\n}\n\nfunc (p *MonetizationConf) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MonetizationConf\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MonetizationConf) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsEnable() {\n\t\tif err = oprot.WriteFieldBegin(\"is_enable\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsEnable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MonetizationConf) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MonetizationConf(%+v)\", *p)\n\n}\n\ntype DraftBotCreateData struct {\n\tBotID int64 `thrift:\"bot_id,1\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\t// True: The machine audit verification failed\n\tCheckNotPass bool `thrift:\"check_not_pass,2\" form:\"check_not_pass\" json:\"check_not_pass\" query:\"check_not_pass\"`\n\t// The machine audit verification failed the copy.\n\tCheckNotPassMsg *string `thrift:\"check_not_pass_msg,3,optional\" form:\"check_not_pass_msg\" json:\"check_not_pass_msg,omitempty\" query:\"check_not_pass_msg\"`\n}\n\nfunc NewDraftBotCreateData() *DraftBotCreateData {\n\treturn &DraftBotCreateData{}\n}\n\nfunc (p *DraftBotCreateData) InitDefault() {\n}\n\nfunc (p *DraftBotCreateData) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *DraftBotCreateData) GetCheckNotPass() (v bool) {\n\treturn p.CheckNotPass\n}\n\nvar DraftBotCreateData_CheckNotPassMsg_DEFAULT string\n\nfunc (p *DraftBotCreateData) GetCheckNotPassMsg() (v string) {\n\tif !p.IsSetCheckNotPassMsg() {\n\t\treturn DraftBotCreateData_CheckNotPassMsg_DEFAULT\n\t}\n\treturn *p.CheckNotPassMsg\n}\n\nvar fieldIDToName_DraftBotCreateData = map[int16]string{\n\t1: \"bot_id\",\n\t2: \"check_not_pass\",\n\t3: \"check_not_pass_msg\",\n}\n\nfunc (p *DraftBotCreateData) IsSetCheckNotPassMsg() bool {\n\treturn p.CheckNotPassMsg != nil\n}\n\nfunc (p *DraftBotCreateData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftBotCreateData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DraftBotCreateData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *DraftBotCreateData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CheckNotPass = _field\n\treturn nil\n}\nfunc (p *DraftBotCreateData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CheckNotPassMsg = _field\n\treturn nil\n}\n\nfunc (p *DraftBotCreateData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftBotCreateData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftBotCreateData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftBotCreateData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"check_not_pass\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CheckNotPass); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DraftBotCreateData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCheckNotPassMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"check_not_pass_msg\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CheckNotPassMsg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *DraftBotCreateData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftBotCreateData(%+v)\", *p)\n\n}\n\ntype DraftBotCreateResponse struct {\n\tCode int64               `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string              `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData *DraftBotCreateData `thrift:\"data,3,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n}\n\nfunc NewDraftBotCreateResponse() *DraftBotCreateResponse {\n\treturn &DraftBotCreateResponse{}\n}\n\nfunc (p *DraftBotCreateResponse) InitDefault() {\n}\n\nfunc (p *DraftBotCreateResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DraftBotCreateResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DraftBotCreateResponse_Data_DEFAULT *DraftBotCreateData\n\nfunc (p *DraftBotCreateResponse) GetData() (v *DraftBotCreateData) {\n\tif !p.IsSetData() {\n\t\treturn DraftBotCreateResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_DraftBotCreateResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *DraftBotCreateResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *DraftBotCreateResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftBotCreateResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DraftBotCreateResponse[fieldId]))\n}\n\nfunc (p *DraftBotCreateResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DraftBotCreateResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DraftBotCreateResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewDraftBotCreateData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *DraftBotCreateResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftBotCreateResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftBotCreateResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftBotCreateResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DraftBotCreateResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *DraftBotCreateResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftBotCreateResponse(%+v)\", *p)\n\n}\n\ntype DeleteDraftBotRequest struct {\n\tSpaceID int64 `thrift:\"space_id,1,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\tBotID   int64 `thrift:\"bot_id,2,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n}\n\nfunc NewDeleteDraftBotRequest() *DeleteDraftBotRequest {\n\treturn &DeleteDraftBotRequest{}\n}\n\nfunc (p *DeleteDraftBotRequest) InitDefault() {\n}\n\nfunc (p *DeleteDraftBotRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *DeleteDraftBotRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar fieldIDToName_DeleteDraftBotRequest = map[int16]string{\n\t1: \"space_id\",\n\t2: \"bot_id\",\n}\n\nfunc (p *DeleteDraftBotRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteDraftBotRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteDraftBotRequest[fieldId]))\n}\n\nfunc (p *DeleteDraftBotRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *DeleteDraftBotRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\n\nfunc (p *DeleteDraftBotRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDraftBotRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteDraftBotRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteDraftBotRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *DeleteDraftBotRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteDraftBotRequest(%+v)\", *p)\n\n}\n\ntype DeleteDraftBotData struct {\n}\n\nfunc NewDeleteDraftBotData() *DeleteDraftBotData {\n\treturn &DeleteDraftBotData{}\n}\n\nfunc (p *DeleteDraftBotData) InitDefault() {\n}\n\nvar fieldIDToName_DeleteDraftBotData = map[int16]string{}\n\nfunc (p *DeleteDraftBotData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\tgoto SkipFieldTypeError\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nSkipFieldTypeError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T skip field type %d error\", p, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteDraftBotData) Write(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteStructBegin(\"DeleteDraftBotData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteDraftBotData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteDraftBotData(%+v)\", *p)\n\n}\n\ntype DeleteDraftBotResponse struct {\n\tCode int64               `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string              `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData *DeleteDraftBotData `thrift:\"data,3,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n}\n\nfunc NewDeleteDraftBotResponse() *DeleteDraftBotResponse {\n\treturn &DeleteDraftBotResponse{}\n}\n\nfunc (p *DeleteDraftBotResponse) InitDefault() {\n}\n\nfunc (p *DeleteDraftBotResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DeleteDraftBotResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DeleteDraftBotResponse_Data_DEFAULT *DeleteDraftBotData\n\nfunc (p *DeleteDraftBotResponse) GetData() (v *DeleteDraftBotData) {\n\tif !p.IsSetData() {\n\t\treturn DeleteDraftBotResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_DeleteDraftBotResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *DeleteDraftBotResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *DeleteDraftBotResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteDraftBotResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteDraftBotResponse[fieldId]))\n}\n\nfunc (p *DeleteDraftBotResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteDraftBotResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeleteDraftBotResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewDeleteDraftBotData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *DeleteDraftBotResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDraftBotResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteDraftBotResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteDraftBotResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteDraftBotResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *DeleteDraftBotResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteDraftBotResponse(%+v)\", *p)\n\n}\n\ntype DuplicateDraftBotRequest struct {\n\tSpaceID int64 `thrift:\"space_id,1,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\tBotID   int64 `thrift:\"bot_id,2,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n}\n\nfunc NewDuplicateDraftBotRequest() *DuplicateDraftBotRequest {\n\treturn &DuplicateDraftBotRequest{}\n}\n\nfunc (p *DuplicateDraftBotRequest) InitDefault() {\n}\n\nfunc (p *DuplicateDraftBotRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *DuplicateDraftBotRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar fieldIDToName_DuplicateDraftBotRequest = map[int16]string{\n\t1: \"space_id\",\n\t2: \"bot_id\",\n}\n\nfunc (p *DuplicateDraftBotRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DuplicateDraftBotRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DuplicateDraftBotRequest[fieldId]))\n}\n\nfunc (p *DuplicateDraftBotRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *DuplicateDraftBotRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\n\nfunc (p *DuplicateDraftBotRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DuplicateDraftBotRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DuplicateDraftBotRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DuplicateDraftBotRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *DuplicateDraftBotRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DuplicateDraftBotRequest(%+v)\", *p)\n\n}\n\ntype UserLabel struct {\n\tLabelID   int64  `thrift:\"label_id,1\" form:\"label_id\" json:\"label_id,string\" query:\"label_id\"`\n\tLabelName string `thrift:\"label_name,2\" form:\"label_name\" json:\"label_name\" query:\"label_name\"`\n\tIconURI   string `thrift:\"icon_uri,3\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tIconURL   string `thrift:\"icon_url,4\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tJumpLink  string `thrift:\"jump_link,5\" form:\"jump_link\" json:\"jump_link\" query:\"jump_link\"`\n}\n\nfunc NewUserLabel() *UserLabel {\n\treturn &UserLabel{}\n}\n\nfunc (p *UserLabel) InitDefault() {\n}\n\nfunc (p *UserLabel) GetLabelID() (v int64) {\n\treturn p.LabelID\n}\n\nfunc (p *UserLabel) GetLabelName() (v string) {\n\treturn p.LabelName\n}\n\nfunc (p *UserLabel) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *UserLabel) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *UserLabel) GetJumpLink() (v string) {\n\treturn p.JumpLink\n}\n\nvar fieldIDToName_UserLabel = map[int16]string{\n\t1: \"label_id\",\n\t2: \"label_name\",\n\t3: \"icon_uri\",\n\t4: \"icon_url\",\n\t5: \"jump_link\",\n}\n\nfunc (p *UserLabel) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserLabel[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserLabel) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LabelID = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LabelName = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.JumpLink = _field\n\treturn nil\n}\n\nfunc (p *UserLabel) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserLabel\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserLabel) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.LabelID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LabelName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"jump_link\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.JumpLink); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *UserLabel) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserLabel(%+v)\", *p)\n\n}\n\ntype Creator struct {\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\t// nickname\n\tName      string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tAvatarURL string `thrift:\"avatar_url,3\" form:\"avatar_url\" json:\"avatar_url\" query:\"avatar_url\"`\n\t// Did you create it yourself?\n\tSelf bool `thrift:\"self,4\" form:\"self\" json:\"self\" query:\"self\"`\n\t// user name\n\tUserUniqueName string `thrift:\"user_unique_name,5\" form:\"user_unique_name\" json:\"user_unique_name\" query:\"user_unique_name\"`\n\t// user tag\n\tUserLabel *UserLabel `thrift:\"user_label,6\" form:\"user_label\" json:\"user_label\" query:\"user_label\"`\n}\n\nfunc NewCreator() *Creator {\n\treturn &Creator{}\n}\n\nfunc (p *Creator) InitDefault() {\n}\n\nfunc (p *Creator) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *Creator) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *Creator) GetAvatarURL() (v string) {\n\treturn p.AvatarURL\n}\n\nfunc (p *Creator) GetSelf() (v bool) {\n\treturn p.Self\n}\n\nfunc (p *Creator) GetUserUniqueName() (v string) {\n\treturn p.UserUniqueName\n}\n\nvar Creator_UserLabel_DEFAULT *UserLabel\n\nfunc (p *Creator) GetUserLabel() (v *UserLabel) {\n\tif !p.IsSetUserLabel() {\n\t\treturn Creator_UserLabel_DEFAULT\n\t}\n\treturn p.UserLabel\n}\n\nvar fieldIDToName_Creator = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"avatar_url\",\n\t4: \"self\",\n\t5: \"user_unique_name\",\n\t6: \"user_label\",\n}\n\nfunc (p *Creator) IsSetUserLabel() bool {\n\treturn p.UserLabel != nil\n}\n\nfunc (p *Creator) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Creator[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Creator) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AvatarURL = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Self = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserUniqueName = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewUserLabel()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserLabel = _field\n\treturn nil\n}\n\nfunc (p *Creator) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Creator\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Creator) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Creator) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Creator) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"avatar_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AvatarURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Creator) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"self\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Self); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Creator) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_unique_name\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserUniqueName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Creator) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_label\", thrift.STRUCT, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.UserLabel.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *Creator) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Creator(%+v)\", *p)\n\n}\n\ntype DuplicateDraftBotData struct {\n\tBotID    int64    `thrift:\"bot_id,1\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\tName     string   `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tUserInfo *Creator `thrift:\"user_info,3\" form:\"user_info\" json:\"user_info\" query:\"user_info\"`\n}\n\nfunc NewDuplicateDraftBotData() *DuplicateDraftBotData {\n\treturn &DuplicateDraftBotData{}\n}\n\nfunc (p *DuplicateDraftBotData) InitDefault() {\n}\n\nfunc (p *DuplicateDraftBotData) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *DuplicateDraftBotData) GetName() (v string) {\n\treturn p.Name\n}\n\nvar DuplicateDraftBotData_UserInfo_DEFAULT *Creator\n\nfunc (p *DuplicateDraftBotData) GetUserInfo() (v *Creator) {\n\tif !p.IsSetUserInfo() {\n\t\treturn DuplicateDraftBotData_UserInfo_DEFAULT\n\t}\n\treturn p.UserInfo\n}\n\nvar fieldIDToName_DuplicateDraftBotData = map[int16]string{\n\t1: \"bot_id\",\n\t2: \"name\",\n\t3: \"user_info\",\n}\n\nfunc (p *DuplicateDraftBotData) IsSetUserInfo() bool {\n\treturn p.UserInfo != nil\n}\n\nfunc (p *DuplicateDraftBotData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DuplicateDraftBotData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DuplicateDraftBotData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *DuplicateDraftBotData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DuplicateDraftBotData) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewCreator()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserInfo = _field\n\treturn nil\n}\n\nfunc (p *DuplicateDraftBotData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DuplicateDraftBotData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DuplicateDraftBotData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DuplicateDraftBotData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DuplicateDraftBotData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_info\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.UserInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *DuplicateDraftBotData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DuplicateDraftBotData(%+v)\", *p)\n\n}\n\ntype DuplicateDraftBotResponse struct {\n\tCode int64                  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string                 `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData *DuplicateDraftBotData `thrift:\"data,3,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n}\n\nfunc NewDuplicateDraftBotResponse() *DuplicateDraftBotResponse {\n\treturn &DuplicateDraftBotResponse{}\n}\n\nfunc (p *DuplicateDraftBotResponse) InitDefault() {\n}\n\nfunc (p *DuplicateDraftBotResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DuplicateDraftBotResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DuplicateDraftBotResponse_Data_DEFAULT *DuplicateDraftBotData\n\nfunc (p *DuplicateDraftBotResponse) GetData() (v *DuplicateDraftBotData) {\n\tif !p.IsSetData() {\n\t\treturn DuplicateDraftBotResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_DuplicateDraftBotResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *DuplicateDraftBotResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *DuplicateDraftBotResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DuplicateDraftBotResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DuplicateDraftBotResponse[fieldId]))\n}\n\nfunc (p *DuplicateDraftBotResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DuplicateDraftBotResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DuplicateDraftBotResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewDuplicateDraftBotData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *DuplicateDraftBotResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DuplicateDraftBotResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DuplicateDraftBotResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DuplicateDraftBotResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DuplicateDraftBotResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *DuplicateDraftBotResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DuplicateDraftBotResponse(%+v)\", *p)\n\n}\n\ntype UpdateDraftBotDisplayInfoResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n}\n\nfunc NewUpdateDraftBotDisplayInfoResponse() *UpdateDraftBotDisplayInfoResponse {\n\treturn &UpdateDraftBotDisplayInfoResponse{}\n}\n\nfunc (p *UpdateDraftBotDisplayInfoResponse) InitDefault() {\n}\n\nfunc (p *UpdateDraftBotDisplayInfoResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateDraftBotDisplayInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_UpdateDraftBotDisplayInfoResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n}\n\nfunc (p *UpdateDraftBotDisplayInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDraftBotDisplayInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotDisplayInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotDisplayInfoResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *UpdateDraftBotDisplayInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDraftBotDisplayInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotDisplayInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotDisplayInfoResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotDisplayInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDraftBotDisplayInfoResponse(%+v)\", *p)\n\n}\n\ntype DraftBotDisplayInfoData struct {\n\tTabDisplayInfo *TabDisplayItems `thrift:\"tab_display_info,1,optional\" form:\"tab_display_info\" json:\"tab_display_info,omitempty\" query:\"tab_display_info\"`\n}\n\nfunc NewDraftBotDisplayInfoData() *DraftBotDisplayInfoData {\n\treturn &DraftBotDisplayInfoData{}\n}\n\nfunc (p *DraftBotDisplayInfoData) InitDefault() {\n}\n\nvar DraftBotDisplayInfoData_TabDisplayInfo_DEFAULT *TabDisplayItems\n\nfunc (p *DraftBotDisplayInfoData) GetTabDisplayInfo() (v *TabDisplayItems) {\n\tif !p.IsSetTabDisplayInfo() {\n\t\treturn DraftBotDisplayInfoData_TabDisplayInfo_DEFAULT\n\t}\n\treturn p.TabDisplayInfo\n}\n\nvar fieldIDToName_DraftBotDisplayInfoData = map[int16]string{\n\t1: \"tab_display_info\",\n}\n\nfunc (p *DraftBotDisplayInfoData) IsSetTabDisplayInfo() bool {\n\treturn p.TabDisplayInfo != nil\n}\n\nfunc (p *DraftBotDisplayInfoData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftBotDisplayInfoData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DraftBotDisplayInfoData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewTabDisplayItems()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TabDisplayInfo = _field\n\treturn nil\n}\n\nfunc (p *DraftBotDisplayInfoData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftBotDisplayInfoData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftBotDisplayInfoData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTabDisplayInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"tab_display_info\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TabDisplayInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DraftBotDisplayInfoData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftBotDisplayInfoData(%+v)\", *p)\n\n}\n\ntype UpdateDraftBotDisplayInfoRequest struct {\n\tBotID       int64                    `thrift:\"bot_id,1,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\tDisplayInfo *DraftBotDisplayInfoData `thrift:\"display_info,2,optional\" form:\"display_info\" json:\"display_info,omitempty\" query:\"display_info\"`\n\tSpaceID     *string                  `thrift:\"space_id,3,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n}\n\nfunc NewUpdateDraftBotDisplayInfoRequest() *UpdateDraftBotDisplayInfoRequest {\n\treturn &UpdateDraftBotDisplayInfoRequest{}\n}\n\nfunc (p *UpdateDraftBotDisplayInfoRequest) InitDefault() {\n}\n\nfunc (p *UpdateDraftBotDisplayInfoRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar UpdateDraftBotDisplayInfoRequest_DisplayInfo_DEFAULT *DraftBotDisplayInfoData\n\nfunc (p *UpdateDraftBotDisplayInfoRequest) GetDisplayInfo() (v *DraftBotDisplayInfoData) {\n\tif !p.IsSetDisplayInfo() {\n\t\treturn UpdateDraftBotDisplayInfoRequest_DisplayInfo_DEFAULT\n\t}\n\treturn p.DisplayInfo\n}\n\nvar UpdateDraftBotDisplayInfoRequest_SpaceID_DEFAULT string\n\nfunc (p *UpdateDraftBotDisplayInfoRequest) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn UpdateDraftBotDisplayInfoRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar fieldIDToName_UpdateDraftBotDisplayInfoRequest = map[int16]string{\n\t1: \"bot_id\",\n\t2: \"display_info\",\n\t3: \"space_id\",\n}\n\nfunc (p *UpdateDraftBotDisplayInfoRequest) IsSetDisplayInfo() bool {\n\treturn p.DisplayInfo != nil\n}\n\nfunc (p *UpdateDraftBotDisplayInfoRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *UpdateDraftBotDisplayInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDraftBotDisplayInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateDraftBotDisplayInfoRequest[fieldId]))\n}\n\nfunc (p *UpdateDraftBotDisplayInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotDisplayInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewDraftBotDisplayInfoData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DisplayInfo = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotDisplayInfoRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\n\nfunc (p *UpdateDraftBotDisplayInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDraftBotDisplayInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotDisplayInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotDisplayInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDisplayInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"display_info\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.DisplayInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotDisplayInfoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotDisplayInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDraftBotDisplayInfoRequest(%+v)\", *p)\n\n}\n\ntype TabDisplayItems struct {\n\tPluginTabStatus           *TabStatus `thrift:\"plugin_tab_status,1,optional\" form:\"plugin_tab_status\" json:\"plugin_tab_status,omitempty\" query:\"plugin_tab_status\"`\n\tWorkflowTabStatus         *TabStatus `thrift:\"workflow_tab_status,2,optional\" form:\"workflow_tab_status\" json:\"workflow_tab_status,omitempty\" query:\"workflow_tab_status\"`\n\tKnowledgeTabStatus        *TabStatus `thrift:\"knowledge_tab_status,3,optional\" form:\"knowledge_tab_status\" json:\"knowledge_tab_status,omitempty\" query:\"knowledge_tab_status\"`\n\tDatabaseTabStatus         *TabStatus `thrift:\"database_tab_status,4,optional\" form:\"database_tab_status\" json:\"database_tab_status,omitempty\" query:\"database_tab_status\"`\n\tVariableTabStatus         *TabStatus `thrift:\"variable_tab_status,5,optional\" form:\"variable_tab_status\" json:\"variable_tab_status,omitempty\" query:\"variable_tab_status\"`\n\tOpeningDialogTabStatus    *TabStatus `thrift:\"opening_dialog_tab_status,6,optional\" form:\"opening_dialog_tab_status\" json:\"opening_dialog_tab_status,omitempty\" query:\"opening_dialog_tab_status\"`\n\tScheduledTaskTabStatus    *TabStatus `thrift:\"scheduled_task_tab_status,7,optional\" form:\"scheduled_task_tab_status\" json:\"scheduled_task_tab_status,omitempty\" query:\"scheduled_task_tab_status\"`\n\tSuggestionTabStatus       *TabStatus `thrift:\"suggestion_tab_status,8,optional\" form:\"suggestion_tab_status\" json:\"suggestion_tab_status,omitempty\" query:\"suggestion_tab_status\"`\n\tTtsTabStatus              *TabStatus `thrift:\"tts_tab_status,9,optional\" form:\"tts_tab_status\" json:\"tts_tab_status,omitempty\" query:\"tts_tab_status\"`\n\tFileboxTabStatus          *TabStatus `thrift:\"filebox_tab_status,10,optional\" form:\"filebox_tab_status\" json:\"filebox_tab_status,omitempty\" query:\"filebox_tab_status\"`\n\tLongTermMemoryTabStatus   *TabStatus `thrift:\"long_term_memory_tab_status,11,optional\" form:\"long_term_memory_tab_status\" json:\"long_term_memory_tab_status,omitempty\" query:\"long_term_memory_tab_status\"`\n\tAnswerActionTabStatus     *TabStatus `thrift:\"answer_action_tab_status,12,optional\" form:\"answer_action_tab_status\" json:\"answer_action_tab_status,omitempty\" query:\"answer_action_tab_status\"`\n\tImageflowTabStatus        *TabStatus `thrift:\"imageflow_tab_status,13,optional\" form:\"imageflow_tab_status\" json:\"imageflow_tab_status,omitempty\" query:\"imageflow_tab_status\"`\n\tBackgroundImageTabStatus  *TabStatus `thrift:\"background_image_tab_status,14,optional\" form:\"background_image_tab_status\" json:\"background_image_tab_status,omitempty\" query:\"background_image_tab_status\"`\n\tShortcutTabStatus         *TabStatus `thrift:\"shortcut_tab_status,15,optional\" form:\"shortcut_tab_status\" json:\"shortcut_tab_status,omitempty\" query:\"shortcut_tab_status\"`\n\tKnowledgeTableTabStatus   *TabStatus `thrift:\"knowledge_table_tab_status,16,optional\" form:\"knowledge_table_tab_status\" json:\"knowledge_table_tab_status,omitempty\" query:\"knowledge_table_tab_status\"`\n\tKnowledgeTextTabStatus    *TabStatus `thrift:\"knowledge_text_tab_status,17,optional\" form:\"knowledge_text_tab_status\" json:\"knowledge_text_tab_status,omitempty\" query:\"knowledge_text_tab_status\"`\n\tKnowledgePhotoTabStatus   *TabStatus `thrift:\"knowledge_photo_tab_status,18,optional\" form:\"knowledge_photo_tab_status\" json:\"knowledge_photo_tab_status,omitempty\" query:\"knowledge_photo_tab_status\"`\n\tHookInfoTabStatus         *TabStatus `thrift:\"hook_info_tab_status,19,optional\" form:\"hook_info_tab_status\" json:\"hook_info_tab_status,omitempty\" query:\"hook_info_tab_status\"`\n\tDefaultUserInputTabStatus *TabStatus `thrift:\"default_user_input_tab_status,20,optional\" form:\"default_user_input_tab_status\" json:\"default_user_input_tab_status,omitempty\" query:\"default_user_input_tab_status\"`\n}\n\nfunc NewTabDisplayItems() *TabDisplayItems {\n\treturn &TabDisplayItems{}\n}\n\nfunc (p *TabDisplayItems) InitDefault() {\n}\n\nvar TabDisplayItems_PluginTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetPluginTabStatus() (v TabStatus) {\n\tif !p.IsSetPluginTabStatus() {\n\t\treturn TabDisplayItems_PluginTabStatus_DEFAULT\n\t}\n\treturn *p.PluginTabStatus\n}\n\nvar TabDisplayItems_WorkflowTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetWorkflowTabStatus() (v TabStatus) {\n\tif !p.IsSetWorkflowTabStatus() {\n\t\treturn TabDisplayItems_WorkflowTabStatus_DEFAULT\n\t}\n\treturn *p.WorkflowTabStatus\n}\n\nvar TabDisplayItems_KnowledgeTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetKnowledgeTabStatus() (v TabStatus) {\n\tif !p.IsSetKnowledgeTabStatus() {\n\t\treturn TabDisplayItems_KnowledgeTabStatus_DEFAULT\n\t}\n\treturn *p.KnowledgeTabStatus\n}\n\nvar TabDisplayItems_DatabaseTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetDatabaseTabStatus() (v TabStatus) {\n\tif !p.IsSetDatabaseTabStatus() {\n\t\treturn TabDisplayItems_DatabaseTabStatus_DEFAULT\n\t}\n\treturn *p.DatabaseTabStatus\n}\n\nvar TabDisplayItems_VariableTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetVariableTabStatus() (v TabStatus) {\n\tif !p.IsSetVariableTabStatus() {\n\t\treturn TabDisplayItems_VariableTabStatus_DEFAULT\n\t}\n\treturn *p.VariableTabStatus\n}\n\nvar TabDisplayItems_OpeningDialogTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetOpeningDialogTabStatus() (v TabStatus) {\n\tif !p.IsSetOpeningDialogTabStatus() {\n\t\treturn TabDisplayItems_OpeningDialogTabStatus_DEFAULT\n\t}\n\treturn *p.OpeningDialogTabStatus\n}\n\nvar TabDisplayItems_ScheduledTaskTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetScheduledTaskTabStatus() (v TabStatus) {\n\tif !p.IsSetScheduledTaskTabStatus() {\n\t\treturn TabDisplayItems_ScheduledTaskTabStatus_DEFAULT\n\t}\n\treturn *p.ScheduledTaskTabStatus\n}\n\nvar TabDisplayItems_SuggestionTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetSuggestionTabStatus() (v TabStatus) {\n\tif !p.IsSetSuggestionTabStatus() {\n\t\treturn TabDisplayItems_SuggestionTabStatus_DEFAULT\n\t}\n\treturn *p.SuggestionTabStatus\n}\n\nvar TabDisplayItems_TtsTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetTtsTabStatus() (v TabStatus) {\n\tif !p.IsSetTtsTabStatus() {\n\t\treturn TabDisplayItems_TtsTabStatus_DEFAULT\n\t}\n\treturn *p.TtsTabStatus\n}\n\nvar TabDisplayItems_FileboxTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetFileboxTabStatus() (v TabStatus) {\n\tif !p.IsSetFileboxTabStatus() {\n\t\treturn TabDisplayItems_FileboxTabStatus_DEFAULT\n\t}\n\treturn *p.FileboxTabStatus\n}\n\nvar TabDisplayItems_LongTermMemoryTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetLongTermMemoryTabStatus() (v TabStatus) {\n\tif !p.IsSetLongTermMemoryTabStatus() {\n\t\treturn TabDisplayItems_LongTermMemoryTabStatus_DEFAULT\n\t}\n\treturn *p.LongTermMemoryTabStatus\n}\n\nvar TabDisplayItems_AnswerActionTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetAnswerActionTabStatus() (v TabStatus) {\n\tif !p.IsSetAnswerActionTabStatus() {\n\t\treturn TabDisplayItems_AnswerActionTabStatus_DEFAULT\n\t}\n\treturn *p.AnswerActionTabStatus\n}\n\nvar TabDisplayItems_ImageflowTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetImageflowTabStatus() (v TabStatus) {\n\tif !p.IsSetImageflowTabStatus() {\n\t\treturn TabDisplayItems_ImageflowTabStatus_DEFAULT\n\t}\n\treturn *p.ImageflowTabStatus\n}\n\nvar TabDisplayItems_BackgroundImageTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetBackgroundImageTabStatus() (v TabStatus) {\n\tif !p.IsSetBackgroundImageTabStatus() {\n\t\treturn TabDisplayItems_BackgroundImageTabStatus_DEFAULT\n\t}\n\treturn *p.BackgroundImageTabStatus\n}\n\nvar TabDisplayItems_ShortcutTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetShortcutTabStatus() (v TabStatus) {\n\tif !p.IsSetShortcutTabStatus() {\n\t\treturn TabDisplayItems_ShortcutTabStatus_DEFAULT\n\t}\n\treturn *p.ShortcutTabStatus\n}\n\nvar TabDisplayItems_KnowledgeTableTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetKnowledgeTableTabStatus() (v TabStatus) {\n\tif !p.IsSetKnowledgeTableTabStatus() {\n\t\treturn TabDisplayItems_KnowledgeTableTabStatus_DEFAULT\n\t}\n\treturn *p.KnowledgeTableTabStatus\n}\n\nvar TabDisplayItems_KnowledgeTextTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetKnowledgeTextTabStatus() (v TabStatus) {\n\tif !p.IsSetKnowledgeTextTabStatus() {\n\t\treturn TabDisplayItems_KnowledgeTextTabStatus_DEFAULT\n\t}\n\treturn *p.KnowledgeTextTabStatus\n}\n\nvar TabDisplayItems_KnowledgePhotoTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetKnowledgePhotoTabStatus() (v TabStatus) {\n\tif !p.IsSetKnowledgePhotoTabStatus() {\n\t\treturn TabDisplayItems_KnowledgePhotoTabStatus_DEFAULT\n\t}\n\treturn *p.KnowledgePhotoTabStatus\n}\n\nvar TabDisplayItems_HookInfoTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetHookInfoTabStatus() (v TabStatus) {\n\tif !p.IsSetHookInfoTabStatus() {\n\t\treturn TabDisplayItems_HookInfoTabStatus_DEFAULT\n\t}\n\treturn *p.HookInfoTabStatus\n}\n\nvar TabDisplayItems_DefaultUserInputTabStatus_DEFAULT TabStatus\n\nfunc (p *TabDisplayItems) GetDefaultUserInputTabStatus() (v TabStatus) {\n\tif !p.IsSetDefaultUserInputTabStatus() {\n\t\treturn TabDisplayItems_DefaultUserInputTabStatus_DEFAULT\n\t}\n\treturn *p.DefaultUserInputTabStatus\n}\n\nvar fieldIDToName_TabDisplayItems = map[int16]string{\n\t1:  \"plugin_tab_status\",\n\t2:  \"workflow_tab_status\",\n\t3:  \"knowledge_tab_status\",\n\t4:  \"database_tab_status\",\n\t5:  \"variable_tab_status\",\n\t6:  \"opening_dialog_tab_status\",\n\t7:  \"scheduled_task_tab_status\",\n\t8:  \"suggestion_tab_status\",\n\t9:  \"tts_tab_status\",\n\t10: \"filebox_tab_status\",\n\t11: \"long_term_memory_tab_status\",\n\t12: \"answer_action_tab_status\",\n\t13: \"imageflow_tab_status\",\n\t14: \"background_image_tab_status\",\n\t15: \"shortcut_tab_status\",\n\t16: \"knowledge_table_tab_status\",\n\t17: \"knowledge_text_tab_status\",\n\t18: \"knowledge_photo_tab_status\",\n\t19: \"hook_info_tab_status\",\n\t20: \"default_user_input_tab_status\",\n}\n\nfunc (p *TabDisplayItems) IsSetPluginTabStatus() bool {\n\treturn p.PluginTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetWorkflowTabStatus() bool {\n\treturn p.WorkflowTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetKnowledgeTabStatus() bool {\n\treturn p.KnowledgeTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetDatabaseTabStatus() bool {\n\treturn p.DatabaseTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetVariableTabStatus() bool {\n\treturn p.VariableTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetOpeningDialogTabStatus() bool {\n\treturn p.OpeningDialogTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetScheduledTaskTabStatus() bool {\n\treturn p.ScheduledTaskTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetSuggestionTabStatus() bool {\n\treturn p.SuggestionTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetTtsTabStatus() bool {\n\treturn p.TtsTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetFileboxTabStatus() bool {\n\treturn p.FileboxTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetLongTermMemoryTabStatus() bool {\n\treturn p.LongTermMemoryTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetAnswerActionTabStatus() bool {\n\treturn p.AnswerActionTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetImageflowTabStatus() bool {\n\treturn p.ImageflowTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetBackgroundImageTabStatus() bool {\n\treturn p.BackgroundImageTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetShortcutTabStatus() bool {\n\treturn p.ShortcutTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetKnowledgeTableTabStatus() bool {\n\treturn p.KnowledgeTableTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetKnowledgeTextTabStatus() bool {\n\treturn p.KnowledgeTextTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetKnowledgePhotoTabStatus() bool {\n\treturn p.KnowledgePhotoTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetHookInfoTabStatus() bool {\n\treturn p.HookInfoTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) IsSetDefaultUserInputTabStatus() bool {\n\treturn p.DefaultUserInputTabStatus != nil\n}\n\nfunc (p *TabDisplayItems) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TabDisplayItems[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TabDisplayItems) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.WorkflowTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.KnowledgeTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.DatabaseTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.VariableTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.OpeningDialogTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.ScheduledTaskTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.SuggestionTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.TtsTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.FileboxTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.LongTermMemoryTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.AnswerActionTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.ImageflowTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.BackgroundImageTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.ShortcutTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.KnowledgeTableTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.KnowledgeTextTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.KnowledgePhotoTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.HookInfoTabStatus = _field\n\treturn nil\n}\nfunc (p *TabDisplayItems) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field *TabStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TabStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.DefaultUserInputTabStatus = _field\n\treturn nil\n}\n\nfunc (p *TabDisplayItems) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TabDisplayItems\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TabDisplayItems) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_tab_status\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_tab_status\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.WorkflowTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKnowledgeTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"knowledge_tab_status\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.KnowledgeTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDatabaseTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"database_tab_status\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.DatabaseTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVariableTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"variable_tab_status\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.VariableTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOpeningDialogTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"opening_dialog_tab_status\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.OpeningDialogTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScheduledTaskTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"scheduled_task_tab_status\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ScheduledTaskTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestionTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"suggestion_tab_status\", thrift.I32, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SuggestionTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTtsTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"tts_tab_status\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.TtsTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFileboxTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"filebox_tab_status\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FileboxTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLongTermMemoryTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"long_term_memory_tab_status\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.LongTermMemoryTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAnswerActionTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"answer_action_tab_status\", thrift.I32, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AnswerActionTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetImageflowTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"imageflow_tab_status\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ImageflowTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBackgroundImageTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"background_image_tab_status\", thrift.I32, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.BackgroundImageTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShortcutTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"shortcut_tab_status\", thrift.I32, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ShortcutTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKnowledgeTableTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"knowledge_table_tab_status\", thrift.I32, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.KnowledgeTableTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKnowledgeTextTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"knowledge_text_tab_status\", thrift.I32, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.KnowledgeTextTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKnowledgePhotoTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"knowledge_photo_tab_status\", thrift.I32, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.KnowledgePhotoTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHookInfoTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"hook_info_tab_status\", thrift.I32, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.HookInfoTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *TabDisplayItems) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDefaultUserInputTabStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"default_user_input_tab_status\", thrift.I32, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.DefaultUserInputTabStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\n\nfunc (p *TabDisplayItems) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TabDisplayItems(%+v)\", *p)\n\n}\n\ntype GetDraftBotDisplayInfoResponse struct {\n\tCode int64                    `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string                   `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData *DraftBotDisplayInfoData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n}\n\nfunc NewGetDraftBotDisplayInfoResponse() *GetDraftBotDisplayInfoResponse {\n\treturn &GetDraftBotDisplayInfoResponse{}\n}\n\nfunc (p *GetDraftBotDisplayInfoResponse) InitDefault() {\n}\n\nfunc (p *GetDraftBotDisplayInfoResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetDraftBotDisplayInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetDraftBotDisplayInfoResponse_Data_DEFAULT *DraftBotDisplayInfoData\n\nfunc (p *GetDraftBotDisplayInfoResponse) GetData() (v *DraftBotDisplayInfoData) {\n\tif !p.IsSetData() {\n\t\treturn GetDraftBotDisplayInfoResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_GetDraftBotDisplayInfoResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *GetDraftBotDisplayInfoResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetDraftBotDisplayInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDraftBotDisplayInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetDraftBotDisplayInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetDraftBotDisplayInfoResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetDraftBotDisplayInfoResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewDraftBotDisplayInfoData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *GetDraftBotDisplayInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftBotDisplayInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDraftBotDisplayInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDraftBotDisplayInfoResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDraftBotDisplayInfoResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *GetDraftBotDisplayInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDraftBotDisplayInfoResponse(%+v)\", *p)\n\n}\n\ntype GetDraftBotDisplayInfoRequest struct {\n\tBotID int64 `thrift:\"bot_id,1,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n}\n\nfunc NewGetDraftBotDisplayInfoRequest() *GetDraftBotDisplayInfoRequest {\n\treturn &GetDraftBotDisplayInfoRequest{}\n}\n\nfunc (p *GetDraftBotDisplayInfoRequest) InitDefault() {\n}\n\nfunc (p *GetDraftBotDisplayInfoRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar fieldIDToName_GetDraftBotDisplayInfoRequest = map[int16]string{\n\t1: \"bot_id\",\n}\n\nfunc (p *GetDraftBotDisplayInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDraftBotDisplayInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDraftBotDisplayInfoRequest[fieldId]))\n}\n\nfunc (p *GetDraftBotDisplayInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\n\nfunc (p *GetDraftBotDisplayInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftBotDisplayInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDraftBotDisplayInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *GetDraftBotDisplayInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDraftBotDisplayInfoRequest(%+v)\", *p)\n\n}\n\ntype PublishDraftBotResponse struct {\n\tCode int64                `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string               `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData *PublishDraftBotData `thrift:\"data,3,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n}\n\nfunc NewPublishDraftBotResponse() *PublishDraftBotResponse {\n\treturn &PublishDraftBotResponse{}\n}\n\nfunc (p *PublishDraftBotResponse) InitDefault() {\n}\n\nfunc (p *PublishDraftBotResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *PublishDraftBotResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar PublishDraftBotResponse_Data_DEFAULT *PublishDraftBotData\n\nfunc (p *PublishDraftBotResponse) GetData() (v *PublishDraftBotData) {\n\tif !p.IsSetData() {\n\t\treturn PublishDraftBotResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_PublishDraftBotResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *PublishDraftBotResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *PublishDraftBotResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishDraftBotResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PublishDraftBotResponse[fieldId]))\n}\n\nfunc (p *PublishDraftBotResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewPublishDraftBotData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *PublishDraftBotResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishDraftBotResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishDraftBotResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishDraftBotResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishDraftBotResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *PublishDraftBotResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishDraftBotResponse(%+v)\", *p)\n\n}\n\ntype PublishDraftBotData struct {\n\t// Key represents connector_name enumeration Feishu = \"feishu\" -- obsolete\n\tConnectorBindResult map[string][]*ConnectorBindResult `thrift:\"connector_bind_result,1\" form:\"connector_bind_result\" json:\"connector_bind_result\" query:\"connector_bind_result\"`\n\t// The key represents connector_id, and the value is the published result\n\tPublishResult map[string]*ConnectorBindResult `thrift:\"publish_result,2\" form:\"publish_result\" json:\"publish_result\" query:\"publish_result\"`\n\t// True: The machine audit verification failed\n\tCheckNotPass bool `thrift:\"check_not_pass,3\" form:\"check_not_pass\" json:\"check_not_pass\" query:\"check_not_pass\"`\n\t// Added bot marketing results\n\tSubmitBotMarketResult *SubmitBotMarketResult `thrift:\"submit_bot_market_result,4,optional\" form:\"submit_bot_market_result\" json:\"submit_bot_market_result,omitempty\" query:\"submit_bot_market_result\"`\n\t// In human moderation\n\tHitManualCheck *bool `thrift:\"hit_manual_check,5,optional\" form:\"hit_manual_check\" json:\"hit_manual_check,omitempty\" query:\"hit_manual_check\"`\n\t// starlingKey list of reasons why the machine audit failed\n\tNotPassReason []string `thrift:\"not_pass_reason,6,optional\" form:\"not_pass_reason\" json:\"not_pass_reason,omitempty\" query:\"not_pass_reason\"`\n\t// Publish bot billing results\n\tPublishMonetizationResult *bool `thrift:\"publish_monetization_result,7,optional\" form:\"publish_monetization_result\" json:\"publish_monetization_result,omitempty\" query:\"publish_monetization_result\"`\n}\n\nfunc NewPublishDraftBotData() *PublishDraftBotData {\n\treturn &PublishDraftBotData{}\n}\n\nfunc (p *PublishDraftBotData) InitDefault() {\n}\n\nfunc (p *PublishDraftBotData) GetConnectorBindResult() (v map[string][]*ConnectorBindResult) {\n\treturn p.ConnectorBindResult\n}\n\nfunc (p *PublishDraftBotData) GetPublishResult() (v map[string]*ConnectorBindResult) {\n\treturn p.PublishResult\n}\n\nfunc (p *PublishDraftBotData) GetCheckNotPass() (v bool) {\n\treturn p.CheckNotPass\n}\n\nvar PublishDraftBotData_SubmitBotMarketResult_DEFAULT *SubmitBotMarketResult\n\nfunc (p *PublishDraftBotData) GetSubmitBotMarketResult() (v *SubmitBotMarketResult) {\n\tif !p.IsSetSubmitBotMarketResult() {\n\t\treturn PublishDraftBotData_SubmitBotMarketResult_DEFAULT\n\t}\n\treturn p.SubmitBotMarketResult\n}\n\nvar PublishDraftBotData_HitManualCheck_DEFAULT bool\n\nfunc (p *PublishDraftBotData) GetHitManualCheck() (v bool) {\n\tif !p.IsSetHitManualCheck() {\n\t\treturn PublishDraftBotData_HitManualCheck_DEFAULT\n\t}\n\treturn *p.HitManualCheck\n}\n\nvar PublishDraftBotData_NotPassReason_DEFAULT []string\n\nfunc (p *PublishDraftBotData) GetNotPassReason() (v []string) {\n\tif !p.IsSetNotPassReason() {\n\t\treturn PublishDraftBotData_NotPassReason_DEFAULT\n\t}\n\treturn p.NotPassReason\n}\n\nvar PublishDraftBotData_PublishMonetizationResult_DEFAULT bool\n\nfunc (p *PublishDraftBotData) GetPublishMonetizationResult() (v bool) {\n\tif !p.IsSetPublishMonetizationResult() {\n\t\treturn PublishDraftBotData_PublishMonetizationResult_DEFAULT\n\t}\n\treturn *p.PublishMonetizationResult\n}\n\nvar fieldIDToName_PublishDraftBotData = map[int16]string{\n\t1: \"connector_bind_result\",\n\t2: \"publish_result\",\n\t3: \"check_not_pass\",\n\t4: \"submit_bot_market_result\",\n\t5: \"hit_manual_check\",\n\t6: \"not_pass_reason\",\n\t7: \"publish_monetization_result\",\n}\n\nfunc (p *PublishDraftBotData) IsSetSubmitBotMarketResult() bool {\n\treturn p.SubmitBotMarketResult != nil\n}\n\nfunc (p *PublishDraftBotData) IsSetHitManualCheck() bool {\n\treturn p.HitManualCheck != nil\n}\n\nfunc (p *PublishDraftBotData) IsSetNotPassReason() bool {\n\treturn p.NotPassReason != nil\n}\n\nfunc (p *PublishDraftBotData) IsSetPublishMonetizationResult() bool {\n\treturn p.PublishMonetizationResult != nil\n}\n\nfunc (p *PublishDraftBotData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishDraftBotData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishDraftBotData) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string][]*ConnectorBindResult, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\t\t_, size, err := iprot.ReadListBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_val := make([]*ConnectorBindResult, 0, size)\n\t\tvalues := make([]ConnectorBindResult, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\t_elem := &values[i]\n\t\t\t_elem.InitDefault()\n\n\t\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t_val = append(_val, _elem)\n\t\t}\n\t\tif err := iprot.ReadListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorBindResult = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotData) ReadField2(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*ConnectorBindResult, size)\n\tvalues := make([]ConnectorBindResult, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PublishResult = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CheckNotPass = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotData) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewSubmitBotMarketResult()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SubmitBotMarketResult = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HitManualCheck = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotData) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NotPassReason = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishMonetizationResult = _field\n\treturn nil\n}\n\nfunc (p *PublishDraftBotData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishDraftBotData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishDraftBotData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_bind_result\", thrift.MAP, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.LIST, len(p.ConnectorBindResult)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.ConnectorBindResult {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range v {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishDraftBotData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_result\", thrift.MAP, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.PublishResult)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.PublishResult {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishDraftBotData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"check_not_pass\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CheckNotPass); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishDraftBotData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubmitBotMarketResult() {\n\t\tif err = oprot.WriteFieldBegin(\"submit_bot_market_result\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SubmitBotMarketResult.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PublishDraftBotData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHitManualCheck() {\n\t\tif err = oprot.WriteFieldBegin(\"hit_manual_check\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HitManualCheck); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PublishDraftBotData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNotPassReason() {\n\t\tif err = oprot.WriteFieldBegin(\"not_pass_reason\", thrift.LIST, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.NotPassReason)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.NotPassReason {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PublishDraftBotData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishMonetizationResult() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_monetization_result\", thrift.BOOL, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.PublishMonetizationResult); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *PublishDraftBotData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishDraftBotData(%+v)\", *p)\n\n}\n\ntype ConnectorBindResult struct {\n\tConnector *Connector `thrift:\"connector,1\" form:\"connector\" json:\"connector\" query:\"connector\"`\n\t// The status code returned downstream of the publish call is not consumed by the front end.\n\tCode int64 `thrift:\"code,2\" form:\"code\" json:\"code\" query:\"code\"`\n\t// Additional copy of the release status, the front end is parsed in markdown format\n\tMsg string `thrift:\"msg,3\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\t// post result status\n\tPublishResultStatus *PublishResultStatus `thrift:\"publish_result_status,4,optional\" form:\"publish_result_status\" json:\"publish_result_status,omitempty\" query:\"publish_result_status\"`\n}\n\nfunc NewConnectorBindResult() *ConnectorBindResult {\n\treturn &ConnectorBindResult{}\n}\n\nfunc (p *ConnectorBindResult) InitDefault() {\n}\n\nvar ConnectorBindResult_Connector_DEFAULT *Connector\n\nfunc (p *ConnectorBindResult) GetConnector() (v *Connector) {\n\tif !p.IsSetConnector() {\n\t\treturn ConnectorBindResult_Connector_DEFAULT\n\t}\n\treturn p.Connector\n}\n\nfunc (p *ConnectorBindResult) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ConnectorBindResult) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ConnectorBindResult_PublishResultStatus_DEFAULT PublishResultStatus\n\nfunc (p *ConnectorBindResult) GetPublishResultStatus() (v PublishResultStatus) {\n\tif !p.IsSetPublishResultStatus() {\n\t\treturn ConnectorBindResult_PublishResultStatus_DEFAULT\n\t}\n\treturn *p.PublishResultStatus\n}\n\nvar fieldIDToName_ConnectorBindResult = map[int16]string{\n\t1: \"connector\",\n\t2: \"code\",\n\t3: \"msg\",\n\t4: \"publish_result_status\",\n}\n\nfunc (p *ConnectorBindResult) IsSetConnector() bool {\n\treturn p.Connector != nil\n}\n\nfunc (p *ConnectorBindResult) IsSetPublishResultStatus() bool {\n\treturn p.PublishResultStatus != nil\n}\n\nfunc (p *ConnectorBindResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConnectorBindResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConnectorBindResult) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewConnector()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Connector = _field\n\treturn nil\n}\nfunc (p *ConnectorBindResult) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ConnectorBindResult) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ConnectorBindResult) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *PublishResultStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := PublishResultStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.PublishResultStatus = _field\n\treturn nil\n}\n\nfunc (p *ConnectorBindResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConnectorBindResult\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConnectorBindResult) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Connector.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConnectorBindResult) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ConnectorBindResult) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ConnectorBindResult) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishResultStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_result_status\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PublishResultStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *ConnectorBindResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConnectorBindResult(%+v)\", *p)\n\n}\n\ntype Connector struct {\n\t// connector_name enumeration Feishu = \"feishu\"\n\tName      string            `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tAppID     string            `thrift:\"app_id,2\" form:\"app_id\" json:\"app_id\" query:\"app_id\"`\n\tAppSecret string            `thrift:\"app_secret,3\" form:\"app_secret\" json:\"app_secret\" query:\"app_secret\"`\n\tShareLink string            `thrift:\"share_link,4\" form:\"share_link\" json:\"share_link\" query:\"share_link\"`\n\tBindInfo  map[string]string `thrift:\"bind_info,5,optional\" form:\"bind_info\" json:\"bind_info,omitempty\" query:\"bind_info\"`\n}\n\nfunc NewConnector() *Connector {\n\treturn &Connector{}\n}\n\nfunc (p *Connector) InitDefault() {\n}\n\nfunc (p *Connector) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *Connector) GetAppID() (v string) {\n\treturn p.AppID\n}\n\nfunc (p *Connector) GetAppSecret() (v string) {\n\treturn p.AppSecret\n}\n\nfunc (p *Connector) GetShareLink() (v string) {\n\treturn p.ShareLink\n}\n\nvar Connector_BindInfo_DEFAULT map[string]string\n\nfunc (p *Connector) GetBindInfo() (v map[string]string) {\n\tif !p.IsSetBindInfo() {\n\t\treturn Connector_BindInfo_DEFAULT\n\t}\n\treturn p.BindInfo\n}\n\nvar fieldIDToName_Connector = map[int16]string{\n\t1: \"name\",\n\t2: \"app_id\",\n\t3: \"app_secret\",\n\t4: \"share_link\",\n\t5: \"bind_info\",\n}\n\nfunc (p *Connector) IsSetBindInfo() bool {\n\treturn p.BindInfo != nil\n}\n\nfunc (p *Connector) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Connector[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Connector) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Connector) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AppID = _field\n\treturn nil\n}\nfunc (p *Connector) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AppSecret = _field\n\treturn nil\n}\nfunc (p *Connector) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ShareLink = _field\n\treturn nil\n}\nfunc (p *Connector) ReadField5(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BindInfo = _field\n\treturn nil\n}\n\nfunc (p *Connector) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Connector\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Connector) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Connector) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"app_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AppID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Connector) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"app_secret\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AppSecret); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Connector) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"share_link\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ShareLink); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Connector) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"bind_info\", thrift.MAP, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.BindInfo)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.BindInfo {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *Connector) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Connector(%+v)\", *p)\n\n}\n\ntype SubmitBotMarketResult struct {\n\t// Shelf status, 0-success\n\tResultCode *int64 `thrift:\"result_code,1,optional\" form:\"result_code\" json:\"result_code,omitempty\" query:\"result_code\"`\n\t// msg\n\tMsg *string `thrift:\"msg,2,optional\" form:\"msg\" json:\"msg,omitempty\" query:\"msg\"`\n}\n\nfunc NewSubmitBotMarketResult() *SubmitBotMarketResult {\n\treturn &SubmitBotMarketResult{}\n}\n\nfunc (p *SubmitBotMarketResult) InitDefault() {\n}\n\nvar SubmitBotMarketResult_ResultCode_DEFAULT int64\n\nfunc (p *SubmitBotMarketResult) GetResultCode() (v int64) {\n\tif !p.IsSetResultCode() {\n\t\treturn SubmitBotMarketResult_ResultCode_DEFAULT\n\t}\n\treturn *p.ResultCode\n}\n\nvar SubmitBotMarketResult_Msg_DEFAULT string\n\nfunc (p *SubmitBotMarketResult) GetMsg() (v string) {\n\tif !p.IsSetMsg() {\n\t\treturn SubmitBotMarketResult_Msg_DEFAULT\n\t}\n\treturn *p.Msg\n}\n\nvar fieldIDToName_SubmitBotMarketResult = map[int16]string{\n\t1: \"result_code\",\n\t2: \"msg\",\n}\n\nfunc (p *SubmitBotMarketResult) IsSetResultCode() bool {\n\treturn p.ResultCode != nil\n}\n\nfunc (p *SubmitBotMarketResult) IsSetMsg() bool {\n\treturn p.Msg != nil\n}\n\nfunc (p *SubmitBotMarketResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SubmitBotMarketResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SubmitBotMarketResult) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ResultCode = _field\n\treturn nil\n}\nfunc (p *SubmitBotMarketResult) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *SubmitBotMarketResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitBotMarketResult\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SubmitBotMarketResult) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResultCode() {\n\t\tif err = oprot.WriteFieldBegin(\"result_code\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ResultCode); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SubmitBotMarketResult) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *SubmitBotMarketResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SubmitBotMarketResult(%+v)\", *p)\n\n}\n\ntype AgentInfo struct {\n\tID             *string        `thrift:\"id,1,optional\" form:\"id\" json:\"id,omitempty\" query:\"id\"`\n\tAgentType      *AgentType     `thrift:\"agent_type,2,optional\" form:\"agent_type\" json:\"agent_type,omitempty\" query:\"agent_type\"`\n\tName           *string        `thrift:\"name,3,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tPosition       *AgentPosition `thrift:\"position,4,optional\" form:\"position\" json:\"position,omitempty\" query:\"position\"`\n\tIconURI        *string        `thrift:\"icon_uri,5,optional\" form:\"icon_uri\" json:\"icon_uri,omitempty\" query:\"icon_uri\"`\n\tIntents        []*Intent      `thrift:\"intents,6,optional\" form:\"intents\" json:\"intents,omitempty\" query:\"intents\"`\n\tWorkInfo       *AgentWorkInfo `thrift:\"work_info,7,optional\" form:\"work_info\" json:\"work_info,omitempty\" query:\"work_info\"`\n\tReferenceID    *string        `thrift:\"reference_id,8,optional\" form:\"reference_id\" json:\"reference_id,omitempty\" query:\"reference_id\"`\n\tFirstVersion   *string        `thrift:\"first_version,9,optional\" form:\"first_version\" json:\"first_version,omitempty\" query:\"first_version\"`\n\tCurrentVersion *string        `thrift:\"current_version,10,optional\" form:\"current_version\" json:\"current_version,omitempty\" query:\"current_version\"`\n\t// 1: Available update 2: Removed\n\tReferenceInfoStatus *ReferenceInfoStatus `thrift:\"reference_info_status,11,optional\" form:\"reference_info_status\" json:\"reference_info_status,omitempty\" query:\"reference_info_status\"`\n\tDescription         *string              `thrift:\"description,12,optional\" form:\"description\" json:\"description,omitempty\" query:\"description\"`\n\tUpdateType          *ReferenceUpdateType `thrift:\"update_type,13,optional\" form:\"update_type\" json:\"update_type,omitempty\" query:\"update_type\"`\n}\n\nfunc NewAgentInfo() *AgentInfo {\n\treturn &AgentInfo{}\n}\n\nfunc (p *AgentInfo) InitDefault() {\n}\n\nvar AgentInfo_ID_DEFAULT string\n\nfunc (p *AgentInfo) GetID() (v string) {\n\tif !p.IsSetID() {\n\t\treturn AgentInfo_ID_DEFAULT\n\t}\n\treturn *p.ID\n}\n\nvar AgentInfo_AgentType_DEFAULT AgentType\n\nfunc (p *AgentInfo) GetAgentType() (v AgentType) {\n\tif !p.IsSetAgentType() {\n\t\treturn AgentInfo_AgentType_DEFAULT\n\t}\n\treturn *p.AgentType\n}\n\nvar AgentInfo_Name_DEFAULT string\n\nfunc (p *AgentInfo) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn AgentInfo_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar AgentInfo_Position_DEFAULT *AgentPosition\n\nfunc (p *AgentInfo) GetPosition() (v *AgentPosition) {\n\tif !p.IsSetPosition() {\n\t\treturn AgentInfo_Position_DEFAULT\n\t}\n\treturn p.Position\n}\n\nvar AgentInfo_IconURI_DEFAULT string\n\nfunc (p *AgentInfo) GetIconURI() (v string) {\n\tif !p.IsSetIconURI() {\n\t\treturn AgentInfo_IconURI_DEFAULT\n\t}\n\treturn *p.IconURI\n}\n\nvar AgentInfo_Intents_DEFAULT []*Intent\n\nfunc (p *AgentInfo) GetIntents() (v []*Intent) {\n\tif !p.IsSetIntents() {\n\t\treturn AgentInfo_Intents_DEFAULT\n\t}\n\treturn p.Intents\n}\n\nvar AgentInfo_WorkInfo_DEFAULT *AgentWorkInfo\n\nfunc (p *AgentInfo) GetWorkInfo() (v *AgentWorkInfo) {\n\tif !p.IsSetWorkInfo() {\n\t\treturn AgentInfo_WorkInfo_DEFAULT\n\t}\n\treturn p.WorkInfo\n}\n\nvar AgentInfo_ReferenceID_DEFAULT string\n\nfunc (p *AgentInfo) GetReferenceID() (v string) {\n\tif !p.IsSetReferenceID() {\n\t\treturn AgentInfo_ReferenceID_DEFAULT\n\t}\n\treturn *p.ReferenceID\n}\n\nvar AgentInfo_FirstVersion_DEFAULT string\n\nfunc (p *AgentInfo) GetFirstVersion() (v string) {\n\tif !p.IsSetFirstVersion() {\n\t\treturn AgentInfo_FirstVersion_DEFAULT\n\t}\n\treturn *p.FirstVersion\n}\n\nvar AgentInfo_CurrentVersion_DEFAULT string\n\nfunc (p *AgentInfo) GetCurrentVersion() (v string) {\n\tif !p.IsSetCurrentVersion() {\n\t\treturn AgentInfo_CurrentVersion_DEFAULT\n\t}\n\treturn *p.CurrentVersion\n}\n\nvar AgentInfo_ReferenceInfoStatus_DEFAULT ReferenceInfoStatus\n\nfunc (p *AgentInfo) GetReferenceInfoStatus() (v ReferenceInfoStatus) {\n\tif !p.IsSetReferenceInfoStatus() {\n\t\treturn AgentInfo_ReferenceInfoStatus_DEFAULT\n\t}\n\treturn *p.ReferenceInfoStatus\n}\n\nvar AgentInfo_Description_DEFAULT string\n\nfunc (p *AgentInfo) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn AgentInfo_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar AgentInfo_UpdateType_DEFAULT ReferenceUpdateType\n\nfunc (p *AgentInfo) GetUpdateType() (v ReferenceUpdateType) {\n\tif !p.IsSetUpdateType() {\n\t\treturn AgentInfo_UpdateType_DEFAULT\n\t}\n\treturn *p.UpdateType\n}\n\nvar fieldIDToName_AgentInfo = map[int16]string{\n\t1:  \"id\",\n\t2:  \"agent_type\",\n\t3:  \"name\",\n\t4:  \"position\",\n\t5:  \"icon_uri\",\n\t6:  \"intents\",\n\t7:  \"work_info\",\n\t8:  \"reference_id\",\n\t9:  \"first_version\",\n\t10: \"current_version\",\n\t11: \"reference_info_status\",\n\t12: \"description\",\n\t13: \"update_type\",\n}\n\nfunc (p *AgentInfo) IsSetID() bool {\n\treturn p.ID != nil\n}\n\nfunc (p *AgentInfo) IsSetAgentType() bool {\n\treturn p.AgentType != nil\n}\n\nfunc (p *AgentInfo) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *AgentInfo) IsSetPosition() bool {\n\treturn p.Position != nil\n}\n\nfunc (p *AgentInfo) IsSetIconURI() bool {\n\treturn p.IconURI != nil\n}\n\nfunc (p *AgentInfo) IsSetIntents() bool {\n\treturn p.Intents != nil\n}\n\nfunc (p *AgentInfo) IsSetWorkInfo() bool {\n\treturn p.WorkInfo != nil\n}\n\nfunc (p *AgentInfo) IsSetReferenceID() bool {\n\treturn p.ReferenceID != nil\n}\n\nfunc (p *AgentInfo) IsSetFirstVersion() bool {\n\treturn p.FirstVersion != nil\n}\n\nfunc (p *AgentInfo) IsSetCurrentVersion() bool {\n\treturn p.CurrentVersion != nil\n}\n\nfunc (p *AgentInfo) IsSetReferenceInfoStatus() bool {\n\treturn p.ReferenceInfoStatus != nil\n}\n\nfunc (p *AgentInfo) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *AgentInfo) IsSetUpdateType() bool {\n\treturn p.UpdateType != nil\n}\n\nfunc (p *AgentInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *AgentType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := AgentType(v)\n\t\t_field = &tmp\n\t}\n\tp.AgentType = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewAgentPosition()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Position = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Intent, 0, size)\n\tvalues := make([]Intent, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Intents = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewAgentWorkInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.WorkInfo = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ReferenceID = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FirstVersion = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CurrentVersion = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *ReferenceInfoStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ReferenceInfoStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.ReferenceInfoStatus = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *AgentInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *ReferenceUpdateType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ReferenceUpdateType(v)\n\t\t_field = &tmp\n\t}\n\tp.UpdateType = _field\n\treturn nil\n}\n\nfunc (p *AgentInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AgentInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetID() {\n\t\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAgentType() {\n\t\tif err = oprot.WriteFieldBegin(\"agent_type\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AgentType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPosition() {\n\t\tif err = oprot.WriteFieldBegin(\"position\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Position.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIconURI() {\n\t\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IconURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIntents() {\n\t\tif err = oprot.WriteFieldBegin(\"intents\", thrift.LIST, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Intents)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Intents {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"work_info\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.WorkInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReferenceID() {\n\t\tif err = oprot.WriteFieldBegin(\"reference_id\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ReferenceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFirstVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"first_version\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FirstVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCurrentVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"current_version\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CurrentVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReferenceInfoStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"reference_info_status\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ReferenceInfoStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *AgentInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUpdateType() {\n\t\tif err = oprot.WriteFieldBegin(\"update_type\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.UpdateType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *AgentInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentInfo(%+v)\", *p)\n\n}\n\ntype AgentPosition struct {\n\tX float64 `thrift:\"x,1\" form:\"x\" json:\"x\" query:\"x\"`\n\tY float64 `thrift:\"y,2\" form:\"y\" json:\"y\" query:\"y\"`\n}\n\nfunc NewAgentPosition() *AgentPosition {\n\treturn &AgentPosition{}\n}\n\nfunc (p *AgentPosition) InitDefault() {\n}\n\nfunc (p *AgentPosition) GetX() (v float64) {\n\treturn p.X\n}\n\nfunc (p *AgentPosition) GetY() (v float64) {\n\treturn p.Y\n}\n\nvar fieldIDToName_AgentPosition = map[int16]string{\n\t1: \"x\",\n\t2: \"y\",\n}\n\nfunc (p *AgentPosition) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentPosition[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentPosition) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.X = _field\n\treturn nil\n}\nfunc (p *AgentPosition) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Y = _field\n\treturn nil\n}\n\nfunc (p *AgentPosition) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AgentPosition\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentPosition) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"x\", thrift.DOUBLE, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.X); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AgentPosition) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"y\", thrift.DOUBLE, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.Y); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *AgentPosition) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentPosition(%+v)\", *p)\n\n}\n\ntype Intent struct {\n\tIntentID    *string `thrift:\"intent_id,1,optional\" form:\"intent_id\" json:\"intent_id,omitempty\" query:\"intent_id\"`\n\tPrompt      *string `thrift:\"prompt,2,optional\" form:\"prompt\" json:\"prompt,omitempty\" query:\"prompt\"`\n\tNextAgentID *string `thrift:\"next_agent_id,3,optional\" form:\"next_agent_id\" json:\"next_agent_id,omitempty\" query:\"next_agent_id\"`\n}\n\nfunc NewIntent() *Intent {\n\treturn &Intent{}\n}\n\nfunc (p *Intent) InitDefault() {\n}\n\nvar Intent_IntentID_DEFAULT string\n\nfunc (p *Intent) GetIntentID() (v string) {\n\tif !p.IsSetIntentID() {\n\t\treturn Intent_IntentID_DEFAULT\n\t}\n\treturn *p.IntentID\n}\n\nvar Intent_Prompt_DEFAULT string\n\nfunc (p *Intent) GetPrompt() (v string) {\n\tif !p.IsSetPrompt() {\n\t\treturn Intent_Prompt_DEFAULT\n\t}\n\treturn *p.Prompt\n}\n\nvar Intent_NextAgentID_DEFAULT string\n\nfunc (p *Intent) GetNextAgentID() (v string) {\n\tif !p.IsSetNextAgentID() {\n\t\treturn Intent_NextAgentID_DEFAULT\n\t}\n\treturn *p.NextAgentID\n}\n\nvar fieldIDToName_Intent = map[int16]string{\n\t1: \"intent_id\",\n\t2: \"prompt\",\n\t3: \"next_agent_id\",\n}\n\nfunc (p *Intent) IsSetIntentID() bool {\n\treturn p.IntentID != nil\n}\n\nfunc (p *Intent) IsSetPrompt() bool {\n\treturn p.Prompt != nil\n}\n\nfunc (p *Intent) IsSetNextAgentID() bool {\n\treturn p.NextAgentID != nil\n}\n\nfunc (p *Intent) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Intent[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Intent) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IntentID = _field\n\treturn nil\n}\nfunc (p *Intent) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Prompt = _field\n\treturn nil\n}\nfunc (p *Intent) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NextAgentID = _field\n\treturn nil\n}\n\nfunc (p *Intent) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Intent\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Intent) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIntentID() {\n\t\tif err = oprot.WriteFieldBegin(\"intent_id\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IntentID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Intent) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrompt() {\n\t\tif err = oprot.WriteFieldBegin(\"prompt\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Prompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Intent) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNextAgentID() {\n\t\tif err = oprot.WriteFieldBegin(\"next_agent_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.NextAgentID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *Intent) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Intent(%+v)\", *p)\n\n}\n\n// Information about each module in the agent workspace\ntype AgentWorkInfo struct {\n\t// The agent prompts the front-end information, the server does not need to perceive\n\tPrompt *string `thrift:\"prompt,1,optional\" form:\"prompt\" json:\"prompt,omitempty\" query:\"prompt\"`\n\t// model configuration\n\tOtherInfo *string `thrift:\"other_info,2,optional\" form:\"other_info\" json:\"other_info,omitempty\" query:\"other_info\"`\n\t// Plugin information\n\tTools *string `thrift:\"tools,3,optional\" form:\"tools\" json:\"tools,omitempty\" query:\"tools\"`\n\t// Dataset information\n\tDataset *string `thrift:\"dataset,4,optional\" form:\"dataset\" json:\"dataset,omitempty\" query:\"dataset\"`\n\t// Workflow information\n\tWorkflow *string `thrift:\"workflow,5,optional\" form:\"workflow\" json:\"workflow,omitempty\" query:\"workflow\"`\n\t// system_info_all with bot\n\tSystemInfoAll *string `thrift:\"system_info_all,6,optional\" form:\"system_info_all\" json:\"system_info_all,omitempty\" query:\"system_info_all\"`\n\t// backtrack configuration\n\tJumpConfig *JumpConfig `thrift:\"jump_config,7,optional\" form:\"jump_config\" json:\"jump_config,omitempty\" query:\"jump_config\"`\n\t// Referral Configuration\n\tSuggestReply *string `thrift:\"suggest_reply,8,optional\" form:\"suggest_reply\" json:\"suggest_reply,omitempty\" query:\"suggest_reply\"`\n\t// Hook configuration\n\tHookInfo *string `thrift:\"hook_info,9,optional\" form:\"hook_info\" json:\"hook_info,omitempty\" query:\"hook_info\"`\n}\n\nfunc NewAgentWorkInfo() *AgentWorkInfo {\n\treturn &AgentWorkInfo{}\n}\n\nfunc (p *AgentWorkInfo) InitDefault() {\n}\n\nvar AgentWorkInfo_Prompt_DEFAULT string\n\nfunc (p *AgentWorkInfo) GetPrompt() (v string) {\n\tif !p.IsSetPrompt() {\n\t\treturn AgentWorkInfo_Prompt_DEFAULT\n\t}\n\treturn *p.Prompt\n}\n\nvar AgentWorkInfo_OtherInfo_DEFAULT string\n\nfunc (p *AgentWorkInfo) GetOtherInfo() (v string) {\n\tif !p.IsSetOtherInfo() {\n\t\treturn AgentWorkInfo_OtherInfo_DEFAULT\n\t}\n\treturn *p.OtherInfo\n}\n\nvar AgentWorkInfo_Tools_DEFAULT string\n\nfunc (p *AgentWorkInfo) GetTools() (v string) {\n\tif !p.IsSetTools() {\n\t\treturn AgentWorkInfo_Tools_DEFAULT\n\t}\n\treturn *p.Tools\n}\n\nvar AgentWorkInfo_Dataset_DEFAULT string\n\nfunc (p *AgentWorkInfo) GetDataset() (v string) {\n\tif !p.IsSetDataset() {\n\t\treturn AgentWorkInfo_Dataset_DEFAULT\n\t}\n\treturn *p.Dataset\n}\n\nvar AgentWorkInfo_Workflow_DEFAULT string\n\nfunc (p *AgentWorkInfo) GetWorkflow() (v string) {\n\tif !p.IsSetWorkflow() {\n\t\treturn AgentWorkInfo_Workflow_DEFAULT\n\t}\n\treturn *p.Workflow\n}\n\nvar AgentWorkInfo_SystemInfoAll_DEFAULT string\n\nfunc (p *AgentWorkInfo) GetSystemInfoAll() (v string) {\n\tif !p.IsSetSystemInfoAll() {\n\t\treturn AgentWorkInfo_SystemInfoAll_DEFAULT\n\t}\n\treturn *p.SystemInfoAll\n}\n\nvar AgentWorkInfo_JumpConfig_DEFAULT *JumpConfig\n\nfunc (p *AgentWorkInfo) GetJumpConfig() (v *JumpConfig) {\n\tif !p.IsSetJumpConfig() {\n\t\treturn AgentWorkInfo_JumpConfig_DEFAULT\n\t}\n\treturn p.JumpConfig\n}\n\nvar AgentWorkInfo_SuggestReply_DEFAULT string\n\nfunc (p *AgentWorkInfo) GetSuggestReply() (v string) {\n\tif !p.IsSetSuggestReply() {\n\t\treturn AgentWorkInfo_SuggestReply_DEFAULT\n\t}\n\treturn *p.SuggestReply\n}\n\nvar AgentWorkInfo_HookInfo_DEFAULT string\n\nfunc (p *AgentWorkInfo) GetHookInfo() (v string) {\n\tif !p.IsSetHookInfo() {\n\t\treturn AgentWorkInfo_HookInfo_DEFAULT\n\t}\n\treturn *p.HookInfo\n}\n\nvar fieldIDToName_AgentWorkInfo = map[int16]string{\n\t1: \"prompt\",\n\t2: \"other_info\",\n\t3: \"tools\",\n\t4: \"dataset\",\n\t5: \"workflow\",\n\t6: \"system_info_all\",\n\t7: \"jump_config\",\n\t8: \"suggest_reply\",\n\t9: \"hook_info\",\n}\n\nfunc (p *AgentWorkInfo) IsSetPrompt() bool {\n\treturn p.Prompt != nil\n}\n\nfunc (p *AgentWorkInfo) IsSetOtherInfo() bool {\n\treturn p.OtherInfo != nil\n}\n\nfunc (p *AgentWorkInfo) IsSetTools() bool {\n\treturn p.Tools != nil\n}\n\nfunc (p *AgentWorkInfo) IsSetDataset() bool {\n\treturn p.Dataset != nil\n}\n\nfunc (p *AgentWorkInfo) IsSetWorkflow() bool {\n\treturn p.Workflow != nil\n}\n\nfunc (p *AgentWorkInfo) IsSetSystemInfoAll() bool {\n\treturn p.SystemInfoAll != nil\n}\n\nfunc (p *AgentWorkInfo) IsSetJumpConfig() bool {\n\treturn p.JumpConfig != nil\n}\n\nfunc (p *AgentWorkInfo) IsSetSuggestReply() bool {\n\treturn p.SuggestReply != nil\n}\n\nfunc (p *AgentWorkInfo) IsSetHookInfo() bool {\n\treturn p.HookInfo != nil\n}\n\nfunc (p *AgentWorkInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentWorkInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentWorkInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Prompt = _field\n\treturn nil\n}\nfunc (p *AgentWorkInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OtherInfo = _field\n\treturn nil\n}\nfunc (p *AgentWorkInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Tools = _field\n\treturn nil\n}\nfunc (p *AgentWorkInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Dataset = _field\n\treturn nil\n}\nfunc (p *AgentWorkInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Workflow = _field\n\treturn nil\n}\nfunc (p *AgentWorkInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SystemInfoAll = _field\n\treturn nil\n}\nfunc (p *AgentWorkInfo) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewJumpConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.JumpConfig = _field\n\treturn nil\n}\nfunc (p *AgentWorkInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SuggestReply = _field\n\treturn nil\n}\nfunc (p *AgentWorkInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HookInfo = _field\n\treturn nil\n}\n\nfunc (p *AgentWorkInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AgentWorkInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentWorkInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrompt() {\n\t\tif err = oprot.WriteFieldBegin(\"prompt\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Prompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AgentWorkInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOtherInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"other_info\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OtherInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AgentWorkInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTools() {\n\t\tif err = oprot.WriteFieldBegin(\"tools\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Tools); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *AgentWorkInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDataset() {\n\t\tif err = oprot.WriteFieldBegin(\"dataset\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Dataset); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *AgentWorkInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflow() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Workflow); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *AgentWorkInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSystemInfoAll() {\n\t\tif err = oprot.WriteFieldBegin(\"system_info_all\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SystemInfoAll); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *AgentWorkInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetJumpConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"jump_config\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.JumpConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *AgentWorkInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestReply() {\n\t\tif err = oprot.WriteFieldBegin(\"suggest_reply\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SuggestReply); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *AgentWorkInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHookInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"hook_info\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.HookInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *AgentWorkInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentWorkInfo(%+v)\", *p)\n\n}\n\ntype JumpConfig struct {\n\tBacktrack       BacktrackMode          `thrift:\"backtrack,1\" form:\"backtrack\" json:\"backtrack\" query:\"backtrack\"`\n\tRecognition     RecognitionMode        `thrift:\"recognition,2\" form:\"recognition\" json:\"recognition\" query:\"recognition\"`\n\tIndependentConf *IndependentModeConfig `thrift:\"independent_conf,3,optional\" form:\"independent_conf\" json:\"independent_conf,omitempty\" query:\"independent_conf\"`\n}\n\nfunc NewJumpConfig() *JumpConfig {\n\treturn &JumpConfig{}\n}\n\nfunc (p *JumpConfig) InitDefault() {\n}\n\nfunc (p *JumpConfig) GetBacktrack() (v BacktrackMode) {\n\treturn p.Backtrack\n}\n\nfunc (p *JumpConfig) GetRecognition() (v RecognitionMode) {\n\treturn p.Recognition\n}\n\nvar JumpConfig_IndependentConf_DEFAULT *IndependentModeConfig\n\nfunc (p *JumpConfig) GetIndependentConf() (v *IndependentModeConfig) {\n\tif !p.IsSetIndependentConf() {\n\t\treturn JumpConfig_IndependentConf_DEFAULT\n\t}\n\treturn p.IndependentConf\n}\n\nvar fieldIDToName_JumpConfig = map[int16]string{\n\t1: \"backtrack\",\n\t2: \"recognition\",\n\t3: \"independent_conf\",\n}\n\nfunc (p *JumpConfig) IsSetIndependentConf() bool {\n\treturn p.IndependentConf != nil\n}\n\nfunc (p *JumpConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_JumpConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *JumpConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field BacktrackMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BacktrackMode(v)\n\t}\n\tp.Backtrack = _field\n\treturn nil\n}\nfunc (p *JumpConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field RecognitionMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = RecognitionMode(v)\n\t}\n\tp.Recognition = _field\n\treturn nil\n}\nfunc (p *JumpConfig) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewIndependentModeConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.IndependentConf = _field\n\treturn nil\n}\n\nfunc (p *JumpConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"JumpConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *JumpConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"backtrack\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Backtrack)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *JumpConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"recognition\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Recognition)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *JumpConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIndependentConf() {\n\t\tif err = oprot.WriteFieldBegin(\"independent_conf\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.IndependentConf.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *JumpConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"JumpConfig(%+v)\", *p)\n\n}\n\ntype IndependentModeConfig struct {\n\t// Judge timing\n\tJudgeTiming  IndependentTiming               `thrift:\"judge_timing,1\" form:\"judge_timing\" json:\"judge_timing\" query:\"judge_timing\"`\n\tHistoryRound int32                           `thrift:\"history_round,2\" form:\"history_round\" json:\"history_round\" query:\"history_round\"`\n\tModelType    IndependentRecognitionModelType `thrift:\"model_type,3\" form:\"model_type\" json:\"model_type\" query:\"model_type\"`\n\tModelID      *string                         `thrift:\"model_id,4,optional\" form:\"model_id\" json:\"model_id,omitempty\" query:\"model_id\"`\n\tPrompt       *string                         `thrift:\"prompt,5,optional\" form:\"prompt\" json:\"prompt,omitempty\" query:\"prompt\"`\n}\n\nfunc NewIndependentModeConfig() *IndependentModeConfig {\n\treturn &IndependentModeConfig{}\n}\n\nfunc (p *IndependentModeConfig) InitDefault() {\n}\n\nfunc (p *IndependentModeConfig) GetJudgeTiming() (v IndependentTiming) {\n\treturn p.JudgeTiming\n}\n\nfunc (p *IndependentModeConfig) GetHistoryRound() (v int32) {\n\treturn p.HistoryRound\n}\n\nfunc (p *IndependentModeConfig) GetModelType() (v IndependentRecognitionModelType) {\n\treturn p.ModelType\n}\n\nvar IndependentModeConfig_ModelID_DEFAULT string\n\nfunc (p *IndependentModeConfig) GetModelID() (v string) {\n\tif !p.IsSetModelID() {\n\t\treturn IndependentModeConfig_ModelID_DEFAULT\n\t}\n\treturn *p.ModelID\n}\n\nvar IndependentModeConfig_Prompt_DEFAULT string\n\nfunc (p *IndependentModeConfig) GetPrompt() (v string) {\n\tif !p.IsSetPrompt() {\n\t\treturn IndependentModeConfig_Prompt_DEFAULT\n\t}\n\treturn *p.Prompt\n}\n\nvar fieldIDToName_IndependentModeConfig = map[int16]string{\n\t1: \"judge_timing\",\n\t2: \"history_round\",\n\t3: \"model_type\",\n\t4: \"model_id\",\n\t5: \"prompt\",\n}\n\nfunc (p *IndependentModeConfig) IsSetModelID() bool {\n\treturn p.ModelID != nil\n}\n\nfunc (p *IndependentModeConfig) IsSetPrompt() bool {\n\treturn p.Prompt != nil\n}\n\nfunc (p *IndependentModeConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IndependentModeConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IndependentModeConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field IndependentTiming\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = IndependentTiming(v)\n\t}\n\tp.JudgeTiming = _field\n\treturn nil\n}\nfunc (p *IndependentModeConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HistoryRound = _field\n\treturn nil\n}\nfunc (p *IndependentModeConfig) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field IndependentRecognitionModelType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = IndependentRecognitionModelType(v)\n\t}\n\tp.ModelType = _field\n\treturn nil\n}\nfunc (p *IndependentModeConfig) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ModelID = _field\n\treturn nil\n}\nfunc (p *IndependentModeConfig) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Prompt = _field\n\treturn nil\n}\n\nfunc (p *IndependentModeConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"IndependentModeConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IndependentModeConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"judge_timing\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.JudgeTiming)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *IndependentModeConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"history_round\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.HistoryRound); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *IndependentModeConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_type\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ModelType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *IndependentModeConfig) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelID() {\n\t\tif err = oprot.WriteFieldBegin(\"model_id\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ModelID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *IndependentModeConfig) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrompt() {\n\t\tif err = oprot.WriteFieldBegin(\"prompt\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Prompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *IndependentModeConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IndependentModeConfig(%+v)\", *p)\n\n}\n\ntype BotTagInfo struct {\n\tBotID int64 `thrift:\"bot_id,1\" form:\"bot_id\" json:\"bot_id\" query:\"bot_id\"`\n\t// time_capsule\n\tKey string `thrift:\"key,2\" form:\"key\" json:\"key\" query:\"key\"`\n\t// TimeCapsuleInfo json\n\tValue   string `thrift:\"value,3\" form:\"value\" json:\"value\" query:\"value\"`\n\tVersion int64  `thrift:\"version,4\" form:\"version\" json:\"version\" query:\"version\"`\n}\n\nfunc NewBotTagInfo() *BotTagInfo {\n\treturn &BotTagInfo{}\n}\n\nfunc (p *BotTagInfo) InitDefault() {\n}\n\nfunc (p *BotTagInfo) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *BotTagInfo) GetKey() (v string) {\n\treturn p.Key\n}\n\nfunc (p *BotTagInfo) GetValue() (v string) {\n\treturn p.Value\n}\n\nfunc (p *BotTagInfo) GetVersion() (v int64) {\n\treturn p.Version\n}\n\nvar fieldIDToName_BotTagInfo = map[int16]string{\n\t1: \"bot_id\",\n\t2: \"key\",\n\t3: \"value\",\n\t4: \"version\",\n}\n\nfunc (p *BotTagInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotTagInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotTagInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *BotTagInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *BotTagInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *BotTagInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\n\nfunc (p *BotTagInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotTagInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotTagInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotTagInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"key\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Key); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotTagInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"value\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Value); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotTagInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *BotTagInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotTagInfo(%+v)\", *p)\n\n}\n\ntype PublishDraftBotRequest struct {\n\tSpaceID  int64     `thrift:\"space_id,1,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\tBotID    int64     `thrift:\"bot_id,2,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\tWorkInfo *WorkInfo `thrift:\"work_info,3\" form:\"work_info\" json:\"work_info\" query:\"work_info\"`\n\t// Key represents connector_name enumeration Feishu = \"feishu\" -- obsolete\n\tConnectorList map[string][]*Connector `thrift:\"connector_list,4\" form:\"connector_list\" json:\"connector_list\" query:\"connector_list\"`\n\t// The key represents connector_id, and the value is the published parameter\n\tConnectors map[string]map[string]string `thrift:\"connectors,5\" form:\"connectors\" json:\"connectors\" query:\"connectors\"`\n\t// Default 0\n\tBotMode    *BotMode      `thrift:\"botMode,6,optional\" form:\"botMode\" json:\"botMode,omitempty\" query:\"botMode\"`\n\tAgents     []*AgentInfo  `thrift:\"agents,7,optional\" form:\"agents\" json:\"agents,omitempty\" query:\"agents\"`\n\tCanvasData *string       `thrift:\"canvas_data,8,optional\" form:\"canvas_data\" json:\"canvas_data,omitempty\" query:\"canvas_data\"`\n\tBotTagInfo []*BotTagInfo `thrift:\"bot_tag_info,9,optional\" form:\"bot_tag_info\" json:\"bot_tag_info,omitempty\" query:\"bot_tag_info\"`\n\t// Configuration published to the market\n\tSubmitBotMarketConfig *SubmitBotMarketConfig `thrift:\"submit_bot_market_config,10,optional\" form:\"submit_bot_market_config\" json:\"submit_bot_market_config,omitempty\" query:\"submit_bot_market_config\"`\n\tPublishID             *string                `thrift:\"publish_id,11,optional\" form:\"publish_id\" json:\"publish_id,omitempty\" query:\"publish_id\"`\n\t// Specify the release of a CommitVersion\n\tCommitVersion *string `thrift:\"commit_version,12,optional\" form:\"commit_version\" json:\"commit_version,omitempty\" query:\"commit_version\"`\n\t// Release type, online release/pre-release\n\tPublishType *PublishType `thrift:\"publish_type,13,optional\" form:\"publish_type\" json:\"publish_type,omitempty\" query:\"publish_type\"`\n\t// Pre-release other information\n\tPrePublishExt *string `thrift:\"pre_publish_ext,14,optional\" form:\"pre_publish_ext\" json:\"pre_publish_ext,omitempty\" query:\"pre_publish_ext\"`\n\t// Replace the history_info in the original workinfo\n\tHistoryInfo *string `thrift:\"history_info,15,optional\" form:\"history_info\" json:\"history_info,omitempty\" query:\"history_info\"`\n}\n\nfunc NewPublishDraftBotRequest() *PublishDraftBotRequest {\n\treturn &PublishDraftBotRequest{}\n}\n\nfunc (p *PublishDraftBotRequest) InitDefault() {\n}\n\nfunc (p *PublishDraftBotRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *PublishDraftBotRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar PublishDraftBotRequest_WorkInfo_DEFAULT *WorkInfo\n\nfunc (p *PublishDraftBotRequest) GetWorkInfo() (v *WorkInfo) {\n\tif !p.IsSetWorkInfo() {\n\t\treturn PublishDraftBotRequest_WorkInfo_DEFAULT\n\t}\n\treturn p.WorkInfo\n}\n\nfunc (p *PublishDraftBotRequest) GetConnectorList() (v map[string][]*Connector) {\n\treturn p.ConnectorList\n}\n\nfunc (p *PublishDraftBotRequest) GetConnectors() (v map[string]map[string]string) {\n\treturn p.Connectors\n}\n\nvar PublishDraftBotRequest_BotMode_DEFAULT BotMode\n\nfunc (p *PublishDraftBotRequest) GetBotMode() (v BotMode) {\n\tif !p.IsSetBotMode() {\n\t\treturn PublishDraftBotRequest_BotMode_DEFAULT\n\t}\n\treturn *p.BotMode\n}\n\nvar PublishDraftBotRequest_Agents_DEFAULT []*AgentInfo\n\nfunc (p *PublishDraftBotRequest) GetAgents() (v []*AgentInfo) {\n\tif !p.IsSetAgents() {\n\t\treturn PublishDraftBotRequest_Agents_DEFAULT\n\t}\n\treturn p.Agents\n}\n\nvar PublishDraftBotRequest_CanvasData_DEFAULT string\n\nfunc (p *PublishDraftBotRequest) GetCanvasData() (v string) {\n\tif !p.IsSetCanvasData() {\n\t\treturn PublishDraftBotRequest_CanvasData_DEFAULT\n\t}\n\treturn *p.CanvasData\n}\n\nvar PublishDraftBotRequest_BotTagInfo_DEFAULT []*BotTagInfo\n\nfunc (p *PublishDraftBotRequest) GetBotTagInfo() (v []*BotTagInfo) {\n\tif !p.IsSetBotTagInfo() {\n\t\treturn PublishDraftBotRequest_BotTagInfo_DEFAULT\n\t}\n\treturn p.BotTagInfo\n}\n\nvar PublishDraftBotRequest_SubmitBotMarketConfig_DEFAULT *SubmitBotMarketConfig\n\nfunc (p *PublishDraftBotRequest) GetSubmitBotMarketConfig() (v *SubmitBotMarketConfig) {\n\tif !p.IsSetSubmitBotMarketConfig() {\n\t\treturn PublishDraftBotRequest_SubmitBotMarketConfig_DEFAULT\n\t}\n\treturn p.SubmitBotMarketConfig\n}\n\nvar PublishDraftBotRequest_PublishID_DEFAULT string\n\nfunc (p *PublishDraftBotRequest) GetPublishID() (v string) {\n\tif !p.IsSetPublishID() {\n\t\treturn PublishDraftBotRequest_PublishID_DEFAULT\n\t}\n\treturn *p.PublishID\n}\n\nvar PublishDraftBotRequest_CommitVersion_DEFAULT string\n\nfunc (p *PublishDraftBotRequest) GetCommitVersion() (v string) {\n\tif !p.IsSetCommitVersion() {\n\t\treturn PublishDraftBotRequest_CommitVersion_DEFAULT\n\t}\n\treturn *p.CommitVersion\n}\n\nvar PublishDraftBotRequest_PublishType_DEFAULT PublishType\n\nfunc (p *PublishDraftBotRequest) GetPublishType() (v PublishType) {\n\tif !p.IsSetPublishType() {\n\t\treturn PublishDraftBotRequest_PublishType_DEFAULT\n\t}\n\treturn *p.PublishType\n}\n\nvar PublishDraftBotRequest_PrePublishExt_DEFAULT string\n\nfunc (p *PublishDraftBotRequest) GetPrePublishExt() (v string) {\n\tif !p.IsSetPrePublishExt() {\n\t\treturn PublishDraftBotRequest_PrePublishExt_DEFAULT\n\t}\n\treturn *p.PrePublishExt\n}\n\nvar PublishDraftBotRequest_HistoryInfo_DEFAULT string\n\nfunc (p *PublishDraftBotRequest) GetHistoryInfo() (v string) {\n\tif !p.IsSetHistoryInfo() {\n\t\treturn PublishDraftBotRequest_HistoryInfo_DEFAULT\n\t}\n\treturn *p.HistoryInfo\n}\n\nvar fieldIDToName_PublishDraftBotRequest = map[int16]string{\n\t1:  \"space_id\",\n\t2:  \"bot_id\",\n\t3:  \"work_info\",\n\t4:  \"connector_list\",\n\t5:  \"connectors\",\n\t6:  \"botMode\",\n\t7:  \"agents\",\n\t8:  \"canvas_data\",\n\t9:  \"bot_tag_info\",\n\t10: \"submit_bot_market_config\",\n\t11: \"publish_id\",\n\t12: \"commit_version\",\n\t13: \"publish_type\",\n\t14: \"pre_publish_ext\",\n\t15: \"history_info\",\n}\n\nfunc (p *PublishDraftBotRequest) IsSetWorkInfo() bool {\n\treturn p.WorkInfo != nil\n}\n\nfunc (p *PublishDraftBotRequest) IsSetBotMode() bool {\n\treturn p.BotMode != nil\n}\n\nfunc (p *PublishDraftBotRequest) IsSetAgents() bool {\n\treturn p.Agents != nil\n}\n\nfunc (p *PublishDraftBotRequest) IsSetCanvasData() bool {\n\treturn p.CanvasData != nil\n}\n\nfunc (p *PublishDraftBotRequest) IsSetBotTagInfo() bool {\n\treturn p.BotTagInfo != nil\n}\n\nfunc (p *PublishDraftBotRequest) IsSetSubmitBotMarketConfig() bool {\n\treturn p.SubmitBotMarketConfig != nil\n}\n\nfunc (p *PublishDraftBotRequest) IsSetPublishID() bool {\n\treturn p.PublishID != nil\n}\n\nfunc (p *PublishDraftBotRequest) IsSetCommitVersion() bool {\n\treturn p.CommitVersion != nil\n}\n\nfunc (p *PublishDraftBotRequest) IsSetPublishType() bool {\n\treturn p.PublishType != nil\n}\n\nfunc (p *PublishDraftBotRequest) IsSetPrePublishExt() bool {\n\treturn p.PrePublishExt != nil\n}\n\nfunc (p *PublishDraftBotRequest) IsSetHistoryInfo() bool {\n\treturn p.HistoryInfo != nil\n}\n\nfunc (p *PublishDraftBotRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishDraftBotRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PublishDraftBotRequest[fieldId]))\n}\n\nfunc (p *PublishDraftBotRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewWorkInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.WorkInfo = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string][]*Connector, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\t\t_, size, err := iprot.ReadListBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_val := make([]*Connector, 0, size)\n\t\tvalues := make([]Connector, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\t_elem := &values[i]\n\t\t\t_elem.InitDefault()\n\n\t\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t_val = append(_val, _elem)\n\t\t}\n\t\tif err := iprot.ReadListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorList = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_val := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key1 string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key1 = v\n\t\t\t}\n\n\t\t\tvar _val1 string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val1 = v\n\t\t\t}\n\n\t\t\t_val[_key1] = _val1\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Connectors = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *BotMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := BotMode(v)\n\t\t_field = &tmp\n\t}\n\tp.BotMode = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*AgentInfo, 0, size)\n\tvalues := make([]AgentInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Agents = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CanvasData = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField9(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*BotTagInfo, 0, size)\n\tvalues := make([]BotTagInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BotTagInfo = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewSubmitBotMarketConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SubmitBotMarketConfig = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishID = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitVersion = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *PublishType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := PublishType(v)\n\t\t_field = &tmp\n\t}\n\tp.PublishType = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PrePublishExt = _field\n\treturn nil\n}\nfunc (p *PublishDraftBotRequest) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HistoryInfo = _field\n\treturn nil\n}\n\nfunc (p *PublishDraftBotRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishDraftBotRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishDraftBotRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"work_info\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.WorkInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_list\", thrift.MAP, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.LIST, len(p.ConnectorList)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.ConnectorList {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range v {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connectors\", thrift.MAP, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.MAP, len(p.Connectors)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Connectors {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range v {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotMode() {\n\t\tif err = oprot.WriteFieldBegin(\"botMode\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.BotMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAgents() {\n\t\tif err = oprot.WriteFieldBegin(\"agents\", thrift.LIST, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Agents)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Agents {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCanvasData() {\n\t\tif err = oprot.WriteFieldBegin(\"canvas_data\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CanvasData); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotTagInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_tag_info\", thrift.LIST, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.BotTagInfo)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.BotTagInfo {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubmitBotMarketConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"submit_bot_market_config\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SubmitBotMarketConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishID() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_id\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PublishID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_version\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishType() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_type\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PublishType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrePublishExt() {\n\t\tif err = oprot.WriteFieldBegin(\"pre_publish_ext\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PrePublishExt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *PublishDraftBotRequest) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHistoryInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"history_info\", thrift.STRING, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.HistoryInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\n\nfunc (p *PublishDraftBotRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishDraftBotRequest(%+v)\", *p)\n\n}\n\ntype SubmitBotMarketConfig struct {\n\t// Whether to publish to the market\n\tNeedSubmit *bool `thrift:\"need_submit,1,optional\" form:\"need_submit\" json:\"need_submit,omitempty\" query:\"need_submit\"`\n\t// Is it open source?\n\tOpenSource *bool `thrift:\"open_source,2,optional\" form:\"open_source\" json:\"open_source,omitempty\" query:\"open_source\"`\n\t// classification\n\tCategoryID *string `thrift:\"category_id,3,optional\" form:\"category_id\" json:\"category_id,omitempty\" query:\"category_id\"`\n}\n\nfunc NewSubmitBotMarketConfig() *SubmitBotMarketConfig {\n\treturn &SubmitBotMarketConfig{}\n}\n\nfunc (p *SubmitBotMarketConfig) InitDefault() {\n}\n\nvar SubmitBotMarketConfig_NeedSubmit_DEFAULT bool\n\nfunc (p *SubmitBotMarketConfig) GetNeedSubmit() (v bool) {\n\tif !p.IsSetNeedSubmit() {\n\t\treturn SubmitBotMarketConfig_NeedSubmit_DEFAULT\n\t}\n\treturn *p.NeedSubmit\n}\n\nvar SubmitBotMarketConfig_OpenSource_DEFAULT bool\n\nfunc (p *SubmitBotMarketConfig) GetOpenSource() (v bool) {\n\tif !p.IsSetOpenSource() {\n\t\treturn SubmitBotMarketConfig_OpenSource_DEFAULT\n\t}\n\treturn *p.OpenSource\n}\n\nvar SubmitBotMarketConfig_CategoryID_DEFAULT string\n\nfunc (p *SubmitBotMarketConfig) GetCategoryID() (v string) {\n\tif !p.IsSetCategoryID() {\n\t\treturn SubmitBotMarketConfig_CategoryID_DEFAULT\n\t}\n\treturn *p.CategoryID\n}\n\nvar fieldIDToName_SubmitBotMarketConfig = map[int16]string{\n\t1: \"need_submit\",\n\t2: \"open_source\",\n\t3: \"category_id\",\n}\n\nfunc (p *SubmitBotMarketConfig) IsSetNeedSubmit() bool {\n\treturn p.NeedSubmit != nil\n}\n\nfunc (p *SubmitBotMarketConfig) IsSetOpenSource() bool {\n\treturn p.OpenSource != nil\n}\n\nfunc (p *SubmitBotMarketConfig) IsSetCategoryID() bool {\n\treturn p.CategoryID != nil\n}\n\nfunc (p *SubmitBotMarketConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SubmitBotMarketConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SubmitBotMarketConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NeedSubmit = _field\n\treturn nil\n}\nfunc (p *SubmitBotMarketConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OpenSource = _field\n\treturn nil\n}\nfunc (p *SubmitBotMarketConfig) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CategoryID = _field\n\treturn nil\n}\n\nfunc (p *SubmitBotMarketConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitBotMarketConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SubmitBotMarketConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedSubmit() {\n\t\tif err = oprot.WriteFieldBegin(\"need_submit\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NeedSubmit); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SubmitBotMarketConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOpenSource() {\n\t\tif err = oprot.WriteFieldBegin(\"open_source\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.OpenSource); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SubmitBotMarketConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCategoryID() {\n\t\tif err = oprot.WriteFieldBegin(\"category_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CategoryID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *SubmitBotMarketConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SubmitBotMarketConfig(%+v)\", *p)\n\n}\n\n// Information for each module in the workspace\ntype WorkInfo struct {\n\tMessageInfo             *string `thrift:\"message_info,1,optional\" form:\"message_info\" json:\"message_info,omitempty\" query:\"message_info\"`\n\tPrompt                  *string `thrift:\"prompt,2,optional\" form:\"prompt\" json:\"prompt,omitempty\" query:\"prompt\"`\n\tVariable                *string `thrift:\"variable,3,optional\" form:\"variable\" json:\"variable,omitempty\" query:\"variable\"`\n\tOtherInfo               *string `thrift:\"other_info,4,optional\" form:\"other_info\" json:\"other_info,omitempty\" query:\"other_info\"`\n\tHistoryInfo             *string `thrift:\"history_info,5,optional\" form:\"history_info\" json:\"history_info,omitempty\" query:\"history_info\"`\n\tTools                   *string `thrift:\"tools,6,optional\" form:\"tools\" json:\"tools,omitempty\" query:\"tools\"`\n\tSystemInfoAll           *string `thrift:\"system_info_all,7,optional\" form:\"system_info_all\" json:\"system_info_all,omitempty\" query:\"system_info_all\"`\n\tDataset                 *string `thrift:\"dataset,8,optional\" form:\"dataset\" json:\"dataset,omitempty\" query:\"dataset\"`\n\tOnboarding              *string `thrift:\"onboarding,9,optional\" form:\"onboarding\" json:\"onboarding,omitempty\" query:\"onboarding\"`\n\tProfileMemory           *string `thrift:\"profile_memory,10,optional\" form:\"profile_memory\" json:\"profile_memory,omitempty\" query:\"profile_memory\"`\n\tTableInfo               *string `thrift:\"table_info,11,optional\" form:\"table_info\" json:\"table_info,omitempty\" query:\"table_info\"`\n\tWorkflow                *string `thrift:\"workflow,12,optional\" form:\"workflow\" json:\"workflow,omitempty\" query:\"workflow\"`\n\tTask                    *string `thrift:\"task,13,optional\" form:\"task\" json:\"task,omitempty\" query:\"task\"`\n\tSuggestReply            *string `thrift:\"suggest_reply,14,optional\" form:\"suggest_reply\" json:\"suggest_reply,omitempty\" query:\"suggest_reply\"`\n\tTts                     *string `thrift:\"tts,15,optional\" form:\"tts\" json:\"tts,omitempty\" query:\"tts\"`\n\tBackgroundImageInfoList *string `thrift:\"background_image_info_list,16,optional\" form:\"background_image_info_list\" json:\"background_image_info_list,omitempty\" query:\"background_image_info_list\"`\n\t// Quick Instruction\n\tShortcuts *playground.ShortcutStruct `thrift:\"shortcuts,17,optional\" form:\"shortcuts\" json:\"shortcuts,omitempty\" query:\"shortcuts\"`\n\t// Hook configuration\n\tHookInfo *string `thrift:\"hook_info,18,optional\" form:\"hook_info\" json:\"hook_info,omitempty\" query:\"hook_info\"`\n\t// User query collection configuration\n\tUserQueryCollectConf *UserQueryCollectConf `thrift:\"user_query_collect_conf,19,optional\" form:\"user_query_collect_conf\" json:\"user_query_collect_conf,omitempty\" query:\"user_query_collect_conf\"`\n\t//Workflow pattern orchestration data\n\tLayoutInfo *LayoutInfo `thrift:\"layout_info,20,optional\" form:\"layout_info\" json:\"layout_info,omitempty\" query:\"layout_info\"`\n}\n\nfunc NewWorkInfo() *WorkInfo {\n\treturn &WorkInfo{}\n}\n\nfunc (p *WorkInfo) InitDefault() {\n}\n\nvar WorkInfo_MessageInfo_DEFAULT string\n\nfunc (p *WorkInfo) GetMessageInfo() (v string) {\n\tif !p.IsSetMessageInfo() {\n\t\treturn WorkInfo_MessageInfo_DEFAULT\n\t}\n\treturn *p.MessageInfo\n}\n\nvar WorkInfo_Prompt_DEFAULT string\n\nfunc (p *WorkInfo) GetPrompt() (v string) {\n\tif !p.IsSetPrompt() {\n\t\treturn WorkInfo_Prompt_DEFAULT\n\t}\n\treturn *p.Prompt\n}\n\nvar WorkInfo_Variable_DEFAULT string\n\nfunc (p *WorkInfo) GetVariable() (v string) {\n\tif !p.IsSetVariable() {\n\t\treturn WorkInfo_Variable_DEFAULT\n\t}\n\treturn *p.Variable\n}\n\nvar WorkInfo_OtherInfo_DEFAULT string\n\nfunc (p *WorkInfo) GetOtherInfo() (v string) {\n\tif !p.IsSetOtherInfo() {\n\t\treturn WorkInfo_OtherInfo_DEFAULT\n\t}\n\treturn *p.OtherInfo\n}\n\nvar WorkInfo_HistoryInfo_DEFAULT string\n\nfunc (p *WorkInfo) GetHistoryInfo() (v string) {\n\tif !p.IsSetHistoryInfo() {\n\t\treturn WorkInfo_HistoryInfo_DEFAULT\n\t}\n\treturn *p.HistoryInfo\n}\n\nvar WorkInfo_Tools_DEFAULT string\n\nfunc (p *WorkInfo) GetTools() (v string) {\n\tif !p.IsSetTools() {\n\t\treturn WorkInfo_Tools_DEFAULT\n\t}\n\treturn *p.Tools\n}\n\nvar WorkInfo_SystemInfoAll_DEFAULT string\n\nfunc (p *WorkInfo) GetSystemInfoAll() (v string) {\n\tif !p.IsSetSystemInfoAll() {\n\t\treturn WorkInfo_SystemInfoAll_DEFAULT\n\t}\n\treturn *p.SystemInfoAll\n}\n\nvar WorkInfo_Dataset_DEFAULT string\n\nfunc (p *WorkInfo) GetDataset() (v string) {\n\tif !p.IsSetDataset() {\n\t\treturn WorkInfo_Dataset_DEFAULT\n\t}\n\treturn *p.Dataset\n}\n\nvar WorkInfo_Onboarding_DEFAULT string\n\nfunc (p *WorkInfo) GetOnboarding() (v string) {\n\tif !p.IsSetOnboarding() {\n\t\treturn WorkInfo_Onboarding_DEFAULT\n\t}\n\treturn *p.Onboarding\n}\n\nvar WorkInfo_ProfileMemory_DEFAULT string\n\nfunc (p *WorkInfo) GetProfileMemory() (v string) {\n\tif !p.IsSetProfileMemory() {\n\t\treturn WorkInfo_ProfileMemory_DEFAULT\n\t}\n\treturn *p.ProfileMemory\n}\n\nvar WorkInfo_TableInfo_DEFAULT string\n\nfunc (p *WorkInfo) GetTableInfo() (v string) {\n\tif !p.IsSetTableInfo() {\n\t\treturn WorkInfo_TableInfo_DEFAULT\n\t}\n\treturn *p.TableInfo\n}\n\nvar WorkInfo_Workflow_DEFAULT string\n\nfunc (p *WorkInfo) GetWorkflow() (v string) {\n\tif !p.IsSetWorkflow() {\n\t\treturn WorkInfo_Workflow_DEFAULT\n\t}\n\treturn *p.Workflow\n}\n\nvar WorkInfo_Task_DEFAULT string\n\nfunc (p *WorkInfo) GetTask() (v string) {\n\tif !p.IsSetTask() {\n\t\treturn WorkInfo_Task_DEFAULT\n\t}\n\treturn *p.Task\n}\n\nvar WorkInfo_SuggestReply_DEFAULT string\n\nfunc (p *WorkInfo) GetSuggestReply() (v string) {\n\tif !p.IsSetSuggestReply() {\n\t\treturn WorkInfo_SuggestReply_DEFAULT\n\t}\n\treturn *p.SuggestReply\n}\n\nvar WorkInfo_Tts_DEFAULT string\n\nfunc (p *WorkInfo) GetTts() (v string) {\n\tif !p.IsSetTts() {\n\t\treturn WorkInfo_Tts_DEFAULT\n\t}\n\treturn *p.Tts\n}\n\nvar WorkInfo_BackgroundImageInfoList_DEFAULT string\n\nfunc (p *WorkInfo) GetBackgroundImageInfoList() (v string) {\n\tif !p.IsSetBackgroundImageInfoList() {\n\t\treturn WorkInfo_BackgroundImageInfoList_DEFAULT\n\t}\n\treturn *p.BackgroundImageInfoList\n}\n\nvar WorkInfo_Shortcuts_DEFAULT *playground.ShortcutStruct\n\nfunc (p *WorkInfo) GetShortcuts() (v *playground.ShortcutStruct) {\n\tif !p.IsSetShortcuts() {\n\t\treturn WorkInfo_Shortcuts_DEFAULT\n\t}\n\treturn p.Shortcuts\n}\n\nvar WorkInfo_HookInfo_DEFAULT string\n\nfunc (p *WorkInfo) GetHookInfo() (v string) {\n\tif !p.IsSetHookInfo() {\n\t\treturn WorkInfo_HookInfo_DEFAULT\n\t}\n\treturn *p.HookInfo\n}\n\nvar WorkInfo_UserQueryCollectConf_DEFAULT *UserQueryCollectConf\n\nfunc (p *WorkInfo) GetUserQueryCollectConf() (v *UserQueryCollectConf) {\n\tif !p.IsSetUserQueryCollectConf() {\n\t\treturn WorkInfo_UserQueryCollectConf_DEFAULT\n\t}\n\treturn p.UserQueryCollectConf\n}\n\nvar WorkInfo_LayoutInfo_DEFAULT *LayoutInfo\n\nfunc (p *WorkInfo) GetLayoutInfo() (v *LayoutInfo) {\n\tif !p.IsSetLayoutInfo() {\n\t\treturn WorkInfo_LayoutInfo_DEFAULT\n\t}\n\treturn p.LayoutInfo\n}\n\nvar fieldIDToName_WorkInfo = map[int16]string{\n\t1:  \"message_info\",\n\t2:  \"prompt\",\n\t3:  \"variable\",\n\t4:  \"other_info\",\n\t5:  \"history_info\",\n\t6:  \"tools\",\n\t7:  \"system_info_all\",\n\t8:  \"dataset\",\n\t9:  \"onboarding\",\n\t10: \"profile_memory\",\n\t11: \"table_info\",\n\t12: \"workflow\",\n\t13: \"task\",\n\t14: \"suggest_reply\",\n\t15: \"tts\",\n\t16: \"background_image_info_list\",\n\t17: \"shortcuts\",\n\t18: \"hook_info\",\n\t19: \"user_query_collect_conf\",\n\t20: \"layout_info\",\n}\n\nfunc (p *WorkInfo) IsSetMessageInfo() bool {\n\treturn p.MessageInfo != nil\n}\n\nfunc (p *WorkInfo) IsSetPrompt() bool {\n\treturn p.Prompt != nil\n}\n\nfunc (p *WorkInfo) IsSetVariable() bool {\n\treturn p.Variable != nil\n}\n\nfunc (p *WorkInfo) IsSetOtherInfo() bool {\n\treturn p.OtherInfo != nil\n}\n\nfunc (p *WorkInfo) IsSetHistoryInfo() bool {\n\treturn p.HistoryInfo != nil\n}\n\nfunc (p *WorkInfo) IsSetTools() bool {\n\treturn p.Tools != nil\n}\n\nfunc (p *WorkInfo) IsSetSystemInfoAll() bool {\n\treturn p.SystemInfoAll != nil\n}\n\nfunc (p *WorkInfo) IsSetDataset() bool {\n\treturn p.Dataset != nil\n}\n\nfunc (p *WorkInfo) IsSetOnboarding() bool {\n\treturn p.Onboarding != nil\n}\n\nfunc (p *WorkInfo) IsSetProfileMemory() bool {\n\treturn p.ProfileMemory != nil\n}\n\nfunc (p *WorkInfo) IsSetTableInfo() bool {\n\treturn p.TableInfo != nil\n}\n\nfunc (p *WorkInfo) IsSetWorkflow() bool {\n\treturn p.Workflow != nil\n}\n\nfunc (p *WorkInfo) IsSetTask() bool {\n\treturn p.Task != nil\n}\n\nfunc (p *WorkInfo) IsSetSuggestReply() bool {\n\treturn p.SuggestReply != nil\n}\n\nfunc (p *WorkInfo) IsSetTts() bool {\n\treturn p.Tts != nil\n}\n\nfunc (p *WorkInfo) IsSetBackgroundImageInfoList() bool {\n\treturn p.BackgroundImageInfoList != nil\n}\n\nfunc (p *WorkInfo) IsSetShortcuts() bool {\n\treturn p.Shortcuts != nil\n}\n\nfunc (p *WorkInfo) IsSetHookInfo() bool {\n\treturn p.HookInfo != nil\n}\n\nfunc (p *WorkInfo) IsSetUserQueryCollectConf() bool {\n\treturn p.UserQueryCollectConf != nil\n}\n\nfunc (p *WorkInfo) IsSetLayoutInfo() bool {\n\treturn p.LayoutInfo != nil\n}\n\nfunc (p *WorkInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.MessageInfo = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Prompt = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Variable = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OtherInfo = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HistoryInfo = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Tools = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SystemInfoAll = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Dataset = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Onboarding = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProfileMemory = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TableInfo = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Workflow = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Task = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SuggestReply = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Tts = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BackgroundImageInfoList = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField17(iprot thrift.TProtocol) error {\n\t_field := playground.NewShortcutStruct()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Shortcuts = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HookInfo = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField19(iprot thrift.TProtocol) error {\n\t_field := NewUserQueryCollectConf()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserQueryCollectConf = _field\n\treturn nil\n}\nfunc (p *WorkInfo) ReadField20(iprot thrift.TProtocol) error {\n\t_field := NewLayoutInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.LayoutInfo = _field\n\treturn nil\n}\n\nfunc (p *WorkInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMessageInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"message_info\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.MessageInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrompt() {\n\t\tif err = oprot.WriteFieldBegin(\"prompt\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Prompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVariable() {\n\t\tif err = oprot.WriteFieldBegin(\"variable\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Variable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOtherInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"other_info\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OtherInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHistoryInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"history_info\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.HistoryInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTools() {\n\t\tif err = oprot.WriteFieldBegin(\"tools\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Tools); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSystemInfoAll() {\n\t\tif err = oprot.WriteFieldBegin(\"system_info_all\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SystemInfoAll); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDataset() {\n\t\tif err = oprot.WriteFieldBegin(\"dataset\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Dataset); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOnboarding() {\n\t\tif err = oprot.WriteFieldBegin(\"onboarding\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Onboarding); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProfileMemory() {\n\t\tif err = oprot.WriteFieldBegin(\"profile_memory\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProfileMemory); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"table_info\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TableInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflow() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Workflow); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTask() {\n\t\tif err = oprot.WriteFieldBegin(\"task\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Task); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestReply() {\n\t\tif err = oprot.WriteFieldBegin(\"suggest_reply\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SuggestReply); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTts() {\n\t\tif err = oprot.WriteFieldBegin(\"tts\", thrift.STRING, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Tts); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBackgroundImageInfoList() {\n\t\tif err = oprot.WriteFieldBegin(\"background_image_info_list\", thrift.STRING, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BackgroundImageInfoList); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShortcuts() {\n\t\tif err = oprot.WriteFieldBegin(\"shortcuts\", thrift.STRUCT, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Shortcuts.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHookInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"hook_info\", thrift.STRING, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.HookInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserQueryCollectConf() {\n\t\tif err = oprot.WriteFieldBegin(\"user_query_collect_conf\", thrift.STRUCT, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.UserQueryCollectConf.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *WorkInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLayoutInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"layout_info\", thrift.STRUCT, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.LayoutInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\n\nfunc (p *WorkInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkInfo(%+v)\", *p)\n\n}\n\ntype UserQueryCollectConf struct {\n\t// Whether to turn on the collection switch\n\tIsCollected bool `thrift:\"IsCollected,1\" form:\"is_collected\" json:\"is_collected\"`\n\t// Privacy Policy Link\n\tPrivatePolicy string `thrift:\"PrivatePolicy,2\" form:\"private_policy\" json:\"private_policy\"`\n}\n\nfunc NewUserQueryCollectConf() *UserQueryCollectConf {\n\treturn &UserQueryCollectConf{}\n}\n\nfunc (p *UserQueryCollectConf) InitDefault() {\n}\n\nfunc (p *UserQueryCollectConf) GetIsCollected() (v bool) {\n\treturn p.IsCollected\n}\n\nfunc (p *UserQueryCollectConf) GetPrivatePolicy() (v string) {\n\treturn p.PrivatePolicy\n}\n\nvar fieldIDToName_UserQueryCollectConf = map[int16]string{\n\t1: \"IsCollected\",\n\t2: \"PrivatePolicy\",\n}\n\nfunc (p *UserQueryCollectConf) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserQueryCollectConf[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserQueryCollectConf) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsCollected = _field\n\treturn nil\n}\nfunc (p *UserQueryCollectConf) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PrivatePolicy = _field\n\treturn nil\n}\n\nfunc (p *UserQueryCollectConf) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserQueryCollectConf\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserQueryCollectConf) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsCollected\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsCollected); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserQueryCollectConf) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PrivatePolicy\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PrivatePolicy); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UserQueryCollectConf) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserQueryCollectConf(%+v)\", *p)\n\n}\n\ntype LayoutInfo struct {\n\t// workflowId\n\tWorkflowId string `thrift:\"WorkflowId,1\" form:\"workflow_id\" json:\"workflow_id\"`\n\t// PluginId\n\tPluginId string `thrift:\"PluginId,2\" form:\"plugin_id\" json:\"plugin_id\"`\n}\n\nfunc NewLayoutInfo() *LayoutInfo {\n\treturn &LayoutInfo{}\n}\n\nfunc (p *LayoutInfo) InitDefault() {\n}\n\nfunc (p *LayoutInfo) GetWorkflowId() (v string) {\n\treturn p.WorkflowId\n}\n\nfunc (p *LayoutInfo) GetPluginId() (v string) {\n\treturn p.PluginId\n}\n\nvar fieldIDToName_LayoutInfo = map[int16]string{\n\t1: \"WorkflowId\",\n\t2: \"PluginId\",\n}\n\nfunc (p *LayoutInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_LayoutInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *LayoutInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowId = _field\n\treturn nil\n}\nfunc (p *LayoutInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginId = _field\n\treturn nil\n}\n\nfunc (p *LayoutInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"LayoutInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *LayoutInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowId\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *LayoutInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PluginId\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *LayoutInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"LayoutInfo(%+v)\", *p)\n\n}\n\ntype ListDraftBotHistoryRequest struct {\n\tSpaceID     int64       `thrift:\"space_id,1,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\tBotID       int64       `thrift:\"bot_id,2,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\tPageIndex   int32       `thrift:\"page_index,3,required\" form:\"page_index,required\" json:\"page_index,required\" query:\"page_index,required\"`\n\tPageSize    int32       `thrift:\"page_size,4,required\" form:\"page_size,required\" json:\"page_size,required\" query:\"page_size,required\"`\n\tHistoryType HistoryType `thrift:\"history_type,5,required\" form:\"history_type,required\" json:\"history_type,required\" query:\"history_type,required\"`\n\tConnectorID *string     `thrift:\"connector_id,6,optional\" form:\"connector_id\" json:\"connector_id,omitempty\" query:\"connector_id\"`\n}\n\nfunc NewListDraftBotHistoryRequest() *ListDraftBotHistoryRequest {\n\treturn &ListDraftBotHistoryRequest{}\n}\n\nfunc (p *ListDraftBotHistoryRequest) InitDefault() {\n}\n\nfunc (p *ListDraftBotHistoryRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *ListDraftBotHistoryRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *ListDraftBotHistoryRequest) GetPageIndex() (v int32) {\n\treturn p.PageIndex\n}\n\nfunc (p *ListDraftBotHistoryRequest) GetPageSize() (v int32) {\n\treturn p.PageSize\n}\n\nfunc (p *ListDraftBotHistoryRequest) GetHistoryType() (v HistoryType) {\n\treturn p.HistoryType\n}\n\nvar ListDraftBotHistoryRequest_ConnectorID_DEFAULT string\n\nfunc (p *ListDraftBotHistoryRequest) GetConnectorID() (v string) {\n\tif !p.IsSetConnectorID() {\n\t\treturn ListDraftBotHistoryRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar fieldIDToName_ListDraftBotHistoryRequest = map[int16]string{\n\t1: \"space_id\",\n\t2: \"bot_id\",\n\t3: \"page_index\",\n\t4: \"page_size\",\n\t5: \"history_type\",\n\t6: \"connector_id\",\n}\n\nfunc (p *ListDraftBotHistoryRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *ListDraftBotHistoryRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\tvar issetBotID bool = false\n\tvar issetPageIndex bool = false\n\tvar issetPageSize bool = false\n\tvar issetHistoryType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPageIndex = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPageSize = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetHistoryType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetPageIndex {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetPageSize {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetHistoryType {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDraftBotHistoryRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDraftBotHistoryRequest[fieldId]))\n}\n\nfunc (p *ListDraftBotHistoryRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ListDraftBotHistoryRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ListDraftBotHistoryRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageIndex = _field\n\treturn nil\n}\nfunc (p *ListDraftBotHistoryRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageSize = _field\n\treturn nil\n}\nfunc (p *ListDraftBotHistoryRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field HistoryType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = HistoryType(v)\n\t}\n\tp.HistoryType = _field\n\treturn nil\n}\nfunc (p *ListDraftBotHistoryRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\n\nfunc (p *ListDraftBotHistoryRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDraftBotHistoryRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDraftBotHistoryRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDraftBotHistoryRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDraftBotHistoryRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"page_index\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.PageIndex); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListDraftBotHistoryRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"page_size\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.PageSize); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListDraftBotHistoryRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"history_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.HistoryType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListDraftBotHistoryRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *ListDraftBotHistoryRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDraftBotHistoryRequest(%+v)\", *p)\n\n}\n\ntype ListDraftBotHistoryResponse struct {\n\tCode int64                    `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string                   `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData *ListDraftBotHistoryData `thrift:\"data,3,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n}\n\nfunc NewListDraftBotHistoryResponse() *ListDraftBotHistoryResponse {\n\treturn &ListDraftBotHistoryResponse{}\n}\n\nfunc (p *ListDraftBotHistoryResponse) InitDefault() {\n}\n\nfunc (p *ListDraftBotHistoryResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListDraftBotHistoryResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ListDraftBotHistoryResponse_Data_DEFAULT *ListDraftBotHistoryData\n\nfunc (p *ListDraftBotHistoryResponse) GetData() (v *ListDraftBotHistoryData) {\n\tif !p.IsSetData() {\n\t\treturn ListDraftBotHistoryResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_ListDraftBotHistoryResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *ListDraftBotHistoryResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *ListDraftBotHistoryResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDraftBotHistoryResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDraftBotHistoryResponse[fieldId]))\n}\n\nfunc (p *ListDraftBotHistoryResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListDraftBotHistoryResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListDraftBotHistoryResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewListDraftBotHistoryData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *ListDraftBotHistoryResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDraftBotHistoryResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDraftBotHistoryResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDraftBotHistoryResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDraftBotHistoryResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ListDraftBotHistoryResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDraftBotHistoryResponse(%+v)\", *p)\n\n}\n\ntype ListDraftBotHistoryData struct {\n\tHistoryInfos []*HistoryInfo `thrift:\"history_infos,1\" form:\"history_infos\" json:\"history_infos\" query:\"history_infos\"`\n\tTotal        int32          `thrift:\"total,2\" form:\"total\" json:\"total\" query:\"total\"`\n}\n\nfunc NewListDraftBotHistoryData() *ListDraftBotHistoryData {\n\treturn &ListDraftBotHistoryData{}\n}\n\nfunc (p *ListDraftBotHistoryData) InitDefault() {\n}\n\nfunc (p *ListDraftBotHistoryData) GetHistoryInfos() (v []*HistoryInfo) {\n\treturn p.HistoryInfos\n}\n\nfunc (p *ListDraftBotHistoryData) GetTotal() (v int32) {\n\treturn p.Total\n}\n\nvar fieldIDToName_ListDraftBotHistoryData = map[int16]string{\n\t1: \"history_infos\",\n\t2: \"total\",\n}\n\nfunc (p *ListDraftBotHistoryData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDraftBotHistoryData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListDraftBotHistoryData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*HistoryInfo, 0, size)\n\tvalues := make([]HistoryInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.HistoryInfos = _field\n\treturn nil\n}\nfunc (p *ListDraftBotHistoryData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\n\nfunc (p *ListDraftBotHistoryData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDraftBotHistoryData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDraftBotHistoryData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"history_infos\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.HistoryInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.HistoryInfos {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDraftBotHistoryData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ListDraftBotHistoryData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDraftBotHistoryData(%+v)\", *p)\n\n}\n\n// If historical information is preserved\ntype HistoryInfo struct {\n\tVersion     string      `thrift:\"version,1\" form:\"version\" json:\"version\" query:\"version\"`\n\tHistoryType HistoryType `thrift:\"history_type,2\" form:\"history_type\" json:\"history_type\" query:\"history_type\"`\n\t// Additional information added to the historical record\n\tInfo           string           `thrift:\"info,3\" form:\"info\" json:\"info\" query:\"info\"`\n\tCreateTime     string           `thrift:\"create_time,4\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\tConnectorInfos []*ConnectorInfo `thrift:\"connector_infos,5\" form:\"connector_infos\" json:\"connector_infos\" query:\"connector_infos\"`\n\tCreator        *Creator         `thrift:\"creator,6\" form:\"creator\" json:\"creator\" query:\"creator\"`\n\tPublishID      *string          `thrift:\"publish_id,7,optional\" form:\"publish_id\" json:\"publish_id,omitempty\" query:\"publish_id\"`\n\t// Instructions to fill in when submitting\n\tCommitRemark *string `thrift:\"commit_remark,8,optional\" form:\"commit_remark\" json:\"commit_remark,omitempty\" query:\"commit_remark\"`\n}\n\nfunc NewHistoryInfo() *HistoryInfo {\n\treturn &HistoryInfo{}\n}\n\nfunc (p *HistoryInfo) InitDefault() {\n}\n\nfunc (p *HistoryInfo) GetVersion() (v string) {\n\treturn p.Version\n}\n\nfunc (p *HistoryInfo) GetHistoryType() (v HistoryType) {\n\treturn p.HistoryType\n}\n\nfunc (p *HistoryInfo) GetInfo() (v string) {\n\treturn p.Info\n}\n\nfunc (p *HistoryInfo) GetCreateTime() (v string) {\n\treturn p.CreateTime\n}\n\nfunc (p *HistoryInfo) GetConnectorInfos() (v []*ConnectorInfo) {\n\treturn p.ConnectorInfos\n}\n\nvar HistoryInfo_Creator_DEFAULT *Creator\n\nfunc (p *HistoryInfo) GetCreator() (v *Creator) {\n\tif !p.IsSetCreator() {\n\t\treturn HistoryInfo_Creator_DEFAULT\n\t}\n\treturn p.Creator\n}\n\nvar HistoryInfo_PublishID_DEFAULT string\n\nfunc (p *HistoryInfo) GetPublishID() (v string) {\n\tif !p.IsSetPublishID() {\n\t\treturn HistoryInfo_PublishID_DEFAULT\n\t}\n\treturn *p.PublishID\n}\n\nvar HistoryInfo_CommitRemark_DEFAULT string\n\nfunc (p *HistoryInfo) GetCommitRemark() (v string) {\n\tif !p.IsSetCommitRemark() {\n\t\treturn HistoryInfo_CommitRemark_DEFAULT\n\t}\n\treturn *p.CommitRemark\n}\n\nvar fieldIDToName_HistoryInfo = map[int16]string{\n\t1: \"version\",\n\t2: \"history_type\",\n\t3: \"info\",\n\t4: \"create_time\",\n\t5: \"connector_infos\",\n\t6: \"creator\",\n\t7: \"publish_id\",\n\t8: \"commit_remark\",\n}\n\nfunc (p *HistoryInfo) IsSetCreator() bool {\n\treturn p.Creator != nil\n}\n\nfunc (p *HistoryInfo) IsSetPublishID() bool {\n\treturn p.PublishID != nil\n}\n\nfunc (p *HistoryInfo) IsSetCommitRemark() bool {\n\treturn p.CommitRemark != nil\n}\n\nfunc (p *HistoryInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_HistoryInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *HistoryInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *HistoryInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field HistoryType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = HistoryType(v)\n\t}\n\tp.HistoryType = _field\n\treturn nil\n}\nfunc (p *HistoryInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Info = _field\n\treturn nil\n}\nfunc (p *HistoryInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *HistoryInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ConnectorInfo, 0, size)\n\tvalues := make([]ConnectorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorInfos = _field\n\treturn nil\n}\nfunc (p *HistoryInfo) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewCreator()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Creator = _field\n\treturn nil\n}\nfunc (p *HistoryInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishID = _field\n\treturn nil\n}\nfunc (p *HistoryInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitRemark = _field\n\treturn nil\n}\n\nfunc (p *HistoryInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"HistoryInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *HistoryInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *HistoryInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"history_type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.HistoryType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *HistoryInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"info\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Info); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *HistoryInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *HistoryInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_infos\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ConnectorInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ConnectorInfos {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *HistoryInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator\", thrift.STRUCT, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Creator.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *HistoryInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishID() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_id\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PublishID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *HistoryInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitRemark() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_remark\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitRemark); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *HistoryInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"HistoryInfo(%+v)\", *p)\n\n}\n\ntype ConnectorInfo struct {\n\tID              string                 `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tName            string                 `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tIcon            string                 `thrift:\"icon,3\" form:\"icon\" json:\"icon\" query:\"icon\"`\n\tConnectorStatus ConnectorDynamicStatus `thrift:\"connector_status,4\" form:\"connector_status\" json:\"connector_status\" query:\"connector_status\"`\n\tShareLink       *string                `thrift:\"share_link,5,optional\" form:\"share_link\" json:\"share_link,omitempty\" query:\"share_link\"`\n}\n\nfunc NewConnectorInfo() *ConnectorInfo {\n\treturn &ConnectorInfo{}\n}\n\nfunc (p *ConnectorInfo) InitDefault() {\n}\n\nfunc (p *ConnectorInfo) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *ConnectorInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ConnectorInfo) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nfunc (p *ConnectorInfo) GetConnectorStatus() (v ConnectorDynamicStatus) {\n\treturn p.ConnectorStatus\n}\n\nvar ConnectorInfo_ShareLink_DEFAULT string\n\nfunc (p *ConnectorInfo) GetShareLink() (v string) {\n\tif !p.IsSetShareLink() {\n\t\treturn ConnectorInfo_ShareLink_DEFAULT\n\t}\n\treturn *p.ShareLink\n}\n\nvar fieldIDToName_ConnectorInfo = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"icon\",\n\t4: \"connector_status\",\n\t5: \"share_link\",\n}\n\nfunc (p *ConnectorInfo) IsSetShareLink() bool {\n\treturn p.ShareLink != nil\n}\n\nfunc (p *ConnectorInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConnectorInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field ConnectorDynamicStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ConnectorDynamicStatus(v)\n\t}\n\tp.ConnectorStatus = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ShareLink = _field\n\treturn nil\n}\n\nfunc (p *ConnectorInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConnectorInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_status\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ConnectorStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShareLink() {\n\t\tif err = oprot.WriteFieldBegin(\"share_link\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ShareLink); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConnectorInfo(%+v)\", *p)\n\n}\n\ntype GetIconRequest struct {\n\tIconType IconType `thrift:\"icon_type,1\" form:\"icon_type\" json:\"icon_type\" query:\"icon_type\"`\n}\n\nfunc NewGetIconRequest() *GetIconRequest {\n\treturn &GetIconRequest{}\n}\n\nfunc (p *GetIconRequest) InitDefault() {\n}\n\nfunc (p *GetIconRequest) GetIconType() (v IconType) {\n\treturn p.IconType\n}\n\nvar fieldIDToName_GetIconRequest = map[int16]string{\n\t1: \"icon_type\",\n}\n\nfunc (p *GetIconRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetIconRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetIconRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field IconType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = IconType(v)\n\t}\n\tp.IconType = _field\n\treturn nil\n}\n\nfunc (p *GetIconRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetIconRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetIconRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.IconType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *GetIconRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetIconRequest(%+v)\", *p)\n\n}\n\ntype Icon struct {\n\tURL string `thrift:\"url,1\" form:\"url\" json:\"url\" query:\"url\"`\n\tURI string `thrift:\"uri,2\" form:\"uri\" json:\"uri\" query:\"uri\"`\n}\n\nfunc NewIcon() *Icon {\n\treturn &Icon{}\n}\n\nfunc (p *Icon) InitDefault() {\n}\n\nfunc (p *Icon) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *Icon) GetURI() (v string) {\n\treturn p.URI\n}\n\nvar fieldIDToName_Icon = map[int16]string{\n\t1: \"url\",\n\t2: \"uri\",\n}\n\nfunc (p *Icon) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Icon[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Icon) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *Icon) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URI = _field\n\treturn nil\n}\n\nfunc (p *Icon) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Icon\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Icon) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Icon) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"uri\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *Icon) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Icon(%+v)\", *p)\n\n}\n\ntype GetIconResponseData struct {\n\tIconList []*Icon `thrift:\"icon_list,1\" form:\"icon_list\" json:\"icon_list\" query:\"icon_list\"`\n}\n\nfunc NewGetIconResponseData() *GetIconResponseData {\n\treturn &GetIconResponseData{}\n}\n\nfunc (p *GetIconResponseData) InitDefault() {\n}\n\nfunc (p *GetIconResponseData) GetIconList() (v []*Icon) {\n\treturn p.IconList\n}\n\nvar fieldIDToName_GetIconResponseData = map[int16]string{\n\t1: \"icon_list\",\n}\n\nfunc (p *GetIconResponseData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetIconResponseData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetIconResponseData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Icon, 0, size)\n\tvalues := make([]Icon, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.IconList = _field\n\treturn nil\n}\n\nfunc (p *GetIconResponseData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetIconResponseData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetIconResponseData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.IconList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.IconList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *GetIconResponseData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetIconResponseData(%+v)\", *p)\n\n}\n\ntype GetIconResponse struct {\n\tCode int64                `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string               `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData *GetIconResponseData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n}\n\nfunc NewGetIconResponse() *GetIconResponse {\n\treturn &GetIconResponse{}\n}\n\nfunc (p *GetIconResponse) InitDefault() {\n}\n\nfunc (p *GetIconResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetIconResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetIconResponse_Data_DEFAULT *GetIconResponseData\n\nfunc (p *GetIconResponse) GetData() (v *GetIconResponseData) {\n\tif !p.IsSetData() {\n\t\treturn GetIconResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_GetIconResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *GetIconResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetIconResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetIconResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetIconResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetIconResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetIconResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewGetIconResponseData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *GetIconResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetIconResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetIconResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetIconResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetIconResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *GetIconResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetIconResponse(%+v)\", *p)\n\n}\n\ntype GetUploadAuthTokenResponse struct {\n\tCode int64                   `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string                  `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData *GetUploadAuthTokenData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n}\n\nfunc NewGetUploadAuthTokenResponse() *GetUploadAuthTokenResponse {\n\treturn &GetUploadAuthTokenResponse{}\n}\n\nfunc (p *GetUploadAuthTokenResponse) InitDefault() {\n}\n\nfunc (p *GetUploadAuthTokenResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetUploadAuthTokenResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetUploadAuthTokenResponse_Data_DEFAULT *GetUploadAuthTokenData\n\nfunc (p *GetUploadAuthTokenResponse) GetData() (v *GetUploadAuthTokenData) {\n\tif !p.IsSetData() {\n\t\treturn GetUploadAuthTokenResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_GetUploadAuthTokenResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *GetUploadAuthTokenResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetUploadAuthTokenResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUploadAuthTokenResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewGetUploadAuthTokenData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *GetUploadAuthTokenResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUploadAuthTokenResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUploadAuthTokenResponse(%+v)\", *p)\n\n}\n\ntype GetUploadAuthTokenData struct {\n\tServiceID        string               `thrift:\"service_id,1\" form:\"service_id\" json:\"service_id\" query:\"service_id\"`\n\tUploadPathPrefix string               `thrift:\"upload_path_prefix,2\" form:\"upload_path_prefix\" json:\"upload_path_prefix\" query:\"upload_path_prefix\"`\n\tAuth             *UploadAuthTokenInfo `thrift:\"auth,3\" form:\"auth\" json:\"auth\" query:\"auth\"`\n\tUploadHost       string               `thrift:\"upload_host,4\" form:\"upload_host\" json:\"upload_host\" query:\"upload_host\"`\n\tSchema           string               `thrift:\"schema,5\" form:\"schema\" json:\"schema\" query:\"schema\"`\n}\n\nfunc NewGetUploadAuthTokenData() *GetUploadAuthTokenData {\n\treturn &GetUploadAuthTokenData{}\n}\n\nfunc (p *GetUploadAuthTokenData) InitDefault() {\n}\n\nfunc (p *GetUploadAuthTokenData) GetServiceID() (v string) {\n\treturn p.ServiceID\n}\n\nfunc (p *GetUploadAuthTokenData) GetUploadPathPrefix() (v string) {\n\treturn p.UploadPathPrefix\n}\n\nvar GetUploadAuthTokenData_Auth_DEFAULT *UploadAuthTokenInfo\n\nfunc (p *GetUploadAuthTokenData) GetAuth() (v *UploadAuthTokenInfo) {\n\tif !p.IsSetAuth() {\n\t\treturn GetUploadAuthTokenData_Auth_DEFAULT\n\t}\n\treturn p.Auth\n}\n\nfunc (p *GetUploadAuthTokenData) GetUploadHost() (v string) {\n\treturn p.UploadHost\n}\n\nfunc (p *GetUploadAuthTokenData) GetSchema() (v string) {\n\treturn p.Schema\n}\n\nvar fieldIDToName_GetUploadAuthTokenData = map[int16]string{\n\t1: \"service_id\",\n\t2: \"upload_path_prefix\",\n\t3: \"auth\",\n\t4: \"upload_host\",\n\t5: \"schema\",\n}\n\nfunc (p *GetUploadAuthTokenData) IsSetAuth() bool {\n\treturn p.Auth != nil\n}\n\nfunc (p *GetUploadAuthTokenData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUploadAuthTokenData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ServiceID = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UploadPathPrefix = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenData) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewUploadAuthTokenInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Auth = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UploadHost = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Schema = _field\n\treturn nil\n}\n\nfunc (p *GetUploadAuthTokenData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUploadAuthTokenData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"service_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ServiceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"upload_path_prefix\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UploadPathPrefix); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"auth\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Auth.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"upload_host\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UploadHost); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"schema\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Schema); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUploadAuthTokenData(%+v)\", *p)\n\n}\n\ntype UploadAuthTokenInfo struct {\n\tAccessKeyID     string `thrift:\"access_key_id,1\" form:\"access_key_id\" json:\"access_key_id\" query:\"access_key_id\"`\n\tSecretAccessKey string `thrift:\"secret_access_key,2\" form:\"secret_access_key\" json:\"secret_access_key\" query:\"secret_access_key\"`\n\tSessionToken    string `thrift:\"session_token,3\" form:\"session_token\" json:\"session_token\" query:\"session_token\"`\n\tExpiredTime     string `thrift:\"expired_time,4\" form:\"expired_time\" json:\"expired_time\" query:\"expired_time\"`\n\tCurrentTime     string `thrift:\"current_time,5\" form:\"current_time\" json:\"current_time\" query:\"current_time\"`\n}\n\nfunc NewUploadAuthTokenInfo() *UploadAuthTokenInfo {\n\treturn &UploadAuthTokenInfo{}\n}\n\nfunc (p *UploadAuthTokenInfo) InitDefault() {\n}\n\nfunc (p *UploadAuthTokenInfo) GetAccessKeyID() (v string) {\n\treturn p.AccessKeyID\n}\n\nfunc (p *UploadAuthTokenInfo) GetSecretAccessKey() (v string) {\n\treturn p.SecretAccessKey\n}\n\nfunc (p *UploadAuthTokenInfo) GetSessionToken() (v string) {\n\treturn p.SessionToken\n}\n\nfunc (p *UploadAuthTokenInfo) GetExpiredTime() (v string) {\n\treturn p.ExpiredTime\n}\n\nfunc (p *UploadAuthTokenInfo) GetCurrentTime() (v string) {\n\treturn p.CurrentTime\n}\n\nvar fieldIDToName_UploadAuthTokenInfo = map[int16]string{\n\t1: \"access_key_id\",\n\t2: \"secret_access_key\",\n\t3: \"session_token\",\n\t4: \"expired_time\",\n\t5: \"current_time\",\n}\n\nfunc (p *UploadAuthTokenInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadAuthTokenInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UploadAuthTokenInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AccessKeyID = _field\n\treturn nil\n}\nfunc (p *UploadAuthTokenInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SecretAccessKey = _field\n\treturn nil\n}\nfunc (p *UploadAuthTokenInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SessionToken = _field\n\treturn nil\n}\nfunc (p *UploadAuthTokenInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExpiredTime = _field\n\treturn nil\n}\nfunc (p *UploadAuthTokenInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CurrentTime = _field\n\treturn nil\n}\n\nfunc (p *UploadAuthTokenInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadAuthTokenInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadAuthTokenInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"access_key_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AccessKeyID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UploadAuthTokenInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"secret_access_key\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SecretAccessKey); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UploadAuthTokenInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"session_token\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SessionToken); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UploadAuthTokenInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"expired_time\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExpiredTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UploadAuthTokenInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"current_time\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CurrentTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *UploadAuthTokenInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadAuthTokenInfo(%+v)\", *p)\n\n}\n\ntype GetUploadAuthTokenRequest struct {\n\tScene    string `thrift:\"scene,1\" form:\"scene\" json:\"scene\" query:\"scene\"`\n\tDataType string `thrift:\"data_type,2\" form:\"data_type\" json:\"data_type\" query:\"data_type\"`\n}\n\nfunc NewGetUploadAuthTokenRequest() *GetUploadAuthTokenRequest {\n\treturn &GetUploadAuthTokenRequest{}\n}\n\nfunc (p *GetUploadAuthTokenRequest) InitDefault() {\n}\n\nfunc (p *GetUploadAuthTokenRequest) GetScene() (v string) {\n\treturn p.Scene\n}\n\nfunc (p *GetUploadAuthTokenRequest) GetDataType() (v string) {\n\treturn p.DataType\n}\n\nvar fieldIDToName_GetUploadAuthTokenRequest = map[int16]string{\n\t1: \"scene\",\n\t2: \"data_type\",\n}\n\nfunc (p *GetUploadAuthTokenRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUploadAuthTokenRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DataType = _field\n\treturn nil\n}\n\nfunc (p *GetUploadAuthTokenRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUploadAuthTokenRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"scene\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Scene); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data_type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DataType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUploadAuthTokenRequest(%+v)\", *p)\n\n}\n\ntype UploadFileRequest struct {\n\t// Document related description\n\tFileHead *CommonFileInfo `thrift:\"file_head,1\" form:\"file_head\" json:\"file_head\" query:\"file_head\"`\n\t// file data\n\tData string `thrift:\"data,2\" form:\"data\" json:\"data\" query:\"data\"`\n}\n\nfunc NewUploadFileRequest() *UploadFileRequest {\n\treturn &UploadFileRequest{}\n}\n\nfunc (p *UploadFileRequest) InitDefault() {\n}\n\nvar UploadFileRequest_FileHead_DEFAULT *CommonFileInfo\n\nfunc (p *UploadFileRequest) GetFileHead() (v *CommonFileInfo) {\n\tif !p.IsSetFileHead() {\n\t\treturn UploadFileRequest_FileHead_DEFAULT\n\t}\n\treturn p.FileHead\n}\n\nfunc (p *UploadFileRequest) GetData() (v string) {\n\treturn p.Data\n}\n\nvar fieldIDToName_UploadFileRequest = map[int16]string{\n\t1: \"file_head\",\n\t2: \"data\",\n}\n\nfunc (p *UploadFileRequest) IsSetFileHead() bool {\n\treturn p.FileHead != nil\n}\n\nfunc (p *UploadFileRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadFileRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UploadFileRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCommonFileInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FileHead = _field\n\treturn nil\n}\nfunc (p *UploadFileRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *UploadFileRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadFileRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadFileRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_head\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.FileHead.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UploadFileRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Data); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UploadFileRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadFileRequest(%+v)\", *p)\n\n}\n\n// Upload file, file header\ntype CommonFileInfo struct {\n\t// File type, suffix\n\tFileType string `thrift:\"file_type,1\" form:\"file_type\" json:\"file_type\" query:\"file_type\"`\n\t// business type\n\tBizType FileBizType `thrift:\"biz_type,2\" form:\"biz_type\" json:\"biz_type\" query:\"biz_type\"`\n}\n\nfunc NewCommonFileInfo() *CommonFileInfo {\n\treturn &CommonFileInfo{}\n}\n\nfunc (p *CommonFileInfo) InitDefault() {\n}\n\nfunc (p *CommonFileInfo) GetFileType() (v string) {\n\treturn p.FileType\n}\n\nfunc (p *CommonFileInfo) GetBizType() (v FileBizType) {\n\treturn p.BizType\n}\n\nvar fieldIDToName_CommonFileInfo = map[int16]string{\n\t1: \"file_type\",\n\t2: \"biz_type\",\n}\n\nfunc (p *CommonFileInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CommonFileInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CommonFileInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileType = _field\n\treturn nil\n}\nfunc (p *CommonFileInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field FileBizType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = FileBizType(v)\n\t}\n\tp.BizType = _field\n\treturn nil\n}\n\nfunc (p *CommonFileInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CommonFileInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CommonFileInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_type\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FileType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CommonFileInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"biz_type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BizType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *CommonFileInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CommonFileInfo(%+v)\", *p)\n\n}\n\ntype UploadFileResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\t// data\n\tData *UploadFileData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n}\n\nfunc NewUploadFileResponse() *UploadFileResponse {\n\treturn &UploadFileResponse{}\n}\n\nfunc (p *UploadFileResponse) InitDefault() {\n}\n\nfunc (p *UploadFileResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UploadFileResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UploadFileResponse_Data_DEFAULT *UploadFileData\n\nfunc (p *UploadFileResponse) GetData() (v *UploadFileData) {\n\tif !p.IsSetData() {\n\t\treturn UploadFileResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_UploadFileResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *UploadFileResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *UploadFileResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadFileResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UploadFileResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UploadFileResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UploadFileResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewUploadFileData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *UploadFileResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadFileResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadFileResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UploadFileResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UploadFileResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *UploadFileResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadFileResponse(%+v)\", *p)\n\n}\n\ntype GetTypeListRequest struct {\n\tModel    *bool   `thrift:\"model,1,optional\" form:\"model\" json:\"model,omitempty\" query:\"model\"`\n\tVoice    *bool   `thrift:\"voice,2,optional\" form:\"voice\" json:\"voice,omitempty\" query:\"voice\"`\n\tRawModel *bool   `thrift:\"raw_model,3,optional\" form:\"raw_model\" json:\"raw_model,omitempty\" query:\"raw_model\"`\n\tSpaceID  *string `thrift:\"space_id,4,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n\t// The model ID used by the current bot to handle issues that cannot be displayed by the bot model synchronized by cici/doubao\n\tCurModelID *string `thrift:\"cur_model_id,5,optional\" form:\"cur_model_id\" json:\"cur_model_id,omitempty\" query:\"cur_model_id\"`\n\t// Compatible with MultiAgent, with multiple cur_model_id\n\tCurModelIds []string `thrift:\"cur_model_ids,6,optional\" form:\"cur_model_ids\" json:\"cur_model_ids,omitempty\" query:\"cur_model_ids\"`\n\t// model scenario\n\tModelScene *ModelScene `thrift:\"model_scene,7,optional\" form:\"model_scene\" json:\"model_scene,omitempty\" query:\"model_scene\"`\n}\n\nfunc NewGetTypeListRequest() *GetTypeListRequest {\n\treturn &GetTypeListRequest{}\n}\n\nfunc (p *GetTypeListRequest) InitDefault() {\n}\n\nvar GetTypeListRequest_Model_DEFAULT bool\n\nfunc (p *GetTypeListRequest) GetModel() (v bool) {\n\tif !p.IsSetModel() {\n\t\treturn GetTypeListRequest_Model_DEFAULT\n\t}\n\treturn *p.Model\n}\n\nvar GetTypeListRequest_Voice_DEFAULT bool\n\nfunc (p *GetTypeListRequest) GetVoice() (v bool) {\n\tif !p.IsSetVoice() {\n\t\treturn GetTypeListRequest_Voice_DEFAULT\n\t}\n\treturn *p.Voice\n}\n\nvar GetTypeListRequest_RawModel_DEFAULT bool\n\nfunc (p *GetTypeListRequest) GetRawModel() (v bool) {\n\tif !p.IsSetRawModel() {\n\t\treturn GetTypeListRequest_RawModel_DEFAULT\n\t}\n\treturn *p.RawModel\n}\n\nvar GetTypeListRequest_SpaceID_DEFAULT string\n\nfunc (p *GetTypeListRequest) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn GetTypeListRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar GetTypeListRequest_CurModelID_DEFAULT string\n\nfunc (p *GetTypeListRequest) GetCurModelID() (v string) {\n\tif !p.IsSetCurModelID() {\n\t\treturn GetTypeListRequest_CurModelID_DEFAULT\n\t}\n\treturn *p.CurModelID\n}\n\nvar GetTypeListRequest_CurModelIds_DEFAULT []string\n\nfunc (p *GetTypeListRequest) GetCurModelIds() (v []string) {\n\tif !p.IsSetCurModelIds() {\n\t\treturn GetTypeListRequest_CurModelIds_DEFAULT\n\t}\n\treturn p.CurModelIds\n}\n\nvar GetTypeListRequest_ModelScene_DEFAULT ModelScene\n\nfunc (p *GetTypeListRequest) GetModelScene() (v ModelScene) {\n\tif !p.IsSetModelScene() {\n\t\treturn GetTypeListRequest_ModelScene_DEFAULT\n\t}\n\treturn *p.ModelScene\n}\n\nvar fieldIDToName_GetTypeListRequest = map[int16]string{\n\t1: \"model\",\n\t2: \"voice\",\n\t3: \"raw_model\",\n\t4: \"space_id\",\n\t5: \"cur_model_id\",\n\t6: \"cur_model_ids\",\n\t7: \"model_scene\",\n}\n\nfunc (p *GetTypeListRequest) IsSetModel() bool {\n\treturn p.Model != nil\n}\n\nfunc (p *GetTypeListRequest) IsSetVoice() bool {\n\treturn p.Voice != nil\n}\n\nfunc (p *GetTypeListRequest) IsSetRawModel() bool {\n\treturn p.RawModel != nil\n}\n\nfunc (p *GetTypeListRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *GetTypeListRequest) IsSetCurModelID() bool {\n\treturn p.CurModelID != nil\n}\n\nfunc (p *GetTypeListRequest) IsSetCurModelIds() bool {\n\treturn p.CurModelIds != nil\n}\n\nfunc (p *GetTypeListRequest) IsSetModelScene() bool {\n\treturn p.ModelScene != nil\n}\n\nfunc (p *GetTypeListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetTypeListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetTypeListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Model = _field\n\treturn nil\n}\nfunc (p *GetTypeListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Voice = _field\n\treturn nil\n}\nfunc (p *GetTypeListRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RawModel = _field\n\treturn nil\n}\nfunc (p *GetTypeListRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetTypeListRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CurModelID = _field\n\treturn nil\n}\nfunc (p *GetTypeListRequest) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CurModelIds = _field\n\treturn nil\n}\nfunc (p *GetTypeListRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *ModelScene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ModelScene(v)\n\t\t_field = &tmp\n\t}\n\tp.ModelScene = _field\n\treturn nil\n}\n\nfunc (p *GetTypeListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTypeListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetTypeListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModel() {\n\t\tif err = oprot.WriteFieldBegin(\"model\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Model); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetTypeListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVoice() {\n\t\tif err = oprot.WriteFieldBegin(\"voice\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Voice); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetTypeListRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRawModel() {\n\t\tif err = oprot.WriteFieldBegin(\"raw_model\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.RawModel); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetTypeListRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetTypeListRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCurModelID() {\n\t\tif err = oprot.WriteFieldBegin(\"cur_model_id\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CurModelID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetTypeListRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCurModelIds() {\n\t\tif err = oprot.WriteFieldBegin(\"cur_model_ids\", thrift.LIST, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.CurModelIds)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.CurModelIds {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetTypeListRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelScene() {\n\t\tif err = oprot.WriteFieldBegin(\"model_scene\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ModelScene)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *GetTypeListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetTypeListRequest(%+v)\", *p)\n\n}\n\ntype ModelQuota struct {\n\t// Maximum total number of tokens\n\tTokenLimit int32 `thrift:\"token_limit,1\" form:\"token_limit\" json:\"token_limit\" query:\"token_limit\"`\n\t// Final reply maximum number of tokens\n\tTokenResp int32 `thrift:\"token_resp,2\" form:\"token_resp\" json:\"token_resp\" query:\"token_resp\"`\n\t// Prompt system maximum number of tokens\n\tTokenSystem int32 `thrift:\"token_system,3\" form:\"token_system\" json:\"token_system\" query:\"token_system\"`\n\t// Prompt user to enter maximum number of tokens\n\tTokenUserIn int32 `thrift:\"token_user_in,4\" form:\"token_user_in\" json:\"token_user_in\" query:\"token_user_in\"`\n\t// Prompt tool to enter maximum number of tokens\n\tTokenToolsIn int32 `thrift:\"token_tools_in,5\" form:\"token_tools_in\" json:\"token_tools_in\" query:\"token_tools_in\"`\n\t// Prompt tool output maximum number of tokens\n\tTokenToolsOut int32 `thrift:\"token_tools_out,6\" form:\"token_tools_out\" json:\"token_tools_out\" query:\"token_tools_out\"`\n\t// Prompt data maximum number of tokens\n\tTokenData int32 `thrift:\"token_data,7\" form:\"token_data\" json:\"token_data\" query:\"token_data\"`\n\t// Prompt history maximum number of tokens\n\tTokenHistory int32 `thrift:\"token_history,8\" form:\"token_history\" json:\"token_history\" query:\"token_history\"`\n\t// Prompt history maximum number of tokens\n\tTokenCutSwitch bool `thrift:\"token_cut_switch,9\" form:\"token_cut_switch\" json:\"token_cut_switch\" query:\"token_cut_switch\"`\n\t// input cost\n\tPriceIn float64 `thrift:\"price_in,10\" form:\"price_in\" json:\"price_in\" query:\"price_in\"`\n\t// output cost\n\tPriceOut float64 `thrift:\"price_out,11\" form:\"price_out\" json:\"price_out\" query:\"price_out\"`\n\t// Systemprompt input restrictions, if not passed, no input restrictions\n\tSystemPromptLimit *int32 `thrift:\"system_prompt_limit,12,optional\" form:\"system_prompt_limit\" json:\"system_prompt_limit,omitempty\" query:\"system_prompt_limit\"`\n}\n\nfunc NewModelQuota() *ModelQuota {\n\treturn &ModelQuota{}\n}\n\nfunc (p *ModelQuota) InitDefault() {\n}\n\nfunc (p *ModelQuota) GetTokenLimit() (v int32) {\n\treturn p.TokenLimit\n}\n\nfunc (p *ModelQuota) GetTokenResp() (v int32) {\n\treturn p.TokenResp\n}\n\nfunc (p *ModelQuota) GetTokenSystem() (v int32) {\n\treturn p.TokenSystem\n}\n\nfunc (p *ModelQuota) GetTokenUserIn() (v int32) {\n\treturn p.TokenUserIn\n}\n\nfunc (p *ModelQuota) GetTokenToolsIn() (v int32) {\n\treturn p.TokenToolsIn\n}\n\nfunc (p *ModelQuota) GetTokenToolsOut() (v int32) {\n\treturn p.TokenToolsOut\n}\n\nfunc (p *ModelQuota) GetTokenData() (v int32) {\n\treturn p.TokenData\n}\n\nfunc (p *ModelQuota) GetTokenHistory() (v int32) {\n\treturn p.TokenHistory\n}\n\nfunc (p *ModelQuota) GetTokenCutSwitch() (v bool) {\n\treturn p.TokenCutSwitch\n}\n\nfunc (p *ModelQuota) GetPriceIn() (v float64) {\n\treturn p.PriceIn\n}\n\nfunc (p *ModelQuota) GetPriceOut() (v float64) {\n\treturn p.PriceOut\n}\n\nvar ModelQuota_SystemPromptLimit_DEFAULT int32\n\nfunc (p *ModelQuota) GetSystemPromptLimit() (v int32) {\n\tif !p.IsSetSystemPromptLimit() {\n\t\treturn ModelQuota_SystemPromptLimit_DEFAULT\n\t}\n\treturn *p.SystemPromptLimit\n}\n\nvar fieldIDToName_ModelQuota = map[int16]string{\n\t1:  \"token_limit\",\n\t2:  \"token_resp\",\n\t3:  \"token_system\",\n\t4:  \"token_user_in\",\n\t5:  \"token_tools_in\",\n\t6:  \"token_tools_out\",\n\t7:  \"token_data\",\n\t8:  \"token_history\",\n\t9:  \"token_cut_switch\",\n\t10: \"price_in\",\n\t11: \"price_out\",\n\t12: \"system_prompt_limit\",\n}\n\nfunc (p *ModelQuota) IsSetSystemPromptLimit() bool {\n\treturn p.SystemPromptLimit != nil\n}\n\nfunc (p *ModelQuota) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelQuota[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ModelQuota) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TokenLimit = _field\n\treturn nil\n}\nfunc (p *ModelQuota) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TokenResp = _field\n\treturn nil\n}\nfunc (p *ModelQuota) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TokenSystem = _field\n\treturn nil\n}\nfunc (p *ModelQuota) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TokenUserIn = _field\n\treturn nil\n}\nfunc (p *ModelQuota) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TokenToolsIn = _field\n\treturn nil\n}\nfunc (p *ModelQuota) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TokenToolsOut = _field\n\treturn nil\n}\nfunc (p *ModelQuota) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TokenData = _field\n\treturn nil\n}\nfunc (p *ModelQuota) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TokenHistory = _field\n\treturn nil\n}\nfunc (p *ModelQuota) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TokenCutSwitch = _field\n\treturn nil\n}\nfunc (p *ModelQuota) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PriceIn = _field\n\treturn nil\n}\nfunc (p *ModelQuota) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PriceOut = _field\n\treturn nil\n}\nfunc (p *ModelQuota) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SystemPromptLimit = _field\n\treturn nil\n}\n\nfunc (p *ModelQuota) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelQuota\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelQuota) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token_limit\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TokenLimit); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelQuota) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token_resp\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TokenResp); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ModelQuota) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token_system\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TokenSystem); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ModelQuota) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token_user_in\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TokenUserIn); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ModelQuota) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token_tools_in\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TokenToolsIn); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ModelQuota) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token_tools_out\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TokenToolsOut); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ModelQuota) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token_data\", thrift.I32, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TokenData); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ModelQuota) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token_history\", thrift.I32, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TokenHistory); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ModelQuota) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token_cut_switch\", thrift.BOOL, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.TokenCutSwitch); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ModelQuota) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"price_in\", thrift.DOUBLE, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.PriceIn); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ModelQuota) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"price_out\", thrift.DOUBLE, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.PriceOut); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ModelQuota) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSystemPromptLimit() {\n\t\tif err = oprot.WriteFieldBegin(\"system_prompt_limit\", thrift.I32, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.SystemPromptLimit); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\n\nfunc (p *ModelQuota) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelQuota(%+v)\", *p)\n\n}\n\ntype ModelParamDefaultValue struct {\n\tDefaultVal string  `thrift:\"default_val,1,required\" form:\"default_val,required\" json:\"default_val,required\" query:\"default_val,required\"`\n\tCreative   *string `thrift:\"creative,2,optional\" form:\"creative\" json:\"creative,omitempty\" query:\"creative\"`\n\tBalance    *string `thrift:\"balance,3,optional\" form:\"balance\" json:\"balance,omitempty\" query:\"balance\"`\n\tPrecise    *string `thrift:\"precise,4,optional\" form:\"precise\" json:\"precise,omitempty\" query:\"precise\"`\n}\n\nfunc NewModelParamDefaultValue() *ModelParamDefaultValue {\n\treturn &ModelParamDefaultValue{}\n}\n\nfunc (p *ModelParamDefaultValue) InitDefault() {\n}\n\nfunc (p *ModelParamDefaultValue) GetDefaultVal() (v string) {\n\treturn p.DefaultVal\n}\n\nvar ModelParamDefaultValue_Creative_DEFAULT string\n\nfunc (p *ModelParamDefaultValue) GetCreative() (v string) {\n\tif !p.IsSetCreative() {\n\t\treturn ModelParamDefaultValue_Creative_DEFAULT\n\t}\n\treturn *p.Creative\n}\n\nvar ModelParamDefaultValue_Balance_DEFAULT string\n\nfunc (p *ModelParamDefaultValue) GetBalance() (v string) {\n\tif !p.IsSetBalance() {\n\t\treturn ModelParamDefaultValue_Balance_DEFAULT\n\t}\n\treturn *p.Balance\n}\n\nvar ModelParamDefaultValue_Precise_DEFAULT string\n\nfunc (p *ModelParamDefaultValue) GetPrecise() (v string) {\n\tif !p.IsSetPrecise() {\n\t\treturn ModelParamDefaultValue_Precise_DEFAULT\n\t}\n\treturn *p.Precise\n}\n\nvar fieldIDToName_ModelParamDefaultValue = map[int16]string{\n\t1: \"default_val\",\n\t2: \"creative\",\n\t3: \"balance\",\n\t4: \"precise\",\n}\n\nfunc (p *ModelParamDefaultValue) IsSetCreative() bool {\n\treturn p.Creative != nil\n}\n\nfunc (p *ModelParamDefaultValue) IsSetBalance() bool {\n\treturn p.Balance != nil\n}\n\nfunc (p *ModelParamDefaultValue) IsSetPrecise() bool {\n\treturn p.Precise != nil\n}\n\nfunc (p *ModelParamDefaultValue) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDefaultVal bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDefaultVal = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDefaultVal {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelParamDefaultValue[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ModelParamDefaultValue[fieldId]))\n}\n\nfunc (p *ModelParamDefaultValue) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DefaultVal = _field\n\treturn nil\n}\nfunc (p *ModelParamDefaultValue) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Creative = _field\n\treturn nil\n}\nfunc (p *ModelParamDefaultValue) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Balance = _field\n\treturn nil\n}\nfunc (p *ModelParamDefaultValue) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Precise = _field\n\treturn nil\n}\n\nfunc (p *ModelParamDefaultValue) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelParamDefaultValue\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelParamDefaultValue) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"default_val\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DefaultVal); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelParamDefaultValue) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreative() {\n\t\tif err = oprot.WriteFieldBegin(\"creative\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Creative); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ModelParamDefaultValue) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBalance() {\n\t\tif err = oprot.WriteFieldBegin(\"balance\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Balance); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ModelParamDefaultValue) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrecise() {\n\t\tif err = oprot.WriteFieldBegin(\"precise\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Precise); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *ModelParamDefaultValue) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelParamDefaultValue(%+v)\", *p)\n\n}\n\ntype ModelParamClass struct {\n\t// 1=\"Generation diversity\", 2=\"Input and output length\", 3=\"Output format\"\n\tClassID int32  `thrift:\"class_id,1\" form:\"class_id\" json:\"class_id\" query:\"class_id\"`\n\tLabel   string `thrift:\"label,2\" form:\"label\" json:\"label\" query:\"label\"`\n}\n\nfunc NewModelParamClass() *ModelParamClass {\n\treturn &ModelParamClass{}\n}\n\nfunc (p *ModelParamClass) InitDefault() {\n}\n\nfunc (p *ModelParamClass) GetClassID() (v int32) {\n\treturn p.ClassID\n}\n\nfunc (p *ModelParamClass) GetLabel() (v string) {\n\treturn p.Label\n}\n\nvar fieldIDToName_ModelParamClass = map[int16]string{\n\t1: \"class_id\",\n\t2: \"label\",\n}\n\nfunc (p *ModelParamClass) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelParamClass[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ModelParamClass) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ClassID = _field\n\treturn nil\n}\nfunc (p *ModelParamClass) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Label = _field\n\treturn nil\n}\n\nfunc (p *ModelParamClass) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelParamClass\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelParamClass) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"class_id\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.ClassID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelParamClass) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Label); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ModelParamClass) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelParamClass(%+v)\", *p)\n\n}\n\ntype Option struct {\n\t// The value displayed by the option\n\tLabel string `thrift:\"label,1\" form:\"label\" json:\"label\" query:\"label\"`\n\t// Filled in value\n\tValue string `thrift:\"value,2\" form:\"value\" json:\"value\" query:\"value\"`\n}\n\nfunc NewOption() *Option {\n\treturn &Option{}\n}\n\nfunc (p *Option) InitDefault() {\n}\n\nfunc (p *Option) GetLabel() (v string) {\n\treturn p.Label\n}\n\nfunc (p *Option) GetValue() (v string) {\n\treturn p.Value\n}\n\nvar fieldIDToName_Option = map[int16]string{\n\t1: \"label\",\n\t2: \"value\",\n}\n\nfunc (p *Option) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Option[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Option) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Label = _field\n\treturn nil\n}\nfunc (p *Option) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Value = _field\n\treturn nil\n}\n\nfunc (p *Option) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Option\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Option) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Label); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Option) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"value\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Value); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *Option) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Option(%+v)\", *p)\n\n}\n\ntype ModelParameter struct {\n\t// Configuration fields, such as max_tokens\n\tName string `thrift:\"name,1,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\t// Configure field display name\n\tLabel string `thrift:\"label,2\" form:\"label\" json:\"label\" query:\"label\"`\n\t// Configuration field detail description\n\tDesc string `thrift:\"desc,3\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\t// type\n\tType ModelParamType `thrift:\"type,4,required\" form:\"type,required\" json:\"type,required\" query:\"type,required\"`\n\t// Numerical type parameters, the minimum value allowed to be set\n\tMin string `thrift:\"min,5\" form:\"min\" json:\"min\" query:\"min\"`\n\t// Numerical type parameter, the maximum value allowed to be set\n\tMax string `thrift:\"max,6\" form:\"max\" json:\"max\" query:\"max\"`\n\t// Precision of float type parameters\n\tPrecision int32 `thrift:\"precision,7\" form:\"precision\" json:\"precision\" query:\"precision\"`\n\t// Parameter default {\"default\": xx, \"creative\": xx}\n\tDefaultVal *ModelParamDefaultValue `thrift:\"default_val,8,required\" form:\"default_val,required\" json:\"default_val,required\" query:\"default_val,required\"`\n\t// Enumeration values such as response_format support text, markdown, json\n\tOptions []*Option `thrift:\"options,9\" form:\"options\" json:\"options\" query:\"options\"`\n\t// Parameter classification, \"Generation diversity\", \"Input and output length\", \"Output format\"\n\tParamClass *ModelParamClass `thrift:\"param_class,10\" form:\"param_class\" json:\"param_class\" query:\"param_class\"`\n}\n\nfunc NewModelParameter() *ModelParameter {\n\treturn &ModelParameter{}\n}\n\nfunc (p *ModelParameter) InitDefault() {\n}\n\nfunc (p *ModelParameter) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ModelParameter) GetLabel() (v string) {\n\treturn p.Label\n}\n\nfunc (p *ModelParameter) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *ModelParameter) GetType() (v ModelParamType) {\n\treturn p.Type\n}\n\nfunc (p *ModelParameter) GetMin() (v string) {\n\treturn p.Min\n}\n\nfunc (p *ModelParameter) GetMax() (v string) {\n\treturn p.Max\n}\n\nfunc (p *ModelParameter) GetPrecision() (v int32) {\n\treturn p.Precision\n}\n\nvar ModelParameter_DefaultVal_DEFAULT *ModelParamDefaultValue\n\nfunc (p *ModelParameter) GetDefaultVal() (v *ModelParamDefaultValue) {\n\tif !p.IsSetDefaultVal() {\n\t\treturn ModelParameter_DefaultVal_DEFAULT\n\t}\n\treturn p.DefaultVal\n}\n\nfunc (p *ModelParameter) GetOptions() (v []*Option) {\n\treturn p.Options\n}\n\nvar ModelParameter_ParamClass_DEFAULT *ModelParamClass\n\nfunc (p *ModelParameter) GetParamClass() (v *ModelParamClass) {\n\tif !p.IsSetParamClass() {\n\t\treturn ModelParameter_ParamClass_DEFAULT\n\t}\n\treturn p.ParamClass\n}\n\nvar fieldIDToName_ModelParameter = map[int16]string{\n\t1:  \"name\",\n\t2:  \"label\",\n\t3:  \"desc\",\n\t4:  \"type\",\n\t5:  \"min\",\n\t6:  \"max\",\n\t7:  \"precision\",\n\t8:  \"default_val\",\n\t9:  \"options\",\n\t10: \"param_class\",\n}\n\nfunc (p *ModelParameter) IsSetDefaultVal() bool {\n\treturn p.DefaultVal != nil\n}\n\nfunc (p *ModelParameter) IsSetParamClass() bool {\n\treturn p.ParamClass != nil\n}\n\nfunc (p *ModelParameter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetName bool = false\n\tvar issetType bool = false\n\tvar issetDefaultVal bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDefaultVal = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetType {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetDefaultVal {\n\t\tfieldId = 8\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelParameter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ModelParameter[fieldId]))\n}\n\nfunc (p *ModelParameter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ModelParameter) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Label = _field\n\treturn nil\n}\nfunc (p *ModelParameter) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *ModelParameter) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field ModelParamType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ModelParamType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ModelParameter) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Min = _field\n\treturn nil\n}\nfunc (p *ModelParameter) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Max = _field\n\treturn nil\n}\nfunc (p *ModelParameter) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Precision = _field\n\treturn nil\n}\nfunc (p *ModelParameter) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewModelParamDefaultValue()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DefaultVal = _field\n\treturn nil\n}\nfunc (p *ModelParameter) ReadField9(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Option, 0, size)\n\tvalues := make([]Option, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Options = _field\n\treturn nil\n}\nfunc (p *ModelParameter) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewModelParamClass()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ParamClass = _field\n\treturn nil\n}\n\nfunc (p *ModelParameter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelParameter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelParameter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelParameter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Label); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ModelParameter) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ModelParameter) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ModelParameter) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"min\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Min); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ModelParameter) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"max\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Max); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ModelParameter) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"precision\", thrift.I32, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Precision); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ModelParameter) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"default_val\", thrift.STRUCT, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.DefaultVal.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ModelParameter) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"options\", thrift.LIST, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Options)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Options {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ModelParameter) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"param_class\", thrift.STRUCT, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ParamClass.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\n\nfunc (p *ModelParameter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelParameter(%+v)\", *p)\n\n}\n\ntype ModelDescGroup struct {\n\tGroupName string   `thrift:\"group_name,1\" form:\"group_name\" json:\"group_name\" query:\"group_name\"`\n\tDesc      []string `thrift:\"desc,2\" form:\"desc\" json:\"desc\" query:\"desc\"`\n}\n\nfunc NewModelDescGroup() *ModelDescGroup {\n\treturn &ModelDescGroup{}\n}\n\nfunc (p *ModelDescGroup) InitDefault() {\n}\n\nfunc (p *ModelDescGroup) GetGroupName() (v string) {\n\treturn p.GroupName\n}\n\nfunc (p *ModelDescGroup) GetDesc() (v []string) {\n\treturn p.Desc\n}\n\nvar fieldIDToName_ModelDescGroup = map[int16]string{\n\t1: \"group_name\",\n\t2: \"desc\",\n}\n\nfunc (p *ModelDescGroup) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelDescGroup[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ModelDescGroup) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GroupName = _field\n\treturn nil\n}\nfunc (p *ModelDescGroup) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Desc = _field\n\treturn nil\n}\n\nfunc (p *ModelDescGroup) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelDescGroup\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelDescGroup) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"group_name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.GroupName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelDescGroup) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Desc)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Desc {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ModelDescGroup) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelDescGroup(%+v)\", *p)\n\n}\n\ntype ModelTag struct {\n\tTagName         string        `thrift:\"tag_name,1\" form:\"tag_name\" json:\"tag_name\" query:\"tag_name\"`\n\tTagClass        ModelTagClass `thrift:\"tag_class,2\" form:\"tag_class\" json:\"tag_class\" query:\"tag_class\"`\n\tTagIcon         string        `thrift:\"tag_icon,3\" form:\"tag_icon\" json:\"tag_icon\" query:\"tag_icon\"`\n\tTagDescriptions string        `thrift:\"tag_descriptions,4\" form:\"tag_descriptions\" json:\"tag_descriptions\" query:\"tag_descriptions\"`\n}\n\nfunc NewModelTag() *ModelTag {\n\treturn &ModelTag{}\n}\n\nfunc (p *ModelTag) InitDefault() {\n}\n\nfunc (p *ModelTag) GetTagName() (v string) {\n\treturn p.TagName\n}\n\nfunc (p *ModelTag) GetTagClass() (v ModelTagClass) {\n\treturn p.TagClass\n}\n\nfunc (p *ModelTag) GetTagIcon() (v string) {\n\treturn p.TagIcon\n}\n\nfunc (p *ModelTag) GetTagDescriptions() (v string) {\n\treturn p.TagDescriptions\n}\n\nvar fieldIDToName_ModelTag = map[int16]string{\n\t1: \"tag_name\",\n\t2: \"tag_class\",\n\t3: \"tag_icon\",\n\t4: \"tag_descriptions\",\n}\n\nfunc (p *ModelTag) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelTag[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ModelTag) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TagName = _field\n\treturn nil\n}\nfunc (p *ModelTag) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field ModelTagClass\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ModelTagClass(v)\n\t}\n\tp.TagClass = _field\n\treturn nil\n}\nfunc (p *ModelTag) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TagIcon = _field\n\treturn nil\n}\nfunc (p *ModelTag) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TagDescriptions = _field\n\treturn nil\n}\n\nfunc (p *ModelTag) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelTag\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelTag) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tag_name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TagName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelTag) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tag_class\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TagClass)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ModelTag) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tag_icon\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TagIcon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ModelTag) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tag_descriptions\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TagDescriptions); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *ModelTag) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelTag(%+v)\", *p)\n\n}\n\ntype ModelSeriesInfo struct {\n\tSeriesName  string  `thrift:\"series_name,1\" form:\"series_name\" json:\"series_name\" query:\"series_name\"`\n\tIconURL     string  `thrift:\"icon_url,2\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tModelVendor string  `thrift:\"model_vendor,3\" form:\"model_vendor\" json:\"model_vendor\" query:\"model_vendor\"`\n\tModelTips   *string `thrift:\"model_tips,4,optional\" form:\"model_tips\" json:\"model_tips,omitempty\" query:\"model_tips\"`\n}\n\nfunc NewModelSeriesInfo() *ModelSeriesInfo {\n\treturn &ModelSeriesInfo{}\n}\n\nfunc (p *ModelSeriesInfo) InitDefault() {\n}\n\nfunc (p *ModelSeriesInfo) GetSeriesName() (v string) {\n\treturn p.SeriesName\n}\n\nfunc (p *ModelSeriesInfo) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *ModelSeriesInfo) GetModelVendor() (v string) {\n\treturn p.ModelVendor\n}\n\nvar ModelSeriesInfo_ModelTips_DEFAULT string\n\nfunc (p *ModelSeriesInfo) GetModelTips() (v string) {\n\tif !p.IsSetModelTips() {\n\t\treturn ModelSeriesInfo_ModelTips_DEFAULT\n\t}\n\treturn *p.ModelTips\n}\n\nvar fieldIDToName_ModelSeriesInfo = map[int16]string{\n\t1: \"series_name\",\n\t2: \"icon_url\",\n\t3: \"model_vendor\",\n\t4: \"model_tips\",\n}\n\nfunc (p *ModelSeriesInfo) IsSetModelTips() bool {\n\treturn p.ModelTips != nil\n}\n\nfunc (p *ModelSeriesInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelSeriesInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ModelSeriesInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SeriesName = _field\n\treturn nil\n}\nfunc (p *ModelSeriesInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *ModelSeriesInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelVendor = _field\n\treturn nil\n}\nfunc (p *ModelSeriesInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ModelTips = _field\n\treturn nil\n}\n\nfunc (p *ModelSeriesInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelSeriesInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelSeriesInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"series_name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SeriesName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelSeriesInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ModelSeriesInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_vendor\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ModelVendor); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ModelSeriesInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelTips() {\n\t\tif err = oprot.WriteFieldBegin(\"model_tips\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ModelTips); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *ModelSeriesInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelSeriesInfo(%+v)\", *p)\n\n}\n\ntype ModelStatusDetails struct {\n\t// Is it a new model?\n\tIsNewModel bool `thrift:\"is_new_model,1\" form:\"is_new_model\" json:\"is_new_model\" query:\"is_new_model\"`\n\t// Is it a high-level model?\n\tIsAdvancedModel bool `thrift:\"is_advanced_model,2\" form:\"is_advanced_model\" json:\"is_advanced_model\" query:\"is_advanced_model\"`\n\t// Is it a free model?\n\tIsFreeModel bool `thrift:\"is_free_model,3\" form:\"is_free_model\" json:\"is_free_model\" query:\"is_free_model\"`\n\t// Will it be removed from the shelves soon?\n\tIsUpcomingDeprecated bool `thrift:\"is_upcoming_deprecated,11\" form:\"is_upcoming_deprecated\" json:\"is_upcoming_deprecated\" query:\"is_upcoming_deprecated\"`\n\t// removal date\n\tDeprecatedDate string `thrift:\"deprecated_date,12\" form:\"deprecated_date\" json:\"deprecated_date\" query:\"deprecated_date\"`\n\t// Remove the replacement model from the shelves.\n\tReplaceModelName string `thrift:\"replace_model_name,13\" form:\"replace_model_name\" json:\"replace_model_name\" query:\"replace_model_name\"`\n\t// Recently updated information\n\tUpdateInfo string `thrift:\"update_info,21\" form:\"update_info\" json:\"update_info\" query:\"update_info\"`\n\t// Model Features\n\tModelFeature ModelTagValue `thrift:\"model_feature,22\" form:\"model_feature\" json:\"model_feature\" query:\"model_feature\"`\n}\n\nfunc NewModelStatusDetails() *ModelStatusDetails {\n\treturn &ModelStatusDetails{}\n}\n\nfunc (p *ModelStatusDetails) InitDefault() {\n}\n\nfunc (p *ModelStatusDetails) GetIsNewModel() (v bool) {\n\treturn p.IsNewModel\n}\n\nfunc (p *ModelStatusDetails) GetIsAdvancedModel() (v bool) {\n\treturn p.IsAdvancedModel\n}\n\nfunc (p *ModelStatusDetails) GetIsFreeModel() (v bool) {\n\treturn p.IsFreeModel\n}\n\nfunc (p *ModelStatusDetails) GetIsUpcomingDeprecated() (v bool) {\n\treturn p.IsUpcomingDeprecated\n}\n\nfunc (p *ModelStatusDetails) GetDeprecatedDate() (v string) {\n\treturn p.DeprecatedDate\n}\n\nfunc (p *ModelStatusDetails) GetReplaceModelName() (v string) {\n\treturn p.ReplaceModelName\n}\n\nfunc (p *ModelStatusDetails) GetUpdateInfo() (v string) {\n\treturn p.UpdateInfo\n}\n\nfunc (p *ModelStatusDetails) GetModelFeature() (v ModelTagValue) {\n\treturn p.ModelFeature\n}\n\nvar fieldIDToName_ModelStatusDetails = map[int16]string{\n\t1:  \"is_new_model\",\n\t2:  \"is_advanced_model\",\n\t3:  \"is_free_model\",\n\t11: \"is_upcoming_deprecated\",\n\t12: \"deprecated_date\",\n\t13: \"replace_model_name\",\n\t21: \"update_info\",\n\t22: \"model_feature\",\n}\n\nfunc (p *ModelStatusDetails) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelStatusDetails[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ModelStatusDetails) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsNewModel = _field\n\treturn nil\n}\nfunc (p *ModelStatusDetails) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsAdvancedModel = _field\n\treturn nil\n}\nfunc (p *ModelStatusDetails) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsFreeModel = _field\n\treturn nil\n}\nfunc (p *ModelStatusDetails) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsUpcomingDeprecated = _field\n\treturn nil\n}\nfunc (p *ModelStatusDetails) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DeprecatedDate = _field\n\treturn nil\n}\nfunc (p *ModelStatusDetails) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReplaceModelName = _field\n\treturn nil\n}\nfunc (p *ModelStatusDetails) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateInfo = _field\n\treturn nil\n}\nfunc (p *ModelStatusDetails) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field ModelTagValue\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ModelTagValue(v)\n\t}\n\tp.ModelFeature = _field\n\treturn nil\n}\n\nfunc (p *ModelStatusDetails) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelStatusDetails\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelStatusDetails) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_new_model\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsNewModel); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelStatusDetails) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_advanced_model\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsAdvancedModel); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ModelStatusDetails) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_free_model\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsFreeModel); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ModelStatusDetails) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_upcoming_deprecated\", thrift.BOOL, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsUpcomingDeprecated); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ModelStatusDetails) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"deprecated_date\", thrift.STRING, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DeprecatedDate); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ModelStatusDetails) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"replace_model_name\", thrift.STRING, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ReplaceModelName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *ModelStatusDetails) writeField21(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_info\", thrift.STRING, 21); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UpdateInfo); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *ModelStatusDetails) writeField22(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_feature\", thrift.I32, 22); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ModelFeature)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\n\nfunc (p *ModelStatusDetails) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelStatusDetails(%+v)\", *p)\n\n}\n\ntype ModelAbility struct {\n\t// Do you want to show cot?\n\tCotDisplay *bool `thrift:\"cot_display,1,optional\" form:\"cot_display\" json:\"cot_display,omitempty\" query:\"cot_display\"`\n\t// Supports function calls\n\tFunctionCall *bool `thrift:\"function_call,2,optional\" form:\"function_call\" json:\"function_call,omitempty\" query:\"function_call\"`\n\t// Does it support picture understanding?\n\tImageUnderstanding *bool `thrift:\"image_understanding,3,optional\" form:\"image_understanding\" json:\"image_understanding,omitempty\" query:\"image_understanding\"`\n\t// Does it support video understanding?\n\tVideoUnderstanding *bool `thrift:\"video_understanding,4,optional\" form:\"video_understanding\" json:\"video_understanding,omitempty\" query:\"video_understanding\"`\n\t// Does it support audio understanding?\n\tAudioUnderstanding *bool `thrift:\"audio_understanding,5,optional\" form:\"audio_understanding\" json:\"audio_understanding,omitempty\" query:\"audio_understanding\"`\n\t// Does it support multimodality?\n\tSupportMultiModal *bool `thrift:\"support_multi_modal,6,optional\" form:\"support_multi_modal\" json:\"support_multi_modal,omitempty\" query:\"support_multi_modal\"`\n\t// Whether to support continuation\n\tPrefillResp *bool `thrift:\"prefill_resp,7,optional\" form:\"prefill_resp\" json:\"prefill_resp,omitempty\" query:\"prefill_resp\"`\n}\n\nfunc NewModelAbility() *ModelAbility {\n\treturn &ModelAbility{}\n}\n\nfunc (p *ModelAbility) InitDefault() {\n}\n\nvar ModelAbility_CotDisplay_DEFAULT bool\n\nfunc (p *ModelAbility) GetCotDisplay() (v bool) {\n\tif !p.IsSetCotDisplay() {\n\t\treturn ModelAbility_CotDisplay_DEFAULT\n\t}\n\treturn *p.CotDisplay\n}\n\nvar ModelAbility_FunctionCall_DEFAULT bool\n\nfunc (p *ModelAbility) GetFunctionCall() (v bool) {\n\tif !p.IsSetFunctionCall() {\n\t\treturn ModelAbility_FunctionCall_DEFAULT\n\t}\n\treturn *p.FunctionCall\n}\n\nvar ModelAbility_ImageUnderstanding_DEFAULT bool\n\nfunc (p *ModelAbility) GetImageUnderstanding() (v bool) {\n\tif !p.IsSetImageUnderstanding() {\n\t\treturn ModelAbility_ImageUnderstanding_DEFAULT\n\t}\n\treturn *p.ImageUnderstanding\n}\n\nvar ModelAbility_VideoUnderstanding_DEFAULT bool\n\nfunc (p *ModelAbility) GetVideoUnderstanding() (v bool) {\n\tif !p.IsSetVideoUnderstanding() {\n\t\treturn ModelAbility_VideoUnderstanding_DEFAULT\n\t}\n\treturn *p.VideoUnderstanding\n}\n\nvar ModelAbility_AudioUnderstanding_DEFAULT bool\n\nfunc (p *ModelAbility) GetAudioUnderstanding() (v bool) {\n\tif !p.IsSetAudioUnderstanding() {\n\t\treturn ModelAbility_AudioUnderstanding_DEFAULT\n\t}\n\treturn *p.AudioUnderstanding\n}\n\nvar ModelAbility_SupportMultiModal_DEFAULT bool\n\nfunc (p *ModelAbility) GetSupportMultiModal() (v bool) {\n\tif !p.IsSetSupportMultiModal() {\n\t\treturn ModelAbility_SupportMultiModal_DEFAULT\n\t}\n\treturn *p.SupportMultiModal\n}\n\nvar ModelAbility_PrefillResp_DEFAULT bool\n\nfunc (p *ModelAbility) GetPrefillResp() (v bool) {\n\tif !p.IsSetPrefillResp() {\n\t\treturn ModelAbility_PrefillResp_DEFAULT\n\t}\n\treturn *p.PrefillResp\n}\n\nvar fieldIDToName_ModelAbility = map[int16]string{\n\t1: \"cot_display\",\n\t2: \"function_call\",\n\t3: \"image_understanding\",\n\t4: \"video_understanding\",\n\t5: \"audio_understanding\",\n\t6: \"support_multi_modal\",\n\t7: \"prefill_resp\",\n}\n\nfunc (p *ModelAbility) IsSetCotDisplay() bool {\n\treturn p.CotDisplay != nil\n}\n\nfunc (p *ModelAbility) IsSetFunctionCall() bool {\n\treturn p.FunctionCall != nil\n}\n\nfunc (p *ModelAbility) IsSetImageUnderstanding() bool {\n\treturn p.ImageUnderstanding != nil\n}\n\nfunc (p *ModelAbility) IsSetVideoUnderstanding() bool {\n\treturn p.VideoUnderstanding != nil\n}\n\nfunc (p *ModelAbility) IsSetAudioUnderstanding() bool {\n\treturn p.AudioUnderstanding != nil\n}\n\nfunc (p *ModelAbility) IsSetSupportMultiModal() bool {\n\treturn p.SupportMultiModal != nil\n}\n\nfunc (p *ModelAbility) IsSetPrefillResp() bool {\n\treturn p.PrefillResp != nil\n}\n\nfunc (p *ModelAbility) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelAbility[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ModelAbility) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CotDisplay = _field\n\treturn nil\n}\nfunc (p *ModelAbility) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FunctionCall = _field\n\treturn nil\n}\nfunc (p *ModelAbility) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ImageUnderstanding = _field\n\treturn nil\n}\nfunc (p *ModelAbility) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.VideoUnderstanding = _field\n\treturn nil\n}\nfunc (p *ModelAbility) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AudioUnderstanding = _field\n\treturn nil\n}\nfunc (p *ModelAbility) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SupportMultiModal = _field\n\treturn nil\n}\nfunc (p *ModelAbility) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PrefillResp = _field\n\treturn nil\n}\n\nfunc (p *ModelAbility) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelAbility\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelAbility) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCotDisplay() {\n\t\tif err = oprot.WriteFieldBegin(\"cot_display\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.CotDisplay); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelAbility) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFunctionCall() {\n\t\tif err = oprot.WriteFieldBegin(\"function_call\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.FunctionCall); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ModelAbility) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetImageUnderstanding() {\n\t\tif err = oprot.WriteFieldBegin(\"image_understanding\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.ImageUnderstanding); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ModelAbility) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVideoUnderstanding() {\n\t\tif err = oprot.WriteFieldBegin(\"video_understanding\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.VideoUnderstanding); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ModelAbility) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAudioUnderstanding() {\n\t\tif err = oprot.WriteFieldBegin(\"audio_understanding\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.AudioUnderstanding); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ModelAbility) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSupportMultiModal() {\n\t\tif err = oprot.WriteFieldBegin(\"support_multi_modal\", thrift.BOOL, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SupportMultiModal); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ModelAbility) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrefillResp() {\n\t\tif err = oprot.WriteFieldBegin(\"prefill_resp\", thrift.BOOL, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.PrefillResp); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *ModelAbility) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelAbility(%+v)\", *p)\n\n}\n\ntype Model struct {\n\tName       string     `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tModelType  int64      `thrift:\"model_type,2\" form:\"model_type\" json:\"model_type\" query:\"model_type\"`\n\tModelClass ModelClass `thrift:\"model_class,3\" form:\"model_class\" json:\"model_class\" query:\"model_class\"`\n\t// Model icon url\n\tModelIcon        string      `thrift:\"model_icon,4\" form:\"model_icon\" json:\"model_icon\" query:\"model_icon\"`\n\tModelInputPrice  float64     `thrift:\"model_input_price,5\" form:\"model_input_price\" json:\"model_input_price\" query:\"model_input_price\"`\n\tModelOutputPrice float64     `thrift:\"model_output_price,6\" form:\"model_output_price\" json:\"model_output_price\" query:\"model_output_price\"`\n\tModelQuota       *ModelQuota `thrift:\"model_quota,7\" form:\"model_quota\" json:\"model_quota\" query:\"model_quota\"`\n\t// Model real name, front-end calculation token\n\tModelName      string            `thrift:\"model_name,8\" form:\"model_name\" json:\"model_name\" query:\"model_name\"`\n\tModelClassName string            `thrift:\"model_class_name,9\" form:\"model_class_name\" json:\"model_class_name\" query:\"model_class_name\"`\n\tIsOffline      bool              `thrift:\"is_offline,10\" form:\"is_offline\" json:\"is_offline\" query:\"is_offline\"`\n\tModelParams    []*ModelParameter `thrift:\"model_params,11\" form:\"model_params\" json:\"model_params\" query:\"model_params\"`\n\tModelDesc      []*ModelDescGroup `thrift:\"model_desc,12,optional\" form:\"model_desc\" json:\"model_desc,omitempty\" query:\"model_desc\"`\n\t// model function configuration\n\tFuncConfig map[bot_common.ModelFuncConfigType]bot_common.ModelFuncConfigStatus `thrift:\"func_config,13,optional\" form:\"func_config\" json:\"func_config,omitempty\" query:\"func_config\"`\n\t// Ark model node name\n\tEndpointName *string `thrift:\"endpoint_name,14,optional\" form:\"endpoint_name\" json:\"endpoint_name,omitempty\" query:\"endpoint_name\"`\n\t// model label\n\tModelTagList []*ModelTag `thrift:\"model_tag_list,15,optional\" form:\"model_tag_list\" json:\"model_tag_list,omitempty\" query:\"model_tag_list\"`\n\t// User prompt must have and cannot be empty\n\tIsUpRequired *bool `thrift:\"is_up_required,16,optional\" form:\"is_up_required\" json:\"is_up_required,omitempty\" query:\"is_up_required\"`\n\t// Model brief description\n\tModelBriefDesc string `thrift:\"model_brief_desc,17\" form:\"model_brief_desc\" json:\"model_brief_desc\" query:\"model_brief_desc\"`\n\t// Model series\n\tModelSeries *ModelSeriesInfo `thrift:\"model_series,18\" form:\"model_series\" json:\"model_series\" query:\"model_series\"`\n\t// model state\n\tModelStatusDetails *ModelStatusDetails `thrift:\"model_status_details,19\" form:\"model_status_details\" json:\"model_status_details\" query:\"model_status_details\"`\n\t// model capability\n\tModelAbility *ModelAbility `thrift:\"model_ability,20\" form:\"model_ability\" json:\"model_ability\" query:\"model_ability\"`\n}\n\nfunc NewModel() *Model {\n\treturn &Model{}\n}\n\nfunc (p *Model) InitDefault() {\n}\n\nfunc (p *Model) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *Model) GetModelType() (v int64) {\n\treturn p.ModelType\n}\n\nfunc (p *Model) GetModelClass() (v ModelClass) {\n\treturn p.ModelClass\n}\n\nfunc (p *Model) GetModelIcon() (v string) {\n\treturn p.ModelIcon\n}\n\nfunc (p *Model) GetModelInputPrice() (v float64) {\n\treturn p.ModelInputPrice\n}\n\nfunc (p *Model) GetModelOutputPrice() (v float64) {\n\treturn p.ModelOutputPrice\n}\n\nvar Model_ModelQuota_DEFAULT *ModelQuota\n\nfunc (p *Model) GetModelQuota() (v *ModelQuota) {\n\tif !p.IsSetModelQuota() {\n\t\treturn Model_ModelQuota_DEFAULT\n\t}\n\treturn p.ModelQuota\n}\n\nfunc (p *Model) GetModelName() (v string) {\n\treturn p.ModelName\n}\n\nfunc (p *Model) GetModelClassName() (v string) {\n\treturn p.ModelClassName\n}\n\nfunc (p *Model) GetIsOffline() (v bool) {\n\treturn p.IsOffline\n}\n\nfunc (p *Model) GetModelParams() (v []*ModelParameter) {\n\treturn p.ModelParams\n}\n\nvar Model_ModelDesc_DEFAULT []*ModelDescGroup\n\nfunc (p *Model) GetModelDesc() (v []*ModelDescGroup) {\n\tif !p.IsSetModelDesc() {\n\t\treturn Model_ModelDesc_DEFAULT\n\t}\n\treturn p.ModelDesc\n}\n\nvar Model_FuncConfig_DEFAULT map[bot_common.ModelFuncConfigType]bot_common.ModelFuncConfigStatus\n\nfunc (p *Model) GetFuncConfig() (v map[bot_common.ModelFuncConfigType]bot_common.ModelFuncConfigStatus) {\n\tif !p.IsSetFuncConfig() {\n\t\treturn Model_FuncConfig_DEFAULT\n\t}\n\treturn p.FuncConfig\n}\n\nvar Model_EndpointName_DEFAULT string\n\nfunc (p *Model) GetEndpointName() (v string) {\n\tif !p.IsSetEndpointName() {\n\t\treturn Model_EndpointName_DEFAULT\n\t}\n\treturn *p.EndpointName\n}\n\nvar Model_ModelTagList_DEFAULT []*ModelTag\n\nfunc (p *Model) GetModelTagList() (v []*ModelTag) {\n\tif !p.IsSetModelTagList() {\n\t\treturn Model_ModelTagList_DEFAULT\n\t}\n\treturn p.ModelTagList\n}\n\nvar Model_IsUpRequired_DEFAULT bool\n\nfunc (p *Model) GetIsUpRequired() (v bool) {\n\tif !p.IsSetIsUpRequired() {\n\t\treturn Model_IsUpRequired_DEFAULT\n\t}\n\treturn *p.IsUpRequired\n}\n\nfunc (p *Model) GetModelBriefDesc() (v string) {\n\treturn p.ModelBriefDesc\n}\n\nvar Model_ModelSeries_DEFAULT *ModelSeriesInfo\n\nfunc (p *Model) GetModelSeries() (v *ModelSeriesInfo) {\n\tif !p.IsSetModelSeries() {\n\t\treturn Model_ModelSeries_DEFAULT\n\t}\n\treturn p.ModelSeries\n}\n\nvar Model_ModelStatusDetails_DEFAULT *ModelStatusDetails\n\nfunc (p *Model) GetModelStatusDetails() (v *ModelStatusDetails) {\n\tif !p.IsSetModelStatusDetails() {\n\t\treturn Model_ModelStatusDetails_DEFAULT\n\t}\n\treturn p.ModelStatusDetails\n}\n\nvar Model_ModelAbility_DEFAULT *ModelAbility\n\nfunc (p *Model) GetModelAbility() (v *ModelAbility) {\n\tif !p.IsSetModelAbility() {\n\t\treturn Model_ModelAbility_DEFAULT\n\t}\n\treturn p.ModelAbility\n}\n\nvar fieldIDToName_Model = map[int16]string{\n\t1:  \"name\",\n\t2:  \"model_type\",\n\t3:  \"model_class\",\n\t4:  \"model_icon\",\n\t5:  \"model_input_price\",\n\t6:  \"model_output_price\",\n\t7:  \"model_quota\",\n\t8:  \"model_name\",\n\t9:  \"model_class_name\",\n\t10: \"is_offline\",\n\t11: \"model_params\",\n\t12: \"model_desc\",\n\t13: \"func_config\",\n\t14: \"endpoint_name\",\n\t15: \"model_tag_list\",\n\t16: \"is_up_required\",\n\t17: \"model_brief_desc\",\n\t18: \"model_series\",\n\t19: \"model_status_details\",\n\t20: \"model_ability\",\n}\n\nfunc (p *Model) IsSetModelQuota() bool {\n\treturn p.ModelQuota != nil\n}\n\nfunc (p *Model) IsSetModelDesc() bool {\n\treturn p.ModelDesc != nil\n}\n\nfunc (p *Model) IsSetFuncConfig() bool {\n\treturn p.FuncConfig != nil\n}\n\nfunc (p *Model) IsSetEndpointName() bool {\n\treturn p.EndpointName != nil\n}\n\nfunc (p *Model) IsSetModelTagList() bool {\n\treturn p.ModelTagList != nil\n}\n\nfunc (p *Model) IsSetIsUpRequired() bool {\n\treturn p.IsUpRequired != nil\n}\n\nfunc (p *Model) IsSetModelSeries() bool {\n\treturn p.ModelSeries != nil\n}\n\nfunc (p *Model) IsSetModelStatusDetails() bool {\n\treturn p.ModelStatusDetails != nil\n}\n\nfunc (p *Model) IsSetModelAbility() bool {\n\treturn p.ModelAbility != nil\n}\n\nfunc (p *Model) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Model[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Model) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Model) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelType = _field\n\treturn nil\n}\nfunc (p *Model) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field ModelClass\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ModelClass(v)\n\t}\n\tp.ModelClass = _field\n\treturn nil\n}\nfunc (p *Model) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelIcon = _field\n\treturn nil\n}\nfunc (p *Model) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelInputPrice = _field\n\treturn nil\n}\nfunc (p *Model) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelOutputPrice = _field\n\treturn nil\n}\nfunc (p *Model) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewModelQuota()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ModelQuota = _field\n\treturn nil\n}\nfunc (p *Model) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelName = _field\n\treturn nil\n}\nfunc (p *Model) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelClassName = _field\n\treturn nil\n}\nfunc (p *Model) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsOffline = _field\n\treturn nil\n}\nfunc (p *Model) ReadField11(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ModelParameter, 0, size)\n\tvalues := make([]ModelParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ModelParams = _field\n\treturn nil\n}\nfunc (p *Model) ReadField12(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ModelDescGroup, 0, size)\n\tvalues := make([]ModelDescGroup, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ModelDesc = _field\n\treturn nil\n}\nfunc (p *Model) ReadField13(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[bot_common.ModelFuncConfigType]bot_common.ModelFuncConfigStatus, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key bot_common.ModelFuncConfigType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = bot_common.ModelFuncConfigType(v)\n\t\t}\n\n\t\tvar _val bot_common.ModelFuncConfigStatus\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = bot_common.ModelFuncConfigStatus(v)\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FuncConfig = _field\n\treturn nil\n}\nfunc (p *Model) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EndpointName = _field\n\treturn nil\n}\nfunc (p *Model) ReadField15(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ModelTag, 0, size)\n\tvalues := make([]ModelTag, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ModelTagList = _field\n\treturn nil\n}\nfunc (p *Model) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsUpRequired = _field\n\treturn nil\n}\nfunc (p *Model) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelBriefDesc = _field\n\treturn nil\n}\nfunc (p *Model) ReadField18(iprot thrift.TProtocol) error {\n\t_field := NewModelSeriesInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ModelSeries = _field\n\treturn nil\n}\nfunc (p *Model) ReadField19(iprot thrift.TProtocol) error {\n\t_field := NewModelStatusDetails()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ModelStatusDetails = _field\n\treturn nil\n}\nfunc (p *Model) ReadField20(iprot thrift.TProtocol) error {\n\t_field := NewModelAbility()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ModelAbility = _field\n\treturn nil\n}\n\nfunc (p *Model) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Model\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Model) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Model) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_type\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ModelType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Model) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_class\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ModelClass)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Model) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_icon\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ModelIcon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Model) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_input_price\", thrift.DOUBLE, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.ModelInputPrice); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Model) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_output_price\", thrift.DOUBLE, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.ModelOutputPrice); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Model) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_quota\", thrift.STRUCT, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ModelQuota.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Model) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_name\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ModelName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *Model) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_class_name\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ModelClassName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *Model) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_offline\", thrift.BOOL, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsOffline); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *Model) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_params\", thrift.LIST, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ModelParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ModelParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *Model) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"model_desc\", thrift.LIST, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ModelDesc)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ModelDesc {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *Model) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFuncConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"func_config\", thrift.MAP, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I32, thrift.I32, len(p.FuncConfig)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.FuncConfig {\n\t\t\tif err := oprot.WriteI32(int32(k)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *Model) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEndpointName() {\n\t\tif err = oprot.WriteFieldBegin(\"endpoint_name\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.EndpointName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *Model) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelTagList() {\n\t\tif err = oprot.WriteFieldBegin(\"model_tag_list\", thrift.LIST, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ModelTagList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ModelTagList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *Model) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsUpRequired() {\n\t\tif err = oprot.WriteFieldBegin(\"is_up_required\", thrift.BOOL, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsUpRequired); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *Model) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_brief_desc\", thrift.STRING, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ModelBriefDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *Model) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_series\", thrift.STRUCT, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ModelSeries.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *Model) writeField19(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_status_details\", thrift.STRUCT, 19); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ModelStatusDetails.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *Model) writeField20(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_ability\", thrift.STRUCT, 20); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ModelAbility.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\n\nfunc (p *Model) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Model(%+v)\", *p)\n\n}\n\ntype VoiceType struct {\n\tID        int64  `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tModelName string `thrift:\"model_name,2\" form:\"model_name\" json:\"model_name\" query:\"model_name\"`\n\tName      string `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\tLanguage  string `thrift:\"language,4\" form:\"language\" json:\"language\" query:\"language\"`\n\tStyleID   string `thrift:\"style_id,5\" form:\"style_id\" json:\"style_id\" query:\"style_id\"`\n\tStyleName string `thrift:\"style_name,6\" form:\"style_name\" json:\"style_name\" query:\"style_name\"`\n}\n\nfunc NewVoiceType() *VoiceType {\n\treturn &VoiceType{}\n}\n\nfunc (p *VoiceType) InitDefault() {\n}\n\nfunc (p *VoiceType) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *VoiceType) GetModelName() (v string) {\n\treturn p.ModelName\n}\n\nfunc (p *VoiceType) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *VoiceType) GetLanguage() (v string) {\n\treturn p.Language\n}\n\nfunc (p *VoiceType) GetStyleID() (v string) {\n\treturn p.StyleID\n}\n\nfunc (p *VoiceType) GetStyleName() (v string) {\n\treturn p.StyleName\n}\n\nvar fieldIDToName_VoiceType = map[int16]string{\n\t1: \"id\",\n\t2: \"model_name\",\n\t3: \"name\",\n\t4: \"language\",\n\t5: \"style_id\",\n\t6: \"style_name\",\n}\n\nfunc (p *VoiceType) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_VoiceType[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *VoiceType) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *VoiceType) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelName = _field\n\treturn nil\n}\nfunc (p *VoiceType) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *VoiceType) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Language = _field\n\treturn nil\n}\nfunc (p *VoiceType) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StyleID = _field\n\treturn nil\n}\nfunc (p *VoiceType) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StyleName = _field\n\treturn nil\n}\n\nfunc (p *VoiceType) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"VoiceType\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *VoiceType) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *VoiceType) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ModelName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *VoiceType) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *VoiceType) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"language\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Language); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *VoiceType) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"style_id\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.StyleID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *VoiceType) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"style_name\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.StyleName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *VoiceType) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"VoiceType(%+v)\", *p)\n\n}\n\ntype GetTypeListData struct {\n\tModelList    []*Model     `thrift:\"model_list,1\" form:\"model_list\" json:\"model_list\" query:\"model_list\"`\n\tVoiceList    []*VoiceType `thrift:\"voice_list,2\" form:\"voice_list\" json:\"voice_list\" query:\"voice_list\"`\n\tRawModelList []*Model     `thrift:\"raw_model_list,3\" form:\"raw_model_list\" json:\"raw_model_list\" query:\"raw_model_list\"`\n}\n\nfunc NewGetTypeListData() *GetTypeListData {\n\treturn &GetTypeListData{}\n}\n\nfunc (p *GetTypeListData) InitDefault() {\n}\n\nfunc (p *GetTypeListData) GetModelList() (v []*Model) {\n\treturn p.ModelList\n}\n\nfunc (p *GetTypeListData) GetVoiceList() (v []*VoiceType) {\n\treturn p.VoiceList\n}\n\nfunc (p *GetTypeListData) GetRawModelList() (v []*Model) {\n\treturn p.RawModelList\n}\n\nvar fieldIDToName_GetTypeListData = map[int16]string{\n\t1: \"model_list\",\n\t2: \"voice_list\",\n\t3: \"raw_model_list\",\n}\n\nfunc (p *GetTypeListData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetTypeListData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetTypeListData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Model, 0, size)\n\tvalues := make([]Model, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ModelList = _field\n\treturn nil\n}\nfunc (p *GetTypeListData) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*VoiceType, 0, size)\n\tvalues := make([]VoiceType, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.VoiceList = _field\n\treturn nil\n}\nfunc (p *GetTypeListData) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Model, 0, size)\n\tvalues := make([]Model, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RawModelList = _field\n\treturn nil\n}\n\nfunc (p *GetTypeListData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTypeListData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetTypeListData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ModelList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ModelList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetTypeListData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"voice_list\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.VoiceList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.VoiceList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetTypeListData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"raw_model_list\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.RawModelList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.RawModelList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *GetTypeListData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetTypeListData(%+v)\", *p)\n\n}\n\ntype GetTypeListResponse struct {\n\tCode int64            `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string           `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData *GetTypeListData `thrift:\"data,3,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n}\n\nfunc NewGetTypeListResponse() *GetTypeListResponse {\n\treturn &GetTypeListResponse{}\n}\n\nfunc (p *GetTypeListResponse) InitDefault() {\n}\n\nfunc (p *GetTypeListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetTypeListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetTypeListResponse_Data_DEFAULT *GetTypeListData\n\nfunc (p *GetTypeListResponse) GetData() (v *GetTypeListData) {\n\tif !p.IsSetData() {\n\t\treturn GetTypeListResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_GetTypeListResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *GetTypeListResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetTypeListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetTypeListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetTypeListResponse[fieldId]))\n}\n\nfunc (p *GetTypeListResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetTypeListResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetTypeListResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewGetTypeListData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *GetTypeListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTypeListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetTypeListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetTypeListResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetTypeListResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *GetTypeListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetTypeListResponse(%+v)\", *p)\n\n}\n\ntype UploadFileData struct {\n\t// File URL\n\tUploadURL string `thrift:\"upload_url,1\" form:\"upload_url\" json:\"upload_url\" query:\"upload_url\"`\n\t// File URI, submit using this\n\tUploadURI string `thrift:\"upload_uri,2\" form:\"upload_uri\" json:\"upload_uri\" query:\"upload_uri\"`\n}\n\nfunc NewUploadFileData() *UploadFileData {\n\treturn &UploadFileData{}\n}\n\nfunc (p *UploadFileData) InitDefault() {\n}\n\nfunc (p *UploadFileData) GetUploadURL() (v string) {\n\treturn p.UploadURL\n}\n\nfunc (p *UploadFileData) GetUploadURI() (v string) {\n\treturn p.UploadURI\n}\n\nvar fieldIDToName_UploadFileData = map[int16]string{\n\t1: \"upload_url\",\n\t2: \"upload_uri\",\n}\n\nfunc (p *UploadFileData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadFileData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UploadFileData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UploadURL = _field\n\treturn nil\n}\nfunc (p *UploadFileData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UploadURI = _field\n\treturn nil\n}\n\nfunc (p *UploadFileData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadFileData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadFileData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"upload_url\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UploadURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UploadFileData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"upload_uri\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UploadURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UploadFileData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadFileData(%+v)\", *p)\n\n}\n\ntype UpdateUserProfileCheckRequest struct {\n\tUserUniqueName *string `thrift:\"user_unique_name,1,optional\" form:\"user_unique_name\" json:\"user_unique_name,omitempty\" query:\"user_unique_name\"`\n}\n\nfunc NewUpdateUserProfileCheckRequest() *UpdateUserProfileCheckRequest {\n\treturn &UpdateUserProfileCheckRequest{}\n}\n\nfunc (p *UpdateUserProfileCheckRequest) InitDefault() {\n}\n\nvar UpdateUserProfileCheckRequest_UserUniqueName_DEFAULT string\n\nfunc (p *UpdateUserProfileCheckRequest) GetUserUniqueName() (v string) {\n\tif !p.IsSetUserUniqueName() {\n\t\treturn UpdateUserProfileCheckRequest_UserUniqueName_DEFAULT\n\t}\n\treturn *p.UserUniqueName\n}\n\nvar fieldIDToName_UpdateUserProfileCheckRequest = map[int16]string{\n\t1: \"user_unique_name\",\n}\n\nfunc (p *UpdateUserProfileCheckRequest) IsSetUserUniqueName() bool {\n\treturn p.UserUniqueName != nil\n}\n\nfunc (p *UpdateUserProfileCheckRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateUserProfileCheckRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateUserProfileCheckRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserUniqueName = _field\n\treturn nil\n}\n\nfunc (p *UpdateUserProfileCheckRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateUserProfileCheckRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateUserProfileCheckRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserUniqueName() {\n\t\tif err = oprot.WriteFieldBegin(\"user_unique_name\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UserUniqueName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *UpdateUserProfileCheckRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateUserProfileCheckRequest(%+v)\", *p)\n\n}\n\ntype UpdateUserProfileCheckResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n}\n\nfunc NewUpdateUserProfileCheckResponse() *UpdateUserProfileCheckResponse {\n\treturn &UpdateUserProfileCheckResponse{}\n}\n\nfunc (p *UpdateUserProfileCheckResponse) InitDefault() {\n}\n\nfunc (p *UpdateUserProfileCheckResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateUserProfileCheckResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_UpdateUserProfileCheckResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n}\n\nfunc (p *UpdateUserProfileCheckResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateUserProfileCheckResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateUserProfileCheckResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateUserProfileCheckResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *UpdateUserProfileCheckResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateUserProfileCheckResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateUserProfileCheckResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateUserProfileCheckResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UpdateUserProfileCheckResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateUserProfileCheckResponse(%+v)\", *p)\n\n}\n\ntype Committer struct {\n\tID         *string `thrift:\"id,1,optional\" form:\"id\" json:\"id,omitempty\" query:\"id\"`\n\tName       *string `thrift:\"name,2,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tCommitTime *string `thrift:\"commit_time,3,optional\" form:\"commit_time\" json:\"commit_time,omitempty\" query:\"commit_time\"`\n}\n\nfunc NewCommitter() *Committer {\n\treturn &Committer{}\n}\n\nfunc (p *Committer) InitDefault() {\n}\n\nvar Committer_ID_DEFAULT string\n\nfunc (p *Committer) GetID() (v string) {\n\tif !p.IsSetID() {\n\t\treturn Committer_ID_DEFAULT\n\t}\n\treturn *p.ID\n}\n\nvar Committer_Name_DEFAULT string\n\nfunc (p *Committer) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn Committer_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar Committer_CommitTime_DEFAULT string\n\nfunc (p *Committer) GetCommitTime() (v string) {\n\tif !p.IsSetCommitTime() {\n\t\treturn Committer_CommitTime_DEFAULT\n\t}\n\treturn *p.CommitTime\n}\n\nvar fieldIDToName_Committer = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"commit_time\",\n}\n\nfunc (p *Committer) IsSetID() bool {\n\treturn p.ID != nil\n}\n\nfunc (p *Committer) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *Committer) IsSetCommitTime() bool {\n\treturn p.CommitTime != nil\n}\n\nfunc (p *Committer) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Committer[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Committer) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *Committer) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Committer) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitTime = _field\n\treturn nil\n}\n\nfunc (p *Committer) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Committer\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Committer) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetID() {\n\t\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Committer) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Committer) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitTime() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_time\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *Committer) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Committer(%+v)\", *p)\n\n}\n\n// Check if the draft can be submitted and returned.\ntype CheckDraftBotCommitResponse struct {\n\tCode *int64                   `thrift:\"code,1,optional\" form:\"code\" json:\"code,omitempty\" query:\"code\"`\n\tMsg  *string                  `thrift:\"msg,2,optional\" form:\"msg\" json:\"msg,omitempty\" query:\"msg\"`\n\tData *CheckDraftBotCommitData `thrift:\"data,3,optional\" form:\"data\" json:\"data,omitempty\" query:\"data\"`\n}\n\nfunc NewCheckDraftBotCommitResponse() *CheckDraftBotCommitResponse {\n\treturn &CheckDraftBotCommitResponse{}\n}\n\nfunc (p *CheckDraftBotCommitResponse) InitDefault() {\n}\n\nvar CheckDraftBotCommitResponse_Code_DEFAULT int64\n\nfunc (p *CheckDraftBotCommitResponse) GetCode() (v int64) {\n\tif !p.IsSetCode() {\n\t\treturn CheckDraftBotCommitResponse_Code_DEFAULT\n\t}\n\treturn *p.Code\n}\n\nvar CheckDraftBotCommitResponse_Msg_DEFAULT string\n\nfunc (p *CheckDraftBotCommitResponse) GetMsg() (v string) {\n\tif !p.IsSetMsg() {\n\t\treturn CheckDraftBotCommitResponse_Msg_DEFAULT\n\t}\n\treturn *p.Msg\n}\n\nvar CheckDraftBotCommitResponse_Data_DEFAULT *CheckDraftBotCommitData\n\nfunc (p *CheckDraftBotCommitResponse) GetData() (v *CheckDraftBotCommitData) {\n\tif !p.IsSetData() {\n\t\treturn CheckDraftBotCommitResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_CheckDraftBotCommitResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *CheckDraftBotCommitResponse) IsSetCode() bool {\n\treturn p.Code != nil\n}\n\nfunc (p *CheckDraftBotCommitResponse) IsSetMsg() bool {\n\treturn p.Msg != nil\n}\n\nfunc (p *CheckDraftBotCommitResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *CheckDraftBotCommitResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CheckDraftBotCommitResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CheckDraftBotCommitResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CheckDraftBotCommitResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CheckDraftBotCommitResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewCheckDraftBotCommitData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *CheckDraftBotCommitResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckDraftBotCommitResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CheckDraftBotCommitResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCode() {\n\t\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Code); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CheckDraftBotCommitResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CheckDraftBotCommitResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetData() {\n\t\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Data.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *CheckDraftBotCommitResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CheckDraftBotCommitResponse(%+v)\", *p)\n\n}\n\ntype CheckDraftBotCommitData struct {\n\tStatus *CommitStatus `thrift:\"status,1,optional\" form:\"status\" json:\"status,omitempty\" query:\"status\"`\n\t// master draft version\n\tBaseCommitVersion *string `thrift:\"base_commit_version,2,optional\" form:\"base_commit_version\" json:\"base_commit_version,omitempty\" query:\"base_commit_version\"`\n\t// Master Draft Submission Information\n\tBaseCommitter *Committer `thrift:\"base_committer,3,optional\" form:\"base_committer\" json:\"base_committer,omitempty\" query:\"base_committer\"`\n\t// Personal draft version\n\tCommitVersion *string `thrift:\"commit_version,4,optional\" form:\"commit_version\" json:\"commit_version,omitempty\" query:\"commit_version\"`\n}\n\nfunc NewCheckDraftBotCommitData() *CheckDraftBotCommitData {\n\treturn &CheckDraftBotCommitData{}\n}\n\nfunc (p *CheckDraftBotCommitData) InitDefault() {\n}\n\nvar CheckDraftBotCommitData_Status_DEFAULT CommitStatus\n\nfunc (p *CheckDraftBotCommitData) GetStatus() (v CommitStatus) {\n\tif !p.IsSetStatus() {\n\t\treturn CheckDraftBotCommitData_Status_DEFAULT\n\t}\n\treturn *p.Status\n}\n\nvar CheckDraftBotCommitData_BaseCommitVersion_DEFAULT string\n\nfunc (p *CheckDraftBotCommitData) GetBaseCommitVersion() (v string) {\n\tif !p.IsSetBaseCommitVersion() {\n\t\treturn CheckDraftBotCommitData_BaseCommitVersion_DEFAULT\n\t}\n\treturn *p.BaseCommitVersion\n}\n\nvar CheckDraftBotCommitData_BaseCommitter_DEFAULT *Committer\n\nfunc (p *CheckDraftBotCommitData) GetBaseCommitter() (v *Committer) {\n\tif !p.IsSetBaseCommitter() {\n\t\treturn CheckDraftBotCommitData_BaseCommitter_DEFAULT\n\t}\n\treturn p.BaseCommitter\n}\n\nvar CheckDraftBotCommitData_CommitVersion_DEFAULT string\n\nfunc (p *CheckDraftBotCommitData) GetCommitVersion() (v string) {\n\tif !p.IsSetCommitVersion() {\n\t\treturn CheckDraftBotCommitData_CommitVersion_DEFAULT\n\t}\n\treturn *p.CommitVersion\n}\n\nvar fieldIDToName_CheckDraftBotCommitData = map[int16]string{\n\t1: \"status\",\n\t2: \"base_commit_version\",\n\t3: \"base_committer\",\n\t4: \"commit_version\",\n}\n\nfunc (p *CheckDraftBotCommitData) IsSetStatus() bool {\n\treturn p.Status != nil\n}\n\nfunc (p *CheckDraftBotCommitData) IsSetBaseCommitVersion() bool {\n\treturn p.BaseCommitVersion != nil\n}\n\nfunc (p *CheckDraftBotCommitData) IsSetBaseCommitter() bool {\n\treturn p.BaseCommitter != nil\n}\n\nfunc (p *CheckDraftBotCommitData) IsSetCommitVersion() bool {\n\treturn p.CommitVersion != nil\n}\n\nfunc (p *CheckDraftBotCommitData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CheckDraftBotCommitData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CheckDraftBotCommitData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *CommitStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := CommitStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *CheckDraftBotCommitData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BaseCommitVersion = _field\n\treturn nil\n}\nfunc (p *CheckDraftBotCommitData) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewCommitter()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseCommitter = _field\n\treturn nil\n}\nfunc (p *CheckDraftBotCommitData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitVersion = _field\n\treturn nil\n}\n\nfunc (p *CheckDraftBotCommitData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckDraftBotCommitData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CheckDraftBotCommitData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Status)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CheckDraftBotCommitData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"base_commit_version\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BaseCommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CheckDraftBotCommitData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseCommitter() {\n\t\tif err = oprot.WriteFieldBegin(\"base_committer\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseCommitter.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CheckDraftBotCommitData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_version\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *CheckDraftBotCommitData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CheckDraftBotCommitData(%+v)\", *p)\n\n}\n\n// Check if the draft can be submitted to the request\ntype CheckDraftBotCommitRequest struct {\n\tSpaceID       string  `thrift:\"space_id,1,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tBotID         string  `thrift:\"bot_id,2,required\" form:\"bot_id,required\" json:\"bot_id,required\" query:\"bot_id,required\"`\n\tCommitVersion *string `thrift:\"commit_version,3,optional\" form:\"commit_version\" json:\"commit_version,omitempty\" query:\"commit_version\"`\n}\n\nfunc NewCheckDraftBotCommitRequest() *CheckDraftBotCommitRequest {\n\treturn &CheckDraftBotCommitRequest{}\n}\n\nfunc (p *CheckDraftBotCommitRequest) InitDefault() {\n}\n\nfunc (p *CheckDraftBotCommitRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *CheckDraftBotCommitRequest) GetBotID() (v string) {\n\treturn p.BotID\n}\n\nvar CheckDraftBotCommitRequest_CommitVersion_DEFAULT string\n\nfunc (p *CheckDraftBotCommitRequest) GetCommitVersion() (v string) {\n\tif !p.IsSetCommitVersion() {\n\t\treturn CheckDraftBotCommitRequest_CommitVersion_DEFAULT\n\t}\n\treturn *p.CommitVersion\n}\n\nvar fieldIDToName_CheckDraftBotCommitRequest = map[int16]string{\n\t1: \"space_id\",\n\t2: \"bot_id\",\n\t3: \"commit_version\",\n}\n\nfunc (p *CheckDraftBotCommitRequest) IsSetCommitVersion() bool {\n\treturn p.CommitVersion != nil\n}\n\nfunc (p *CheckDraftBotCommitRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CheckDraftBotCommitRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CheckDraftBotCommitRequest[fieldId]))\n}\n\nfunc (p *CheckDraftBotCommitRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *CheckDraftBotCommitRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *CheckDraftBotCommitRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitVersion = _field\n\treturn nil\n}\n\nfunc (p *CheckDraftBotCommitRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckDraftBotCommitRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CheckDraftBotCommitRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CheckDraftBotCommitRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CheckDraftBotCommitRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_version\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *CheckDraftBotCommitRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CheckDraftBotCommitRequest(%+v)\", *p)\n\n}\n\ntype GetOnboardingRequest struct {\n\tBotID     string `thrift:\"bot_id,1\" form:\"bot_id\" json:\"bot_id\" query:\"bot_id\"`\n\tBotPrompt string `thrift:\"bot_prompt,2\" form:\"bot_prompt\" json:\"bot_prompt\" query:\"bot_prompt\"`\n}\n\nfunc NewGetOnboardingRequest() *GetOnboardingRequest {\n\treturn &GetOnboardingRequest{}\n}\n\nfunc (p *GetOnboardingRequest) InitDefault() {\n}\n\nfunc (p *GetOnboardingRequest) GetBotID() (v string) {\n\treturn p.BotID\n}\n\nfunc (p *GetOnboardingRequest) GetBotPrompt() (v string) {\n\treturn p.BotPrompt\n}\n\nvar fieldIDToName_GetOnboardingRequest = map[int16]string{\n\t1: \"bot_id\",\n\t2: \"bot_prompt\",\n}\n\nfunc (p *GetOnboardingRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOnboardingRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetOnboardingRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetOnboardingRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotPrompt = _field\n\treturn nil\n}\n\nfunc (p *GetOnboardingRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnboardingRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOnboardingRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetOnboardingRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_prompt\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BotPrompt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *GetOnboardingRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOnboardingRequest(%+v)\", *p)\n\n}\n\ntype GetOnboardingResponseData struct {\n\tOnboardingContent *OnboardingContent `thrift:\"onboarding_content,1\" form:\"onboarding_content\" json:\"onboarding_content\" query:\"onboarding_content\"`\n}\n\nfunc NewGetOnboardingResponseData() *GetOnboardingResponseData {\n\treturn &GetOnboardingResponseData{}\n}\n\nfunc (p *GetOnboardingResponseData) InitDefault() {\n}\n\nvar GetOnboardingResponseData_OnboardingContent_DEFAULT *OnboardingContent\n\nfunc (p *GetOnboardingResponseData) GetOnboardingContent() (v *OnboardingContent) {\n\tif !p.IsSetOnboardingContent() {\n\t\treturn GetOnboardingResponseData_OnboardingContent_DEFAULT\n\t}\n\treturn p.OnboardingContent\n}\n\nvar fieldIDToName_GetOnboardingResponseData = map[int16]string{\n\t1: \"onboarding_content\",\n}\n\nfunc (p *GetOnboardingResponseData) IsSetOnboardingContent() bool {\n\treturn p.OnboardingContent != nil\n}\n\nfunc (p *GetOnboardingResponseData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOnboardingResponseData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetOnboardingResponseData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewOnboardingContent()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OnboardingContent = _field\n\treturn nil\n}\n\nfunc (p *GetOnboardingResponseData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnboardingResponseData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOnboardingResponseData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"onboarding_content\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.OnboardingContent.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *GetOnboardingResponseData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOnboardingResponseData(%+v)\", *p)\n\n}\n\ntype GetOnboardingResponse struct {\n\tCode int64                      `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string                     `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData *GetOnboardingResponseData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n}\n\nfunc NewGetOnboardingResponse() *GetOnboardingResponse {\n\treturn &GetOnboardingResponse{}\n}\n\nfunc (p *GetOnboardingResponse) InitDefault() {\n}\n\nfunc (p *GetOnboardingResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetOnboardingResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetOnboardingResponse_Data_DEFAULT *GetOnboardingResponseData\n\nfunc (p *GetOnboardingResponse) GetData() (v *GetOnboardingResponseData) {\n\tif !p.IsSetData() {\n\t\treturn GetOnboardingResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_GetOnboardingResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *GetOnboardingResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetOnboardingResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOnboardingResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetOnboardingResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetOnboardingResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetOnboardingResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewGetOnboardingResponseData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *GetOnboardingResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnboardingResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOnboardingResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetOnboardingResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetOnboardingResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *GetOnboardingResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOnboardingResponse(%+v)\", *p)\n\n}\n\ntype OnboardingContent struct {\n\t// opening statement\n\tPrologue *string `thrift:\"prologue,1,optional\" form:\"prologue\" json:\"prologue,omitempty\" query:\"prologue\"`\n\t// suggestion question\n\tSuggestedQuestions []string `thrift:\"suggested_questions,2,optional\" form:\"suggested_questions\" json:\"suggested_questions,omitempty\" query:\"suggested_questions\"`\n}\n\nfunc NewOnboardingContent() *OnboardingContent {\n\treturn &OnboardingContent{}\n}\n\nfunc (p *OnboardingContent) InitDefault() {\n}\n\nvar OnboardingContent_Prologue_DEFAULT string\n\nfunc (p *OnboardingContent) GetPrologue() (v string) {\n\tif !p.IsSetPrologue() {\n\t\treturn OnboardingContent_Prologue_DEFAULT\n\t}\n\treturn *p.Prologue\n}\n\nvar OnboardingContent_SuggestedQuestions_DEFAULT []string\n\nfunc (p *OnboardingContent) GetSuggestedQuestions() (v []string) {\n\tif !p.IsSetSuggestedQuestions() {\n\t\treturn OnboardingContent_SuggestedQuestions_DEFAULT\n\t}\n\treturn p.SuggestedQuestions\n}\n\nvar fieldIDToName_OnboardingContent = map[int16]string{\n\t1: \"prologue\",\n\t2: \"suggested_questions\",\n}\n\nfunc (p *OnboardingContent) IsSetPrologue() bool {\n\treturn p.Prologue != nil\n}\n\nfunc (p *OnboardingContent) IsSetSuggestedQuestions() bool {\n\treturn p.SuggestedQuestions != nil\n}\n\nfunc (p *OnboardingContent) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OnboardingContent[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OnboardingContent) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Prologue = _field\n\treturn nil\n}\nfunc (p *OnboardingContent) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestedQuestions = _field\n\treturn nil\n}\n\nfunc (p *OnboardingContent) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OnboardingContent\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OnboardingContent) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrologue() {\n\t\tif err = oprot.WriteFieldBegin(\"prologue\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Prologue); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OnboardingContent) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestedQuestions() {\n\t\tif err = oprot.WriteFieldBegin(\"suggested_questions\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.SuggestedQuestions)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SuggestedQuestions {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *OnboardingContent) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OnboardingContent(%+v)\", *p)\n\n}\n\ntype AuthLoginInfo struct {\n\tAppID        string `thrift:\"app_id,1\" form:\"app_id\" json:\"app_id\" query:\"app_id\"`\n\tResponseType string `thrift:\"response_type,2\" form:\"response_type\" json:\"response_type\" query:\"response_type\"`\n\tAuthorizeURL string `thrift:\"authorize_url,3\" form:\"authorize_url\" json:\"authorize_url\" query:\"authorize_url\"`\n\tScope        string `thrift:\"scope,4\" form:\"scope\" json:\"scope\" query:\"scope\"`\n\tClientID     string `thrift:\"client_id,5\" form:\"client_id\" json:\"client_id\" query:\"client_id\"`\n\tDuration     string `thrift:\"duration,6\" form:\"duration\" json:\"duration\" query:\"duration\"`\n\tAid          string `thrift:\"aid,7\" form:\"aid\" json:\"aid\" query:\"aid\"`\n\tClientKey    string `thrift:\"client_key,8\" form:\"client_key\" json:\"client_key\" query:\"client_key\"`\n}\n\nfunc NewAuthLoginInfo() *AuthLoginInfo {\n\treturn &AuthLoginInfo{}\n}\n\nfunc (p *AuthLoginInfo) InitDefault() {\n}\n\nfunc (p *AuthLoginInfo) GetAppID() (v string) {\n\treturn p.AppID\n}\n\nfunc (p *AuthLoginInfo) GetResponseType() (v string) {\n\treturn p.ResponseType\n}\n\nfunc (p *AuthLoginInfo) GetAuthorizeURL() (v string) {\n\treturn p.AuthorizeURL\n}\n\nfunc (p *AuthLoginInfo) GetScope() (v string) {\n\treturn p.Scope\n}\n\nfunc (p *AuthLoginInfo) GetClientID() (v string) {\n\treturn p.ClientID\n}\n\nfunc (p *AuthLoginInfo) GetDuration() (v string) {\n\treturn p.Duration\n}\n\nfunc (p *AuthLoginInfo) GetAid() (v string) {\n\treturn p.Aid\n}\n\nfunc (p *AuthLoginInfo) GetClientKey() (v string) {\n\treturn p.ClientKey\n}\n\nvar fieldIDToName_AuthLoginInfo = map[int16]string{\n\t1: \"app_id\",\n\t2: \"response_type\",\n\t3: \"authorize_url\",\n\t4: \"scope\",\n\t5: \"client_id\",\n\t6: \"duration\",\n\t7: \"aid\",\n\t8: \"client_key\",\n}\n\nfunc (p *AuthLoginInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AuthLoginInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AuthLoginInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AppID = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ResponseType = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AuthorizeURL = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Scope = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ClientID = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Duration = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Aid = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ClientKey = _field\n\treturn nil\n}\n\nfunc (p *AuthLoginInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AuthLoginInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AuthLoginInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"app_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AppID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ResponseType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"authorize_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AuthorizeURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"scope\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Scope); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"client_id\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ClientID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"duration\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Duration); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"aid\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Aid); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"client_key\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ClientKey); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *AuthLoginInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AuthLoginInfo(%+v)\", *p)\n\n}\n\ntype PublishConnectorListRequest struct {\n\tSpaceID       int64   `thrift:\"space_id,1,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\tBotID         int64   `thrift:\"bot_id,2,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\tCommitVersion *string `thrift:\"commit_version,3,optional\" form:\"commit_version\" json:\"commit_version,omitempty\" query:\"commit_version\"`\n}\n\nfunc NewPublishConnectorListRequest() *PublishConnectorListRequest {\n\treturn &PublishConnectorListRequest{}\n}\n\nfunc (p *PublishConnectorListRequest) InitDefault() {\n}\n\nfunc (p *PublishConnectorListRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *PublishConnectorListRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar PublishConnectorListRequest_CommitVersion_DEFAULT string\n\nfunc (p *PublishConnectorListRequest) GetCommitVersion() (v string) {\n\tif !p.IsSetCommitVersion() {\n\t\treturn PublishConnectorListRequest_CommitVersion_DEFAULT\n\t}\n\treturn *p.CommitVersion\n}\n\nvar fieldIDToName_PublishConnectorListRequest = map[int16]string{\n\t1: \"space_id\",\n\t2: \"bot_id\",\n\t3: \"commit_version\",\n}\n\nfunc (p *PublishConnectorListRequest) IsSetCommitVersion() bool {\n\treturn p.CommitVersion != nil\n}\n\nfunc (p *PublishConnectorListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishConnectorListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PublishConnectorListRequest[fieldId]))\n}\n\nfunc (p *PublishConnectorListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitVersion = _field\n\treturn nil\n}\n\nfunc (p *PublishConnectorListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishConnectorListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishConnectorListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishConnectorListRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_version\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishConnectorListRequest(%+v)\", *p)\n\n}\n\ntype PublishConnectorInfo struct {\n\t// Publishing Platform connector_id\n\tID string `thrift:\"id,1,required\" form:\"id,required\" json:\"id,required\" query:\"id,required\"`\n\t// publishing platform name\n\tName string `thrift:\"name,2,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\t// publishing platform icon\n\tIcon string `thrift:\"icon,3,required\" form:\"icon,required\" json:\"icon,required\" query:\"icon,required\"`\n\t// Publish Platform Description\n\tDesc string `thrift:\"desc,4,required\" form:\"desc,required\" json:\"desc,required\" query:\"desc,required\"`\n\t// share link\n\tShareLink string `thrift:\"share_link,5,required\" form:\"share_link,required\" json:\"share_link,required\" query:\"share_link,required\"`\n\t// Configuration Status 1: Bound 2: Unbound\n\tConfigStatus ConfigStatus `thrift:\"config_status,6,required\" form:\"config_status,required\" json:\"config_status,required\" query:\"config_status,required\"`\n\t// Last Post\n\tLastPublishTime int64 `thrift:\"last_publish_time,7,required\" form:\"last_publish_time,required\" json:\"last_publish_time,required\" query:\"last_publish_time,required\"`\n\t// Binding type 1: No binding required 2: Auth 3: kv value\n\tBindType BindType `thrift:\"bind_type,8,required\" form:\"bind_type,required\" json:\"bind_type,required\" query:\"bind_type,required\"`\n\t// Binding information key field name value is value\n\tBindInfo map[string]string `thrift:\"bind_info,9,required\" form:\"bind_info,required\" json:\"bind_info,required\" query:\"bind_info,required\"`\n\t// Bind id information for unbinding and use\n\tBindID *string `thrift:\"bind_id,10,optional\" form:\"bind_id\" json:\"bind_id,omitempty\" query:\"bind_id\"`\n\t// user authorization login information\n\tAuthLoginInfo *AuthLoginInfo `thrift:\"auth_login_info,11,optional\" form:\"auth_login_info\" json:\"auth_login_info,omitempty\" query:\"auth_login_info\"`\n\t// Is it the last release?\n\tIsLastPublished *bool `thrift:\"is_last_published,12,optional\" form:\"is_last_published\" json:\"is_last_published,omitempty\" query:\"is_last_published\"`\n\t// bot channel status\n\tConnectorStatus *BotConnectorStatus `thrift:\"connector_status,13,optional\" form:\"connector_status\" json:\"connector_status,omitempty\" query:\"connector_status\"`\n\t// Privacy Policy\n\tPrivacyPolicy *string `thrift:\"privacy_policy,14,optional\" form:\"privacy_policy\" json:\"privacy_policy,omitempty\" query:\"privacy_policy\"`\n\t// User Agreement\n\tUserAgreement *string `thrift:\"user_agreement,15,optional\" form:\"user_agreement\" json:\"user_agreement,omitempty\" query:\"user_agreement\"`\n\t// Is the channel allowed to publish?\n\tAllowPunish *AllowPublishStatus `thrift:\"allow_punish,16,optional\" form:\"allow_punish\" json:\"allow_punish,omitempty\" query:\"allow_punish\"`\n\t// Reason for not allowing posting\n\tNotAllowReason *string `thrift:\"not_allow_reason,17,optional\" form:\"not_allow_reason\" json:\"not_allow_reason,omitempty\" query:\"not_allow_reason\"`\n\t// Configuration status toast\n\tConfigStatusToast *string `thrift:\"config_status_toast,18,optional\" form:\"config_status_toast\" json:\"config_status_toast,omitempty\" query:\"config_status_toast\"`\n\t// Brand ID\n\tBrandID *int64 `thrift:\"brand_id,19,optional\" form:\"brand_id\" json:\"brand_id,omitempty\" query:\"brand_id\"`\n\t// Support commercialization\n\tSupportMonetization *bool `thrift:\"support_monetization,20,optional\" form:\"support_monetization\" json:\"support_monetization,omitempty\" query:\"support_monetization\"`\n\t// 1: Authorized, 2: Unauthorized. Currently this field is only available bind_type == 8\n\tAuthStatus *UserAuthStatus `thrift:\"auth_status,21,optional\" form:\"auth_status\" json:\"auth_status,omitempty\" query:\"auth_status\"`\n\t// URL of the complete info button\n\tToCompleteInfoURL *string `thrift:\"to_complete_info_url,22,optional\" form:\"to_complete_info_url\" json:\"to_complete_info_url,omitempty\" query:\"to_complete_info_url\"`\n}\n\nfunc NewPublishConnectorInfo() *PublishConnectorInfo {\n\treturn &PublishConnectorInfo{}\n}\n\nfunc (p *PublishConnectorInfo) InitDefault() {\n}\n\nfunc (p *PublishConnectorInfo) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *PublishConnectorInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PublishConnectorInfo) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nfunc (p *PublishConnectorInfo) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *PublishConnectorInfo) GetShareLink() (v string) {\n\treturn p.ShareLink\n}\n\nfunc (p *PublishConnectorInfo) GetConfigStatus() (v ConfigStatus) {\n\treturn p.ConfigStatus\n}\n\nfunc (p *PublishConnectorInfo) GetLastPublishTime() (v int64) {\n\treturn p.LastPublishTime\n}\n\nfunc (p *PublishConnectorInfo) GetBindType() (v BindType) {\n\treturn p.BindType\n}\n\nfunc (p *PublishConnectorInfo) GetBindInfo() (v map[string]string) {\n\treturn p.BindInfo\n}\n\nvar PublishConnectorInfo_BindID_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetBindID() (v string) {\n\tif !p.IsSetBindID() {\n\t\treturn PublishConnectorInfo_BindID_DEFAULT\n\t}\n\treturn *p.BindID\n}\n\nvar PublishConnectorInfo_AuthLoginInfo_DEFAULT *AuthLoginInfo\n\nfunc (p *PublishConnectorInfo) GetAuthLoginInfo() (v *AuthLoginInfo) {\n\tif !p.IsSetAuthLoginInfo() {\n\t\treturn PublishConnectorInfo_AuthLoginInfo_DEFAULT\n\t}\n\treturn p.AuthLoginInfo\n}\n\nvar PublishConnectorInfo_IsLastPublished_DEFAULT bool\n\nfunc (p *PublishConnectorInfo) GetIsLastPublished() (v bool) {\n\tif !p.IsSetIsLastPublished() {\n\t\treturn PublishConnectorInfo_IsLastPublished_DEFAULT\n\t}\n\treturn *p.IsLastPublished\n}\n\nvar PublishConnectorInfo_ConnectorStatus_DEFAULT BotConnectorStatus\n\nfunc (p *PublishConnectorInfo) GetConnectorStatus() (v BotConnectorStatus) {\n\tif !p.IsSetConnectorStatus() {\n\t\treturn PublishConnectorInfo_ConnectorStatus_DEFAULT\n\t}\n\treturn *p.ConnectorStatus\n}\n\nvar PublishConnectorInfo_PrivacyPolicy_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetPrivacyPolicy() (v string) {\n\tif !p.IsSetPrivacyPolicy() {\n\t\treturn PublishConnectorInfo_PrivacyPolicy_DEFAULT\n\t}\n\treturn *p.PrivacyPolicy\n}\n\nvar PublishConnectorInfo_UserAgreement_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetUserAgreement() (v string) {\n\tif !p.IsSetUserAgreement() {\n\t\treturn PublishConnectorInfo_UserAgreement_DEFAULT\n\t}\n\treturn *p.UserAgreement\n}\n\nvar PublishConnectorInfo_AllowPunish_DEFAULT AllowPublishStatus\n\nfunc (p *PublishConnectorInfo) GetAllowPunish() (v AllowPublishStatus) {\n\tif !p.IsSetAllowPunish() {\n\t\treturn PublishConnectorInfo_AllowPunish_DEFAULT\n\t}\n\treturn *p.AllowPunish\n}\n\nvar PublishConnectorInfo_NotAllowReason_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetNotAllowReason() (v string) {\n\tif !p.IsSetNotAllowReason() {\n\t\treturn PublishConnectorInfo_NotAllowReason_DEFAULT\n\t}\n\treturn *p.NotAllowReason\n}\n\nvar PublishConnectorInfo_ConfigStatusToast_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetConfigStatusToast() (v string) {\n\tif !p.IsSetConfigStatusToast() {\n\t\treturn PublishConnectorInfo_ConfigStatusToast_DEFAULT\n\t}\n\treturn *p.ConfigStatusToast\n}\n\nvar PublishConnectorInfo_BrandID_DEFAULT int64\n\nfunc (p *PublishConnectorInfo) GetBrandID() (v int64) {\n\tif !p.IsSetBrandID() {\n\t\treturn PublishConnectorInfo_BrandID_DEFAULT\n\t}\n\treturn *p.BrandID\n}\n\nvar PublishConnectorInfo_SupportMonetization_DEFAULT bool\n\nfunc (p *PublishConnectorInfo) GetSupportMonetization() (v bool) {\n\tif !p.IsSetSupportMonetization() {\n\t\treturn PublishConnectorInfo_SupportMonetization_DEFAULT\n\t}\n\treturn *p.SupportMonetization\n}\n\nvar PublishConnectorInfo_AuthStatus_DEFAULT UserAuthStatus\n\nfunc (p *PublishConnectorInfo) GetAuthStatus() (v UserAuthStatus) {\n\tif !p.IsSetAuthStatus() {\n\t\treturn PublishConnectorInfo_AuthStatus_DEFAULT\n\t}\n\treturn *p.AuthStatus\n}\n\nvar PublishConnectorInfo_ToCompleteInfoURL_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetToCompleteInfoURL() (v string) {\n\tif !p.IsSetToCompleteInfoURL() {\n\t\treturn PublishConnectorInfo_ToCompleteInfoURL_DEFAULT\n\t}\n\treturn *p.ToCompleteInfoURL\n}\n\nvar fieldIDToName_PublishConnectorInfo = map[int16]string{\n\t1:  \"id\",\n\t2:  \"name\",\n\t3:  \"icon\",\n\t4:  \"desc\",\n\t5:  \"share_link\",\n\t6:  \"config_status\",\n\t7:  \"last_publish_time\",\n\t8:  \"bind_type\",\n\t9:  \"bind_info\",\n\t10: \"bind_id\",\n\t11: \"auth_login_info\",\n\t12: \"is_last_published\",\n\t13: \"connector_status\",\n\t14: \"privacy_policy\",\n\t15: \"user_agreement\",\n\t16: \"allow_punish\",\n\t17: \"not_allow_reason\",\n\t18: \"config_status_toast\",\n\t19: \"brand_id\",\n\t20: \"support_monetization\",\n\t21: \"auth_status\",\n\t22: \"to_complete_info_url\",\n}\n\nfunc (p *PublishConnectorInfo) IsSetBindID() bool {\n\treturn p.BindID != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetAuthLoginInfo() bool {\n\treturn p.AuthLoginInfo != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetIsLastPublished() bool {\n\treturn p.IsLastPublished != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetConnectorStatus() bool {\n\treturn p.ConnectorStatus != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetPrivacyPolicy() bool {\n\treturn p.PrivacyPolicy != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetUserAgreement() bool {\n\treturn p.UserAgreement != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetAllowPunish() bool {\n\treturn p.AllowPunish != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetNotAllowReason() bool {\n\treturn p.NotAllowReason != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetConfigStatusToast() bool {\n\treturn p.ConfigStatusToast != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetBrandID() bool {\n\treturn p.BrandID != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetSupportMonetization() bool {\n\treturn p.SupportMonetization != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetAuthStatus() bool {\n\treturn p.AuthStatus != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetToCompleteInfoURL() bool {\n\treturn p.ToCompleteInfoURL != nil\n}\n\nfunc (p *PublishConnectorInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\tvar issetName bool = false\n\tvar issetIcon bool = false\n\tvar issetDesc bool = false\n\tvar issetShareLink bool = false\n\tvar issetConfigStatus bool = false\n\tvar issetLastPublishTime bool = false\n\tvar issetBindType bool = false\n\tvar issetBindInfo bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetIcon = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDesc = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetShareLink = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConfigStatus = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetLastPublishTime = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBindType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBindInfo = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetIcon {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetDesc {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetShareLink {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConfigStatus {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetLastPublishTime {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBindType {\n\t\tfieldId = 8\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBindInfo {\n\t\tfieldId = 9\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishConnectorInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PublishConnectorInfo[fieldId]))\n}\n\nfunc (p *PublishConnectorInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ShareLink = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field ConfigStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ConfigStatus(v)\n\t}\n\tp.ConfigStatus = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LastPublishTime = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field BindType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BindType(v)\n\t}\n\tp.BindType = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField9(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BindInfo = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BindID = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField11(iprot thrift.TProtocol) error {\n\t_field := NewAuthLoginInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AuthLoginInfo = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsLastPublished = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *BotConnectorStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := BotConnectorStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.ConnectorStatus = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PrivacyPolicy = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserAgreement = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *AllowPublishStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := AllowPublishStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.AllowPunish = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NotAllowReason = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConfigStatusToast = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BrandID = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SupportMonetization = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *UserAuthStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := UserAuthStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.AuthStatus = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ToCompleteInfoURL = _field\n\treturn nil\n}\n\nfunc (p *PublishConnectorInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishConnectorInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishConnectorInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"share_link\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ShareLink); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"config_status\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ConfigStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"last_publish_time\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.LastPublishTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bind_type\", thrift.I32, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BindType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bind_info\", thrift.MAP, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.BindInfo)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.BindInfo {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindID() {\n\t\tif err = oprot.WriteFieldBegin(\"bind_id\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BindID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuthLoginInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"auth_login_info\", thrift.STRUCT, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.AuthLoginInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsLastPublished() {\n\t\tif err = oprot.WriteFieldBegin(\"is_last_published\", thrift.BOOL, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsLastPublished); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_status\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ConnectorStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrivacyPolicy() {\n\t\tif err = oprot.WriteFieldBegin(\"privacy_policy\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PrivacyPolicy); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserAgreement() {\n\t\tif err = oprot.WriteFieldBegin(\"user_agreement\", thrift.STRING, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UserAgreement); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAllowPunish() {\n\t\tif err = oprot.WriteFieldBegin(\"allow_punish\", thrift.I32, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AllowPunish)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNotAllowReason() {\n\t\tif err = oprot.WriteFieldBegin(\"not_allow_reason\", thrift.STRING, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.NotAllowReason); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConfigStatusToast() {\n\t\tif err = oprot.WriteFieldBegin(\"config_status_toast\", thrift.STRING, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConfigStatusToast); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBrandID() {\n\t\tif err = oprot.WriteFieldBegin(\"brand_id\", thrift.I64, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BrandID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSupportMonetization() {\n\t\tif err = oprot.WriteFieldBegin(\"support_monetization\", thrift.BOOL, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SupportMonetization); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuthStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"auth_status\", thrift.I32, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AuthStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField22(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetToCompleteInfoURL() {\n\t\tif err = oprot.WriteFieldBegin(\"to_complete_info_url\", thrift.STRING, 22); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ToCompleteInfoURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\n\nfunc (p *PublishConnectorInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishConnectorInfo(%+v)\", *p)\n\n}\n\ntype SubmitBotMarketOption struct {\n\t// Is it possible to publicly orchestrate?\n\tCanOpenSource *bool `thrift:\"can_open_source,1,optional\" form:\"can_open_source\" json:\"can_open_source,omitempty\" query:\"can_open_source\"`\n}\n\nfunc NewSubmitBotMarketOption() *SubmitBotMarketOption {\n\treturn &SubmitBotMarketOption{}\n}\n\nfunc (p *SubmitBotMarketOption) InitDefault() {\n}\n\nvar SubmitBotMarketOption_CanOpenSource_DEFAULT bool\n\nfunc (p *SubmitBotMarketOption) GetCanOpenSource() (v bool) {\n\tif !p.IsSetCanOpenSource() {\n\t\treturn SubmitBotMarketOption_CanOpenSource_DEFAULT\n\t}\n\treturn *p.CanOpenSource\n}\n\nvar fieldIDToName_SubmitBotMarketOption = map[int16]string{\n\t1: \"can_open_source\",\n}\n\nfunc (p *SubmitBotMarketOption) IsSetCanOpenSource() bool {\n\treturn p.CanOpenSource != nil\n}\n\nfunc (p *SubmitBotMarketOption) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SubmitBotMarketOption[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SubmitBotMarketOption) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CanOpenSource = _field\n\treturn nil\n}\n\nfunc (p *SubmitBotMarketOption) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitBotMarketOption\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SubmitBotMarketOption) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCanOpenSource() {\n\t\tif err = oprot.WriteFieldBegin(\"can_open_source\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.CanOpenSource); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *SubmitBotMarketOption) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SubmitBotMarketOption(%+v)\", *p)\n\n}\n\ntype ConnectorBrandInfo struct {\n\tID   int64  `thrift:\"id,1,required\" form:\"id,required\" json:\"id,required\" query:\"id,required\"`\n\tName string `thrift:\"name,2,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\tIcon string `thrift:\"icon,3,required\" form:\"icon,required\" json:\"icon,required\" query:\"icon,required\"`\n}\n\nfunc NewConnectorBrandInfo() *ConnectorBrandInfo {\n\treturn &ConnectorBrandInfo{}\n}\n\nfunc (p *ConnectorBrandInfo) InitDefault() {\n}\n\nfunc (p *ConnectorBrandInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *ConnectorBrandInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ConnectorBrandInfo) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nvar fieldIDToName_ConnectorBrandInfo = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"icon\",\n}\n\nfunc (p *ConnectorBrandInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\tvar issetName bool = false\n\tvar issetIcon bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetIcon = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetIcon {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConnectorBrandInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ConnectorBrandInfo[fieldId]))\n}\n\nfunc (p *ConnectorBrandInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ConnectorBrandInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ConnectorBrandInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\n\nfunc (p *ConnectorBrandInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConnectorBrandInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConnectorBrandInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConnectorBrandInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ConnectorBrandInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ConnectorBrandInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConnectorBrandInfo(%+v)\", *p)\n\n}\n\ntype PublishTips struct {\n\t// cost-bearing reminder\n\tCostTips *string `thrift:\"cost_tips,1,optional\" form:\"cost_tips\" json:\"cost_tips,omitempty\" query:\"cost_tips\"`\n}\n\nfunc NewPublishTips() *PublishTips {\n\treturn &PublishTips{}\n}\n\nfunc (p *PublishTips) InitDefault() {\n}\n\nvar PublishTips_CostTips_DEFAULT string\n\nfunc (p *PublishTips) GetCostTips() (v string) {\n\tif !p.IsSetCostTips() {\n\t\treturn PublishTips_CostTips_DEFAULT\n\t}\n\treturn *p.CostTips\n}\n\nvar fieldIDToName_PublishTips = map[int16]string{\n\t1: \"cost_tips\",\n}\n\nfunc (p *PublishTips) IsSetCostTips() bool {\n\treturn p.CostTips != nil\n}\n\nfunc (p *PublishTips) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishTips[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishTips) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CostTips = _field\n\treturn nil\n}\n\nfunc (p *PublishTips) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishTips\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishTips) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCostTips() {\n\t\tif err = oprot.WriteFieldBegin(\"cost_tips\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CostTips); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublishTips) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishTips(%+v)\", *p)\n\n}\n\ntype PublishConnectorListResponse struct {\n\tCode                  int64                   `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg                   string                  `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tPublishConnectorList  []*PublishConnectorInfo `thrift:\"publish_connector_list,3\" form:\"publish_connector_list\" json:\"publish_connector_list\" query:\"publish_connector_list\"`\n\tSubmitBotMarketOption *SubmitBotMarketOption  `thrift:\"submit_bot_market_option,4,optional\" form:\"submit_bot_market_option\" json:\"submit_bot_market_option,omitempty\" query:\"submit_bot_market_option\"`\n\t// The configuration of the last submitted market\n\tLastSubmitConfig *SubmitBotMarketConfig `thrift:\"last_submit_config,5,optional\" form:\"last_submit_config\" json:\"last_submit_config,omitempty\" query:\"last_submit_config\"`\n\t// Channel brand information\n\tConnectorBrandInfoMap map[int64]*ConnectorBrandInfo `thrift:\"connector_brand_info_map,6\" form:\"connector_brand_info_map\" json:\"connector_brand_info_map\" query:\"connector_brand_info_map\"`\n\t// post alert\n\tPublishTips *PublishTips `thrift:\"publish_tips,7,optional\" form:\"publish_tips\" json:\"publish_tips,omitempty\" query:\"publish_tips\"`\n}\n\nfunc NewPublishConnectorListResponse() *PublishConnectorListResponse {\n\treturn &PublishConnectorListResponse{}\n}\n\nfunc (p *PublishConnectorListResponse) InitDefault() {\n}\n\nfunc (p *PublishConnectorListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *PublishConnectorListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *PublishConnectorListResponse) GetPublishConnectorList() (v []*PublishConnectorInfo) {\n\treturn p.PublishConnectorList\n}\n\nvar PublishConnectorListResponse_SubmitBotMarketOption_DEFAULT *SubmitBotMarketOption\n\nfunc (p *PublishConnectorListResponse) GetSubmitBotMarketOption() (v *SubmitBotMarketOption) {\n\tif !p.IsSetSubmitBotMarketOption() {\n\t\treturn PublishConnectorListResponse_SubmitBotMarketOption_DEFAULT\n\t}\n\treturn p.SubmitBotMarketOption\n}\n\nvar PublishConnectorListResponse_LastSubmitConfig_DEFAULT *SubmitBotMarketConfig\n\nfunc (p *PublishConnectorListResponse) GetLastSubmitConfig() (v *SubmitBotMarketConfig) {\n\tif !p.IsSetLastSubmitConfig() {\n\t\treturn PublishConnectorListResponse_LastSubmitConfig_DEFAULT\n\t}\n\treturn p.LastSubmitConfig\n}\n\nfunc (p *PublishConnectorListResponse) GetConnectorBrandInfoMap() (v map[int64]*ConnectorBrandInfo) {\n\treturn p.ConnectorBrandInfoMap\n}\n\nvar PublishConnectorListResponse_PublishTips_DEFAULT *PublishTips\n\nfunc (p *PublishConnectorListResponse) GetPublishTips() (v *PublishTips) {\n\tif !p.IsSetPublishTips() {\n\t\treturn PublishConnectorListResponse_PublishTips_DEFAULT\n\t}\n\treturn p.PublishTips\n}\n\nvar fieldIDToName_PublishConnectorListResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"publish_connector_list\",\n\t4: \"submit_bot_market_option\",\n\t5: \"last_submit_config\",\n\t6: \"connector_brand_info_map\",\n\t7: \"publish_tips\",\n}\n\nfunc (p *PublishConnectorListResponse) IsSetSubmitBotMarketOption() bool {\n\treturn p.SubmitBotMarketOption != nil\n}\n\nfunc (p *PublishConnectorListResponse) IsSetLastSubmitConfig() bool {\n\treturn p.LastSubmitConfig != nil\n}\n\nfunc (p *PublishConnectorListResponse) IsSetPublishTips() bool {\n\treturn p.PublishTips != nil\n}\n\nfunc (p *PublishConnectorListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishConnectorListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PublishConnectorInfo, 0, size)\n\tvalues := make([]PublishConnectorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PublishConnectorList = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewSubmitBotMarketOption()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SubmitBotMarketOption = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListResponse) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewSubmitBotMarketConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.LastSubmitConfig = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListResponse) ReadField6(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]*ConnectorBrandInfo, size)\n\tvalues := make([]ConnectorBrandInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorBrandInfoMap = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListResponse) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewPublishTips()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PublishTips = _field\n\treturn nil\n}\n\nfunc (p *PublishConnectorListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishConnectorListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishConnectorListResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishConnectorListResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_connector_list\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PublishConnectorList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PublishConnectorList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishConnectorListResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubmitBotMarketOption() {\n\t\tif err = oprot.WriteFieldBegin(\"submit_bot_market_option\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SubmitBotMarketOption.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PublishConnectorListResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLastSubmitConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"last_submit_config\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.LastSubmitConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PublishConnectorListResponse) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_brand_info_map\", thrift.MAP, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.ConnectorBrandInfoMap)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.ConnectorBrandInfoMap {\n\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PublishConnectorListResponse) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishTips() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_tips\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.PublishTips.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishConnectorListResponse(%+v)\", *p)\n\n}\n\ntype DeveloperApiService interface {\n\tGetUploadAuthToken(ctx context.Context, request *GetUploadAuthTokenRequest) (r *GetUploadAuthTokenResponse, err error)\n\n\tDeleteDraftBot(ctx context.Context, request *DeleteDraftBotRequest) (r *DeleteDraftBotResponse, err error)\n\n\tDuplicateDraftBot(ctx context.Context, request *DuplicateDraftBotRequest) (r *DuplicateDraftBotResponse, err error)\n\n\tCheckDraftBotCommit(ctx context.Context, request *CheckDraftBotCommitRequest) (r *CheckDraftBotCommitResponse, err error)\n\n\tGetOnboarding(ctx context.Context, request *GetOnboardingRequest) (r *GetOnboardingResponse, err error)\n\n\tPublishConnectorList(ctx context.Context, request *PublishConnectorListRequest) (r *PublishConnectorListResponse, err error)\n\n\tDraftBotCreate(ctx context.Context, request *DraftBotCreateRequest) (r *DraftBotCreateResponse, err error)\n\n\tUpdateDraftBotDisplayInfo(ctx context.Context, request *UpdateDraftBotDisplayInfoRequest) (r *UpdateDraftBotDisplayInfoResponse, err error)\n\n\tGetDraftBotDisplayInfo(ctx context.Context, request *GetDraftBotDisplayInfoRequest) (r *GetDraftBotDisplayInfoResponse, err error)\n\n\tPublishDraftBot(ctx context.Context, request *PublishDraftBotRequest) (r *PublishDraftBotResponse, err error)\n\n\tListDraftBotHistory(ctx context.Context, request *ListDraftBotHistoryRequest) (r *ListDraftBotHistoryResponse, err error)\n\n\tUploadFile(ctx context.Context, request *UploadFileRequest) (r *UploadFileResponse, err error)\n\n\tGetTypeList(ctx context.Context, request *GetTypeListRequest) (r *GetTypeListResponse, err error)\n\n\tGetIcon(ctx context.Context, request *GetIconRequest) (r *GetIconResponse, err error)\n\n\tUpdateUserProfileCheck(ctx context.Context, request *UpdateUserProfileCheckRequest) (r *UpdateUserProfileCheckResponse, err error)\n}\n\ntype DeveloperApiServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewDeveloperApiServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *DeveloperApiServiceClient {\n\treturn &DeveloperApiServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewDeveloperApiServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *DeveloperApiServiceClient {\n\treturn &DeveloperApiServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewDeveloperApiServiceClient(c thrift.TClient) *DeveloperApiServiceClient {\n\treturn &DeveloperApiServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *DeveloperApiServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *DeveloperApiServiceClient) GetUploadAuthToken(ctx context.Context, request *GetUploadAuthTokenRequest) (r *GetUploadAuthTokenResponse, err error) {\n\tvar _args DeveloperApiServiceGetUploadAuthTokenArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceGetUploadAuthTokenResult\n\tif err = p.Client_().Call(ctx, \"GetUploadAuthToken\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) DeleteDraftBot(ctx context.Context, request *DeleteDraftBotRequest) (r *DeleteDraftBotResponse, err error) {\n\tvar _args DeveloperApiServiceDeleteDraftBotArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceDeleteDraftBotResult\n\tif err = p.Client_().Call(ctx, \"DeleteDraftBot\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) DuplicateDraftBot(ctx context.Context, request *DuplicateDraftBotRequest) (r *DuplicateDraftBotResponse, err error) {\n\tvar _args DeveloperApiServiceDuplicateDraftBotArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceDuplicateDraftBotResult\n\tif err = p.Client_().Call(ctx, \"DuplicateDraftBot\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) CheckDraftBotCommit(ctx context.Context, request *CheckDraftBotCommitRequest) (r *CheckDraftBotCommitResponse, err error) {\n\tvar _args DeveloperApiServiceCheckDraftBotCommitArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceCheckDraftBotCommitResult\n\tif err = p.Client_().Call(ctx, \"CheckDraftBotCommit\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) GetOnboarding(ctx context.Context, request *GetOnboardingRequest) (r *GetOnboardingResponse, err error) {\n\tvar _args DeveloperApiServiceGetOnboardingArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceGetOnboardingResult\n\tif err = p.Client_().Call(ctx, \"GetOnboarding\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) PublishConnectorList(ctx context.Context, request *PublishConnectorListRequest) (r *PublishConnectorListResponse, err error) {\n\tvar _args DeveloperApiServicePublishConnectorListArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServicePublishConnectorListResult\n\tif err = p.Client_().Call(ctx, \"PublishConnectorList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) DraftBotCreate(ctx context.Context, request *DraftBotCreateRequest) (r *DraftBotCreateResponse, err error) {\n\tvar _args DeveloperApiServiceDraftBotCreateArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceDraftBotCreateResult\n\tif err = p.Client_().Call(ctx, \"DraftBotCreate\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) UpdateDraftBotDisplayInfo(ctx context.Context, request *UpdateDraftBotDisplayInfoRequest) (r *UpdateDraftBotDisplayInfoResponse, err error) {\n\tvar _args DeveloperApiServiceUpdateDraftBotDisplayInfoArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceUpdateDraftBotDisplayInfoResult\n\tif err = p.Client_().Call(ctx, \"UpdateDraftBotDisplayInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) GetDraftBotDisplayInfo(ctx context.Context, request *GetDraftBotDisplayInfoRequest) (r *GetDraftBotDisplayInfoResponse, err error) {\n\tvar _args DeveloperApiServiceGetDraftBotDisplayInfoArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceGetDraftBotDisplayInfoResult\n\tif err = p.Client_().Call(ctx, \"GetDraftBotDisplayInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) PublishDraftBot(ctx context.Context, request *PublishDraftBotRequest) (r *PublishDraftBotResponse, err error) {\n\tvar _args DeveloperApiServicePublishDraftBotArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServicePublishDraftBotResult\n\tif err = p.Client_().Call(ctx, \"PublishDraftBot\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) ListDraftBotHistory(ctx context.Context, request *ListDraftBotHistoryRequest) (r *ListDraftBotHistoryResponse, err error) {\n\tvar _args DeveloperApiServiceListDraftBotHistoryArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceListDraftBotHistoryResult\n\tif err = p.Client_().Call(ctx, \"ListDraftBotHistory\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) UploadFile(ctx context.Context, request *UploadFileRequest) (r *UploadFileResponse, err error) {\n\tvar _args DeveloperApiServiceUploadFileArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceUploadFileResult\n\tif err = p.Client_().Call(ctx, \"UploadFile\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) GetTypeList(ctx context.Context, request *GetTypeListRequest) (r *GetTypeListResponse, err error) {\n\tvar _args DeveloperApiServiceGetTypeListArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceGetTypeListResult\n\tif err = p.Client_().Call(ctx, \"GetTypeList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) GetIcon(ctx context.Context, request *GetIconRequest) (r *GetIconResponse, err error) {\n\tvar _args DeveloperApiServiceGetIconArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceGetIconResult\n\tif err = p.Client_().Call(ctx, \"GetIcon\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DeveloperApiServiceClient) UpdateUserProfileCheck(ctx context.Context, request *UpdateUserProfileCheckRequest) (r *UpdateUserProfileCheckResponse, err error) {\n\tvar _args DeveloperApiServiceUpdateUserProfileCheckArgs\n\t_args.Request = request\n\tvar _result DeveloperApiServiceUpdateUserProfileCheckResult\n\tif err = p.Client_().Call(ctx, \"UpdateUserProfileCheck\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype DeveloperApiServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      DeveloperApiService\n}\n\nfunc (p *DeveloperApiServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *DeveloperApiServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *DeveloperApiServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewDeveloperApiServiceProcessor(handler DeveloperApiService) *DeveloperApiServiceProcessor {\n\tself := &DeveloperApiServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"GetUploadAuthToken\", &developerApiServiceProcessorGetUploadAuthToken{handler: handler})\n\tself.AddToProcessorMap(\"DeleteDraftBot\", &developerApiServiceProcessorDeleteDraftBot{handler: handler})\n\tself.AddToProcessorMap(\"DuplicateDraftBot\", &developerApiServiceProcessorDuplicateDraftBot{handler: handler})\n\tself.AddToProcessorMap(\"CheckDraftBotCommit\", &developerApiServiceProcessorCheckDraftBotCommit{handler: handler})\n\tself.AddToProcessorMap(\"GetOnboarding\", &developerApiServiceProcessorGetOnboarding{handler: handler})\n\tself.AddToProcessorMap(\"PublishConnectorList\", &developerApiServiceProcessorPublishConnectorList{handler: handler})\n\tself.AddToProcessorMap(\"DraftBotCreate\", &developerApiServiceProcessorDraftBotCreate{handler: handler})\n\tself.AddToProcessorMap(\"UpdateDraftBotDisplayInfo\", &developerApiServiceProcessorUpdateDraftBotDisplayInfo{handler: handler})\n\tself.AddToProcessorMap(\"GetDraftBotDisplayInfo\", &developerApiServiceProcessorGetDraftBotDisplayInfo{handler: handler})\n\tself.AddToProcessorMap(\"PublishDraftBot\", &developerApiServiceProcessorPublishDraftBot{handler: handler})\n\tself.AddToProcessorMap(\"ListDraftBotHistory\", &developerApiServiceProcessorListDraftBotHistory{handler: handler})\n\tself.AddToProcessorMap(\"UploadFile\", &developerApiServiceProcessorUploadFile{handler: handler})\n\tself.AddToProcessorMap(\"GetTypeList\", &developerApiServiceProcessorGetTypeList{handler: handler})\n\tself.AddToProcessorMap(\"GetIcon\", &developerApiServiceProcessorGetIcon{handler: handler})\n\tself.AddToProcessorMap(\"UpdateUserProfileCheck\", &developerApiServiceProcessorUpdateUserProfileCheck{handler: handler})\n\treturn self\n}\nfunc (p *DeveloperApiServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype developerApiServiceProcessorGetUploadAuthToken struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorGetUploadAuthToken) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceGetUploadAuthTokenArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetUploadAuthToken\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceGetUploadAuthTokenResult{}\n\tvar retval *GetUploadAuthTokenResponse\n\tif retval, err2 = p.handler.GetUploadAuthToken(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetUploadAuthToken: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetUploadAuthToken\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetUploadAuthToken\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorDeleteDraftBot struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorDeleteDraftBot) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceDeleteDraftBotArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteDraftBot\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceDeleteDraftBotResult{}\n\tvar retval *DeleteDraftBotResponse\n\tif retval, err2 = p.handler.DeleteDraftBot(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteDraftBot: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteDraftBot\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteDraftBot\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorDuplicateDraftBot struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorDuplicateDraftBot) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceDuplicateDraftBotArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DuplicateDraftBot\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceDuplicateDraftBotResult{}\n\tvar retval *DuplicateDraftBotResponse\n\tif retval, err2 = p.handler.DuplicateDraftBot(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DuplicateDraftBot: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DuplicateDraftBot\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DuplicateDraftBot\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorCheckDraftBotCommit struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorCheckDraftBotCommit) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceCheckDraftBotCommitArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CheckDraftBotCommit\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceCheckDraftBotCommitResult{}\n\tvar retval *CheckDraftBotCommitResponse\n\tif retval, err2 = p.handler.CheckDraftBotCommit(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CheckDraftBotCommit: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CheckDraftBotCommit\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CheckDraftBotCommit\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorGetOnboarding struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorGetOnboarding) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceGetOnboardingArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetOnboarding\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceGetOnboardingResult{}\n\tvar retval *GetOnboardingResponse\n\tif retval, err2 = p.handler.GetOnboarding(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetOnboarding: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetOnboarding\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetOnboarding\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorPublishConnectorList struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorPublishConnectorList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServicePublishConnectorListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublishConnectorList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServicePublishConnectorListResult{}\n\tvar retval *PublishConnectorListResponse\n\tif retval, err2 = p.handler.PublishConnectorList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublishConnectorList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublishConnectorList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublishConnectorList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorDraftBotCreate struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorDraftBotCreate) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceDraftBotCreateArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DraftBotCreate\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceDraftBotCreateResult{}\n\tvar retval *DraftBotCreateResponse\n\tif retval, err2 = p.handler.DraftBotCreate(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DraftBotCreate: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DraftBotCreate\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DraftBotCreate\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorUpdateDraftBotDisplayInfo struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorUpdateDraftBotDisplayInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceUpdateDraftBotDisplayInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDraftBotDisplayInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceUpdateDraftBotDisplayInfoResult{}\n\tvar retval *UpdateDraftBotDisplayInfoResponse\n\tif retval, err2 = p.handler.UpdateDraftBotDisplayInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateDraftBotDisplayInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDraftBotDisplayInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateDraftBotDisplayInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorGetDraftBotDisplayInfo struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorGetDraftBotDisplayInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceGetDraftBotDisplayInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDraftBotDisplayInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceGetDraftBotDisplayInfoResult{}\n\tvar retval *GetDraftBotDisplayInfoResponse\n\tif retval, err2 = p.handler.GetDraftBotDisplayInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDraftBotDisplayInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDraftBotDisplayInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDraftBotDisplayInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorPublishDraftBot struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorPublishDraftBot) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServicePublishDraftBotArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublishDraftBot\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServicePublishDraftBotResult{}\n\tvar retval *PublishDraftBotResponse\n\tif retval, err2 = p.handler.PublishDraftBot(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublishDraftBot: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublishDraftBot\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublishDraftBot\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorListDraftBotHistory struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorListDraftBotHistory) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceListDraftBotHistoryArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListDraftBotHistory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceListDraftBotHistoryResult{}\n\tvar retval *ListDraftBotHistoryResponse\n\tif retval, err2 = p.handler.ListDraftBotHistory(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListDraftBotHistory: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListDraftBotHistory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListDraftBotHistory\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorUploadFile struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorUploadFile) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceUploadFileArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UploadFile\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceUploadFileResult{}\n\tvar retval *UploadFileResponse\n\tif retval, err2 = p.handler.UploadFile(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UploadFile: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UploadFile\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UploadFile\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorGetTypeList struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorGetTypeList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceGetTypeListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetTypeList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceGetTypeListResult{}\n\tvar retval *GetTypeListResponse\n\tif retval, err2 = p.handler.GetTypeList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetTypeList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetTypeList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetTypeList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorGetIcon struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorGetIcon) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceGetIconArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetIcon\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceGetIconResult{}\n\tvar retval *GetIconResponse\n\tif retval, err2 = p.handler.GetIcon(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetIcon: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetIcon\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetIcon\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype developerApiServiceProcessorUpdateUserProfileCheck struct {\n\thandler DeveloperApiService\n}\n\nfunc (p *developerApiServiceProcessorUpdateUserProfileCheck) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DeveloperApiServiceUpdateUserProfileCheckArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateUserProfileCheck\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DeveloperApiServiceUpdateUserProfileCheckResult{}\n\tvar retval *UpdateUserProfileCheckResponse\n\tif retval, err2 = p.handler.UpdateUserProfileCheck(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateUserProfileCheck: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateUserProfileCheck\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateUserProfileCheck\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype DeveloperApiServiceGetUploadAuthTokenArgs struct {\n\tRequest *GetUploadAuthTokenRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceGetUploadAuthTokenArgs() *DeveloperApiServiceGetUploadAuthTokenArgs {\n\treturn &DeveloperApiServiceGetUploadAuthTokenArgs{}\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceGetUploadAuthTokenArgs_Request_DEFAULT *GetUploadAuthTokenRequest\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenArgs) GetRequest() (v *GetUploadAuthTokenRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceGetUploadAuthTokenArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceGetUploadAuthTokenArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceGetUploadAuthTokenArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetUploadAuthTokenRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUploadAuthToken_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceGetUploadAuthTokenArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceGetUploadAuthTokenResult struct {\n\tSuccess *GetUploadAuthTokenResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceGetUploadAuthTokenResult() *DeveloperApiServiceGetUploadAuthTokenResult {\n\treturn &DeveloperApiServiceGetUploadAuthTokenResult{}\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenResult) InitDefault() {\n}\n\nvar DeveloperApiServiceGetUploadAuthTokenResult_Success_DEFAULT *GetUploadAuthTokenResponse\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenResult) GetSuccess() (v *GetUploadAuthTokenResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceGetUploadAuthTokenResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceGetUploadAuthTokenResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceGetUploadAuthTokenResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetUploadAuthTokenResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUploadAuthToken_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetUploadAuthTokenResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceGetUploadAuthTokenResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceDeleteDraftBotArgs struct {\n\tRequest *DeleteDraftBotRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceDeleteDraftBotArgs() *DeveloperApiServiceDeleteDraftBotArgs {\n\treturn &DeveloperApiServiceDeleteDraftBotArgs{}\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceDeleteDraftBotArgs_Request_DEFAULT *DeleteDraftBotRequest\n\nfunc (p *DeveloperApiServiceDeleteDraftBotArgs) GetRequest() (v *DeleteDraftBotRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceDeleteDraftBotArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceDeleteDraftBotArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceDeleteDraftBotArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteDraftBotRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDraftBot_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceDeleteDraftBotArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceDeleteDraftBotResult struct {\n\tSuccess *DeleteDraftBotResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceDeleteDraftBotResult() *DeveloperApiServiceDeleteDraftBotResult {\n\treturn &DeveloperApiServiceDeleteDraftBotResult{}\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotResult) InitDefault() {\n}\n\nvar DeveloperApiServiceDeleteDraftBotResult_Success_DEFAULT *DeleteDraftBotResponse\n\nfunc (p *DeveloperApiServiceDeleteDraftBotResult) GetSuccess() (v *DeleteDraftBotResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceDeleteDraftBotResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceDeleteDraftBotResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceDeleteDraftBotResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteDraftBotResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDraftBot_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDeleteDraftBotResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceDeleteDraftBotResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceDuplicateDraftBotArgs struct {\n\tRequest *DuplicateDraftBotRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceDuplicateDraftBotArgs() *DeveloperApiServiceDuplicateDraftBotArgs {\n\treturn &DeveloperApiServiceDuplicateDraftBotArgs{}\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceDuplicateDraftBotArgs_Request_DEFAULT *DuplicateDraftBotRequest\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotArgs) GetRequest() (v *DuplicateDraftBotRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceDuplicateDraftBotArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceDuplicateDraftBotArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceDuplicateDraftBotArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDuplicateDraftBotRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DuplicateDraftBot_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceDuplicateDraftBotArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceDuplicateDraftBotResult struct {\n\tSuccess *DuplicateDraftBotResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceDuplicateDraftBotResult() *DeveloperApiServiceDuplicateDraftBotResult {\n\treturn &DeveloperApiServiceDuplicateDraftBotResult{}\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotResult) InitDefault() {\n}\n\nvar DeveloperApiServiceDuplicateDraftBotResult_Success_DEFAULT *DuplicateDraftBotResponse\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotResult) GetSuccess() (v *DuplicateDraftBotResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceDuplicateDraftBotResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceDuplicateDraftBotResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceDuplicateDraftBotResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDuplicateDraftBotResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DuplicateDraftBot_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDuplicateDraftBotResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceDuplicateDraftBotResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceCheckDraftBotCommitArgs struct {\n\tRequest *CheckDraftBotCommitRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceCheckDraftBotCommitArgs() *DeveloperApiServiceCheckDraftBotCommitArgs {\n\treturn &DeveloperApiServiceCheckDraftBotCommitArgs{}\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceCheckDraftBotCommitArgs_Request_DEFAULT *CheckDraftBotCommitRequest\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitArgs) GetRequest() (v *CheckDraftBotCommitRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceCheckDraftBotCommitArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceCheckDraftBotCommitArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceCheckDraftBotCommitArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCheckDraftBotCommitRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckDraftBotCommit_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceCheckDraftBotCommitArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceCheckDraftBotCommitResult struct {\n\tSuccess *CheckDraftBotCommitResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceCheckDraftBotCommitResult() *DeveloperApiServiceCheckDraftBotCommitResult {\n\treturn &DeveloperApiServiceCheckDraftBotCommitResult{}\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitResult) InitDefault() {\n}\n\nvar DeveloperApiServiceCheckDraftBotCommitResult_Success_DEFAULT *CheckDraftBotCommitResponse\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitResult) GetSuccess() (v *CheckDraftBotCommitResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceCheckDraftBotCommitResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceCheckDraftBotCommitResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceCheckDraftBotCommitResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCheckDraftBotCommitResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckDraftBotCommit_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceCheckDraftBotCommitResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceCheckDraftBotCommitResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceGetOnboardingArgs struct {\n\tRequest *GetOnboardingRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceGetOnboardingArgs() *DeveloperApiServiceGetOnboardingArgs {\n\treturn &DeveloperApiServiceGetOnboardingArgs{}\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceGetOnboardingArgs_Request_DEFAULT *GetOnboardingRequest\n\nfunc (p *DeveloperApiServiceGetOnboardingArgs) GetRequest() (v *GetOnboardingRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceGetOnboardingArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceGetOnboardingArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceGetOnboardingArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetOnboardingRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnboarding_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceGetOnboardingArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceGetOnboardingResult struct {\n\tSuccess *GetOnboardingResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceGetOnboardingResult() *DeveloperApiServiceGetOnboardingResult {\n\treturn &DeveloperApiServiceGetOnboardingResult{}\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingResult) InitDefault() {\n}\n\nvar DeveloperApiServiceGetOnboardingResult_Success_DEFAULT *GetOnboardingResponse\n\nfunc (p *DeveloperApiServiceGetOnboardingResult) GetSuccess() (v *GetOnboardingResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceGetOnboardingResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceGetOnboardingResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceGetOnboardingResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetOnboardingResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnboarding_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetOnboardingResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceGetOnboardingResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServicePublishConnectorListArgs struct {\n\tRequest *PublishConnectorListRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServicePublishConnectorListArgs() *DeveloperApiServicePublishConnectorListArgs {\n\treturn &DeveloperApiServicePublishConnectorListArgs{}\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListArgs) InitDefault() {\n}\n\nvar DeveloperApiServicePublishConnectorListArgs_Request_DEFAULT *PublishConnectorListRequest\n\nfunc (p *DeveloperApiServicePublishConnectorListArgs) GetRequest() (v *PublishConnectorListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServicePublishConnectorListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServicePublishConnectorListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServicePublishConnectorListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPublishConnectorListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishConnectorList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServicePublishConnectorListArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServicePublishConnectorListResult struct {\n\tSuccess *PublishConnectorListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServicePublishConnectorListResult() *DeveloperApiServicePublishConnectorListResult {\n\treturn &DeveloperApiServicePublishConnectorListResult{}\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListResult) InitDefault() {\n}\n\nvar DeveloperApiServicePublishConnectorListResult_Success_DEFAULT *PublishConnectorListResponse\n\nfunc (p *DeveloperApiServicePublishConnectorListResult) GetSuccess() (v *PublishConnectorListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServicePublishConnectorListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServicePublishConnectorListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServicePublishConnectorListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewPublishConnectorListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishConnectorList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishConnectorListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServicePublishConnectorListResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceDraftBotCreateArgs struct {\n\tRequest *DraftBotCreateRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceDraftBotCreateArgs() *DeveloperApiServiceDraftBotCreateArgs {\n\treturn &DeveloperApiServiceDraftBotCreateArgs{}\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceDraftBotCreateArgs_Request_DEFAULT *DraftBotCreateRequest\n\nfunc (p *DeveloperApiServiceDraftBotCreateArgs) GetRequest() (v *DraftBotCreateRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceDraftBotCreateArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceDraftBotCreateArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceDraftBotCreateArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDraftBotCreateRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftBotCreate_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceDraftBotCreateArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceDraftBotCreateResult struct {\n\tSuccess *DraftBotCreateResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceDraftBotCreateResult() *DeveloperApiServiceDraftBotCreateResult {\n\treturn &DeveloperApiServiceDraftBotCreateResult{}\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateResult) InitDefault() {\n}\n\nvar DeveloperApiServiceDraftBotCreateResult_Success_DEFAULT *DraftBotCreateResponse\n\nfunc (p *DeveloperApiServiceDraftBotCreateResult) GetSuccess() (v *DraftBotCreateResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceDraftBotCreateResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceDraftBotCreateResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceDraftBotCreateResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDraftBotCreateResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftBotCreate_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceDraftBotCreateResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceDraftBotCreateResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceUpdateDraftBotDisplayInfoArgs struct {\n\tRequest *UpdateDraftBotDisplayInfoRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceUpdateDraftBotDisplayInfoArgs() *DeveloperApiServiceUpdateDraftBotDisplayInfoArgs {\n\treturn &DeveloperApiServiceUpdateDraftBotDisplayInfoArgs{}\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceUpdateDraftBotDisplayInfoArgs_Request_DEFAULT *UpdateDraftBotDisplayInfoRequest\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoArgs) GetRequest() (v *UpdateDraftBotDisplayInfoRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceUpdateDraftBotDisplayInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceUpdateDraftBotDisplayInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceUpdateDraftBotDisplayInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDraftBotDisplayInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDraftBotDisplayInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceUpdateDraftBotDisplayInfoArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceUpdateDraftBotDisplayInfoResult struct {\n\tSuccess *UpdateDraftBotDisplayInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceUpdateDraftBotDisplayInfoResult() *DeveloperApiServiceUpdateDraftBotDisplayInfoResult {\n\treturn &DeveloperApiServiceUpdateDraftBotDisplayInfoResult{}\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoResult) InitDefault() {\n}\n\nvar DeveloperApiServiceUpdateDraftBotDisplayInfoResult_Success_DEFAULT *UpdateDraftBotDisplayInfoResponse\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoResult) GetSuccess() (v *UpdateDraftBotDisplayInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceUpdateDraftBotDisplayInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceUpdateDraftBotDisplayInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceUpdateDraftBotDisplayInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDraftBotDisplayInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDraftBotDisplayInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateDraftBotDisplayInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceUpdateDraftBotDisplayInfoResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceGetDraftBotDisplayInfoArgs struct {\n\tRequest *GetDraftBotDisplayInfoRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceGetDraftBotDisplayInfoArgs() *DeveloperApiServiceGetDraftBotDisplayInfoArgs {\n\treturn &DeveloperApiServiceGetDraftBotDisplayInfoArgs{}\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceGetDraftBotDisplayInfoArgs_Request_DEFAULT *GetDraftBotDisplayInfoRequest\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoArgs) GetRequest() (v *GetDraftBotDisplayInfoRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceGetDraftBotDisplayInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceGetDraftBotDisplayInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceGetDraftBotDisplayInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDraftBotDisplayInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftBotDisplayInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceGetDraftBotDisplayInfoArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceGetDraftBotDisplayInfoResult struct {\n\tSuccess *GetDraftBotDisplayInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceGetDraftBotDisplayInfoResult() *DeveloperApiServiceGetDraftBotDisplayInfoResult {\n\treturn &DeveloperApiServiceGetDraftBotDisplayInfoResult{}\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoResult) InitDefault() {\n}\n\nvar DeveloperApiServiceGetDraftBotDisplayInfoResult_Success_DEFAULT *GetDraftBotDisplayInfoResponse\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoResult) GetSuccess() (v *GetDraftBotDisplayInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceGetDraftBotDisplayInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceGetDraftBotDisplayInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceGetDraftBotDisplayInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetDraftBotDisplayInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftBotDisplayInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetDraftBotDisplayInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceGetDraftBotDisplayInfoResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServicePublishDraftBotArgs struct {\n\tRequest *PublishDraftBotRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServicePublishDraftBotArgs() *DeveloperApiServicePublishDraftBotArgs {\n\treturn &DeveloperApiServicePublishDraftBotArgs{}\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotArgs) InitDefault() {\n}\n\nvar DeveloperApiServicePublishDraftBotArgs_Request_DEFAULT *PublishDraftBotRequest\n\nfunc (p *DeveloperApiServicePublishDraftBotArgs) GetRequest() (v *PublishDraftBotRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServicePublishDraftBotArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServicePublishDraftBotArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServicePublishDraftBotArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPublishDraftBotRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishDraftBot_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServicePublishDraftBotArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServicePublishDraftBotResult struct {\n\tSuccess *PublishDraftBotResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServicePublishDraftBotResult() *DeveloperApiServicePublishDraftBotResult {\n\treturn &DeveloperApiServicePublishDraftBotResult{}\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotResult) InitDefault() {\n}\n\nvar DeveloperApiServicePublishDraftBotResult_Success_DEFAULT *PublishDraftBotResponse\n\nfunc (p *DeveloperApiServicePublishDraftBotResult) GetSuccess() (v *PublishDraftBotResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServicePublishDraftBotResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServicePublishDraftBotResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServicePublishDraftBotResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewPublishDraftBotResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishDraftBot_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServicePublishDraftBotResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServicePublishDraftBotResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceListDraftBotHistoryArgs struct {\n\tRequest *ListDraftBotHistoryRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceListDraftBotHistoryArgs() *DeveloperApiServiceListDraftBotHistoryArgs {\n\treturn &DeveloperApiServiceListDraftBotHistoryArgs{}\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceListDraftBotHistoryArgs_Request_DEFAULT *ListDraftBotHistoryRequest\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryArgs) GetRequest() (v *ListDraftBotHistoryRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceListDraftBotHistoryArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceListDraftBotHistoryArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceListDraftBotHistoryArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListDraftBotHistoryRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDraftBotHistory_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceListDraftBotHistoryArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceListDraftBotHistoryResult struct {\n\tSuccess *ListDraftBotHistoryResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceListDraftBotHistoryResult() *DeveloperApiServiceListDraftBotHistoryResult {\n\treturn &DeveloperApiServiceListDraftBotHistoryResult{}\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryResult) InitDefault() {\n}\n\nvar DeveloperApiServiceListDraftBotHistoryResult_Success_DEFAULT *ListDraftBotHistoryResponse\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryResult) GetSuccess() (v *ListDraftBotHistoryResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceListDraftBotHistoryResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceListDraftBotHistoryResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceListDraftBotHistoryResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListDraftBotHistoryResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDraftBotHistory_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceListDraftBotHistoryResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceListDraftBotHistoryResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceUploadFileArgs struct {\n\tRequest *UploadFileRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceUploadFileArgs() *DeveloperApiServiceUploadFileArgs {\n\treturn &DeveloperApiServiceUploadFileArgs{}\n}\n\nfunc (p *DeveloperApiServiceUploadFileArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceUploadFileArgs_Request_DEFAULT *UploadFileRequest\n\nfunc (p *DeveloperApiServiceUploadFileArgs) GetRequest() (v *UploadFileRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceUploadFileArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceUploadFileArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceUploadFileArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceUploadFileArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceUploadFileArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUploadFileArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUploadFileRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceUploadFileArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadFile_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUploadFileArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUploadFileArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceUploadFileArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceUploadFileResult struct {\n\tSuccess *UploadFileResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceUploadFileResult() *DeveloperApiServiceUploadFileResult {\n\treturn &DeveloperApiServiceUploadFileResult{}\n}\n\nfunc (p *DeveloperApiServiceUploadFileResult) InitDefault() {\n}\n\nvar DeveloperApiServiceUploadFileResult_Success_DEFAULT *UploadFileResponse\n\nfunc (p *DeveloperApiServiceUploadFileResult) GetSuccess() (v *UploadFileResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceUploadFileResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceUploadFileResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceUploadFileResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceUploadFileResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceUploadFileResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUploadFileResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUploadFileResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceUploadFileResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadFile_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUploadFileResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUploadFileResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceUploadFileResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceGetTypeListArgs struct {\n\tRequest *GetTypeListRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceGetTypeListArgs() *DeveloperApiServiceGetTypeListArgs {\n\treturn &DeveloperApiServiceGetTypeListArgs{}\n}\n\nfunc (p *DeveloperApiServiceGetTypeListArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceGetTypeListArgs_Request_DEFAULT *GetTypeListRequest\n\nfunc (p *DeveloperApiServiceGetTypeListArgs) GetRequest() (v *GetTypeListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceGetTypeListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceGetTypeListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceGetTypeListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceGetTypeListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceGetTypeListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetTypeListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetTypeListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceGetTypeListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTypeList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetTypeListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetTypeListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceGetTypeListArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceGetTypeListResult struct {\n\tSuccess *GetTypeListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceGetTypeListResult() *DeveloperApiServiceGetTypeListResult {\n\treturn &DeveloperApiServiceGetTypeListResult{}\n}\n\nfunc (p *DeveloperApiServiceGetTypeListResult) InitDefault() {\n}\n\nvar DeveloperApiServiceGetTypeListResult_Success_DEFAULT *GetTypeListResponse\n\nfunc (p *DeveloperApiServiceGetTypeListResult) GetSuccess() (v *GetTypeListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceGetTypeListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceGetTypeListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceGetTypeListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceGetTypeListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceGetTypeListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetTypeListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetTypeListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceGetTypeListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTypeList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetTypeListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetTypeListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceGetTypeListResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceGetIconArgs struct {\n\tRequest *GetIconRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceGetIconArgs() *DeveloperApiServiceGetIconArgs {\n\treturn &DeveloperApiServiceGetIconArgs{}\n}\n\nfunc (p *DeveloperApiServiceGetIconArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceGetIconArgs_Request_DEFAULT *GetIconRequest\n\nfunc (p *DeveloperApiServiceGetIconArgs) GetRequest() (v *GetIconRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceGetIconArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceGetIconArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceGetIconArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceGetIconArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceGetIconArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetIconArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetIconRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceGetIconArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetIcon_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetIconArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetIconArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceGetIconArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceGetIconResult struct {\n\tSuccess *GetIconResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceGetIconResult() *DeveloperApiServiceGetIconResult {\n\treturn &DeveloperApiServiceGetIconResult{}\n}\n\nfunc (p *DeveloperApiServiceGetIconResult) InitDefault() {\n}\n\nvar DeveloperApiServiceGetIconResult_Success_DEFAULT *GetIconResponse\n\nfunc (p *DeveloperApiServiceGetIconResult) GetSuccess() (v *GetIconResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceGetIconResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceGetIconResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceGetIconResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceGetIconResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceGetIconResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetIconResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetIconResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceGetIconResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetIcon_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetIconResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceGetIconResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceGetIconResult(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceUpdateUserProfileCheckArgs struct {\n\tRequest *UpdateUserProfileCheckRequest `thrift:\"request,1\"`\n}\n\nfunc NewDeveloperApiServiceUpdateUserProfileCheckArgs() *DeveloperApiServiceUpdateUserProfileCheckArgs {\n\treturn &DeveloperApiServiceUpdateUserProfileCheckArgs{}\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckArgs) InitDefault() {\n}\n\nvar DeveloperApiServiceUpdateUserProfileCheckArgs_Request_DEFAULT *UpdateUserProfileCheckRequest\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckArgs) GetRequest() (v *UpdateUserProfileCheckRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn DeveloperApiServiceUpdateUserProfileCheckArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_DeveloperApiServiceUpdateUserProfileCheckArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceUpdateUserProfileCheckArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateUserProfileCheckRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateUserProfileCheck_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceUpdateUserProfileCheckArgs(%+v)\", *p)\n\n}\n\ntype DeveloperApiServiceUpdateUserProfileCheckResult struct {\n\tSuccess *UpdateUserProfileCheckResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDeveloperApiServiceUpdateUserProfileCheckResult() *DeveloperApiServiceUpdateUserProfileCheckResult {\n\treturn &DeveloperApiServiceUpdateUserProfileCheckResult{}\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckResult) InitDefault() {\n}\n\nvar DeveloperApiServiceUpdateUserProfileCheckResult_Success_DEFAULT *UpdateUserProfileCheckResponse\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckResult) GetSuccess() (v *UpdateUserProfileCheckResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DeveloperApiServiceUpdateUserProfileCheckResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DeveloperApiServiceUpdateUserProfileCheckResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeveloperApiServiceUpdateUserProfileCheckResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateUserProfileCheckResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateUserProfileCheck_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DeveloperApiServiceUpdateUserProfileCheckResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeveloperApiServiceUpdateUserProfileCheckResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/app/intelligence/common/common_struct.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\nconst (\n\tVariableTypeKVVariable = \"KVVariable\"\n\n\tVariableTypeListVariable = \"ListVariable\"\n\n\tVariableChannelCustom = \"custom\"\n\n\tVariableChannelSystem = \"system\"\n\n\tVariableChannelLocation = \"location\"\n\n\tVariableChannelFeishu = \"feishu\"\n\n\tVariableChannelAPP = \"app\"\n)\n\n/****************************** audit **********************************/\ntype AuditStatus int64\n\nconst (\n\t// Under review.\n\tAuditStatus_Auditing AuditStatus = 0\n\t// approved\n\tAuditStatus_Success AuditStatus = 1\n\t// audit failed\n\tAuditStatus_Failed AuditStatus = 2\n)\n\nfunc (p AuditStatus) String() string {\n\tswitch p {\n\tcase AuditStatus_Auditing:\n\t\treturn \"Auditing\"\n\tcase AuditStatus_Success:\n\t\treturn \"Success\"\n\tcase AuditStatus_Failed:\n\t\treturn \"Failed\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AuditStatusFromString(s string) (AuditStatus, error) {\n\tswitch s {\n\tcase \"Auditing\":\n\t\treturn AuditStatus_Auditing, nil\n\tcase \"Success\":\n\t\treturn AuditStatus_Success, nil\n\tcase \"Failed\":\n\t\treturn AuditStatus_Failed, nil\n\t}\n\treturn AuditStatus(0), fmt.Errorf(\"not a valid AuditStatus string\")\n}\n\nfunc AuditStatusPtr(v AuditStatus) *AuditStatus { return &v }\nfunc (p *AuditStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AuditStatus(result.Int64)\n\treturn\n}\n\nfunc (p *AuditStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n/****************************** publish **********************************/\ntype ConnectorDynamicStatus int64\n\nconst (\n\tConnectorDynamicStatus_Normal          ConnectorDynamicStatus = 0\n\tConnectorDynamicStatus_Offline         ConnectorDynamicStatus = 1\n\tConnectorDynamicStatus_TokenDisconnect ConnectorDynamicStatus = 2\n)\n\nfunc (p ConnectorDynamicStatus) String() string {\n\tswitch p {\n\tcase ConnectorDynamicStatus_Normal:\n\t\treturn \"Normal\"\n\tcase ConnectorDynamicStatus_Offline:\n\t\treturn \"Offline\"\n\tcase ConnectorDynamicStatus_TokenDisconnect:\n\t\treturn \"TokenDisconnect\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ConnectorDynamicStatusFromString(s string) (ConnectorDynamicStatus, error) {\n\tswitch s {\n\tcase \"Normal\":\n\t\treturn ConnectorDynamicStatus_Normal, nil\n\tcase \"Offline\":\n\t\treturn ConnectorDynamicStatus_Offline, nil\n\tcase \"TokenDisconnect\":\n\t\treturn ConnectorDynamicStatus_TokenDisconnect, nil\n\t}\n\treturn ConnectorDynamicStatus(0), fmt.Errorf(\"not a valid ConnectorDynamicStatus string\")\n}\n\nfunc ConnectorDynamicStatusPtr(v ConnectorDynamicStatus) *ConnectorDynamicStatus { return &v }\nfunc (p *ConnectorDynamicStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ConnectorDynamicStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ConnectorDynamicStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ResourceType int64\n\nconst (\n\tResourceType_Plugin    ResourceType = 1\n\tResourceType_Workflow  ResourceType = 2\n\tResourceType_Imageflow ResourceType = 3\n\tResourceType_Knowledge ResourceType = 4\n\tResourceType_UI        ResourceType = 5\n\tResourceType_Prompt    ResourceType = 6\n\tResourceType_Database  ResourceType = 7\n\tResourceType_Variable  ResourceType = 8\n)\n\nfunc (p ResourceType) String() string {\n\tswitch p {\n\tcase ResourceType_Plugin:\n\t\treturn \"Plugin\"\n\tcase ResourceType_Workflow:\n\t\treturn \"Workflow\"\n\tcase ResourceType_Imageflow:\n\t\treturn \"Imageflow\"\n\tcase ResourceType_Knowledge:\n\t\treturn \"Knowledge\"\n\tcase ResourceType_UI:\n\t\treturn \"UI\"\n\tcase ResourceType_Prompt:\n\t\treturn \"Prompt\"\n\tcase ResourceType_Database:\n\t\treturn \"Database\"\n\tcase ResourceType_Variable:\n\t\treturn \"Variable\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ResourceTypeFromString(s string) (ResourceType, error) {\n\tswitch s {\n\tcase \"Plugin\":\n\t\treturn ResourceType_Plugin, nil\n\tcase \"Workflow\":\n\t\treturn ResourceType_Workflow, nil\n\tcase \"Imageflow\":\n\t\treturn ResourceType_Imageflow, nil\n\tcase \"Knowledge\":\n\t\treturn ResourceType_Knowledge, nil\n\tcase \"UI\":\n\t\treturn ResourceType_UI, nil\n\tcase \"Prompt\":\n\t\treturn ResourceType_Prompt, nil\n\tcase \"Database\":\n\t\treturn ResourceType_Database, nil\n\tcase \"Variable\":\n\t\treturn ResourceType_Variable, nil\n\t}\n\treturn ResourceType(0), fmt.Errorf(\"not a valid ResourceType string\")\n}\n\nfunc ResourceTypePtr(v ResourceType) *ResourceType { return &v }\nfunc (p *ResourceType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ResourceType(result.Int64)\n\treturn\n}\n\nfunc (p *ResourceType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype OrderByType int64\n\nconst (\n\tOrderByType_Asc  OrderByType = 1\n\tOrderByType_Desc OrderByType = 2\n)\n\nfunc (p OrderByType) String() string {\n\tswitch p {\n\tcase OrderByType_Asc:\n\t\treturn \"Asc\"\n\tcase OrderByType_Desc:\n\t\treturn \"Desc\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OrderByTypeFromString(s string) (OrderByType, error) {\n\tswitch s {\n\tcase \"Asc\":\n\t\treturn OrderByType_Asc, nil\n\tcase \"Desc\":\n\t\treturn OrderByType_Desc, nil\n\t}\n\treturn OrderByType(0), fmt.Errorf(\"not a valid OrderByType string\")\n}\n\nfunc OrderByTypePtr(v OrderByType) *OrderByType { return &v }\nfunc (p *OrderByType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OrderByType(result.Int64)\n\treturn\n}\n\nfunc (p *OrderByType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PermissionType int64\n\nconst (\n\t//Can't view details\n\tPermissionType_NoDetail PermissionType = 1\n\t//You can check the details.\n\tPermissionType_Detail PermissionType = 2\n\t//Can be viewed and operated\n\tPermissionType_Operate PermissionType = 3\n)\n\nfunc (p PermissionType) String() string {\n\tswitch p {\n\tcase PermissionType_NoDetail:\n\t\treturn \"NoDetail\"\n\tcase PermissionType_Detail:\n\t\treturn \"Detail\"\n\tcase PermissionType_Operate:\n\t\treturn \"Operate\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PermissionTypeFromString(s string) (PermissionType, error) {\n\tswitch s {\n\tcase \"NoDetail\":\n\t\treturn PermissionType_NoDetail, nil\n\tcase \"Detail\":\n\t\treturn PermissionType_Detail, nil\n\tcase \"Operate\":\n\t\treturn PermissionType_Operate, nil\n\t}\n\treturn PermissionType(0), fmt.Errorf(\"not a valid PermissionType string\")\n}\n\nfunc PermissionTypePtr(v PermissionType) *PermissionType { return &v }\nfunc (p *PermissionType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PermissionType(result.Int64)\n\treturn\n}\n\nfunc (p *PermissionType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SpaceStatus int64\n\nconst (\n\tSpaceStatus_Valid   SpaceStatus = 1\n\tSpaceStatus_Invalid SpaceStatus = 2\n)\n\nfunc (p SpaceStatus) String() string {\n\tswitch p {\n\tcase SpaceStatus_Valid:\n\t\treturn \"Valid\"\n\tcase SpaceStatus_Invalid:\n\t\treturn \"Invalid\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SpaceStatusFromString(s string) (SpaceStatus, error) {\n\tswitch s {\n\tcase \"Valid\":\n\t\treturn SpaceStatus_Valid, nil\n\tcase \"Invalid\":\n\t\treturn SpaceStatus_Invalid, nil\n\t}\n\treturn SpaceStatus(0), fmt.Errorf(\"not a valid SpaceStatus string\")\n}\n\nfunc SpaceStatusPtr(v SpaceStatus) *SpaceStatus { return &v }\nfunc (p *SpaceStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SpaceStatus(result.Int64)\n\treturn\n}\n\nfunc (p *SpaceStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype VariableType = string\n\ntype VariableChannel = string\n\ntype UserLabel struct {\n\tLabelID   string `thrift:\"label_id,1\" form:\"label_id\" json:\"label_id\" query:\"label_id\"`\n\tLabelName string `thrift:\"label_name,2\" form:\"label_name\" json:\"label_name\" query:\"label_name\"`\n\tIconURI   string `thrift:\"icon_uri,3\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tIconURL   string `thrift:\"icon_url,4\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tJumpLink  string `thrift:\"jump_link,5\" form:\"jump_link\" json:\"jump_link\" query:\"jump_link\"`\n}\n\nfunc NewUserLabel() *UserLabel {\n\treturn &UserLabel{}\n}\n\nfunc (p *UserLabel) InitDefault() {\n}\n\nfunc (p *UserLabel) GetLabelID() (v string) {\n\treturn p.LabelID\n}\n\nfunc (p *UserLabel) GetLabelName() (v string) {\n\treturn p.LabelName\n}\n\nfunc (p *UserLabel) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *UserLabel) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *UserLabel) GetJumpLink() (v string) {\n\treturn p.JumpLink\n}\n\nvar fieldIDToName_UserLabel = map[int16]string{\n\t1: \"label_id\",\n\t2: \"label_name\",\n\t3: \"icon_uri\",\n\t4: \"icon_url\",\n\t5: \"jump_link\",\n}\n\nfunc (p *UserLabel) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserLabel[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserLabel) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LabelID = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LabelName = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.JumpLink = _field\n\treturn nil\n}\n\nfunc (p *UserLabel) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserLabel\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserLabel) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LabelID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LabelName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"jump_link\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.JumpLink); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *UserLabel) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserLabel(%+v)\", *p)\n\n}\n\ntype User struct {\n\tUserID int64 `thrift:\"user_id,1\" form:\"user_id\" json:\"user_id,string\" query:\"user_id\"`\n\t// user nickname\n\tNickname string `thrift:\"nickname,2\" form:\"nickname\" json:\"nickname\" query:\"nickname\"`\n\t// user avatar\n\tAvatarURL string `thrift:\"avatar_url,3\" form:\"avatar_url\" json:\"avatar_url\" query:\"avatar_url\"`\n\t// user name\n\tUserUniqueName string `thrift:\"user_unique_name,4\" form:\"user_unique_name\" json:\"user_unique_name\" query:\"user_unique_name\"`\n\t// user tag\n\tUserLabel *UserLabel `thrift:\"user_label,5\" form:\"user_label\" json:\"user_label\" query:\"user_label\"`\n}\n\nfunc NewUser() *User {\n\treturn &User{}\n}\n\nfunc (p *User) InitDefault() {\n}\n\nfunc (p *User) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *User) GetNickname() (v string) {\n\treturn p.Nickname\n}\n\nfunc (p *User) GetAvatarURL() (v string) {\n\treturn p.AvatarURL\n}\n\nfunc (p *User) GetUserUniqueName() (v string) {\n\treturn p.UserUniqueName\n}\n\nvar User_UserLabel_DEFAULT *UserLabel\n\nfunc (p *User) GetUserLabel() (v *UserLabel) {\n\tif !p.IsSetUserLabel() {\n\t\treturn User_UserLabel_DEFAULT\n\t}\n\treturn p.UserLabel\n}\n\nvar fieldIDToName_User = map[int16]string{\n\t1: \"user_id\",\n\t2: \"nickname\",\n\t3: \"avatar_url\",\n\t4: \"user_unique_name\",\n\t5: \"user_label\",\n}\n\nfunc (p *User) IsSetUserLabel() bool {\n\treturn p.UserLabel != nil\n}\n\nfunc (p *User) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_User[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *User) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *User) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Nickname = _field\n\treturn nil\n}\nfunc (p *User) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AvatarURL = _field\n\treturn nil\n}\nfunc (p *User) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserUniqueName = _field\n\treturn nil\n}\nfunc (p *User) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewUserLabel()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserLabel = _field\n\treturn nil\n}\n\nfunc (p *User) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"User\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *User) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *User) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"nickname\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Nickname); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *User) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"avatar_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AvatarURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *User) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_unique_name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserUniqueName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *User) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_label\", thrift.STRUCT, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.UserLabel.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *User) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"User(%+v)\", *p)\n\n}\n\ntype AuditInfo struct {\n\tAuditStatus   *AuditStatus `thrift:\"audit_status,1,optional\" form:\"audit_status\" json:\"audit_status,omitempty\" query:\"audit_status\"`\n\tPublishID     *string      `thrift:\"publish_id,2,optional\" form:\"publish_id\" json:\"publish_id,omitempty\" query:\"publish_id\"`\n\tCommitVersion *string      `thrift:\"commit_version,3,optional\" form:\"commit_version\" json:\"commit_version,omitempty\" query:\"commit_version\"`\n}\n\nfunc NewAuditInfo() *AuditInfo {\n\treturn &AuditInfo{}\n}\n\nfunc (p *AuditInfo) InitDefault() {\n}\n\nvar AuditInfo_AuditStatus_DEFAULT AuditStatus\n\nfunc (p *AuditInfo) GetAuditStatus() (v AuditStatus) {\n\tif !p.IsSetAuditStatus() {\n\t\treturn AuditInfo_AuditStatus_DEFAULT\n\t}\n\treturn *p.AuditStatus\n}\n\nvar AuditInfo_PublishID_DEFAULT string\n\nfunc (p *AuditInfo) GetPublishID() (v string) {\n\tif !p.IsSetPublishID() {\n\t\treturn AuditInfo_PublishID_DEFAULT\n\t}\n\treturn *p.PublishID\n}\n\nvar AuditInfo_CommitVersion_DEFAULT string\n\nfunc (p *AuditInfo) GetCommitVersion() (v string) {\n\tif !p.IsSetCommitVersion() {\n\t\treturn AuditInfo_CommitVersion_DEFAULT\n\t}\n\treturn *p.CommitVersion\n}\n\nvar fieldIDToName_AuditInfo = map[int16]string{\n\t1: \"audit_status\",\n\t2: \"publish_id\",\n\t3: \"commit_version\",\n}\n\nfunc (p *AuditInfo) IsSetAuditStatus() bool {\n\treturn p.AuditStatus != nil\n}\n\nfunc (p *AuditInfo) IsSetPublishID() bool {\n\treturn p.PublishID != nil\n}\n\nfunc (p *AuditInfo) IsSetCommitVersion() bool {\n\treturn p.CommitVersion != nil\n}\n\nfunc (p *AuditInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AuditInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AuditInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *AuditStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := AuditStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.AuditStatus = _field\n\treturn nil\n}\nfunc (p *AuditInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishID = _field\n\treturn nil\n}\nfunc (p *AuditInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitVersion = _field\n\treturn nil\n}\n\nfunc (p *AuditInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AuditInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AuditInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuditStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"audit_status\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AuditStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AuditInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishID() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_id\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PublishID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AuditInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_version\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *AuditInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AuditInfo(%+v)\", *p)\n\n}\n\n// Audit results\ntype AuditData struct {\n\t// True: The machine audit verification failed\n\tCheckNotPass bool `thrift:\"check_not_pass,1\" form:\"check_not_pass\" json:\"check_not_pass\" query:\"check_not_pass\"`\n\t// The machine audit verification failed the copy.\n\tCheckNotPassMsg *string `thrift:\"check_not_pass_msg,2,optional\" form:\"check_not_pass_msg\" json:\"check_not_pass_msg,omitempty\" query:\"check_not_pass_msg\"`\n}\n\nfunc NewAuditData() *AuditData {\n\treturn &AuditData{}\n}\n\nfunc (p *AuditData) InitDefault() {\n}\n\nfunc (p *AuditData) GetCheckNotPass() (v bool) {\n\treturn p.CheckNotPass\n}\n\nvar AuditData_CheckNotPassMsg_DEFAULT string\n\nfunc (p *AuditData) GetCheckNotPassMsg() (v string) {\n\tif !p.IsSetCheckNotPassMsg() {\n\t\treturn AuditData_CheckNotPassMsg_DEFAULT\n\t}\n\treturn *p.CheckNotPassMsg\n}\n\nvar fieldIDToName_AuditData = map[int16]string{\n\t1: \"check_not_pass\",\n\t2: \"check_not_pass_msg\",\n}\n\nfunc (p *AuditData) IsSetCheckNotPassMsg() bool {\n\treturn p.CheckNotPassMsg != nil\n}\n\nfunc (p *AuditData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AuditData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AuditData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CheckNotPass = _field\n\treturn nil\n}\nfunc (p *AuditData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CheckNotPassMsg = _field\n\treturn nil\n}\n\nfunc (p *AuditData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AuditData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AuditData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"check_not_pass\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CheckNotPass); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AuditData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCheckNotPassMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"check_not_pass_msg\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CheckNotPassMsg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *AuditData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AuditData(%+v)\", *p)\n\n}\n\ntype ConnectorInfo struct {\n\tID              string                 `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tName            string                 `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tIcon            string                 `thrift:\"icon,3\" form:\"icon\" json:\"icon\" query:\"icon\"`\n\tConnectorStatus ConnectorDynamicStatus `thrift:\"connector_status,4\" form:\"connector_status\" json:\"connector_status\" query:\"connector_status\"`\n\tShareLink       *string                `thrift:\"share_link,5,optional\" form:\"share_link\" json:\"share_link,omitempty\" query:\"share_link\"`\n}\n\nfunc NewConnectorInfo() *ConnectorInfo {\n\treturn &ConnectorInfo{}\n}\n\nfunc (p *ConnectorInfo) InitDefault() {\n}\n\nfunc (p *ConnectorInfo) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *ConnectorInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ConnectorInfo) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nfunc (p *ConnectorInfo) GetConnectorStatus() (v ConnectorDynamicStatus) {\n\treturn p.ConnectorStatus\n}\n\nvar ConnectorInfo_ShareLink_DEFAULT string\n\nfunc (p *ConnectorInfo) GetShareLink() (v string) {\n\tif !p.IsSetShareLink() {\n\t\treturn ConnectorInfo_ShareLink_DEFAULT\n\t}\n\treturn *p.ShareLink\n}\n\nvar fieldIDToName_ConnectorInfo = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"icon\",\n\t4: \"connector_status\",\n\t5: \"share_link\",\n}\n\nfunc (p *ConnectorInfo) IsSetShareLink() bool {\n\treturn p.ShareLink != nil\n}\n\nfunc (p *ConnectorInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConnectorInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field ConnectorDynamicStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ConnectorDynamicStatus(v)\n\t}\n\tp.ConnectorStatus = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ShareLink = _field\n\treturn nil\n}\n\nfunc (p *ConnectorInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConnectorInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_status\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ConnectorStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShareLink() {\n\t\tif err = oprot.WriteFieldBegin(\"share_link\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ShareLink); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConnectorInfo(%+v)\", *p)\n\n}\n\ntype IntelligencePublishInfo struct {\n\tPublishTime  string           `thrift:\"publish_time,1\" form:\"publish_time\" json:\"publish_time\" query:\"publish_time\"`\n\tHasPublished bool             `thrift:\"has_published,2\" form:\"has_published\" json:\"has_published\" query:\"has_published\"`\n\tConnectors   []*ConnectorInfo `thrift:\"connectors,3\" form:\"connectors\" json:\"connectors\" query:\"connectors\"`\n}\n\nfunc NewIntelligencePublishInfo() *IntelligencePublishInfo {\n\treturn &IntelligencePublishInfo{}\n}\n\nfunc (p *IntelligencePublishInfo) InitDefault() {\n}\n\nfunc (p *IntelligencePublishInfo) GetPublishTime() (v string) {\n\treturn p.PublishTime\n}\n\nfunc (p *IntelligencePublishInfo) GetHasPublished() (v bool) {\n\treturn p.HasPublished\n}\n\nfunc (p *IntelligencePublishInfo) GetConnectors() (v []*ConnectorInfo) {\n\treturn p.Connectors\n}\n\nvar fieldIDToName_IntelligencePublishInfo = map[int16]string{\n\t1: \"publish_time\",\n\t2: \"has_published\",\n\t3: \"connectors\",\n}\n\nfunc (p *IntelligencePublishInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligencePublishInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligencePublishInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PublishTime = _field\n\treturn nil\n}\nfunc (p *IntelligencePublishInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasPublished = _field\n\treturn nil\n}\nfunc (p *IntelligencePublishInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ConnectorInfo, 0, size)\n\tvalues := make([]ConnectorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Connectors = _field\n\treturn nil\n}\n\nfunc (p *IntelligencePublishInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"IntelligencePublishInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligencePublishInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_time\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PublishTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *IntelligencePublishInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_published\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasPublished); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *IntelligencePublishInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connectors\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Connectors)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Connectors {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *IntelligencePublishInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligencePublishInfo(%+v)\", *p)\n\n}\n\ntype Space struct {\n\tID      int64       `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tOwnerID int64       `thrift:\"owner_id,2\" form:\"owner_id\" json:\"owner_id\" query:\"owner_id\"`\n\tStatus  SpaceStatus `thrift:\"status,3\" form:\"status\" json:\"status\" query:\"status\"`\n\tName    string      `thrift:\"name,4\" form:\"name\" json:\"name\" query:\"name\"`\n}\n\nfunc NewSpace() *Space {\n\treturn &Space{}\n}\n\nfunc (p *Space) InitDefault() {\n}\n\nfunc (p *Space) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *Space) GetOwnerID() (v int64) {\n\treturn p.OwnerID\n}\n\nfunc (p *Space) GetStatus() (v SpaceStatus) {\n\treturn p.Status\n}\n\nfunc (p *Space) GetName() (v string) {\n\treturn p.Name\n}\n\nvar fieldIDToName_Space = map[int16]string{\n\t1: \"id\",\n\t2: \"owner_id\",\n\t3: \"status\",\n\t4: \"name\",\n}\n\nfunc (p *Space) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Space[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Space) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *Space) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OwnerID = _field\n\treturn nil\n}\nfunc (p *Space) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field SpaceStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SpaceStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *Space) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\n\nfunc (p *Space) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Space\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Space) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Space) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"owner_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.OwnerID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Space) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Space) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *Space) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Space(%+v)\", *p)\n\n}\n\ntype Variable struct {\n\tKeyword      string          `thrift:\"keyword,1\" form:\"keyword\" json:\"keyword\" query:\"keyword\"`\n\tDefaultValue string          `thrift:\"default_value,2\" form:\"default_value\" json:\"default_value\" query:\"default_value\"`\n\tVariableType VariableType    `thrift:\"variable_type,3\" form:\"variable_type\" json:\"variable_type\" query:\"variable_type\"`\n\tChannel      VariableChannel `thrift:\"channel,4\" form:\"channel\" json:\"channel\" query:\"channel\"`\n\tDescription  string          `thrift:\"description,5\" form:\"description\" json:\"description\" query:\"description\"`\n\tEnable       bool            `thrift:\"enable,6\" form:\"enable\" json:\"enable\" query:\"enable\"`\n\tPromptEnable bool            `thrift:\"prompt_enable,7\" form:\"prompt_enable\" json:\"prompt_enable\" query:\"prompt_enable\"`\n}\n\nfunc NewVariable() *Variable {\n\treturn &Variable{}\n}\n\nfunc (p *Variable) InitDefault() {\n}\n\nfunc (p *Variable) GetKeyword() (v string) {\n\treturn p.Keyword\n}\n\nfunc (p *Variable) GetDefaultValue() (v string) {\n\treturn p.DefaultValue\n}\n\nfunc (p *Variable) GetVariableType() (v VariableType) {\n\treturn p.VariableType\n}\n\nfunc (p *Variable) GetChannel() (v VariableChannel) {\n\treturn p.Channel\n}\n\nfunc (p *Variable) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *Variable) GetEnable() (v bool) {\n\treturn p.Enable\n}\n\nfunc (p *Variable) GetPromptEnable() (v bool) {\n\treturn p.PromptEnable\n}\n\nvar fieldIDToName_Variable = map[int16]string{\n\t1: \"keyword\",\n\t2: \"default_value\",\n\t3: \"variable_type\",\n\t4: \"channel\",\n\t5: \"description\",\n\t6: \"enable\",\n\t7: \"prompt_enable\",\n}\n\nfunc (p *Variable) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Variable[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Variable) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DefaultValue = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field VariableType\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VariableType = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field VariableChannel\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Channel = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Enable = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PromptEnable = _field\n\treturn nil\n}\n\nfunc (p *Variable) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Variable\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Variable) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"keyword\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Keyword); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Variable) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"default_value\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DefaultValue); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Variable) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"variable_type\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VariableType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Variable) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"channel\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Channel); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Variable) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Variable) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"enable\", thrift.BOOL, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Enable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Variable) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"prompt_enable\", thrift.BOOL, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.PromptEnable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *Variable) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Variable(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/app/intelligence/common/intelligence_common_struct.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype IntelligenceStatus int64\n\nconst (\n\tIntelligenceStatus_Using   IntelligenceStatus = 1\n\tIntelligenceStatus_Deleted IntelligenceStatus = 2\n\tIntelligenceStatus_Banned  IntelligenceStatus = 3\n\t// Migration failed\n\tIntelligenceStatus_MoveFailed IntelligenceStatus = 4\n\t// Copying\n\tIntelligenceStatus_Copying IntelligenceStatus = 5\n\t// Copy failed\n\tIntelligenceStatus_CopyFailed IntelligenceStatus = 6\n)\n\nfunc (p IntelligenceStatus) String() string {\n\tswitch p {\n\tcase IntelligenceStatus_Using:\n\t\treturn \"Using\"\n\tcase IntelligenceStatus_Deleted:\n\t\treturn \"Deleted\"\n\tcase IntelligenceStatus_Banned:\n\t\treturn \"Banned\"\n\tcase IntelligenceStatus_MoveFailed:\n\t\treturn \"MoveFailed\"\n\tcase IntelligenceStatus_Copying:\n\t\treturn \"Copying\"\n\tcase IntelligenceStatus_CopyFailed:\n\t\treturn \"CopyFailed\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc IntelligenceStatusFromString(s string) (IntelligenceStatus, error) {\n\tswitch s {\n\tcase \"Using\":\n\t\treturn IntelligenceStatus_Using, nil\n\tcase \"Deleted\":\n\t\treturn IntelligenceStatus_Deleted, nil\n\tcase \"Banned\":\n\t\treturn IntelligenceStatus_Banned, nil\n\tcase \"MoveFailed\":\n\t\treturn IntelligenceStatus_MoveFailed, nil\n\tcase \"Copying\":\n\t\treturn IntelligenceStatus_Copying, nil\n\tcase \"CopyFailed\":\n\t\treturn IntelligenceStatus_CopyFailed, nil\n\t}\n\treturn IntelligenceStatus(0), fmt.Errorf(\"not a valid IntelligenceStatus string\")\n}\n\nfunc IntelligenceStatusPtr(v IntelligenceStatus) *IntelligenceStatus { return &v }\nfunc (p *IntelligenceStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = IntelligenceStatus(result.Int64)\n\treturn\n}\n\nfunc (p *IntelligenceStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype IntelligenceType int64\n\nconst (\n\tIntelligenceType_Bot     IntelligenceType = 1\n\tIntelligenceType_Project IntelligenceType = 2\n)\n\nfunc (p IntelligenceType) String() string {\n\tswitch p {\n\tcase IntelligenceType_Bot:\n\t\treturn \"Bot\"\n\tcase IntelligenceType_Project:\n\t\treturn \"Project\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc IntelligenceTypeFromString(s string) (IntelligenceType, error) {\n\tswitch s {\n\tcase \"Bot\":\n\t\treturn IntelligenceType_Bot, nil\n\tcase \"Project\":\n\t\treturn IntelligenceType_Project, nil\n\t}\n\treturn IntelligenceType(0), fmt.Errorf(\"not a valid IntelligenceType string\")\n}\n\nfunc IntelligenceTypePtr(v IntelligenceType) *IntelligenceType { return &v }\nfunc (p *IntelligenceType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = IntelligenceType(result.Int64)\n\treturn\n}\n\nfunc (p *IntelligenceType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype IntelligenceBasicInfo struct {\n\tID             int64              `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\tName           string             `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tDescription    string             `thrift:\"description,3\" form:\"description\" json:\"description\" query:\"description\"`\n\tIconURI        string             `thrift:\"icon_uri,4\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tIconURL        string             `thrift:\"icon_url,5\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tSpaceID        int64              `thrift:\"space_id,6\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\tOwnerID        int64              `thrift:\"owner_id,7\" form:\"owner_id\" json:\"owner_id,string\" query:\"owner_id\"`\n\tCreateTime     int64              `thrift:\"create_time,8\" form:\"create_time\" json:\"create_time,string\" query:\"create_time\"`\n\tUpdateTime     int64              `thrift:\"update_time,9\" form:\"update_time\" json:\"update_time,string\" query:\"update_time\"`\n\tStatus         IntelligenceStatus `thrift:\"status,10\" form:\"status\" json:\"status\" query:\"status\"`\n\tPublishTime    int64              `thrift:\"publish_time,11\" form:\"publish_time\" json:\"publish_time,string\" query:\"publish_time\"`\n\tEnterpriseID   *string            `thrift:\"enterprise_id,12,optional\" form:\"enterprise_id\" json:\"enterprise_id,omitempty\" query:\"enterprise_id\"`\n\tOrganizationID *int64             `thrift:\"organization_id,13,optional\" form:\"organization_id\" json:\"organization_id,omitempty\" query:\"organization_id\"`\n}\n\nfunc NewIntelligenceBasicInfo() *IntelligenceBasicInfo {\n\treturn &IntelligenceBasicInfo{}\n}\n\nfunc (p *IntelligenceBasicInfo) InitDefault() {\n}\n\nfunc (p *IntelligenceBasicInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *IntelligenceBasicInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *IntelligenceBasicInfo) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *IntelligenceBasicInfo) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *IntelligenceBasicInfo) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *IntelligenceBasicInfo) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *IntelligenceBasicInfo) GetOwnerID() (v int64) {\n\treturn p.OwnerID\n}\n\nfunc (p *IntelligenceBasicInfo) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *IntelligenceBasicInfo) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nfunc (p *IntelligenceBasicInfo) GetStatus() (v IntelligenceStatus) {\n\treturn p.Status\n}\n\nfunc (p *IntelligenceBasicInfo) GetPublishTime() (v int64) {\n\treturn p.PublishTime\n}\n\nvar IntelligenceBasicInfo_EnterpriseID_DEFAULT string\n\nfunc (p *IntelligenceBasicInfo) GetEnterpriseID() (v string) {\n\tif !p.IsSetEnterpriseID() {\n\t\treturn IntelligenceBasicInfo_EnterpriseID_DEFAULT\n\t}\n\treturn *p.EnterpriseID\n}\n\nvar IntelligenceBasicInfo_OrganizationID_DEFAULT int64\n\nfunc (p *IntelligenceBasicInfo) GetOrganizationID() (v int64) {\n\tif !p.IsSetOrganizationID() {\n\t\treturn IntelligenceBasicInfo_OrganizationID_DEFAULT\n\t}\n\treturn *p.OrganizationID\n}\n\nvar fieldIDToName_IntelligenceBasicInfo = map[int16]string{\n\t1:  \"id\",\n\t2:  \"name\",\n\t3:  \"description\",\n\t4:  \"icon_uri\",\n\t5:  \"icon_url\",\n\t6:  \"space_id\",\n\t7:  \"owner_id\",\n\t8:  \"create_time\",\n\t9:  \"update_time\",\n\t10: \"status\",\n\t11: \"publish_time\",\n\t12: \"enterprise_id\",\n\t13: \"organization_id\",\n}\n\nfunc (p *IntelligenceBasicInfo) IsSetEnterpriseID() bool {\n\treturn p.EnterpriseID != nil\n}\n\nfunc (p *IntelligenceBasicInfo) IsSetOrganizationID() bool {\n\treturn p.OrganizationID != nil\n}\n\nfunc (p *IntelligenceBasicInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceBasicInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceBasicInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OwnerID = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field IntelligenceStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = IntelligenceStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PublishTime = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EnterpriseID = _field\n\treturn nil\n}\nfunc (p *IntelligenceBasicInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OrganizationID = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceBasicInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"IntelligenceBasicInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceBasicInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"owner_id\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.OwnerID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_time\", thrift.I64, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PublishTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEnterpriseID() {\n\t\tif err = oprot.WriteFieldBegin(\"enterprise_id\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.EnterpriseID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *IntelligenceBasicInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrganizationID() {\n\t\tif err = oprot.WriteFieldBegin(\"organization_id\", thrift.I64, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.OrganizationID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *IntelligenceBasicInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceBasicInfo(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/app/intelligence/common/task_struct.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype ProjectInnerTaskInfo struct {\n\t// Task ID\n\tTaskID int64 `thrift:\"task_id,1\" form:\"task_id\" json:\"task_id,string\" query:\"task_id\"`\n}\n\nfunc NewProjectInnerTaskInfo() *ProjectInnerTaskInfo {\n\treturn &ProjectInnerTaskInfo{}\n}\n\nfunc (p *ProjectInnerTaskInfo) InitDefault() {\n}\n\nfunc (p *ProjectInnerTaskInfo) GetTaskID() (v int64) {\n\treturn p.TaskID\n}\n\nvar fieldIDToName_ProjectInnerTaskInfo = map[int16]string{\n\t1: \"task_id\",\n}\n\nfunc (p *ProjectInnerTaskInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProjectInnerTaskInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProjectInnerTaskInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TaskID = _field\n\treturn nil\n}\n\nfunc (p *ProjectInnerTaskInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectInnerTaskInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProjectInnerTaskInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"task_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TaskID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ProjectInnerTaskInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProjectInnerTaskInfo(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/app/intelligence/intelligence.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage intelligence\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/project\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/publish\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/task\"\n)\n\ntype IntelligenceService interface {\n\tDraftProjectCreate(ctx context.Context, request *project.DraftProjectCreateRequest) (r *project.DraftProjectCreateResponse, err error)\n\n\tDraftProjectUpdate(ctx context.Context, request *project.DraftProjectUpdateRequest) (r *project.DraftProjectUpdateResponse, err error)\n\n\tDraftProjectDelete(ctx context.Context, request *project.DraftProjectDeleteRequest) (r *project.DraftProjectDeleteResponse, err error)\n\n\tDraftProjectCopy(ctx context.Context, request *project.DraftProjectCopyRequest) (r *project.DraftProjectCopyResponse, err error)\n\n\tDraftProjectInnerTaskList(ctx context.Context, request *task.DraftProjectInnerTaskListRequest) (r *task.DraftProjectInnerTaskListResponse, err error)\n\n\tGetDraftIntelligenceList(ctx context.Context, req *GetDraftIntelligenceListRequest) (r *GetDraftIntelligenceListResponse, err error)\n\n\tGetDraftIntelligenceInfo(ctx context.Context, req *GetDraftIntelligenceInfoRequest) (r *GetDraftIntelligenceInfoResponse, err error)\n\n\tGetUserRecentlyEditIntelligence(ctx context.Context, req *GetUserRecentlyEditIntelligenceRequest) (r *GetUserRecentlyEditIntelligenceResponse, err error)\n\n\tProjectPublishConnectorList(ctx context.Context, request *publish.PublishConnectorListRequest) (r *publish.PublishConnectorListResponse, err error)\n\n\tGetProjectPublishedConnector(ctx context.Context, request *publish.GetProjectPublishedConnectorRequest) (r *publish.GetProjectPublishedConnectorResponse, err error)\n\n\tCheckProjectVersionNumber(ctx context.Context, request *publish.CheckProjectVersionNumberRequest) (r *publish.CheckProjectVersionNumberResponse, err error)\n\n\tPublishProject(ctx context.Context, request *publish.PublishProjectRequest) (r *publish.PublishProjectResponse, err error)\n\n\tGetPublishRecordList(ctx context.Context, request *publish.GetPublishRecordListRequest) (r *publish.GetPublishRecordListResponse, err error)\n\n\tGetPublishRecordDetail(ctx context.Context, request *publish.GetPublishRecordDetailRequest) (r *publish.GetPublishRecordDetailResponse, err error)\n\t// OpenAPI\n\tGetOnlineAppData(ctx context.Context, request *project.GetOnlineAppDataRequest) (r *project.GetOnlineAppDataResponse, err error)\n}\n\ntype IntelligenceServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewIntelligenceServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *IntelligenceServiceClient {\n\treturn &IntelligenceServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewIntelligenceServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *IntelligenceServiceClient {\n\treturn &IntelligenceServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewIntelligenceServiceClient(c thrift.TClient) *IntelligenceServiceClient {\n\treturn &IntelligenceServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *IntelligenceServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *IntelligenceServiceClient) DraftProjectCreate(ctx context.Context, request *project.DraftProjectCreateRequest) (r *project.DraftProjectCreateResponse, err error) {\n\tvar _args IntelligenceServiceDraftProjectCreateArgs\n\t_args.Request = request\n\tvar _result IntelligenceServiceDraftProjectCreateResult\n\tif err = p.Client_().Call(ctx, \"DraftProjectCreate\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) DraftProjectUpdate(ctx context.Context, request *project.DraftProjectUpdateRequest) (r *project.DraftProjectUpdateResponse, err error) {\n\tvar _args IntelligenceServiceDraftProjectUpdateArgs\n\t_args.Request = request\n\tvar _result IntelligenceServiceDraftProjectUpdateResult\n\tif err = p.Client_().Call(ctx, \"DraftProjectUpdate\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) DraftProjectDelete(ctx context.Context, request *project.DraftProjectDeleteRequest) (r *project.DraftProjectDeleteResponse, err error) {\n\tvar _args IntelligenceServiceDraftProjectDeleteArgs\n\t_args.Request = request\n\tvar _result IntelligenceServiceDraftProjectDeleteResult\n\tif err = p.Client_().Call(ctx, \"DraftProjectDelete\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) DraftProjectCopy(ctx context.Context, request *project.DraftProjectCopyRequest) (r *project.DraftProjectCopyResponse, err error) {\n\tvar _args IntelligenceServiceDraftProjectCopyArgs\n\t_args.Request = request\n\tvar _result IntelligenceServiceDraftProjectCopyResult\n\tif err = p.Client_().Call(ctx, \"DraftProjectCopy\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) DraftProjectInnerTaskList(ctx context.Context, request *task.DraftProjectInnerTaskListRequest) (r *task.DraftProjectInnerTaskListResponse, err error) {\n\tvar _args IntelligenceServiceDraftProjectInnerTaskListArgs\n\t_args.Request = request\n\tvar _result IntelligenceServiceDraftProjectInnerTaskListResult\n\tif err = p.Client_().Call(ctx, \"DraftProjectInnerTaskList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) GetDraftIntelligenceList(ctx context.Context, req *GetDraftIntelligenceListRequest) (r *GetDraftIntelligenceListResponse, err error) {\n\tvar _args IntelligenceServiceGetDraftIntelligenceListArgs\n\t_args.Req = req\n\tvar _result IntelligenceServiceGetDraftIntelligenceListResult\n\tif err = p.Client_().Call(ctx, \"GetDraftIntelligenceList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) GetDraftIntelligenceInfo(ctx context.Context, req *GetDraftIntelligenceInfoRequest) (r *GetDraftIntelligenceInfoResponse, err error) {\n\tvar _args IntelligenceServiceGetDraftIntelligenceInfoArgs\n\t_args.Req = req\n\tvar _result IntelligenceServiceGetDraftIntelligenceInfoResult\n\tif err = p.Client_().Call(ctx, \"GetDraftIntelligenceInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) GetUserRecentlyEditIntelligence(ctx context.Context, req *GetUserRecentlyEditIntelligenceRequest) (r *GetUserRecentlyEditIntelligenceResponse, err error) {\n\tvar _args IntelligenceServiceGetUserRecentlyEditIntelligenceArgs\n\t_args.Req = req\n\tvar _result IntelligenceServiceGetUserRecentlyEditIntelligenceResult\n\tif err = p.Client_().Call(ctx, \"GetUserRecentlyEditIntelligence\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) ProjectPublishConnectorList(ctx context.Context, request *publish.PublishConnectorListRequest) (r *publish.PublishConnectorListResponse, err error) {\n\tvar _args IntelligenceServiceProjectPublishConnectorListArgs\n\t_args.Request = request\n\tvar _result IntelligenceServiceProjectPublishConnectorListResult\n\tif err = p.Client_().Call(ctx, \"ProjectPublishConnectorList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) GetProjectPublishedConnector(ctx context.Context, request *publish.GetProjectPublishedConnectorRequest) (r *publish.GetProjectPublishedConnectorResponse, err error) {\n\tvar _args IntelligenceServiceGetProjectPublishedConnectorArgs\n\t_args.Request = request\n\tvar _result IntelligenceServiceGetProjectPublishedConnectorResult\n\tif err = p.Client_().Call(ctx, \"GetProjectPublishedConnector\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) CheckProjectVersionNumber(ctx context.Context, request *publish.CheckProjectVersionNumberRequest) (r *publish.CheckProjectVersionNumberResponse, err error) {\n\tvar _args IntelligenceServiceCheckProjectVersionNumberArgs\n\t_args.Request = request\n\tvar _result IntelligenceServiceCheckProjectVersionNumberResult\n\tif err = p.Client_().Call(ctx, \"CheckProjectVersionNumber\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) PublishProject(ctx context.Context, request *publish.PublishProjectRequest) (r *publish.PublishProjectResponse, err error) {\n\tvar _args IntelligenceServicePublishProjectArgs\n\t_args.Request = request\n\tvar _result IntelligenceServicePublishProjectResult\n\tif err = p.Client_().Call(ctx, \"PublishProject\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) GetPublishRecordList(ctx context.Context, request *publish.GetPublishRecordListRequest) (r *publish.GetPublishRecordListResponse, err error) {\n\tvar _args IntelligenceServiceGetPublishRecordListArgs\n\t_args.Request = request\n\tvar _result IntelligenceServiceGetPublishRecordListResult\n\tif err = p.Client_().Call(ctx, \"GetPublishRecordList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) GetPublishRecordDetail(ctx context.Context, request *publish.GetPublishRecordDetailRequest) (r *publish.GetPublishRecordDetailResponse, err error) {\n\tvar _args IntelligenceServiceGetPublishRecordDetailArgs\n\t_args.Request = request\n\tvar _result IntelligenceServiceGetPublishRecordDetailResult\n\tif err = p.Client_().Call(ctx, \"GetPublishRecordDetail\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *IntelligenceServiceClient) GetOnlineAppData(ctx context.Context, request *project.GetOnlineAppDataRequest) (r *project.GetOnlineAppDataResponse, err error) {\n\tvar _args IntelligenceServiceGetOnlineAppDataArgs\n\t_args.Request = request\n\tvar _result IntelligenceServiceGetOnlineAppDataResult\n\tif err = p.Client_().Call(ctx, \"GetOnlineAppData\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype IntelligenceServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      IntelligenceService\n}\n\nfunc (p *IntelligenceServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *IntelligenceServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *IntelligenceServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewIntelligenceServiceProcessor(handler IntelligenceService) *IntelligenceServiceProcessor {\n\tself := &IntelligenceServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"DraftProjectCreate\", &intelligenceServiceProcessorDraftProjectCreate{handler: handler})\n\tself.AddToProcessorMap(\"DraftProjectUpdate\", &intelligenceServiceProcessorDraftProjectUpdate{handler: handler})\n\tself.AddToProcessorMap(\"DraftProjectDelete\", &intelligenceServiceProcessorDraftProjectDelete{handler: handler})\n\tself.AddToProcessorMap(\"DraftProjectCopy\", &intelligenceServiceProcessorDraftProjectCopy{handler: handler})\n\tself.AddToProcessorMap(\"DraftProjectInnerTaskList\", &intelligenceServiceProcessorDraftProjectInnerTaskList{handler: handler})\n\tself.AddToProcessorMap(\"GetDraftIntelligenceList\", &intelligenceServiceProcessorGetDraftIntelligenceList{handler: handler})\n\tself.AddToProcessorMap(\"GetDraftIntelligenceInfo\", &intelligenceServiceProcessorGetDraftIntelligenceInfo{handler: handler})\n\tself.AddToProcessorMap(\"GetUserRecentlyEditIntelligence\", &intelligenceServiceProcessorGetUserRecentlyEditIntelligence{handler: handler})\n\tself.AddToProcessorMap(\"ProjectPublishConnectorList\", &intelligenceServiceProcessorProjectPublishConnectorList{handler: handler})\n\tself.AddToProcessorMap(\"GetProjectPublishedConnector\", &intelligenceServiceProcessorGetProjectPublishedConnector{handler: handler})\n\tself.AddToProcessorMap(\"CheckProjectVersionNumber\", &intelligenceServiceProcessorCheckProjectVersionNumber{handler: handler})\n\tself.AddToProcessorMap(\"PublishProject\", &intelligenceServiceProcessorPublishProject{handler: handler})\n\tself.AddToProcessorMap(\"GetPublishRecordList\", &intelligenceServiceProcessorGetPublishRecordList{handler: handler})\n\tself.AddToProcessorMap(\"GetPublishRecordDetail\", &intelligenceServiceProcessorGetPublishRecordDetail{handler: handler})\n\tself.AddToProcessorMap(\"GetOnlineAppData\", &intelligenceServiceProcessorGetOnlineAppData{handler: handler})\n\treturn self\n}\nfunc (p *IntelligenceServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype intelligenceServiceProcessorDraftProjectCreate struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorDraftProjectCreate) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceDraftProjectCreateArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DraftProjectCreate\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceDraftProjectCreateResult{}\n\tvar retval *project.DraftProjectCreateResponse\n\tif retval, err2 = p.handler.DraftProjectCreate(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DraftProjectCreate: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DraftProjectCreate\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DraftProjectCreate\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorDraftProjectUpdate struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorDraftProjectUpdate) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceDraftProjectUpdateArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DraftProjectUpdate\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceDraftProjectUpdateResult{}\n\tvar retval *project.DraftProjectUpdateResponse\n\tif retval, err2 = p.handler.DraftProjectUpdate(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DraftProjectUpdate: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DraftProjectUpdate\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DraftProjectUpdate\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorDraftProjectDelete struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorDraftProjectDelete) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceDraftProjectDeleteArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DraftProjectDelete\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceDraftProjectDeleteResult{}\n\tvar retval *project.DraftProjectDeleteResponse\n\tif retval, err2 = p.handler.DraftProjectDelete(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DraftProjectDelete: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DraftProjectDelete\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DraftProjectDelete\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorDraftProjectCopy struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorDraftProjectCopy) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceDraftProjectCopyArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DraftProjectCopy\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceDraftProjectCopyResult{}\n\tvar retval *project.DraftProjectCopyResponse\n\tif retval, err2 = p.handler.DraftProjectCopy(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DraftProjectCopy: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DraftProjectCopy\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DraftProjectCopy\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorDraftProjectInnerTaskList struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorDraftProjectInnerTaskList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceDraftProjectInnerTaskListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DraftProjectInnerTaskList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceDraftProjectInnerTaskListResult{}\n\tvar retval *task.DraftProjectInnerTaskListResponse\n\tif retval, err2 = p.handler.DraftProjectInnerTaskList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DraftProjectInnerTaskList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DraftProjectInnerTaskList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DraftProjectInnerTaskList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorGetDraftIntelligenceList struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorGetDraftIntelligenceList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceGetDraftIntelligenceListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDraftIntelligenceList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceGetDraftIntelligenceListResult{}\n\tvar retval *GetDraftIntelligenceListResponse\n\tif retval, err2 = p.handler.GetDraftIntelligenceList(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDraftIntelligenceList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDraftIntelligenceList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDraftIntelligenceList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorGetDraftIntelligenceInfo struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorGetDraftIntelligenceInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceGetDraftIntelligenceInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDraftIntelligenceInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceGetDraftIntelligenceInfoResult{}\n\tvar retval *GetDraftIntelligenceInfoResponse\n\tif retval, err2 = p.handler.GetDraftIntelligenceInfo(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDraftIntelligenceInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDraftIntelligenceInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDraftIntelligenceInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorGetUserRecentlyEditIntelligence struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorGetUserRecentlyEditIntelligence) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceGetUserRecentlyEditIntelligenceArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetUserRecentlyEditIntelligence\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceGetUserRecentlyEditIntelligenceResult{}\n\tvar retval *GetUserRecentlyEditIntelligenceResponse\n\tif retval, err2 = p.handler.GetUserRecentlyEditIntelligence(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetUserRecentlyEditIntelligence: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetUserRecentlyEditIntelligence\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetUserRecentlyEditIntelligence\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorProjectPublishConnectorList struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorProjectPublishConnectorList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceProjectPublishConnectorListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ProjectPublishConnectorList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceProjectPublishConnectorListResult{}\n\tvar retval *publish.PublishConnectorListResponse\n\tif retval, err2 = p.handler.ProjectPublishConnectorList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ProjectPublishConnectorList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ProjectPublishConnectorList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ProjectPublishConnectorList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorGetProjectPublishedConnector struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorGetProjectPublishedConnector) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceGetProjectPublishedConnectorArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetProjectPublishedConnector\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceGetProjectPublishedConnectorResult{}\n\tvar retval *publish.GetProjectPublishedConnectorResponse\n\tif retval, err2 = p.handler.GetProjectPublishedConnector(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetProjectPublishedConnector: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetProjectPublishedConnector\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetProjectPublishedConnector\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorCheckProjectVersionNumber struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorCheckProjectVersionNumber) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceCheckProjectVersionNumberArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CheckProjectVersionNumber\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceCheckProjectVersionNumberResult{}\n\tvar retval *publish.CheckProjectVersionNumberResponse\n\tif retval, err2 = p.handler.CheckProjectVersionNumber(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CheckProjectVersionNumber: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CheckProjectVersionNumber\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CheckProjectVersionNumber\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorPublishProject struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorPublishProject) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServicePublishProjectArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublishProject\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServicePublishProjectResult{}\n\tvar retval *publish.PublishProjectResponse\n\tif retval, err2 = p.handler.PublishProject(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublishProject: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublishProject\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublishProject\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorGetPublishRecordList struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorGetPublishRecordList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceGetPublishRecordListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetPublishRecordList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceGetPublishRecordListResult{}\n\tvar retval *publish.GetPublishRecordListResponse\n\tif retval, err2 = p.handler.GetPublishRecordList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetPublishRecordList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetPublishRecordList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetPublishRecordList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorGetPublishRecordDetail struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorGetPublishRecordDetail) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceGetPublishRecordDetailArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetPublishRecordDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceGetPublishRecordDetailResult{}\n\tvar retval *publish.GetPublishRecordDetailResponse\n\tif retval, err2 = p.handler.GetPublishRecordDetail(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetPublishRecordDetail: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetPublishRecordDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetPublishRecordDetail\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype intelligenceServiceProcessorGetOnlineAppData struct {\n\thandler IntelligenceService\n}\n\nfunc (p *intelligenceServiceProcessorGetOnlineAppData) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := IntelligenceServiceGetOnlineAppDataArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetOnlineAppData\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := IntelligenceServiceGetOnlineAppDataResult{}\n\tvar retval *project.GetOnlineAppDataResponse\n\tif retval, err2 = p.handler.GetOnlineAppData(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetOnlineAppData: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetOnlineAppData\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetOnlineAppData\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype IntelligenceServiceDraftProjectCreateArgs struct {\n\tRequest *project.DraftProjectCreateRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServiceDraftProjectCreateArgs() *IntelligenceServiceDraftProjectCreateArgs {\n\treturn &IntelligenceServiceDraftProjectCreateArgs{}\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateArgs) InitDefault() {\n}\n\nvar IntelligenceServiceDraftProjectCreateArgs_Request_DEFAULT *project.DraftProjectCreateRequest\n\nfunc (p *IntelligenceServiceDraftProjectCreateArgs) GetRequest() (v *project.DraftProjectCreateRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServiceDraftProjectCreateArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServiceDraftProjectCreateArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceDraftProjectCreateArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := project.NewDraftProjectCreateRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectCreate_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceDraftProjectCreateArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceDraftProjectCreateResult struct {\n\tSuccess *project.DraftProjectCreateResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceDraftProjectCreateResult() *IntelligenceServiceDraftProjectCreateResult {\n\treturn &IntelligenceServiceDraftProjectCreateResult{}\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateResult) InitDefault() {\n}\n\nvar IntelligenceServiceDraftProjectCreateResult_Success_DEFAULT *project.DraftProjectCreateResponse\n\nfunc (p *IntelligenceServiceDraftProjectCreateResult) GetSuccess() (v *project.DraftProjectCreateResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceDraftProjectCreateResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceDraftProjectCreateResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceDraftProjectCreateResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := project.NewDraftProjectCreateResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectCreate_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCreateResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceDraftProjectCreateResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceDraftProjectUpdateArgs struct {\n\tRequest *project.DraftProjectUpdateRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServiceDraftProjectUpdateArgs() *IntelligenceServiceDraftProjectUpdateArgs {\n\treturn &IntelligenceServiceDraftProjectUpdateArgs{}\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateArgs) InitDefault() {\n}\n\nvar IntelligenceServiceDraftProjectUpdateArgs_Request_DEFAULT *project.DraftProjectUpdateRequest\n\nfunc (p *IntelligenceServiceDraftProjectUpdateArgs) GetRequest() (v *project.DraftProjectUpdateRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServiceDraftProjectUpdateArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServiceDraftProjectUpdateArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceDraftProjectUpdateArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := project.NewDraftProjectUpdateRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectUpdate_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceDraftProjectUpdateArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceDraftProjectUpdateResult struct {\n\tSuccess *project.DraftProjectUpdateResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceDraftProjectUpdateResult() *IntelligenceServiceDraftProjectUpdateResult {\n\treturn &IntelligenceServiceDraftProjectUpdateResult{}\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateResult) InitDefault() {\n}\n\nvar IntelligenceServiceDraftProjectUpdateResult_Success_DEFAULT *project.DraftProjectUpdateResponse\n\nfunc (p *IntelligenceServiceDraftProjectUpdateResult) GetSuccess() (v *project.DraftProjectUpdateResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceDraftProjectUpdateResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceDraftProjectUpdateResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceDraftProjectUpdateResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := project.NewDraftProjectUpdateResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectUpdate_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectUpdateResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceDraftProjectUpdateResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceDraftProjectDeleteArgs struct {\n\tRequest *project.DraftProjectDeleteRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServiceDraftProjectDeleteArgs() *IntelligenceServiceDraftProjectDeleteArgs {\n\treturn &IntelligenceServiceDraftProjectDeleteArgs{}\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteArgs) InitDefault() {\n}\n\nvar IntelligenceServiceDraftProjectDeleteArgs_Request_DEFAULT *project.DraftProjectDeleteRequest\n\nfunc (p *IntelligenceServiceDraftProjectDeleteArgs) GetRequest() (v *project.DraftProjectDeleteRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServiceDraftProjectDeleteArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServiceDraftProjectDeleteArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceDraftProjectDeleteArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := project.NewDraftProjectDeleteRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectDelete_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceDraftProjectDeleteArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceDraftProjectDeleteResult struct {\n\tSuccess *project.DraftProjectDeleteResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceDraftProjectDeleteResult() *IntelligenceServiceDraftProjectDeleteResult {\n\treturn &IntelligenceServiceDraftProjectDeleteResult{}\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteResult) InitDefault() {\n}\n\nvar IntelligenceServiceDraftProjectDeleteResult_Success_DEFAULT *project.DraftProjectDeleteResponse\n\nfunc (p *IntelligenceServiceDraftProjectDeleteResult) GetSuccess() (v *project.DraftProjectDeleteResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceDraftProjectDeleteResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceDraftProjectDeleteResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceDraftProjectDeleteResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := project.NewDraftProjectDeleteResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectDelete_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectDeleteResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceDraftProjectDeleteResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceDraftProjectCopyArgs struct {\n\tRequest *project.DraftProjectCopyRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServiceDraftProjectCopyArgs() *IntelligenceServiceDraftProjectCopyArgs {\n\treturn &IntelligenceServiceDraftProjectCopyArgs{}\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyArgs) InitDefault() {\n}\n\nvar IntelligenceServiceDraftProjectCopyArgs_Request_DEFAULT *project.DraftProjectCopyRequest\n\nfunc (p *IntelligenceServiceDraftProjectCopyArgs) GetRequest() (v *project.DraftProjectCopyRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServiceDraftProjectCopyArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServiceDraftProjectCopyArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceDraftProjectCopyArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := project.NewDraftProjectCopyRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectCopy_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceDraftProjectCopyArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceDraftProjectCopyResult struct {\n\tSuccess *project.DraftProjectCopyResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceDraftProjectCopyResult() *IntelligenceServiceDraftProjectCopyResult {\n\treturn &IntelligenceServiceDraftProjectCopyResult{}\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyResult) InitDefault() {\n}\n\nvar IntelligenceServiceDraftProjectCopyResult_Success_DEFAULT *project.DraftProjectCopyResponse\n\nfunc (p *IntelligenceServiceDraftProjectCopyResult) GetSuccess() (v *project.DraftProjectCopyResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceDraftProjectCopyResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceDraftProjectCopyResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceDraftProjectCopyResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := project.NewDraftProjectCopyResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectCopy_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectCopyResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceDraftProjectCopyResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceDraftProjectInnerTaskListArgs struct {\n\tRequest *task.DraftProjectInnerTaskListRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServiceDraftProjectInnerTaskListArgs() *IntelligenceServiceDraftProjectInnerTaskListArgs {\n\treturn &IntelligenceServiceDraftProjectInnerTaskListArgs{}\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListArgs) InitDefault() {\n}\n\nvar IntelligenceServiceDraftProjectInnerTaskListArgs_Request_DEFAULT *task.DraftProjectInnerTaskListRequest\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListArgs) GetRequest() (v *task.DraftProjectInnerTaskListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServiceDraftProjectInnerTaskListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServiceDraftProjectInnerTaskListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceDraftProjectInnerTaskListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := task.NewDraftProjectInnerTaskListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectInnerTaskList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceDraftProjectInnerTaskListArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceDraftProjectInnerTaskListResult struct {\n\tSuccess *task.DraftProjectInnerTaskListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceDraftProjectInnerTaskListResult() *IntelligenceServiceDraftProjectInnerTaskListResult {\n\treturn &IntelligenceServiceDraftProjectInnerTaskListResult{}\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListResult) InitDefault() {\n}\n\nvar IntelligenceServiceDraftProjectInnerTaskListResult_Success_DEFAULT *task.DraftProjectInnerTaskListResponse\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListResult) GetSuccess() (v *task.DraftProjectInnerTaskListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceDraftProjectInnerTaskListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceDraftProjectInnerTaskListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceDraftProjectInnerTaskListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := task.NewDraftProjectInnerTaskListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectInnerTaskList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceDraftProjectInnerTaskListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceDraftProjectInnerTaskListResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetDraftIntelligenceListArgs struct {\n\tReq *GetDraftIntelligenceListRequest `thrift:\"req,1\"`\n}\n\nfunc NewIntelligenceServiceGetDraftIntelligenceListArgs() *IntelligenceServiceGetDraftIntelligenceListArgs {\n\treturn &IntelligenceServiceGetDraftIntelligenceListArgs{}\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListArgs) InitDefault() {\n}\n\nvar IntelligenceServiceGetDraftIntelligenceListArgs_Req_DEFAULT *GetDraftIntelligenceListRequest\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListArgs) GetReq() (v *GetDraftIntelligenceListRequest) {\n\tif !p.IsSetReq() {\n\t\treturn IntelligenceServiceGetDraftIntelligenceListArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_IntelligenceServiceGetDraftIntelligenceListArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetDraftIntelligenceListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDraftIntelligenceListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftIntelligenceList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetDraftIntelligenceListArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetDraftIntelligenceListResult struct {\n\tSuccess *GetDraftIntelligenceListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceGetDraftIntelligenceListResult() *IntelligenceServiceGetDraftIntelligenceListResult {\n\treturn &IntelligenceServiceGetDraftIntelligenceListResult{}\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListResult) InitDefault() {\n}\n\nvar IntelligenceServiceGetDraftIntelligenceListResult_Success_DEFAULT *GetDraftIntelligenceListResponse\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListResult) GetSuccess() (v *GetDraftIntelligenceListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceGetDraftIntelligenceListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceGetDraftIntelligenceListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetDraftIntelligenceListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetDraftIntelligenceListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftIntelligenceList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetDraftIntelligenceListResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetDraftIntelligenceInfoArgs struct {\n\tReq *GetDraftIntelligenceInfoRequest `thrift:\"req,1\"`\n}\n\nfunc NewIntelligenceServiceGetDraftIntelligenceInfoArgs() *IntelligenceServiceGetDraftIntelligenceInfoArgs {\n\treturn &IntelligenceServiceGetDraftIntelligenceInfoArgs{}\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoArgs) InitDefault() {\n}\n\nvar IntelligenceServiceGetDraftIntelligenceInfoArgs_Req_DEFAULT *GetDraftIntelligenceInfoRequest\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoArgs) GetReq() (v *GetDraftIntelligenceInfoRequest) {\n\tif !p.IsSetReq() {\n\t\treturn IntelligenceServiceGetDraftIntelligenceInfoArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_IntelligenceServiceGetDraftIntelligenceInfoArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetDraftIntelligenceInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDraftIntelligenceInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftIntelligenceInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetDraftIntelligenceInfoArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetDraftIntelligenceInfoResult struct {\n\tSuccess *GetDraftIntelligenceInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceGetDraftIntelligenceInfoResult() *IntelligenceServiceGetDraftIntelligenceInfoResult {\n\treturn &IntelligenceServiceGetDraftIntelligenceInfoResult{}\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoResult) InitDefault() {\n}\n\nvar IntelligenceServiceGetDraftIntelligenceInfoResult_Success_DEFAULT *GetDraftIntelligenceInfoResponse\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoResult) GetSuccess() (v *GetDraftIntelligenceInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceGetDraftIntelligenceInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceGetDraftIntelligenceInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetDraftIntelligenceInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetDraftIntelligenceInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftIntelligenceInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetDraftIntelligenceInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetDraftIntelligenceInfoResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetUserRecentlyEditIntelligenceArgs struct {\n\tReq *GetUserRecentlyEditIntelligenceRequest `thrift:\"req,1\"`\n}\n\nfunc NewIntelligenceServiceGetUserRecentlyEditIntelligenceArgs() *IntelligenceServiceGetUserRecentlyEditIntelligenceArgs {\n\treturn &IntelligenceServiceGetUserRecentlyEditIntelligenceArgs{}\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceArgs) InitDefault() {\n}\n\nvar IntelligenceServiceGetUserRecentlyEditIntelligenceArgs_Req_DEFAULT *GetUserRecentlyEditIntelligenceRequest\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceArgs) GetReq() (v *GetUserRecentlyEditIntelligenceRequest) {\n\tif !p.IsSetReq() {\n\t\treturn IntelligenceServiceGetUserRecentlyEditIntelligenceArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_IntelligenceServiceGetUserRecentlyEditIntelligenceArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetUserRecentlyEditIntelligenceArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetUserRecentlyEditIntelligenceRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserRecentlyEditIntelligence_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetUserRecentlyEditIntelligenceArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetUserRecentlyEditIntelligenceResult struct {\n\tSuccess *GetUserRecentlyEditIntelligenceResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceGetUserRecentlyEditIntelligenceResult() *IntelligenceServiceGetUserRecentlyEditIntelligenceResult {\n\treturn &IntelligenceServiceGetUserRecentlyEditIntelligenceResult{}\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceResult) InitDefault() {\n}\n\nvar IntelligenceServiceGetUserRecentlyEditIntelligenceResult_Success_DEFAULT *GetUserRecentlyEditIntelligenceResponse\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceResult) GetSuccess() (v *GetUserRecentlyEditIntelligenceResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceGetUserRecentlyEditIntelligenceResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceGetUserRecentlyEditIntelligenceResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetUserRecentlyEditIntelligenceResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetUserRecentlyEditIntelligenceResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserRecentlyEditIntelligence_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetUserRecentlyEditIntelligenceResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetUserRecentlyEditIntelligenceResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceProjectPublishConnectorListArgs struct {\n\tRequest *publish.PublishConnectorListRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServiceProjectPublishConnectorListArgs() *IntelligenceServiceProjectPublishConnectorListArgs {\n\treturn &IntelligenceServiceProjectPublishConnectorListArgs{}\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListArgs) InitDefault() {\n}\n\nvar IntelligenceServiceProjectPublishConnectorListArgs_Request_DEFAULT *publish.PublishConnectorListRequest\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListArgs) GetRequest() (v *publish.PublishConnectorListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServiceProjectPublishConnectorListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServiceProjectPublishConnectorListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceProjectPublishConnectorListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := publish.NewPublishConnectorListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectPublishConnectorList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceProjectPublishConnectorListArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceProjectPublishConnectorListResult struct {\n\tSuccess *publish.PublishConnectorListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceProjectPublishConnectorListResult() *IntelligenceServiceProjectPublishConnectorListResult {\n\treturn &IntelligenceServiceProjectPublishConnectorListResult{}\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListResult) InitDefault() {\n}\n\nvar IntelligenceServiceProjectPublishConnectorListResult_Success_DEFAULT *publish.PublishConnectorListResponse\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListResult) GetSuccess() (v *publish.PublishConnectorListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceProjectPublishConnectorListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceProjectPublishConnectorListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceProjectPublishConnectorListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := publish.NewPublishConnectorListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectPublishConnectorList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceProjectPublishConnectorListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceProjectPublishConnectorListResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetProjectPublishedConnectorArgs struct {\n\tRequest *publish.GetProjectPublishedConnectorRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServiceGetProjectPublishedConnectorArgs() *IntelligenceServiceGetProjectPublishedConnectorArgs {\n\treturn &IntelligenceServiceGetProjectPublishedConnectorArgs{}\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorArgs) InitDefault() {\n}\n\nvar IntelligenceServiceGetProjectPublishedConnectorArgs_Request_DEFAULT *publish.GetProjectPublishedConnectorRequest\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorArgs) GetRequest() (v *publish.GetProjectPublishedConnectorRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServiceGetProjectPublishedConnectorArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServiceGetProjectPublishedConnectorArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetProjectPublishedConnectorArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := publish.NewGetProjectPublishedConnectorRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProjectPublishedConnector_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetProjectPublishedConnectorArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetProjectPublishedConnectorResult struct {\n\tSuccess *publish.GetProjectPublishedConnectorResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceGetProjectPublishedConnectorResult() *IntelligenceServiceGetProjectPublishedConnectorResult {\n\treturn &IntelligenceServiceGetProjectPublishedConnectorResult{}\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorResult) InitDefault() {\n}\n\nvar IntelligenceServiceGetProjectPublishedConnectorResult_Success_DEFAULT *publish.GetProjectPublishedConnectorResponse\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorResult) GetSuccess() (v *publish.GetProjectPublishedConnectorResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceGetProjectPublishedConnectorResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceGetProjectPublishedConnectorResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetProjectPublishedConnectorResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := publish.NewGetProjectPublishedConnectorResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProjectPublishedConnector_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetProjectPublishedConnectorResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetProjectPublishedConnectorResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceCheckProjectVersionNumberArgs struct {\n\tRequest *publish.CheckProjectVersionNumberRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServiceCheckProjectVersionNumberArgs() *IntelligenceServiceCheckProjectVersionNumberArgs {\n\treturn &IntelligenceServiceCheckProjectVersionNumberArgs{}\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberArgs) InitDefault() {\n}\n\nvar IntelligenceServiceCheckProjectVersionNumberArgs_Request_DEFAULT *publish.CheckProjectVersionNumberRequest\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberArgs) GetRequest() (v *publish.CheckProjectVersionNumberRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServiceCheckProjectVersionNumberArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServiceCheckProjectVersionNumberArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceCheckProjectVersionNumberArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := publish.NewCheckProjectVersionNumberRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckProjectVersionNumber_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceCheckProjectVersionNumberArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceCheckProjectVersionNumberResult struct {\n\tSuccess *publish.CheckProjectVersionNumberResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceCheckProjectVersionNumberResult() *IntelligenceServiceCheckProjectVersionNumberResult {\n\treturn &IntelligenceServiceCheckProjectVersionNumberResult{}\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberResult) InitDefault() {\n}\n\nvar IntelligenceServiceCheckProjectVersionNumberResult_Success_DEFAULT *publish.CheckProjectVersionNumberResponse\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberResult) GetSuccess() (v *publish.CheckProjectVersionNumberResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceCheckProjectVersionNumberResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceCheckProjectVersionNumberResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceCheckProjectVersionNumberResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := publish.NewCheckProjectVersionNumberResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckProjectVersionNumber_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceCheckProjectVersionNumberResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceCheckProjectVersionNumberResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServicePublishProjectArgs struct {\n\tRequest *publish.PublishProjectRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServicePublishProjectArgs() *IntelligenceServicePublishProjectArgs {\n\treturn &IntelligenceServicePublishProjectArgs{}\n}\n\nfunc (p *IntelligenceServicePublishProjectArgs) InitDefault() {\n}\n\nvar IntelligenceServicePublishProjectArgs_Request_DEFAULT *publish.PublishProjectRequest\n\nfunc (p *IntelligenceServicePublishProjectArgs) GetRequest() (v *publish.PublishProjectRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServicePublishProjectArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServicePublishProjectArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServicePublishProjectArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServicePublishProjectArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServicePublishProjectArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServicePublishProjectArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := publish.NewPublishProjectRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServicePublishProjectArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishProject_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServicePublishProjectArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServicePublishProjectArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServicePublishProjectArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServicePublishProjectResult struct {\n\tSuccess *publish.PublishProjectResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServicePublishProjectResult() *IntelligenceServicePublishProjectResult {\n\treturn &IntelligenceServicePublishProjectResult{}\n}\n\nfunc (p *IntelligenceServicePublishProjectResult) InitDefault() {\n}\n\nvar IntelligenceServicePublishProjectResult_Success_DEFAULT *publish.PublishProjectResponse\n\nfunc (p *IntelligenceServicePublishProjectResult) GetSuccess() (v *publish.PublishProjectResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServicePublishProjectResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServicePublishProjectResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServicePublishProjectResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServicePublishProjectResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServicePublishProjectResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServicePublishProjectResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := publish.NewPublishProjectResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServicePublishProjectResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishProject_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServicePublishProjectResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServicePublishProjectResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServicePublishProjectResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetPublishRecordListArgs struct {\n\tRequest *publish.GetPublishRecordListRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServiceGetPublishRecordListArgs() *IntelligenceServiceGetPublishRecordListArgs {\n\treturn &IntelligenceServiceGetPublishRecordListArgs{}\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListArgs) InitDefault() {\n}\n\nvar IntelligenceServiceGetPublishRecordListArgs_Request_DEFAULT *publish.GetPublishRecordListRequest\n\nfunc (p *IntelligenceServiceGetPublishRecordListArgs) GetRequest() (v *publish.GetPublishRecordListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServiceGetPublishRecordListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServiceGetPublishRecordListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetPublishRecordListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := publish.NewGetPublishRecordListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPublishRecordList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetPublishRecordListArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetPublishRecordListResult struct {\n\tSuccess *publish.GetPublishRecordListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceGetPublishRecordListResult() *IntelligenceServiceGetPublishRecordListResult {\n\treturn &IntelligenceServiceGetPublishRecordListResult{}\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListResult) InitDefault() {\n}\n\nvar IntelligenceServiceGetPublishRecordListResult_Success_DEFAULT *publish.GetPublishRecordListResponse\n\nfunc (p *IntelligenceServiceGetPublishRecordListResult) GetSuccess() (v *publish.GetPublishRecordListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceGetPublishRecordListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceGetPublishRecordListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetPublishRecordListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := publish.NewGetPublishRecordListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPublishRecordList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetPublishRecordListResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetPublishRecordDetailArgs struct {\n\tRequest *publish.GetPublishRecordDetailRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServiceGetPublishRecordDetailArgs() *IntelligenceServiceGetPublishRecordDetailArgs {\n\treturn &IntelligenceServiceGetPublishRecordDetailArgs{}\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailArgs) InitDefault() {\n}\n\nvar IntelligenceServiceGetPublishRecordDetailArgs_Request_DEFAULT *publish.GetPublishRecordDetailRequest\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailArgs) GetRequest() (v *publish.GetPublishRecordDetailRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServiceGetPublishRecordDetailArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServiceGetPublishRecordDetailArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetPublishRecordDetailArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := publish.NewGetPublishRecordDetailRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPublishRecordDetail_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetPublishRecordDetailArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetPublishRecordDetailResult struct {\n\tSuccess *publish.GetPublishRecordDetailResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceGetPublishRecordDetailResult() *IntelligenceServiceGetPublishRecordDetailResult {\n\treturn &IntelligenceServiceGetPublishRecordDetailResult{}\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailResult) InitDefault() {\n}\n\nvar IntelligenceServiceGetPublishRecordDetailResult_Success_DEFAULT *publish.GetPublishRecordDetailResponse\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailResult) GetSuccess() (v *publish.GetPublishRecordDetailResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceGetPublishRecordDetailResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceGetPublishRecordDetailResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetPublishRecordDetailResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := publish.NewGetPublishRecordDetailResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPublishRecordDetail_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetPublishRecordDetailResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetPublishRecordDetailResult(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetOnlineAppDataArgs struct {\n\tRequest *project.GetOnlineAppDataRequest `thrift:\"request,1\"`\n}\n\nfunc NewIntelligenceServiceGetOnlineAppDataArgs() *IntelligenceServiceGetOnlineAppDataArgs {\n\treturn &IntelligenceServiceGetOnlineAppDataArgs{}\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataArgs) InitDefault() {\n}\n\nvar IntelligenceServiceGetOnlineAppDataArgs_Request_DEFAULT *project.GetOnlineAppDataRequest\n\nfunc (p *IntelligenceServiceGetOnlineAppDataArgs) GetRequest() (v *project.GetOnlineAppDataRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn IntelligenceServiceGetOnlineAppDataArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_IntelligenceServiceGetOnlineAppDataArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetOnlineAppDataArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := project.NewGetOnlineAppDataRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnlineAppData_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetOnlineAppDataArgs(%+v)\", *p)\n\n}\n\ntype IntelligenceServiceGetOnlineAppDataResult struct {\n\tSuccess *project.GetOnlineAppDataResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewIntelligenceServiceGetOnlineAppDataResult() *IntelligenceServiceGetOnlineAppDataResult {\n\treturn &IntelligenceServiceGetOnlineAppDataResult{}\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataResult) InitDefault() {\n}\n\nvar IntelligenceServiceGetOnlineAppDataResult_Success_DEFAULT *project.GetOnlineAppDataResponse\n\nfunc (p *IntelligenceServiceGetOnlineAppDataResult) GetSuccess() (v *project.GetOnlineAppDataResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn IntelligenceServiceGetOnlineAppDataResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_IntelligenceServiceGetOnlineAppDataResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceServiceGetOnlineAppDataResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := project.NewGetOnlineAppDataResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnlineAppData_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *IntelligenceServiceGetOnlineAppDataResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceServiceGetOnlineAppDataResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/app/intelligence/project/project.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage project\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype DraftProjectCreateRequest struct {\n\tSpaceID          int64             `thrift:\"space_id,1\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\tName             string            `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tDescription      string            `thrift:\"description,3\" form:\"description\" json:\"description\" query:\"description\"`\n\tIconURI          string            `thrift:\"icon_uri,4\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tMonetizationConf *MonetizationConf `thrift:\"monetization_conf,5,optional\" form:\"monetization_conf\" json:\"monetization_conf,omitempty\" query:\"monetization_conf\"`\n\t// Create source navi: navbar space: space\n\tCreateFrom *string    `thrift:\"create_from,6,optional\" form:\"create_from\" json:\"create_from,omitempty\" query:\"create_from\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDraftProjectCreateRequest() *DraftProjectCreateRequest {\n\treturn &DraftProjectCreateRequest{}\n}\n\nfunc (p *DraftProjectCreateRequest) InitDefault() {\n}\n\nfunc (p *DraftProjectCreateRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *DraftProjectCreateRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *DraftProjectCreateRequest) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *DraftProjectCreateRequest) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nvar DraftProjectCreateRequest_MonetizationConf_DEFAULT *MonetizationConf\n\nfunc (p *DraftProjectCreateRequest) GetMonetizationConf() (v *MonetizationConf) {\n\tif !p.IsSetMonetizationConf() {\n\t\treturn DraftProjectCreateRequest_MonetizationConf_DEFAULT\n\t}\n\treturn p.MonetizationConf\n}\n\nvar DraftProjectCreateRequest_CreateFrom_DEFAULT string\n\nfunc (p *DraftProjectCreateRequest) GetCreateFrom() (v string) {\n\tif !p.IsSetCreateFrom() {\n\t\treturn DraftProjectCreateRequest_CreateFrom_DEFAULT\n\t}\n\treturn *p.CreateFrom\n}\n\nvar DraftProjectCreateRequest_Base_DEFAULT *base.Base\n\nfunc (p *DraftProjectCreateRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DraftProjectCreateRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DraftProjectCreateRequest = map[int16]string{\n\t1:   \"space_id\",\n\t2:   \"name\",\n\t3:   \"description\",\n\t4:   \"icon_uri\",\n\t5:   \"monetization_conf\",\n\t6:   \"create_from\",\n\t255: \"Base\",\n}\n\nfunc (p *DraftProjectCreateRequest) IsSetMonetizationConf() bool {\n\treturn p.MonetizationConf != nil\n}\n\nfunc (p *DraftProjectCreateRequest) IsSetCreateFrom() bool {\n\treturn p.CreateFrom != nil\n}\n\nfunc (p *DraftProjectCreateRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DraftProjectCreateRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectCreateRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectCreateRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *DraftProjectCreateRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DraftProjectCreateRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *DraftProjectCreateRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *DraftProjectCreateRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewMonetizationConf()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.MonetizationConf = _field\n\treturn nil\n}\nfunc (p *DraftProjectCreateRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreateFrom = _field\n\treturn nil\n}\nfunc (p *DraftProjectCreateRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectCreateRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectCreateRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectCreateRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftProjectCreateRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DraftProjectCreateRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DraftProjectCreateRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DraftProjectCreateRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMonetizationConf() {\n\t\tif err = oprot.WriteFieldBegin(\"monetization_conf\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.MonetizationConf.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DraftProjectCreateRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreateFrom() {\n\t\tif err = oprot.WriteFieldBegin(\"create_from\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CreateFrom); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DraftProjectCreateRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DraftProjectCreateRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectCreateRequest(%+v)\", *p)\n\n}\n\ntype MonetizationConf struct {\n\tIsEnable *bool `thrift:\"is_enable,1,optional\" form:\"is_enable\" json:\"is_enable,omitempty\" query:\"is_enable\"`\n}\n\nfunc NewMonetizationConf() *MonetizationConf {\n\treturn &MonetizationConf{}\n}\n\nfunc (p *MonetizationConf) InitDefault() {\n}\n\nvar MonetizationConf_IsEnable_DEFAULT bool\n\nfunc (p *MonetizationConf) GetIsEnable() (v bool) {\n\tif !p.IsSetIsEnable() {\n\t\treturn MonetizationConf_IsEnable_DEFAULT\n\t}\n\treturn *p.IsEnable\n}\n\nvar fieldIDToName_MonetizationConf = map[int16]string{\n\t1: \"is_enable\",\n}\n\nfunc (p *MonetizationConf) IsSetIsEnable() bool {\n\treturn p.IsEnable != nil\n}\n\nfunc (p *MonetizationConf) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MonetizationConf[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MonetizationConf) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsEnable = _field\n\treturn nil\n}\n\nfunc (p *MonetizationConf) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MonetizationConf\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MonetizationConf) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsEnable() {\n\t\tif err = oprot.WriteFieldBegin(\"is_enable\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsEnable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MonetizationConf) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MonetizationConf(%+v)\", *p)\n\n}\n\ntype DraftProjectCreateResponse struct {\n\tData     *DraftProjectCreateData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                   `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                  `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp          `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDraftProjectCreateResponse() *DraftProjectCreateResponse {\n\treturn &DraftProjectCreateResponse{}\n}\n\nfunc (p *DraftProjectCreateResponse) InitDefault() {\n}\n\nvar DraftProjectCreateResponse_Data_DEFAULT *DraftProjectCreateData\n\nfunc (p *DraftProjectCreateResponse) GetData() (v *DraftProjectCreateData) {\n\tif !p.IsSetData() {\n\t\treturn DraftProjectCreateResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *DraftProjectCreateResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DraftProjectCreateResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DraftProjectCreateResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DraftProjectCreateResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DraftProjectCreateResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DraftProjectCreateResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DraftProjectCreateResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *DraftProjectCreateResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DraftProjectCreateResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectCreateResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DraftProjectCreateResponse[fieldId]))\n}\n\nfunc (p *DraftProjectCreateResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDraftProjectCreateData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *DraftProjectCreateResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DraftProjectCreateResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DraftProjectCreateResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectCreateResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectCreateResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectCreateResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftProjectCreateResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DraftProjectCreateResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DraftProjectCreateResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DraftProjectCreateResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectCreateResponse(%+v)\", *p)\n\n}\n\ntype DraftProjectCreateData struct {\n\tProjectID int64             `thrift:\"project_id,1\" form:\"project_id\" json:\"project_id,string\" query:\"project_id\"`\n\tAuditData *common.AuditData `thrift:\"audit_data,2\" form:\"audit_data\" json:\"audit_data\" query:\"audit_data\"`\n}\n\nfunc NewDraftProjectCreateData() *DraftProjectCreateData {\n\treturn &DraftProjectCreateData{}\n}\n\nfunc (p *DraftProjectCreateData) InitDefault() {\n}\n\nfunc (p *DraftProjectCreateData) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar DraftProjectCreateData_AuditData_DEFAULT *common.AuditData\n\nfunc (p *DraftProjectCreateData) GetAuditData() (v *common.AuditData) {\n\tif !p.IsSetAuditData() {\n\t\treturn DraftProjectCreateData_AuditData_DEFAULT\n\t}\n\treturn p.AuditData\n}\n\nvar fieldIDToName_DraftProjectCreateData = map[int16]string{\n\t1: \"project_id\",\n\t2: \"audit_data\",\n}\n\nfunc (p *DraftProjectCreateData) IsSetAuditData() bool {\n\treturn p.AuditData != nil\n}\n\nfunc (p *DraftProjectCreateData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectCreateData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectCreateData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *DraftProjectCreateData) ReadField2(iprot thrift.TProtocol) error {\n\t_field := common.NewAuditData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AuditData = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectCreateData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectCreateData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectCreateData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftProjectCreateData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"audit_data\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.AuditData.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *DraftProjectCreateData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectCreateData(%+v)\", *p)\n\n}\n\ntype DraftProjectUpdateRequest struct {\n\tProjectID   int64      `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,string,required\" query:\"project_id,required\"`\n\tName        *string    `thrift:\"name,2,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tDescription *string    `thrift:\"description,3,optional\" form:\"description\" json:\"description,omitempty\" query:\"description\"`\n\tIconURI     *string    `thrift:\"icon_uri,4,optional\" form:\"icon_uri\" json:\"icon_uri,omitempty\" query:\"icon_uri\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDraftProjectUpdateRequest() *DraftProjectUpdateRequest {\n\treturn &DraftProjectUpdateRequest{}\n}\n\nfunc (p *DraftProjectUpdateRequest) InitDefault() {\n}\n\nfunc (p *DraftProjectUpdateRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar DraftProjectUpdateRequest_Name_DEFAULT string\n\nfunc (p *DraftProjectUpdateRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn DraftProjectUpdateRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar DraftProjectUpdateRequest_Description_DEFAULT string\n\nfunc (p *DraftProjectUpdateRequest) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn DraftProjectUpdateRequest_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar DraftProjectUpdateRequest_IconURI_DEFAULT string\n\nfunc (p *DraftProjectUpdateRequest) GetIconURI() (v string) {\n\tif !p.IsSetIconURI() {\n\t\treturn DraftProjectUpdateRequest_IconURI_DEFAULT\n\t}\n\treturn *p.IconURI\n}\n\nvar DraftProjectUpdateRequest_Base_DEFAULT *base.Base\n\nfunc (p *DraftProjectUpdateRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DraftProjectUpdateRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DraftProjectUpdateRequest = map[int16]string{\n\t1:   \"project_id\",\n\t2:   \"name\",\n\t3:   \"description\",\n\t4:   \"icon_uri\",\n\t255: \"Base\",\n}\n\nfunc (p *DraftProjectUpdateRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *DraftProjectUpdateRequest) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *DraftProjectUpdateRequest) IsSetIconURI() bool {\n\treturn p.IconURI != nil\n}\n\nfunc (p *DraftProjectUpdateRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DraftProjectUpdateRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectUpdateRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DraftProjectUpdateRequest[fieldId]))\n}\n\nfunc (p *DraftProjectUpdateRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *DraftProjectUpdateRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DraftProjectUpdateRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *DraftProjectUpdateRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *DraftProjectUpdateRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectUpdateRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectUpdateRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectUpdateRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftProjectUpdateRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DraftProjectUpdateRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DraftProjectUpdateRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIconURI() {\n\t\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IconURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DraftProjectUpdateRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DraftProjectUpdateRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectUpdateRequest(%+v)\", *p)\n\n}\n\ntype DraftProjectUpdateResponse struct {\n\tData     *DraftProjectUpdateData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                   `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                  `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp          `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDraftProjectUpdateResponse() *DraftProjectUpdateResponse {\n\treturn &DraftProjectUpdateResponse{}\n}\n\nfunc (p *DraftProjectUpdateResponse) InitDefault() {\n}\n\nvar DraftProjectUpdateResponse_Data_DEFAULT *DraftProjectUpdateData\n\nfunc (p *DraftProjectUpdateResponse) GetData() (v *DraftProjectUpdateData) {\n\tif !p.IsSetData() {\n\t\treturn DraftProjectUpdateResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *DraftProjectUpdateResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DraftProjectUpdateResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DraftProjectUpdateResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DraftProjectUpdateResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DraftProjectUpdateResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DraftProjectUpdateResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DraftProjectUpdateResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *DraftProjectUpdateResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DraftProjectUpdateResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectUpdateResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DraftProjectUpdateResponse[fieldId]))\n}\n\nfunc (p *DraftProjectUpdateResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDraftProjectUpdateData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *DraftProjectUpdateResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DraftProjectUpdateResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DraftProjectUpdateResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectUpdateResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectUpdateResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectUpdateResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftProjectUpdateResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DraftProjectUpdateResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DraftProjectUpdateResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DraftProjectUpdateResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectUpdateResponse(%+v)\", *p)\n\n}\n\ntype DraftProjectUpdateData struct {\n\tAuditData *common.AuditData `thrift:\"audit_data,1\" form:\"audit_data\" json:\"audit_data\" query:\"audit_data\"`\n}\n\nfunc NewDraftProjectUpdateData() *DraftProjectUpdateData {\n\treturn &DraftProjectUpdateData{}\n}\n\nfunc (p *DraftProjectUpdateData) InitDefault() {\n}\n\nvar DraftProjectUpdateData_AuditData_DEFAULT *common.AuditData\n\nfunc (p *DraftProjectUpdateData) GetAuditData() (v *common.AuditData) {\n\tif !p.IsSetAuditData() {\n\t\treturn DraftProjectUpdateData_AuditData_DEFAULT\n\t}\n\treturn p.AuditData\n}\n\nvar fieldIDToName_DraftProjectUpdateData = map[int16]string{\n\t1: \"audit_data\",\n}\n\nfunc (p *DraftProjectUpdateData) IsSetAuditData() bool {\n\treturn p.AuditData != nil\n}\n\nfunc (p *DraftProjectUpdateData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectUpdateData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectUpdateData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := common.NewAuditData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AuditData = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectUpdateData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectUpdateData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectUpdateData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"audit_data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.AuditData.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DraftProjectUpdateData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectUpdateData(%+v)\", *p)\n\n}\n\ntype DraftProjectDeleteRequest struct {\n\tProjectID int64      `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,string,required\" query:\"project_id,required\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDraftProjectDeleteRequest() *DraftProjectDeleteRequest {\n\treturn &DraftProjectDeleteRequest{}\n}\n\nfunc (p *DraftProjectDeleteRequest) InitDefault() {\n}\n\nfunc (p *DraftProjectDeleteRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar DraftProjectDeleteRequest_Base_DEFAULT *base.Base\n\nfunc (p *DraftProjectDeleteRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DraftProjectDeleteRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DraftProjectDeleteRequest = map[int16]string{\n\t1:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *DraftProjectDeleteRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DraftProjectDeleteRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectDeleteRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DraftProjectDeleteRequest[fieldId]))\n}\n\nfunc (p *DraftProjectDeleteRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *DraftProjectDeleteRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectDeleteRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectDeleteRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectDeleteRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftProjectDeleteRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DraftProjectDeleteRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectDeleteRequest(%+v)\", *p)\n\n}\n\ntype DraftProjectDeleteResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDraftProjectDeleteResponse() *DraftProjectDeleteResponse {\n\treturn &DraftProjectDeleteResponse{}\n}\n\nfunc (p *DraftProjectDeleteResponse) InitDefault() {\n}\n\nfunc (p *DraftProjectDeleteResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DraftProjectDeleteResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DraftProjectDeleteResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DraftProjectDeleteResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DraftProjectDeleteResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DraftProjectDeleteResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DraftProjectDeleteResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DraftProjectDeleteResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectDeleteResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DraftProjectDeleteResponse[fieldId]))\n}\n\nfunc (p *DraftProjectDeleteResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DraftProjectDeleteResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DraftProjectDeleteResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectDeleteResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectDeleteResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectDeleteResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DraftProjectDeleteResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DraftProjectDeleteResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DraftProjectDeleteResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectDeleteResponse(%+v)\", *p)\n\n}\n\ntype DraftProjectCopyRequest struct {\n\tProjectID   int64      `thrift:\"project_id,1\" form:\"project_id\" json:\"project_id,string\" query:\"project_id\"`\n\tToSpaceID   int64      `thrift:\"to_space_id,3\" form:\"to_space_id\" json:\"to_space_id,string\" query:\"to_space_id\"`\n\tName        string     `thrift:\"name,4\" form:\"name\" json:\"name\" query:\"name\"`\n\tDescription string     `thrift:\"description,5\" form:\"description\" json:\"description\" query:\"description\"`\n\tIconURI     string     `thrift:\"icon_uri,6\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDraftProjectCopyRequest() *DraftProjectCopyRequest {\n\treturn &DraftProjectCopyRequest{}\n}\n\nfunc (p *DraftProjectCopyRequest) InitDefault() {\n}\n\nfunc (p *DraftProjectCopyRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nfunc (p *DraftProjectCopyRequest) GetToSpaceID() (v int64) {\n\treturn p.ToSpaceID\n}\n\nfunc (p *DraftProjectCopyRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *DraftProjectCopyRequest) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *DraftProjectCopyRequest) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nvar DraftProjectCopyRequest_Base_DEFAULT *base.Base\n\nfunc (p *DraftProjectCopyRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DraftProjectCopyRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DraftProjectCopyRequest = map[int16]string{\n\t1:   \"project_id\",\n\t3:   \"to_space_id\",\n\t4:   \"name\",\n\t5:   \"description\",\n\t6:   \"icon_uri\",\n\t255: \"Base\",\n}\n\nfunc (p *DraftProjectCopyRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DraftProjectCopyRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectCopyRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectCopyRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *DraftProjectCopyRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ToSpaceID = _field\n\treturn nil\n}\nfunc (p *DraftProjectCopyRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DraftProjectCopyRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *DraftProjectCopyRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *DraftProjectCopyRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectCopyRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectCopyRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectCopyRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftProjectCopyRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"to_space_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ToSpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DraftProjectCopyRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DraftProjectCopyRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DraftProjectCopyRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DraftProjectCopyRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DraftProjectCopyRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectCopyRequest(%+v)\", *p)\n\n}\n\ntype DraftProjectCopyResponse struct {\n\tData     *DraftProjectCopyResponseData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                         `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                        `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp                `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDraftProjectCopyResponse() *DraftProjectCopyResponse {\n\treturn &DraftProjectCopyResponse{}\n}\n\nfunc (p *DraftProjectCopyResponse) InitDefault() {\n}\n\nvar DraftProjectCopyResponse_Data_DEFAULT *DraftProjectCopyResponseData\n\nfunc (p *DraftProjectCopyResponse) GetData() (v *DraftProjectCopyResponseData) {\n\tif !p.IsSetData() {\n\t\treturn DraftProjectCopyResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *DraftProjectCopyResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DraftProjectCopyResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DraftProjectCopyResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DraftProjectCopyResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DraftProjectCopyResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DraftProjectCopyResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DraftProjectCopyResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *DraftProjectCopyResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DraftProjectCopyResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectCopyResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DraftProjectCopyResponse[fieldId]))\n}\n\nfunc (p *DraftProjectCopyResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDraftProjectCopyResponseData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *DraftProjectCopyResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DraftProjectCopyResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DraftProjectCopyResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectCopyResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectCopyResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectCopyResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftProjectCopyResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DraftProjectCopyResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DraftProjectCopyResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DraftProjectCopyResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectCopyResponse(%+v)\", *p)\n\n}\n\ntype DraftProjectCopyResponseData struct {\n\tBasicInfo *common.IntelligenceBasicInfo `thrift:\"basic_info,1\" form:\"basic_info\" json:\"basic_info\" query:\"basic_info\"`\n\tAuditData *common.AuditData             `thrift:\"audit_data,2\" form:\"audit_data\" json:\"audit_data\" query:\"audit_data\"`\n\tUserInfo  *common.User                  `thrift:\"user_info,3\" form:\"user_info\" json:\"user_info\" query:\"user_info\"`\n}\n\nfunc NewDraftProjectCopyResponseData() *DraftProjectCopyResponseData {\n\treturn &DraftProjectCopyResponseData{}\n}\n\nfunc (p *DraftProjectCopyResponseData) InitDefault() {\n}\n\nvar DraftProjectCopyResponseData_BasicInfo_DEFAULT *common.IntelligenceBasicInfo\n\nfunc (p *DraftProjectCopyResponseData) GetBasicInfo() (v *common.IntelligenceBasicInfo) {\n\tif !p.IsSetBasicInfo() {\n\t\treturn DraftProjectCopyResponseData_BasicInfo_DEFAULT\n\t}\n\treturn p.BasicInfo\n}\n\nvar DraftProjectCopyResponseData_AuditData_DEFAULT *common.AuditData\n\nfunc (p *DraftProjectCopyResponseData) GetAuditData() (v *common.AuditData) {\n\tif !p.IsSetAuditData() {\n\t\treturn DraftProjectCopyResponseData_AuditData_DEFAULT\n\t}\n\treturn p.AuditData\n}\n\nvar DraftProjectCopyResponseData_UserInfo_DEFAULT *common.User\n\nfunc (p *DraftProjectCopyResponseData) GetUserInfo() (v *common.User) {\n\tif !p.IsSetUserInfo() {\n\t\treturn DraftProjectCopyResponseData_UserInfo_DEFAULT\n\t}\n\treturn p.UserInfo\n}\n\nvar fieldIDToName_DraftProjectCopyResponseData = map[int16]string{\n\t1: \"basic_info\",\n\t2: \"audit_data\",\n\t3: \"user_info\",\n}\n\nfunc (p *DraftProjectCopyResponseData) IsSetBasicInfo() bool {\n\treturn p.BasicInfo != nil\n}\n\nfunc (p *DraftProjectCopyResponseData) IsSetAuditData() bool {\n\treturn p.AuditData != nil\n}\n\nfunc (p *DraftProjectCopyResponseData) IsSetUserInfo() bool {\n\treturn p.UserInfo != nil\n}\n\nfunc (p *DraftProjectCopyResponseData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectCopyResponseData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectCopyResponseData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := common.NewIntelligenceBasicInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BasicInfo = _field\n\treturn nil\n}\nfunc (p *DraftProjectCopyResponseData) ReadField2(iprot thrift.TProtocol) error {\n\t_field := common.NewAuditData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AuditData = _field\n\treturn nil\n}\nfunc (p *DraftProjectCopyResponseData) ReadField3(iprot thrift.TProtocol) error {\n\t_field := common.NewUser()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserInfo = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectCopyResponseData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectCopyResponseData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectCopyResponseData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"basic_info\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BasicInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftProjectCopyResponseData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"audit_data\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.AuditData.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DraftProjectCopyResponseData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_info\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.UserInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *DraftProjectCopyResponseData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectCopyResponseData(%+v)\", *p)\n\n}\n\ntype GetOnlineAppDataRequest struct {\n\tAppID       *int64     `thrift:\"app_id,1,optional\" json:\"app_id,string,omitempty\" path:\"app_id\"`\n\tConnectorID *int64     `thrift:\"connector_id,2,optional\" form:\"connector_id\" json:\"connector_id,string,omitempty\" query:\"connector_id\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetOnlineAppDataRequest() *GetOnlineAppDataRequest {\n\treturn &GetOnlineAppDataRequest{}\n}\n\nfunc (p *GetOnlineAppDataRequest) InitDefault() {\n}\n\nvar GetOnlineAppDataRequest_AppID_DEFAULT int64\n\nfunc (p *GetOnlineAppDataRequest) GetAppID() (v int64) {\n\tif !p.IsSetAppID() {\n\t\treturn GetOnlineAppDataRequest_AppID_DEFAULT\n\t}\n\treturn *p.AppID\n}\n\nvar GetOnlineAppDataRequest_ConnectorID_DEFAULT int64\n\nfunc (p *GetOnlineAppDataRequest) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn GetOnlineAppDataRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar GetOnlineAppDataRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetOnlineAppDataRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetOnlineAppDataRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetOnlineAppDataRequest = map[int16]string{\n\t1:   \"app_id\",\n\t2:   \"connector_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetOnlineAppDataRequest) IsSetAppID() bool {\n\treturn p.AppID != nil\n}\n\nfunc (p *GetOnlineAppDataRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *GetOnlineAppDataRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetOnlineAppDataRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOnlineAppDataRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetOnlineAppDataRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AppID = _field\n\treturn nil\n}\nfunc (p *GetOnlineAppDataRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *GetOnlineAppDataRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetOnlineAppDataRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnlineAppDataRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOnlineAppDataRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAppID() {\n\t\tif err = oprot.WriteFieldBegin(\"app_id\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.AppID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetOnlineAppDataRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetOnlineAppDataRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetOnlineAppDataRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOnlineAppDataRequest(%+v)\", *p)\n\n}\n\ntype AppData struct {\n\tAppID       string             `thrift:\"app_id,1\" form:\"app_id\" json:\"app_id\" query:\"app_id\"`\n\tVersion     string             `thrift:\"version,2\" form:\"version\" json:\"version\" query:\"version\"`\n\tName        string             `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\tDescription string             `thrift:\"description,4\" form:\"description\" json:\"description\" query:\"description\"`\n\tIconURL     string             `thrift:\"icon_url,5\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tVariables   []*common.Variable `thrift:\"variables,6\" form:\"variables\" json:\"variables\" query:\"variables\"`\n}\n\nfunc NewAppData() *AppData {\n\treturn &AppData{}\n}\n\nfunc (p *AppData) InitDefault() {\n}\n\nfunc (p *AppData) GetAppID() (v string) {\n\treturn p.AppID\n}\n\nfunc (p *AppData) GetVersion() (v string) {\n\treturn p.Version\n}\n\nfunc (p *AppData) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *AppData) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *AppData) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *AppData) GetVariables() (v []*common.Variable) {\n\treturn p.Variables\n}\n\nvar fieldIDToName_AppData = map[int16]string{\n\t1: \"app_id\",\n\t2: \"version\",\n\t3: \"name\",\n\t4: \"description\",\n\t5: \"icon_url\",\n\t6: \"variables\",\n}\n\nfunc (p *AppData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AppData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AppData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AppID = _field\n\treturn nil\n}\nfunc (p *AppData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *AppData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *AppData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *AppData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *AppData) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.Variable, 0, size)\n\tvalues := make([]common.Variable, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Variables = _field\n\treturn nil\n}\n\nfunc (p *AppData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AppData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AppData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"app_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AppID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AppData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AppData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *AppData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *AppData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *AppData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"variables\", thrift.LIST, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Variables)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Variables {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *AppData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AppData(%+v)\", *p)\n\n}\n\ntype GetOnlineAppDataResponse struct {\n\tCode     *int32         `thrift:\"Code,1,optional\" form:\"code\" json:\"code,omitempty\"`\n\tMessage  *string        `thrift:\"Message,2,optional\" form:\"message\" json:\"message,omitempty\"`\n\tData     *AppData       `thrift:\"Data,3\" form:\"data\" json:\"data\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewGetOnlineAppDataResponse() *GetOnlineAppDataResponse {\n\treturn &GetOnlineAppDataResponse{}\n}\n\nfunc (p *GetOnlineAppDataResponse) InitDefault() {\n}\n\nvar GetOnlineAppDataResponse_Code_DEFAULT int32\n\nfunc (p *GetOnlineAppDataResponse) GetCode() (v int32) {\n\tif !p.IsSetCode() {\n\t\treturn GetOnlineAppDataResponse_Code_DEFAULT\n\t}\n\treturn *p.Code\n}\n\nvar GetOnlineAppDataResponse_Message_DEFAULT string\n\nfunc (p *GetOnlineAppDataResponse) GetMessage() (v string) {\n\tif !p.IsSetMessage() {\n\t\treturn GetOnlineAppDataResponse_Message_DEFAULT\n\t}\n\treturn *p.Message\n}\n\nvar GetOnlineAppDataResponse_Data_DEFAULT *AppData\n\nfunc (p *GetOnlineAppDataResponse) GetData() (v *AppData) {\n\tif !p.IsSetData() {\n\t\treturn GetOnlineAppDataResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetOnlineAppDataResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetOnlineAppDataResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetOnlineAppDataResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetOnlineAppDataResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Message\",\n\t3:   \"Data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetOnlineAppDataResponse) IsSetCode() bool {\n\treturn p.Code != nil\n}\n\nfunc (p *GetOnlineAppDataResponse) IsSetMessage() bool {\n\treturn p.Message != nil\n}\n\nfunc (p *GetOnlineAppDataResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetOnlineAppDataResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetOnlineAppDataResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOnlineAppDataResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetOnlineAppDataResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetOnlineAppDataResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *GetOnlineAppDataResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewAppData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetOnlineAppDataResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetOnlineAppDataResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnlineAppDataResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOnlineAppDataResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCode() {\n\t\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Code); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetOnlineAppDataResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMessage() {\n\t\tif err = oprot.WriteFieldBegin(\"Message\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Message); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetOnlineAppDataResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetOnlineAppDataResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetOnlineAppDataResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOnlineAppDataResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/app/intelligence/publish/publish.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage publish\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype ConnectorClassification int64\n\nconst (\n\t// API or SDK\n\tConnectorClassification_APIOrSDK ConnectorClassification = 1\n\t// social platform\n\tConnectorClassification_SocialPlatform ConnectorClassification = 2\n\t// Coze Shop/Template\n\tConnectorClassification_Coze ConnectorClassification = 3\n\t// Mini Program\n\tConnectorClassification_MiniProgram ConnectorClassification = 4\n\t// MCP Extension Library\n\tConnectorClassification_CozeSpaceExtensionLibrary ConnectorClassification = 5\n)\n\nfunc (p ConnectorClassification) String() string {\n\tswitch p {\n\tcase ConnectorClassification_APIOrSDK:\n\t\treturn \"APIOrSDK\"\n\tcase ConnectorClassification_SocialPlatform:\n\t\treturn \"SocialPlatform\"\n\tcase ConnectorClassification_Coze:\n\t\treturn \"Coze\"\n\tcase ConnectorClassification_MiniProgram:\n\t\treturn \"MiniProgram\"\n\tcase ConnectorClassification_CozeSpaceExtensionLibrary:\n\t\treturn \"CozeSpaceExtensionLibrary\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ConnectorClassificationFromString(s string) (ConnectorClassification, error) {\n\tswitch s {\n\tcase \"APIOrSDK\":\n\t\treturn ConnectorClassification_APIOrSDK, nil\n\tcase \"SocialPlatform\":\n\t\treturn ConnectorClassification_SocialPlatform, nil\n\tcase \"Coze\":\n\t\treturn ConnectorClassification_Coze, nil\n\tcase \"MiniProgram\":\n\t\treturn ConnectorClassification_MiniProgram, nil\n\tcase \"CozeSpaceExtensionLibrary\":\n\t\treturn ConnectorClassification_CozeSpaceExtensionLibrary, nil\n\t}\n\treturn ConnectorClassification(0), fmt.Errorf(\"not a valid ConnectorClassification string\")\n}\n\nfunc ConnectorClassificationPtr(v ConnectorClassification) *ConnectorClassification { return &v }\nfunc (p *ConnectorClassification) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ConnectorClassification(result.Int64)\n\treturn\n}\n\nfunc (p *ConnectorClassification) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ConnectorConfigStatus int64\n\nconst (\n\t// Configured\n\tConnectorConfigStatus_Configured ConnectorConfigStatus = 1\n\t// Not configured\n\tConnectorConfigStatus_NotConfigured ConnectorConfigStatus = 2\n\t// Token changes\n\tConnectorConfigStatus_Disconnected ConnectorConfigStatus = 3\n\t// Configuring, authorizing\n\tConnectorConfigStatus_Configuring ConnectorConfigStatus = 4\n\t// Need to reconfigure\n\tConnectorConfigStatus_NeedReconfiguring ConnectorConfigStatus = 5\n)\n\nfunc (p ConnectorConfigStatus) String() string {\n\tswitch p {\n\tcase ConnectorConfigStatus_Configured:\n\t\treturn \"Configured\"\n\tcase ConnectorConfigStatus_NotConfigured:\n\t\treturn \"NotConfigured\"\n\tcase ConnectorConfigStatus_Disconnected:\n\t\treturn \"Disconnected\"\n\tcase ConnectorConfigStatus_Configuring:\n\t\treturn \"Configuring\"\n\tcase ConnectorConfigStatus_NeedReconfiguring:\n\t\treturn \"NeedReconfiguring\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ConnectorConfigStatusFromString(s string) (ConnectorConfigStatus, error) {\n\tswitch s {\n\tcase \"Configured\":\n\t\treturn ConnectorConfigStatus_Configured, nil\n\tcase \"NotConfigured\":\n\t\treturn ConnectorConfigStatus_NotConfigured, nil\n\tcase \"Disconnected\":\n\t\treturn ConnectorConfigStatus_Disconnected, nil\n\tcase \"Configuring\":\n\t\treturn ConnectorConfigStatus_Configuring, nil\n\tcase \"NeedReconfiguring\":\n\t\treturn ConnectorConfigStatus_NeedReconfiguring, nil\n\t}\n\treturn ConnectorConfigStatus(0), fmt.Errorf(\"not a valid ConnectorConfigStatus string\")\n}\n\nfunc ConnectorConfigStatusPtr(v ConnectorConfigStatus) *ConnectorConfigStatus { return &v }\nfunc (p *ConnectorConfigStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ConnectorConfigStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ConnectorConfigStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ConnectorStatus int64\n\nconst (\n\t// Normal\n\tConnectorStatus_Normal ConnectorStatus = 0\n\t// Under review.\n\tConnectorStatus_InReview ConnectorStatus = 1\n\t// offline\n\tConnectorStatus_Offline ConnectorStatus = 2\n)\n\nfunc (p ConnectorStatus) String() string {\n\tswitch p {\n\tcase ConnectorStatus_Normal:\n\t\treturn \"Normal\"\n\tcase ConnectorStatus_InReview:\n\t\treturn \"InReview\"\n\tcase ConnectorStatus_Offline:\n\t\treturn \"Offline\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ConnectorStatusFromString(s string) (ConnectorStatus, error) {\n\tswitch s {\n\tcase \"Normal\":\n\t\treturn ConnectorStatus_Normal, nil\n\tcase \"InReview\":\n\t\treturn ConnectorStatus_InReview, nil\n\tcase \"Offline\":\n\t\treturn ConnectorStatus_Offline, nil\n\t}\n\treturn ConnectorStatus(0), fmt.Errorf(\"not a valid ConnectorStatus string\")\n}\n\nfunc ConnectorStatusPtr(v ConnectorStatus) *ConnectorStatus { return &v }\nfunc (p *ConnectorStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ConnectorStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ConnectorStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ConnectorBindType int64\n\nconst (\n\t// No binding required\n\tConnectorBindType_NoBindRequired ConnectorBindType = 1\n\t// Auth binding\n\tConnectorBindType_AuthBind ConnectorBindType = 2\n\t// Kv binding\n\tConnectorBindType_KvBind ConnectorBindType = 3\n\t// Kv and Auth authorization\n\tConnectorBindType_KvAuthBind ConnectorBindType = 4\n\t// API channel binding\n\tConnectorBindType_ApiBind    ConnectorBindType = 5\n\tConnectorBindType_WebSDKBind ConnectorBindType = 6\n\tConnectorBindType_StoreBind  ConnectorBindType = 7\n\t// One button each for authorization and configuration\n\tConnectorBindType_AuthAndConfig ConnectorBindType = 8\n\t// template channel binding\n\tConnectorBindType_TemplateBind ConnectorBindType = 9\n)\n\nfunc (p ConnectorBindType) String() string {\n\tswitch p {\n\tcase ConnectorBindType_NoBindRequired:\n\t\treturn \"NoBindRequired\"\n\tcase ConnectorBindType_AuthBind:\n\t\treturn \"AuthBind\"\n\tcase ConnectorBindType_KvBind:\n\t\treturn \"KvBind\"\n\tcase ConnectorBindType_KvAuthBind:\n\t\treturn \"KvAuthBind\"\n\tcase ConnectorBindType_ApiBind:\n\t\treturn \"ApiBind\"\n\tcase ConnectorBindType_WebSDKBind:\n\t\treturn \"WebSDKBind\"\n\tcase ConnectorBindType_StoreBind:\n\t\treturn \"StoreBind\"\n\tcase ConnectorBindType_AuthAndConfig:\n\t\treturn \"AuthAndConfig\"\n\tcase ConnectorBindType_TemplateBind:\n\t\treturn \"TemplateBind\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ConnectorBindTypeFromString(s string) (ConnectorBindType, error) {\n\tswitch s {\n\tcase \"NoBindRequired\":\n\t\treturn ConnectorBindType_NoBindRequired, nil\n\tcase \"AuthBind\":\n\t\treturn ConnectorBindType_AuthBind, nil\n\tcase \"KvBind\":\n\t\treturn ConnectorBindType_KvBind, nil\n\tcase \"KvAuthBind\":\n\t\treturn ConnectorBindType_KvAuthBind, nil\n\tcase \"ApiBind\":\n\t\treturn ConnectorBindType_ApiBind, nil\n\tcase \"WebSDKBind\":\n\t\treturn ConnectorBindType_WebSDKBind, nil\n\tcase \"StoreBind\":\n\t\treturn ConnectorBindType_StoreBind, nil\n\tcase \"AuthAndConfig\":\n\t\treturn ConnectorBindType_AuthAndConfig, nil\n\tcase \"TemplateBind\":\n\t\treturn ConnectorBindType_TemplateBind, nil\n\t}\n\treturn ConnectorBindType(0), fmt.Errorf(\"not a valid ConnectorBindType string\")\n}\n\nfunc ConnectorBindTypePtr(v ConnectorBindType) *ConnectorBindType { return &v }\nfunc (p *ConnectorBindType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ConnectorBindType(result.Int64)\n\treturn\n}\n\nfunc (p *ConnectorBindType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype UserAuthStatus int64\n\nconst (\n\t// Authorized\n\tUserAuthStatus_Authorized UserAuthStatus = 1\n\t// unauthorized\n\tUserAuthStatus_UnAuthorized UserAuthStatus = 2\n\t// Authorizing\n\tUserAuthStatus_Authorizing UserAuthStatus = 3\n)\n\nfunc (p UserAuthStatus) String() string {\n\tswitch p {\n\tcase UserAuthStatus_Authorized:\n\t\treturn \"Authorized\"\n\tcase UserAuthStatus_UnAuthorized:\n\t\treturn \"UnAuthorized\"\n\tcase UserAuthStatus_Authorizing:\n\t\treturn \"Authorizing\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc UserAuthStatusFromString(s string) (UserAuthStatus, error) {\n\tswitch s {\n\tcase \"Authorized\":\n\t\treturn UserAuthStatus_Authorized, nil\n\tcase \"UnAuthorized\":\n\t\treturn UserAuthStatus_UnAuthorized, nil\n\tcase \"Authorizing\":\n\t\treturn UserAuthStatus_Authorizing, nil\n\t}\n\treturn UserAuthStatus(0), fmt.Errorf(\"not a valid UserAuthStatus string\")\n}\n\nfunc UserAuthStatusPtr(v UserAuthStatus) *UserAuthStatus { return &v }\nfunc (p *UserAuthStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = UserAuthStatus(result.Int64)\n\treturn\n}\n\nfunc (p *UserAuthStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PublishRecordStatus int64\n\nconst (\n\t// Packing\n\tPublishRecordStatus_Packing PublishRecordStatus = 0\n\t// Packaging failed\n\tPublishRecordStatus_PackFailed PublishRecordStatus = 1\n\t// Under review.\n\tPublishRecordStatus_Auditing PublishRecordStatus = 2\n\t// review disapproved\n\tPublishRecordStatus_AuditNotPass PublishRecordStatus = 3\n\t// Channel is being released.\n\tPublishRecordStatus_ConnectorPublishing PublishRecordStatus = 4\n\t// release complete\n\tPublishRecordStatus_PublishDone PublishRecordStatus = 5\n)\n\nfunc (p PublishRecordStatus) String() string {\n\tswitch p {\n\tcase PublishRecordStatus_Packing:\n\t\treturn \"Packing\"\n\tcase PublishRecordStatus_PackFailed:\n\t\treturn \"PackFailed\"\n\tcase PublishRecordStatus_Auditing:\n\t\treturn \"Auditing\"\n\tcase PublishRecordStatus_AuditNotPass:\n\t\treturn \"AuditNotPass\"\n\tcase PublishRecordStatus_ConnectorPublishing:\n\t\treturn \"ConnectorPublishing\"\n\tcase PublishRecordStatus_PublishDone:\n\t\treturn \"PublishDone\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PublishRecordStatusFromString(s string) (PublishRecordStatus, error) {\n\tswitch s {\n\tcase \"Packing\":\n\t\treturn PublishRecordStatus_Packing, nil\n\tcase \"PackFailed\":\n\t\treturn PublishRecordStatus_PackFailed, nil\n\tcase \"Auditing\":\n\t\treturn PublishRecordStatus_Auditing, nil\n\tcase \"AuditNotPass\":\n\t\treturn PublishRecordStatus_AuditNotPass, nil\n\tcase \"ConnectorPublishing\":\n\t\treturn PublishRecordStatus_ConnectorPublishing, nil\n\tcase \"PublishDone\":\n\t\treturn PublishRecordStatus_PublishDone, nil\n\t}\n\treturn PublishRecordStatus(0), fmt.Errorf(\"not a valid PublishRecordStatus string\")\n}\n\nfunc PublishRecordStatusPtr(v PublishRecordStatus) *PublishRecordStatus { return &v }\nfunc (p *PublishRecordStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PublishRecordStatus(result.Int64)\n\treturn\n}\n\nfunc (p *PublishRecordStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// project\ntype ConnectorPublishStatus int64\n\nconst (\n\t// In release\n\tConnectorPublishStatus_Default ConnectorPublishStatus = 0\n\t// Under review.\n\tConnectorPublishStatus_Auditing ConnectorPublishStatus = 1\n\t// success\n\tConnectorPublishStatus_Success ConnectorPublishStatus = 2\n\t// fail\n\tConnectorPublishStatus_Failed ConnectorPublishStatus = 3\n\t//disable\n\tConnectorPublishStatus_Disable ConnectorPublishStatus = 4\n)\n\nfunc (p ConnectorPublishStatus) String() string {\n\tswitch p {\n\tcase ConnectorPublishStatus_Default:\n\t\treturn \"Default\"\n\tcase ConnectorPublishStatus_Auditing:\n\t\treturn \"Auditing\"\n\tcase ConnectorPublishStatus_Success:\n\t\treturn \"Success\"\n\tcase ConnectorPublishStatus_Failed:\n\t\treturn \"Failed\"\n\tcase ConnectorPublishStatus_Disable:\n\t\treturn \"Disable\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ConnectorPublishStatusFromString(s string) (ConnectorPublishStatus, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn ConnectorPublishStatus_Default, nil\n\tcase \"Auditing\":\n\t\treturn ConnectorPublishStatus_Auditing, nil\n\tcase \"Success\":\n\t\treturn ConnectorPublishStatus_Success, nil\n\tcase \"Failed\":\n\t\treturn ConnectorPublishStatus_Failed, nil\n\tcase \"Disable\":\n\t\treturn ConnectorPublishStatus_Disable, nil\n\t}\n\treturn ConnectorPublishStatus(0), fmt.Errorf(\"not a valid ConnectorPublishStatus string\")\n}\n\nfunc ConnectorPublishStatusPtr(v ConnectorPublishStatus) *ConnectorPublishStatus { return &v }\nfunc (p *ConnectorPublishStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ConnectorPublishStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ConnectorPublishStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype GetProjectPublishedConnectorRequest struct {\n\tProjectID int64      `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,string,required\" query:\"project_id,required\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetProjectPublishedConnectorRequest() *GetProjectPublishedConnectorRequest {\n\treturn &GetProjectPublishedConnectorRequest{}\n}\n\nfunc (p *GetProjectPublishedConnectorRequest) InitDefault() {\n}\n\nfunc (p *GetProjectPublishedConnectorRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar GetProjectPublishedConnectorRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetProjectPublishedConnectorRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetProjectPublishedConnectorRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetProjectPublishedConnectorRequest = map[int16]string{\n\t1:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetProjectPublishedConnectorRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetProjectPublishedConnectorRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProjectPublishedConnectorRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetProjectPublishedConnectorRequest[fieldId]))\n}\n\nfunc (p *GetProjectPublishedConnectorRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *GetProjectPublishedConnectorRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetProjectPublishedConnectorRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProjectPublishedConnectorRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProjectPublishedConnectorRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProjectPublishedConnectorRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProjectPublishedConnectorRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProjectPublishedConnectorRequest(%+v)\", *p)\n\n}\n\ntype GetProjectPublishedConnectorResponse struct {\n\tData     []*common.ConnectorInfo `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                   `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                  `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp          `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetProjectPublishedConnectorResponse() *GetProjectPublishedConnectorResponse {\n\treturn &GetProjectPublishedConnectorResponse{}\n}\n\nfunc (p *GetProjectPublishedConnectorResponse) InitDefault() {\n}\n\nfunc (p *GetProjectPublishedConnectorResponse) GetData() (v []*common.ConnectorInfo) {\n\treturn p.Data\n}\n\nfunc (p *GetProjectPublishedConnectorResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetProjectPublishedConnectorResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetProjectPublishedConnectorResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetProjectPublishedConnectorResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetProjectPublishedConnectorResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetProjectPublishedConnectorResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetProjectPublishedConnectorResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetProjectPublishedConnectorResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProjectPublishedConnectorResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetProjectPublishedConnectorResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.ConnectorInfo, 0, size)\n\tvalues := make([]common.ConnectorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetProjectPublishedConnectorResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetProjectPublishedConnectorResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetProjectPublishedConnectorResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetProjectPublishedConnectorResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProjectPublishedConnectorResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProjectPublishedConnectorResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProjectPublishedConnectorResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetProjectPublishedConnectorResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetProjectPublishedConnectorResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProjectPublishedConnectorResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProjectPublishedConnectorResponse(%+v)\", *p)\n\n}\n\ntype PublishConnectorListRequest struct {\n\tProjectID int64      `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,string,required\" query:\"project_id,required\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewPublishConnectorListRequest() *PublishConnectorListRequest {\n\treturn &PublishConnectorListRequest{}\n}\n\nfunc (p *PublishConnectorListRequest) InitDefault() {\n}\n\nfunc (p *PublishConnectorListRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar PublishConnectorListRequest_Base_DEFAULT *base.Base\n\nfunc (p *PublishConnectorListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn PublishConnectorListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_PublishConnectorListRequest = map[int16]string{\n\t1:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *PublishConnectorListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *PublishConnectorListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishConnectorListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PublishConnectorListRequest[fieldId]))\n}\n\nfunc (p *PublishConnectorListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *PublishConnectorListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishConnectorListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishConnectorListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishConnectorListRequest(%+v)\", *p)\n\n}\n\ntype PublishConnectorListResponse struct {\n\tData     *PublishConnectorListData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                     `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                    `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp            `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewPublishConnectorListResponse() *PublishConnectorListResponse {\n\treturn &PublishConnectorListResponse{}\n}\n\nfunc (p *PublishConnectorListResponse) InitDefault() {\n}\n\nvar PublishConnectorListResponse_Data_DEFAULT *PublishConnectorListData\n\nfunc (p *PublishConnectorListResponse) GetData() (v *PublishConnectorListData) {\n\tif !p.IsSetData() {\n\t\treturn PublishConnectorListResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *PublishConnectorListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *PublishConnectorListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar PublishConnectorListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *PublishConnectorListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn PublishConnectorListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_PublishConnectorListResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *PublishConnectorListResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *PublishConnectorListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *PublishConnectorListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishConnectorListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPublishConnectorListData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *PublishConnectorListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishConnectorListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishConnectorListResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *PublishConnectorListResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *PublishConnectorListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishConnectorListResponse(%+v)\", *p)\n\n}\n\ntype PublishConnectorListData struct {\n\tConnectorList   []*PublishConnectorInfo `thrift:\"connector_list,1\" form:\"connector_list\" json:\"connector_list\" query:\"connector_list\"`\n\tLastPublishInfo *LastPublishInfo        `thrift:\"last_publish_info,2\" form:\"last_publish_info\" json:\"last_publish_info\" query:\"last_publish_info\"`\n\t// Channel collection information, the key is connector_union_id\n\tConnectorUnionInfoMap map[int64]*ConnectorUnionInfo `thrift:\"connector_union_info_map,3\" form:\"connector_union_info_map\" json:\"connector_union_info_map\" query:\"connector_union_info_map\"`\n}\n\nfunc NewPublishConnectorListData() *PublishConnectorListData {\n\treturn &PublishConnectorListData{}\n}\n\nfunc (p *PublishConnectorListData) InitDefault() {\n}\n\nfunc (p *PublishConnectorListData) GetConnectorList() (v []*PublishConnectorInfo) {\n\treturn p.ConnectorList\n}\n\nvar PublishConnectorListData_LastPublishInfo_DEFAULT *LastPublishInfo\n\nfunc (p *PublishConnectorListData) GetLastPublishInfo() (v *LastPublishInfo) {\n\tif !p.IsSetLastPublishInfo() {\n\t\treturn PublishConnectorListData_LastPublishInfo_DEFAULT\n\t}\n\treturn p.LastPublishInfo\n}\n\nfunc (p *PublishConnectorListData) GetConnectorUnionInfoMap() (v map[int64]*ConnectorUnionInfo) {\n\treturn p.ConnectorUnionInfoMap\n}\n\nvar fieldIDToName_PublishConnectorListData = map[int16]string{\n\t1: \"connector_list\",\n\t2: \"last_publish_info\",\n\t3: \"connector_union_info_map\",\n}\n\nfunc (p *PublishConnectorListData) IsSetLastPublishInfo() bool {\n\treturn p.LastPublishInfo != nil\n}\n\nfunc (p *PublishConnectorListData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishConnectorListData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PublishConnectorInfo, 0, size)\n\tvalues := make([]PublishConnectorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorList = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListData) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewLastPublishInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.LastPublishInfo = _field\n\treturn nil\n}\nfunc (p *PublishConnectorListData) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]*ConnectorUnionInfo, size)\n\tvalues := make([]ConnectorUnionInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorUnionInfoMap = _field\n\treturn nil\n}\n\nfunc (p *PublishConnectorListData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishConnectorListData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ConnectorList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ConnectorList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishConnectorListData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"last_publish_info\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.LastPublishInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishConnectorListData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_union_info_map\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.ConnectorUnionInfoMap)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.ConnectorUnionInfoMap {\n\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *PublishConnectorListData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishConnectorListData(%+v)\", *p)\n\n}\n\ntype PublishConnectorInfo struct {\n\tID      int64  `thrift:\"id,1,required\" form:\"id,required\" json:\"id,string,required\" query:\"id,required\"`\n\tName    string `thrift:\"name,2,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\tIconURL string `thrift:\"icon_url,3,required\" form:\"icon_url,required\" json:\"icon_url,required\" query:\"icon_url,required\"`\n\t// describe\n\tDescription string `thrift:\"description,4,required\" form:\"description,required\" json:\"description,required\" query:\"description,required\"`\n\t// description extension\n\tDescriptionExtra string `thrift:\"description_extra,5\" form:\"description_extra\" json:\"description_extra\" query:\"description_extra\"`\n\t// channel type\n\tConnectorClassification ConnectorClassification `thrift:\"connector_classification,6,required\" form:\"connector_classification,required\" json:\"connector_classification,required\" query:\"connector_classification,required\"`\n\t// configuration status\n\tConfigStatus ConnectorConfigStatus `thrift:\"config_status,7,required\" form:\"config_status,required\" json:\"config_status,required\" query:\"config_status,required\"`\n\t// channel status\n\tConnectorStatus ConnectorStatus `thrift:\"connector_status,8\" form:\"connector_status\" json:\"connector_status\" query:\"connector_status\"`\n\t// binding type\n\tBindType ConnectorBindType `thrift:\"bind_type,9,required\" form:\"bind_type,required\" json:\"bind_type,required\" query:\"bind_type,required\"`\n\t// Binding information key field name value is value\n\tBindInfo map[string]string `thrift:\"bind_info,10,required\" form:\"bind_info,required\" json:\"bind_info,required\" query:\"bind_info,required\"`\n\t// Bind id information for unbinding and use\n\tBindID *string `thrift:\"bind_id,11,optional\" form:\"bind_id\" json:\"bind_id,omitempty\" query:\"bind_id\"`\n\t// user authorization login information\n\tAuthLoginInfo *AuthLoginInfo `thrift:\"auth_login_info,12,optional\" form:\"auth_login_info\" json:\"auth_login_info,omitempty\" query:\"auth_login_info\"`\n\t// Privacy Policy\n\tPrivacyPolicy string `thrift:\"privacy_policy,13\" form:\"privacy_policy\" json:\"privacy_policy\" query:\"privacy_policy\"`\n\t// User Agreement\n\tUserAgreement string `thrift:\"user_agreement,14\" form:\"user_agreement\" json:\"user_agreement\" query:\"user_agreement\"`\n\t// Whether to allow publishing\n\tAllowPublish bool `thrift:\"allow_publish,15\" form:\"allow_publish\" json:\"allow_publish\" query:\"allow_publish\"`\n\t// Reasons for not allowing publishing\n\tNotAllowPublishReason *string `thrift:\"not_allow_publish_reason,16,optional\" form:\"not_allow_publish_reason\" json:\"not_allow_publish_reason,omitempty\" query:\"not_allow_publish_reason\"`\n\t// Channel collection id, indicating the channel that needs to be aggregated and displayed.\n\tConnectorUnionID *int64 `thrift:\"connector_union_id,17,optional\" form:\"connector_union_id\" json:\"connector_union_id,string,omitempty\" query:\"connector_union_id\"`\n\t// UI Options\n\tUIOptions []*UIOption `thrift:\"UIOptions,18,optional\" form:\"UIOptions\" json:\"UIOptions,omitempty\" query:\"UIOptions\"`\n\t// Support commercialization\n\tSupportMonetization *bool `thrift:\"support_monetization,19,optional\" form:\"support_monetization\" json:\"support_monetization,omitempty\" query:\"support_monetization\"`\n\t// Installation Guidelines\n\tInstallationGuide *string `thrift:\"installation_guide,20,optional\" form:\"installation_guide\" json:\"installation_guide,omitempty\" query:\"installation_guide\"`\n\t// Currently this field is only available bind_type == 8\n\tAuthStatus *UserAuthStatus `thrift:\"auth_status,21,optional\" form:\"auth_status\" json:\"auth_status,omitempty\" query:\"auth_status\"`\n\t// Configuration status toast\n\tConfigStatusToast *string `thrift:\"config_status_toast,22,optional\" form:\"config_status_toast\" json:\"config_status_toast,omitempty\" query:\"config_status_toast\"`\n\t// connector_status the URL of the Complete Info button while under review\n\tToCompleteInfoURL *string `thrift:\"to_complete_info_url,23,optional\" form:\"to_complete_info_url\" json:\"to_complete_info_url,omitempty\" query:\"to_complete_info_url\"`\n\t// Channel release tips\n\tConnectorTips *string `thrift:\"connector_tips,24,optional\" form:\"connector_tips\" json:\"connector_tips,omitempty\" query:\"connector_tips\"`\n}\n\nfunc NewPublishConnectorInfo() *PublishConnectorInfo {\n\treturn &PublishConnectorInfo{}\n}\n\nfunc (p *PublishConnectorInfo) InitDefault() {\n}\n\nfunc (p *PublishConnectorInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *PublishConnectorInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PublishConnectorInfo) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *PublishConnectorInfo) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *PublishConnectorInfo) GetDescriptionExtra() (v string) {\n\treturn p.DescriptionExtra\n}\n\nfunc (p *PublishConnectorInfo) GetConnectorClassification() (v ConnectorClassification) {\n\treturn p.ConnectorClassification\n}\n\nfunc (p *PublishConnectorInfo) GetConfigStatus() (v ConnectorConfigStatus) {\n\treturn p.ConfigStatus\n}\n\nfunc (p *PublishConnectorInfo) GetConnectorStatus() (v ConnectorStatus) {\n\treturn p.ConnectorStatus\n}\n\nfunc (p *PublishConnectorInfo) GetBindType() (v ConnectorBindType) {\n\treturn p.BindType\n}\n\nfunc (p *PublishConnectorInfo) GetBindInfo() (v map[string]string) {\n\treturn p.BindInfo\n}\n\nvar PublishConnectorInfo_BindID_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetBindID() (v string) {\n\tif !p.IsSetBindID() {\n\t\treturn PublishConnectorInfo_BindID_DEFAULT\n\t}\n\treturn *p.BindID\n}\n\nvar PublishConnectorInfo_AuthLoginInfo_DEFAULT *AuthLoginInfo\n\nfunc (p *PublishConnectorInfo) GetAuthLoginInfo() (v *AuthLoginInfo) {\n\tif !p.IsSetAuthLoginInfo() {\n\t\treturn PublishConnectorInfo_AuthLoginInfo_DEFAULT\n\t}\n\treturn p.AuthLoginInfo\n}\n\nfunc (p *PublishConnectorInfo) GetPrivacyPolicy() (v string) {\n\treturn p.PrivacyPolicy\n}\n\nfunc (p *PublishConnectorInfo) GetUserAgreement() (v string) {\n\treturn p.UserAgreement\n}\n\nfunc (p *PublishConnectorInfo) GetAllowPublish() (v bool) {\n\treturn p.AllowPublish\n}\n\nvar PublishConnectorInfo_NotAllowPublishReason_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetNotAllowPublishReason() (v string) {\n\tif !p.IsSetNotAllowPublishReason() {\n\t\treturn PublishConnectorInfo_NotAllowPublishReason_DEFAULT\n\t}\n\treturn *p.NotAllowPublishReason\n}\n\nvar PublishConnectorInfo_ConnectorUnionID_DEFAULT int64\n\nfunc (p *PublishConnectorInfo) GetConnectorUnionID() (v int64) {\n\tif !p.IsSetConnectorUnionID() {\n\t\treturn PublishConnectorInfo_ConnectorUnionID_DEFAULT\n\t}\n\treturn *p.ConnectorUnionID\n}\n\nvar PublishConnectorInfo_UIOptions_DEFAULT []*UIOption\n\nfunc (p *PublishConnectorInfo) GetUIOptions() (v []*UIOption) {\n\tif !p.IsSetUIOptions() {\n\t\treturn PublishConnectorInfo_UIOptions_DEFAULT\n\t}\n\treturn p.UIOptions\n}\n\nvar PublishConnectorInfo_SupportMonetization_DEFAULT bool\n\nfunc (p *PublishConnectorInfo) GetSupportMonetization() (v bool) {\n\tif !p.IsSetSupportMonetization() {\n\t\treturn PublishConnectorInfo_SupportMonetization_DEFAULT\n\t}\n\treturn *p.SupportMonetization\n}\n\nvar PublishConnectorInfo_InstallationGuide_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetInstallationGuide() (v string) {\n\tif !p.IsSetInstallationGuide() {\n\t\treturn PublishConnectorInfo_InstallationGuide_DEFAULT\n\t}\n\treturn *p.InstallationGuide\n}\n\nvar PublishConnectorInfo_AuthStatus_DEFAULT UserAuthStatus\n\nfunc (p *PublishConnectorInfo) GetAuthStatus() (v UserAuthStatus) {\n\tif !p.IsSetAuthStatus() {\n\t\treturn PublishConnectorInfo_AuthStatus_DEFAULT\n\t}\n\treturn *p.AuthStatus\n}\n\nvar PublishConnectorInfo_ConfigStatusToast_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetConfigStatusToast() (v string) {\n\tif !p.IsSetConfigStatusToast() {\n\t\treturn PublishConnectorInfo_ConfigStatusToast_DEFAULT\n\t}\n\treturn *p.ConfigStatusToast\n}\n\nvar PublishConnectorInfo_ToCompleteInfoURL_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetToCompleteInfoURL() (v string) {\n\tif !p.IsSetToCompleteInfoURL() {\n\t\treturn PublishConnectorInfo_ToCompleteInfoURL_DEFAULT\n\t}\n\treturn *p.ToCompleteInfoURL\n}\n\nvar PublishConnectorInfo_ConnectorTips_DEFAULT string\n\nfunc (p *PublishConnectorInfo) GetConnectorTips() (v string) {\n\tif !p.IsSetConnectorTips() {\n\t\treturn PublishConnectorInfo_ConnectorTips_DEFAULT\n\t}\n\treturn *p.ConnectorTips\n}\n\nvar fieldIDToName_PublishConnectorInfo = map[int16]string{\n\t1:  \"id\",\n\t2:  \"name\",\n\t3:  \"icon_url\",\n\t4:  \"description\",\n\t5:  \"description_extra\",\n\t6:  \"connector_classification\",\n\t7:  \"config_status\",\n\t8:  \"connector_status\",\n\t9:  \"bind_type\",\n\t10: \"bind_info\",\n\t11: \"bind_id\",\n\t12: \"auth_login_info\",\n\t13: \"privacy_policy\",\n\t14: \"user_agreement\",\n\t15: \"allow_publish\",\n\t16: \"not_allow_publish_reason\",\n\t17: \"connector_union_id\",\n\t18: \"UIOptions\",\n\t19: \"support_monetization\",\n\t20: \"installation_guide\",\n\t21: \"auth_status\",\n\t22: \"config_status_toast\",\n\t23: \"to_complete_info_url\",\n\t24: \"connector_tips\",\n}\n\nfunc (p *PublishConnectorInfo) IsSetBindID() bool {\n\treturn p.BindID != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetAuthLoginInfo() bool {\n\treturn p.AuthLoginInfo != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetNotAllowPublishReason() bool {\n\treturn p.NotAllowPublishReason != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetConnectorUnionID() bool {\n\treturn p.ConnectorUnionID != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetUIOptions() bool {\n\treturn p.UIOptions != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetSupportMonetization() bool {\n\treturn p.SupportMonetization != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetInstallationGuide() bool {\n\treturn p.InstallationGuide != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetAuthStatus() bool {\n\treturn p.AuthStatus != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetConfigStatusToast() bool {\n\treturn p.ConfigStatusToast != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetToCompleteInfoURL() bool {\n\treturn p.ToCompleteInfoURL != nil\n}\n\nfunc (p *PublishConnectorInfo) IsSetConnectorTips() bool {\n\treturn p.ConnectorTips != nil\n}\n\nfunc (p *PublishConnectorInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\tvar issetName bool = false\n\tvar issetIconURL bool = false\n\tvar issetDescription bool = false\n\tvar issetConnectorClassification bool = false\n\tvar issetConfigStatus bool = false\n\tvar issetBindType bool = false\n\tvar issetBindInfo bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetIconURL = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDescription = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConnectorClassification = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConfigStatus = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBindType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBindInfo = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetIconURL {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetDescription {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConnectorClassification {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConfigStatus {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBindType {\n\t\tfieldId = 9\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBindInfo {\n\t\tfieldId = 10\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishConnectorInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PublishConnectorInfo[fieldId]))\n}\n\nfunc (p *PublishConnectorInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DescriptionExtra = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field ConnectorClassification\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ConnectorClassification(v)\n\t}\n\tp.ConnectorClassification = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field ConnectorConfigStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ConnectorConfigStatus(v)\n\t}\n\tp.ConfigStatus = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field ConnectorStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ConnectorStatus(v)\n\t}\n\tp.ConnectorStatus = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field ConnectorBindType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ConnectorBindType(v)\n\t}\n\tp.BindType = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField10(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BindInfo = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BindID = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField12(iprot thrift.TProtocol) error {\n\t_field := NewAuthLoginInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AuthLoginInfo = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PrivacyPolicy = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserAgreement = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AllowPublish = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NotAllowPublishReason = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorUnionID = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField18(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*UIOption, 0, size)\n\tvalues := make([]UIOption, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.UIOptions = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SupportMonetization = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.InstallationGuide = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *UserAuthStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := UserAuthStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.AuthStatus = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConfigStatusToast = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ToCompleteInfoURL = _field\n\treturn nil\n}\nfunc (p *PublishConnectorInfo) ReadField24(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorTips = _field\n\treturn nil\n}\n\nfunc (p *PublishConnectorInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishConnectorInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishConnectorInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description_extra\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DescriptionExtra); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_classification\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ConnectorClassification)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"config_status\", thrift.I32, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ConfigStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_status\", thrift.I32, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ConnectorStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bind_type\", thrift.I32, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BindType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bind_info\", thrift.MAP, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.BindInfo)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.BindInfo {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindID() {\n\t\tif err = oprot.WriteFieldBegin(\"bind_id\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BindID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuthLoginInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"auth_login_info\", thrift.STRUCT, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.AuthLoginInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"privacy_policy\", thrift.STRING, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PrivacyPolicy); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_agreement\", thrift.STRING, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserAgreement); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"allow_publish\", thrift.BOOL, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.AllowPublish); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNotAllowPublishReason() {\n\t\tif err = oprot.WriteFieldBegin(\"not_allow_publish_reason\", thrift.STRING, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.NotAllowPublishReason); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorUnionID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_union_id\", thrift.I64, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorUnionID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUIOptions() {\n\t\tif err = oprot.WriteFieldBegin(\"UIOptions\", thrift.LIST, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.UIOptions)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.UIOptions {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSupportMonetization() {\n\t\tif err = oprot.WriteFieldBegin(\"support_monetization\", thrift.BOOL, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SupportMonetization); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInstallationGuide() {\n\t\tif err = oprot.WriteFieldBegin(\"installation_guide\", thrift.STRING, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.InstallationGuide); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuthStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"auth_status\", thrift.I32, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AuthStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField22(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConfigStatusToast() {\n\t\tif err = oprot.WriteFieldBegin(\"config_status_toast\", thrift.STRING, 22); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConfigStatusToast); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField23(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetToCompleteInfoURL() {\n\t\tif err = oprot.WriteFieldBegin(\"to_complete_info_url\", thrift.STRING, 23); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ToCompleteInfoURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *PublishConnectorInfo) writeField24(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorTips() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_tips\", thrift.STRING, 24); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorTips); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\n\nfunc (p *PublishConnectorInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishConnectorInfo(%+v)\", *p)\n\n}\n\ntype LastPublishInfo struct {\n\tVersionNumber string  `thrift:\"version_number,1\" form:\"version_number\" json:\"version_number\" query:\"version_number\"`\n\tConnectorIds  []int64 `thrift:\"connector_ids,2\" form:\"connector_ids\" json:\"connector_ids,string\" query:\"connector_ids\"`\n\t// channel release configuration\n\tConnectorPublishConfig map[int64]*ConnectorPublishConfig `thrift:\"connector_publish_config,3\" form:\"connector_publish_config\" json:\"connector_publish_config\" query:\"connector_publish_config\"`\n}\n\nfunc NewLastPublishInfo() *LastPublishInfo {\n\treturn &LastPublishInfo{}\n}\n\nfunc (p *LastPublishInfo) InitDefault() {\n}\n\nfunc (p *LastPublishInfo) GetVersionNumber() (v string) {\n\treturn p.VersionNumber\n}\n\nfunc (p *LastPublishInfo) GetConnectorIds() (v []int64) {\n\treturn p.ConnectorIds\n}\n\nfunc (p *LastPublishInfo) GetConnectorPublishConfig() (v map[int64]*ConnectorPublishConfig) {\n\treturn p.ConnectorPublishConfig\n}\n\nvar fieldIDToName_LastPublishInfo = map[int16]string{\n\t1: \"version_number\",\n\t2: \"connector_ids\",\n\t3: \"connector_publish_config\",\n}\n\nfunc (p *LastPublishInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_LastPublishInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *LastPublishInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionNumber = _field\n\treturn nil\n}\nfunc (p *LastPublishInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorIds = _field\n\treturn nil\n}\nfunc (p *LastPublishInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]*ConnectorPublishConfig, size)\n\tvalues := make([]ConnectorPublishConfig, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorPublishConfig = _field\n\treturn nil\n}\n\nfunc (p *LastPublishInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"LastPublishInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *LastPublishInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_number\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionNumber); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *LastPublishInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_ids\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I64, len(p.ConnectorIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ConnectorIds {\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *LastPublishInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_publish_config\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.ConnectorPublishConfig)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.ConnectorPublishConfig {\n\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *LastPublishInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"LastPublishInfo(%+v)\", *p)\n\n}\n\ntype ConnectorUnionInfo struct {\n\tID               int64                       `thrift:\"id,1,required\" form:\"id,required\" json:\"id,string,required\" query:\"id,required\"`\n\tName             string                      `thrift:\"name,2,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\tDescription      string                      `thrift:\"description,3,required\" form:\"description,required\" json:\"description,required\" query:\"description,required\"`\n\tIconURL          string                      `thrift:\"icon_url,4,required\" form:\"icon_url,required\" json:\"icon_url,required\" query:\"icon_url,required\"`\n\tConnectorOptions []*ConnectorUnionInfoOption `thrift:\"connector_options,5,required\" form:\"connector_options,required\" json:\"connector_options,required\" query:\"connector_options,required\"`\n}\n\nfunc NewConnectorUnionInfo() *ConnectorUnionInfo {\n\treturn &ConnectorUnionInfo{}\n}\n\nfunc (p *ConnectorUnionInfo) InitDefault() {\n}\n\nfunc (p *ConnectorUnionInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *ConnectorUnionInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ConnectorUnionInfo) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *ConnectorUnionInfo) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *ConnectorUnionInfo) GetConnectorOptions() (v []*ConnectorUnionInfoOption) {\n\treturn p.ConnectorOptions\n}\n\nvar fieldIDToName_ConnectorUnionInfo = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"description\",\n\t4: \"icon_url\",\n\t5: \"connector_options\",\n}\n\nfunc (p *ConnectorUnionInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\tvar issetName bool = false\n\tvar issetDescription bool = false\n\tvar issetIconURL bool = false\n\tvar issetConnectorOptions bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDescription = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetIconURL = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConnectorOptions = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetDescription {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetIconURL {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConnectorOptions {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConnectorUnionInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ConnectorUnionInfo[fieldId]))\n}\n\nfunc (p *ConnectorUnionInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ConnectorUnionInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ConnectorUnionInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *ConnectorUnionInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *ConnectorUnionInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ConnectorUnionInfoOption, 0, size)\n\tvalues := make([]ConnectorUnionInfoOption, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorOptions = _field\n\treturn nil\n}\n\nfunc (p *ConnectorUnionInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConnectorUnionInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConnectorUnionInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConnectorUnionInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ConnectorUnionInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ConnectorUnionInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ConnectorUnionInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_options\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ConnectorOptions)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ConnectorOptions {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *ConnectorUnionInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConnectorUnionInfo(%+v)\", *p)\n\n}\n\ntype AuthLoginInfo struct {\n\tAppID        string `thrift:\"app_id,1\" form:\"app_id\" json:\"app_id\" query:\"app_id\"`\n\tResponseType string `thrift:\"response_type,2\" form:\"response_type\" json:\"response_type\" query:\"response_type\"`\n\tAuthorizeURL string `thrift:\"authorize_url,3\" form:\"authorize_url\" json:\"authorize_url\" query:\"authorize_url\"`\n\tScope        string `thrift:\"scope,4\" form:\"scope\" json:\"scope\" query:\"scope\"`\n\tClientID     string `thrift:\"client_id,5\" form:\"client_id\" json:\"client_id\" query:\"client_id\"`\n\tDuration     string `thrift:\"duration,6\" form:\"duration\" json:\"duration\" query:\"duration\"`\n\tAid          string `thrift:\"aid,7\" form:\"aid\" json:\"aid\" query:\"aid\"`\n\tClientKey    string `thrift:\"client_key,8\" form:\"client_key\" json:\"client_key\" query:\"client_key\"`\n}\n\nfunc NewAuthLoginInfo() *AuthLoginInfo {\n\treturn &AuthLoginInfo{}\n}\n\nfunc (p *AuthLoginInfo) InitDefault() {\n}\n\nfunc (p *AuthLoginInfo) GetAppID() (v string) {\n\treturn p.AppID\n}\n\nfunc (p *AuthLoginInfo) GetResponseType() (v string) {\n\treturn p.ResponseType\n}\n\nfunc (p *AuthLoginInfo) GetAuthorizeURL() (v string) {\n\treturn p.AuthorizeURL\n}\n\nfunc (p *AuthLoginInfo) GetScope() (v string) {\n\treturn p.Scope\n}\n\nfunc (p *AuthLoginInfo) GetClientID() (v string) {\n\treturn p.ClientID\n}\n\nfunc (p *AuthLoginInfo) GetDuration() (v string) {\n\treturn p.Duration\n}\n\nfunc (p *AuthLoginInfo) GetAid() (v string) {\n\treturn p.Aid\n}\n\nfunc (p *AuthLoginInfo) GetClientKey() (v string) {\n\treturn p.ClientKey\n}\n\nvar fieldIDToName_AuthLoginInfo = map[int16]string{\n\t1: \"app_id\",\n\t2: \"response_type\",\n\t3: \"authorize_url\",\n\t4: \"scope\",\n\t5: \"client_id\",\n\t6: \"duration\",\n\t7: \"aid\",\n\t8: \"client_key\",\n}\n\nfunc (p *AuthLoginInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AuthLoginInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AuthLoginInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AppID = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ResponseType = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AuthorizeURL = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Scope = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ClientID = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Duration = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Aid = _field\n\treturn nil\n}\nfunc (p *AuthLoginInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ClientKey = _field\n\treturn nil\n}\n\nfunc (p *AuthLoginInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AuthLoginInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AuthLoginInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"app_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AppID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ResponseType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"authorize_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AuthorizeURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"scope\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Scope); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"client_id\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ClientID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"duration\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Duration); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"aid\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Aid); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *AuthLoginInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"client_key\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ClientKey); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *AuthLoginInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AuthLoginInfo(%+v)\", *p)\n\n}\n\ntype UIOption struct {\n\t// UIChannel Options\n\tUIChannel int64 `thrift:\"ui_channel,1\" form:\"ui_channel\" json:\"ui_channel,string\" query:\"ui_channel\"`\n\t// Is it optional\n\tAvailable bool `thrift:\"available,2\" form:\"available\" json:\"available\" query:\"available\"`\n\t// unselectable reason\n\tUnavailableReason string `thrift:\"unavailable_reason,3\" form:\"unavailable_reason\" json:\"unavailable_reason\" query:\"unavailable_reason\"`\n}\n\nfunc NewUIOption() *UIOption {\n\treturn &UIOption{}\n}\n\nfunc (p *UIOption) InitDefault() {\n}\n\nfunc (p *UIOption) GetUIChannel() (v int64) {\n\treturn p.UIChannel\n}\n\nfunc (p *UIOption) GetAvailable() (v bool) {\n\treturn p.Available\n}\n\nfunc (p *UIOption) GetUnavailableReason() (v string) {\n\treturn p.UnavailableReason\n}\n\nvar fieldIDToName_UIOption = map[int16]string{\n\t1: \"ui_channel\",\n\t2: \"available\",\n\t3: \"unavailable_reason\",\n}\n\nfunc (p *UIOption) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UIOption[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UIOption) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UIChannel = _field\n\treturn nil\n}\nfunc (p *UIOption) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Available = _field\n\treturn nil\n}\nfunc (p *UIOption) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UnavailableReason = _field\n\treturn nil\n}\n\nfunc (p *UIOption) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UIOption\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UIOption) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ui_channel\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UIChannel); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UIOption) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"available\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Available); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UIOption) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"unavailable_reason\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UnavailableReason); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *UIOption) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UIOption(%+v)\", *p)\n\n}\n\ntype ConnectorPublishConfig struct {\n\t// Workflow/ChatFlow selected by publishing channel\n\tSelectedWorkflows []*SelectedWorkflow `thrift:\"selected_workflows,1\" form:\"selected_workflows\" json:\"selected_workflows\" query:\"selected_workflows\"`\n}\n\nfunc NewConnectorPublishConfig() *ConnectorPublishConfig {\n\treturn &ConnectorPublishConfig{}\n}\n\nfunc (p *ConnectorPublishConfig) InitDefault() {\n}\n\nfunc (p *ConnectorPublishConfig) GetSelectedWorkflows() (v []*SelectedWorkflow) {\n\treturn p.SelectedWorkflows\n}\n\nvar fieldIDToName_ConnectorPublishConfig = map[int16]string{\n\t1: \"selected_workflows\",\n}\n\nfunc (p *ConnectorPublishConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConnectorPublishConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConnectorPublishConfig) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*SelectedWorkflow, 0, size)\n\tvalues := make([]SelectedWorkflow, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SelectedWorkflows = _field\n\treturn nil\n}\n\nfunc (p *ConnectorPublishConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConnectorPublishConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConnectorPublishConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"selected_workflows\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SelectedWorkflows)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SelectedWorkflows {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConnectorPublishConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConnectorPublishConfig(%+v)\", *p)\n\n}\n\ntype ConnectorUnionInfoOption struct {\n\t// Channel ID\n\tConnectorID int64 `thrift:\"connector_id,1,required\" form:\"connector_id,required\" json:\"connector_id,string,required\" query:\"connector_id,required\"`\n\t// Display name, such as: hosted release, download code\n\tShowName string `thrift:\"show_name,2,required\" form:\"show_name,required\" json:\"show_name,required\" query:\"show_name,required\"`\n}\n\nfunc NewConnectorUnionInfoOption() *ConnectorUnionInfoOption {\n\treturn &ConnectorUnionInfoOption{}\n}\n\nfunc (p *ConnectorUnionInfoOption) InitDefault() {\n}\n\nfunc (p *ConnectorUnionInfoOption) GetConnectorID() (v int64) {\n\treturn p.ConnectorID\n}\n\nfunc (p *ConnectorUnionInfoOption) GetShowName() (v string) {\n\treturn p.ShowName\n}\n\nvar fieldIDToName_ConnectorUnionInfoOption = map[int16]string{\n\t1: \"connector_id\",\n\t2: \"show_name\",\n}\n\nfunc (p *ConnectorUnionInfoOption) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetConnectorID bool = false\n\tvar issetShowName bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConnectorID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetShowName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetConnectorID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetShowName {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConnectorUnionInfoOption[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ConnectorUnionInfoOption[fieldId]))\n}\n\nfunc (p *ConnectorUnionInfoOption) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ConnectorUnionInfoOption) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ShowName = _field\n\treturn nil\n}\n\nfunc (p *ConnectorUnionInfoOption) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConnectorUnionInfoOption\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConnectorUnionInfoOption) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConnectorUnionInfoOption) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"show_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ShowName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ConnectorUnionInfoOption) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConnectorUnionInfoOption(%+v)\", *p)\n\n}\n\ntype SelectedWorkflow struct {\n\tWorkflowID   int64  `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id,string\" query:\"workflow_id\"`\n\tWorkflowName string `thrift:\"workflow_name,2\" form:\"workflow_name\" json:\"workflow_name\" query:\"workflow_name\"`\n}\n\nfunc NewSelectedWorkflow() *SelectedWorkflow {\n\treturn &SelectedWorkflow{}\n}\n\nfunc (p *SelectedWorkflow) InitDefault() {\n}\n\nfunc (p *SelectedWorkflow) GetWorkflowID() (v int64) {\n\treturn p.WorkflowID\n}\n\nfunc (p *SelectedWorkflow) GetWorkflowName() (v string) {\n\treturn p.WorkflowName\n}\n\nvar fieldIDToName_SelectedWorkflow = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"workflow_name\",\n}\n\nfunc (p *SelectedWorkflow) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SelectedWorkflow[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SelectedWorkflow) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *SelectedWorkflow) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowName = _field\n\treturn nil\n}\n\nfunc (p *SelectedWorkflow) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SelectedWorkflow\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SelectedWorkflow) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SelectedWorkflow) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *SelectedWorkflow) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SelectedWorkflow(%+v)\", *p)\n\n}\n\ntype CheckProjectVersionNumberRequest struct {\n\tProjectID     int64      `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,string,required\" query:\"project_id,required\"`\n\tVersionNumber string     `thrift:\"version_number,2,required\" form:\"version_number,required\" json:\"version_number,required\" query:\"version_number,required\"`\n\tBase          *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewCheckProjectVersionNumberRequest() *CheckProjectVersionNumberRequest {\n\treturn &CheckProjectVersionNumberRequest{}\n}\n\nfunc (p *CheckProjectVersionNumberRequest) InitDefault() {\n}\n\nfunc (p *CheckProjectVersionNumberRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nfunc (p *CheckProjectVersionNumberRequest) GetVersionNumber() (v string) {\n\treturn p.VersionNumber\n}\n\nvar CheckProjectVersionNumberRequest_Base_DEFAULT *base.Base\n\nfunc (p *CheckProjectVersionNumberRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CheckProjectVersionNumberRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CheckProjectVersionNumberRequest = map[int16]string{\n\t1:   \"project_id\",\n\t2:   \"version_number\",\n\t255: \"Base\",\n}\n\nfunc (p *CheckProjectVersionNumberRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CheckProjectVersionNumberRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\tvar issetVersionNumber bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetVersionNumber = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetVersionNumber {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CheckProjectVersionNumberRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CheckProjectVersionNumberRequest[fieldId]))\n}\n\nfunc (p *CheckProjectVersionNumberRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *CheckProjectVersionNumberRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionNumber = _field\n\treturn nil\n}\nfunc (p *CheckProjectVersionNumberRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CheckProjectVersionNumberRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckProjectVersionNumberRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CheckProjectVersionNumberRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CheckProjectVersionNumberRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_number\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionNumber); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CheckProjectVersionNumberRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CheckProjectVersionNumberRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CheckProjectVersionNumberRequest(%+v)\", *p)\n\n}\n\ntype CheckProjectVersionNumberResponse struct {\n\tData     *CheckProjectVersionNumberData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                          `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                         `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp                 `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewCheckProjectVersionNumberResponse() *CheckProjectVersionNumberResponse {\n\treturn &CheckProjectVersionNumberResponse{}\n}\n\nfunc (p *CheckProjectVersionNumberResponse) InitDefault() {\n}\n\nvar CheckProjectVersionNumberResponse_Data_DEFAULT *CheckProjectVersionNumberData\n\nfunc (p *CheckProjectVersionNumberResponse) GetData() (v *CheckProjectVersionNumberData) {\n\tif !p.IsSetData() {\n\t\treturn CheckProjectVersionNumberResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *CheckProjectVersionNumberResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CheckProjectVersionNumberResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CheckProjectVersionNumberResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CheckProjectVersionNumberResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CheckProjectVersionNumberResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CheckProjectVersionNumberResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CheckProjectVersionNumberResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *CheckProjectVersionNumberResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CheckProjectVersionNumberResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CheckProjectVersionNumberResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CheckProjectVersionNumberResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCheckProjectVersionNumberData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *CheckProjectVersionNumberResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CheckProjectVersionNumberResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CheckProjectVersionNumberResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CheckProjectVersionNumberResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckProjectVersionNumberResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CheckProjectVersionNumberResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CheckProjectVersionNumberResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CheckProjectVersionNumberResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CheckProjectVersionNumberResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CheckProjectVersionNumberResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CheckProjectVersionNumberResponse(%+v)\", *p)\n\n}\n\ntype CheckProjectVersionNumberData struct {\n\tIsDuplicate bool `thrift:\"is_duplicate,1\" form:\"is_duplicate\" json:\"is_duplicate\" query:\"is_duplicate\"`\n}\n\nfunc NewCheckProjectVersionNumberData() *CheckProjectVersionNumberData {\n\treturn &CheckProjectVersionNumberData{}\n}\n\nfunc (p *CheckProjectVersionNumberData) InitDefault() {\n}\n\nfunc (p *CheckProjectVersionNumberData) GetIsDuplicate() (v bool) {\n\treturn p.IsDuplicate\n}\n\nvar fieldIDToName_CheckProjectVersionNumberData = map[int16]string{\n\t1: \"is_duplicate\",\n}\n\nfunc (p *CheckProjectVersionNumberData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CheckProjectVersionNumberData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CheckProjectVersionNumberData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsDuplicate = _field\n\treturn nil\n}\n\nfunc (p *CheckProjectVersionNumberData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckProjectVersionNumberData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CheckProjectVersionNumberData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_duplicate\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsDuplicate); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *CheckProjectVersionNumberData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CheckProjectVersionNumberData(%+v)\", *p)\n\n}\n\ntype PublishProjectRequest struct {\n\tProjectID int64 `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,string,required\" query:\"project_id,required\"`\n\t// version number\n\tVersionNumber string `thrift:\"version_number,2,required\" form:\"version_number,required\" json:\"version_number,required\" query:\"version_number,required\"`\n\t// describe\n\tDescription *string `thrift:\"description,3,optional\" form:\"description\" json:\"description,omitempty\" query:\"description\"`\n\t// The key represents connector_id, and the value is the parameter published by the channel\n\tConnectors map[int64]map[string]string `thrift:\"connectors,4,optional\" form:\"connectors\" json:\"connectors,omitempty\" query:\"connectors\"`\n\t// Channel release configuration, key represents connector_id\n\tConnectorPublishConfig map[int64]*ConnectorPublishConfig `thrift:\"connector_publish_config,5,optional\" form:\"connector_publish_config\" json:\"connector_publish_config,omitempty\" query:\"connector_publish_config\"`\n\tBase                   *base.Base                        `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewPublishProjectRequest() *PublishProjectRequest {\n\treturn &PublishProjectRequest{}\n}\n\nfunc (p *PublishProjectRequest) InitDefault() {\n}\n\nfunc (p *PublishProjectRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nfunc (p *PublishProjectRequest) GetVersionNumber() (v string) {\n\treturn p.VersionNumber\n}\n\nvar PublishProjectRequest_Description_DEFAULT string\n\nfunc (p *PublishProjectRequest) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn PublishProjectRequest_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar PublishProjectRequest_Connectors_DEFAULT map[int64]map[string]string\n\nfunc (p *PublishProjectRequest) GetConnectors() (v map[int64]map[string]string) {\n\tif !p.IsSetConnectors() {\n\t\treturn PublishProjectRequest_Connectors_DEFAULT\n\t}\n\treturn p.Connectors\n}\n\nvar PublishProjectRequest_ConnectorPublishConfig_DEFAULT map[int64]*ConnectorPublishConfig\n\nfunc (p *PublishProjectRequest) GetConnectorPublishConfig() (v map[int64]*ConnectorPublishConfig) {\n\tif !p.IsSetConnectorPublishConfig() {\n\t\treturn PublishProjectRequest_ConnectorPublishConfig_DEFAULT\n\t}\n\treturn p.ConnectorPublishConfig\n}\n\nvar PublishProjectRequest_Base_DEFAULT *base.Base\n\nfunc (p *PublishProjectRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn PublishProjectRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_PublishProjectRequest = map[int16]string{\n\t1:   \"project_id\",\n\t2:   \"version_number\",\n\t3:   \"description\",\n\t4:   \"connectors\",\n\t5:   \"connector_publish_config\",\n\t255: \"Base\",\n}\n\nfunc (p *PublishProjectRequest) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *PublishProjectRequest) IsSetConnectors() bool {\n\treturn p.Connectors != nil\n}\n\nfunc (p *PublishProjectRequest) IsSetConnectorPublishConfig() bool {\n\treturn p.ConnectorPublishConfig != nil\n}\n\nfunc (p *PublishProjectRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *PublishProjectRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\tvar issetVersionNumber bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetVersionNumber = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetVersionNumber {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishProjectRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PublishProjectRequest[fieldId]))\n}\n\nfunc (p *PublishProjectRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *PublishProjectRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionNumber = _field\n\treturn nil\n}\nfunc (p *PublishProjectRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *PublishProjectRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_val := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key1 string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key1 = v\n\t\t\t}\n\n\t\t\tvar _val1 string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val1 = v\n\t\t\t}\n\n\t\t\t_val[_key1] = _val1\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Connectors = _field\n\treturn nil\n}\nfunc (p *PublishProjectRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]*ConnectorPublishConfig, size)\n\tvalues := make([]ConnectorPublishConfig, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorPublishConfig = _field\n\treturn nil\n}\nfunc (p *PublishProjectRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *PublishProjectRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishProjectRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishProjectRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishProjectRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_number\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionNumber); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishProjectRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishProjectRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectors() {\n\t\tif err = oprot.WriteFieldBegin(\"connectors\", thrift.MAP, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I64, thrift.MAP, len(p.Connectors)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.Connectors {\n\t\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfor k, v := range v {\n\t\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PublishProjectRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorPublishConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_publish_config\", thrift.MAP, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.ConnectorPublishConfig)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ConnectorPublishConfig {\n\t\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PublishProjectRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *PublishProjectRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishProjectRequest(%+v)\", *p)\n\n}\n\ntype PublishProjectResponse struct {\n\tData     *PublishProjectData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64               `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string              `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewPublishProjectResponse() *PublishProjectResponse {\n\treturn &PublishProjectResponse{}\n}\n\nfunc (p *PublishProjectResponse) InitDefault() {\n}\n\nvar PublishProjectResponse_Data_DEFAULT *PublishProjectData\n\nfunc (p *PublishProjectResponse) GetData() (v *PublishProjectData) {\n\tif !p.IsSetData() {\n\t\treturn PublishProjectResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *PublishProjectResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *PublishProjectResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar PublishProjectResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *PublishProjectResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn PublishProjectResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_PublishProjectResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *PublishProjectResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *PublishProjectResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *PublishProjectResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishProjectResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishProjectResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPublishProjectData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *PublishProjectResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PublishProjectResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *PublishProjectResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *PublishProjectResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishProjectResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishProjectResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishProjectResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *PublishProjectResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *PublishProjectResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *PublishProjectResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishProjectResponse(%+v)\", *p)\n\n}\n\ntype PublishProjectData struct {\n\t// Publish record ID for front-end polling\n\tPublishRecordID int64 `thrift:\"publish_record_id,1\" form:\"publish_record_id\" json:\"publish_record_id,string\" query:\"publish_record_id\"`\n\t// The charging configuration is released, and the overseas environment is only available.\n\tPublishMonetizationResult *bool `thrift:\"publish_monetization_result,2,optional\" form:\"publish_monetization_result\" json:\"publish_monetization_result,omitempty\" query:\"publish_monetization_result\"`\n}\n\nfunc NewPublishProjectData() *PublishProjectData {\n\treturn &PublishProjectData{}\n}\n\nfunc (p *PublishProjectData) InitDefault() {\n}\n\nfunc (p *PublishProjectData) GetPublishRecordID() (v int64) {\n\treturn p.PublishRecordID\n}\n\nvar PublishProjectData_PublishMonetizationResult_DEFAULT bool\n\nfunc (p *PublishProjectData) GetPublishMonetizationResult() (v bool) {\n\tif !p.IsSetPublishMonetizationResult() {\n\t\treturn PublishProjectData_PublishMonetizationResult_DEFAULT\n\t}\n\treturn *p.PublishMonetizationResult\n}\n\nvar fieldIDToName_PublishProjectData = map[int16]string{\n\t1: \"publish_record_id\",\n\t2: \"publish_monetization_result\",\n}\n\nfunc (p *PublishProjectData) IsSetPublishMonetizationResult() bool {\n\treturn p.PublishMonetizationResult != nil\n}\n\nfunc (p *PublishProjectData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishProjectData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishProjectData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PublishRecordID = _field\n\treturn nil\n}\nfunc (p *PublishProjectData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishMonetizationResult = _field\n\treturn nil\n}\n\nfunc (p *PublishProjectData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishProjectData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishProjectData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_record_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PublishRecordID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishProjectData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishMonetizationResult() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_monetization_result\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.PublishMonetizationResult); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *PublishProjectData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishProjectData(%+v)\", *p)\n\n}\n\ntype GetPublishRecordListRequest struct {\n\tProjectID int64      `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,string,required\" query:\"project_id,required\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetPublishRecordListRequest() *GetPublishRecordListRequest {\n\treturn &GetPublishRecordListRequest{}\n}\n\nfunc (p *GetPublishRecordListRequest) InitDefault() {\n}\n\nfunc (p *GetPublishRecordListRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar GetPublishRecordListRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetPublishRecordListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetPublishRecordListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetPublishRecordListRequest = map[int16]string{\n\t1:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetPublishRecordListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetPublishRecordListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPublishRecordListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPublishRecordListRequest[fieldId]))\n}\n\nfunc (p *GetPublishRecordListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *GetPublishRecordListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetPublishRecordListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPublishRecordListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPublishRecordListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPublishRecordListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPublishRecordListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPublishRecordListRequest(%+v)\", *p)\n\n}\n\ntype GetPublishRecordListResponse struct {\n\tData     []*PublishRecordDetail `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                  `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                 `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp         `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetPublishRecordListResponse() *GetPublishRecordListResponse {\n\treturn &GetPublishRecordListResponse{}\n}\n\nfunc (p *GetPublishRecordListResponse) InitDefault() {\n}\n\nfunc (p *GetPublishRecordListResponse) GetData() (v []*PublishRecordDetail) {\n\treturn p.Data\n}\n\nfunc (p *GetPublishRecordListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetPublishRecordListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetPublishRecordListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetPublishRecordListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetPublishRecordListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetPublishRecordListResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetPublishRecordListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetPublishRecordListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPublishRecordListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetPublishRecordListResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PublishRecordDetail, 0, size)\n\tvalues := make([]PublishRecordDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetPublishRecordListResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetPublishRecordListResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetPublishRecordListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetPublishRecordListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPublishRecordListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPublishRecordListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPublishRecordListResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetPublishRecordListResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetPublishRecordListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPublishRecordListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPublishRecordListResponse(%+v)\", *p)\n\n}\n\ntype PublishRecordDetail struct {\n\tPublishRecordID int64  `thrift:\"publish_record_id,1\" form:\"publish_record_id\" json:\"publish_record_id,string\" query:\"publish_record_id\"`\n\tVersionNumber   string `thrift:\"version_number,2\" form:\"version_number\" json:\"version_number\" query:\"version_number\"`\n\t// release status\n\tPublishStatus PublishRecordStatus `thrift:\"publish_status,3\" form:\"publish_status\" json:\"publish_status\" query:\"publish_status\"`\n\t// This field is deprecated, please use publish_status_detail\n\tPublishStatusMsg string `thrift:\"publish_status_msg,4\" form:\"publish_status_msg\" json:\"publish_status_msg\" query:\"publish_status_msg\"`\n\t// Channel release results\n\tConnectorPublishResult []*ConnectorPublishResult `thrift:\"connector_publish_result,5,optional\" form:\"connector_publish_result\" json:\"connector_publish_result,omitempty\" query:\"connector_publish_result\"`\n\t// Release status Supplementary information\n\tPublishStatusDetail *PublishRecordStatusDetail `thrift:\"publish_status_detail,6,optional\" form:\"publish_status_detail\" json:\"publish_status_detail,omitempty\" query:\"publish_status_detail\"`\n}\n\nfunc NewPublishRecordDetail() *PublishRecordDetail {\n\treturn &PublishRecordDetail{}\n}\n\nfunc (p *PublishRecordDetail) InitDefault() {\n}\n\nfunc (p *PublishRecordDetail) GetPublishRecordID() (v int64) {\n\treturn p.PublishRecordID\n}\n\nfunc (p *PublishRecordDetail) GetVersionNumber() (v string) {\n\treturn p.VersionNumber\n}\n\nfunc (p *PublishRecordDetail) GetPublishStatus() (v PublishRecordStatus) {\n\treturn p.PublishStatus\n}\n\nfunc (p *PublishRecordDetail) GetPublishStatusMsg() (v string) {\n\treturn p.PublishStatusMsg\n}\n\nvar PublishRecordDetail_ConnectorPublishResult_DEFAULT []*ConnectorPublishResult\n\nfunc (p *PublishRecordDetail) GetConnectorPublishResult() (v []*ConnectorPublishResult) {\n\tif !p.IsSetConnectorPublishResult() {\n\t\treturn PublishRecordDetail_ConnectorPublishResult_DEFAULT\n\t}\n\treturn p.ConnectorPublishResult\n}\n\nvar PublishRecordDetail_PublishStatusDetail_DEFAULT *PublishRecordStatusDetail\n\nfunc (p *PublishRecordDetail) GetPublishStatusDetail() (v *PublishRecordStatusDetail) {\n\tif !p.IsSetPublishStatusDetail() {\n\t\treturn PublishRecordDetail_PublishStatusDetail_DEFAULT\n\t}\n\treturn p.PublishStatusDetail\n}\n\nvar fieldIDToName_PublishRecordDetail = map[int16]string{\n\t1: \"publish_record_id\",\n\t2: \"version_number\",\n\t3: \"publish_status\",\n\t4: \"publish_status_msg\",\n\t5: \"connector_publish_result\",\n\t6: \"publish_status_detail\",\n}\n\nfunc (p *PublishRecordDetail) IsSetConnectorPublishResult() bool {\n\treturn p.ConnectorPublishResult != nil\n}\n\nfunc (p *PublishRecordDetail) IsSetPublishStatusDetail() bool {\n\treturn p.PublishStatusDetail != nil\n}\n\nfunc (p *PublishRecordDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishRecordDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishRecordDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PublishRecordID = _field\n\treturn nil\n}\nfunc (p *PublishRecordDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionNumber = _field\n\treturn nil\n}\nfunc (p *PublishRecordDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field PublishRecordStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = PublishRecordStatus(v)\n\t}\n\tp.PublishStatus = _field\n\treturn nil\n}\nfunc (p *PublishRecordDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PublishStatusMsg = _field\n\treturn nil\n}\nfunc (p *PublishRecordDetail) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ConnectorPublishResult, 0, size)\n\tvalues := make([]ConnectorPublishResult, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorPublishResult = _field\n\treturn nil\n}\nfunc (p *PublishRecordDetail) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewPublishRecordStatusDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PublishStatusDetail = _field\n\treturn nil\n}\n\nfunc (p *PublishRecordDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishRecordDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishRecordDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_record_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PublishRecordID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishRecordDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_number\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionNumber); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishRecordDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_status\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PublishStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishRecordDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_status_msg\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PublishStatusMsg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PublishRecordDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorPublishResult() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_publish_result\", thrift.LIST, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ConnectorPublishResult)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ConnectorPublishResult {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PublishRecordDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishStatusDetail() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_status_detail\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.PublishStatusDetail.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *PublishRecordDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishRecordDetail(%+v)\", *p)\n\n}\n\ntype ConnectorPublishResult struct {\n\tConnectorID      int64  `thrift:\"connector_id,1\" form:\"connector_id\" json:\"connector_id,string\" query:\"connector_id\"`\n\tConnectorName    string `thrift:\"connector_name,2\" form:\"connector_name\" json:\"connector_name\" query:\"connector_name\"`\n\tConnectorIconURL string `thrift:\"connector_icon_url,3\" form:\"connector_icon_url\" json:\"connector_icon_url\" query:\"connector_icon_url\"`\n\t// channel release status\n\tConnectorPublishStatus ConnectorPublishStatus `thrift:\"connector_publish_status,4\" form:\"connector_publish_status\" json:\"connector_publish_status\" query:\"connector_publish_status\"`\n\t// Channel Release Status Supplementary Information\n\tConnectorPublishStatusMsg string `thrift:\"connector_publish_status_msg,5\" form:\"connector_publish_status_msg\" json:\"connector_publish_status_msg\" query:\"connector_publish_status_msg\"`\n\t// OpenIn Link\n\tShareLink *string `thrift:\"share_link,6,optional\" form:\"share_link\" json:\"share_link,omitempty\" query:\"share_link\"`\n\t// Mini Program Channel Download Link\n\tDownloadLink *string `thrift:\"download_link,7,optional\" form:\"download_link\" json:\"download_link,omitempty\" query:\"download_link\"`\n\t// channel release configuration\n\tConnectorPublishConfig *ConnectorPublishConfig `thrift:\"connector_publish_config,8,optional\" form:\"connector_publish_config\" json:\"connector_publish_config,omitempty\" query:\"connector_publish_config\"`\n\t// Channel binding information key field name value is value\n\tConnectorBindInfo map[string]string `thrift:\"connector_bind_info,9,optional\" form:\"connector_bind_info\" json:\"connector_bind_info,omitempty\" query:\"connector_bind_info\"`\n}\n\nfunc NewConnectorPublishResult() *ConnectorPublishResult {\n\treturn &ConnectorPublishResult{}\n}\n\nfunc (p *ConnectorPublishResult) InitDefault() {\n}\n\nfunc (p *ConnectorPublishResult) GetConnectorID() (v int64) {\n\treturn p.ConnectorID\n}\n\nfunc (p *ConnectorPublishResult) GetConnectorName() (v string) {\n\treturn p.ConnectorName\n}\n\nfunc (p *ConnectorPublishResult) GetConnectorIconURL() (v string) {\n\treturn p.ConnectorIconURL\n}\n\nfunc (p *ConnectorPublishResult) GetConnectorPublishStatus() (v ConnectorPublishStatus) {\n\treturn p.ConnectorPublishStatus\n}\n\nfunc (p *ConnectorPublishResult) GetConnectorPublishStatusMsg() (v string) {\n\treturn p.ConnectorPublishStatusMsg\n}\n\nvar ConnectorPublishResult_ShareLink_DEFAULT string\n\nfunc (p *ConnectorPublishResult) GetShareLink() (v string) {\n\tif !p.IsSetShareLink() {\n\t\treturn ConnectorPublishResult_ShareLink_DEFAULT\n\t}\n\treturn *p.ShareLink\n}\n\nvar ConnectorPublishResult_DownloadLink_DEFAULT string\n\nfunc (p *ConnectorPublishResult) GetDownloadLink() (v string) {\n\tif !p.IsSetDownloadLink() {\n\t\treturn ConnectorPublishResult_DownloadLink_DEFAULT\n\t}\n\treturn *p.DownloadLink\n}\n\nvar ConnectorPublishResult_ConnectorPublishConfig_DEFAULT *ConnectorPublishConfig\n\nfunc (p *ConnectorPublishResult) GetConnectorPublishConfig() (v *ConnectorPublishConfig) {\n\tif !p.IsSetConnectorPublishConfig() {\n\t\treturn ConnectorPublishResult_ConnectorPublishConfig_DEFAULT\n\t}\n\treturn p.ConnectorPublishConfig\n}\n\nvar ConnectorPublishResult_ConnectorBindInfo_DEFAULT map[string]string\n\nfunc (p *ConnectorPublishResult) GetConnectorBindInfo() (v map[string]string) {\n\tif !p.IsSetConnectorBindInfo() {\n\t\treturn ConnectorPublishResult_ConnectorBindInfo_DEFAULT\n\t}\n\treturn p.ConnectorBindInfo\n}\n\nvar fieldIDToName_ConnectorPublishResult = map[int16]string{\n\t1: \"connector_id\",\n\t2: \"connector_name\",\n\t3: \"connector_icon_url\",\n\t4: \"connector_publish_status\",\n\t5: \"connector_publish_status_msg\",\n\t6: \"share_link\",\n\t7: \"download_link\",\n\t8: \"connector_publish_config\",\n\t9: \"connector_bind_info\",\n}\n\nfunc (p *ConnectorPublishResult) IsSetShareLink() bool {\n\treturn p.ShareLink != nil\n}\n\nfunc (p *ConnectorPublishResult) IsSetDownloadLink() bool {\n\treturn p.DownloadLink != nil\n}\n\nfunc (p *ConnectorPublishResult) IsSetConnectorPublishConfig() bool {\n\treturn p.ConnectorPublishConfig != nil\n}\n\nfunc (p *ConnectorPublishResult) IsSetConnectorBindInfo() bool {\n\treturn p.ConnectorBindInfo != nil\n}\n\nfunc (p *ConnectorPublishResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConnectorPublishResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConnectorPublishResult) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ConnectorPublishResult) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorName = _field\n\treturn nil\n}\nfunc (p *ConnectorPublishResult) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorIconURL = _field\n\treturn nil\n}\nfunc (p *ConnectorPublishResult) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field ConnectorPublishStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ConnectorPublishStatus(v)\n\t}\n\tp.ConnectorPublishStatus = _field\n\treturn nil\n}\nfunc (p *ConnectorPublishResult) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorPublishStatusMsg = _field\n\treturn nil\n}\nfunc (p *ConnectorPublishResult) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ShareLink = _field\n\treturn nil\n}\nfunc (p *ConnectorPublishResult) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DownloadLink = _field\n\treturn nil\n}\nfunc (p *ConnectorPublishResult) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewConnectorPublishConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorPublishConfig = _field\n\treturn nil\n}\nfunc (p *ConnectorPublishResult) ReadField9(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorBindInfo = _field\n\treturn nil\n}\n\nfunc (p *ConnectorPublishResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConnectorPublishResult\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConnectorPublishResult) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConnectorPublishResult) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ConnectorPublishResult) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_icon_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorIconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ConnectorPublishResult) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_publish_status\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ConnectorPublishStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ConnectorPublishResult) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_publish_status_msg\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorPublishStatusMsg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ConnectorPublishResult) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShareLink() {\n\t\tif err = oprot.WriteFieldBegin(\"share_link\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ShareLink); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ConnectorPublishResult) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDownloadLink() {\n\t\tif err = oprot.WriteFieldBegin(\"download_link\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DownloadLink); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ConnectorPublishResult) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorPublishConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_publish_config\", thrift.STRUCT, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ConnectorPublishConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ConnectorPublishResult) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorBindInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_bind_info\", thrift.MAP, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.ConnectorBindInfo)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ConnectorBindInfo {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *ConnectorPublishResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConnectorPublishResult(%+v)\", *p)\n\n}\n\ntype PublishRecordStatusDetail struct {\n\t// Packaging failure details\n\tPackFailedDetail []*PackFailedDetail `thrift:\"pack_failed_detail,1,optional\" form:\"pack_failed_detail\" json:\"pack_failed_detail,omitempty\" query:\"pack_failed_detail\"`\n}\n\nfunc NewPublishRecordStatusDetail() *PublishRecordStatusDetail {\n\treturn &PublishRecordStatusDetail{}\n}\n\nfunc (p *PublishRecordStatusDetail) InitDefault() {\n}\n\nvar PublishRecordStatusDetail_PackFailedDetail_DEFAULT []*PackFailedDetail\n\nfunc (p *PublishRecordStatusDetail) GetPackFailedDetail() (v []*PackFailedDetail) {\n\tif !p.IsSetPackFailedDetail() {\n\t\treturn PublishRecordStatusDetail_PackFailedDetail_DEFAULT\n\t}\n\treturn p.PackFailedDetail\n}\n\nvar fieldIDToName_PublishRecordStatusDetail = map[int16]string{\n\t1: \"pack_failed_detail\",\n}\n\nfunc (p *PublishRecordStatusDetail) IsSetPackFailedDetail() bool {\n\treturn p.PackFailedDetail != nil\n}\n\nfunc (p *PublishRecordStatusDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishRecordStatusDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishRecordStatusDetail) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PackFailedDetail, 0, size)\n\tvalues := make([]PackFailedDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PackFailedDetail = _field\n\treturn nil\n}\n\nfunc (p *PublishRecordStatusDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishRecordStatusDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishRecordStatusDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPackFailedDetail() {\n\t\tif err = oprot.WriteFieldBegin(\"pack_failed_detail\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PackFailedDetail)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PackFailedDetail {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublishRecordStatusDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishRecordStatusDetail(%+v)\", *p)\n\n}\n\ntype PackFailedDetail struct {\n\tEntityID   int64               `thrift:\"entity_id,1\" form:\"entity_id\" json:\"entity_id,string\" query:\"entity_id\"`\n\tEntityType common.ResourceType `thrift:\"entity_type,2\" form:\"entity_type\" json:\"entity_type\" query:\"entity_type\"`\n\tEntityName string              `thrift:\"entity_name,3\" form:\"entity_name\" json:\"entity_name\" query:\"entity_name\"`\n}\n\nfunc NewPackFailedDetail() *PackFailedDetail {\n\treturn &PackFailedDetail{}\n}\n\nfunc (p *PackFailedDetail) InitDefault() {\n}\n\nfunc (p *PackFailedDetail) GetEntityID() (v int64) {\n\treturn p.EntityID\n}\n\nfunc (p *PackFailedDetail) GetEntityType() (v common.ResourceType) {\n\treturn p.EntityType\n}\n\nfunc (p *PackFailedDetail) GetEntityName() (v string) {\n\treturn p.EntityName\n}\n\nvar fieldIDToName_PackFailedDetail = map[int16]string{\n\t1: \"entity_id\",\n\t2: \"entity_type\",\n\t3: \"entity_name\",\n}\n\nfunc (p *PackFailedDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PackFailedDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PackFailedDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EntityID = _field\n\treturn nil\n}\nfunc (p *PackFailedDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field common.ResourceType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.ResourceType(v)\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *PackFailedDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EntityName = _field\n\treturn nil\n}\n\nfunc (p *PackFailedDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PackFailedDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PackFailedDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"entity_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.EntityID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PackFailedDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"entity_type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.EntityType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PackFailedDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"entity_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.EntityName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *PackFailedDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PackFailedDetail(%+v)\", *p)\n\n}\n\ntype GetPublishRecordDetailRequest struct {\n\tProjectID int64 `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,string,required\" query:\"project_id,required\"`\n\t// If you don't upload it, get the last release record.\n\tPublishRecordID *int64     `thrift:\"publish_record_id,2,optional\" form:\"publish_record_id\" json:\"publish_record_id,string,omitempty\" query:\"publish_record_id\"`\n\tBase            *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetPublishRecordDetailRequest() *GetPublishRecordDetailRequest {\n\treturn &GetPublishRecordDetailRequest{}\n}\n\nfunc (p *GetPublishRecordDetailRequest) InitDefault() {\n}\n\nfunc (p *GetPublishRecordDetailRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar GetPublishRecordDetailRequest_PublishRecordID_DEFAULT int64\n\nfunc (p *GetPublishRecordDetailRequest) GetPublishRecordID() (v int64) {\n\tif !p.IsSetPublishRecordID() {\n\t\treturn GetPublishRecordDetailRequest_PublishRecordID_DEFAULT\n\t}\n\treturn *p.PublishRecordID\n}\n\nvar GetPublishRecordDetailRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetPublishRecordDetailRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetPublishRecordDetailRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetPublishRecordDetailRequest = map[int16]string{\n\t1:   \"project_id\",\n\t2:   \"publish_record_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetPublishRecordDetailRequest) IsSetPublishRecordID() bool {\n\treturn p.PublishRecordID != nil\n}\n\nfunc (p *GetPublishRecordDetailRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetPublishRecordDetailRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPublishRecordDetailRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPublishRecordDetailRequest[fieldId]))\n}\n\nfunc (p *GetPublishRecordDetailRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *GetPublishRecordDetailRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishRecordID = _field\n\treturn nil\n}\nfunc (p *GetPublishRecordDetailRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetPublishRecordDetailRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPublishRecordDetailRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPublishRecordDetailRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPublishRecordDetailRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishRecordID() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_record_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.PublishRecordID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPublishRecordDetailRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPublishRecordDetailRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPublishRecordDetailRequest(%+v)\", *p)\n\n}\n\ntype GetPublishRecordDetailResponse struct {\n\tData     *PublishRecordDetail `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string               `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp       `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetPublishRecordDetailResponse() *GetPublishRecordDetailResponse {\n\treturn &GetPublishRecordDetailResponse{}\n}\n\nfunc (p *GetPublishRecordDetailResponse) InitDefault() {\n}\n\nvar GetPublishRecordDetailResponse_Data_DEFAULT *PublishRecordDetail\n\nfunc (p *GetPublishRecordDetailResponse) GetData() (v *PublishRecordDetail) {\n\tif !p.IsSetData() {\n\t\treturn GetPublishRecordDetailResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetPublishRecordDetailResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetPublishRecordDetailResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetPublishRecordDetailResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetPublishRecordDetailResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetPublishRecordDetailResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetPublishRecordDetailResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetPublishRecordDetailResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetPublishRecordDetailResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetPublishRecordDetailResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPublishRecordDetailResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetPublishRecordDetailResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPublishRecordDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetPublishRecordDetailResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetPublishRecordDetailResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetPublishRecordDetailResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetPublishRecordDetailResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPublishRecordDetailResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPublishRecordDetailResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPublishRecordDetailResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetPublishRecordDetailResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetPublishRecordDetailResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPublishRecordDetailResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPublishRecordDetailResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/app/intelligence/search.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage intelligence\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype OrderBy int64\n\nconst (\n\tOrderBy_UpdateTime  OrderBy = 0\n\tOrderBy_CreateTime  OrderBy = 1\n\tOrderBy_PublishTime OrderBy = 2\n)\n\nfunc (p OrderBy) String() string {\n\tswitch p {\n\tcase OrderBy_UpdateTime:\n\t\treturn \"UpdateTime\"\n\tcase OrderBy_CreateTime:\n\t\treturn \"CreateTime\"\n\tcase OrderBy_PublishTime:\n\t\treturn \"PublishTime\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OrderByFromString(s string) (OrderBy, error) {\n\tswitch s {\n\tcase \"UpdateTime\":\n\t\treturn OrderBy_UpdateTime, nil\n\tcase \"CreateTime\":\n\t\treturn OrderBy_CreateTime, nil\n\tcase \"PublishTime\":\n\t\treturn OrderBy_PublishTime, nil\n\t}\n\treturn OrderBy(0), fmt.Errorf(\"not a valid OrderBy string\")\n}\n\nfunc OrderByPtr(v OrderBy) *OrderBy { return &v }\nfunc (p *OrderBy) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OrderBy(result.Int64)\n\treturn\n}\n\nfunc (p *OrderBy) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype OceanProjectOrderBy int64\n\nconst (\n\tOceanProjectOrderBy_UpdateTime OceanProjectOrderBy = 0\n\tOceanProjectOrderBy_CreateTime OceanProjectOrderBy = 1\n)\n\nfunc (p OceanProjectOrderBy) String() string {\n\tswitch p {\n\tcase OceanProjectOrderBy_UpdateTime:\n\t\treturn \"UpdateTime\"\n\tcase OceanProjectOrderBy_CreateTime:\n\t\treturn \"CreateTime\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OceanProjectOrderByFromString(s string) (OceanProjectOrderBy, error) {\n\tswitch s {\n\tcase \"UpdateTime\":\n\t\treturn OceanProjectOrderBy_UpdateTime, nil\n\tcase \"CreateTime\":\n\t\treturn OceanProjectOrderBy_CreateTime, nil\n\t}\n\treturn OceanProjectOrderBy(0), fmt.Errorf(\"not a valid OceanProjectOrderBy string\")\n}\n\nfunc OceanProjectOrderByPtr(v OceanProjectOrderBy) *OceanProjectOrderBy { return &v }\nfunc (p *OceanProjectOrderBy) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OceanProjectOrderBy(result.Int64)\n\treturn\n}\n\nfunc (p *OceanProjectOrderBy) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SearchScope int64\n\nconst (\n\tSearchScope_All        SearchScope = 0\n\tSearchScope_CreateByMe SearchScope = 1\n)\n\nfunc (p SearchScope) String() string {\n\tswitch p {\n\tcase SearchScope_All:\n\t\treturn \"All\"\n\tcase SearchScope_CreateByMe:\n\t\treturn \"CreateByMe\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SearchScopeFromString(s string) (SearchScope, error) {\n\tswitch s {\n\tcase \"All\":\n\t\treturn SearchScope_All, nil\n\tcase \"CreateByMe\":\n\t\treturn SearchScope_CreateByMe, nil\n\t}\n\treturn SearchScope(0), fmt.Errorf(\"not a valid SearchScope string\")\n}\n\nfunc SearchScopePtr(v SearchScope) *SearchScope { return &v }\nfunc (p *SearchScope) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SearchScope(result.Int64)\n\treturn\n}\n\nfunc (p *SearchScope) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BotMode int64\n\nconst (\n\tBotMode_SingleMode   BotMode = 0\n\tBotMode_MultiMode    BotMode = 1\n\tBotMode_WorkflowMode BotMode = 2\n)\n\nfunc (p BotMode) String() string {\n\tswitch p {\n\tcase BotMode_SingleMode:\n\t\treturn \"SingleMode\"\n\tcase BotMode_MultiMode:\n\t\treturn \"MultiMode\"\n\tcase BotMode_WorkflowMode:\n\t\treturn \"WorkflowMode\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotModeFromString(s string) (BotMode, error) {\n\tswitch s {\n\tcase \"SingleMode\":\n\t\treturn BotMode_SingleMode, nil\n\tcase \"MultiMode\":\n\t\treturn BotMode_MultiMode, nil\n\tcase \"WorkflowMode\":\n\t\treturn BotMode_WorkflowMode, nil\n\t}\n\treturn BotMode(0), fmt.Errorf(\"not a valid BotMode string\")\n}\n\nfunc BotModePtr(v BotMode) *BotMode { return &v }\nfunc (p *BotMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotMode(result.Int64)\n\treturn\n}\n\nfunc (p *BotMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype GetDraftIntelligenceListOption struct {\n\t//need personal version Bot data\n\tNeedReplica bool `thrift:\"need_replica,1\" form:\"need_replica\" json:\"need_replica\" query:\"need_replica\"`\n}\n\nfunc NewGetDraftIntelligenceListOption() *GetDraftIntelligenceListOption {\n\treturn &GetDraftIntelligenceListOption{}\n}\n\nfunc (p *GetDraftIntelligenceListOption) InitDefault() {\n}\n\nfunc (p *GetDraftIntelligenceListOption) GetNeedReplica() (v bool) {\n\treturn p.NeedReplica\n}\n\nvar fieldIDToName_GetDraftIntelligenceListOption = map[int16]string{\n\t1: \"need_replica\",\n}\n\nfunc (p *GetDraftIntelligenceListOption) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDraftIntelligenceListOption[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceListOption) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NeedReplica = _field\n\treturn nil\n}\n\nfunc (p *GetDraftIntelligenceListOption) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftIntelligenceListOption\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceListOption) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"need_replica\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.NeedReplica); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceListOption) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDraftIntelligenceListOption(%+v)\", *p)\n\n}\n\ntype GetDraftIntelligenceListRequest struct {\n\tSpaceID      int64                           `thrift:\"space_id,1,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\tName         *string                         `thrift:\"name,2,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tHasPublished *bool                           `thrift:\"has_published,3,optional\" form:\"has_published\" json:\"has_published,omitempty\" query:\"has_published\"`\n\tStatus       []common.IntelligenceStatus     `thrift:\"status,4,optional\" form:\"status\" json:\"status,omitempty\" query:\"status\"`\n\tTypes        []common.IntelligenceType       `thrift:\"types,5,optional\" form:\"types\" json:\"types,omitempty\" query:\"types\"`\n\tSearchScope  *SearchScope                    `thrift:\"search_scope,6,optional\" form:\"search_scope\" json:\"search_scope,omitempty\" query:\"search_scope\"`\n\tIsFav        *bool                           `thrift:\"is_fav,51,optional\" form:\"is_fav\" json:\"is_fav,omitempty\" query:\"is_fav\"`\n\tRecentlyOpen *bool                           `thrift:\"recently_open,52,optional\" form:\"recently_open\" json:\"recently_open,omitempty\" query:\"recently_open\"`\n\tOption       *GetDraftIntelligenceListOption `thrift:\"option,99,optional\" form:\"option\" json:\"option,omitempty\" query:\"option\"`\n\tOrderBy      *OrderBy                        `thrift:\"order_by,100,optional\" form:\"order_by\" json:\"order_by,omitempty\" query:\"order_by\"`\n\tCursorID     *string                         `thrift:\"cursor_id,101,optional\" form:\"cursor_id\" json:\"cursor_id,omitempty\" query:\"cursor_id\"`\n\tSize         *int32                          `thrift:\"size,102,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\tBase         *base.Base                      `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetDraftIntelligenceListRequest() *GetDraftIntelligenceListRequest {\n\treturn &GetDraftIntelligenceListRequest{}\n}\n\nfunc (p *GetDraftIntelligenceListRequest) InitDefault() {\n}\n\nfunc (p *GetDraftIntelligenceListRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar GetDraftIntelligenceListRequest_Name_DEFAULT string\n\nfunc (p *GetDraftIntelligenceListRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn GetDraftIntelligenceListRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar GetDraftIntelligenceListRequest_HasPublished_DEFAULT bool\n\nfunc (p *GetDraftIntelligenceListRequest) GetHasPublished() (v bool) {\n\tif !p.IsSetHasPublished() {\n\t\treturn GetDraftIntelligenceListRequest_HasPublished_DEFAULT\n\t}\n\treturn *p.HasPublished\n}\n\nvar GetDraftIntelligenceListRequest_Status_DEFAULT []common.IntelligenceStatus\n\nfunc (p *GetDraftIntelligenceListRequest) GetStatus() (v []common.IntelligenceStatus) {\n\tif !p.IsSetStatus() {\n\t\treturn GetDraftIntelligenceListRequest_Status_DEFAULT\n\t}\n\treturn p.Status\n}\n\nvar GetDraftIntelligenceListRequest_Types_DEFAULT []common.IntelligenceType\n\nfunc (p *GetDraftIntelligenceListRequest) GetTypes() (v []common.IntelligenceType) {\n\tif !p.IsSetTypes() {\n\t\treturn GetDraftIntelligenceListRequest_Types_DEFAULT\n\t}\n\treturn p.Types\n}\n\nvar GetDraftIntelligenceListRequest_SearchScope_DEFAULT SearchScope\n\nfunc (p *GetDraftIntelligenceListRequest) GetSearchScope() (v SearchScope) {\n\tif !p.IsSetSearchScope() {\n\t\treturn GetDraftIntelligenceListRequest_SearchScope_DEFAULT\n\t}\n\treturn *p.SearchScope\n}\n\nvar GetDraftIntelligenceListRequest_IsFav_DEFAULT bool\n\nfunc (p *GetDraftIntelligenceListRequest) GetIsFav() (v bool) {\n\tif !p.IsSetIsFav() {\n\t\treturn GetDraftIntelligenceListRequest_IsFav_DEFAULT\n\t}\n\treturn *p.IsFav\n}\n\nvar GetDraftIntelligenceListRequest_RecentlyOpen_DEFAULT bool\n\nfunc (p *GetDraftIntelligenceListRequest) GetRecentlyOpen() (v bool) {\n\tif !p.IsSetRecentlyOpen() {\n\t\treturn GetDraftIntelligenceListRequest_RecentlyOpen_DEFAULT\n\t}\n\treturn *p.RecentlyOpen\n}\n\nvar GetDraftIntelligenceListRequest_Option_DEFAULT *GetDraftIntelligenceListOption\n\nfunc (p *GetDraftIntelligenceListRequest) GetOption() (v *GetDraftIntelligenceListOption) {\n\tif !p.IsSetOption() {\n\t\treturn GetDraftIntelligenceListRequest_Option_DEFAULT\n\t}\n\treturn p.Option\n}\n\nvar GetDraftIntelligenceListRequest_OrderBy_DEFAULT OrderBy\n\nfunc (p *GetDraftIntelligenceListRequest) GetOrderBy() (v OrderBy) {\n\tif !p.IsSetOrderBy() {\n\t\treturn GetDraftIntelligenceListRequest_OrderBy_DEFAULT\n\t}\n\treturn *p.OrderBy\n}\n\nvar GetDraftIntelligenceListRequest_CursorID_DEFAULT string\n\nfunc (p *GetDraftIntelligenceListRequest) GetCursorID() (v string) {\n\tif !p.IsSetCursorID() {\n\t\treturn GetDraftIntelligenceListRequest_CursorID_DEFAULT\n\t}\n\treturn *p.CursorID\n}\n\nvar GetDraftIntelligenceListRequest_Size_DEFAULT int32\n\nfunc (p *GetDraftIntelligenceListRequest) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn GetDraftIntelligenceListRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar GetDraftIntelligenceListRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetDraftIntelligenceListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetDraftIntelligenceListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetDraftIntelligenceListRequest = map[int16]string{\n\t1:   \"space_id\",\n\t2:   \"name\",\n\t3:   \"has_published\",\n\t4:   \"status\",\n\t5:   \"types\",\n\t6:   \"search_scope\",\n\t51:  \"is_fav\",\n\t52:  \"recently_open\",\n\t99:  \"option\",\n\t100: \"order_by\",\n\t101: \"cursor_id\",\n\t102: \"size\",\n\t255: \"Base\",\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetHasPublished() bool {\n\treturn p.HasPublished != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetStatus() bool {\n\treturn p.Status != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetTypes() bool {\n\treturn p.Types != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetSearchScope() bool {\n\treturn p.SearchScope != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetIsFav() bool {\n\treturn p.IsFav != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetRecentlyOpen() bool {\n\treturn p.RecentlyOpen != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetOption() bool {\n\treturn p.Option != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetOrderBy() bool {\n\treturn p.OrderBy != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetCursorID() bool {\n\treturn p.CursorID != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 51:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField51(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 52:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField52(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 99:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField99(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 100:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField100(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 101:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField101(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 102:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField102(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDraftIntelligenceListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDraftIntelligenceListRequest[fieldId]))\n}\n\nfunc (p *GetDraftIntelligenceListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HasPublished = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]common.IntelligenceStatus, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem common.IntelligenceStatus\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = common.IntelligenceStatus(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]common.IntelligenceType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem common.IntelligenceType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = common.IntelligenceType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Types = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *SearchScope\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := SearchScope(v)\n\t\t_field = &tmp\n\t}\n\tp.SearchScope = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField51(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsFav = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField52(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RecentlyOpen = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField99(iprot thrift.TProtocol) error {\n\t_field := NewGetDraftIntelligenceListOption()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Option = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField100(iprot thrift.TProtocol) error {\n\n\tvar _field *OrderBy\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := OrderBy(v)\n\t\t_field = &tmp\n\t}\n\tp.OrderBy = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField101(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CursorID = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField102(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetDraftIntelligenceListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftIntelligenceListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField51(oprot); err != nil {\n\t\t\tfieldId = 51\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField52(oprot); err != nil {\n\t\t\tfieldId = 52\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField99(oprot); err != nil {\n\t\t\tfieldId = 99\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField100(oprot); err != nil {\n\t\t\tfieldId = 100\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField101(oprot); err != nil {\n\t\t\tfieldId = 101\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField102(oprot); err != nil {\n\t\t\tfieldId = 102\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHasPublished() {\n\t\tif err = oprot.WriteFieldBegin(\"has_published\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HasPublished); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"status\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.Status)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Status {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTypes() {\n\t\tif err = oprot.WriteFieldBegin(\"types\", thrift.LIST, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.Types)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Types {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSearchScope() {\n\t\tif err = oprot.WriteFieldBegin(\"search_scope\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SearchScope)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField51(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsFav() {\n\t\tif err = oprot.WriteFieldBegin(\"is_fav\", thrift.BOOL, 51); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsFav); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 51 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 51 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField52(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRecentlyOpen() {\n\t\tif err = oprot.WriteFieldBegin(\"recently_open\", thrift.BOOL, 52); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.RecentlyOpen); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 52 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 52 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField99(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOption() {\n\t\tif err = oprot.WriteFieldBegin(\"option\", thrift.STRUCT, 99); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Option.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 99 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 99 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField100(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderBy() {\n\t\tif err = oprot.WriteFieldBegin(\"order_by\", thrift.I32, 100); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.OrderBy)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 100 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 100 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField101(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCursorID() {\n\t\tif err = oprot.WriteFieldBegin(\"cursor_id\", thrift.STRING, 101); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CursorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 101 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 101 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField102(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 102); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 102 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 102 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDraftIntelligenceListRequest(%+v)\", *p)\n\n}\n\ntype IntelligencePublishInfo struct {\n\tPublishTime  string                  `thrift:\"publish_time,1\" form:\"publish_time\" json:\"publish_time\" query:\"publish_time\"`\n\tHasPublished bool                    `thrift:\"has_published,2\" form:\"has_published\" json:\"has_published\" query:\"has_published\"`\n\tConnectors   []*common.ConnectorInfo `thrift:\"connectors,3\" form:\"connectors\" json:\"connectors\" query:\"connectors\"`\n}\n\nfunc NewIntelligencePublishInfo() *IntelligencePublishInfo {\n\treturn &IntelligencePublishInfo{}\n}\n\nfunc (p *IntelligencePublishInfo) InitDefault() {\n}\n\nfunc (p *IntelligencePublishInfo) GetPublishTime() (v string) {\n\treturn p.PublishTime\n}\n\nfunc (p *IntelligencePublishInfo) GetHasPublished() (v bool) {\n\treturn p.HasPublished\n}\n\nfunc (p *IntelligencePublishInfo) GetConnectors() (v []*common.ConnectorInfo) {\n\treturn p.Connectors\n}\n\nvar fieldIDToName_IntelligencePublishInfo = map[int16]string{\n\t1: \"publish_time\",\n\t2: \"has_published\",\n\t3: \"connectors\",\n}\n\nfunc (p *IntelligencePublishInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligencePublishInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligencePublishInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PublishTime = _field\n\treturn nil\n}\nfunc (p *IntelligencePublishInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasPublished = _field\n\treturn nil\n}\nfunc (p *IntelligencePublishInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.ConnectorInfo, 0, size)\n\tvalues := make([]common.ConnectorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Connectors = _field\n\treturn nil\n}\n\nfunc (p *IntelligencePublishInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"IntelligencePublishInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligencePublishInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_time\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PublishTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *IntelligencePublishInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_published\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasPublished); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *IntelligencePublishInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connectors\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Connectors)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Connectors {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *IntelligencePublishInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligencePublishInfo(%+v)\", *p)\n\n}\n\ntype IntelligencePermissionInfo struct {\n\tInCollaboration bool `thrift:\"in_collaboration,1\" form:\"in_collaboration\" json:\"in_collaboration\" query:\"in_collaboration\"`\n\t// can delete\n\tCanDelete bool `thrift:\"can_delete,2\" form:\"can_delete\" json:\"can_delete\" query:\"can_delete\"`\n\t// Whether the current user can view it, the current judgment logic is whether the user is in the space where the bot is located\n\tCanView bool `thrift:\"can_view,3\" form:\"can_view\" json:\"can_view\" query:\"can_view\"`\n}\n\nfunc NewIntelligencePermissionInfo() *IntelligencePermissionInfo {\n\treturn &IntelligencePermissionInfo{}\n}\n\nfunc (p *IntelligencePermissionInfo) InitDefault() {\n}\n\nfunc (p *IntelligencePermissionInfo) GetInCollaboration() (v bool) {\n\treturn p.InCollaboration\n}\n\nfunc (p *IntelligencePermissionInfo) GetCanDelete() (v bool) {\n\treturn p.CanDelete\n}\n\nfunc (p *IntelligencePermissionInfo) GetCanView() (v bool) {\n\treturn p.CanView\n}\n\nvar fieldIDToName_IntelligencePermissionInfo = map[int16]string{\n\t1: \"in_collaboration\",\n\t2: \"can_delete\",\n\t3: \"can_view\",\n}\n\nfunc (p *IntelligencePermissionInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligencePermissionInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligencePermissionInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.InCollaboration = _field\n\treturn nil\n}\nfunc (p *IntelligencePermissionInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanDelete = _field\n\treturn nil\n}\nfunc (p *IntelligencePermissionInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanView = _field\n\treturn nil\n}\n\nfunc (p *IntelligencePermissionInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"IntelligencePermissionInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligencePermissionInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"in_collaboration\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.InCollaboration); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *IntelligencePermissionInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_delete\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanDelete); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *IntelligencePermissionInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_view\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanView); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *IntelligencePermissionInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligencePermissionInfo(%+v)\", *p)\n\n}\n\ntype FavoriteInfo struct {\n\t// Whether to collect; use the collection list\n\tIsFav bool `thrift:\"is_fav,1\" form:\"is_fav\" json:\"is_fav\" query:\"is_fav\"`\n\t// Collection time; collection list use\n\tFavTime string `thrift:\"fav_time,2\" form:\"fav_time\" json:\"fav_time\" query:\"fav_time\"`\n}\n\nfunc NewFavoriteInfo() *FavoriteInfo {\n\treturn &FavoriteInfo{}\n}\n\nfunc (p *FavoriteInfo) InitDefault() {\n}\n\nfunc (p *FavoriteInfo) GetIsFav() (v bool) {\n\treturn p.IsFav\n}\n\nfunc (p *FavoriteInfo) GetFavTime() (v string) {\n\treturn p.FavTime\n}\n\nvar fieldIDToName_FavoriteInfo = map[int16]string{\n\t1: \"is_fav\",\n\t2: \"fav_time\",\n}\n\nfunc (p *FavoriteInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FavoriteInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FavoriteInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsFav = _field\n\treturn nil\n}\nfunc (p *FavoriteInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FavTime = _field\n\treturn nil\n}\n\nfunc (p *FavoriteInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FavoriteInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FavoriteInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_fav\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsFav); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FavoriteInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"fav_time\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FavTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *FavoriteInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FavoriteInfo(%+v)\", *p)\n\n}\n\ntype OtherInfo struct {\n\t// Last opened time; used when recently opened filter\n\tRecentlyOpenTime string `thrift:\"recently_open_time,1\" form:\"recently_open_time\" json:\"recently_open_time\" query:\"recently_open_time\"`\n\t// Only bot type returns\n\tBotMode BotMode `thrift:\"bot_mode,2\" form:\"bot_mode\" json:\"bot_mode\" query:\"bot_mode\"`\n}\n\nfunc NewOtherInfo() *OtherInfo {\n\treturn &OtherInfo{}\n}\n\nfunc (p *OtherInfo) InitDefault() {\n}\n\nfunc (p *OtherInfo) GetRecentlyOpenTime() (v string) {\n\treturn p.RecentlyOpenTime\n}\n\nfunc (p *OtherInfo) GetBotMode() (v BotMode) {\n\treturn p.BotMode\n}\n\nvar fieldIDToName_OtherInfo = map[int16]string{\n\t1: \"recently_open_time\",\n\t2: \"bot_mode\",\n}\n\nfunc (p *OtherInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OtherInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OtherInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RecentlyOpenTime = _field\n\treturn nil\n}\nfunc (p *OtherInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field BotMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotMode(v)\n\t}\n\tp.BotMode = _field\n\treturn nil\n}\n\nfunc (p *OtherInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OtherInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OtherInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"recently_open_time\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.RecentlyOpenTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OtherInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_mode\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BotMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *OtherInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OtherInfo(%+v)\", *p)\n\n}\n\ntype Intelligence struct {\n\t// Basic information\n\tBasicInfo *common.IntelligenceBasicInfo `thrift:\"basic_info,1\" form:\"basic_info\" json:\"basic_info\" query:\"basic_info\"`\n\t// Agent Type\n\tType common.IntelligenceType `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n\t// Agent publishes information, optional\n\tPublishInfo *IntelligencePublishInfo `thrift:\"publish_info,3\" form:\"publish_info\" json:\"publish_info\" query:\"publish_info\"`\n\t// Agent owner information, optional\n\tOwnerInfo *common.User `thrift:\"owner_info,4\" form:\"owner_info\" json:\"owner_info\" query:\"owner_info\"`\n\t// The current user's permission information to the agent, optional\n\tPermissionInfo *IntelligencePermissionInfo `thrift:\"permission_info,5\" form:\"permission_info\" json:\"permission_info\" query:\"permission_info\"`\n}\n\nfunc NewIntelligence() *Intelligence {\n\treturn &Intelligence{}\n}\n\nfunc (p *Intelligence) InitDefault() {\n}\n\nvar Intelligence_BasicInfo_DEFAULT *common.IntelligenceBasicInfo\n\nfunc (p *Intelligence) GetBasicInfo() (v *common.IntelligenceBasicInfo) {\n\tif !p.IsSetBasicInfo() {\n\t\treturn Intelligence_BasicInfo_DEFAULT\n\t}\n\treturn p.BasicInfo\n}\n\nfunc (p *Intelligence) GetType() (v common.IntelligenceType) {\n\treturn p.Type\n}\n\nvar Intelligence_PublishInfo_DEFAULT *IntelligencePublishInfo\n\nfunc (p *Intelligence) GetPublishInfo() (v *IntelligencePublishInfo) {\n\tif !p.IsSetPublishInfo() {\n\t\treturn Intelligence_PublishInfo_DEFAULT\n\t}\n\treturn p.PublishInfo\n}\n\nvar Intelligence_OwnerInfo_DEFAULT *common.User\n\nfunc (p *Intelligence) GetOwnerInfo() (v *common.User) {\n\tif !p.IsSetOwnerInfo() {\n\t\treturn Intelligence_OwnerInfo_DEFAULT\n\t}\n\treturn p.OwnerInfo\n}\n\nvar Intelligence_PermissionInfo_DEFAULT *IntelligencePermissionInfo\n\nfunc (p *Intelligence) GetPermissionInfo() (v *IntelligencePermissionInfo) {\n\tif !p.IsSetPermissionInfo() {\n\t\treturn Intelligence_PermissionInfo_DEFAULT\n\t}\n\treturn p.PermissionInfo\n}\n\nvar fieldIDToName_Intelligence = map[int16]string{\n\t1: \"basic_info\",\n\t2: \"type\",\n\t3: \"publish_info\",\n\t4: \"owner_info\",\n\t5: \"permission_info\",\n}\n\nfunc (p *Intelligence) IsSetBasicInfo() bool {\n\treturn p.BasicInfo != nil\n}\n\nfunc (p *Intelligence) IsSetPublishInfo() bool {\n\treturn p.PublishInfo != nil\n}\n\nfunc (p *Intelligence) IsSetOwnerInfo() bool {\n\treturn p.OwnerInfo != nil\n}\n\nfunc (p *Intelligence) IsSetPermissionInfo() bool {\n\treturn p.PermissionInfo != nil\n}\n\nfunc (p *Intelligence) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Intelligence[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Intelligence) ReadField1(iprot thrift.TProtocol) error {\n\t_field := common.NewIntelligenceBasicInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BasicInfo = _field\n\treturn nil\n}\nfunc (p *Intelligence) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field common.IntelligenceType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.IntelligenceType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *Intelligence) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewIntelligencePublishInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PublishInfo = _field\n\treturn nil\n}\nfunc (p *Intelligence) ReadField4(iprot thrift.TProtocol) error {\n\t_field := common.NewUser()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OwnerInfo = _field\n\treturn nil\n}\nfunc (p *Intelligence) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewIntelligencePermissionInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PermissionInfo = _field\n\treturn nil\n}\n\nfunc (p *Intelligence) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Intelligence\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Intelligence) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"basic_info\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BasicInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Intelligence) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Intelligence) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_info\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.PublishInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Intelligence) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"owner_info\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.OwnerInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Intelligence) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"permission_info\", thrift.STRUCT, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.PermissionInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *Intelligence) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Intelligence(%+v)\", *p)\n\n}\n\n// For the front end\ntype IntelligenceData struct {\n\tBasicInfo       *common.IntelligenceBasicInfo `thrift:\"basic_info,1\" form:\"basic_info\" json:\"basic_info\" query:\"basic_info\"`\n\tType            common.IntelligenceType       `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n\tPublishInfo     *IntelligencePublishInfo      `thrift:\"publish_info,3\" form:\"publish_info\" json:\"publish_info\" query:\"publish_info\"`\n\tPermissionInfo  *IntelligencePermissionInfo   `thrift:\"permission_info,4\" form:\"permission_info\" json:\"permission_info\" query:\"permission_info\"`\n\tOwnerInfo       *common.User                  `thrift:\"owner_info,5\" form:\"owner_info\" json:\"owner_info\" query:\"owner_info\"`\n\tLatestAuditInfo *common.AuditInfo             `thrift:\"latest_audit_info,6\" form:\"latest_audit_info\" json:\"latest_audit_info\" query:\"latest_audit_info\"`\n\tFavoriteInfo    *FavoriteInfo                 `thrift:\"favorite_info,7\" form:\"favorite_info\" json:\"favorite_info\" query:\"favorite_info\"`\n\tOtherInfo       *OtherInfo                    `thrift:\"other_info,50\" form:\"other_info\" json:\"other_info\" query:\"other_info\"`\n}\n\nfunc NewIntelligenceData() *IntelligenceData {\n\treturn &IntelligenceData{}\n}\n\nfunc (p *IntelligenceData) InitDefault() {\n}\n\nvar IntelligenceData_BasicInfo_DEFAULT *common.IntelligenceBasicInfo\n\nfunc (p *IntelligenceData) GetBasicInfo() (v *common.IntelligenceBasicInfo) {\n\tif !p.IsSetBasicInfo() {\n\t\treturn IntelligenceData_BasicInfo_DEFAULT\n\t}\n\treturn p.BasicInfo\n}\n\nfunc (p *IntelligenceData) GetType() (v common.IntelligenceType) {\n\treturn p.Type\n}\n\nvar IntelligenceData_PublishInfo_DEFAULT *IntelligencePublishInfo\n\nfunc (p *IntelligenceData) GetPublishInfo() (v *IntelligencePublishInfo) {\n\tif !p.IsSetPublishInfo() {\n\t\treturn IntelligenceData_PublishInfo_DEFAULT\n\t}\n\treturn p.PublishInfo\n}\n\nvar IntelligenceData_PermissionInfo_DEFAULT *IntelligencePermissionInfo\n\nfunc (p *IntelligenceData) GetPermissionInfo() (v *IntelligencePermissionInfo) {\n\tif !p.IsSetPermissionInfo() {\n\t\treturn IntelligenceData_PermissionInfo_DEFAULT\n\t}\n\treturn p.PermissionInfo\n}\n\nvar IntelligenceData_OwnerInfo_DEFAULT *common.User\n\nfunc (p *IntelligenceData) GetOwnerInfo() (v *common.User) {\n\tif !p.IsSetOwnerInfo() {\n\t\treturn IntelligenceData_OwnerInfo_DEFAULT\n\t}\n\treturn p.OwnerInfo\n}\n\nvar IntelligenceData_LatestAuditInfo_DEFAULT *common.AuditInfo\n\nfunc (p *IntelligenceData) GetLatestAuditInfo() (v *common.AuditInfo) {\n\tif !p.IsSetLatestAuditInfo() {\n\t\treturn IntelligenceData_LatestAuditInfo_DEFAULT\n\t}\n\treturn p.LatestAuditInfo\n}\n\nvar IntelligenceData_FavoriteInfo_DEFAULT *FavoriteInfo\n\nfunc (p *IntelligenceData) GetFavoriteInfo() (v *FavoriteInfo) {\n\tif !p.IsSetFavoriteInfo() {\n\t\treturn IntelligenceData_FavoriteInfo_DEFAULT\n\t}\n\treturn p.FavoriteInfo\n}\n\nvar IntelligenceData_OtherInfo_DEFAULT *OtherInfo\n\nfunc (p *IntelligenceData) GetOtherInfo() (v *OtherInfo) {\n\tif !p.IsSetOtherInfo() {\n\t\treturn IntelligenceData_OtherInfo_DEFAULT\n\t}\n\treturn p.OtherInfo\n}\n\nvar fieldIDToName_IntelligenceData = map[int16]string{\n\t1:  \"basic_info\",\n\t2:  \"type\",\n\t3:  \"publish_info\",\n\t4:  \"permission_info\",\n\t5:  \"owner_info\",\n\t6:  \"latest_audit_info\",\n\t7:  \"favorite_info\",\n\t50: \"other_info\",\n}\n\nfunc (p *IntelligenceData) IsSetBasicInfo() bool {\n\treturn p.BasicInfo != nil\n}\n\nfunc (p *IntelligenceData) IsSetPublishInfo() bool {\n\treturn p.PublishInfo != nil\n}\n\nfunc (p *IntelligenceData) IsSetPermissionInfo() bool {\n\treturn p.PermissionInfo != nil\n}\n\nfunc (p *IntelligenceData) IsSetOwnerInfo() bool {\n\treturn p.OwnerInfo != nil\n}\n\nfunc (p *IntelligenceData) IsSetLatestAuditInfo() bool {\n\treturn p.LatestAuditInfo != nil\n}\n\nfunc (p *IntelligenceData) IsSetFavoriteInfo() bool {\n\treturn p.FavoriteInfo != nil\n}\n\nfunc (p *IntelligenceData) IsSetOtherInfo() bool {\n\treturn p.OtherInfo != nil\n}\n\nfunc (p *IntelligenceData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 50:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField50(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IntelligenceData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := common.NewIntelligenceBasicInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BasicInfo = _field\n\treturn nil\n}\nfunc (p *IntelligenceData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field common.IntelligenceType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.IntelligenceType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *IntelligenceData) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewIntelligencePublishInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PublishInfo = _field\n\treturn nil\n}\nfunc (p *IntelligenceData) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewIntelligencePermissionInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PermissionInfo = _field\n\treturn nil\n}\nfunc (p *IntelligenceData) ReadField5(iprot thrift.TProtocol) error {\n\t_field := common.NewUser()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OwnerInfo = _field\n\treturn nil\n}\nfunc (p *IntelligenceData) ReadField6(iprot thrift.TProtocol) error {\n\t_field := common.NewAuditInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.LatestAuditInfo = _field\n\treturn nil\n}\nfunc (p *IntelligenceData) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewFavoriteInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FavoriteInfo = _field\n\treturn nil\n}\nfunc (p *IntelligenceData) ReadField50(iprot thrift.TProtocol) error {\n\t_field := NewOtherInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OtherInfo = _field\n\treturn nil\n}\n\nfunc (p *IntelligenceData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"IntelligenceData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField50(oprot); err != nil {\n\t\t\tfieldId = 50\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IntelligenceData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"basic_info\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BasicInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *IntelligenceData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *IntelligenceData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_info\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.PublishInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *IntelligenceData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"permission_info\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.PermissionInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *IntelligenceData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"owner_info\", thrift.STRUCT, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.OwnerInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *IntelligenceData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"latest_audit_info\", thrift.STRUCT, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.LatestAuditInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *IntelligenceData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"favorite_info\", thrift.STRUCT, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.FavoriteInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *IntelligenceData) writeField50(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"other_info\", thrift.STRUCT, 50); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.OtherInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 end error: \", p), err)\n}\n\nfunc (p *IntelligenceData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IntelligenceData(%+v)\", *p)\n\n}\n\ntype DraftIntelligenceListData struct {\n\tIntelligences []*IntelligenceData `thrift:\"intelligences,1\" form:\"intelligences\" json:\"intelligences\" query:\"intelligences\"`\n\tTotal         int32               `thrift:\"total,2\" form:\"total\" json:\"total\" query:\"total\"`\n\tHasMore       bool                `thrift:\"has_more,3\" form:\"has_more\" json:\"has_more\" query:\"has_more\"`\n\tNextCursorID  string              `thrift:\"next_cursor_id,4\" form:\"next_cursor_id\" json:\"next_cursor_id\" query:\"next_cursor_id\"`\n}\n\nfunc NewDraftIntelligenceListData() *DraftIntelligenceListData {\n\treturn &DraftIntelligenceListData{}\n}\n\nfunc (p *DraftIntelligenceListData) InitDefault() {\n}\n\nfunc (p *DraftIntelligenceListData) GetIntelligences() (v []*IntelligenceData) {\n\treturn p.Intelligences\n}\n\nfunc (p *DraftIntelligenceListData) GetTotal() (v int32) {\n\treturn p.Total\n}\n\nfunc (p *DraftIntelligenceListData) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nfunc (p *DraftIntelligenceListData) GetNextCursorID() (v string) {\n\treturn p.NextCursorID\n}\n\nvar fieldIDToName_DraftIntelligenceListData = map[int16]string{\n\t1: \"intelligences\",\n\t2: \"total\",\n\t3: \"has_more\",\n\t4: \"next_cursor_id\",\n}\n\nfunc (p *DraftIntelligenceListData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftIntelligenceListData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DraftIntelligenceListData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*IntelligenceData, 0, size)\n\tvalues := make([]IntelligenceData, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Intelligences = _field\n\treturn nil\n}\nfunc (p *DraftIntelligenceListData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\nfunc (p *DraftIntelligenceListData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *DraftIntelligenceListData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NextCursorID = _field\n\treturn nil\n}\n\nfunc (p *DraftIntelligenceListData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftIntelligenceListData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftIntelligenceListData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"intelligences\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Intelligences)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Intelligences {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftIntelligenceListData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DraftIntelligenceListData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_more\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DraftIntelligenceListData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"next_cursor_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NextCursorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *DraftIntelligenceListData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftIntelligenceListData(%+v)\", *p)\n\n}\n\ntype GetDraftIntelligenceListResponse struct {\n\tData     *DraftIntelligenceListData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int32                      `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                     `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp             `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetDraftIntelligenceListResponse() *GetDraftIntelligenceListResponse {\n\treturn &GetDraftIntelligenceListResponse{}\n}\n\nfunc (p *GetDraftIntelligenceListResponse) InitDefault() {\n}\n\nvar GetDraftIntelligenceListResponse_Data_DEFAULT *DraftIntelligenceListData\n\nfunc (p *GetDraftIntelligenceListResponse) GetData() (v *DraftIntelligenceListData) {\n\tif !p.IsSetData() {\n\t\treturn GetDraftIntelligenceListResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetDraftIntelligenceListResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetDraftIntelligenceListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetDraftIntelligenceListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetDraftIntelligenceListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetDraftIntelligenceListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetDraftIntelligenceListResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetDraftIntelligenceListResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetDraftIntelligenceListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetDraftIntelligenceListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDraftIntelligenceListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceListResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDraftIntelligenceListData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetDraftIntelligenceListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftIntelligenceListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDraftIntelligenceListResponse(%+v)\", *p)\n\n}\n\ntype GetDraftIntelligenceInfoRequest struct {\n\tIntelligenceID   int64                   `thrift:\"intelligence_id,1\" form:\"intelligence_id\" json:\"intelligence_id,string\" query:\"intelligence_id\"`\n\tIntelligenceType common.IntelligenceType `thrift:\"intelligence_type,2\" form:\"intelligence_type\" json:\"intelligence_type\" query:\"intelligence_type\"`\n\t// Pass in when previewing the version\n\tVersion *int64     `thrift:\"version,3,optional\" form:\"version\" json:\"version,string,omitempty\" query:\"version\"`\n\tBase    *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetDraftIntelligenceInfoRequest() *GetDraftIntelligenceInfoRequest {\n\treturn &GetDraftIntelligenceInfoRequest{}\n}\n\nfunc (p *GetDraftIntelligenceInfoRequest) InitDefault() {\n}\n\nfunc (p *GetDraftIntelligenceInfoRequest) GetIntelligenceID() (v int64) {\n\treturn p.IntelligenceID\n}\n\nfunc (p *GetDraftIntelligenceInfoRequest) GetIntelligenceType() (v common.IntelligenceType) {\n\treturn p.IntelligenceType\n}\n\nvar GetDraftIntelligenceInfoRequest_Version_DEFAULT int64\n\nfunc (p *GetDraftIntelligenceInfoRequest) GetVersion() (v int64) {\n\tif !p.IsSetVersion() {\n\t\treturn GetDraftIntelligenceInfoRequest_Version_DEFAULT\n\t}\n\treturn *p.Version\n}\n\nvar GetDraftIntelligenceInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetDraftIntelligenceInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetDraftIntelligenceInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetDraftIntelligenceInfoRequest = map[int16]string{\n\t1:   \"intelligence_id\",\n\t2:   \"intelligence_type\",\n\t3:   \"version\",\n\t255: \"Base\",\n}\n\nfunc (p *GetDraftIntelligenceInfoRequest) IsSetVersion() bool {\n\treturn p.Version != nil\n}\n\nfunc (p *GetDraftIntelligenceInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetDraftIntelligenceInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDraftIntelligenceInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IntelligenceID = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field common.IntelligenceType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.IntelligenceType(v)\n\t}\n\tp.IntelligenceType = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceInfoRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetDraftIntelligenceInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftIntelligenceInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"intelligence_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.IntelligenceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"intelligence_type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.IntelligenceType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceInfoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"version\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Version); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDraftIntelligenceInfoRequest(%+v)\", *p)\n\n}\n\ntype GetDraftIntelligenceInfoData struct {\n\tIntelligenceType common.IntelligenceType       `thrift:\"intelligence_type,1\" form:\"intelligence_type\" json:\"intelligence_type\" query:\"intelligence_type\"`\n\tBasicInfo        *common.IntelligenceBasicInfo `thrift:\"basic_info,2\" form:\"basic_info\" json:\"basic_info\" query:\"basic_info\"`\n\tPublishInfo      *IntelligencePublishInfo      `thrift:\"publish_info,3,optional\" form:\"publish_info\" json:\"publish_info,omitempty\" query:\"publish_info\"`\n\tOwnerInfo        *common.User                  `thrift:\"owner_info,4,optional\" form:\"owner_info\" json:\"owner_info,omitempty\" query:\"owner_info\"`\n}\n\nfunc NewGetDraftIntelligenceInfoData() *GetDraftIntelligenceInfoData {\n\treturn &GetDraftIntelligenceInfoData{}\n}\n\nfunc (p *GetDraftIntelligenceInfoData) InitDefault() {\n}\n\nfunc (p *GetDraftIntelligenceInfoData) GetIntelligenceType() (v common.IntelligenceType) {\n\treturn p.IntelligenceType\n}\n\nvar GetDraftIntelligenceInfoData_BasicInfo_DEFAULT *common.IntelligenceBasicInfo\n\nfunc (p *GetDraftIntelligenceInfoData) GetBasicInfo() (v *common.IntelligenceBasicInfo) {\n\tif !p.IsSetBasicInfo() {\n\t\treturn GetDraftIntelligenceInfoData_BasicInfo_DEFAULT\n\t}\n\treturn p.BasicInfo\n}\n\nvar GetDraftIntelligenceInfoData_PublishInfo_DEFAULT *IntelligencePublishInfo\n\nfunc (p *GetDraftIntelligenceInfoData) GetPublishInfo() (v *IntelligencePublishInfo) {\n\tif !p.IsSetPublishInfo() {\n\t\treturn GetDraftIntelligenceInfoData_PublishInfo_DEFAULT\n\t}\n\treturn p.PublishInfo\n}\n\nvar GetDraftIntelligenceInfoData_OwnerInfo_DEFAULT *common.User\n\nfunc (p *GetDraftIntelligenceInfoData) GetOwnerInfo() (v *common.User) {\n\tif !p.IsSetOwnerInfo() {\n\t\treturn GetDraftIntelligenceInfoData_OwnerInfo_DEFAULT\n\t}\n\treturn p.OwnerInfo\n}\n\nvar fieldIDToName_GetDraftIntelligenceInfoData = map[int16]string{\n\t1: \"intelligence_type\",\n\t2: \"basic_info\",\n\t3: \"publish_info\",\n\t4: \"owner_info\",\n}\n\nfunc (p *GetDraftIntelligenceInfoData) IsSetBasicInfo() bool {\n\treturn p.BasicInfo != nil\n}\n\nfunc (p *GetDraftIntelligenceInfoData) IsSetPublishInfo() bool {\n\treturn p.PublishInfo != nil\n}\n\nfunc (p *GetDraftIntelligenceInfoData) IsSetOwnerInfo() bool {\n\treturn p.OwnerInfo != nil\n}\n\nfunc (p *GetDraftIntelligenceInfoData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDraftIntelligenceInfoData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceInfoData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field common.IntelligenceType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.IntelligenceType(v)\n\t}\n\tp.IntelligenceType = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceInfoData) ReadField2(iprot thrift.TProtocol) error {\n\t_field := common.NewIntelligenceBasicInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BasicInfo = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceInfoData) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewIntelligencePublishInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PublishInfo = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceInfoData) ReadField4(iprot thrift.TProtocol) error {\n\t_field := common.NewUser()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OwnerInfo = _field\n\treturn nil\n}\n\nfunc (p *GetDraftIntelligenceInfoData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftIntelligenceInfoData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceInfoData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"intelligence_type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.IntelligenceType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceInfoData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"basic_info\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BasicInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceInfoData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_info\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.PublishInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceInfoData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOwnerInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"owner_info\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.OwnerInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceInfoData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDraftIntelligenceInfoData(%+v)\", *p)\n\n}\n\ntype GetDraftIntelligenceInfoResponse struct {\n\tData     *GetDraftIntelligenceInfoData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int32                         `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                        `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp                `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetDraftIntelligenceInfoResponse() *GetDraftIntelligenceInfoResponse {\n\treturn &GetDraftIntelligenceInfoResponse{}\n}\n\nfunc (p *GetDraftIntelligenceInfoResponse) InitDefault() {\n}\n\nvar GetDraftIntelligenceInfoResponse_Data_DEFAULT *GetDraftIntelligenceInfoData\n\nfunc (p *GetDraftIntelligenceInfoResponse) GetData() (v *GetDraftIntelligenceInfoData) {\n\tif !p.IsSetData() {\n\t\treturn GetDraftIntelligenceInfoResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetDraftIntelligenceInfoResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetDraftIntelligenceInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetDraftIntelligenceInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetDraftIntelligenceInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetDraftIntelligenceInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetDraftIntelligenceInfoResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetDraftIntelligenceInfoResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetDraftIntelligenceInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetDraftIntelligenceInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDraftIntelligenceInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDraftIntelligenceInfoData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceInfoResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceInfoResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetDraftIntelligenceInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetDraftIntelligenceInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftIntelligenceInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceInfoResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceInfoResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetDraftIntelligenceInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDraftIntelligenceInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDraftIntelligenceInfoResponse(%+v)\", *p)\n\n}\n\ntype GetUserRecentlyEditIntelligenceRequest struct {\n\tSize  int32                     `thrift:\"size,1\" form:\"size\" json:\"size\" query:\"size\"`\n\tTypes []common.IntelligenceType `thrift:\"types,2,optional\" form:\"types\" json:\"types,omitempty\" query:\"types\"`\n\t// Enterprise ID\n\tEnterpriseID *string `thrift:\"enterprise_id,3,optional\" form:\"enterprise_id\" json:\"enterprise_id,omitempty\" query:\"enterprise_id\"`\n\t// organization id\n\tOrganizationID *string    `thrift:\"organization_id,4,optional\" form:\"organization_id\" json:\"organization_id,omitempty\" query:\"organization_id\"`\n\tBase           *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetUserRecentlyEditIntelligenceRequest() *GetUserRecentlyEditIntelligenceRequest {\n\treturn &GetUserRecentlyEditIntelligenceRequest{}\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) InitDefault() {\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) GetSize() (v int32) {\n\treturn p.Size\n}\n\nvar GetUserRecentlyEditIntelligenceRequest_Types_DEFAULT []common.IntelligenceType\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) GetTypes() (v []common.IntelligenceType) {\n\tif !p.IsSetTypes() {\n\t\treturn GetUserRecentlyEditIntelligenceRequest_Types_DEFAULT\n\t}\n\treturn p.Types\n}\n\nvar GetUserRecentlyEditIntelligenceRequest_EnterpriseID_DEFAULT string\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) GetEnterpriseID() (v string) {\n\tif !p.IsSetEnterpriseID() {\n\t\treturn GetUserRecentlyEditIntelligenceRequest_EnterpriseID_DEFAULT\n\t}\n\treturn *p.EnterpriseID\n}\n\nvar GetUserRecentlyEditIntelligenceRequest_OrganizationID_DEFAULT string\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) GetOrganizationID() (v string) {\n\tif !p.IsSetOrganizationID() {\n\t\treturn GetUserRecentlyEditIntelligenceRequest_OrganizationID_DEFAULT\n\t}\n\treturn *p.OrganizationID\n}\n\nvar GetUserRecentlyEditIntelligenceRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetUserRecentlyEditIntelligenceRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetUserRecentlyEditIntelligenceRequest = map[int16]string{\n\t1:   \"size\",\n\t2:   \"types\",\n\t3:   \"enterprise_id\",\n\t4:   \"organization_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) IsSetTypes() bool {\n\treturn p.Types != nil\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) IsSetEnterpriseID() bool {\n\treturn p.EnterpriseID != nil\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) IsSetOrganizationID() bool {\n\treturn p.OrganizationID != nil\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUserRecentlyEditIntelligenceRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *GetUserRecentlyEditIntelligenceRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]common.IntelligenceType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem common.IntelligenceType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = common.IntelligenceType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Types = _field\n\treturn nil\n}\nfunc (p *GetUserRecentlyEditIntelligenceRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EnterpriseID = _field\n\treturn nil\n}\nfunc (p *GetUserRecentlyEditIntelligenceRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OrganizationID = _field\n\treturn nil\n}\nfunc (p *GetUserRecentlyEditIntelligenceRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserRecentlyEditIntelligenceRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Size); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUserRecentlyEditIntelligenceRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTypes() {\n\t\tif err = oprot.WriteFieldBegin(\"types\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.Types)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Types {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetUserRecentlyEditIntelligenceRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEnterpriseID() {\n\t\tif err = oprot.WriteFieldBegin(\"enterprise_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.EnterpriseID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetUserRecentlyEditIntelligenceRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrganizationID() {\n\t\tif err = oprot.WriteFieldBegin(\"organization_id\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OrganizationID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetUserRecentlyEditIntelligenceRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUserRecentlyEditIntelligenceRequest(%+v)\", *p)\n\n}\n\ntype GetUserRecentlyEditIntelligenceData struct {\n\tIntelligenceInfoList []*IntelligenceData `thrift:\"intelligence_info_list,1\" form:\"intelligence_info_list\" json:\"intelligence_info_list\" query:\"intelligence_info_list\"`\n}\n\nfunc NewGetUserRecentlyEditIntelligenceData() *GetUserRecentlyEditIntelligenceData {\n\treturn &GetUserRecentlyEditIntelligenceData{}\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceData) InitDefault() {\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceData) GetIntelligenceInfoList() (v []*IntelligenceData) {\n\treturn p.IntelligenceInfoList\n}\n\nvar fieldIDToName_GetUserRecentlyEditIntelligenceData = map[int16]string{\n\t1: \"intelligence_info_list\",\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUserRecentlyEditIntelligenceData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*IntelligenceData, 0, size)\n\tvalues := make([]IntelligenceData, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.IntelligenceInfoList = _field\n\treturn nil\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserRecentlyEditIntelligenceData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"intelligence_info_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.IntelligenceInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.IntelligenceInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUserRecentlyEditIntelligenceData(%+v)\", *p)\n\n}\n\ntype GetUserRecentlyEditIntelligenceResponse struct {\n\tData     *GetUserRecentlyEditIntelligenceData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int32                                `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                               `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp                       `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetUserRecentlyEditIntelligenceResponse() *GetUserRecentlyEditIntelligenceResponse {\n\treturn &GetUserRecentlyEditIntelligenceResponse{}\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) InitDefault() {\n}\n\nvar GetUserRecentlyEditIntelligenceResponse_Data_DEFAULT *GetUserRecentlyEditIntelligenceData\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) GetData() (v *GetUserRecentlyEditIntelligenceData) {\n\tif !p.IsSetData() {\n\t\treturn GetUserRecentlyEditIntelligenceResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetUserRecentlyEditIntelligenceResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetUserRecentlyEditIntelligenceResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetUserRecentlyEditIntelligenceResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUserRecentlyEditIntelligenceResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetUserRecentlyEditIntelligenceData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetUserRecentlyEditIntelligenceResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetUserRecentlyEditIntelligenceResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetUserRecentlyEditIntelligenceResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserRecentlyEditIntelligenceResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUserRecentlyEditIntelligenceResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetUserRecentlyEditIntelligenceResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetUserRecentlyEditIntelligenceResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetUserRecentlyEditIntelligenceResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUserRecentlyEditIntelligenceResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/app/intelligence/task/task.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage task\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype DraftProjectInnerTaskListRequest struct {\n\tProjectID int64      `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,string,required\" query:\"project_id,required\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDraftProjectInnerTaskListRequest() *DraftProjectInnerTaskListRequest {\n\treturn &DraftProjectInnerTaskListRequest{}\n}\n\nfunc (p *DraftProjectInnerTaskListRequest) InitDefault() {\n}\n\nfunc (p *DraftProjectInnerTaskListRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar DraftProjectInnerTaskListRequest_Base_DEFAULT *base.Base\n\nfunc (p *DraftProjectInnerTaskListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DraftProjectInnerTaskListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DraftProjectInnerTaskListRequest = map[int16]string{\n\t1:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *DraftProjectInnerTaskListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DraftProjectInnerTaskListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectInnerTaskListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DraftProjectInnerTaskListRequest[fieldId]))\n}\n\nfunc (p *DraftProjectInnerTaskListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *DraftProjectInnerTaskListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectInnerTaskListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectInnerTaskListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectInnerTaskListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftProjectInnerTaskListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DraftProjectInnerTaskListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectInnerTaskListRequest(%+v)\", *p)\n\n}\n\ntype DraftProjectInnerTaskListResponse struct {\n\tData     *DraftProjectInnerTaskListData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp                 `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDraftProjectInnerTaskListResponse() *DraftProjectInnerTaskListResponse {\n\treturn &DraftProjectInnerTaskListResponse{}\n}\n\nfunc (p *DraftProjectInnerTaskListResponse) InitDefault() {\n}\n\nvar DraftProjectInnerTaskListResponse_Data_DEFAULT *DraftProjectInnerTaskListData\n\nfunc (p *DraftProjectInnerTaskListResponse) GetData() (v *DraftProjectInnerTaskListData) {\n\tif !p.IsSetData() {\n\t\treturn DraftProjectInnerTaskListResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *DraftProjectInnerTaskListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DraftProjectInnerTaskListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DraftProjectInnerTaskListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DraftProjectInnerTaskListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DraftProjectInnerTaskListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DraftProjectInnerTaskListResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DraftProjectInnerTaskListResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *DraftProjectInnerTaskListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DraftProjectInnerTaskListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectInnerTaskListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DraftProjectInnerTaskListResponse[fieldId]))\n}\n\nfunc (p *DraftProjectInnerTaskListResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDraftProjectInnerTaskListData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *DraftProjectInnerTaskListResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DraftProjectInnerTaskListResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DraftProjectInnerTaskListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectInnerTaskListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectInnerTaskListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectInnerTaskListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DraftProjectInnerTaskListResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DraftProjectInnerTaskListResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DraftProjectInnerTaskListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DraftProjectInnerTaskListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectInnerTaskListResponse(%+v)\", *p)\n\n}\n\ntype DraftProjectInnerTaskListData struct {\n\tTaskList []*common.ProjectInnerTaskInfo `thrift:\"task_list,1\" form:\"task_list\" json:\"task_list\" query:\"task_list\"`\n}\n\nfunc NewDraftProjectInnerTaskListData() *DraftProjectInnerTaskListData {\n\treturn &DraftProjectInnerTaskListData{}\n}\n\nfunc (p *DraftProjectInnerTaskListData) InitDefault() {\n}\n\nfunc (p *DraftProjectInnerTaskListData) GetTaskList() (v []*common.ProjectInnerTaskInfo) {\n\treturn p.TaskList\n}\n\nvar fieldIDToName_DraftProjectInnerTaskListData = map[int16]string{\n\t1: \"task_list\",\n}\n\nfunc (p *DraftProjectInnerTaskListData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DraftProjectInnerTaskListData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectInnerTaskListData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.ProjectInnerTaskInfo, 0, size)\n\tvalues := make([]common.ProjectInnerTaskInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TaskList = _field\n\treturn nil\n}\n\nfunc (p *DraftProjectInnerTaskListData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DraftProjectInnerTaskListData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DraftProjectInnerTaskListData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"task_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.TaskList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.TaskList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DraftProjectInnerTaskListData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DraftProjectInnerTaskListData(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/base/base.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage base\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype TrafficEnv struct {\n\tOpen bool   `thrift:\"Open,1\" form:\"Open\" json:\"Open\" query:\"Open\"`\n\tEnv  string `thrift:\"Env,2\" form:\"Env\" json:\"Env\" query:\"Env\"`\n}\n\nfunc NewTrafficEnv() *TrafficEnv {\n\treturn &TrafficEnv{\n\n\t\tOpen: false,\n\t\tEnv:  \"\",\n\t}\n}\n\nfunc (p *TrafficEnv) InitDefault() {\n\tp.Open = false\n\tp.Env = \"\"\n}\n\nfunc (p *TrafficEnv) GetOpen() (v bool) {\n\treturn p.Open\n}\n\nfunc (p *TrafficEnv) GetEnv() (v string) {\n\treturn p.Env\n}\n\nvar fieldIDToName_TrafficEnv = map[int16]string{\n\t1: \"Open\",\n\t2: \"Env\",\n}\n\nfunc (p *TrafficEnv) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TrafficEnv[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TrafficEnv) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Open = _field\n\treturn nil\n}\nfunc (p *TrafficEnv) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Env = _field\n\treturn nil\n}\n\nfunc (p *TrafficEnv) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TrafficEnv\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TrafficEnv) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Open\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Open); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TrafficEnv) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Env\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Env); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *TrafficEnv) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TrafficEnv(%+v)\", *p)\n\n}\n\ntype Base struct {\n\tLogID      string            `thrift:\"LogID,1\" form:\"LogID\" json:\"LogID\" query:\"LogID\"`\n\tCaller     string            `thrift:\"Caller,2\" form:\"Caller\" json:\"Caller\" query:\"Caller\"`\n\tAddr       string            `thrift:\"Addr,3\" form:\"Addr\" json:\"Addr\" query:\"Addr\"`\n\tClient     string            `thrift:\"Client,4\" form:\"Client\" json:\"Client\" query:\"Client\"`\n\tTrafficEnv *TrafficEnv       `thrift:\"TrafficEnv,5,optional\" form:\"TrafficEnv\" json:\"TrafficEnv,omitempty\" query:\"TrafficEnv\"`\n\tExtra      map[string]string `thrift:\"Extra,6,optional\" form:\"Extra\" json:\"Extra,omitempty\" query:\"Extra\"`\n}\n\nfunc NewBase() *Base {\n\treturn &Base{\n\n\t\tLogID:  \"\",\n\t\tCaller: \"\",\n\t\tAddr:   \"\",\n\t\tClient: \"\",\n\t}\n}\n\nfunc (p *Base) InitDefault() {\n\tp.LogID = \"\"\n\tp.Caller = \"\"\n\tp.Addr = \"\"\n\tp.Client = \"\"\n}\n\nfunc (p *Base) GetLogID() (v string) {\n\treturn p.LogID\n}\n\nfunc (p *Base) GetCaller() (v string) {\n\treturn p.Caller\n}\n\nfunc (p *Base) GetAddr() (v string) {\n\treturn p.Addr\n}\n\nfunc (p *Base) GetClient() (v string) {\n\treturn p.Client\n}\n\nvar Base_TrafficEnv_DEFAULT *TrafficEnv\n\nfunc (p *Base) GetTrafficEnv() (v *TrafficEnv) {\n\tif !p.IsSetTrafficEnv() {\n\t\treturn Base_TrafficEnv_DEFAULT\n\t}\n\treturn p.TrafficEnv\n}\n\nvar Base_Extra_DEFAULT map[string]string\n\nfunc (p *Base) GetExtra() (v map[string]string) {\n\tif !p.IsSetExtra() {\n\t\treturn Base_Extra_DEFAULT\n\t}\n\treturn p.Extra\n}\n\nvar fieldIDToName_Base = map[int16]string{\n\t1: \"LogID\",\n\t2: \"Caller\",\n\t3: \"Addr\",\n\t4: \"Client\",\n\t5: \"TrafficEnv\",\n\t6: \"Extra\",\n}\n\nfunc (p *Base) IsSetTrafficEnv() bool {\n\treturn p.TrafficEnv != nil\n}\n\nfunc (p *Base) IsSetExtra() bool {\n\treturn p.Extra != nil\n}\n\nfunc (p *Base) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Base[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Base) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LogID = _field\n\treturn nil\n}\nfunc (p *Base) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Caller = _field\n\treturn nil\n}\nfunc (p *Base) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Addr = _field\n\treturn nil\n}\nfunc (p *Base) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Client = _field\n\treturn nil\n}\nfunc (p *Base) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewTrafficEnv()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TrafficEnv = _field\n\treturn nil\n}\nfunc (p *Base) ReadField6(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Extra = _field\n\treturn nil\n}\n\nfunc (p *Base) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Base\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Base) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"LogID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LogID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Base) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Caller\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Caller); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Base) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Addr\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Addr); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Base) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Client\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Client); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Base) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTrafficEnv() {\n\t\tif err = oprot.WriteFieldBegin(\"TrafficEnv\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TrafficEnv.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Base) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"Extra\", thrift.MAP, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Extra)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.Extra {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *Base) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Base(%+v)\", *p)\n\n}\n\ntype BaseResp struct {\n\tStatusMessage string            `thrift:\"StatusMessage,1\" form:\"StatusMessage\" json:\"StatusMessage\" query:\"StatusMessage\"`\n\tStatusCode    int32             `thrift:\"StatusCode,2\" form:\"StatusCode\" json:\"StatusCode\" query:\"StatusCode\"`\n\tExtra         map[string]string `thrift:\"Extra,3,optional\" form:\"Extra\" json:\"Extra,omitempty\" query:\"Extra\"`\n}\n\nfunc NewBaseResp() *BaseResp {\n\treturn &BaseResp{\n\n\t\tStatusMessage: \"\",\n\t\tStatusCode:    0,\n\t}\n}\n\nfunc (p *BaseResp) InitDefault() {\n\tp.StatusMessage = \"\"\n\tp.StatusCode = 0\n}\n\nfunc (p *BaseResp) GetStatusMessage() (v string) {\n\treturn p.StatusMessage\n}\n\nfunc (p *BaseResp) GetStatusCode() (v int32) {\n\treturn p.StatusCode\n}\n\nvar BaseResp_Extra_DEFAULT map[string]string\n\nfunc (p *BaseResp) GetExtra() (v map[string]string) {\n\tif !p.IsSetExtra() {\n\t\treturn BaseResp_Extra_DEFAULT\n\t}\n\treturn p.Extra\n}\n\nvar fieldIDToName_BaseResp = map[int16]string{\n\t1: \"StatusMessage\",\n\t2: \"StatusCode\",\n\t3: \"Extra\",\n}\n\nfunc (p *BaseResp) IsSetExtra() bool {\n\treturn p.Extra != nil\n}\n\nfunc (p *BaseResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BaseResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BaseResp) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StatusMessage = _field\n\treturn nil\n}\nfunc (p *BaseResp) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StatusCode = _field\n\treturn nil\n}\nfunc (p *BaseResp) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Extra = _field\n\treturn nil\n}\n\nfunc (p *BaseResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BaseResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BaseResp) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StatusMessage\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.StatusMessage); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BaseResp) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StatusCode\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.StatusCode); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BaseResp) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"Extra\", thrift.MAP, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Extra)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.Extra {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *BaseResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BaseResp(%+v)\", *p)\n\n}\n\ntype EmptyReq struct {\n}\n\nfunc NewEmptyReq() *EmptyReq {\n\treturn &EmptyReq{}\n}\n\nfunc (p *EmptyReq) InitDefault() {\n}\n\nvar fieldIDToName_EmptyReq = map[int16]string{}\n\nfunc (p *EmptyReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\tgoto SkipFieldTypeError\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nSkipFieldTypeError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T skip field type %d error\", p, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *EmptyReq) Write(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteStructBegin(\"EmptyReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *EmptyReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"EmptyReq(%+v)\", *p)\n\n}\n\ntype EmptyData struct {\n}\n\nfunc NewEmptyData() *EmptyData {\n\treturn &EmptyData{}\n}\n\nfunc (p *EmptyData) InitDefault() {\n}\n\nvar fieldIDToName_EmptyData = map[int16]string{}\n\nfunc (p *EmptyData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\tgoto SkipFieldTypeError\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nSkipFieldTypeError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T skip field type %d error\", p, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *EmptyData) Write(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteStructBegin(\"EmptyData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *EmptyData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"EmptyData(%+v)\", *p)\n\n}\n\ntype EmptyResp struct {\n\tCode int64      `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string     `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData *EmptyData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n}\n\nfunc NewEmptyResp() *EmptyResp {\n\treturn &EmptyResp{}\n}\n\nfunc (p *EmptyResp) InitDefault() {\n}\n\nfunc (p *EmptyResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *EmptyResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar EmptyResp_Data_DEFAULT *EmptyData\n\nfunc (p *EmptyResp) GetData() (v *EmptyData) {\n\tif !p.IsSetData() {\n\t\treturn EmptyResp_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar fieldIDToName_EmptyResp = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"data\",\n}\n\nfunc (p *EmptyResp) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *EmptyResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_EmptyResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *EmptyResp) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *EmptyResp) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *EmptyResp) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewEmptyData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *EmptyResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"EmptyResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *EmptyResp) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *EmptyResp) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *EmptyResp) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *EmptyResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"EmptyResp(%+v)\", *p)\n\n}\n\ntype EmptyRpcReq struct {\n\tBase *Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewEmptyRpcReq() *EmptyRpcReq {\n\treturn &EmptyRpcReq{}\n}\n\nfunc (p *EmptyRpcReq) InitDefault() {\n}\n\nvar EmptyRpcReq_Base_DEFAULT *Base\n\nfunc (p *EmptyRpcReq) GetBase() (v *Base) {\n\tif !p.IsSetBase() {\n\t\treturn EmptyRpcReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_EmptyRpcReq = map[int16]string{\n\t255: \"Base\",\n}\n\nfunc (p *EmptyRpcReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *EmptyRpcReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_EmptyRpcReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *EmptyRpcReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *EmptyRpcReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"EmptyRpcReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *EmptyRpcReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *EmptyRpcReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"EmptyRpcReq(%+v)\", *p)\n\n}\n\ntype EmptyRpcResp struct {\n\tBaseResp *BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewEmptyRpcResp() *EmptyRpcResp {\n\treturn &EmptyRpcResp{}\n}\n\nfunc (p *EmptyRpcResp) InitDefault() {\n}\n\nvar EmptyRpcResp_BaseResp_DEFAULT *BaseResp\n\nfunc (p *EmptyRpcResp) GetBaseResp() (v *BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn EmptyRpcResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_EmptyRpcResp = map[int16]string{\n\t255: \"BaseResp\",\n}\n\nfunc (p *EmptyRpcResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *EmptyRpcResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_EmptyRpcResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *EmptyRpcResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *EmptyRpcResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"EmptyRpcResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *EmptyRpcResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *EmptyRpcResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"EmptyRpcResp(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/conversation/agentrun/agentrun_service.go",
    "content": "// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage agentrun\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/run\"\n)\n\ntype AgentRunService interface {\n\tAgentRun(ctx context.Context, request *run.AgentRunRequest) (r *run.AgentRunResponse, err error)\n\n\tChatV3(ctx context.Context, request *run.ChatV3Request) (r *run.ChatV3Response, err error)\n\n\tCancelChatApi(ctx context.Context, request *run.CancelChatApiRequest) (r *run.CancelChatApiResponse, err error)\n\n\tRetrieveChatOpen(ctx context.Context, request *run.RetrieveChatOpenRequest) (r *run.RetrieveChatOpenResponse, err error)\n}\n\ntype AgentRunServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewAgentRunServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *AgentRunServiceClient {\n\treturn &AgentRunServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewAgentRunServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *AgentRunServiceClient {\n\treturn &AgentRunServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewAgentRunServiceClient(c thrift.TClient) *AgentRunServiceClient {\n\treturn &AgentRunServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *AgentRunServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *AgentRunServiceClient) AgentRun(ctx context.Context, request *run.AgentRunRequest) (r *run.AgentRunResponse, err error) {\n\tvar _args AgentRunServiceAgentRunArgs\n\t_args.Request = request\n\tvar _result AgentRunServiceAgentRunResult\n\tif err = p.Client_().Call(ctx, \"AgentRun\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *AgentRunServiceClient) ChatV3(ctx context.Context, request *run.ChatV3Request) (r *run.ChatV3Response, err error) {\n\tvar _args AgentRunServiceChatV3Args\n\t_args.Request = request\n\tvar _result AgentRunServiceChatV3Result\n\tif err = p.Client_().Call(ctx, \"ChatV3\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *AgentRunServiceClient) CancelChatApi(ctx context.Context, request *run.CancelChatApiRequest) (r *run.CancelChatApiResponse, err error) {\n\tvar _args AgentRunServiceCancelChatApiArgs\n\t_args.Request = request\n\tvar _result AgentRunServiceCancelChatApiResult\n\tif err = p.Client_().Call(ctx, \"CancelChatApi\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *AgentRunServiceClient) RetrieveChatOpen(ctx context.Context, request *run.RetrieveChatOpenRequest) (r *run.RetrieveChatOpenResponse, err error) {\n\tvar _args AgentRunServiceRetrieveChatOpenArgs\n\t_args.Request = request\n\tvar _result AgentRunServiceRetrieveChatOpenResult\n\tif err = p.Client_().Call(ctx, \"RetrieveChatOpen\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype AgentRunServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      AgentRunService\n}\n\nfunc (p *AgentRunServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *AgentRunServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *AgentRunServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewAgentRunServiceProcessor(handler AgentRunService) *AgentRunServiceProcessor {\n\tself := &AgentRunServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"AgentRun\", &agentRunServiceProcessorAgentRun{handler: handler})\n\tself.AddToProcessorMap(\"ChatV3\", &agentRunServiceProcessorChatV3{handler: handler})\n\tself.AddToProcessorMap(\"CancelChatApi\", &agentRunServiceProcessorCancelChatApi{handler: handler})\n\tself.AddToProcessorMap(\"RetrieveChatOpen\", &agentRunServiceProcessorRetrieveChatOpen{handler: handler})\n\treturn self\n}\nfunc (p *AgentRunServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype agentRunServiceProcessorAgentRun struct {\n\thandler AgentRunService\n}\n\nfunc (p *agentRunServiceProcessorAgentRun) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := AgentRunServiceAgentRunArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"AgentRun\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := AgentRunServiceAgentRunResult{}\n\tvar retval *run.AgentRunResponse\n\tif retval, err2 = p.handler.AgentRun(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing AgentRun: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"AgentRun\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"AgentRun\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype agentRunServiceProcessorChatV3 struct {\n\thandler AgentRunService\n}\n\nfunc (p *agentRunServiceProcessorChatV3) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := AgentRunServiceChatV3Args{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ChatV3\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := AgentRunServiceChatV3Result{}\n\tvar retval *run.ChatV3Response\n\tif retval, err2 = p.handler.ChatV3(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ChatV3: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ChatV3\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ChatV3\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype agentRunServiceProcessorCancelChatApi struct {\n\thandler AgentRunService\n}\n\nfunc (p *agentRunServiceProcessorCancelChatApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := AgentRunServiceCancelChatApiArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CancelChatApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := AgentRunServiceCancelChatApiResult{}\n\tvar retval *run.CancelChatApiResponse\n\tif retval, err2 = p.handler.CancelChatApi(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CancelChatApi: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CancelChatApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CancelChatApi\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype agentRunServiceProcessorRetrieveChatOpen struct {\n\thandler AgentRunService\n}\n\nfunc (p *agentRunServiceProcessorRetrieveChatOpen) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := AgentRunServiceRetrieveChatOpenArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"RetrieveChatOpen\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := AgentRunServiceRetrieveChatOpenResult{}\n\tvar retval *run.RetrieveChatOpenResponse\n\tif retval, err2 = p.handler.RetrieveChatOpen(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing RetrieveChatOpen: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"RetrieveChatOpen\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"RetrieveChatOpen\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype AgentRunServiceAgentRunArgs struct {\n\tRequest *run.AgentRunRequest `thrift:\"request,1\"`\n}\n\nfunc NewAgentRunServiceAgentRunArgs() *AgentRunServiceAgentRunArgs {\n\treturn &AgentRunServiceAgentRunArgs{}\n}\n\nfunc (p *AgentRunServiceAgentRunArgs) InitDefault() {\n}\n\nvar AgentRunServiceAgentRunArgs_Request_DEFAULT *run.AgentRunRequest\n\nfunc (p *AgentRunServiceAgentRunArgs) GetRequest() (v *run.AgentRunRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn AgentRunServiceAgentRunArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_AgentRunServiceAgentRunArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *AgentRunServiceAgentRunArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *AgentRunServiceAgentRunArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentRunServiceAgentRunArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceAgentRunArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := run.NewAgentRunRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *AgentRunServiceAgentRunArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AgentRun_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceAgentRunArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceAgentRunArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentRunServiceAgentRunArgs(%+v)\", *p)\n\n}\n\ntype AgentRunServiceAgentRunResult struct {\n\tSuccess *run.AgentRunResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewAgentRunServiceAgentRunResult() *AgentRunServiceAgentRunResult {\n\treturn &AgentRunServiceAgentRunResult{}\n}\n\nfunc (p *AgentRunServiceAgentRunResult) InitDefault() {\n}\n\nvar AgentRunServiceAgentRunResult_Success_DEFAULT *run.AgentRunResponse\n\nfunc (p *AgentRunServiceAgentRunResult) GetSuccess() (v *run.AgentRunResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn AgentRunServiceAgentRunResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_AgentRunServiceAgentRunResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *AgentRunServiceAgentRunResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *AgentRunServiceAgentRunResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentRunServiceAgentRunResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceAgentRunResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := run.NewAgentRunResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *AgentRunServiceAgentRunResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AgentRun_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceAgentRunResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceAgentRunResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentRunServiceAgentRunResult(%+v)\", *p)\n\n}\n\ntype AgentRunServiceChatV3Args struct {\n\tRequest *run.ChatV3Request `thrift:\"request,1\"`\n}\n\nfunc NewAgentRunServiceChatV3Args() *AgentRunServiceChatV3Args {\n\treturn &AgentRunServiceChatV3Args{}\n}\n\nfunc (p *AgentRunServiceChatV3Args) InitDefault() {\n}\n\nvar AgentRunServiceChatV3Args_Request_DEFAULT *run.ChatV3Request\n\nfunc (p *AgentRunServiceChatV3Args) GetRequest() (v *run.ChatV3Request) {\n\tif !p.IsSetRequest() {\n\t\treturn AgentRunServiceChatV3Args_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_AgentRunServiceChatV3Args = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *AgentRunServiceChatV3Args) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *AgentRunServiceChatV3Args) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentRunServiceChatV3Args[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceChatV3Args) ReadField1(iprot thrift.TProtocol) error {\n\t_field := run.NewChatV3Request()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *AgentRunServiceChatV3Args) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatV3_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceChatV3Args) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceChatV3Args) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentRunServiceChatV3Args(%+v)\", *p)\n\n}\n\ntype AgentRunServiceChatV3Result struct {\n\tSuccess *run.ChatV3Response `thrift:\"success,0,optional\"`\n}\n\nfunc NewAgentRunServiceChatV3Result() *AgentRunServiceChatV3Result {\n\treturn &AgentRunServiceChatV3Result{}\n}\n\nfunc (p *AgentRunServiceChatV3Result) InitDefault() {\n}\n\nvar AgentRunServiceChatV3Result_Success_DEFAULT *run.ChatV3Response\n\nfunc (p *AgentRunServiceChatV3Result) GetSuccess() (v *run.ChatV3Response) {\n\tif !p.IsSetSuccess() {\n\t\treturn AgentRunServiceChatV3Result_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_AgentRunServiceChatV3Result = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *AgentRunServiceChatV3Result) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *AgentRunServiceChatV3Result) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentRunServiceChatV3Result[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceChatV3Result) ReadField0(iprot thrift.TProtocol) error {\n\t_field := run.NewChatV3Response()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *AgentRunServiceChatV3Result) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatV3_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceChatV3Result) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceChatV3Result) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentRunServiceChatV3Result(%+v)\", *p)\n\n}\n\ntype AgentRunServiceCancelChatApiArgs struct {\n\tRequest *run.CancelChatApiRequest `thrift:\"request,1\"`\n}\n\nfunc NewAgentRunServiceCancelChatApiArgs() *AgentRunServiceCancelChatApiArgs {\n\treturn &AgentRunServiceCancelChatApiArgs{}\n}\n\nfunc (p *AgentRunServiceCancelChatApiArgs) InitDefault() {\n}\n\nvar AgentRunServiceCancelChatApiArgs_Request_DEFAULT *run.CancelChatApiRequest\n\nfunc (p *AgentRunServiceCancelChatApiArgs) GetRequest() (v *run.CancelChatApiRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn AgentRunServiceCancelChatApiArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_AgentRunServiceCancelChatApiArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *AgentRunServiceCancelChatApiArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *AgentRunServiceCancelChatApiArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentRunServiceCancelChatApiArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceCancelChatApiArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := run.NewCancelChatApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *AgentRunServiceCancelChatApiArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CancelChatApi_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceCancelChatApiArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceCancelChatApiArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentRunServiceCancelChatApiArgs(%+v)\", *p)\n\n}\n\ntype AgentRunServiceCancelChatApiResult struct {\n\tSuccess *run.CancelChatApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewAgentRunServiceCancelChatApiResult() *AgentRunServiceCancelChatApiResult {\n\treturn &AgentRunServiceCancelChatApiResult{}\n}\n\nfunc (p *AgentRunServiceCancelChatApiResult) InitDefault() {\n}\n\nvar AgentRunServiceCancelChatApiResult_Success_DEFAULT *run.CancelChatApiResponse\n\nfunc (p *AgentRunServiceCancelChatApiResult) GetSuccess() (v *run.CancelChatApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn AgentRunServiceCancelChatApiResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_AgentRunServiceCancelChatApiResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *AgentRunServiceCancelChatApiResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *AgentRunServiceCancelChatApiResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentRunServiceCancelChatApiResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceCancelChatApiResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := run.NewCancelChatApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *AgentRunServiceCancelChatApiResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CancelChatApi_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceCancelChatApiResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceCancelChatApiResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentRunServiceCancelChatApiResult(%+v)\", *p)\n\n}\n\ntype AgentRunServiceRetrieveChatOpenArgs struct {\n\tRequest *run.RetrieveChatOpenRequest `thrift:\"request,1\"`\n}\n\nfunc NewAgentRunServiceRetrieveChatOpenArgs() *AgentRunServiceRetrieveChatOpenArgs {\n\treturn &AgentRunServiceRetrieveChatOpenArgs{}\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenArgs) InitDefault() {\n}\n\nvar AgentRunServiceRetrieveChatOpenArgs_Request_DEFAULT *run.RetrieveChatOpenRequest\n\nfunc (p *AgentRunServiceRetrieveChatOpenArgs) GetRequest() (v *run.RetrieveChatOpenRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn AgentRunServiceRetrieveChatOpenArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_AgentRunServiceRetrieveChatOpenArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentRunServiceRetrieveChatOpenArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := run.NewRetrieveChatOpenRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RetrieveChatOpen_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentRunServiceRetrieveChatOpenArgs(%+v)\", *p)\n\n}\n\ntype AgentRunServiceRetrieveChatOpenResult struct {\n\tSuccess *run.RetrieveChatOpenResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewAgentRunServiceRetrieveChatOpenResult() *AgentRunServiceRetrieveChatOpenResult {\n\treturn &AgentRunServiceRetrieveChatOpenResult{}\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenResult) InitDefault() {\n}\n\nvar AgentRunServiceRetrieveChatOpenResult_Success_DEFAULT *run.RetrieveChatOpenResponse\n\nfunc (p *AgentRunServiceRetrieveChatOpenResult) GetSuccess() (v *run.RetrieveChatOpenResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn AgentRunServiceRetrieveChatOpenResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_AgentRunServiceRetrieveChatOpenResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentRunServiceRetrieveChatOpenResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := run.NewRetrieveChatOpenResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RetrieveChatOpen_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *AgentRunServiceRetrieveChatOpenResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentRunServiceRetrieveChatOpenResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/conversation/common/common.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n)\n\ntype Scene int64\n\nconst (\n\tScene_Default  Scene = 0\n\tScene_Explore  Scene = 1\n\tScene_BotStore Scene = 2\n\tScene_CozeHome Scene = 3\n\t//debugging\n\tScene_Playground Scene = 4\n\t// evaluation platform\n\tScene_Evaluation Scene = 5\n\tScene_AgentAPP   Scene = 6\n\t//Prompt optimization\n\tScene_PromptOptimize Scene = 7\n\t// Createbot's nl2bot features\n\tScene_GenerateAgentInfo Scene = 8\n\t//openapi\n\tScene_SceneOpenApi Scene = 9\n\t// workflow\n\tScene_SceneWorkflow Scene = 50\n)\n\nfunc (p Scene) String() string {\n\tswitch p {\n\tcase Scene_Default:\n\t\treturn \"Default\"\n\tcase Scene_Explore:\n\t\treturn \"Explore\"\n\tcase Scene_BotStore:\n\t\treturn \"BotStore\"\n\tcase Scene_CozeHome:\n\t\treturn \"CozeHome\"\n\tcase Scene_Playground:\n\t\treturn \"Playground\"\n\tcase Scene_Evaluation:\n\t\treturn \"Evaluation\"\n\tcase Scene_AgentAPP:\n\t\treturn \"AgentAPP\"\n\tcase Scene_PromptOptimize:\n\t\treturn \"PromptOptimize\"\n\tcase Scene_GenerateAgentInfo:\n\t\treturn \"GenerateAgentInfo\"\n\tcase Scene_SceneOpenApi:\n\t\treturn \"SceneOpenApi\"\n\tcase Scene_SceneWorkflow:\n\t\treturn \"SceneWorkflow\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SceneFromString(s string) (Scene, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn Scene_Default, nil\n\tcase \"Explore\":\n\t\treturn Scene_Explore, nil\n\tcase \"BotStore\":\n\t\treturn Scene_BotStore, nil\n\tcase \"CozeHome\":\n\t\treturn Scene_CozeHome, nil\n\tcase \"Playground\":\n\t\treturn Scene_Playground, nil\n\tcase \"Evaluation\":\n\t\treturn Scene_Evaluation, nil\n\tcase \"AgentAPP\":\n\t\treturn Scene_AgentAPP, nil\n\tcase \"PromptOptimize\":\n\t\treturn Scene_PromptOptimize, nil\n\tcase \"GenerateAgentInfo\":\n\t\treturn Scene_GenerateAgentInfo, nil\n\tcase \"SceneOpenApi\":\n\t\treturn Scene_SceneOpenApi, nil\n\tcase \"SceneWorkflow\":\n\t\treturn Scene_SceneWorkflow, nil\n\t}\n\treturn Scene(0), fmt.Errorf(\"not a valid Scene string\")\n}\n\nfunc ScenePtr(v Scene) *Scene { return &v }\nfunc (p *Scene) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = Scene(result.Int64)\n\treturn\n}\n\nfunc (p *Scene) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n"
  },
  {
    "path": "backend/api/model/conversation/conversation/conversation.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage conversation\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/common\"\n)\n\ntype ClearConversationHistoryRequest struct {\n\tConversationID int64         `thrift:\"conversation_id,1,required\" form:\"conversation_id,required\" json:\"conversation_id,string,required\" query:\"conversation_id,required\"`\n\tScene          *common.Scene `thrift:\"scene,2,optional\" form:\"scene\" json:\"scene,omitempty\" query:\"scene\"`\n\tBotID          *int64        `thrift:\"bot_id,3,optional\" form:\"bot_id\" json:\"bot_id,string,omitempty\" query:\"bot_id\"`\n}\n\nfunc NewClearConversationHistoryRequest() *ClearConversationHistoryRequest {\n\treturn &ClearConversationHistoryRequest{}\n}\n\nfunc (p *ClearConversationHistoryRequest) InitDefault() {\n}\n\nfunc (p *ClearConversationHistoryRequest) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nvar ClearConversationHistoryRequest_Scene_DEFAULT common.Scene\n\nfunc (p *ClearConversationHistoryRequest) GetScene() (v common.Scene) {\n\tif !p.IsSetScene() {\n\t\treturn ClearConversationHistoryRequest_Scene_DEFAULT\n\t}\n\treturn *p.Scene\n}\n\nvar ClearConversationHistoryRequest_BotID_DEFAULT int64\n\nfunc (p *ClearConversationHistoryRequest) GetBotID() (v int64) {\n\tif !p.IsSetBotID() {\n\t\treturn ClearConversationHistoryRequest_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar fieldIDToName_ClearConversationHistoryRequest = map[int16]string{\n\t1: \"conversation_id\",\n\t2: \"scene\",\n\t3: \"bot_id\",\n}\n\nfunc (p *ClearConversationHistoryRequest) IsSetScene() bool {\n\treturn p.Scene != nil\n}\n\nfunc (p *ClearConversationHistoryRequest) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *ClearConversationHistoryRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetConversationID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ClearConversationHistoryRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ClearConversationHistoryRequest[fieldId]))\n}\n\nfunc (p *ClearConversationHistoryRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ClearConversationHistoryRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *common.Scene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.Scene(v)\n\t\t_field = &tmp\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *ClearConversationHistoryRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\n\nfunc (p *ClearConversationHistoryRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationHistoryRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ClearConversationHistoryRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ClearConversationHistoryRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScene() {\n\t\tif err = oprot.WriteFieldBegin(\"scene\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Scene)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ClearConversationHistoryRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ClearConversationHistoryRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ClearConversationHistoryRequest(%+v)\", *p)\n\n}\n\ntype ClearConversationHistoryResponse struct {\n\tCode         int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg          string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tNewSectionID int64  `thrift:\"new_section_id,3,required\" form:\"new_section_id,required\" json:\"new_section_id,string,required\" query:\"new_section_id,required\"`\n}\n\nfunc NewClearConversationHistoryResponse() *ClearConversationHistoryResponse {\n\treturn &ClearConversationHistoryResponse{}\n}\n\nfunc (p *ClearConversationHistoryResponse) InitDefault() {\n}\n\nfunc (p *ClearConversationHistoryResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ClearConversationHistoryResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *ClearConversationHistoryResponse) GetNewSectionID() (v int64) {\n\treturn p.NewSectionID\n}\n\nvar fieldIDToName_ClearConversationHistoryResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"new_section_id\",\n}\n\nfunc (p *ClearConversationHistoryResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetNewSectionID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetNewSectionID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetNewSectionID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ClearConversationHistoryResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ClearConversationHistoryResponse[fieldId]))\n}\n\nfunc (p *ClearConversationHistoryResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ClearConversationHistoryResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ClearConversationHistoryResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NewSectionID = _field\n\treturn nil\n}\n\nfunc (p *ClearConversationHistoryResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationHistoryResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ClearConversationHistoryResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ClearConversationHistoryResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ClearConversationHistoryResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"new_section_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.NewSectionID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ClearConversationHistoryResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ClearConversationHistoryResponse(%+v)\", *p)\n\n}\n\ntype ClearConversationCtxRequest struct {\n\tConversationID int64         `thrift:\"conversation_id,1,required\" form:\"conversation_id,required\" json:\"conversation_id,string,required\" query:\"conversation_id,required\"`\n\tScene          *common.Scene `thrift:\"scene,2,optional\" form:\"scene\" json:\"scene,omitempty\" query:\"scene\"`\n\t// There is a situation that needs to be inserted into the chat.\n\tInsertHistoryMessageList []string `thrift:\"insert_history_message_list,3,optional\" form:\"insert_history_message_list\" json:\"insert_history_message_list,omitempty\" query:\"insert_history_message_list\"`\n}\n\nfunc NewClearConversationCtxRequest() *ClearConversationCtxRequest {\n\treturn &ClearConversationCtxRequest{}\n}\n\nfunc (p *ClearConversationCtxRequest) InitDefault() {\n}\n\nfunc (p *ClearConversationCtxRequest) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nvar ClearConversationCtxRequest_Scene_DEFAULT common.Scene\n\nfunc (p *ClearConversationCtxRequest) GetScene() (v common.Scene) {\n\tif !p.IsSetScene() {\n\t\treturn ClearConversationCtxRequest_Scene_DEFAULT\n\t}\n\treturn *p.Scene\n}\n\nvar ClearConversationCtxRequest_InsertHistoryMessageList_DEFAULT []string\n\nfunc (p *ClearConversationCtxRequest) GetInsertHistoryMessageList() (v []string) {\n\tif !p.IsSetInsertHistoryMessageList() {\n\t\treturn ClearConversationCtxRequest_InsertHistoryMessageList_DEFAULT\n\t}\n\treturn p.InsertHistoryMessageList\n}\n\nvar fieldIDToName_ClearConversationCtxRequest = map[int16]string{\n\t1: \"conversation_id\",\n\t2: \"scene\",\n\t3: \"insert_history_message_list\",\n}\n\nfunc (p *ClearConversationCtxRequest) IsSetScene() bool {\n\treturn p.Scene != nil\n}\n\nfunc (p *ClearConversationCtxRequest) IsSetInsertHistoryMessageList() bool {\n\treturn p.InsertHistoryMessageList != nil\n}\n\nfunc (p *ClearConversationCtxRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetConversationID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ClearConversationCtxRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ClearConversationCtxRequest[fieldId]))\n}\n\nfunc (p *ClearConversationCtxRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ClearConversationCtxRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *common.Scene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.Scene(v)\n\t\t_field = &tmp\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *ClearConversationCtxRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.InsertHistoryMessageList = _field\n\treturn nil\n}\n\nfunc (p *ClearConversationCtxRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationCtxRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ClearConversationCtxRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ClearConversationCtxRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScene() {\n\t\tif err = oprot.WriteFieldBegin(\"scene\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Scene)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ClearConversationCtxRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInsertHistoryMessageList() {\n\t\tif err = oprot.WriteFieldBegin(\"insert_history_message_list\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.InsertHistoryMessageList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.InsertHistoryMessageList {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ClearConversationCtxRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ClearConversationCtxRequest(%+v)\", *p)\n\n}\n\ntype ClearConversationCtxResponse struct {\n\tCode         int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg          string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tNewSectionID int64  `thrift:\"new_section_id,3,required\" form:\"new_section_id,required\" json:\"new_section_id,string,required\" query:\"new_section_id,required\"`\n}\n\nfunc NewClearConversationCtxResponse() *ClearConversationCtxResponse {\n\treturn &ClearConversationCtxResponse{}\n}\n\nfunc (p *ClearConversationCtxResponse) InitDefault() {\n}\n\nfunc (p *ClearConversationCtxResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ClearConversationCtxResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *ClearConversationCtxResponse) GetNewSectionID() (v int64) {\n\treturn p.NewSectionID\n}\n\nvar fieldIDToName_ClearConversationCtxResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"new_section_id\",\n}\n\nfunc (p *ClearConversationCtxResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetNewSectionID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetNewSectionID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetNewSectionID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ClearConversationCtxResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ClearConversationCtxResponse[fieldId]))\n}\n\nfunc (p *ClearConversationCtxResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ClearConversationCtxResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ClearConversationCtxResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NewSectionID = _field\n\treturn nil\n}\n\nfunc (p *ClearConversationCtxResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationCtxResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ClearConversationCtxResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ClearConversationCtxResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ClearConversationCtxResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"new_section_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.NewSectionID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ClearConversationCtxResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ClearConversationCtxResponse(%+v)\", *p)\n\n}\n\ntype ConversationData struct {\n\tId            int64             `thrift:\"Id,1\" form:\"id\" json:\"id,string\"`\n\tCreatedAt     int64             `thrift:\"CreatedAt,2\" form:\"created_at\" json:\"created_at\"`\n\tMetaData      map[string]string `thrift:\"MetaData,3\" form:\"meta_data\" json:\"meta_data\"`\n\tCreatorID     *int64            `thrift:\"CreatorID,4,optional\" form:\"creator_d\" json:\"creator_d,string,omitempty\"`\n\tConnectorID   *int64            `thrift:\"ConnectorID,5,optional\" form:\"connector_id\" json:\"connector_id,string,omitempty\"`\n\tLastSectionID *int64            `thrift:\"LastSectionID,6,optional\" form:\"last_section_id\" json:\"last_section_id,string,omitempty\"`\n\tAccountID     *int64            `thrift:\"AccountID,7,optional\" form:\"account_id\" json:\"account_id,omitempty\"`\n\tName          *string           `thrift:\"Name,8,optional\" form:\"name\" json:\"name,omitempty\"`\n\tUserID        *string           `thrift:\"UserID,9,optional\" form:\"user_id\" json:\"user_id,omitempty\"`\n}\n\nfunc NewConversationData() *ConversationData {\n\treturn &ConversationData{}\n}\n\nfunc (p *ConversationData) InitDefault() {\n}\n\nfunc (p *ConversationData) GetId() (v int64) {\n\treturn p.Id\n}\n\nfunc (p *ConversationData) GetCreatedAt() (v int64) {\n\treturn p.CreatedAt\n}\n\nfunc (p *ConversationData) GetMetaData() (v map[string]string) {\n\treturn p.MetaData\n}\n\nvar ConversationData_CreatorID_DEFAULT int64\n\nfunc (p *ConversationData) GetCreatorID() (v int64) {\n\tif !p.IsSetCreatorID() {\n\t\treturn ConversationData_CreatorID_DEFAULT\n\t}\n\treturn *p.CreatorID\n}\n\nvar ConversationData_ConnectorID_DEFAULT int64\n\nfunc (p *ConversationData) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn ConversationData_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar ConversationData_LastSectionID_DEFAULT int64\n\nfunc (p *ConversationData) GetLastSectionID() (v int64) {\n\tif !p.IsSetLastSectionID() {\n\t\treturn ConversationData_LastSectionID_DEFAULT\n\t}\n\treturn *p.LastSectionID\n}\n\nvar ConversationData_AccountID_DEFAULT int64\n\nfunc (p *ConversationData) GetAccountID() (v int64) {\n\tif !p.IsSetAccountID() {\n\t\treturn ConversationData_AccountID_DEFAULT\n\t}\n\treturn *p.AccountID\n}\n\nvar ConversationData_Name_DEFAULT string\n\nfunc (p *ConversationData) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn ConversationData_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar ConversationData_UserID_DEFAULT string\n\nfunc (p *ConversationData) GetUserID() (v string) {\n\tif !p.IsSetUserID() {\n\t\treturn ConversationData_UserID_DEFAULT\n\t}\n\treturn *p.UserID\n}\n\nvar fieldIDToName_ConversationData = map[int16]string{\n\t1: \"Id\",\n\t2: \"CreatedAt\",\n\t3: \"MetaData\",\n\t4: \"CreatorID\",\n\t5: \"ConnectorID\",\n\t6: \"LastSectionID\",\n\t7: \"AccountID\",\n\t8: \"Name\",\n\t9: \"UserID\",\n}\n\nfunc (p *ConversationData) IsSetCreatorID() bool {\n\treturn p.CreatorID != nil\n}\n\nfunc (p *ConversationData) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *ConversationData) IsSetLastSectionID() bool {\n\treturn p.LastSectionID != nil\n}\n\nfunc (p *ConversationData) IsSetAccountID() bool {\n\treturn p.AccountID != nil\n}\n\nfunc (p *ConversationData) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *ConversationData) IsSetUserID() bool {\n\treturn p.UserID != nil\n}\n\nfunc (p *ConversationData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Id = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatedAt = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LastSectionID = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AccountID = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\n\nfunc (p *ConversationData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConversationData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Id); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CreatedAt\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.MetaData {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatorID() {\n\t\tif err = oprot.WriteFieldBegin(\"CreatorID\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreatorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLastSectionID() {\n\t\tif err = oprot.WriteFieldBegin(\"LastSectionID\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.LastSectionID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAccountID() {\n\t\tif err = oprot.WriteFieldBegin(\"AccountID\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.AccountID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserID() {\n\t\tif err = oprot.WriteFieldBegin(\"UserID\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UserID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *ConversationData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationData(%+v)\", *p)\n\n}\n\ntype CreateConversationRequest struct {\n\t//custom passthrough field\n\tMetaData    map[string]string `thrift:\"MetaData,1,optional\" form:\"meta_data\" json:\"meta_data,omitempty\"`\n\tBotId       *int64            `thrift:\"BotId,3,optional\" form:\"bot_id\" json:\"bot_id,string,omitempty\"`\n\tConnectorId *int64            `thrift:\"ConnectorId,4,optional\" form:\"connector_id\" json:\"connector_id,string,omitempty\"`\n\tUserID      *string           `thrift:\"user_id,50,optional\" form:\"user_id\" json:\"user_id,omitempty\"`\n}\n\nfunc NewCreateConversationRequest() *CreateConversationRequest {\n\treturn &CreateConversationRequest{}\n}\n\nfunc (p *CreateConversationRequest) InitDefault() {\n}\n\nvar CreateConversationRequest_MetaData_DEFAULT map[string]string\n\nfunc (p *CreateConversationRequest) GetMetaData() (v map[string]string) {\n\tif !p.IsSetMetaData() {\n\t\treturn CreateConversationRequest_MetaData_DEFAULT\n\t}\n\treturn p.MetaData\n}\n\nvar CreateConversationRequest_BotId_DEFAULT int64\n\nfunc (p *CreateConversationRequest) GetBotId() (v int64) {\n\tif !p.IsSetBotId() {\n\t\treturn CreateConversationRequest_BotId_DEFAULT\n\t}\n\treturn *p.BotId\n}\n\nvar CreateConversationRequest_ConnectorId_DEFAULT int64\n\nfunc (p *CreateConversationRequest) GetConnectorId() (v int64) {\n\tif !p.IsSetConnectorId() {\n\t\treturn CreateConversationRequest_ConnectorId_DEFAULT\n\t}\n\treturn *p.ConnectorId\n}\n\nvar CreateConversationRequest_UserID_DEFAULT string\n\nfunc (p *CreateConversationRequest) GetUserID() (v string) {\n\tif !p.IsSetUserID() {\n\t\treturn CreateConversationRequest_UserID_DEFAULT\n\t}\n\treturn *p.UserID\n}\n\nvar fieldIDToName_CreateConversationRequest = map[int16]string{\n\t1:  \"MetaData\",\n\t3:  \"BotId\",\n\t4:  \"ConnectorId\",\n\t50: \"user_id\",\n}\n\nfunc (p *CreateConversationRequest) IsSetMetaData() bool {\n\treturn p.MetaData != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetBotId() bool {\n\treturn p.BotId != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetConnectorId() bool {\n\treturn p.ConnectorId != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetUserID() bool {\n\treturn p.UserID != nil\n}\n\nfunc (p *CreateConversationRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 50:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField50(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateConversationRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateConversationRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotId = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorId = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField50(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\n\nfunc (p *CreateConversationRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateConversationRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField50(oprot); err != nil {\n\t\t\tfieldId = 50\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateConversationRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMetaData() {\n\t\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.MetaData {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotId() {\n\t\tif err = oprot.WriteFieldBegin(\"BotId\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorId() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorId\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField50(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserID() {\n\t\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.STRING, 50); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UserID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 end error: \", p), err)\n}\n\nfunc (p *CreateConversationRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateConversationRequest(%+v)\", *p)\n\n}\n\ntype CreateConversationResponse struct {\n\tCode             int64             `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg              string            `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tConversationData *ConversationData `thrift:\"ConversationData,3,optional\" form:\"data\" json:\"data,omitempty\"`\n}\n\nfunc NewCreateConversationResponse() *CreateConversationResponse {\n\treturn &CreateConversationResponse{}\n}\n\nfunc (p *CreateConversationResponse) InitDefault() {\n}\n\nfunc (p *CreateConversationResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CreateConversationResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CreateConversationResponse_ConversationData_DEFAULT *ConversationData\n\nfunc (p *CreateConversationResponse) GetConversationData() (v *ConversationData) {\n\tif !p.IsSetConversationData() {\n\t\treturn CreateConversationResponse_ConversationData_DEFAULT\n\t}\n\treturn p.ConversationData\n}\n\nvar fieldIDToName_CreateConversationResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"ConversationData\",\n}\n\nfunc (p *CreateConversationResponse) IsSetConversationData() bool {\n\treturn p.ConversationData != nil\n}\n\nfunc (p *CreateConversationResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateConversationResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateConversationResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateConversationResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateConversationResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewConversationData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ConversationData = _field\n\treturn nil\n}\n\nfunc (p *CreateConversationResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateConversationResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateConversationResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateConversationResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateConversationResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConversationData() {\n\t\tif err = oprot.WriteFieldBegin(\"ConversationData\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ConversationData.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *CreateConversationResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateConversationResponse(%+v)\", *p)\n\n}\n\ntype ClearConversationApiRequest struct {\n\tConversationID int64      `thrift:\"ConversationID,1,required\" json:\"ConversationID,string,required\" path:\"conversation_id,required\"`\n\tBase           *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewClearConversationApiRequest() *ClearConversationApiRequest {\n\treturn &ClearConversationApiRequest{}\n}\n\nfunc (p *ClearConversationApiRequest) InitDefault() {\n}\n\nfunc (p *ClearConversationApiRequest) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nvar ClearConversationApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *ClearConversationApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ClearConversationApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ClearConversationApiRequest = map[int16]string{\n\t1:   \"ConversationID\",\n\t255: \"Base\",\n}\n\nfunc (p *ClearConversationApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ClearConversationApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetConversationID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ClearConversationApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ClearConversationApiRequest[fieldId]))\n}\n\nfunc (p *ClearConversationApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ClearConversationApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ClearConversationApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ClearConversationApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ClearConversationApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ClearConversationApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ClearConversationApiRequest(%+v)\", *p)\n\n}\n\ntype Section struct {\n\tID             int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\tConversationID int64 `thrift:\"conversation_id,2\" form:\"conversation_id\" json:\"conversation_id,string\" query:\"conversation_id\"`\n}\n\nfunc NewSection() *Section {\n\treturn &Section{}\n}\n\nfunc (p *Section) InitDefault() {\n}\n\nfunc (p *Section) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *Section) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nvar fieldIDToName_Section = map[int16]string{\n\t1: \"id\",\n\t2: \"conversation_id\",\n}\n\nfunc (p *Section) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Section[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Section) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *Section) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\n\nfunc (p *Section) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Section\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Section) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Section) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *Section) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Section(%+v)\", *p)\n\n}\n\ntype ClearConversationApiResponse struct {\n\t// Error code\n\tCode int64 `thrift:\"code,1\" form:\"code\" json:\"code\"`\n\t// error message\n\tMsg string `thrift:\"msg,2\" form:\"msg\" json:\"msg\"`\n\t// Section information\n\tData     *Section       `thrift:\"data,3\" form:\"data\" json:\"data\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewClearConversationApiResponse() *ClearConversationApiResponse {\n\treturn &ClearConversationApiResponse{}\n}\n\nfunc (p *ClearConversationApiResponse) InitDefault() {\n}\n\nfunc (p *ClearConversationApiResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ClearConversationApiResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ClearConversationApiResponse_Data_DEFAULT *Section\n\nfunc (p *ClearConversationApiResponse) GetData() (v *Section) {\n\tif !p.IsSetData() {\n\t\treturn ClearConversationApiResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar ClearConversationApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ClearConversationApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ClearConversationApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ClearConversationApiResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ClearConversationApiResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *ClearConversationApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ClearConversationApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ClearConversationApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ClearConversationApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ClearConversationApiResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ClearConversationApiResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewSection()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ClearConversationApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ClearConversationApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ClearConversationApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ClearConversationApiResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ClearConversationApiResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ClearConversationApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ClearConversationApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ClearConversationApiResponse(%+v)\", *p)\n\n}\n\ntype ListConversationsApiRequest struct {\n\tPageNum  int64 `thrift:\"page_num,1\" json:\"page_num\" query:\"page_num\"`\n\tPageSize int64 `thrift:\"page_size,2\" json:\"page_size\" query:\"page_size\"`\n\t// Optional values: ASC, DESC\n\tSortOrder string `thrift:\"sort_order,3\" json:\"sort_order\" query:\"sort_order\"`\n\t// Optional value: such as created_at\n\tSortField   string     `thrift:\"sort_field,4\" json:\"sort_field\" query:\"sort_field\"`\n\tBotID       int64      `thrift:\"bot_id,5,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\tConnectorID *int64     `thrift:\"connector_id,6,optional\" json:\"connector_id,string,omitempty\" query:\"connector_id\"`\n\tUserID      *string    `thrift:\"user_id,50,optional\" json:\"user_id,omitempty\" query:\"user_id\"`\n\tBase        *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewListConversationsApiRequest() *ListConversationsApiRequest {\n\treturn &ListConversationsApiRequest{}\n}\n\nfunc (p *ListConversationsApiRequest) InitDefault() {\n}\n\nfunc (p *ListConversationsApiRequest) GetPageNum() (v int64) {\n\treturn p.PageNum\n}\n\nfunc (p *ListConversationsApiRequest) GetPageSize() (v int64) {\n\treturn p.PageSize\n}\n\nfunc (p *ListConversationsApiRequest) GetSortOrder() (v string) {\n\treturn p.SortOrder\n}\n\nfunc (p *ListConversationsApiRequest) GetSortField() (v string) {\n\treturn p.SortField\n}\n\nfunc (p *ListConversationsApiRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar ListConversationsApiRequest_ConnectorID_DEFAULT int64\n\nfunc (p *ListConversationsApiRequest) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn ListConversationsApiRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar ListConversationsApiRequest_UserID_DEFAULT string\n\nfunc (p *ListConversationsApiRequest) GetUserID() (v string) {\n\tif !p.IsSetUserID() {\n\t\treturn ListConversationsApiRequest_UserID_DEFAULT\n\t}\n\treturn *p.UserID\n}\n\nvar ListConversationsApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListConversationsApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListConversationsApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListConversationsApiRequest = map[int16]string{\n\t1:   \"page_num\",\n\t2:   \"page_size\",\n\t3:   \"sort_order\",\n\t4:   \"sort_field\",\n\t5:   \"bot_id\",\n\t6:   \"connector_id\",\n\t50:  \"user_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ListConversationsApiRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *ListConversationsApiRequest) IsSetUserID() bool {\n\treturn p.UserID != nil\n}\n\nfunc (p *ListConversationsApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListConversationsApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 50:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField50(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListConversationsApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListConversationsApiRequest[fieldId]))\n}\n\nfunc (p *ListConversationsApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageNum = _field\n\treturn nil\n}\nfunc (p *ListConversationsApiRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageSize = _field\n\treturn nil\n}\nfunc (p *ListConversationsApiRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SortOrder = _field\n\treturn nil\n}\nfunc (p *ListConversationsApiRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SortField = _field\n\treturn nil\n}\nfunc (p *ListConversationsApiRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ListConversationsApiRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ListConversationsApiRequest) ReadField50(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *ListConversationsApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListConversationsApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListConversationsApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField50(oprot); err != nil {\n\t\t\tfieldId = 50\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListConversationsApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"page_num\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PageNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListConversationsApiRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"page_size\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PageSize); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListConversationsApiRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sort_order\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SortOrder); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListConversationsApiRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sort_field\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SortField); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListConversationsApiRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListConversationsApiRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ListConversationsApiRequest) writeField50(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserID() {\n\t\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.STRING, 50); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UserID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 end error: \", p), err)\n}\nfunc (p *ListConversationsApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListConversationsApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListConversationsApiRequest(%+v)\", *p)\n\n}\n\ntype ListConversationsApiResponse struct {\n\t// Error code\n\tCode int64 `thrift:\"code,1\" form:\"code\" json:\"code\"`\n\t// error message\n\tMsg      string                `thrift:\"msg,2\" form:\"msg\" json:\"msg\"`\n\tData     *ListConversationData `thrift:\"data,3\" form:\"data\" json:\"data\"`\n\tBaseResp *base.BaseResp        `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewListConversationsApiResponse() *ListConversationsApiResponse {\n\treturn &ListConversationsApiResponse{}\n}\n\nfunc (p *ListConversationsApiResponse) InitDefault() {\n}\n\nfunc (p *ListConversationsApiResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListConversationsApiResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ListConversationsApiResponse_Data_DEFAULT *ListConversationData\n\nfunc (p *ListConversationsApiResponse) GetData() (v *ListConversationData) {\n\tif !p.IsSetData() {\n\t\treturn ListConversationsApiResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar ListConversationsApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListConversationsApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListConversationsApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListConversationsApiResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListConversationsApiResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *ListConversationsApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListConversationsApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListConversationsApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListConversationsApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListConversationsApiResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListConversationsApiResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewListConversationData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ListConversationsApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListConversationsApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListConversationsApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListConversationsApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListConversationsApiResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListConversationsApiResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListConversationsApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListConversationsApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListConversationsApiResponse(%+v)\", *p)\n\n}\n\ntype ListConversationData struct {\n\tConversations []*ConversationData `thrift:\"conversations,1\" form:\"conversations\" json:\"conversations\"`\n\tHasMore       bool                `thrift:\"has_more,2\" form:\"has_more\" json:\"has_more\"`\n}\n\nfunc NewListConversationData() *ListConversationData {\n\treturn &ListConversationData{}\n}\n\nfunc (p *ListConversationData) InitDefault() {\n}\n\nfunc (p *ListConversationData) GetConversations() (v []*ConversationData) {\n\treturn p.Conversations\n}\n\nfunc (p *ListConversationData) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nvar fieldIDToName_ListConversationData = map[int16]string{\n\t1: \"conversations\",\n\t2: \"has_more\",\n}\n\nfunc (p *ListConversationData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListConversationData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListConversationData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ConversationData, 0, size)\n\tvalues := make([]ConversationData, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Conversations = _field\n\treturn nil\n}\nfunc (p *ListConversationData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\n\nfunc (p *ListConversationData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListConversationData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListConversationData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversations\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Conversations)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Conversations {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListConversationData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_more\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ListConversationData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListConversationData(%+v)\", *p)\n\n}\n\ntype UpdateConversationApiRequest struct {\n\tConversationID *int64     `thrift:\"ConversationID,1,optional\" json:\"ConversationID,string,omitempty\" path:\"conversation_id\"`\n\tName           *string    `thrift:\"Name,2,optional\" form:\"name\" json:\"name,omitempty\"`\n\tBase           *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewUpdateConversationApiRequest() *UpdateConversationApiRequest {\n\treturn &UpdateConversationApiRequest{}\n}\n\nfunc (p *UpdateConversationApiRequest) InitDefault() {\n}\n\nvar UpdateConversationApiRequest_ConversationID_DEFAULT int64\n\nfunc (p *UpdateConversationApiRequest) GetConversationID() (v int64) {\n\tif !p.IsSetConversationID() {\n\t\treturn UpdateConversationApiRequest_ConversationID_DEFAULT\n\t}\n\treturn *p.ConversationID\n}\n\nvar UpdateConversationApiRequest_Name_DEFAULT string\n\nfunc (p *UpdateConversationApiRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn UpdateConversationApiRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar UpdateConversationApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateConversationApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateConversationApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateConversationApiRequest = map[int16]string{\n\t1:   \"ConversationID\",\n\t2:   \"Name\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateConversationApiRequest) IsSetConversationID() bool {\n\treturn p.ConversationID != nil\n}\n\nfunc (p *UpdateConversationApiRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *UpdateConversationApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateConversationApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateConversationApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateConversationApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *UpdateConversationApiRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *UpdateConversationApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateConversationApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateConversationApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateConversationApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConversationID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConversationID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateConversationApiRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateConversationApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateConversationApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateConversationApiRequest(%+v)\", *p)\n\n}\n\ntype UpdateConversationApiResponse struct {\n\tConversationData *ConversationData `thrift:\"ConversationData,1,optional\" form:\"data\" json:\"data,omitempty\"`\n\tCode             int32             `thrift:\"Code,2\" form:\"code\" json:\"code\"`\n\tMsg              string            `thrift:\"Msg,3\" form:\"msg\" json:\"msg\"`\n\tBaseResp         *base.BaseResp    `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewUpdateConversationApiResponse() *UpdateConversationApiResponse {\n\treturn &UpdateConversationApiResponse{}\n}\n\nfunc (p *UpdateConversationApiResponse) InitDefault() {\n}\n\nvar UpdateConversationApiResponse_ConversationData_DEFAULT *ConversationData\n\nfunc (p *UpdateConversationApiResponse) GetConversationData() (v *ConversationData) {\n\tif !p.IsSetConversationData() {\n\t\treturn UpdateConversationApiResponse_ConversationData_DEFAULT\n\t}\n\treturn p.ConversationData\n}\n\nfunc (p *UpdateConversationApiResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *UpdateConversationApiResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateConversationApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateConversationApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateConversationApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateConversationApiResponse = map[int16]string{\n\t1:   \"ConversationData\",\n\t2:   \"Code\",\n\t3:   \"Msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateConversationApiResponse) IsSetConversationData() bool {\n\treturn p.ConversationData != nil\n}\n\nfunc (p *UpdateConversationApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateConversationApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateConversationApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateConversationApiResponse[fieldId]))\n}\n\nfunc (p *UpdateConversationApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewConversationData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ConversationData = _field\n\treturn nil\n}\nfunc (p *UpdateConversationApiResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateConversationApiResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateConversationApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateConversationApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateConversationApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateConversationApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConversationData() {\n\t\tif err = oprot.WriteFieldBegin(\"ConversationData\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ConversationData.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateConversationApiResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateConversationApiResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Msg\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateConversationApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateConversationApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateConversationApiResponse(%+v)\", *p)\n\n}\n\ntype DeleteConversationApiRequest struct {\n\tConversationID *int64     `thrift:\"ConversationID,1,optional\" json:\"ConversationID,omitempty\" path:\"conversation_id\"`\n\tBase           *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewDeleteConversationApiRequest() *DeleteConversationApiRequest {\n\treturn &DeleteConversationApiRequest{}\n}\n\nfunc (p *DeleteConversationApiRequest) InitDefault() {\n}\n\nvar DeleteConversationApiRequest_ConversationID_DEFAULT int64\n\nfunc (p *DeleteConversationApiRequest) GetConversationID() (v int64) {\n\tif !p.IsSetConversationID() {\n\t\treturn DeleteConversationApiRequest_ConversationID_DEFAULT\n\t}\n\treturn *p.ConversationID\n}\n\nvar DeleteConversationApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteConversationApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteConversationApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteConversationApiRequest = map[int16]string{\n\t1:   \"ConversationID\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteConversationApiRequest) IsSetConversationID() bool {\n\treturn p.ConversationID != nil\n}\n\nfunc (p *DeleteConversationApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteConversationApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteConversationApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteConversationApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *DeleteConversationApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteConversationApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteConversationApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteConversationApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConversationID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConversationID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteConversationApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteConversationApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteConversationApiRequest(%+v)\", *p)\n\n}\n\ntype DeleteConversationApiResponse struct {\n\tCode     int32          `thrift:\"Code,1\" form:\"code\" json:\"code\"`\n\tMsg      string         `thrift:\"Msg,2\" form:\"msg\" json:\"msg\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewDeleteConversationApiResponse() *DeleteConversationApiResponse {\n\treturn &DeleteConversationApiResponse{}\n}\n\nfunc (p *DeleteConversationApiResponse) InitDefault() {\n}\n\nfunc (p *DeleteConversationApiResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *DeleteConversationApiResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DeleteConversationApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteConversationApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteConversationApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteConversationApiResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteConversationApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteConversationApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteConversationApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteConversationApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteConversationApiResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeleteConversationApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteConversationApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteConversationApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteConversationApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteConversationApiResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteConversationApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteConversationApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteConversationApiResponse(%+v)\", *p)\n\n}\n\ntype RetrieveConversationApiRequest struct {\n\tConversationID int64      `thrift:\"ConversationID,1,required\" json:\"ConversationID,string,required\" query:\"conversation_id,required\"`\n\tBase           *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewRetrieveConversationApiRequest() *RetrieveConversationApiRequest {\n\treturn &RetrieveConversationApiRequest{}\n}\n\nfunc (p *RetrieveConversationApiRequest) InitDefault() {\n}\n\nfunc (p *RetrieveConversationApiRequest) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nvar RetrieveConversationApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *RetrieveConversationApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn RetrieveConversationApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_RetrieveConversationApiRequest = map[int16]string{\n\t1:   \"ConversationID\",\n\t255: \"Base\",\n}\n\nfunc (p *RetrieveConversationApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *RetrieveConversationApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetConversationID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RetrieveConversationApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_RetrieveConversationApiRequest[fieldId]))\n}\n\nfunc (p *RetrieveConversationApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *RetrieveConversationApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *RetrieveConversationApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RetrieveConversationApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RetrieveConversationApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RetrieveConversationApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RetrieveConversationApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RetrieveConversationApiRequest(%+v)\", *p)\n\n}\n\ntype RetrieveConversationApiResponse struct {\n\tConversationData *ConversationData `thrift:\"ConversationData,1,optional\" form:\"ConversationData\" json:\"ConversationData,omitempty\" query:\"ConversationData\"`\n\tCode             int32             `thrift:\"Code,253\" form:\"code\" json:\"code\"`\n\tMsg              string            `thrift:\"Msg,254\" form:\"msg\" json:\"msg\"`\n\tBaseResp         *base.BaseResp    `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewRetrieveConversationApiResponse() *RetrieveConversationApiResponse {\n\treturn &RetrieveConversationApiResponse{}\n}\n\nfunc (p *RetrieveConversationApiResponse) InitDefault() {\n}\n\nvar RetrieveConversationApiResponse_ConversationData_DEFAULT *ConversationData\n\nfunc (p *RetrieveConversationApiResponse) GetConversationData() (v *ConversationData) {\n\tif !p.IsSetConversationData() {\n\t\treturn RetrieveConversationApiResponse_ConversationData_DEFAULT\n\t}\n\treturn p.ConversationData\n}\n\nfunc (p *RetrieveConversationApiResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *RetrieveConversationApiResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar RetrieveConversationApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *RetrieveConversationApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn RetrieveConversationApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_RetrieveConversationApiResponse = map[int16]string{\n\t1:   \"ConversationData\",\n\t253: \"Code\",\n\t254: \"Msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *RetrieveConversationApiResponse) IsSetConversationData() bool {\n\treturn p.ConversationData != nil\n}\n\nfunc (p *RetrieveConversationApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *RetrieveConversationApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RetrieveConversationApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_RetrieveConversationApiResponse[fieldId]))\n}\n\nfunc (p *RetrieveConversationApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewConversationData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ConversationData = _field\n\treturn nil\n}\nfunc (p *RetrieveConversationApiResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *RetrieveConversationApiResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *RetrieveConversationApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *RetrieveConversationApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RetrieveConversationApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RetrieveConversationApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConversationData() {\n\t\tif err = oprot.WriteFieldBegin(\"ConversationData\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ConversationData.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RetrieveConversationApiResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *RetrieveConversationApiResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *RetrieveConversationApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RetrieveConversationApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RetrieveConversationApiResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/conversation/conversation/conversation_service.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage conversation\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype ConversationService interface {\n\tClearConversationCtx(ctx context.Context, request *ClearConversationCtxRequest) (r *ClearConversationCtxResponse, err error)\n\n\tClearConversationHistory(ctx context.Context, request *ClearConversationHistoryRequest) (r *ClearConversationHistoryResponse, err error)\n\n\tCreateConversation(ctx context.Context, request *CreateConversationRequest) (r *CreateConversationResponse, err error)\n\n\tClearConversationApi(ctx context.Context, req *ClearConversationApiRequest) (r *ClearConversationApiResponse, err error)\n\n\tListConversationsApi(ctx context.Context, request *ListConversationsApiRequest) (r *ListConversationsApiResponse, err error)\n\n\tUpdateConversationApi(ctx context.Context, request *UpdateConversationApiRequest) (r *UpdateConversationApiResponse, err error)\n\n\tDeleteConversationApi(ctx context.Context, req *DeleteConversationApiRequest) (r *DeleteConversationApiResponse, err error)\n\n\tRetrieveConversationApi(ctx context.Context, request *RetrieveConversationApiRequest) (r *RetrieveConversationApiResponse, err error)\n}\n\ntype ConversationServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewConversationServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *ConversationServiceClient {\n\treturn &ConversationServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewConversationServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *ConversationServiceClient {\n\treturn &ConversationServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewConversationServiceClient(c thrift.TClient) *ConversationServiceClient {\n\treturn &ConversationServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *ConversationServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *ConversationServiceClient) ClearConversationCtx(ctx context.Context, request *ClearConversationCtxRequest) (r *ClearConversationCtxResponse, err error) {\n\tvar _args ConversationServiceClearConversationCtxArgs\n\t_args.Request = request\n\tvar _result ConversationServiceClearConversationCtxResult\n\tif err = p.Client_().Call(ctx, \"ClearConversationCtx\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConversationServiceClient) ClearConversationHistory(ctx context.Context, request *ClearConversationHistoryRequest) (r *ClearConversationHistoryResponse, err error) {\n\tvar _args ConversationServiceClearConversationHistoryArgs\n\t_args.Request = request\n\tvar _result ConversationServiceClearConversationHistoryResult\n\tif err = p.Client_().Call(ctx, \"ClearConversationHistory\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConversationServiceClient) CreateConversation(ctx context.Context, request *CreateConversationRequest) (r *CreateConversationResponse, err error) {\n\tvar _args ConversationServiceCreateConversationArgs\n\t_args.Request = request\n\tvar _result ConversationServiceCreateConversationResult\n\tif err = p.Client_().Call(ctx, \"CreateConversation\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConversationServiceClient) ClearConversationApi(ctx context.Context, req *ClearConversationApiRequest) (r *ClearConversationApiResponse, err error) {\n\tvar _args ConversationServiceClearConversationApiArgs\n\t_args.Req = req\n\tvar _result ConversationServiceClearConversationApiResult\n\tif err = p.Client_().Call(ctx, \"ClearConversationApi\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConversationServiceClient) ListConversationsApi(ctx context.Context, request *ListConversationsApiRequest) (r *ListConversationsApiResponse, err error) {\n\tvar _args ConversationServiceListConversationsApiArgs\n\t_args.Request = request\n\tvar _result ConversationServiceListConversationsApiResult\n\tif err = p.Client_().Call(ctx, \"ListConversationsApi\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConversationServiceClient) UpdateConversationApi(ctx context.Context, request *UpdateConversationApiRequest) (r *UpdateConversationApiResponse, err error) {\n\tvar _args ConversationServiceUpdateConversationApiArgs\n\t_args.Request = request\n\tvar _result ConversationServiceUpdateConversationApiResult\n\tif err = p.Client_().Call(ctx, \"UpdateConversationApi\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConversationServiceClient) DeleteConversationApi(ctx context.Context, req *DeleteConversationApiRequest) (r *DeleteConversationApiResponse, err error) {\n\tvar _args ConversationServiceDeleteConversationApiArgs\n\t_args.Req = req\n\tvar _result ConversationServiceDeleteConversationApiResult\n\tif err = p.Client_().Call(ctx, \"DeleteConversationApi\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ConversationServiceClient) RetrieveConversationApi(ctx context.Context, request *RetrieveConversationApiRequest) (r *RetrieveConversationApiResponse, err error) {\n\tvar _args ConversationServiceRetrieveConversationApiArgs\n\t_args.Request = request\n\tvar _result ConversationServiceRetrieveConversationApiResult\n\tif err = p.Client_().Call(ctx, \"RetrieveConversationApi\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype ConversationServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      ConversationService\n}\n\nfunc (p *ConversationServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *ConversationServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *ConversationServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewConversationServiceProcessor(handler ConversationService) *ConversationServiceProcessor {\n\tself := &ConversationServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"ClearConversationCtx\", &conversationServiceProcessorClearConversationCtx{handler: handler})\n\tself.AddToProcessorMap(\"ClearConversationHistory\", &conversationServiceProcessorClearConversationHistory{handler: handler})\n\tself.AddToProcessorMap(\"CreateConversation\", &conversationServiceProcessorCreateConversation{handler: handler})\n\tself.AddToProcessorMap(\"ClearConversationApi\", &conversationServiceProcessorClearConversationApi{handler: handler})\n\tself.AddToProcessorMap(\"ListConversationsApi\", &conversationServiceProcessorListConversationsApi{handler: handler})\n\tself.AddToProcessorMap(\"UpdateConversationApi\", &conversationServiceProcessorUpdateConversationApi{handler: handler})\n\tself.AddToProcessorMap(\"DeleteConversationApi\", &conversationServiceProcessorDeleteConversationApi{handler: handler})\n\tself.AddToProcessorMap(\"RetrieveConversationApi\", &conversationServiceProcessorRetrieveConversationApi{handler: handler})\n\treturn self\n}\nfunc (p *ConversationServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype conversationServiceProcessorClearConversationCtx struct {\n\thandler ConversationService\n}\n\nfunc (p *conversationServiceProcessorClearConversationCtx) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConversationServiceClearConversationCtxArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ClearConversationCtx\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConversationServiceClearConversationCtxResult{}\n\tvar retval *ClearConversationCtxResponse\n\tif retval, err2 = p.handler.ClearConversationCtx(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ClearConversationCtx: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ClearConversationCtx\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ClearConversationCtx\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype conversationServiceProcessorClearConversationHistory struct {\n\thandler ConversationService\n}\n\nfunc (p *conversationServiceProcessorClearConversationHistory) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConversationServiceClearConversationHistoryArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ClearConversationHistory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConversationServiceClearConversationHistoryResult{}\n\tvar retval *ClearConversationHistoryResponse\n\tif retval, err2 = p.handler.ClearConversationHistory(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ClearConversationHistory: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ClearConversationHistory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ClearConversationHistory\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype conversationServiceProcessorCreateConversation struct {\n\thandler ConversationService\n}\n\nfunc (p *conversationServiceProcessorCreateConversation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConversationServiceCreateConversationArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateConversation\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConversationServiceCreateConversationResult{}\n\tvar retval *CreateConversationResponse\n\tif retval, err2 = p.handler.CreateConversation(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateConversation: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateConversation\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateConversation\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype conversationServiceProcessorClearConversationApi struct {\n\thandler ConversationService\n}\n\nfunc (p *conversationServiceProcessorClearConversationApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConversationServiceClearConversationApiArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ClearConversationApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConversationServiceClearConversationApiResult{}\n\tvar retval *ClearConversationApiResponse\n\tif retval, err2 = p.handler.ClearConversationApi(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ClearConversationApi: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ClearConversationApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ClearConversationApi\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype conversationServiceProcessorListConversationsApi struct {\n\thandler ConversationService\n}\n\nfunc (p *conversationServiceProcessorListConversationsApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConversationServiceListConversationsApiArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListConversationsApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConversationServiceListConversationsApiResult{}\n\tvar retval *ListConversationsApiResponse\n\tif retval, err2 = p.handler.ListConversationsApi(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListConversationsApi: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListConversationsApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListConversationsApi\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype conversationServiceProcessorUpdateConversationApi struct {\n\thandler ConversationService\n}\n\nfunc (p *conversationServiceProcessorUpdateConversationApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConversationServiceUpdateConversationApiArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateConversationApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConversationServiceUpdateConversationApiResult{}\n\tvar retval *UpdateConversationApiResponse\n\tif retval, err2 = p.handler.UpdateConversationApi(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateConversationApi: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateConversationApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateConversationApi\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype conversationServiceProcessorDeleteConversationApi struct {\n\thandler ConversationService\n}\n\nfunc (p *conversationServiceProcessorDeleteConversationApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConversationServiceDeleteConversationApiArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteConversationApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConversationServiceDeleteConversationApiResult{}\n\tvar retval *DeleteConversationApiResponse\n\tif retval, err2 = p.handler.DeleteConversationApi(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteConversationApi: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteConversationApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteConversationApi\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype conversationServiceProcessorRetrieveConversationApi struct {\n\thandler ConversationService\n}\n\nfunc (p *conversationServiceProcessorRetrieveConversationApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ConversationServiceRetrieveConversationApiArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"RetrieveConversationApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ConversationServiceRetrieveConversationApiResult{}\n\tvar retval *RetrieveConversationApiResponse\n\tif retval, err2 = p.handler.RetrieveConversationApi(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing RetrieveConversationApi: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"RetrieveConversationApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"RetrieveConversationApi\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype ConversationServiceClearConversationCtxArgs struct {\n\tRequest *ClearConversationCtxRequest `thrift:\"request,1\"`\n}\n\nfunc NewConversationServiceClearConversationCtxArgs() *ConversationServiceClearConversationCtxArgs {\n\treturn &ConversationServiceClearConversationCtxArgs{}\n}\n\nfunc (p *ConversationServiceClearConversationCtxArgs) InitDefault() {\n}\n\nvar ConversationServiceClearConversationCtxArgs_Request_DEFAULT *ClearConversationCtxRequest\n\nfunc (p *ConversationServiceClearConversationCtxArgs) GetRequest() (v *ClearConversationCtxRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn ConversationServiceClearConversationCtxArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_ConversationServiceClearConversationCtxArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *ConversationServiceClearConversationCtxArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *ConversationServiceClearConversationCtxArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceClearConversationCtxArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationCtxArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewClearConversationCtxRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceClearConversationCtxArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationCtx_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationCtxArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationCtxArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceClearConversationCtxArgs(%+v)\", *p)\n\n}\n\ntype ConversationServiceClearConversationCtxResult struct {\n\tSuccess *ClearConversationCtxResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewConversationServiceClearConversationCtxResult() *ConversationServiceClearConversationCtxResult {\n\treturn &ConversationServiceClearConversationCtxResult{}\n}\n\nfunc (p *ConversationServiceClearConversationCtxResult) InitDefault() {\n}\n\nvar ConversationServiceClearConversationCtxResult_Success_DEFAULT *ClearConversationCtxResponse\n\nfunc (p *ConversationServiceClearConversationCtxResult) GetSuccess() (v *ClearConversationCtxResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConversationServiceClearConversationCtxResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConversationServiceClearConversationCtxResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConversationServiceClearConversationCtxResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConversationServiceClearConversationCtxResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceClearConversationCtxResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationCtxResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewClearConversationCtxResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceClearConversationCtxResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationCtx_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationCtxResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationCtxResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceClearConversationCtxResult(%+v)\", *p)\n\n}\n\ntype ConversationServiceClearConversationHistoryArgs struct {\n\tRequest *ClearConversationHistoryRequest `thrift:\"request,1\"`\n}\n\nfunc NewConversationServiceClearConversationHistoryArgs() *ConversationServiceClearConversationHistoryArgs {\n\treturn &ConversationServiceClearConversationHistoryArgs{}\n}\n\nfunc (p *ConversationServiceClearConversationHistoryArgs) InitDefault() {\n}\n\nvar ConversationServiceClearConversationHistoryArgs_Request_DEFAULT *ClearConversationHistoryRequest\n\nfunc (p *ConversationServiceClearConversationHistoryArgs) GetRequest() (v *ClearConversationHistoryRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn ConversationServiceClearConversationHistoryArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_ConversationServiceClearConversationHistoryArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *ConversationServiceClearConversationHistoryArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *ConversationServiceClearConversationHistoryArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceClearConversationHistoryArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationHistoryArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewClearConversationHistoryRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceClearConversationHistoryArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationHistory_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationHistoryArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationHistoryArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceClearConversationHistoryArgs(%+v)\", *p)\n\n}\n\ntype ConversationServiceClearConversationHistoryResult struct {\n\tSuccess *ClearConversationHistoryResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewConversationServiceClearConversationHistoryResult() *ConversationServiceClearConversationHistoryResult {\n\treturn &ConversationServiceClearConversationHistoryResult{}\n}\n\nfunc (p *ConversationServiceClearConversationHistoryResult) InitDefault() {\n}\n\nvar ConversationServiceClearConversationHistoryResult_Success_DEFAULT *ClearConversationHistoryResponse\n\nfunc (p *ConversationServiceClearConversationHistoryResult) GetSuccess() (v *ClearConversationHistoryResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConversationServiceClearConversationHistoryResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConversationServiceClearConversationHistoryResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConversationServiceClearConversationHistoryResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConversationServiceClearConversationHistoryResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceClearConversationHistoryResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationHistoryResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewClearConversationHistoryResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceClearConversationHistoryResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationHistory_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationHistoryResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationHistoryResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceClearConversationHistoryResult(%+v)\", *p)\n\n}\n\ntype ConversationServiceCreateConversationArgs struct {\n\tRequest *CreateConversationRequest `thrift:\"request,1\"`\n}\n\nfunc NewConversationServiceCreateConversationArgs() *ConversationServiceCreateConversationArgs {\n\treturn &ConversationServiceCreateConversationArgs{}\n}\n\nfunc (p *ConversationServiceCreateConversationArgs) InitDefault() {\n}\n\nvar ConversationServiceCreateConversationArgs_Request_DEFAULT *CreateConversationRequest\n\nfunc (p *ConversationServiceCreateConversationArgs) GetRequest() (v *CreateConversationRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn ConversationServiceCreateConversationArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_ConversationServiceCreateConversationArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *ConversationServiceCreateConversationArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *ConversationServiceCreateConversationArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceCreateConversationArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceCreateConversationArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateConversationRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceCreateConversationArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateConversation_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceCreateConversationArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceCreateConversationArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceCreateConversationArgs(%+v)\", *p)\n\n}\n\ntype ConversationServiceCreateConversationResult struct {\n\tSuccess *CreateConversationResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewConversationServiceCreateConversationResult() *ConversationServiceCreateConversationResult {\n\treturn &ConversationServiceCreateConversationResult{}\n}\n\nfunc (p *ConversationServiceCreateConversationResult) InitDefault() {\n}\n\nvar ConversationServiceCreateConversationResult_Success_DEFAULT *CreateConversationResponse\n\nfunc (p *ConversationServiceCreateConversationResult) GetSuccess() (v *CreateConversationResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConversationServiceCreateConversationResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConversationServiceCreateConversationResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConversationServiceCreateConversationResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConversationServiceCreateConversationResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceCreateConversationResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceCreateConversationResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateConversationResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceCreateConversationResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateConversation_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceCreateConversationResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceCreateConversationResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceCreateConversationResult(%+v)\", *p)\n\n}\n\ntype ConversationServiceClearConversationApiArgs struct {\n\tReq *ClearConversationApiRequest `thrift:\"req,1\"`\n}\n\nfunc NewConversationServiceClearConversationApiArgs() *ConversationServiceClearConversationApiArgs {\n\treturn &ConversationServiceClearConversationApiArgs{}\n}\n\nfunc (p *ConversationServiceClearConversationApiArgs) InitDefault() {\n}\n\nvar ConversationServiceClearConversationApiArgs_Req_DEFAULT *ClearConversationApiRequest\n\nfunc (p *ConversationServiceClearConversationApiArgs) GetReq() (v *ClearConversationApiRequest) {\n\tif !p.IsSetReq() {\n\t\treturn ConversationServiceClearConversationApiArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ConversationServiceClearConversationApiArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ConversationServiceClearConversationApiArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ConversationServiceClearConversationApiArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceClearConversationApiArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationApiArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewClearConversationApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceClearConversationApiArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationApi_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationApiArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationApiArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceClearConversationApiArgs(%+v)\", *p)\n\n}\n\ntype ConversationServiceClearConversationApiResult struct {\n\tSuccess *ClearConversationApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewConversationServiceClearConversationApiResult() *ConversationServiceClearConversationApiResult {\n\treturn &ConversationServiceClearConversationApiResult{}\n}\n\nfunc (p *ConversationServiceClearConversationApiResult) InitDefault() {\n}\n\nvar ConversationServiceClearConversationApiResult_Success_DEFAULT *ClearConversationApiResponse\n\nfunc (p *ConversationServiceClearConversationApiResult) GetSuccess() (v *ClearConversationApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConversationServiceClearConversationApiResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConversationServiceClearConversationApiResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConversationServiceClearConversationApiResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConversationServiceClearConversationApiResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceClearConversationApiResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationApiResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewClearConversationApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceClearConversationApiResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ClearConversationApi_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationApiResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceClearConversationApiResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceClearConversationApiResult(%+v)\", *p)\n\n}\n\ntype ConversationServiceListConversationsApiArgs struct {\n\tRequest *ListConversationsApiRequest `thrift:\"request,1\"`\n}\n\nfunc NewConversationServiceListConversationsApiArgs() *ConversationServiceListConversationsApiArgs {\n\treturn &ConversationServiceListConversationsApiArgs{}\n}\n\nfunc (p *ConversationServiceListConversationsApiArgs) InitDefault() {\n}\n\nvar ConversationServiceListConversationsApiArgs_Request_DEFAULT *ListConversationsApiRequest\n\nfunc (p *ConversationServiceListConversationsApiArgs) GetRequest() (v *ListConversationsApiRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn ConversationServiceListConversationsApiArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_ConversationServiceListConversationsApiArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *ConversationServiceListConversationsApiArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *ConversationServiceListConversationsApiArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceListConversationsApiArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceListConversationsApiArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListConversationsApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceListConversationsApiArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListConversationsApi_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceListConversationsApiArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceListConversationsApiArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceListConversationsApiArgs(%+v)\", *p)\n\n}\n\ntype ConversationServiceListConversationsApiResult struct {\n\tSuccess *ListConversationsApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewConversationServiceListConversationsApiResult() *ConversationServiceListConversationsApiResult {\n\treturn &ConversationServiceListConversationsApiResult{}\n}\n\nfunc (p *ConversationServiceListConversationsApiResult) InitDefault() {\n}\n\nvar ConversationServiceListConversationsApiResult_Success_DEFAULT *ListConversationsApiResponse\n\nfunc (p *ConversationServiceListConversationsApiResult) GetSuccess() (v *ListConversationsApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConversationServiceListConversationsApiResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConversationServiceListConversationsApiResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConversationServiceListConversationsApiResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConversationServiceListConversationsApiResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceListConversationsApiResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceListConversationsApiResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListConversationsApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceListConversationsApiResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListConversationsApi_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceListConversationsApiResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceListConversationsApiResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceListConversationsApiResult(%+v)\", *p)\n\n}\n\ntype ConversationServiceUpdateConversationApiArgs struct {\n\tRequest *UpdateConversationApiRequest `thrift:\"request,1\"`\n}\n\nfunc NewConversationServiceUpdateConversationApiArgs() *ConversationServiceUpdateConversationApiArgs {\n\treturn &ConversationServiceUpdateConversationApiArgs{}\n}\n\nfunc (p *ConversationServiceUpdateConversationApiArgs) InitDefault() {\n}\n\nvar ConversationServiceUpdateConversationApiArgs_Request_DEFAULT *UpdateConversationApiRequest\n\nfunc (p *ConversationServiceUpdateConversationApiArgs) GetRequest() (v *UpdateConversationApiRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn ConversationServiceUpdateConversationApiArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_ConversationServiceUpdateConversationApiArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *ConversationServiceUpdateConversationApiArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *ConversationServiceUpdateConversationApiArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceUpdateConversationApiArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceUpdateConversationApiArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateConversationApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceUpdateConversationApiArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateConversationApi_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceUpdateConversationApiArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceUpdateConversationApiArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceUpdateConversationApiArgs(%+v)\", *p)\n\n}\n\ntype ConversationServiceUpdateConversationApiResult struct {\n\tSuccess *UpdateConversationApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewConversationServiceUpdateConversationApiResult() *ConversationServiceUpdateConversationApiResult {\n\treturn &ConversationServiceUpdateConversationApiResult{}\n}\n\nfunc (p *ConversationServiceUpdateConversationApiResult) InitDefault() {\n}\n\nvar ConversationServiceUpdateConversationApiResult_Success_DEFAULT *UpdateConversationApiResponse\n\nfunc (p *ConversationServiceUpdateConversationApiResult) GetSuccess() (v *UpdateConversationApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConversationServiceUpdateConversationApiResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConversationServiceUpdateConversationApiResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConversationServiceUpdateConversationApiResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConversationServiceUpdateConversationApiResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceUpdateConversationApiResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceUpdateConversationApiResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateConversationApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceUpdateConversationApiResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateConversationApi_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceUpdateConversationApiResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceUpdateConversationApiResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceUpdateConversationApiResult(%+v)\", *p)\n\n}\n\ntype ConversationServiceDeleteConversationApiArgs struct {\n\tReq *DeleteConversationApiRequest `thrift:\"req,1\"`\n}\n\nfunc NewConversationServiceDeleteConversationApiArgs() *ConversationServiceDeleteConversationApiArgs {\n\treturn &ConversationServiceDeleteConversationApiArgs{}\n}\n\nfunc (p *ConversationServiceDeleteConversationApiArgs) InitDefault() {\n}\n\nvar ConversationServiceDeleteConversationApiArgs_Req_DEFAULT *DeleteConversationApiRequest\n\nfunc (p *ConversationServiceDeleteConversationApiArgs) GetReq() (v *DeleteConversationApiRequest) {\n\tif !p.IsSetReq() {\n\t\treturn ConversationServiceDeleteConversationApiArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ConversationServiceDeleteConversationApiArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ConversationServiceDeleteConversationApiArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ConversationServiceDeleteConversationApiArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceDeleteConversationApiArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceDeleteConversationApiArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteConversationApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceDeleteConversationApiArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteConversationApi_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceDeleteConversationApiArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceDeleteConversationApiArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceDeleteConversationApiArgs(%+v)\", *p)\n\n}\n\ntype ConversationServiceDeleteConversationApiResult struct {\n\tSuccess *DeleteConversationApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewConversationServiceDeleteConversationApiResult() *ConversationServiceDeleteConversationApiResult {\n\treturn &ConversationServiceDeleteConversationApiResult{}\n}\n\nfunc (p *ConversationServiceDeleteConversationApiResult) InitDefault() {\n}\n\nvar ConversationServiceDeleteConversationApiResult_Success_DEFAULT *DeleteConversationApiResponse\n\nfunc (p *ConversationServiceDeleteConversationApiResult) GetSuccess() (v *DeleteConversationApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConversationServiceDeleteConversationApiResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConversationServiceDeleteConversationApiResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConversationServiceDeleteConversationApiResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConversationServiceDeleteConversationApiResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceDeleteConversationApiResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceDeleteConversationApiResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteConversationApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceDeleteConversationApiResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteConversationApi_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceDeleteConversationApiResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceDeleteConversationApiResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceDeleteConversationApiResult(%+v)\", *p)\n\n}\n\ntype ConversationServiceRetrieveConversationApiArgs struct {\n\tRequest *RetrieveConversationApiRequest `thrift:\"request,1\"`\n}\n\nfunc NewConversationServiceRetrieveConversationApiArgs() *ConversationServiceRetrieveConversationApiArgs {\n\treturn &ConversationServiceRetrieveConversationApiArgs{}\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiArgs) InitDefault() {\n}\n\nvar ConversationServiceRetrieveConversationApiArgs_Request_DEFAULT *RetrieveConversationApiRequest\n\nfunc (p *ConversationServiceRetrieveConversationApiArgs) GetRequest() (v *RetrieveConversationApiRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn ConversationServiceRetrieveConversationApiArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_ConversationServiceRetrieveConversationApiArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceRetrieveConversationApiArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewRetrieveConversationApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RetrieveConversationApi_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceRetrieveConversationApiArgs(%+v)\", *p)\n\n}\n\ntype ConversationServiceRetrieveConversationApiResult struct {\n\tSuccess *RetrieveConversationApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewConversationServiceRetrieveConversationApiResult() *ConversationServiceRetrieveConversationApiResult {\n\treturn &ConversationServiceRetrieveConversationApiResult{}\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiResult) InitDefault() {\n}\n\nvar ConversationServiceRetrieveConversationApiResult_Success_DEFAULT *RetrieveConversationApiResponse\n\nfunc (p *ConversationServiceRetrieveConversationApiResult) GetSuccess() (v *RetrieveConversationApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ConversationServiceRetrieveConversationApiResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ConversationServiceRetrieveConversationApiResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationServiceRetrieveConversationApiResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewRetrieveConversationApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RetrieveConversationApi_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ConversationServiceRetrieveConversationApiResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationServiceRetrieveConversationApiResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/conversation/message/message.go",
    "content": "// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage message\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/common\"\n)\n\nconst (\n\tOrderByDesc = \"DESC\"\n\n\tOrderByAsc = \"ASC\"\n)\n\ntype LoadDirection int64\n\nconst (\n\tLoadDirection_Unknown LoadDirection = 0\n\tLoadDirection_Prev    LoadDirection = 1\n\tLoadDirection_Next    LoadDirection = 2\n)\n\nfunc (p LoadDirection) String() string {\n\tswitch p {\n\tcase LoadDirection_Unknown:\n\t\treturn \"Unknown\"\n\tcase LoadDirection_Prev:\n\t\treturn \"Prev\"\n\tcase LoadDirection_Next:\n\t\treturn \"Next\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc LoadDirectionFromString(s string) (LoadDirection, error) {\n\tswitch s {\n\tcase \"Unknown\":\n\t\treturn LoadDirection_Unknown, nil\n\tcase \"Prev\":\n\t\treturn LoadDirection_Prev, nil\n\tcase \"Next\":\n\t\treturn LoadDirection_Next, nil\n\t}\n\treturn LoadDirection(0), fmt.Errorf(\"not a valid LoadDirection string\")\n}\n\nfunc LoadDirectionPtr(v LoadDirection) *LoadDirection { return &v }\nfunc (p *LoadDirection) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = LoadDirection(result.Int64)\n\treturn\n}\n\nfunc (p *LoadDirection) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype MsgParticipantType int64\n\nconst (\n\tMsgParticipantType_Bot  MsgParticipantType = 1\n\tMsgParticipantType_User MsgParticipantType = 2\n)\n\nfunc (p MsgParticipantType) String() string {\n\tswitch p {\n\tcase MsgParticipantType_Bot:\n\t\treturn \"Bot\"\n\tcase MsgParticipantType_User:\n\t\treturn \"User\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc MsgParticipantTypeFromString(s string) (MsgParticipantType, error) {\n\tswitch s {\n\tcase \"Bot\":\n\t\treturn MsgParticipantType_Bot, nil\n\tcase \"User\":\n\t\treturn MsgParticipantType_User, nil\n\t}\n\treturn MsgParticipantType(0), fmt.Errorf(\"not a valid MsgParticipantType string\")\n}\n\nfunc MsgParticipantTypePtr(v MsgParticipantType) *MsgParticipantType { return &v }\nfunc (p *MsgParticipantType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = MsgParticipantType(result.Int64)\n\treturn\n}\n\nfunc (p *MsgParticipantType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Enumeration following copilot definition\ntype ChatMessageMetaType int64\n\nconst (\n\t// Compatible value\n\tChatMessageMetaType_Default_0 ChatMessageMetaType = 0\n\t// End-to-side direct replacement\n\tChatMessageMetaType_Replaceable ChatMessageMetaType = 1\n\t// insert reference\n\tChatMessageMetaType_Insertable ChatMessageMetaType = 2\n\t// document citation\n\tChatMessageMetaType_DocumentRef ChatMessageMetaType = 3\n\t// Knowledge Base Reference Card\n\tChatMessageMetaType_KnowledgeCard ChatMessageMetaType = 4\n\t// The embedded multimedia information is only used by Alice for the end. Because full link multiplexing uses this field, it has been changed here.\n\tChatMessageMetaType_EmbeddedMultimedia ChatMessageMetaType = 100\n)\n\nfunc (p ChatMessageMetaType) String() string {\n\tswitch p {\n\tcase ChatMessageMetaType_Default_0:\n\t\treturn \"Default_0\"\n\tcase ChatMessageMetaType_Replaceable:\n\t\treturn \"Replaceable\"\n\tcase ChatMessageMetaType_Insertable:\n\t\treturn \"Insertable\"\n\tcase ChatMessageMetaType_DocumentRef:\n\t\treturn \"DocumentRef\"\n\tcase ChatMessageMetaType_KnowledgeCard:\n\t\treturn \"KnowledgeCard\"\n\tcase ChatMessageMetaType_EmbeddedMultimedia:\n\t\treturn \"EmbeddedMultimedia\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ChatMessageMetaTypeFromString(s string) (ChatMessageMetaType, error) {\n\tswitch s {\n\tcase \"Default_0\":\n\t\treturn ChatMessageMetaType_Default_0, nil\n\tcase \"Replaceable\":\n\t\treturn ChatMessageMetaType_Replaceable, nil\n\tcase \"Insertable\":\n\t\treturn ChatMessageMetaType_Insertable, nil\n\tcase \"DocumentRef\":\n\t\treturn ChatMessageMetaType_DocumentRef, nil\n\tcase \"KnowledgeCard\":\n\t\treturn ChatMessageMetaType_KnowledgeCard, nil\n\tcase \"EmbeddedMultimedia\":\n\t\treturn ChatMessageMetaType_EmbeddedMultimedia, nil\n\t}\n\treturn ChatMessageMetaType(0), fmt.Errorf(\"not a valid ChatMessageMetaType string\")\n}\n\nfunc ChatMessageMetaTypePtr(v ChatMessageMetaType) *ChatMessageMetaType { return &v }\nfunc (p *ChatMessageMetaType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ChatMessageMetaType(result.Int64)\n\treturn\n}\n\nfunc (p *ChatMessageMetaType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ExtraInfo struct {\n\tLocalMessageID string `thrift:\"local_message_id,1\" form:\"local_message_id\" json:\"local_message_id\" query:\"local_message_id\"`\n\tInputTokens    string `thrift:\"input_tokens,2\" form:\"input_tokens\" json:\"input_tokens\" query:\"input_tokens\"`\n\tOutputTokens   string `thrift:\"output_tokens,3\" form:\"output_tokens\" json:\"output_tokens\" query:\"output_tokens\"`\n\tToken          string `thrift:\"token,4\" form:\"token\" json:\"token\" query:\"token\"`\n\t// \"success\" or \"fail\"\n\tPluginStatus        string `thrift:\"plugin_status,5\" form:\"plugin_status\" json:\"plugin_status\" query:\"plugin_status\"`\n\tTimeCost            string `thrift:\"time_cost,6\" form:\"time_cost\" json:\"time_cost\" query:\"time_cost\"`\n\tWorkflowTokens      string `thrift:\"workflow_tokens,7\" form:\"workflow_tokens\" json:\"workflow_tokens\" query:\"workflow_tokens\"`\n\tBotState            string `thrift:\"bot_state,8\" form:\"bot_state\" json:\"bot_state\" query:\"bot_state\"`\n\tPluginRequest       string `thrift:\"plugin_request,9\" form:\"plugin_request\" json:\"plugin_request\" query:\"plugin_request\"`\n\tToolName            string `thrift:\"tool_name,10\" form:\"tool_name\" json:\"tool_name\" query:\"tool_name\"`\n\tPlugin              string `thrift:\"plugin,11\" form:\"plugin\" json:\"plugin\" query:\"plugin\"`\n\tMockHitInfo         string `thrift:\"mock_hit_info,12\" form:\"mock_hit_info\" json:\"mock_hit_info\" query:\"mock_hit_info\"`\n\tLogID               string `thrift:\"log_id,13\" form:\"log_id\" json:\"log_id\" query:\"log_id\"`\n\tStreamID            string `thrift:\"stream_id,14\" form:\"stream_id\" json:\"stream_id\" query:\"stream_id\"`\n\tMessageTitle        string `thrift:\"message_title,15\" form:\"message_title\" json:\"message_title\" query:\"message_title\"`\n\tStreamPluginRunning string `thrift:\"stream_plugin_running,16\" form:\"stream_plugin_running\" json:\"stream_plugin_running\" query:\"stream_plugin_running\"`\n\tNewSectionID        string `thrift:\"new_section_id,17\" form:\"new_section_id\" json:\"new_section_id\" query:\"new_section_id\"`\n\tRemoveQueryID       string `thrift:\"remove_query_id,18\" form:\"remove_query_id\" json:\"remove_query_id\" query:\"remove_query_id\"`\n\tExecuteDisplayName  string `thrift:\"execute_display_name,19\" form:\"execute_display_name\" json:\"execute_display_name\" query:\"execute_display_name\"`\n\t// Corresponding to timed task task_type, 1-preset task, 2-user task, 3-Plugin background task\n\tTaskType string `thrift:\"task_type,20\" form:\"task_type\" json:\"task_type\" query:\"task_type\"`\n\t//Agent app uses reference format\n\tReferFormat string `thrift:\"refer_format,21\" form:\"refer_format\" json:\"refer_format\" query:\"refer_format\"`\n\tCallID      string `thrift:\"call_id,22\" form:\"call_id\" json:\"call_id\" query:\"call_id\"`\n}\n\nfunc NewExtraInfo() *ExtraInfo {\n\treturn &ExtraInfo{}\n}\n\nfunc (p *ExtraInfo) InitDefault() {\n}\n\nfunc (p *ExtraInfo) GetLocalMessageID() (v string) {\n\treturn p.LocalMessageID\n}\n\nfunc (p *ExtraInfo) GetInputTokens() (v string) {\n\treturn p.InputTokens\n}\n\nfunc (p *ExtraInfo) GetOutputTokens() (v string) {\n\treturn p.OutputTokens\n}\n\nfunc (p *ExtraInfo) GetToken() (v string) {\n\treturn p.Token\n}\n\nfunc (p *ExtraInfo) GetPluginStatus() (v string) {\n\treturn p.PluginStatus\n}\n\nfunc (p *ExtraInfo) GetTimeCost() (v string) {\n\treturn p.TimeCost\n}\n\nfunc (p *ExtraInfo) GetWorkflowTokens() (v string) {\n\treturn p.WorkflowTokens\n}\n\nfunc (p *ExtraInfo) GetBotState() (v string) {\n\treturn p.BotState\n}\n\nfunc (p *ExtraInfo) GetPluginRequest() (v string) {\n\treturn p.PluginRequest\n}\n\nfunc (p *ExtraInfo) GetToolName() (v string) {\n\treturn p.ToolName\n}\n\nfunc (p *ExtraInfo) GetPlugin() (v string) {\n\treturn p.Plugin\n}\n\nfunc (p *ExtraInfo) GetMockHitInfo() (v string) {\n\treturn p.MockHitInfo\n}\n\nfunc (p *ExtraInfo) GetLogID() (v string) {\n\treturn p.LogID\n}\n\nfunc (p *ExtraInfo) GetStreamID() (v string) {\n\treturn p.StreamID\n}\n\nfunc (p *ExtraInfo) GetMessageTitle() (v string) {\n\treturn p.MessageTitle\n}\n\nfunc (p *ExtraInfo) GetStreamPluginRunning() (v string) {\n\treturn p.StreamPluginRunning\n}\n\nfunc (p *ExtraInfo) GetNewSectionID() (v string) {\n\treturn p.NewSectionID\n}\n\nfunc (p *ExtraInfo) GetRemoveQueryID() (v string) {\n\treturn p.RemoveQueryID\n}\n\nfunc (p *ExtraInfo) GetExecuteDisplayName() (v string) {\n\treturn p.ExecuteDisplayName\n}\n\nfunc (p *ExtraInfo) GetTaskType() (v string) {\n\treturn p.TaskType\n}\n\nfunc (p *ExtraInfo) GetReferFormat() (v string) {\n\treturn p.ReferFormat\n}\n\nfunc (p *ExtraInfo) GetCallID() (v string) {\n\treturn p.CallID\n}\n\nvar fieldIDToName_ExtraInfo = map[int16]string{\n\t1:  \"local_message_id\",\n\t2:  \"input_tokens\",\n\t3:  \"output_tokens\",\n\t4:  \"token\",\n\t5:  \"plugin_status\",\n\t6:  \"time_cost\",\n\t7:  \"workflow_tokens\",\n\t8:  \"bot_state\",\n\t9:  \"plugin_request\",\n\t10: \"tool_name\",\n\t11: \"plugin\",\n\t12: \"mock_hit_info\",\n\t13: \"log_id\",\n\t14: \"stream_id\",\n\t15: \"message_title\",\n\t16: \"stream_plugin_running\",\n\t17: \"new_section_id\",\n\t18: \"remove_query_id\",\n\t19: \"execute_display_name\",\n\t20: \"task_type\",\n\t21: \"refer_format\",\n\t22: \"call_id\",\n}\n\nfunc (p *ExtraInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ExtraInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ExtraInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LocalMessageID = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.InputTokens = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OutputTokens = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Token = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginStatus = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TimeCost = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowTokens = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotState = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginRequest = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ToolName = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Plugin = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MockHitInfo = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LogID = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StreamID = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MessageTitle = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StreamPluginRunning = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NewSectionID = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RemoveQueryID = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExecuteDisplayName = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TaskType = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReferFormat = _field\n\treturn nil\n}\nfunc (p *ExtraInfo) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CallID = _field\n\treturn nil\n}\n\nfunc (p *ExtraInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ExtraInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ExtraInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"local_message_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LocalMessageID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"input_tokens\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.InputTokens); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"output_tokens\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.OutputTokens); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Token); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_status\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginStatus); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"time_cost\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TimeCost); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_tokens\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowTokens); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_state\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BotState); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_request\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginRequest); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tool_name\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ToolName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Plugin); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"mock_hit_info\", thrift.STRING, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.MockHitInfo); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"log_id\", thrift.STRING, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LogID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"stream_id\", thrift.STRING, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.StreamID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"message_title\", thrift.STRING, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.MessageTitle); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"stream_plugin_running\", thrift.STRING, 16); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.StreamPluginRunning); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"new_section_id\", thrift.STRING, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NewSectionID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"remove_query_id\", thrift.STRING, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.RemoveQueryID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"execute_display_name\", thrift.STRING, 19); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExecuteDisplayName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"task_type\", thrift.STRING, 20); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TaskType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField21(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"refer_format\", thrift.STRING, 21); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ReferFormat); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *ExtraInfo) writeField22(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"call_id\", thrift.STRING, 22); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CallID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\n\nfunc (p *ExtraInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ExtraInfo(%+v)\", *p)\n\n}\n\ntype MsgParticipantInfo struct {\n\tID           string             `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tType         MsgParticipantType `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n\tName         string             `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc         string             `thrift:\"desc,4\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tAvatarURL    string             `thrift:\"avatar_url,5\" form:\"avatar_url\" json:\"avatar_url\" query:\"avatar_url\"`\n\tSpaceID      string             `thrift:\"space_id,6\" form:\"space_id\" json:\"space_id\" query:\"space_id\"`\n\tUserID       string             `thrift:\"user_id,7\" form:\"user_id\" json:\"user_id\" query:\"user_id\"`\n\tUserName     string             `thrift:\"user_name,8\" form:\"user_name\" json:\"user_name\" query:\"user_name\"`\n\tAllowMention bool               `thrift:\"allow_mention,9\" form:\"allow_mention\" json:\"allow_mention\" query:\"allow_mention\"`\n\tAccessPath   string             `thrift:\"access_path,10\" form:\"access_path\" json:\"access_path\" query:\"access_path\"`\n\t// Is collected\n\tIsFav bool `thrift:\"is_fav,11\" form:\"is_fav\" json:\"is_fav\" query:\"is_fav\"`\n\t//    12: shortcut_command ShortcutStruct shortcuts//Shortcuts\n\tAllowShare bool `thrift:\"allow_share,13\" form:\"allow_share\" json:\"allow_share\" query:\"allow_share\"`\n}\n\nfunc NewMsgParticipantInfo() *MsgParticipantInfo {\n\treturn &MsgParticipantInfo{}\n}\n\nfunc (p *MsgParticipantInfo) InitDefault() {\n}\n\nfunc (p *MsgParticipantInfo) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *MsgParticipantInfo) GetType() (v MsgParticipantType) {\n\treturn p.Type\n}\n\nfunc (p *MsgParticipantInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *MsgParticipantInfo) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *MsgParticipantInfo) GetAvatarURL() (v string) {\n\treturn p.AvatarURL\n}\n\nfunc (p *MsgParticipantInfo) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *MsgParticipantInfo) GetUserID() (v string) {\n\treturn p.UserID\n}\n\nfunc (p *MsgParticipantInfo) GetUserName() (v string) {\n\treturn p.UserName\n}\n\nfunc (p *MsgParticipantInfo) GetAllowMention() (v bool) {\n\treturn p.AllowMention\n}\n\nfunc (p *MsgParticipantInfo) GetAccessPath() (v string) {\n\treturn p.AccessPath\n}\n\nfunc (p *MsgParticipantInfo) GetIsFav() (v bool) {\n\treturn p.IsFav\n}\n\nfunc (p *MsgParticipantInfo) GetAllowShare() (v bool) {\n\treturn p.AllowShare\n}\n\nvar fieldIDToName_MsgParticipantInfo = map[int16]string{\n\t1:  \"id\",\n\t2:  \"type\",\n\t3:  \"name\",\n\t4:  \"desc\",\n\t5:  \"avatar_url\",\n\t6:  \"space_id\",\n\t7:  \"user_id\",\n\t8:  \"user_name\",\n\t9:  \"allow_mention\",\n\t10: \"access_path\",\n\t11: \"is_fav\",\n\t13: \"allow_share\",\n}\n\nfunc (p *MsgParticipantInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MsgParticipantInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MsgParticipantInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *MsgParticipantInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field MsgParticipantType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = MsgParticipantType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *MsgParticipantInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *MsgParticipantInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *MsgParticipantInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AvatarURL = _field\n\treturn nil\n}\nfunc (p *MsgParticipantInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *MsgParticipantInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *MsgParticipantInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserName = _field\n\treturn nil\n}\nfunc (p *MsgParticipantInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AllowMention = _field\n\treturn nil\n}\nfunc (p *MsgParticipantInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AccessPath = _field\n\treturn nil\n}\nfunc (p *MsgParticipantInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsFav = _field\n\treturn nil\n}\nfunc (p *MsgParticipantInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AllowShare = _field\n\treturn nil\n}\n\nfunc (p *MsgParticipantInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MsgParticipantInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MsgParticipantInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MsgParticipantInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MsgParticipantInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *MsgParticipantInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *MsgParticipantInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"avatar_url\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AvatarURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *MsgParticipantInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *MsgParticipantInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *MsgParticipantInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_name\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *MsgParticipantInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"allow_mention\", thrift.BOOL, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.AllowMention); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *MsgParticipantInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"access_path\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AccessPath); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *MsgParticipantInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_fav\", thrift.BOOL, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsFav); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *MsgParticipantInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"allow_share\", thrift.BOOL, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.AllowShare); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *MsgParticipantInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MsgParticipantInfo(%+v)\", *p)\n\n}\n\n//\tstruct InterruptFunction {\n//\t 1: string name\n//\t 2: string arguments\n//\t}\n//\n//\tstruct InterruptRequireInfo {\n//\t 1: string require_fields\n//\t 2: string name\n//\t}\ntype InterruptPlugin struct {\n\tID string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\t// 1 function, 2 require_info\n\tType string `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n}\n\nfunc NewInterruptPlugin() *InterruptPlugin {\n\treturn &InterruptPlugin{}\n}\n\nfunc (p *InterruptPlugin) InitDefault() {\n}\n\nfunc (p *InterruptPlugin) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *InterruptPlugin) GetType() (v string) {\n\treturn p.Type\n}\n\nvar fieldIDToName_InterruptPlugin = map[int16]string{\n\t1: \"id\",\n\t2: \"type\",\n}\n\nfunc (p *InterruptPlugin) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_InterruptPlugin[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *InterruptPlugin) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *InterruptPlugin) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\n\nfunc (p *InterruptPlugin) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"InterruptPlugin\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *InterruptPlugin) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *InterruptPlugin) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *InterruptPlugin) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"InterruptPlugin(%+v)\", *p)\n\n}\n\ntype SubmitToolOutputs struct {\n\tToolCalls []*InterruptPlugin `thrift:\"tool_calls,1\" form:\"tool_calls\" json:\"tool_calls\" query:\"tool_calls\"`\n}\n\nfunc NewSubmitToolOutputs() *SubmitToolOutputs {\n\treturn &SubmitToolOutputs{}\n}\n\nfunc (p *SubmitToolOutputs) InitDefault() {\n}\n\nfunc (p *SubmitToolOutputs) GetToolCalls() (v []*InterruptPlugin) {\n\treturn p.ToolCalls\n}\n\nvar fieldIDToName_SubmitToolOutputs = map[int16]string{\n\t1: \"tool_calls\",\n}\n\nfunc (p *SubmitToolOutputs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SubmitToolOutputs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SubmitToolOutputs) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*InterruptPlugin, 0, size)\n\tvalues := make([]InterruptPlugin, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ToolCalls = _field\n\treturn nil\n}\n\nfunc (p *SubmitToolOutputs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitToolOutputs\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SubmitToolOutputs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tool_calls\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ToolCalls)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ToolCalls {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *SubmitToolOutputs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SubmitToolOutputs(%+v)\", *p)\n\n}\n\n// Keep up with bot_connector_platform\ntype RequiredAction struct {\n\tType              string             `thrift:\"type,1\" form:\"type\" json:\"type\" query:\"type\"`\n\tSubmitToolOutputs *SubmitToolOutputs `thrift:\"submit_tool_outputs,2\" form:\"submit_tool_outputs\" json:\"submit_tool_outputs\" query:\"submit_tool_outputs\"`\n}\n\nfunc NewRequiredAction() *RequiredAction {\n\treturn &RequiredAction{}\n}\n\nfunc (p *RequiredAction) InitDefault() {\n}\n\nfunc (p *RequiredAction) GetType() (v string) {\n\treturn p.Type\n}\n\nvar RequiredAction_SubmitToolOutputs_DEFAULT *SubmitToolOutputs\n\nfunc (p *RequiredAction) GetSubmitToolOutputs() (v *SubmitToolOutputs) {\n\tif !p.IsSetSubmitToolOutputs() {\n\t\treturn RequiredAction_SubmitToolOutputs_DEFAULT\n\t}\n\treturn p.SubmitToolOutputs\n}\n\nvar fieldIDToName_RequiredAction = map[int16]string{\n\t1: \"type\",\n\t2: \"submit_tool_outputs\",\n}\n\nfunc (p *RequiredAction) IsSetSubmitToolOutputs() bool {\n\treturn p.SubmitToolOutputs != nil\n}\n\nfunc (p *RequiredAction) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RequiredAction[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *RequiredAction) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *RequiredAction) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewSubmitToolOutputs()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SubmitToolOutputs = _field\n\treturn nil\n}\n\nfunc (p *RequiredAction) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RequiredAction\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RequiredAction) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RequiredAction) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"submit_tool_outputs\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.SubmitToolOutputs.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *RequiredAction) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RequiredAction(%+v)\", *p)\n\n}\n\ntype ChatMessageMetaInfo struct {\n\tType ChatMessageMetaType `thrift:\"type,1\" form:\"type\" json:\"type\" query:\"type\"`\n\tInfo string              `thrift:\"info,2\" form:\"info\" json:\"info\" query:\"info\"`\n}\n\nfunc NewChatMessageMetaInfo() *ChatMessageMetaInfo {\n\treturn &ChatMessageMetaInfo{}\n}\n\nfunc (p *ChatMessageMetaInfo) InitDefault() {\n}\n\nfunc (p *ChatMessageMetaInfo) GetType() (v ChatMessageMetaType) {\n\treturn p.Type\n}\n\nfunc (p *ChatMessageMetaInfo) GetInfo() (v string) {\n\treturn p.Info\n}\n\nvar fieldIDToName_ChatMessageMetaInfo = map[int16]string{\n\t1: \"type\",\n\t2: \"info\",\n}\n\nfunc (p *ChatMessageMetaInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatMessageMetaInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ChatMessageMetaInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field ChatMessageMetaType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ChatMessageMetaType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ChatMessageMetaInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Info = _field\n\treturn nil\n}\n\nfunc (p *ChatMessageMetaInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatMessageMetaInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatMessageMetaInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatMessageMetaInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"info\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Info); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ChatMessageMetaInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatMessageMetaInfo(%+v)\", *p)\n\n}\n\ntype ChatMessage struct {\n\tRole        string     `thrift:\"role,1\" form:\"role\" json:\"role\" query:\"role\"`\n\tType        string     `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n\tContent     string     `thrift:\"content,3\" form:\"content\" json:\"content\" query:\"content\"`\n\tContentType string     `thrift:\"content_type,4\" form:\"content_type\" json:\"content_type\" query:\"content_type\"`\n\tMessageID   string     `thrift:\"message_id,5\" form:\"message_id\" json:\"message_id\" query:\"message_id\"`\n\tReplyID     string     `thrift:\"reply_id,6\" form:\"reply_id\" json:\"reply_id\" query:\"reply_id\"`\n\tSectionID   string     `thrift:\"section_id,7\" form:\"section_id\" json:\"section_id\" query:\"section_id\"`\n\tExtraInfo   *ExtraInfo `thrift:\"extra_info,8\" form:\"extra_info\" json:\"extra_info\" query:\"extra_info\"`\n\t// Normal, interrupted state, used when pulling the message list, this field is not available when chat is running.\n\tStatus string `thrift:\"status,9\" form:\"status\" json:\"status\" query:\"status\"`\n\t// interrupt position\n\tBrokenPos    *int32                `thrift:\"broken_pos,10,optional\" form:\"broken_pos\" json:\"broken_pos,omitempty\" query:\"broken_pos\"`\n\tSenderID     *string               `thrift:\"sender_id,11,optional\" form:\"sender_id\" json:\"sender_id,omitempty\" query:\"sender_id\"`\n\tMentionList  []*MsgParticipantInfo `thrift:\"mention_list,12,optional\" form:\"mention_list\" json:\"mention_list,omitempty\" query:\"mention_list\"`\n\tContentTime  int64                 `thrift:\"content_time,13\" form:\"content_time\" json:\"content_time\" query:\"content_time\"`\n\tMessageIndex int64                 `thrift:\"message_index,14\" json:\"message_index,string\" form:\"message_index\" query:\"message_index\"`\n\t// Sources, 0 normal chat messages, 1 scheduled task, 2 notifications, 3 asynchronous results\n\tSource int32 `thrift:\"source,15\" form:\"source\" json:\"source\" query:\"source\"`\n\t// Corresponding to the replied query, the backend cannot be found, and a backend is added.\n\tReplyMessage *ChatMessage `thrift:\"reply_message,16,optional\" form:\"reply_message\" json:\"reply_message,omitempty\" query:\"reply_message\"`\n\t// interrupt message\n\tRequiredAction *RequiredAction `thrift:\"required_action,17,optional\" form:\"required_action\" json:\"required_action,omitempty\" query:\"required_action\"`\n\t// Text markup such as quoting, highlighting, etc\n\tMetaInfos []*ChatMessageMetaInfo `thrift:\"meta_infos,18,optional\" form:\"meta_infos\" json:\"meta_infos,omitempty\" query:\"meta_infos\"`\n\t// Card Status\n\tCardStatus map[string]string `thrift:\"card_status,19,optional\" form:\"card_status\" json:\"card_status,omitempty\" query:\"card_status\"`\n\t//Model Thinking Chain\n\tReasoningContent *string `thrift:\"reasoning_content,20,optional\" form:\"reasoning_content\" json:\"reasoning_content,omitempty\" query:\"reasoning_content\"`\n}\n\nfunc NewChatMessage() *ChatMessage {\n\treturn &ChatMessage{}\n}\n\nfunc (p *ChatMessage) InitDefault() {\n}\n\nfunc (p *ChatMessage) GetRole() (v string) {\n\treturn p.Role\n}\n\nfunc (p *ChatMessage) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *ChatMessage) GetContent() (v string) {\n\treturn p.Content\n}\n\nfunc (p *ChatMessage) GetContentType() (v string) {\n\treturn p.ContentType\n}\n\nfunc (p *ChatMessage) GetMessageID() (v string) {\n\treturn p.MessageID\n}\n\nfunc (p *ChatMessage) GetReplyID() (v string) {\n\treturn p.ReplyID\n}\n\nfunc (p *ChatMessage) GetSectionID() (v string) {\n\treturn p.SectionID\n}\n\nvar ChatMessage_ExtraInfo_DEFAULT *ExtraInfo\n\nfunc (p *ChatMessage) GetExtraInfo() (v *ExtraInfo) {\n\tif !p.IsSetExtraInfo() {\n\t\treturn ChatMessage_ExtraInfo_DEFAULT\n\t}\n\treturn p.ExtraInfo\n}\n\nfunc (p *ChatMessage) GetStatus() (v string) {\n\treturn p.Status\n}\n\nvar ChatMessage_BrokenPos_DEFAULT int32\n\nfunc (p *ChatMessage) GetBrokenPos() (v int32) {\n\tif !p.IsSetBrokenPos() {\n\t\treturn ChatMessage_BrokenPos_DEFAULT\n\t}\n\treturn *p.BrokenPos\n}\n\nvar ChatMessage_SenderID_DEFAULT string\n\nfunc (p *ChatMessage) GetSenderID() (v string) {\n\tif !p.IsSetSenderID() {\n\t\treturn ChatMessage_SenderID_DEFAULT\n\t}\n\treturn *p.SenderID\n}\n\nvar ChatMessage_MentionList_DEFAULT []*MsgParticipantInfo\n\nfunc (p *ChatMessage) GetMentionList() (v []*MsgParticipantInfo) {\n\tif !p.IsSetMentionList() {\n\t\treturn ChatMessage_MentionList_DEFAULT\n\t}\n\treturn p.MentionList\n}\n\nfunc (p *ChatMessage) GetContentTime() (v int64) {\n\treturn p.ContentTime\n}\n\nfunc (p *ChatMessage) GetMessageIndex() (v int64) {\n\treturn p.MessageIndex\n}\n\nfunc (p *ChatMessage) GetSource() (v int32) {\n\treturn p.Source\n}\n\nvar ChatMessage_ReplyMessage_DEFAULT *ChatMessage\n\nfunc (p *ChatMessage) GetReplyMessage() (v *ChatMessage) {\n\tif !p.IsSetReplyMessage() {\n\t\treturn ChatMessage_ReplyMessage_DEFAULT\n\t}\n\treturn p.ReplyMessage\n}\n\nvar ChatMessage_RequiredAction_DEFAULT *RequiredAction\n\nfunc (p *ChatMessage) GetRequiredAction() (v *RequiredAction) {\n\tif !p.IsSetRequiredAction() {\n\t\treturn ChatMessage_RequiredAction_DEFAULT\n\t}\n\treturn p.RequiredAction\n}\n\nvar ChatMessage_MetaInfos_DEFAULT []*ChatMessageMetaInfo\n\nfunc (p *ChatMessage) GetMetaInfos() (v []*ChatMessageMetaInfo) {\n\tif !p.IsSetMetaInfos() {\n\t\treturn ChatMessage_MetaInfos_DEFAULT\n\t}\n\treturn p.MetaInfos\n}\n\nvar ChatMessage_CardStatus_DEFAULT map[string]string\n\nfunc (p *ChatMessage) GetCardStatus() (v map[string]string) {\n\tif !p.IsSetCardStatus() {\n\t\treturn ChatMessage_CardStatus_DEFAULT\n\t}\n\treturn p.CardStatus\n}\n\nvar ChatMessage_ReasoningContent_DEFAULT string\n\nfunc (p *ChatMessage) GetReasoningContent() (v string) {\n\tif !p.IsSetReasoningContent() {\n\t\treturn ChatMessage_ReasoningContent_DEFAULT\n\t}\n\treturn *p.ReasoningContent\n}\n\nvar fieldIDToName_ChatMessage = map[int16]string{\n\t1:  \"role\",\n\t2:  \"type\",\n\t3:  \"content\",\n\t4:  \"content_type\",\n\t5:  \"message_id\",\n\t6:  \"reply_id\",\n\t7:  \"section_id\",\n\t8:  \"extra_info\",\n\t9:  \"status\",\n\t10: \"broken_pos\",\n\t11: \"sender_id\",\n\t12: \"mention_list\",\n\t13: \"content_time\",\n\t14: \"message_index\",\n\t15: \"source\",\n\t16: \"reply_message\",\n\t17: \"required_action\",\n\t18: \"meta_infos\",\n\t19: \"card_status\",\n\t20: \"reasoning_content\",\n}\n\nfunc (p *ChatMessage) IsSetExtraInfo() bool {\n\treturn p.ExtraInfo != nil\n}\n\nfunc (p *ChatMessage) IsSetBrokenPos() bool {\n\treturn p.BrokenPos != nil\n}\n\nfunc (p *ChatMessage) IsSetSenderID() bool {\n\treturn p.SenderID != nil\n}\n\nfunc (p *ChatMessage) IsSetMentionList() bool {\n\treturn p.MentionList != nil\n}\n\nfunc (p *ChatMessage) IsSetReplyMessage() bool {\n\treturn p.ReplyMessage != nil\n}\n\nfunc (p *ChatMessage) IsSetRequiredAction() bool {\n\treturn p.RequiredAction != nil\n}\n\nfunc (p *ChatMessage) IsSetMetaInfos() bool {\n\treturn p.MetaInfos != nil\n}\n\nfunc (p *ChatMessage) IsSetCardStatus() bool {\n\treturn p.CardStatus != nil\n}\n\nfunc (p *ChatMessage) IsSetReasoningContent() bool {\n\treturn p.ReasoningContent != nil\n}\n\nfunc (p *ChatMessage) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatMessage[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ChatMessage) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Role = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ContentType = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MessageID = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReplyID = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SectionID = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewExtraInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ExtraInfo = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BrokenPos = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SenderID = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField12(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*MsgParticipantInfo, 0, size)\n\tvalues := make([]MsgParticipantInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MentionList = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ContentTime = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MessageIndex = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Source = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField16(iprot thrift.TProtocol) error {\n\t_field := NewChatMessage()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ReplyMessage = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField17(iprot thrift.TProtocol) error {\n\t_field := NewRequiredAction()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RequiredAction = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField18(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ChatMessageMetaInfo, 0, size)\n\tvalues := make([]ChatMessageMetaInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaInfos = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField19(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CardStatus = _field\n\treturn nil\n}\nfunc (p *ChatMessage) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ReasoningContent = _field\n\treturn nil\n}\n\nfunc (p *ChatMessage) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatMessage\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatMessage) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"role\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Role); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"content\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"content_type\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ContentType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"message_id\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.MessageID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"reply_id\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ReplyID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"section_id\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SectionID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"extra_info\", thrift.STRUCT, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ExtraInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Status); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBrokenPos() {\n\t\tif err = oprot.WriteFieldBegin(\"broken_pos\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.BrokenPos); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSenderID() {\n\t\tif err = oprot.WriteFieldBegin(\"sender_id\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SenderID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMentionList() {\n\t\tif err = oprot.WriteFieldBegin(\"mention_list\", thrift.LIST, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.MentionList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.MentionList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"content_time\", thrift.I64, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ContentTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"message_index\", thrift.I64, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.MessageIndex); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"source\", thrift.I32, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Source); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReplyMessage() {\n\t\tif err = oprot.WriteFieldBegin(\"reply_message\", thrift.STRUCT, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ReplyMessage.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRequiredAction() {\n\t\tif err = oprot.WriteFieldBegin(\"required_action\", thrift.STRUCT, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RequiredAction.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMetaInfos() {\n\t\tif err = oprot.WriteFieldBegin(\"meta_infos\", thrift.LIST, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.MetaInfos)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.MetaInfos {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCardStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"card_status\", thrift.MAP, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.CardStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.CardStatus {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *ChatMessage) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReasoningContent() {\n\t\tif err = oprot.WriteFieldBegin(\"reasoning_content\", thrift.STRING, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ReasoningContent); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\n\nfunc (p *ChatMessage) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatMessage(%+v)\", *p)\n\n}\n\ntype GetMessageListRequest struct {\n\tConversationID string `thrift:\"conversation_id,1\" form:\"conversation_id\" json:\"conversation_id\" query:\"conversation_id\"`\n\t// First pass 0/-1, 0 - last page, -1 - unread first page\n\tCursor    string `thrift:\"cursor,2,required\" form:\"cursor,required\" json:\"cursor,required\" query:\"cursor,required\"`\n\tCount     int32  `thrift:\"count,3,required\" form:\"count,required\" json:\"count,required\" query:\"count,required\"`\n\tBotID     string `thrift:\"bot_id,4\" form:\"bot_id\" json:\"bot_id\" query:\"bot_id\"`\n\tDraftMode *bool  `thrift:\"draft_mode,5,optional\" form:\"draft_mode\" json:\"draft_mode,omitempty\" query:\"draft_mode\"`\n\t// The bot template used\n\tPresetBot *string       `thrift:\"preset_bot,6,optional\" form:\"preset_bot\" json:\"preset_bot,omitempty\" query:\"preset_bot\"`\n\tScene     *common.Scene `thrift:\"scene,7,optional\" form:\"scene\" json:\"scene,omitempty\" query:\"scene\"`\n\t// Different business situations under the same bot and uid\n\tBizKind *string `thrift:\"biz_kind,8,optional\" form:\"biz_kind\" json:\"biz_kind,omitempty\" query:\"biz_kind\"`\n\t// There are situations where you need to insert a chat before creating a chat history\n\tInsertHistoryMessageList []string       `thrift:\"insert_history_message_list,9,optional\" form:\"insert_history_message_list\" json:\"insert_history_message_list,omitempty\" query:\"insert_history_message_list\"`\n\tLoadDirection            *LoadDirection `thrift:\"load_direction,10,optional\" form:\"load_direction\" json:\"load_direction,omitempty\" query:\"load_direction\"`\n\t// Whether to force an appended message in an existing conversation\n\tMustAppend *bool `thrift:\"must_append,11,optional\" form:\"must_append\" json:\"must_append,omitempty\" query:\"must_append\"`\n\t// Share ID\n\tShareID *int64 `thrift:\"share_id,12,optional\" json:\"share_id,string\" form:\"share_id\" query:\"share_id\"`\n}\n\nfunc NewGetMessageListRequest() *GetMessageListRequest {\n\treturn &GetMessageListRequest{}\n}\n\nfunc (p *GetMessageListRequest) InitDefault() {\n}\n\nfunc (p *GetMessageListRequest) GetConversationID() (v string) {\n\treturn p.ConversationID\n}\n\nfunc (p *GetMessageListRequest) GetCursor() (v string) {\n\treturn p.Cursor\n}\n\nfunc (p *GetMessageListRequest) GetCount() (v int32) {\n\treturn p.Count\n}\n\nfunc (p *GetMessageListRequest) GetBotID() (v string) {\n\treturn p.BotID\n}\n\nvar GetMessageListRequest_DraftMode_DEFAULT bool\n\nfunc (p *GetMessageListRequest) GetDraftMode() (v bool) {\n\tif !p.IsSetDraftMode() {\n\t\treturn GetMessageListRequest_DraftMode_DEFAULT\n\t}\n\treturn *p.DraftMode\n}\n\nvar GetMessageListRequest_PresetBot_DEFAULT string\n\nfunc (p *GetMessageListRequest) GetPresetBot() (v string) {\n\tif !p.IsSetPresetBot() {\n\t\treturn GetMessageListRequest_PresetBot_DEFAULT\n\t}\n\treturn *p.PresetBot\n}\n\nvar GetMessageListRequest_Scene_DEFAULT common.Scene\n\nfunc (p *GetMessageListRequest) GetScene() (v common.Scene) {\n\tif !p.IsSetScene() {\n\t\treturn GetMessageListRequest_Scene_DEFAULT\n\t}\n\treturn *p.Scene\n}\n\nvar GetMessageListRequest_BizKind_DEFAULT string\n\nfunc (p *GetMessageListRequest) GetBizKind() (v string) {\n\tif !p.IsSetBizKind() {\n\t\treturn GetMessageListRequest_BizKind_DEFAULT\n\t}\n\treturn *p.BizKind\n}\n\nvar GetMessageListRequest_InsertHistoryMessageList_DEFAULT []string\n\nfunc (p *GetMessageListRequest) GetInsertHistoryMessageList() (v []string) {\n\tif !p.IsSetInsertHistoryMessageList() {\n\t\treturn GetMessageListRequest_InsertHistoryMessageList_DEFAULT\n\t}\n\treturn p.InsertHistoryMessageList\n}\n\nvar GetMessageListRequest_LoadDirection_DEFAULT LoadDirection\n\nfunc (p *GetMessageListRequest) GetLoadDirection() (v LoadDirection) {\n\tif !p.IsSetLoadDirection() {\n\t\treturn GetMessageListRequest_LoadDirection_DEFAULT\n\t}\n\treturn *p.LoadDirection\n}\n\nvar GetMessageListRequest_MustAppend_DEFAULT bool\n\nfunc (p *GetMessageListRequest) GetMustAppend() (v bool) {\n\tif !p.IsSetMustAppend() {\n\t\treturn GetMessageListRequest_MustAppend_DEFAULT\n\t}\n\treturn *p.MustAppend\n}\n\nvar GetMessageListRequest_ShareID_DEFAULT int64\n\nfunc (p *GetMessageListRequest) GetShareID() (v int64) {\n\tif !p.IsSetShareID() {\n\t\treturn GetMessageListRequest_ShareID_DEFAULT\n\t}\n\treturn *p.ShareID\n}\n\nvar fieldIDToName_GetMessageListRequest = map[int16]string{\n\t1:  \"conversation_id\",\n\t2:  \"cursor\",\n\t3:  \"count\",\n\t4:  \"bot_id\",\n\t5:  \"draft_mode\",\n\t6:  \"preset_bot\",\n\t7:  \"scene\",\n\t8:  \"biz_kind\",\n\t9:  \"insert_history_message_list\",\n\t10: \"load_direction\",\n\t11: \"must_append\",\n\t12: \"share_id\",\n}\n\nfunc (p *GetMessageListRequest) IsSetDraftMode() bool {\n\treturn p.DraftMode != nil\n}\n\nfunc (p *GetMessageListRequest) IsSetPresetBot() bool {\n\treturn p.PresetBot != nil\n}\n\nfunc (p *GetMessageListRequest) IsSetScene() bool {\n\treturn p.Scene != nil\n}\n\nfunc (p *GetMessageListRequest) IsSetBizKind() bool {\n\treturn p.BizKind != nil\n}\n\nfunc (p *GetMessageListRequest) IsSetInsertHistoryMessageList() bool {\n\treturn p.InsertHistoryMessageList != nil\n}\n\nfunc (p *GetMessageListRequest) IsSetLoadDirection() bool {\n\treturn p.LoadDirection != nil\n}\n\nfunc (p *GetMessageListRequest) IsSetMustAppend() bool {\n\treturn p.MustAppend != nil\n}\n\nfunc (p *GetMessageListRequest) IsSetShareID() bool {\n\treturn p.ShareID != nil\n}\n\nfunc (p *GetMessageListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCursor bool = false\n\tvar issetCount bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCursor = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCount = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCursor {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCount {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetMessageListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetMessageListRequest[fieldId]))\n}\n\nfunc (p *GetMessageListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *GetMessageListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Cursor = _field\n\treturn nil\n}\nfunc (p *GetMessageListRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Count = _field\n\treturn nil\n}\nfunc (p *GetMessageListRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetMessageListRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DraftMode = _field\n\treturn nil\n}\nfunc (p *GetMessageListRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PresetBot = _field\n\treturn nil\n}\nfunc (p *GetMessageListRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *common.Scene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.Scene(v)\n\t\t_field = &tmp\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *GetMessageListRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BizKind = _field\n\treturn nil\n}\nfunc (p *GetMessageListRequest) ReadField9(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.InsertHistoryMessageList = _field\n\treturn nil\n}\nfunc (p *GetMessageListRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *LoadDirection\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := LoadDirection(v)\n\t\t_field = &tmp\n\t}\n\tp.LoadDirection = _field\n\treturn nil\n}\nfunc (p *GetMessageListRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.MustAppend = _field\n\treturn nil\n}\nfunc (p *GetMessageListRequest) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ShareID = _field\n\treturn nil\n}\n\nfunc (p *GetMessageListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetMessageListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetMessageListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetMessageListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"cursor\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Cursor); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetMessageListRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"count\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Count); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetMessageListRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetMessageListRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDraftMode() {\n\t\tif err = oprot.WriteFieldBegin(\"draft_mode\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.DraftMode); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetMessageListRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPresetBot() {\n\t\tif err = oprot.WriteFieldBegin(\"preset_bot\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PresetBot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetMessageListRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScene() {\n\t\tif err = oprot.WriteFieldBegin(\"scene\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Scene)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetMessageListRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBizKind() {\n\t\tif err = oprot.WriteFieldBegin(\"biz_kind\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BizKind); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetMessageListRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInsertHistoryMessageList() {\n\t\tif err = oprot.WriteFieldBegin(\"insert_history_message_list\", thrift.LIST, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.InsertHistoryMessageList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.InsertHistoryMessageList {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetMessageListRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLoadDirection() {\n\t\tif err = oprot.WriteFieldBegin(\"load_direction\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.LoadDirection)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetMessageListRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMustAppend() {\n\t\tif err = oprot.WriteFieldBegin(\"must_append\", thrift.BOOL, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.MustAppend); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetMessageListRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShareID() {\n\t\tif err = oprot.WriteFieldBegin(\"share_id\", thrift.I64, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ShareID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\n\nfunc (p *GetMessageListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetMessageListRequest(%+v)\", *p)\n\n}\n\ntype GetMessageListResponse struct {\n\tMessageList []*ChatMessage `thrift:\"message_list,1,required\" form:\"message_list,required\" json:\"message_list,required\" query:\"message_list,required\"`\n\t// The position when the next brush exists (page up), opposite to the next_cursor page turning direction. Compatible with old logic, no prev prefix\n\tCursor string `thrift:\"cursor,2,required\" form:\"cursor,required\" json:\"cursor,required\" query:\"cursor,required\"`\n\t// Whether the next swipe exists (page up), the opposite direction to the next_has_more page turning. Compatible with old logic, without prev prefix\n\tHasmore        bool   `thrift:\"hasmore,3,required\" form:\"hasmore,required\" json:\"hasmore,required\" query:\"hasmore,required\"`\n\tConversationID string `thrift:\"conversation_id,4,required\" form:\"conversation_id,required\" json:\"conversation_id,required\" query:\"conversation_id,required\"`\n\t// Session Latest section_id Only First Brush Back\n\tLastSectionID      *string                        `thrift:\"last_section_id,5,optional\" form:\"last_section_id\" json:\"last_section_id,omitempty\" query:\"last_section_id\"`\n\tCode               int64                          `thrift:\"code,6\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg                string                         `thrift:\"msg,7\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tParticipantInfoMap map[string]*MsgParticipantInfo `thrift:\"participant_info_map,8,optional\" form:\"participant_info_map\" json:\"participant_info_map,omitempty\" query:\"participant_info_map\"`\n\t// The position when the next swipe exists (page down),\n\tNextCursor string `thrift:\"next_cursor,9\" form:\"next_cursor\" json:\"next_cursor\" query:\"next_cursor\"`\n\t// Does the next swipe exist (page down)\n\tNextHasMore      bool  `thrift:\"next_has_more,10\" form:\"next_has_more\" json:\"next_has_more\" query:\"next_has_more\"`\n\tReadMessageIndex int64 `thrift:\"read_message_index,11\" json:\"read_message_index,string\" form:\"read_message_index\" query:\"read_message_index\"`\n\t//ID for botconnector\n\tConnectorConversationID string `thrift:\"connector_conversation_id,12\" form:\"connector_conversation_id\" json:\"connector_conversation_id\" query:\"connector_conversation_id\"`\n}\n\nfunc NewGetMessageListResponse() *GetMessageListResponse {\n\treturn &GetMessageListResponse{}\n}\n\nfunc (p *GetMessageListResponse) InitDefault() {\n}\n\nfunc (p *GetMessageListResponse) GetMessageList() (v []*ChatMessage) {\n\treturn p.MessageList\n}\n\nfunc (p *GetMessageListResponse) GetCursor() (v string) {\n\treturn p.Cursor\n}\n\nfunc (p *GetMessageListResponse) GetHasmore() (v bool) {\n\treturn p.Hasmore\n}\n\nfunc (p *GetMessageListResponse) GetConversationID() (v string) {\n\treturn p.ConversationID\n}\n\nvar GetMessageListResponse_LastSectionID_DEFAULT string\n\nfunc (p *GetMessageListResponse) GetLastSectionID() (v string) {\n\tif !p.IsSetLastSectionID() {\n\t\treturn GetMessageListResponse_LastSectionID_DEFAULT\n\t}\n\treturn *p.LastSectionID\n}\n\nfunc (p *GetMessageListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetMessageListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetMessageListResponse_ParticipantInfoMap_DEFAULT map[string]*MsgParticipantInfo\n\nfunc (p *GetMessageListResponse) GetParticipantInfoMap() (v map[string]*MsgParticipantInfo) {\n\tif !p.IsSetParticipantInfoMap() {\n\t\treturn GetMessageListResponse_ParticipantInfoMap_DEFAULT\n\t}\n\treturn p.ParticipantInfoMap\n}\n\nfunc (p *GetMessageListResponse) GetNextCursor() (v string) {\n\treturn p.NextCursor\n}\n\nfunc (p *GetMessageListResponse) GetNextHasMore() (v bool) {\n\treturn p.NextHasMore\n}\n\nfunc (p *GetMessageListResponse) GetReadMessageIndex() (v int64) {\n\treturn p.ReadMessageIndex\n}\n\nfunc (p *GetMessageListResponse) GetConnectorConversationID() (v string) {\n\treturn p.ConnectorConversationID\n}\n\nvar fieldIDToName_GetMessageListResponse = map[int16]string{\n\t1:  \"message_list\",\n\t2:  \"cursor\",\n\t3:  \"hasmore\",\n\t4:  \"conversation_id\",\n\t5:  \"last_section_id\",\n\t6:  \"code\",\n\t7:  \"msg\",\n\t8:  \"participant_info_map\",\n\t9:  \"next_cursor\",\n\t10: \"next_has_more\",\n\t11: \"read_message_index\",\n\t12: \"connector_conversation_id\",\n}\n\nfunc (p *GetMessageListResponse) IsSetLastSectionID() bool {\n\treturn p.LastSectionID != nil\n}\n\nfunc (p *GetMessageListResponse) IsSetParticipantInfoMap() bool {\n\treturn p.ParticipantInfoMap != nil\n}\n\nfunc (p *GetMessageListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetMessageList bool = false\n\tvar issetCursor bool = false\n\tvar issetHasmore bool = false\n\tvar issetConversationID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessageList = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCursor = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetHasmore = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetMessageList {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCursor {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetHasmore {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetMessageListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetMessageListResponse[fieldId]))\n}\n\nfunc (p *GetMessageListResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ChatMessage, 0, size)\n\tvalues := make([]ChatMessage, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MessageList = _field\n\treturn nil\n}\nfunc (p *GetMessageListResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Cursor = _field\n\treturn nil\n}\nfunc (p *GetMessageListResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Hasmore = _field\n\treturn nil\n}\nfunc (p *GetMessageListResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *GetMessageListResponse) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LastSectionID = _field\n\treturn nil\n}\nfunc (p *GetMessageListResponse) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetMessageListResponse) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetMessageListResponse) ReadField8(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*MsgParticipantInfo, size)\n\tvalues := make([]MsgParticipantInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ParticipantInfoMap = _field\n\treturn nil\n}\nfunc (p *GetMessageListResponse) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NextCursor = _field\n\treturn nil\n}\nfunc (p *GetMessageListResponse) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NextHasMore = _field\n\treturn nil\n}\nfunc (p *GetMessageListResponse) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReadMessageIndex = _field\n\treturn nil\n}\nfunc (p *GetMessageListResponse) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorConversationID = _field\n\treturn nil\n}\n\nfunc (p *GetMessageListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetMessageListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetMessageListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"message_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.MessageList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.MessageList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetMessageListResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"cursor\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Cursor); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetMessageListResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"hasmore\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Hasmore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetMessageListResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetMessageListResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLastSectionID() {\n\t\tif err = oprot.WriteFieldBegin(\"last_section_id\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LastSectionID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetMessageListResponse) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetMessageListResponse) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetMessageListResponse) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParticipantInfoMap() {\n\t\tif err = oprot.WriteFieldBegin(\"participant_info_map\", thrift.MAP, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.ParticipantInfoMap)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ParticipantInfoMap {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetMessageListResponse) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"next_cursor\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NextCursor); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetMessageListResponse) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"next_has_more\", thrift.BOOL, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.NextHasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetMessageListResponse) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"read_message_index\", thrift.I64, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ReadMessageIndex); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetMessageListResponse) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_conversation_id\", thrift.STRING, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\n\nfunc (p *GetMessageListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetMessageListResponse(%+v)\", *p)\n\n}\n\ntype DeleteMessageRequest struct {\n\tConversationID int64         `thrift:\"conversation_id,1,required\" form:\"conversation_id,required\" json:\"conversation_id,string,required\" query:\"conversation_id,required\"`\n\tMessageID      int64         `thrift:\"message_id,2,required\" form:\"message_id,required\" json:\"message_id,string,required\" query:\"message_id,required\"`\n\tScene          *common.Scene `thrift:\"scene,3,optional\" form:\"scene\" json:\"scene,omitempty\" query:\"scene\"`\n\tBotID          *int64        `thrift:\"bot_id,4,optional\" form:\"bot_id\" json:\"bot_id,string,omitempty\" query:\"bot_id\"`\n}\n\nfunc NewDeleteMessageRequest() *DeleteMessageRequest {\n\treturn &DeleteMessageRequest{}\n}\n\nfunc (p *DeleteMessageRequest) InitDefault() {\n}\n\nfunc (p *DeleteMessageRequest) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nfunc (p *DeleteMessageRequest) GetMessageID() (v int64) {\n\treturn p.MessageID\n}\n\nvar DeleteMessageRequest_Scene_DEFAULT common.Scene\n\nfunc (p *DeleteMessageRequest) GetScene() (v common.Scene) {\n\tif !p.IsSetScene() {\n\t\treturn DeleteMessageRequest_Scene_DEFAULT\n\t}\n\treturn *p.Scene\n}\n\nvar DeleteMessageRequest_BotID_DEFAULT int64\n\nfunc (p *DeleteMessageRequest) GetBotID() (v int64) {\n\tif !p.IsSetBotID() {\n\t\treturn DeleteMessageRequest_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar fieldIDToName_DeleteMessageRequest = map[int16]string{\n\t1: \"conversation_id\",\n\t2: \"message_id\",\n\t3: \"scene\",\n\t4: \"bot_id\",\n}\n\nfunc (p *DeleteMessageRequest) IsSetScene() bool {\n\treturn p.Scene != nil\n}\n\nfunc (p *DeleteMessageRequest) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *DeleteMessageRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetConversationID bool = false\n\tvar issetMessageID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessageID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMessageID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteMessageRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteMessageRequest[fieldId]))\n}\n\nfunc (p *DeleteMessageRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *DeleteMessageRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MessageID = _field\n\treturn nil\n}\nfunc (p *DeleteMessageRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *common.Scene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.Scene(v)\n\t\t_field = &tmp\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *DeleteMessageRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\n\nfunc (p *DeleteMessageRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteMessageRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteMessageRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteMessageRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"message_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.MessageID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteMessageRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScene() {\n\t\tif err = oprot.WriteFieldBegin(\"scene\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Scene)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DeleteMessageRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *DeleteMessageRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteMessageRequest(%+v)\", *p)\n\n}\n\ntype DeleteMessageResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n}\n\nfunc NewDeleteMessageResponse() *DeleteMessageResponse {\n\treturn &DeleteMessageResponse{}\n}\n\nfunc (p *DeleteMessageResponse) InitDefault() {\n}\n\nfunc (p *DeleteMessageResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DeleteMessageResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_DeleteMessageResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n}\n\nfunc (p *DeleteMessageResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteMessageResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteMessageResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteMessageResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *DeleteMessageResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteMessageResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteMessageResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteMessageResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *DeleteMessageResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteMessageResponse(%+v)\", *p)\n\n}\n\ntype BreakMessageRequest struct {\n\t//session id\n\tConversationID int64 `thrift:\"conversation_id,1,required\" form:\"conversation_id,required\" json:\"conversation_id,string,required\" query:\"conversation_id,required\"`\n\t// Current issue id\n\tQueryMessageID int64 `thrift:\"query_message_id,2,required\" form:\"query_message_id,required\" json:\"query_message_id,string,required\" query:\"query_message_id,required\"`\n\t// Which reply was interrupted under the current question?\n\tAnswerMessageID *int64 `thrift:\"answer_message_id,3,optional\" form:\"answer_message_id\" json:\"answer_message_id,string,omitempty\" query:\"answer_message_id\"`\n\t// interrupt position\n\tBrokenPos *int32        `thrift:\"broken_pos,4,optional\" form:\"broken_pos\" json:\"broken_pos,omitempty\" query:\"broken_pos\"`\n\tScene     *common.Scene `thrift:\"scene,5,optional\" form:\"scene\" json:\"scene,omitempty\" query:\"scene\"`\n}\n\nfunc NewBreakMessageRequest() *BreakMessageRequest {\n\treturn &BreakMessageRequest{}\n}\n\nfunc (p *BreakMessageRequest) InitDefault() {\n}\n\nfunc (p *BreakMessageRequest) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nfunc (p *BreakMessageRequest) GetQueryMessageID() (v int64) {\n\treturn p.QueryMessageID\n}\n\nvar BreakMessageRequest_AnswerMessageID_DEFAULT int64\n\nfunc (p *BreakMessageRequest) GetAnswerMessageID() (v int64) {\n\tif !p.IsSetAnswerMessageID() {\n\t\treturn BreakMessageRequest_AnswerMessageID_DEFAULT\n\t}\n\treturn *p.AnswerMessageID\n}\n\nvar BreakMessageRequest_BrokenPos_DEFAULT int32\n\nfunc (p *BreakMessageRequest) GetBrokenPos() (v int32) {\n\tif !p.IsSetBrokenPos() {\n\t\treturn BreakMessageRequest_BrokenPos_DEFAULT\n\t}\n\treturn *p.BrokenPos\n}\n\nvar BreakMessageRequest_Scene_DEFAULT common.Scene\n\nfunc (p *BreakMessageRequest) GetScene() (v common.Scene) {\n\tif !p.IsSetScene() {\n\t\treturn BreakMessageRequest_Scene_DEFAULT\n\t}\n\treturn *p.Scene\n}\n\nvar fieldIDToName_BreakMessageRequest = map[int16]string{\n\t1: \"conversation_id\",\n\t2: \"query_message_id\",\n\t3: \"answer_message_id\",\n\t4: \"broken_pos\",\n\t5: \"scene\",\n}\n\nfunc (p *BreakMessageRequest) IsSetAnswerMessageID() bool {\n\treturn p.AnswerMessageID != nil\n}\n\nfunc (p *BreakMessageRequest) IsSetBrokenPos() bool {\n\treturn p.BrokenPos != nil\n}\n\nfunc (p *BreakMessageRequest) IsSetScene() bool {\n\treturn p.Scene != nil\n}\n\nfunc (p *BreakMessageRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetConversationID bool = false\n\tvar issetQueryMessageID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetQueryMessageID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetQueryMessageID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BreakMessageRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_BreakMessageRequest[fieldId]))\n}\n\nfunc (p *BreakMessageRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *BreakMessageRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.QueryMessageID = _field\n\treturn nil\n}\nfunc (p *BreakMessageRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AnswerMessageID = _field\n\treturn nil\n}\nfunc (p *BreakMessageRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BrokenPos = _field\n\treturn nil\n}\nfunc (p *BreakMessageRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *common.Scene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.Scene(v)\n\t\t_field = &tmp\n\t}\n\tp.Scene = _field\n\treturn nil\n}\n\nfunc (p *BreakMessageRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BreakMessageRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BreakMessageRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BreakMessageRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"query_message_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.QueryMessageID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BreakMessageRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAnswerMessageID() {\n\t\tif err = oprot.WriteFieldBegin(\"answer_message_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.AnswerMessageID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BreakMessageRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBrokenPos() {\n\t\tif err = oprot.WriteFieldBegin(\"broken_pos\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.BrokenPos); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BreakMessageRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScene() {\n\t\tif err = oprot.WriteFieldBegin(\"scene\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Scene)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *BreakMessageRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BreakMessageRequest(%+v)\", *p)\n\n}\n\ntype BreakMessageResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n}\n\nfunc NewBreakMessageResponse() *BreakMessageResponse {\n\treturn &BreakMessageResponse{}\n}\n\nfunc (p *BreakMessageResponse) InitDefault() {\n}\n\nfunc (p *BreakMessageResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *BreakMessageResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_BreakMessageResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n}\n\nfunc (p *BreakMessageResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BreakMessageResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BreakMessageResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *BreakMessageResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *BreakMessageResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BreakMessageResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BreakMessageResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BreakMessageResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *BreakMessageResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BreakMessageResponse(%+v)\", *p)\n\n}\n\n// batch query\ntype ListMessageApiRequest struct {\n\t//session id\n\tConversationID int64 `thrift:\"conversation_id,1,required\" json:\"conversation_id,string,required\" query:\"conversation_id,required\"`\n\t// limit number of entries\n\tLimit *int64 `thrift:\"limit,2,optional\" form:\"limit\" json:\"limit,omitempty\"`\n\t// Sort by desc/asc\n\tOrder *string `thrift:\"order,3,optional\" form:\"order\" json:\"order,omitempty\"`\n\t//ID of a conversation\n\tChatID *int64 `thrift:\"chat_id,4,optional\" form:\"chat_id\" json:\"chat_id,string,omitempty\"`\n\t// The ID you need to pass to turn the page forward.\n\tBeforeID *int64 `thrift:\"before_id,5,optional\" form:\"before_id\" json:\"before_id,string,omitempty\"`\n\t// Return the ID to be passed backwards.\n\tAfterID *int64     `thrift:\"after_id,6,optional\" form:\"after_id\" json:\"after_id,string,omitempty\"`\n\tBase    *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewListMessageApiRequest() *ListMessageApiRequest {\n\treturn &ListMessageApiRequest{}\n}\n\nfunc (p *ListMessageApiRequest) InitDefault() {\n}\n\nfunc (p *ListMessageApiRequest) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nvar ListMessageApiRequest_Limit_DEFAULT int64\n\nfunc (p *ListMessageApiRequest) GetLimit() (v int64) {\n\tif !p.IsSetLimit() {\n\t\treturn ListMessageApiRequest_Limit_DEFAULT\n\t}\n\treturn *p.Limit\n}\n\nvar ListMessageApiRequest_Order_DEFAULT string\n\nfunc (p *ListMessageApiRequest) GetOrder() (v string) {\n\tif !p.IsSetOrder() {\n\t\treturn ListMessageApiRequest_Order_DEFAULT\n\t}\n\treturn *p.Order\n}\n\nvar ListMessageApiRequest_ChatID_DEFAULT int64\n\nfunc (p *ListMessageApiRequest) GetChatID() (v int64) {\n\tif !p.IsSetChatID() {\n\t\treturn ListMessageApiRequest_ChatID_DEFAULT\n\t}\n\treturn *p.ChatID\n}\n\nvar ListMessageApiRequest_BeforeID_DEFAULT int64\n\nfunc (p *ListMessageApiRequest) GetBeforeID() (v int64) {\n\tif !p.IsSetBeforeID() {\n\t\treturn ListMessageApiRequest_BeforeID_DEFAULT\n\t}\n\treturn *p.BeforeID\n}\n\nvar ListMessageApiRequest_AfterID_DEFAULT int64\n\nfunc (p *ListMessageApiRequest) GetAfterID() (v int64) {\n\tif !p.IsSetAfterID() {\n\t\treturn ListMessageApiRequest_AfterID_DEFAULT\n\t}\n\treturn *p.AfterID\n}\n\nvar ListMessageApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListMessageApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListMessageApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListMessageApiRequest = map[int16]string{\n\t1:   \"conversation_id\",\n\t2:   \"limit\",\n\t3:   \"order\",\n\t4:   \"chat_id\",\n\t5:   \"before_id\",\n\t6:   \"after_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ListMessageApiRequest) IsSetLimit() bool {\n\treturn p.Limit != nil\n}\n\nfunc (p *ListMessageApiRequest) IsSetOrder() bool {\n\treturn p.Order != nil\n}\n\nfunc (p *ListMessageApiRequest) IsSetChatID() bool {\n\treturn p.ChatID != nil\n}\n\nfunc (p *ListMessageApiRequest) IsSetBeforeID() bool {\n\treturn p.BeforeID != nil\n}\n\nfunc (p *ListMessageApiRequest) IsSetAfterID() bool {\n\treturn p.AfterID != nil\n}\n\nfunc (p *ListMessageApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListMessageApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetConversationID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListMessageApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListMessageApiRequest[fieldId]))\n}\n\nfunc (p *ListMessageApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ListMessageApiRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Limit = _field\n\treturn nil\n}\nfunc (p *ListMessageApiRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Order = _field\n\treturn nil\n}\nfunc (p *ListMessageApiRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ChatID = _field\n\treturn nil\n}\nfunc (p *ListMessageApiRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BeforeID = _field\n\treturn nil\n}\nfunc (p *ListMessageApiRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AfterID = _field\n\treturn nil\n}\nfunc (p *ListMessageApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListMessageApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListMessageApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListMessageApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListMessageApiRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLimit() {\n\t\tif err = oprot.WriteFieldBegin(\"limit\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Limit); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListMessageApiRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrder() {\n\t\tif err = oprot.WriteFieldBegin(\"order\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Order); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListMessageApiRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChatID() {\n\t\tif err = oprot.WriteFieldBegin(\"chat_id\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ChatID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListMessageApiRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBeforeID() {\n\t\tif err = oprot.WriteFieldBegin(\"before_id\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BeforeID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListMessageApiRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAfterID() {\n\t\tif err = oprot.WriteFieldBegin(\"after_id\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.AfterID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ListMessageApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListMessageApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListMessageApiRequest(%+v)\", *p)\n\n}\n\ntype OpenMessageApi struct {\n\t// primary key ID\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\t// agent id\n\tBotID int64 `thrift:\"bot_id,2\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\t// user / assistant/tool\n\tRole string `thrift:\"role,3\" form:\"role\" json:\"role\" query:\"role\"`\n\t//message content\n\tContent string `thrift:\"content,4\" form:\"content\" json:\"content\" query:\"content\"`\n\t//session id\n\tConversationID int64 `thrift:\"conversation_id,5\" form:\"conversation_id\" json:\"conversation_id,string\" query:\"conversation_id\"`\n\t// custom field\n\tMetaData map[string]string `thrift:\"meta_data,6\" form:\"meta_data\" json:\"meta_data\" query:\"meta_data\"`\n\t//creation time\n\tCreatedAt int64 `thrift:\"created_at,7\" form:\"created_at\" json:\"created_at\" query:\"created_at\"`\n\t//update time\n\tUpdatedAt int64 `thrift:\"updated_at,8\" form:\"updated_at\" json:\"updated_at\" query:\"updated_at\"`\n\t// ID of a conversation\n\tChatID int64 `thrift:\"chat_id,9\" form:\"chat_id\" json:\"chat_id,string\" query:\"chat_id\"`\n\t// Content type, text/mix\n\tContentType string `thrift:\"content_type,10\" form:\"content_type\" json:\"content_type\" query:\"content_type\"`\n\t//Message Type answer/question/function_call/tool_response\n\tType string `thrift:\"type,11\" form:\"type\" json:\"type\" query:\"type\"`\n\t// The section_id of conversation\n\tSectionID string `thrift:\"section_id,12\" form:\"section_id\" json:\"section_id\" query:\"section_id\"`\n\t//Model Thinking Chain\n\tReasoningContent *string `thrift:\"reasoning_content,13,optional\" form:\"reasoning_content\" json:\"reasoning_content,omitempty\" query:\"reasoning_content\"`\n}\n\nfunc NewOpenMessageApi() *OpenMessageApi {\n\treturn &OpenMessageApi{}\n}\n\nfunc (p *OpenMessageApi) InitDefault() {\n}\n\nfunc (p *OpenMessageApi) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *OpenMessageApi) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *OpenMessageApi) GetRole() (v string) {\n\treturn p.Role\n}\n\nfunc (p *OpenMessageApi) GetContent() (v string) {\n\treturn p.Content\n}\n\nfunc (p *OpenMessageApi) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nfunc (p *OpenMessageApi) GetMetaData() (v map[string]string) {\n\treturn p.MetaData\n}\n\nfunc (p *OpenMessageApi) GetCreatedAt() (v int64) {\n\treturn p.CreatedAt\n}\n\nfunc (p *OpenMessageApi) GetUpdatedAt() (v int64) {\n\treturn p.UpdatedAt\n}\n\nfunc (p *OpenMessageApi) GetChatID() (v int64) {\n\treturn p.ChatID\n}\n\nfunc (p *OpenMessageApi) GetContentType() (v string) {\n\treturn p.ContentType\n}\n\nfunc (p *OpenMessageApi) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *OpenMessageApi) GetSectionID() (v string) {\n\treturn p.SectionID\n}\n\nvar OpenMessageApi_ReasoningContent_DEFAULT string\n\nfunc (p *OpenMessageApi) GetReasoningContent() (v string) {\n\tif !p.IsSetReasoningContent() {\n\t\treturn OpenMessageApi_ReasoningContent_DEFAULT\n\t}\n\treturn *p.ReasoningContent\n}\n\nvar fieldIDToName_OpenMessageApi = map[int16]string{\n\t1:  \"id\",\n\t2:  \"bot_id\",\n\t3:  \"role\",\n\t4:  \"content\",\n\t5:  \"conversation_id\",\n\t6:  \"meta_data\",\n\t7:  \"created_at\",\n\t8:  \"updated_at\",\n\t9:  \"chat_id\",\n\t10: \"content_type\",\n\t11: \"type\",\n\t12: \"section_id\",\n\t13: \"reasoning_content\",\n}\n\nfunc (p *OpenMessageApi) IsSetReasoningContent() bool {\n\treturn p.ReasoningContent != nil\n}\n\nfunc (p *OpenMessageApi) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenMessageApi[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenMessageApi) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Role = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField6(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatedAt = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdatedAt = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ChatID = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ContentType = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SectionID = _field\n\treturn nil\n}\nfunc (p *OpenMessageApi) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ReasoningContent = _field\n\treturn nil\n}\n\nfunc (p *OpenMessageApi) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenMessageApi\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenMessageApi) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"role\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Role); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"content\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"meta_data\", thrift.MAP, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.MetaData {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"created_at\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"updated_at\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdatedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"chat_id\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ChatID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"content_type\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ContentType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"section_id\", thrift.STRING, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SectionID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *OpenMessageApi) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReasoningContent() {\n\t\tif err = oprot.WriteFieldBegin(\"reasoning_content\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ReasoningContent); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *OpenMessageApi) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenMessageApi(%+v)\", *p)\n\n}\n\ntype ListMessageApiResponse struct {\n\tMessages []*OpenMessageApi `thrift:\"messages,1,optional\" form:\"data\" json:\"data,omitempty\"`\n\t// Is there still data, true yes, false no\n\tHasMore *bool `thrift:\"has_more,2,optional\" form:\"has_more\" json:\"has_more,omitempty\"`\n\t// The ID of the first piece of data\n\tFirstID *int64 `thrift:\"first_id,3,optional\" form:\"first_id\" json:\"first_id,string,omitempty\"`\n\t// The id of the last piece of data.\n\tLastID *int64 `thrift:\"last_id,4,optional\" form:\"last_id\" json:\"last_id,string,omitempty\"`\n\tCode   int64  `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg    string `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n}\n\nfunc NewListMessageApiResponse() *ListMessageApiResponse {\n\treturn &ListMessageApiResponse{}\n}\n\nfunc (p *ListMessageApiResponse) InitDefault() {\n}\n\nvar ListMessageApiResponse_Messages_DEFAULT []*OpenMessageApi\n\nfunc (p *ListMessageApiResponse) GetMessages() (v []*OpenMessageApi) {\n\tif !p.IsSetMessages() {\n\t\treturn ListMessageApiResponse_Messages_DEFAULT\n\t}\n\treturn p.Messages\n}\n\nvar ListMessageApiResponse_HasMore_DEFAULT bool\n\nfunc (p *ListMessageApiResponse) GetHasMore() (v bool) {\n\tif !p.IsSetHasMore() {\n\t\treturn ListMessageApiResponse_HasMore_DEFAULT\n\t}\n\treturn *p.HasMore\n}\n\nvar ListMessageApiResponse_FirstID_DEFAULT int64\n\nfunc (p *ListMessageApiResponse) GetFirstID() (v int64) {\n\tif !p.IsSetFirstID() {\n\t\treturn ListMessageApiResponse_FirstID_DEFAULT\n\t}\n\treturn *p.FirstID\n}\n\nvar ListMessageApiResponse_LastID_DEFAULT int64\n\nfunc (p *ListMessageApiResponse) GetLastID() (v int64) {\n\tif !p.IsSetLastID() {\n\t\treturn ListMessageApiResponse_LastID_DEFAULT\n\t}\n\treturn *p.LastID\n}\n\nfunc (p *ListMessageApiResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListMessageApiResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_ListMessageApiResponse = map[int16]string{\n\t1:   \"messages\",\n\t2:   \"has_more\",\n\t3:   \"first_id\",\n\t4:   \"last_id\",\n\t253: \"code\",\n\t254: \"msg\",\n}\n\nfunc (p *ListMessageApiResponse) IsSetMessages() bool {\n\treturn p.Messages != nil\n}\n\nfunc (p *ListMessageApiResponse) IsSetHasMore() bool {\n\treturn p.HasMore != nil\n}\n\nfunc (p *ListMessageApiResponse) IsSetFirstID() bool {\n\treturn p.FirstID != nil\n}\n\nfunc (p *ListMessageApiResponse) IsSetLastID() bool {\n\treturn p.LastID != nil\n}\n\nfunc (p *ListMessageApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListMessageApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListMessageApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*OpenMessageApi, 0, size)\n\tvalues := make([]OpenMessageApi, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Messages = _field\n\treturn nil\n}\nfunc (p *ListMessageApiResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *ListMessageApiResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FirstID = _field\n\treturn nil\n}\nfunc (p *ListMessageApiResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LastID = _field\n\treturn nil\n}\nfunc (p *ListMessageApiResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListMessageApiResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *ListMessageApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListMessageApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListMessageApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMessages() {\n\t\tif err = oprot.WriteFieldBegin(\"messages\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Messages)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Messages {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListMessageApiResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHasMore() {\n\t\tif err = oprot.WriteFieldBegin(\"has_more\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HasMore); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListMessageApiResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFirstID() {\n\t\tif err = oprot.WriteFieldBegin(\"first_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.FirstID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListMessageApiResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLastID() {\n\t\tif err = oprot.WriteFieldBegin(\"last_id\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.LastID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListMessageApiResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListMessageApiResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\n\nfunc (p *ListMessageApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListMessageApiResponse(%+v)\", *p)\n\n}\n\ntype ChatV3MessageDetail struct {\n\tID               int64             `thrift:\"ID,1,required\" form:\"id,required\" json:\"id,string,required\"`\n\tConversationID   int64             `thrift:\"ConversationID,2,required\" form:\"conversation_id,required\" json:\"conversation_id,string,required\"`\n\tBotID            int64             `thrift:\"BotID,3,required\" form:\"bot_id,required\" json:\"bot_id,string,required\"`\n\tRole             string            `thrift:\"Role,4,required\" form:\"role,required\" json:\"role,required\"`\n\tType             string            `thrift:\"Type,5,required\" form:\"type,required\" json:\"type,required\"`\n\tContent          string            `thrift:\"Content,6,required\" form:\"content,required\" json:\"content,required\"`\n\tContentType      string            `thrift:\"ContentType,7,required\" form:\"content_type,required\" json:\"content_type,required\"`\n\tMetaData         map[string]string `thrift:\"MetaData,8,optional\" form:\"meta_data\" json:\"meta_data,omitempty\"`\n\tChatID           int64             `thrift:\"ChatID,9,required\" form:\"chat_id,required\" json:\"chat_id,string,required\"`\n\tSectionID        *int64            `thrift:\"SectionID,10,optional\" form:\"section_id\" json:\"section_id,string,omitempty\"`\n\tCreatedAt        *int64            `thrift:\"CreatedAt,11,optional\" form:\"created_at\" json:\"created_at,omitempty\"`\n\tUpdatedAt        *int64            `thrift:\"UpdatedAt,12,optional\" form:\"updated_at\" json:\"updated_at,omitempty\"`\n\tReasoningContent *string           `thrift:\"ReasoningContent,13,optional\" form:\"reasoning_content\" json:\"reasoning_content,omitempty\"`\n}\n\nfunc NewChatV3MessageDetail() *ChatV3MessageDetail {\n\treturn &ChatV3MessageDetail{}\n}\n\nfunc (p *ChatV3MessageDetail) InitDefault() {\n}\n\nfunc (p *ChatV3MessageDetail) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *ChatV3MessageDetail) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nfunc (p *ChatV3MessageDetail) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *ChatV3MessageDetail) GetRole() (v string) {\n\treturn p.Role\n}\n\nfunc (p *ChatV3MessageDetail) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *ChatV3MessageDetail) GetContent() (v string) {\n\treturn p.Content\n}\n\nfunc (p *ChatV3MessageDetail) GetContentType() (v string) {\n\treturn p.ContentType\n}\n\nvar ChatV3MessageDetail_MetaData_DEFAULT map[string]string\n\nfunc (p *ChatV3MessageDetail) GetMetaData() (v map[string]string) {\n\tif !p.IsSetMetaData() {\n\t\treturn ChatV3MessageDetail_MetaData_DEFAULT\n\t}\n\treturn p.MetaData\n}\n\nfunc (p *ChatV3MessageDetail) GetChatID() (v int64) {\n\treturn p.ChatID\n}\n\nvar ChatV3MessageDetail_SectionID_DEFAULT int64\n\nfunc (p *ChatV3MessageDetail) GetSectionID() (v int64) {\n\tif !p.IsSetSectionID() {\n\t\treturn ChatV3MessageDetail_SectionID_DEFAULT\n\t}\n\treturn *p.SectionID\n}\n\nvar ChatV3MessageDetail_CreatedAt_DEFAULT int64\n\nfunc (p *ChatV3MessageDetail) GetCreatedAt() (v int64) {\n\tif !p.IsSetCreatedAt() {\n\t\treturn ChatV3MessageDetail_CreatedAt_DEFAULT\n\t}\n\treturn *p.CreatedAt\n}\n\nvar ChatV3MessageDetail_UpdatedAt_DEFAULT int64\n\nfunc (p *ChatV3MessageDetail) GetUpdatedAt() (v int64) {\n\tif !p.IsSetUpdatedAt() {\n\t\treturn ChatV3MessageDetail_UpdatedAt_DEFAULT\n\t}\n\treturn *p.UpdatedAt\n}\n\nvar ChatV3MessageDetail_ReasoningContent_DEFAULT string\n\nfunc (p *ChatV3MessageDetail) GetReasoningContent() (v string) {\n\tif !p.IsSetReasoningContent() {\n\t\treturn ChatV3MessageDetail_ReasoningContent_DEFAULT\n\t}\n\treturn *p.ReasoningContent\n}\n\nvar fieldIDToName_ChatV3MessageDetail = map[int16]string{\n\t1:  \"ID\",\n\t2:  \"ConversationID\",\n\t3:  \"BotID\",\n\t4:  \"Role\",\n\t5:  \"Type\",\n\t6:  \"Content\",\n\t7:  \"ContentType\",\n\t8:  \"MetaData\",\n\t9:  \"ChatID\",\n\t10: \"SectionID\",\n\t11: \"CreatedAt\",\n\t12: \"UpdatedAt\",\n\t13: \"ReasoningContent\",\n}\n\nfunc (p *ChatV3MessageDetail) IsSetMetaData() bool {\n\treturn p.MetaData != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetSectionID() bool {\n\treturn p.SectionID != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetCreatedAt() bool {\n\treturn p.CreatedAt != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetUpdatedAt() bool {\n\treturn p.UpdatedAt != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetReasoningContent() bool {\n\treturn p.ReasoningContent != nil\n}\n\nfunc (p *ChatV3MessageDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\tvar issetConversationID bool = false\n\tvar issetBotID bool = false\n\tvar issetRole bool = false\n\tvar issetType bool = false\n\tvar issetContent bool = false\n\tvar issetContentType bool = false\n\tvar issetChatID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetRole = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetContent = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetContentType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetChatID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetRole {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetType {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetContent {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetContentType {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetChatID {\n\t\tfieldId = 9\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatV3MessageDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ChatV3MessageDetail[fieldId]))\n}\n\nfunc (p *ChatV3MessageDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Role = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ContentType = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField8(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ChatID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SectionID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UpdatedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ReasoningContent = _field\n\treturn nil\n}\n\nfunc (p *ChatV3MessageDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatV3MessageDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatV3MessageDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotID\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Role\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Role); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Content\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ContentType\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ContentType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMetaData() {\n\t\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.MetaData {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ChatID\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ChatID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSectionID() {\n\t\tif err = oprot.WriteFieldBegin(\"SectionID\", thrift.I64, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SectionID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"CreatedAt\", thrift.I64, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreatedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUpdatedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"UpdatedAt\", thrift.I64, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.UpdatedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReasoningContent() {\n\t\tif err = oprot.WriteFieldBegin(\"ReasoningContent\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ReasoningContent); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *ChatV3MessageDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatV3MessageDetail(%+v)\", *p)\n\n}\n\ntype ListChatMessageApiRequest struct {\n\t//connector层的会话id\n\tConversationID int64      `thrift:\"ConversationID,1,required\" json:\"ConversationID,string,required\" query:\"conversation_id,required\"`\n\tChatID         int64      `thrift:\"ChatID,2,required\" json:\"ChatID,string,required\" query:\"chat_id,required\"`\n\tBase           *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewListChatMessageApiRequest() *ListChatMessageApiRequest {\n\treturn &ListChatMessageApiRequest{}\n}\n\nfunc (p *ListChatMessageApiRequest) InitDefault() {\n}\n\nfunc (p *ListChatMessageApiRequest) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nfunc (p *ListChatMessageApiRequest) GetChatID() (v int64) {\n\treturn p.ChatID\n}\n\nvar ListChatMessageApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListChatMessageApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListChatMessageApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListChatMessageApiRequest = map[int16]string{\n\t1:   \"ConversationID\",\n\t2:   \"ChatID\",\n\t255: \"Base\",\n}\n\nfunc (p *ListChatMessageApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListChatMessageApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetConversationID bool = false\n\tvar issetChatID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetChatID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetChatID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListChatMessageApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListChatMessageApiRequest[fieldId]))\n}\n\nfunc (p *ListChatMessageApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ListChatMessageApiRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ChatID = _field\n\treturn nil\n}\nfunc (p *ListChatMessageApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListChatMessageApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListChatMessageApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListChatMessageApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListChatMessageApiRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ChatID\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ChatID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListChatMessageApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListChatMessageApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListChatMessageApiRequest(%+v)\", *p)\n\n}\n\ntype ListChatMessageApiResponse struct {\n\tMessages []*ChatV3MessageDetail `thrift:\"Messages,1,optional\" form:\"Messages\" json:\"Messages,omitempty\" query:\"Messages\"`\n\tCode     int64                  `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                 `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp         `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewListChatMessageApiResponse() *ListChatMessageApiResponse {\n\treturn &ListChatMessageApiResponse{}\n}\n\nfunc (p *ListChatMessageApiResponse) InitDefault() {\n}\n\nvar ListChatMessageApiResponse_Messages_DEFAULT []*ChatV3MessageDetail\n\nfunc (p *ListChatMessageApiResponse) GetMessages() (v []*ChatV3MessageDetail) {\n\tif !p.IsSetMessages() {\n\t\treturn ListChatMessageApiResponse_Messages_DEFAULT\n\t}\n\treturn p.Messages\n}\n\nfunc (p *ListChatMessageApiResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListChatMessageApiResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ListChatMessageApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListChatMessageApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListChatMessageApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListChatMessageApiResponse = map[int16]string{\n\t1:   \"Messages\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListChatMessageApiResponse) IsSetMessages() bool {\n\treturn p.Messages != nil\n}\n\nfunc (p *ListChatMessageApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListChatMessageApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListChatMessageApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListChatMessageApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ChatV3MessageDetail, 0, size)\n\tvalues := make([]ChatV3MessageDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Messages = _field\n\treturn nil\n}\nfunc (p *ListChatMessageApiResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListChatMessageApiResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListChatMessageApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListChatMessageApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListChatMessageApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListChatMessageApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMessages() {\n\t\tif err = oprot.WriteFieldBegin(\"Messages\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Messages)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Messages {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListChatMessageApiResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListChatMessageApiResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ListChatMessageApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListChatMessageApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListChatMessageApiResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/conversation/message/message_service.go",
    "content": "// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage message\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype MessageService interface {\n\tGetMessageList(ctx context.Context, request *GetMessageListRequest) (r *GetMessageListResponse, err error)\n\n\tDeleteMessage(ctx context.Context, request *DeleteMessageRequest) (r *DeleteMessageResponse, err error)\n\n\tBreakMessage(ctx context.Context, request *BreakMessageRequest) (r *BreakMessageResponse, err error)\n\n\tGetApiMessageList(ctx context.Context, request *ListMessageApiRequest) (r *ListMessageApiResponse, err error)\n\n\tListChatMessageApi(ctx context.Context, request *ListChatMessageApiRequest) (r *ListChatMessageApiResponse, err error)\n}\n\ntype MessageServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewMessageServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *MessageServiceClient {\n\treturn &MessageServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewMessageServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *MessageServiceClient {\n\treturn &MessageServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewMessageServiceClient(c thrift.TClient) *MessageServiceClient {\n\treturn &MessageServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *MessageServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *MessageServiceClient) GetMessageList(ctx context.Context, request *GetMessageListRequest) (r *GetMessageListResponse, err error) {\n\tvar _args MessageServiceGetMessageListArgs\n\t_args.Request = request\n\tvar _result MessageServiceGetMessageListResult\n\tif err = p.Client_().Call(ctx, \"GetMessageList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *MessageServiceClient) DeleteMessage(ctx context.Context, request *DeleteMessageRequest) (r *DeleteMessageResponse, err error) {\n\tvar _args MessageServiceDeleteMessageArgs\n\t_args.Request = request\n\tvar _result MessageServiceDeleteMessageResult\n\tif err = p.Client_().Call(ctx, \"DeleteMessage\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *MessageServiceClient) BreakMessage(ctx context.Context, request *BreakMessageRequest) (r *BreakMessageResponse, err error) {\n\tvar _args MessageServiceBreakMessageArgs\n\t_args.Request = request\n\tvar _result MessageServiceBreakMessageResult\n\tif err = p.Client_().Call(ctx, \"BreakMessage\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *MessageServiceClient) GetApiMessageList(ctx context.Context, request *ListMessageApiRequest) (r *ListMessageApiResponse, err error) {\n\tvar _args MessageServiceGetApiMessageListArgs\n\t_args.Request = request\n\tvar _result MessageServiceGetApiMessageListResult\n\tif err = p.Client_().Call(ctx, \"GetApiMessageList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *MessageServiceClient) ListChatMessageApi(ctx context.Context, request *ListChatMessageApiRequest) (r *ListChatMessageApiResponse, err error) {\n\tvar _args MessageServiceListChatMessageApiArgs\n\t_args.Request = request\n\tvar _result MessageServiceListChatMessageApiResult\n\tif err = p.Client_().Call(ctx, \"ListChatMessageApi\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype MessageServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      MessageService\n}\n\nfunc (p *MessageServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *MessageServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *MessageServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewMessageServiceProcessor(handler MessageService) *MessageServiceProcessor {\n\tself := &MessageServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"GetMessageList\", &messageServiceProcessorGetMessageList{handler: handler})\n\tself.AddToProcessorMap(\"DeleteMessage\", &messageServiceProcessorDeleteMessage{handler: handler})\n\tself.AddToProcessorMap(\"BreakMessage\", &messageServiceProcessorBreakMessage{handler: handler})\n\tself.AddToProcessorMap(\"GetApiMessageList\", &messageServiceProcessorGetApiMessageList{handler: handler})\n\tself.AddToProcessorMap(\"ListChatMessageApi\", &messageServiceProcessorListChatMessageApi{handler: handler})\n\treturn self\n}\nfunc (p *MessageServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype messageServiceProcessorGetMessageList struct {\n\thandler MessageService\n}\n\nfunc (p *messageServiceProcessorGetMessageList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MessageServiceGetMessageListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetMessageList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MessageServiceGetMessageListResult{}\n\tvar retval *GetMessageListResponse\n\tif retval, err2 = p.handler.GetMessageList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetMessageList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetMessageList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetMessageList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype messageServiceProcessorDeleteMessage struct {\n\thandler MessageService\n}\n\nfunc (p *messageServiceProcessorDeleteMessage) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MessageServiceDeleteMessageArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteMessage\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MessageServiceDeleteMessageResult{}\n\tvar retval *DeleteMessageResponse\n\tif retval, err2 = p.handler.DeleteMessage(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteMessage: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteMessage\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteMessage\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype messageServiceProcessorBreakMessage struct {\n\thandler MessageService\n}\n\nfunc (p *messageServiceProcessorBreakMessage) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MessageServiceBreakMessageArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"BreakMessage\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MessageServiceBreakMessageResult{}\n\tvar retval *BreakMessageResponse\n\tif retval, err2 = p.handler.BreakMessage(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing BreakMessage: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"BreakMessage\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"BreakMessage\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype messageServiceProcessorGetApiMessageList struct {\n\thandler MessageService\n}\n\nfunc (p *messageServiceProcessorGetApiMessageList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MessageServiceGetApiMessageListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetApiMessageList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MessageServiceGetApiMessageListResult{}\n\tvar retval *ListMessageApiResponse\n\tif retval, err2 = p.handler.GetApiMessageList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetApiMessageList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetApiMessageList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetApiMessageList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype messageServiceProcessorListChatMessageApi struct {\n\thandler MessageService\n}\n\nfunc (p *messageServiceProcessorListChatMessageApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MessageServiceListChatMessageApiArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListChatMessageApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MessageServiceListChatMessageApiResult{}\n\tvar retval *ListChatMessageApiResponse\n\tif retval, err2 = p.handler.ListChatMessageApi(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListChatMessageApi: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListChatMessageApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListChatMessageApi\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype MessageServiceGetMessageListArgs struct {\n\tRequest *GetMessageListRequest `thrift:\"request,1\"`\n}\n\nfunc NewMessageServiceGetMessageListArgs() *MessageServiceGetMessageListArgs {\n\treturn &MessageServiceGetMessageListArgs{}\n}\n\nfunc (p *MessageServiceGetMessageListArgs) InitDefault() {\n}\n\nvar MessageServiceGetMessageListArgs_Request_DEFAULT *GetMessageListRequest\n\nfunc (p *MessageServiceGetMessageListArgs) GetRequest() (v *GetMessageListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn MessageServiceGetMessageListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_MessageServiceGetMessageListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *MessageServiceGetMessageListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *MessageServiceGetMessageListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageServiceGetMessageListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetMessageListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetMessageListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *MessageServiceGetMessageListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetMessageList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetMessageListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetMessageListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageServiceGetMessageListArgs(%+v)\", *p)\n\n}\n\ntype MessageServiceGetMessageListResult struct {\n\tSuccess *GetMessageListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewMessageServiceGetMessageListResult() *MessageServiceGetMessageListResult {\n\treturn &MessageServiceGetMessageListResult{}\n}\n\nfunc (p *MessageServiceGetMessageListResult) InitDefault() {\n}\n\nvar MessageServiceGetMessageListResult_Success_DEFAULT *GetMessageListResponse\n\nfunc (p *MessageServiceGetMessageListResult) GetSuccess() (v *GetMessageListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn MessageServiceGetMessageListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MessageServiceGetMessageListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MessageServiceGetMessageListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MessageServiceGetMessageListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageServiceGetMessageListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetMessageListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetMessageListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MessageServiceGetMessageListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetMessageList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetMessageListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetMessageListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageServiceGetMessageListResult(%+v)\", *p)\n\n}\n\ntype MessageServiceDeleteMessageArgs struct {\n\tRequest *DeleteMessageRequest `thrift:\"request,1\"`\n}\n\nfunc NewMessageServiceDeleteMessageArgs() *MessageServiceDeleteMessageArgs {\n\treturn &MessageServiceDeleteMessageArgs{}\n}\n\nfunc (p *MessageServiceDeleteMessageArgs) InitDefault() {\n}\n\nvar MessageServiceDeleteMessageArgs_Request_DEFAULT *DeleteMessageRequest\n\nfunc (p *MessageServiceDeleteMessageArgs) GetRequest() (v *DeleteMessageRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn MessageServiceDeleteMessageArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_MessageServiceDeleteMessageArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *MessageServiceDeleteMessageArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *MessageServiceDeleteMessageArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageServiceDeleteMessageArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceDeleteMessageArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteMessageRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *MessageServiceDeleteMessageArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteMessage_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceDeleteMessageArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MessageServiceDeleteMessageArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageServiceDeleteMessageArgs(%+v)\", *p)\n\n}\n\ntype MessageServiceDeleteMessageResult struct {\n\tSuccess *DeleteMessageResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewMessageServiceDeleteMessageResult() *MessageServiceDeleteMessageResult {\n\treturn &MessageServiceDeleteMessageResult{}\n}\n\nfunc (p *MessageServiceDeleteMessageResult) InitDefault() {\n}\n\nvar MessageServiceDeleteMessageResult_Success_DEFAULT *DeleteMessageResponse\n\nfunc (p *MessageServiceDeleteMessageResult) GetSuccess() (v *DeleteMessageResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn MessageServiceDeleteMessageResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MessageServiceDeleteMessageResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MessageServiceDeleteMessageResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MessageServiceDeleteMessageResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageServiceDeleteMessageResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceDeleteMessageResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteMessageResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MessageServiceDeleteMessageResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteMessage_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceDeleteMessageResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MessageServiceDeleteMessageResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageServiceDeleteMessageResult(%+v)\", *p)\n\n}\n\ntype MessageServiceBreakMessageArgs struct {\n\tRequest *BreakMessageRequest `thrift:\"request,1\"`\n}\n\nfunc NewMessageServiceBreakMessageArgs() *MessageServiceBreakMessageArgs {\n\treturn &MessageServiceBreakMessageArgs{}\n}\n\nfunc (p *MessageServiceBreakMessageArgs) InitDefault() {\n}\n\nvar MessageServiceBreakMessageArgs_Request_DEFAULT *BreakMessageRequest\n\nfunc (p *MessageServiceBreakMessageArgs) GetRequest() (v *BreakMessageRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn MessageServiceBreakMessageArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_MessageServiceBreakMessageArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *MessageServiceBreakMessageArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *MessageServiceBreakMessageArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageServiceBreakMessageArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceBreakMessageArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBreakMessageRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *MessageServiceBreakMessageArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BreakMessage_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceBreakMessageArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MessageServiceBreakMessageArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageServiceBreakMessageArgs(%+v)\", *p)\n\n}\n\ntype MessageServiceBreakMessageResult struct {\n\tSuccess *BreakMessageResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewMessageServiceBreakMessageResult() *MessageServiceBreakMessageResult {\n\treturn &MessageServiceBreakMessageResult{}\n}\n\nfunc (p *MessageServiceBreakMessageResult) InitDefault() {\n}\n\nvar MessageServiceBreakMessageResult_Success_DEFAULT *BreakMessageResponse\n\nfunc (p *MessageServiceBreakMessageResult) GetSuccess() (v *BreakMessageResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn MessageServiceBreakMessageResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MessageServiceBreakMessageResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MessageServiceBreakMessageResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MessageServiceBreakMessageResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageServiceBreakMessageResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceBreakMessageResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewBreakMessageResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MessageServiceBreakMessageResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BreakMessage_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceBreakMessageResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MessageServiceBreakMessageResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageServiceBreakMessageResult(%+v)\", *p)\n\n}\n\ntype MessageServiceGetApiMessageListArgs struct {\n\tRequest *ListMessageApiRequest `thrift:\"request,1\"`\n}\n\nfunc NewMessageServiceGetApiMessageListArgs() *MessageServiceGetApiMessageListArgs {\n\treturn &MessageServiceGetApiMessageListArgs{}\n}\n\nfunc (p *MessageServiceGetApiMessageListArgs) InitDefault() {\n}\n\nvar MessageServiceGetApiMessageListArgs_Request_DEFAULT *ListMessageApiRequest\n\nfunc (p *MessageServiceGetApiMessageListArgs) GetRequest() (v *ListMessageApiRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn MessageServiceGetApiMessageListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_MessageServiceGetApiMessageListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *MessageServiceGetApiMessageListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *MessageServiceGetApiMessageListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageServiceGetApiMessageListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetApiMessageListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListMessageApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *MessageServiceGetApiMessageListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetApiMessageList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetApiMessageListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetApiMessageListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageServiceGetApiMessageListArgs(%+v)\", *p)\n\n}\n\ntype MessageServiceGetApiMessageListResult struct {\n\tSuccess *ListMessageApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewMessageServiceGetApiMessageListResult() *MessageServiceGetApiMessageListResult {\n\treturn &MessageServiceGetApiMessageListResult{}\n}\n\nfunc (p *MessageServiceGetApiMessageListResult) InitDefault() {\n}\n\nvar MessageServiceGetApiMessageListResult_Success_DEFAULT *ListMessageApiResponse\n\nfunc (p *MessageServiceGetApiMessageListResult) GetSuccess() (v *ListMessageApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn MessageServiceGetApiMessageListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MessageServiceGetApiMessageListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MessageServiceGetApiMessageListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MessageServiceGetApiMessageListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageServiceGetApiMessageListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetApiMessageListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListMessageApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MessageServiceGetApiMessageListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetApiMessageList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetApiMessageListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MessageServiceGetApiMessageListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageServiceGetApiMessageListResult(%+v)\", *p)\n\n}\n\ntype MessageServiceListChatMessageApiArgs struct {\n\tRequest *ListChatMessageApiRequest `thrift:\"request,1\"`\n}\n\nfunc NewMessageServiceListChatMessageApiArgs() *MessageServiceListChatMessageApiArgs {\n\treturn &MessageServiceListChatMessageApiArgs{}\n}\n\nfunc (p *MessageServiceListChatMessageApiArgs) InitDefault() {\n}\n\nvar MessageServiceListChatMessageApiArgs_Request_DEFAULT *ListChatMessageApiRequest\n\nfunc (p *MessageServiceListChatMessageApiArgs) GetRequest() (v *ListChatMessageApiRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn MessageServiceListChatMessageApiArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_MessageServiceListChatMessageApiArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *MessageServiceListChatMessageApiArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *MessageServiceListChatMessageApiArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageServiceListChatMessageApiArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceListChatMessageApiArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListChatMessageApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *MessageServiceListChatMessageApiArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListChatMessageApi_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceListChatMessageApiArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MessageServiceListChatMessageApiArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageServiceListChatMessageApiArgs(%+v)\", *p)\n\n}\n\ntype MessageServiceListChatMessageApiResult struct {\n\tSuccess *ListChatMessageApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewMessageServiceListChatMessageApiResult() *MessageServiceListChatMessageApiResult {\n\treturn &MessageServiceListChatMessageApiResult{}\n}\n\nfunc (p *MessageServiceListChatMessageApiResult) InitDefault() {\n}\n\nvar MessageServiceListChatMessageApiResult_Success_DEFAULT *ListChatMessageApiResponse\n\nfunc (p *MessageServiceListChatMessageApiResult) GetSuccess() (v *ListChatMessageApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn MessageServiceListChatMessageApiResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MessageServiceListChatMessageApiResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MessageServiceListChatMessageApiResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MessageServiceListChatMessageApiResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageServiceListChatMessageApiResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceListChatMessageApiResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListChatMessageApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MessageServiceListChatMessageApiResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListChatMessageApi_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageServiceListChatMessageApiResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MessageServiceListChatMessageApiResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageServiceListChatMessageApiResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/conversation/run/run.go",
    "content": "// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage run\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/message\"\n)\n\nconst (\n\t// content type\n\tContentTypeText = \"text\"\n\n\tContentTypeImage = \"image\"\n\n\tContentTypeAudio = \"audio\"\n\n\tContentTypeVideo = \"video\"\n\n\tContentTypeLink = \"link\"\n\n\tContentTypeMusic = \"music\"\n\n\tContentTypeCard = \"card\"\n\n\tContentTypeAPP = \"app\"\n\n\tContentTypeFile = \"file\"\n\n\tContentTypeMix = \"mix\"\n\n\tContentTypeMixApi = \"object_string\"\n\t// event type\n\tRunEventMessage = \"message\"\n\n\tRunEventDone = \"done\"\n\n\tRunEventError = \"error\"\n)\n\ntype DiffModeIdentifier int64\n\nconst (\n\tDiffModeIdentifier_ChatWithA DiffModeIdentifier = 1\n\tDiffModeIdentifier_ChatWithB DiffModeIdentifier = 2\n)\n\nfunc (p DiffModeIdentifier) String() string {\n\tswitch p {\n\tcase DiffModeIdentifier_ChatWithA:\n\t\treturn \"ChatWithA\"\n\tcase DiffModeIdentifier_ChatWithB:\n\t\treturn \"ChatWithB\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DiffModeIdentifierFromString(s string) (DiffModeIdentifier, error) {\n\tswitch s {\n\tcase \"ChatWithA\":\n\t\treturn DiffModeIdentifier_ChatWithA, nil\n\tcase \"ChatWithB\":\n\t\treturn DiffModeIdentifier_ChatWithB, nil\n\t}\n\treturn DiffModeIdentifier(0), fmt.Errorf(\"not a valid DiffModeIdentifier string\")\n}\n\nfunc DiffModeIdentifierPtr(v DiffModeIdentifier) *DiffModeIdentifier { return &v }\nfunc (p *DiffModeIdentifier) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DiffModeIdentifier(result.Int64)\n\treturn\n}\n\nfunc (p *DiffModeIdentifier) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ParametersStruct struct {\n\tValue string `thrift:\"value,1\" form:\"value\" json:\"value\" query:\"value\"`\n\t// \"uri\"\n\tResourceType string `thrift:\"resource_type,2\" form:\"resource_type\" json:\"resource_type\" query:\"resource_type\"`\n}\n\nfunc NewParametersStruct() *ParametersStruct {\n\treturn &ParametersStruct{}\n}\n\nfunc (p *ParametersStruct) InitDefault() {\n}\n\nfunc (p *ParametersStruct) GetValue() (v string) {\n\treturn p.Value\n}\n\nfunc (p *ParametersStruct) GetResourceType() (v string) {\n\treturn p.ResourceType\n}\n\nvar fieldIDToName_ParametersStruct = map[int16]string{\n\t1: \"value\",\n\t2: \"resource_type\",\n}\n\nfunc (p *ParametersStruct) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ParametersStruct[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ParametersStruct) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *ParametersStruct) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ResourceType = _field\n\treturn nil\n}\n\nfunc (p *ParametersStruct) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"parametersStruct\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ParametersStruct) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"value\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Value); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ParametersStruct) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"resource_type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ResourceType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ParametersStruct) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ParametersStruct(%+v)\", *p)\n\n}\n\ntype MixContentModel struct {\n\tItemList   []*Item `thrift:\"item_list,1\" form:\"item_list\" json:\"item_list\" query:\"item_list\"`\n\tReferItems []*Item `thrift:\"refer_items,2\" form:\"refer_items\" json:\"refer_items\" query:\"refer_items\"`\n}\n\nfunc NewMixContentModel() *MixContentModel {\n\treturn &MixContentModel{}\n}\n\nfunc (p *MixContentModel) InitDefault() {\n}\n\nfunc (p *MixContentModel) GetItemList() (v []*Item) {\n\treturn p.ItemList\n}\n\nfunc (p *MixContentModel) GetReferItems() (v []*Item) {\n\treturn p.ReferItems\n}\n\nvar fieldIDToName_MixContentModel = map[int16]string{\n\t1: \"item_list\",\n\t2: \"refer_items\",\n}\n\nfunc (p *MixContentModel) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MixContentModel[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MixContentModel) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Item, 0, size)\n\tvalues := make([]Item, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ItemList = _field\n\treturn nil\n}\nfunc (p *MixContentModel) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Item, 0, size)\n\tvalues := make([]Item, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ReferItems = _field\n\treturn nil\n}\n\nfunc (p *MixContentModel) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MixContentModel\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MixContentModel) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"item_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ItemList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ItemList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MixContentModel) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"refer_items\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ReferItems)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ReferItems {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *MixContentModel) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MixContentModel(%+v)\", *p)\n\n}\n\ntype Item struct {\n\tType  string `thrift:\"type,1\" form:\"type\" json:\"type\" query:\"type\"`\n\tText  string `thrift:\"text,2\" form:\"text\" json:\"text\" query:\"text\"`\n\tImage *Image `thrift:\"image,3\" form:\"image\" json:\"image\" query:\"image\"`\n\tFile  *File  `thrift:\"file,4\" form:\"file\" json:\"file\" query:\"file\"`\n}\n\nfunc NewItem() *Item {\n\treturn &Item{}\n}\n\nfunc (p *Item) InitDefault() {\n}\n\nfunc (p *Item) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *Item) GetText() (v string) {\n\treturn p.Text\n}\n\nvar Item_Image_DEFAULT *Image\n\nfunc (p *Item) GetImage() (v *Image) {\n\tif !p.IsSetImage() {\n\t\treturn Item_Image_DEFAULT\n\t}\n\treturn p.Image\n}\n\nvar Item_File_DEFAULT *File\n\nfunc (p *Item) GetFile() (v *File) {\n\tif !p.IsSetFile() {\n\t\treturn Item_File_DEFAULT\n\t}\n\treturn p.File\n}\n\nvar fieldIDToName_Item = map[int16]string{\n\t1: \"type\",\n\t2: \"text\",\n\t3: \"image\",\n\t4: \"file\",\n}\n\nfunc (p *Item) IsSetImage() bool {\n\treturn p.Image != nil\n}\n\nfunc (p *Item) IsSetFile() bool {\n\treturn p.File != nil\n}\n\nfunc (p *Item) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Item[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Item) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *Item) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Text = _field\n\treturn nil\n}\nfunc (p *Item) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewImage()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Image = _field\n\treturn nil\n}\nfunc (p *Item) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewFile()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.File = _field\n\treturn nil\n}\n\nfunc (p *Item) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Item\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Item) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Item) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"text\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Text); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Item) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"image\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Image.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Item) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.File.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *Item) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Item(%+v)\", *p)\n\n}\n\ntype ImageDetail struct {\n\tURL    string `thrift:\"url,1\" form:\"url\" json:\"url\" query:\"url\"`\n\tWidth  int32  `thrift:\"width,2\" form:\"width\" json:\"width\" query:\"width\"`\n\tHeight int32  `thrift:\"height,3\" form:\"height\" json:\"height\" query:\"height\"`\n}\n\nfunc NewImageDetail() *ImageDetail {\n\treturn &ImageDetail{}\n}\n\nfunc (p *ImageDetail) InitDefault() {\n}\n\nfunc (p *ImageDetail) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *ImageDetail) GetWidth() (v int32) {\n\treturn p.Width\n}\n\nfunc (p *ImageDetail) GetHeight() (v int32) {\n\treturn p.Height\n}\n\nvar fieldIDToName_ImageDetail = map[int16]string{\n\t1: \"url\",\n\t2: \"width\",\n\t3: \"height\",\n}\n\nfunc (p *ImageDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ImageDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ImageDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *ImageDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Width = _field\n\treturn nil\n}\nfunc (p *ImageDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Height = _field\n\treturn nil\n}\n\nfunc (p *ImageDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ImageDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ImageDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ImageDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"width\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Width); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ImageDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"height\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Height); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ImageDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ImageDetail(%+v)\", *p)\n\n}\n\ntype File struct {\n\tFileKey  string `thrift:\"file_key,1\" form:\"file_key\" json:\"file_key\" query:\"file_key\"`\n\tFileName string `thrift:\"file_name,2\" form:\"file_name\" json:\"file_name\" query:\"file_name\"`\n\tFileType string `thrift:\"file_type,3\" form:\"file_type\" json:\"file_type\" query:\"file_type\"`\n\tFileSize int64  `thrift:\"file_size,4\" form:\"file_size\" json:\"file_size\" query:\"file_size\"`\n\tFileURL  string `thrift:\"file_url,6\" form:\"file_url\" json:\"file_url\" query:\"file_url\"`\n}\n\nfunc NewFile() *File {\n\treturn &File{}\n}\n\nfunc (p *File) InitDefault() {\n}\n\nfunc (p *File) GetFileKey() (v string) {\n\treturn p.FileKey\n}\n\nfunc (p *File) GetFileName() (v string) {\n\treturn p.FileName\n}\n\nfunc (p *File) GetFileType() (v string) {\n\treturn p.FileType\n}\n\nfunc (p *File) GetFileSize() (v int64) {\n\treturn p.FileSize\n}\n\nfunc (p *File) GetFileURL() (v string) {\n\treturn p.FileURL\n}\n\nvar fieldIDToName_File = map[int16]string{\n\t1: \"file_key\",\n\t2: \"file_name\",\n\t3: \"file_type\",\n\t4: \"file_size\",\n\t6: \"file_url\",\n}\n\nfunc (p *File) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_File[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *File) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileKey = _field\n\treturn nil\n}\nfunc (p *File) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileName = _field\n\treturn nil\n}\nfunc (p *File) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileType = _field\n\treturn nil\n}\nfunc (p *File) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileSize = _field\n\treturn nil\n}\nfunc (p *File) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileURL = _field\n\treturn nil\n}\n\nfunc (p *File) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"File\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *File) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_key\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FileKey); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *File) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FileName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *File) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_type\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FileType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *File) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_size\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.FileSize); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *File) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_url\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FileURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *File) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"File(%+v)\", *p)\n\n}\n\ntype Image struct {\n\tKey        string       `thrift:\"key,1\" form:\"key\" json:\"key\" query:\"key\"`\n\tImageThumb *ImageDetail `thrift:\"image_thumb,2\" form:\"image_thumb\" json:\"image_thumb\" query:\"image_thumb\"`\n\tImageOri   *ImageDetail `thrift:\"image_ori,3\" form:\"image_ori\" json:\"image_ori\" query:\"image_ori\"`\n}\n\nfunc NewImage() *Image {\n\treturn &Image{}\n}\n\nfunc (p *Image) InitDefault() {\n}\n\nfunc (p *Image) GetKey() (v string) {\n\treturn p.Key\n}\n\nvar Image_ImageThumb_DEFAULT *ImageDetail\n\nfunc (p *Image) GetImageThumb() (v *ImageDetail) {\n\tif !p.IsSetImageThumb() {\n\t\treturn Image_ImageThumb_DEFAULT\n\t}\n\treturn p.ImageThumb\n}\n\nvar Image_ImageOri_DEFAULT *ImageDetail\n\nfunc (p *Image) GetImageOri() (v *ImageDetail) {\n\tif !p.IsSetImageOri() {\n\t\treturn Image_ImageOri_DEFAULT\n\t}\n\treturn p.ImageOri\n}\n\nvar fieldIDToName_Image = map[int16]string{\n\t1: \"key\",\n\t2: \"image_thumb\",\n\t3: \"image_ori\",\n}\n\nfunc (p *Image) IsSetImageThumb() bool {\n\treturn p.ImageThumb != nil\n}\n\nfunc (p *Image) IsSetImageOri() bool {\n\treturn p.ImageOri != nil\n}\n\nfunc (p *Image) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Image[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Image) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *Image) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewImageDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ImageThumb = _field\n\treturn nil\n}\nfunc (p *Image) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewImageDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ImageOri = _field\n\treturn nil\n}\n\nfunc (p *Image) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Image\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Image) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"key\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Key); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Image) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"image_thumb\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ImageThumb.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Image) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"image_ori\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ImageOri.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *Image) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Image(%+v)\", *p)\n\n}\n\ntype Tool struct {\n\tPluginID   int64                        `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id,string\" query:\"plugin_id\"`\n\tParameters map[string]*ParametersStruct `thrift:\"parameters,2\" form:\"parameters\" json:\"parameters\" query:\"parameters\"`\n\tAPIName    string                       `thrift:\"api_name,3\" form:\"api_name\" json:\"api_name\" query:\"api_name\"`\n\tToolID     int64                        `thrift:\"tool_id,4\" form:\"tool_id\" json:\"tool_id,string\" query:\"tool_id\"`\n}\n\nfunc NewTool() *Tool {\n\treturn &Tool{}\n}\n\nfunc (p *Tool) InitDefault() {\n}\n\nfunc (p *Tool) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *Tool) GetParameters() (v map[string]*ParametersStruct) {\n\treturn p.Parameters\n}\n\nfunc (p *Tool) GetAPIName() (v string) {\n\treturn p.APIName\n}\n\nfunc (p *Tool) GetToolID() (v int64) {\n\treturn p.ToolID\n}\n\nvar fieldIDToName_Tool = map[int16]string{\n\t1: \"plugin_id\",\n\t2: \"parameters\",\n\t3: \"api_name\",\n\t4: \"tool_id\",\n}\n\nfunc (p *Tool) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Tool[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Tool) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *Tool) ReadField2(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*ParametersStruct, size)\n\tvalues := make([]ParametersStruct, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\nfunc (p *Tool) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIName = _field\n\treturn nil\n}\nfunc (p *Tool) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ToolID = _field\n\treturn nil\n}\n\nfunc (p *Tool) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Tool\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Tool) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Tool) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"parameters\", thrift.MAP, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.Parameters)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Parameters {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Tool) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Tool) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tool_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ToolID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *Tool) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Tool(%+v)\", *p)\n\n}\n\ntype AdditionalContent struct {\n\tType    string  `thrift:\"type,1,required\" form:\"type,required\" json:\"type,required\" query:\"type,required\"`\n\tText    *string `thrift:\"text,2,optional\" form:\"text\" json:\"text,omitempty\" query:\"text\"`\n\tFileURL *string `thrift:\"file_url,3,optional\" form:\"file_url\" json:\"file_url,omitempty\" query:\"file_url\"`\n\tFileID  *int64  `thrift:\"file_id,4,optional\" form:\"file_id\" json:\"file_id,string,omitempty\" query:\"file_id\"`\n\tName    *string `thrift:\"name,5,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tSize    *int64  `thrift:\"size,6,optional\" form:\"size\" json:\"size,string,omitempty\" query:\"size\"`\n}\n\nfunc NewAdditionalContent() *AdditionalContent {\n\treturn &AdditionalContent{}\n}\n\nfunc (p *AdditionalContent) InitDefault() {\n}\n\nfunc (p *AdditionalContent) GetType() (v string) {\n\treturn p.Type\n}\n\nvar AdditionalContent_Text_DEFAULT string\n\nfunc (p *AdditionalContent) GetText() (v string) {\n\tif !p.IsSetText() {\n\t\treturn AdditionalContent_Text_DEFAULT\n\t}\n\treturn *p.Text\n}\n\nvar AdditionalContent_FileURL_DEFAULT string\n\nfunc (p *AdditionalContent) GetFileURL() (v string) {\n\tif !p.IsSetFileURL() {\n\t\treturn AdditionalContent_FileURL_DEFAULT\n\t}\n\treturn *p.FileURL\n}\n\nvar AdditionalContent_FileID_DEFAULT int64\n\nfunc (p *AdditionalContent) GetFileID() (v int64) {\n\tif !p.IsSetFileID() {\n\t\treturn AdditionalContent_FileID_DEFAULT\n\t}\n\treturn *p.FileID\n}\n\nvar AdditionalContent_Name_DEFAULT string\n\nfunc (p *AdditionalContent) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn AdditionalContent_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar AdditionalContent_Size_DEFAULT int64\n\nfunc (p *AdditionalContent) GetSize() (v int64) {\n\tif !p.IsSetSize() {\n\t\treturn AdditionalContent_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar fieldIDToName_AdditionalContent = map[int16]string{\n\t1: \"type\",\n\t2: \"text\",\n\t3: \"file_url\",\n\t4: \"file_id\",\n\t5: \"name\",\n\t6: \"size\",\n}\n\nfunc (p *AdditionalContent) IsSetText() bool {\n\treturn p.Text != nil\n}\n\nfunc (p *AdditionalContent) IsSetFileURL() bool {\n\treturn p.FileURL != nil\n}\n\nfunc (p *AdditionalContent) IsSetFileID() bool {\n\treturn p.FileID != nil\n}\n\nfunc (p *AdditionalContent) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *AdditionalContent) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *AdditionalContent) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetType {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AdditionalContent[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_AdditionalContent[fieldId]))\n}\n\nfunc (p *AdditionalContent) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *AdditionalContent) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Text = _field\n\treturn nil\n}\nfunc (p *AdditionalContent) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FileURL = _field\n\treturn nil\n}\nfunc (p *AdditionalContent) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FileID = _field\n\treturn nil\n}\nfunc (p *AdditionalContent) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *AdditionalContent) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\n\nfunc (p *AdditionalContent) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AdditionalContent\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AdditionalContent) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AdditionalContent) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetText() {\n\t\tif err = oprot.WriteFieldBegin(\"text\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Text); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AdditionalContent) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFileURL() {\n\t\tif err = oprot.WriteFieldBegin(\"file_url\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FileURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *AdditionalContent) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFileID() {\n\t\tif err = oprot.WriteFieldBegin(\"file_id\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.FileID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *AdditionalContent) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *AdditionalContent) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *AdditionalContent) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AdditionalContent(%+v)\", *p)\n\n}\n\ntype AgentRunRequest struct {\n\t//agent id\n\tBotID int64 `thrift:\"bot_id,1\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\t// session id\n\tConversationID int64  `thrift:\"conversation_id,2,required\" form:\"conversation_id,required\" json:\"conversation_id,string,required\" query:\"conversation_id,required\"`\n\tQuery          string `thrift:\"query,5,required\" form:\"query,required\" json:\"query,required\" query:\"query,required\"`\n\t// ext pass-through field\n\tExtra           map[string]string `thrift:\"extra,7\" form:\"extra\" json:\"extra\" query:\"extra\"`\n\tCustomVariables map[string]string `thrift:\"custom_variables,9\" form:\"custom_variables\" json:\"custom_variables\" query:\"custom_variables\"`\n\t// Draft bot or online bot\n\tDraftMode *bool `thrift:\"draft_mode,10,optional\" form:\"draft_mode\" json:\"draft_mode,omitempty\" query:\"draft_mode\"`\n\t// Explore the scene\n\tScene *common.Scene `thrift:\"scene,11,optional\" form:\"scene\" json:\"scene,omitempty\" query:\"scene\"`\n\t// Files files pictures images etc\n\tContentType *string `thrift:\"content_type,12,optional\" form:\"content_type\" json:\"content_type,omitempty\" query:\"content_type\"`\n\t// Retry message id\n\tRegenMessageID *int64 `thrift:\"regen_message_id,13,optional\" form:\"regen_message_id\" json:\"regen_message_id,string,omitempty\" query:\"regen_message_id\"`\n\t// The local message_id on the front end is passed back in the extra_info\n\tLocalMessageID *string `thrift:\"local_message_id,14,optional\" form:\"local_message_id\" json:\"local_message_id,omitempty\" query:\"local_message_id\"`\n\t// The bot template used, instead of bot_id bot_version draft_mode parameters, coze home uses preset_bot = \"coze_home\"\n\tPresetBot                *string                       `thrift:\"preset_bot,15,optional\" form:\"preset_bot\" json:\"preset_bot,omitempty\" query:\"preset_bot\"`\n\tInsertHistoryMessageList []string                      `thrift:\"insert_history_message_list,16,optional\" form:\"insert_history_message_list\" json:\"insert_history_message_list,omitempty\" query:\"insert_history_message_list\"`\n\tDeviceID                 *string                       `thrift:\"device_id,17,optional\" form:\"device_id\" json:\"device_id,omitempty\" query:\"device_id\"`\n\tSpaceID                  *int64                        `thrift:\"space_id,18,optional\" form:\"space_id\" json:\"space_id,string,omitempty\" query:\"space_id\"`\n\tMentionList              []*message.MsgParticipantInfo `thrift:\"mention_list,19,optional\" form:\"mention_list\" json:\"mention_list,omitempty\" query:\"mention_list\"`\n\tToolList                 []*Tool                       `thrift:\"toolList,20,optional\" form:\"toolList\" json:\"toolList,omitempty\" query:\"toolList\"`\n\tCommitVersion            *string                       `thrift:\"commit_version,21,optional\" form:\"commit_version\" json:\"commit_version,omitempty\" query:\"commit_version\"`\n\t// Scene granularity further distinguish scenes, currently only used for bot templates = bot_template\n\tSubScene *string `thrift:\"sub_scene,22,optional\" form:\"sub_scene\" json:\"sub_scene,omitempty\" query:\"sub_scene\"`\n\t// Chat configuration in diff mode, draft only single bot\n\tDiffModeIdentifier *DiffModeIdentifier `thrift:\"diff_mode_identifier,23,optional\" form:\"diff_mode_identifier\" json:\"diff_mode_identifier,omitempty\" query:\"diff_mode_identifier\"`\n\tShortcutCmdID      *int64              `thrift:\"shortcut_cmd_id,24,optional\" form:\"shortcut_cmd_id\" json:\"shortcut_cmd_id,string,omitempty\" query:\"shortcut_cmd_id\"`\n}\n\nfunc NewAgentRunRequest() *AgentRunRequest {\n\treturn &AgentRunRequest{}\n}\n\nfunc (p *AgentRunRequest) InitDefault() {\n}\n\nfunc (p *AgentRunRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *AgentRunRequest) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nfunc (p *AgentRunRequest) GetQuery() (v string) {\n\treturn p.Query\n}\n\nfunc (p *AgentRunRequest) GetExtra() (v map[string]string) {\n\treturn p.Extra\n}\n\nfunc (p *AgentRunRequest) GetCustomVariables() (v map[string]string) {\n\treturn p.CustomVariables\n}\n\nvar AgentRunRequest_DraftMode_DEFAULT bool\n\nfunc (p *AgentRunRequest) GetDraftMode() (v bool) {\n\tif !p.IsSetDraftMode() {\n\t\treturn AgentRunRequest_DraftMode_DEFAULT\n\t}\n\treturn *p.DraftMode\n}\n\nvar AgentRunRequest_Scene_DEFAULT common.Scene\n\nfunc (p *AgentRunRequest) GetScene() (v common.Scene) {\n\tif !p.IsSetScene() {\n\t\treturn AgentRunRequest_Scene_DEFAULT\n\t}\n\treturn *p.Scene\n}\n\nvar AgentRunRequest_ContentType_DEFAULT string\n\nfunc (p *AgentRunRequest) GetContentType() (v string) {\n\tif !p.IsSetContentType() {\n\t\treturn AgentRunRequest_ContentType_DEFAULT\n\t}\n\treturn *p.ContentType\n}\n\nvar AgentRunRequest_RegenMessageID_DEFAULT int64\n\nfunc (p *AgentRunRequest) GetRegenMessageID() (v int64) {\n\tif !p.IsSetRegenMessageID() {\n\t\treturn AgentRunRequest_RegenMessageID_DEFAULT\n\t}\n\treturn *p.RegenMessageID\n}\n\nvar AgentRunRequest_LocalMessageID_DEFAULT string\n\nfunc (p *AgentRunRequest) GetLocalMessageID() (v string) {\n\tif !p.IsSetLocalMessageID() {\n\t\treturn AgentRunRequest_LocalMessageID_DEFAULT\n\t}\n\treturn *p.LocalMessageID\n}\n\nvar AgentRunRequest_PresetBot_DEFAULT string\n\nfunc (p *AgentRunRequest) GetPresetBot() (v string) {\n\tif !p.IsSetPresetBot() {\n\t\treturn AgentRunRequest_PresetBot_DEFAULT\n\t}\n\treturn *p.PresetBot\n}\n\nvar AgentRunRequest_InsertHistoryMessageList_DEFAULT []string\n\nfunc (p *AgentRunRequest) GetInsertHistoryMessageList() (v []string) {\n\tif !p.IsSetInsertHistoryMessageList() {\n\t\treturn AgentRunRequest_InsertHistoryMessageList_DEFAULT\n\t}\n\treturn p.InsertHistoryMessageList\n}\n\nvar AgentRunRequest_DeviceID_DEFAULT string\n\nfunc (p *AgentRunRequest) GetDeviceID() (v string) {\n\tif !p.IsSetDeviceID() {\n\t\treturn AgentRunRequest_DeviceID_DEFAULT\n\t}\n\treturn *p.DeviceID\n}\n\nvar AgentRunRequest_SpaceID_DEFAULT int64\n\nfunc (p *AgentRunRequest) GetSpaceID() (v int64) {\n\tif !p.IsSetSpaceID() {\n\t\treturn AgentRunRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar AgentRunRequest_MentionList_DEFAULT []*message.MsgParticipantInfo\n\nfunc (p *AgentRunRequest) GetMentionList() (v []*message.MsgParticipantInfo) {\n\tif !p.IsSetMentionList() {\n\t\treturn AgentRunRequest_MentionList_DEFAULT\n\t}\n\treturn p.MentionList\n}\n\nvar AgentRunRequest_ToolList_DEFAULT []*Tool\n\nfunc (p *AgentRunRequest) GetToolList() (v []*Tool) {\n\tif !p.IsSetToolList() {\n\t\treturn AgentRunRequest_ToolList_DEFAULT\n\t}\n\treturn p.ToolList\n}\n\nvar AgentRunRequest_CommitVersion_DEFAULT string\n\nfunc (p *AgentRunRequest) GetCommitVersion() (v string) {\n\tif !p.IsSetCommitVersion() {\n\t\treturn AgentRunRequest_CommitVersion_DEFAULT\n\t}\n\treturn *p.CommitVersion\n}\n\nvar AgentRunRequest_SubScene_DEFAULT string\n\nfunc (p *AgentRunRequest) GetSubScene() (v string) {\n\tif !p.IsSetSubScene() {\n\t\treturn AgentRunRequest_SubScene_DEFAULT\n\t}\n\treturn *p.SubScene\n}\n\nvar AgentRunRequest_DiffModeIdentifier_DEFAULT DiffModeIdentifier\n\nfunc (p *AgentRunRequest) GetDiffModeIdentifier() (v DiffModeIdentifier) {\n\tif !p.IsSetDiffModeIdentifier() {\n\t\treturn AgentRunRequest_DiffModeIdentifier_DEFAULT\n\t}\n\treturn *p.DiffModeIdentifier\n}\n\nvar AgentRunRequest_ShortcutCmdID_DEFAULT int64\n\nfunc (p *AgentRunRequest) GetShortcutCmdID() (v int64) {\n\tif !p.IsSetShortcutCmdID() {\n\t\treturn AgentRunRequest_ShortcutCmdID_DEFAULT\n\t}\n\treturn *p.ShortcutCmdID\n}\n\nvar fieldIDToName_AgentRunRequest = map[int16]string{\n\t1:  \"bot_id\",\n\t2:  \"conversation_id\",\n\t5:  \"query\",\n\t7:  \"extra\",\n\t9:  \"custom_variables\",\n\t10: \"draft_mode\",\n\t11: \"scene\",\n\t12: \"content_type\",\n\t13: \"regen_message_id\",\n\t14: \"local_message_id\",\n\t15: \"preset_bot\",\n\t16: \"insert_history_message_list\",\n\t17: \"device_id\",\n\t18: \"space_id\",\n\t19: \"mention_list\",\n\t20: \"toolList\",\n\t21: \"commit_version\",\n\t22: \"sub_scene\",\n\t23: \"diff_mode_identifier\",\n\t24: \"shortcut_cmd_id\",\n}\n\nfunc (p *AgentRunRequest) IsSetDraftMode() bool {\n\treturn p.DraftMode != nil\n}\n\nfunc (p *AgentRunRequest) IsSetScene() bool {\n\treturn p.Scene != nil\n}\n\nfunc (p *AgentRunRequest) IsSetContentType() bool {\n\treturn p.ContentType != nil\n}\n\nfunc (p *AgentRunRequest) IsSetRegenMessageID() bool {\n\treturn p.RegenMessageID != nil\n}\n\nfunc (p *AgentRunRequest) IsSetLocalMessageID() bool {\n\treturn p.LocalMessageID != nil\n}\n\nfunc (p *AgentRunRequest) IsSetPresetBot() bool {\n\treturn p.PresetBot != nil\n}\n\nfunc (p *AgentRunRequest) IsSetInsertHistoryMessageList() bool {\n\treturn p.InsertHistoryMessageList != nil\n}\n\nfunc (p *AgentRunRequest) IsSetDeviceID() bool {\n\treturn p.DeviceID != nil\n}\n\nfunc (p *AgentRunRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *AgentRunRequest) IsSetMentionList() bool {\n\treturn p.MentionList != nil\n}\n\nfunc (p *AgentRunRequest) IsSetToolList() bool {\n\treturn p.ToolList != nil\n}\n\nfunc (p *AgentRunRequest) IsSetCommitVersion() bool {\n\treturn p.CommitVersion != nil\n}\n\nfunc (p *AgentRunRequest) IsSetSubScene() bool {\n\treturn p.SubScene != nil\n}\n\nfunc (p *AgentRunRequest) IsSetDiffModeIdentifier() bool {\n\treturn p.DiffModeIdentifier != nil\n}\n\nfunc (p *AgentRunRequest) IsSetShortcutCmdID() bool {\n\treturn p.ShortcutCmdID != nil\n}\n\nfunc (p *AgentRunRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetConversationID bool = false\n\tvar issetQuery bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetQuery = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetQuery {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentRunRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_AgentRunRequest[fieldId]))\n}\n\nfunc (p *AgentRunRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Query = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField7(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Extra = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField9(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CustomVariables = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DraftMode = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *common.Scene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.Scene(v)\n\t\t_field = &tmp\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ContentType = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RegenMessageID = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LocalMessageID = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PresetBot = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField16(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.InsertHistoryMessageList = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DeviceID = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField19(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*message.MsgParticipantInfo, 0, size)\n\tvalues := make([]message.MsgParticipantInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MentionList = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField20(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Tool, 0, size)\n\tvalues := make([]Tool, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ToolList = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitVersion = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubScene = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field *DiffModeIdentifier\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DiffModeIdentifier(v)\n\t\t_field = &tmp\n\t}\n\tp.DiffModeIdentifier = _field\n\treturn nil\n}\nfunc (p *AgentRunRequest) ReadField24(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ShortcutCmdID = _field\n\treturn nil\n}\n\nfunc (p *AgentRunRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AgentRunRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentRunRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"query\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Query); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"extra\", thrift.MAP, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Extra)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Extra {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"custom_variables\", thrift.MAP, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.CustomVariables)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.CustomVariables {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDraftMode() {\n\t\tif err = oprot.WriteFieldBegin(\"draft_mode\", thrift.BOOL, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.DraftMode); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScene() {\n\t\tif err = oprot.WriteFieldBegin(\"scene\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Scene)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContentType() {\n\t\tif err = oprot.WriteFieldBegin(\"content_type\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ContentType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRegenMessageID() {\n\t\tif err = oprot.WriteFieldBegin(\"regen_message_id\", thrift.I64, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.RegenMessageID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLocalMessageID() {\n\t\tif err = oprot.WriteFieldBegin(\"local_message_id\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LocalMessageID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPresetBot() {\n\t\tif err = oprot.WriteFieldBegin(\"preset_bot\", thrift.STRING, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PresetBot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInsertHistoryMessageList() {\n\t\tif err = oprot.WriteFieldBegin(\"insert_history_message_list\", thrift.LIST, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.InsertHistoryMessageList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.InsertHistoryMessageList {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDeviceID() {\n\t\tif err = oprot.WriteFieldBegin(\"device_id\", thrift.STRING, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DeviceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMentionList() {\n\t\tif err = oprot.WriteFieldBegin(\"mention_list\", thrift.LIST, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.MentionList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.MentionList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetToolList() {\n\t\tif err = oprot.WriteFieldBegin(\"toolList\", thrift.LIST, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ToolList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ToolList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_version\", thrift.STRING, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField22(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubScene() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_scene\", thrift.STRING, 22); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SubScene); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField23(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDiffModeIdentifier() {\n\t\tif err = oprot.WriteFieldBegin(\"diff_mode_identifier\", thrift.I32, 23); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.DiffModeIdentifier)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *AgentRunRequest) writeField24(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShortcutCmdID() {\n\t\tif err = oprot.WriteFieldBegin(\"shortcut_cmd_id\", thrift.I64, 24); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ShortcutCmdID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\n\nfunc (p *AgentRunRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentRunRequest(%+v)\", *p)\n\n}\n\ntype RunStreamResponse struct {\n\tMessage        *message.ChatMessage `thrift:\"message,1,required\" form:\"message,required\" json:\"message,required\" query:\"message,required\"`\n\tIsFinish       *bool                `thrift:\"is_finish,2,optional\" form:\"is_finish\" json:\"is_finish,omitempty\" query:\"is_finish\"`\n\tIndex          int32                `thrift:\"index,3,required\" form:\"index,required\" json:\"index,required\" query:\"index,required\"`\n\tConversationID string               `thrift:\"conversation_id,4,required\" form:\"conversation_id,required\" json:\"conversation_id,required\" query:\"conversation_id,required\"`\n\tSeqID          int32                `thrift:\"seq_id,5,required\" form:\"seq_id,required\" json:\"seq_id,required\" query:\"seq_id,required\"`\n}\n\nfunc NewRunStreamResponse() *RunStreamResponse {\n\treturn &RunStreamResponse{}\n}\n\nfunc (p *RunStreamResponse) InitDefault() {\n}\n\nvar RunStreamResponse_Message_DEFAULT *message.ChatMessage\n\nfunc (p *RunStreamResponse) GetMessage() (v *message.ChatMessage) {\n\tif !p.IsSetMessage() {\n\t\treturn RunStreamResponse_Message_DEFAULT\n\t}\n\treturn p.Message\n}\n\nvar RunStreamResponse_IsFinish_DEFAULT bool\n\nfunc (p *RunStreamResponse) GetIsFinish() (v bool) {\n\tif !p.IsSetIsFinish() {\n\t\treturn RunStreamResponse_IsFinish_DEFAULT\n\t}\n\treturn *p.IsFinish\n}\n\nfunc (p *RunStreamResponse) GetIndex() (v int32) {\n\treturn p.Index\n}\n\nfunc (p *RunStreamResponse) GetConversationID() (v string) {\n\treturn p.ConversationID\n}\n\nfunc (p *RunStreamResponse) GetSeqID() (v int32) {\n\treturn p.SeqID\n}\n\nvar fieldIDToName_RunStreamResponse = map[int16]string{\n\t1: \"message\",\n\t2: \"is_finish\",\n\t3: \"index\",\n\t4: \"conversation_id\",\n\t5: \"seq_id\",\n}\n\nfunc (p *RunStreamResponse) IsSetMessage() bool {\n\treturn p.Message != nil\n}\n\nfunc (p *RunStreamResponse) IsSetIsFinish() bool {\n\treturn p.IsFinish != nil\n}\n\nfunc (p *RunStreamResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetMessage bool = false\n\tvar issetIndex bool = false\n\tvar issetConversationID bool = false\n\tvar issetSeqID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessage = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetIndex = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSeqID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetMessage {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetIndex {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSeqID {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RunStreamResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_RunStreamResponse[fieldId]))\n}\n\nfunc (p *RunStreamResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := message.NewChatMessage()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *RunStreamResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsFinish = _field\n\treturn nil\n}\nfunc (p *RunStreamResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Index = _field\n\treturn nil\n}\nfunc (p *RunStreamResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *RunStreamResponse) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SeqID = _field\n\treturn nil\n}\n\nfunc (p *RunStreamResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RunStreamResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RunStreamResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"message\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Message.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RunStreamResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsFinish() {\n\t\tif err = oprot.WriteFieldBegin(\"is_finish\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsFinish); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *RunStreamResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"index\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Index); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *RunStreamResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *RunStreamResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"seq_id\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.SeqID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *RunStreamResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RunStreamResponse(%+v)\", *p)\n\n}\n\ntype AgentRunResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n}\n\nfunc NewAgentRunResponse() *AgentRunResponse {\n\treturn &AgentRunResponse{}\n}\n\nfunc (p *AgentRunResponse) InitDefault() {\n}\n\nfunc (p *AgentRunResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *AgentRunResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_AgentRunResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n}\n\nfunc (p *AgentRunResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AgentRunResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AgentRunResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *AgentRunResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *AgentRunResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AgentRunResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AgentRunResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AgentRunResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *AgentRunResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AgentRunResponse(%+v)\", *p)\n\n}\n\ntype ErrorData struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n}\n\nfunc NewErrorData() *ErrorData {\n\treturn &ErrorData{}\n}\n\nfunc (p *ErrorData) InitDefault() {\n}\n\nfunc (p *ErrorData) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ErrorData) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_ErrorData = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n}\n\nfunc (p *ErrorData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ErrorData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ErrorData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ErrorData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *ErrorData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ErrorData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ErrorData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ErrorData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ErrorData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ErrorData(%+v)\", *p)\n\n}\n\ntype CustomConfig struct {\n\tModelConfig *ModelConfig `thrift:\"ModelConfig,1,optional\" form:\"model_config\" json:\"model_config,omitempty\"`\n\tBotConfig   *BotConfig   `thrift:\"BotConfig,2,optional\" form:\"bot_config\" json:\"bot_config,omitempty\"`\n}\n\nfunc NewCustomConfig() *CustomConfig {\n\treturn &CustomConfig{}\n}\n\nfunc (p *CustomConfig) InitDefault() {\n}\n\nvar CustomConfig_ModelConfig_DEFAULT *ModelConfig\n\nfunc (p *CustomConfig) GetModelConfig() (v *ModelConfig) {\n\tif !p.IsSetModelConfig() {\n\t\treturn CustomConfig_ModelConfig_DEFAULT\n\t}\n\treturn p.ModelConfig\n}\n\nvar CustomConfig_BotConfig_DEFAULT *BotConfig\n\nfunc (p *CustomConfig) GetBotConfig() (v *BotConfig) {\n\tif !p.IsSetBotConfig() {\n\t\treturn CustomConfig_BotConfig_DEFAULT\n\t}\n\treturn p.BotConfig\n}\n\nvar fieldIDToName_CustomConfig = map[int16]string{\n\t1: \"ModelConfig\",\n\t2: \"BotConfig\",\n}\n\nfunc (p *CustomConfig) IsSetModelConfig() bool {\n\treturn p.ModelConfig != nil\n}\n\nfunc (p *CustomConfig) IsSetBotConfig() bool {\n\treturn p.BotConfig != nil\n}\n\nfunc (p *CustomConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CustomConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CustomConfig) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewModelConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ModelConfig = _field\n\treturn nil\n}\nfunc (p *CustomConfig) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewBotConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotConfig = _field\n\treturn nil\n}\n\nfunc (p *CustomConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CustomConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CustomConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"ModelConfig\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ModelConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CustomConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"BotConfig\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BotConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *CustomConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CustomConfig(%+v)\", *p)\n\n}\n\ntype ModelConfig struct {\n\tModelID *string `thrift:\"ModelID,1,optional\" form:\"model_id\" json:\"model_id,omitempty\"`\n}\n\nfunc NewModelConfig() *ModelConfig {\n\treturn &ModelConfig{}\n}\n\nfunc (p *ModelConfig) InitDefault() {\n}\n\nvar ModelConfig_ModelID_DEFAULT string\n\nfunc (p *ModelConfig) GetModelID() (v string) {\n\tif !p.IsSetModelID() {\n\t\treturn ModelConfig_ModelID_DEFAULT\n\t}\n\treturn *p.ModelID\n}\n\nvar fieldIDToName_ModelConfig = map[int16]string{\n\t1: \"ModelID\",\n}\n\nfunc (p *ModelConfig) IsSetModelID() bool {\n\treturn p.ModelID != nil\n}\n\nfunc (p *ModelConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ModelConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ModelID = _field\n\treturn nil\n}\n\nfunc (p *ModelConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelID() {\n\t\tif err = oprot.WriteFieldBegin(\"ModelID\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ModelID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ModelConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelConfig(%+v)\", *p)\n\n}\n\ntype BotConfig struct {\n\tCharacterName *string `thrift:\"CharacterName,1,optional\" form:\"character_name\" json:\"character_name,omitempty\"`\n\tPrompt        *string `thrift:\"Prompt,2,optional\" form:\"propmt\" json:\"propmt,omitempty\"`\n}\n\nfunc NewBotConfig() *BotConfig {\n\treturn &BotConfig{}\n}\n\nfunc (p *BotConfig) InitDefault() {\n}\n\nvar BotConfig_CharacterName_DEFAULT string\n\nfunc (p *BotConfig) GetCharacterName() (v string) {\n\tif !p.IsSetCharacterName() {\n\t\treturn BotConfig_CharacterName_DEFAULT\n\t}\n\treturn *p.CharacterName\n}\n\nvar BotConfig_Prompt_DEFAULT string\n\nfunc (p *BotConfig) GetPrompt() (v string) {\n\tif !p.IsSetPrompt() {\n\t\treturn BotConfig_Prompt_DEFAULT\n\t}\n\treturn *p.Prompt\n}\n\nvar fieldIDToName_BotConfig = map[int16]string{\n\t1: \"CharacterName\",\n\t2: \"Prompt\",\n}\n\nfunc (p *BotConfig) IsSetCharacterName() bool {\n\treturn p.CharacterName != nil\n}\n\nfunc (p *BotConfig) IsSetPrompt() bool {\n\treturn p.Prompt != nil\n}\n\nfunc (p *BotConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CharacterName = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Prompt = _field\n\treturn nil\n}\n\nfunc (p *BotConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCharacterName() {\n\t\tif err = oprot.WriteFieldBegin(\"CharacterName\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CharacterName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrompt() {\n\t\tif err = oprot.WriteFieldBegin(\"Prompt\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Prompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *BotConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotConfig(%+v)\", *p)\n\n}\n\ntype ShortcutCommandDetail struct {\n\tCommandID int64 `thrift:\"command_id,1,required\" form:\"command_id,required\" json:\"command_id,string,required\" query:\"command_id,required\"`\n\t// Key = parameter name value = value object_string JSON String after object array serialization\n\tParameters map[string]string `thrift:\"parameters,2\" form:\"parameters\" json:\"parameters\" query:\"parameters\"`\n}\n\nfunc NewShortcutCommandDetail() *ShortcutCommandDetail {\n\treturn &ShortcutCommandDetail{}\n}\n\nfunc (p *ShortcutCommandDetail) InitDefault() {\n}\n\nfunc (p *ShortcutCommandDetail) GetCommandID() (v int64) {\n\treturn p.CommandID\n}\n\nfunc (p *ShortcutCommandDetail) GetParameters() (v map[string]string) {\n\treturn p.Parameters\n}\n\nvar fieldIDToName_ShortcutCommandDetail = map[int16]string{\n\t1: \"command_id\",\n\t2: \"parameters\",\n}\n\nfunc (p *ShortcutCommandDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCommandID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCommandID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCommandID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ShortcutCommandDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ShortcutCommandDetail[fieldId]))\n}\n\nfunc (p *ShortcutCommandDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CommandID = _field\n\treturn nil\n}\nfunc (p *ShortcutCommandDetail) ReadField2(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\n\nfunc (p *ShortcutCommandDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ShortcutCommandDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ShortcutCommandDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"command_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CommandID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ShortcutCommandDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"parameters\", thrift.MAP, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Parameters)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Parameters {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ShortcutCommandDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ShortcutCommandDetail(%+v)\", *p)\n\n}\n\ntype ChatV3Request struct {\n\t//agent_id\n\tBotID int64 `thrift:\"BotID,1,required\" form:\"bot_id,required\" json:\"bot_id,string,required\"`\n\t//conversation_id\n\tConversationID *int64 `thrift:\"ConversationID,2,optional\" json:\"ConversationID,string,omitempty\" query:\"conversation_id\"`\n\t//user_id, data isolation identification, need to ensure unique\n\tUser string `thrift:\"User,3,required\" form:\"user_id,required\" json:\"user_id,required\"`\n\t//Whether to stream, currently only supports churn.\n\tStream *bool `thrift:\"Stream,4,optional\" form:\"stream\" json:\"stream,omitempty\"`\n\t//In this conversation message, only role = user is currently supported.\n\tAdditionalMessages []*EnterMessage `thrift:\"AdditionalMessages,5,optional\" form:\"additional_messages\" json:\"additional_messages,omitempty\"`\n\t//user-defined variables\n\tCustomVariables map[string]string `thrift:\"CustomVariables,6,optional\" form:\"custom_variables\" json:\"custom_variables,omitempty\"`\n\tMetaData        map[string]string `thrift:\"MetaData,8,optional\" form:\"meta_data\" json:\"meta_data,omitempty\"`\n\tCustomConfig    *CustomConfig     `thrift:\"CustomConfig,10,optional\" form:\"custom_config\" json:\"custom_config,omitempty\"`\n\t// Pass parameters to plugin/workflow etc downstream\n\tExtraParams map[string]string `thrift:\"ExtraParams,11,optional\" form:\"extra_params\" json:\"extra_params,omitempty\"`\n\t// Manually specify channel id chat. Currently only supports websdk (= 999)\n\tConnectorID *int64 `thrift:\"ConnectorID,12,optional\" form:\"connector_id\" json:\"connector_id,string,omitempty\"`\n\t// Specify shortcut instructions\n\tShortcutCommand *ShortcutCommandDetail `thrift:\"ShortcutCommand,13,optional\" form:\"shortcut_command\" json:\"shortcut_command,omitempty\"`\n\tParameters      *string                `thrift:\"Parameters,14,optional\" form:\"parameters\" json:\"parameters,omitempty\"`\n}\n\nfunc NewChatV3Request() *ChatV3Request {\n\treturn &ChatV3Request{}\n}\n\nfunc (p *ChatV3Request) InitDefault() {\n}\n\nfunc (p *ChatV3Request) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar ChatV3Request_ConversationID_DEFAULT int64\n\nfunc (p *ChatV3Request) GetConversationID() (v int64) {\n\tif !p.IsSetConversationID() {\n\t\treturn ChatV3Request_ConversationID_DEFAULT\n\t}\n\treturn *p.ConversationID\n}\n\nfunc (p *ChatV3Request) GetUser() (v string) {\n\treturn p.User\n}\n\nvar ChatV3Request_Stream_DEFAULT bool\n\nfunc (p *ChatV3Request) GetStream() (v bool) {\n\tif !p.IsSetStream() {\n\t\treturn ChatV3Request_Stream_DEFAULT\n\t}\n\treturn *p.Stream\n}\n\nvar ChatV3Request_AdditionalMessages_DEFAULT []*EnterMessage\n\nfunc (p *ChatV3Request) GetAdditionalMessages() (v []*EnterMessage) {\n\tif !p.IsSetAdditionalMessages() {\n\t\treturn ChatV3Request_AdditionalMessages_DEFAULT\n\t}\n\treturn p.AdditionalMessages\n}\n\nvar ChatV3Request_CustomVariables_DEFAULT map[string]string\n\nfunc (p *ChatV3Request) GetCustomVariables() (v map[string]string) {\n\tif !p.IsSetCustomVariables() {\n\t\treturn ChatV3Request_CustomVariables_DEFAULT\n\t}\n\treturn p.CustomVariables\n}\n\nvar ChatV3Request_MetaData_DEFAULT map[string]string\n\nfunc (p *ChatV3Request) GetMetaData() (v map[string]string) {\n\tif !p.IsSetMetaData() {\n\t\treturn ChatV3Request_MetaData_DEFAULT\n\t}\n\treturn p.MetaData\n}\n\nvar ChatV3Request_CustomConfig_DEFAULT *CustomConfig\n\nfunc (p *ChatV3Request) GetCustomConfig() (v *CustomConfig) {\n\tif !p.IsSetCustomConfig() {\n\t\treturn ChatV3Request_CustomConfig_DEFAULT\n\t}\n\treturn p.CustomConfig\n}\n\nvar ChatV3Request_ExtraParams_DEFAULT map[string]string\n\nfunc (p *ChatV3Request) GetExtraParams() (v map[string]string) {\n\tif !p.IsSetExtraParams() {\n\t\treturn ChatV3Request_ExtraParams_DEFAULT\n\t}\n\treturn p.ExtraParams\n}\n\nvar ChatV3Request_ConnectorID_DEFAULT int64\n\nfunc (p *ChatV3Request) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn ChatV3Request_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar ChatV3Request_ShortcutCommand_DEFAULT *ShortcutCommandDetail\n\nfunc (p *ChatV3Request) GetShortcutCommand() (v *ShortcutCommandDetail) {\n\tif !p.IsSetShortcutCommand() {\n\t\treturn ChatV3Request_ShortcutCommand_DEFAULT\n\t}\n\treturn p.ShortcutCommand\n}\n\nvar ChatV3Request_Parameters_DEFAULT string\n\nfunc (p *ChatV3Request) GetParameters() (v string) {\n\tif !p.IsSetParameters() {\n\t\treturn ChatV3Request_Parameters_DEFAULT\n\t}\n\treturn *p.Parameters\n}\n\nvar fieldIDToName_ChatV3Request = map[int16]string{\n\t1:  \"BotID\",\n\t2:  \"ConversationID\",\n\t3:  \"User\",\n\t4:  \"Stream\",\n\t5:  \"AdditionalMessages\",\n\t6:  \"CustomVariables\",\n\t8:  \"MetaData\",\n\t10: \"CustomConfig\",\n\t11: \"ExtraParams\",\n\t12: \"ConnectorID\",\n\t13: \"ShortcutCommand\",\n\t14: \"Parameters\",\n}\n\nfunc (p *ChatV3Request) IsSetConversationID() bool {\n\treturn p.ConversationID != nil\n}\n\nfunc (p *ChatV3Request) IsSetStream() bool {\n\treturn p.Stream != nil\n}\n\nfunc (p *ChatV3Request) IsSetAdditionalMessages() bool {\n\treturn p.AdditionalMessages != nil\n}\n\nfunc (p *ChatV3Request) IsSetCustomVariables() bool {\n\treturn p.CustomVariables != nil\n}\n\nfunc (p *ChatV3Request) IsSetMetaData() bool {\n\treturn p.MetaData != nil\n}\n\nfunc (p *ChatV3Request) IsSetCustomConfig() bool {\n\treturn p.CustomConfig != nil\n}\n\nfunc (p *ChatV3Request) IsSetExtraParams() bool {\n\treturn p.ExtraParams != nil\n}\n\nfunc (p *ChatV3Request) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *ChatV3Request) IsSetShortcutCommand() bool {\n\treturn p.ShortcutCommand != nil\n}\n\nfunc (p *ChatV3Request) IsSetParameters() bool {\n\treturn p.Parameters != nil\n}\n\nfunc (p *ChatV3Request) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\tvar issetUser bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUser = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUser {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatV3Request[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ChatV3Request[fieldId]))\n}\n\nfunc (p *ChatV3Request) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ChatV3Request) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ChatV3Request) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.User = _field\n\treturn nil\n}\nfunc (p *ChatV3Request) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Stream = _field\n\treturn nil\n}\nfunc (p *ChatV3Request) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*EnterMessage, 0, size)\n\tvalues := make([]EnterMessage, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.AdditionalMessages = _field\n\treturn nil\n}\nfunc (p *ChatV3Request) ReadField6(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CustomVariables = _field\n\treturn nil\n}\nfunc (p *ChatV3Request) ReadField8(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *ChatV3Request) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewCustomConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CustomConfig = _field\n\treturn nil\n}\nfunc (p *ChatV3Request) ReadField11(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ExtraParams = _field\n\treturn nil\n}\nfunc (p *ChatV3Request) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ChatV3Request) ReadField13(iprot thrift.TProtocol) error {\n\t_field := NewShortcutCommandDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ShortcutCommand = _field\n\treturn nil\n}\nfunc (p *ChatV3Request) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\n\nfunc (p *ChatV3Request) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatV3Request\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatV3Request) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatV3Request) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConversationID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConversationID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChatV3Request) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"User\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.User); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ChatV3Request) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStream() {\n\t\tif err = oprot.WriteFieldBegin(\"Stream\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Stream); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ChatV3Request) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAdditionalMessages() {\n\t\tif err = oprot.WriteFieldBegin(\"AdditionalMessages\", thrift.LIST, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.AdditionalMessages)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.AdditionalMessages {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ChatV3Request) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCustomVariables() {\n\t\tif err = oprot.WriteFieldBegin(\"CustomVariables\", thrift.MAP, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.CustomVariables)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.CustomVariables {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ChatV3Request) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMetaData() {\n\t\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.MetaData {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ChatV3Request) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCustomConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"CustomConfig\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.CustomConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ChatV3Request) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExtraParams() {\n\t\tif err = oprot.WriteFieldBegin(\"ExtraParams\", thrift.MAP, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.ExtraParams)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ExtraParams {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ChatV3Request) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.I64, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ChatV3Request) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShortcutCommand() {\n\t\tif err = oprot.WriteFieldBegin(\"ShortcutCommand\", thrift.STRUCT, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ShortcutCommand.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *ChatV3Request) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"Parameters\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Parameters); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\n\nfunc (p *ChatV3Request) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatV3Request(%+v)\", *p)\n\n}\n\ntype ChatV3MessageDetail struct {\n\tID               string            `thrift:\"ID,1,required\" form:\"id,required\" json:\"id,required\"`\n\tConversationID   string            `thrift:\"ConversationID,2,required\" form:\"conversation_id,required\" json:\"conversation_id,required\"`\n\tBotID            string            `thrift:\"BotID,3,required\" form:\"bot_id,required\" json:\"bot_id,required\"`\n\tRole             string            `thrift:\"Role,4,required\" form:\"role,required\" json:\"role,required\"`\n\tType             string            `thrift:\"Type,5,required\" form:\"type,required\" json:\"type,required\"`\n\tContent          string            `thrift:\"Content,6,required\" form:\"content,required\" json:\"content,required\"`\n\tContentType      string            `thrift:\"ContentType,7,required\" form:\"content_type,required\" json:\"content_type,required\"`\n\tMetaData         map[string]string `thrift:\"MetaData,8,optional\" form:\"meta_data\" json:\"meta_data,omitempty\"`\n\tChatID           string            `thrift:\"ChatID,9,required\" form:\"chat_id,required\" json:\"chat_id,required\"`\n\tSectionID        *string           `thrift:\"SectionID,10,optional\" form:\"section_id\" json:\"section_id,omitempty\"`\n\tCreatedAt        *int64            `thrift:\"CreatedAt,11,optional\" form:\"created_at\" json:\"created_at,omitempty\"`\n\tUpdatedAt        *int64            `thrift:\"UpdatedAt,12,optional\" form:\"updated_at\" json:\"updated_at,omitempty\"`\n\tReasoningContent *string           `thrift:\"ReasoningContent,13,optional\" form:\"reasoning_content\" json:\"reasoning_content,omitempty\"`\n}\n\nfunc NewChatV3MessageDetail() *ChatV3MessageDetail {\n\treturn &ChatV3MessageDetail{}\n}\n\nfunc (p *ChatV3MessageDetail) InitDefault() {\n}\n\nfunc (p *ChatV3MessageDetail) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *ChatV3MessageDetail) GetConversationID() (v string) {\n\treturn p.ConversationID\n}\n\nfunc (p *ChatV3MessageDetail) GetBotID() (v string) {\n\treturn p.BotID\n}\n\nfunc (p *ChatV3MessageDetail) GetRole() (v string) {\n\treturn p.Role\n}\n\nfunc (p *ChatV3MessageDetail) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *ChatV3MessageDetail) GetContent() (v string) {\n\treturn p.Content\n}\n\nfunc (p *ChatV3MessageDetail) GetContentType() (v string) {\n\treturn p.ContentType\n}\n\nvar ChatV3MessageDetail_MetaData_DEFAULT map[string]string\n\nfunc (p *ChatV3MessageDetail) GetMetaData() (v map[string]string) {\n\tif !p.IsSetMetaData() {\n\t\treturn ChatV3MessageDetail_MetaData_DEFAULT\n\t}\n\treturn p.MetaData\n}\n\nfunc (p *ChatV3MessageDetail) GetChatID() (v string) {\n\treturn p.ChatID\n}\n\nvar ChatV3MessageDetail_SectionID_DEFAULT string\n\nfunc (p *ChatV3MessageDetail) GetSectionID() (v string) {\n\tif !p.IsSetSectionID() {\n\t\treturn ChatV3MessageDetail_SectionID_DEFAULT\n\t}\n\treturn *p.SectionID\n}\n\nvar ChatV3MessageDetail_CreatedAt_DEFAULT int64\n\nfunc (p *ChatV3MessageDetail) GetCreatedAt() (v int64) {\n\tif !p.IsSetCreatedAt() {\n\t\treturn ChatV3MessageDetail_CreatedAt_DEFAULT\n\t}\n\treturn *p.CreatedAt\n}\n\nvar ChatV3MessageDetail_UpdatedAt_DEFAULT int64\n\nfunc (p *ChatV3MessageDetail) GetUpdatedAt() (v int64) {\n\tif !p.IsSetUpdatedAt() {\n\t\treturn ChatV3MessageDetail_UpdatedAt_DEFAULT\n\t}\n\treturn *p.UpdatedAt\n}\n\nvar ChatV3MessageDetail_ReasoningContent_DEFAULT string\n\nfunc (p *ChatV3MessageDetail) GetReasoningContent() (v string) {\n\tif !p.IsSetReasoningContent() {\n\t\treturn ChatV3MessageDetail_ReasoningContent_DEFAULT\n\t}\n\treturn *p.ReasoningContent\n}\n\nvar fieldIDToName_ChatV3MessageDetail = map[int16]string{\n\t1:  \"ID\",\n\t2:  \"ConversationID\",\n\t3:  \"BotID\",\n\t4:  \"Role\",\n\t5:  \"Type\",\n\t6:  \"Content\",\n\t7:  \"ContentType\",\n\t8:  \"MetaData\",\n\t9:  \"ChatID\",\n\t10: \"SectionID\",\n\t11: \"CreatedAt\",\n\t12: \"UpdatedAt\",\n\t13: \"ReasoningContent\",\n}\n\nfunc (p *ChatV3MessageDetail) IsSetMetaData() bool {\n\treturn p.MetaData != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetSectionID() bool {\n\treturn p.SectionID != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetCreatedAt() bool {\n\treturn p.CreatedAt != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetUpdatedAt() bool {\n\treturn p.UpdatedAt != nil\n}\n\nfunc (p *ChatV3MessageDetail) IsSetReasoningContent() bool {\n\treturn p.ReasoningContent != nil\n}\n\nfunc (p *ChatV3MessageDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\tvar issetConversationID bool = false\n\tvar issetBotID bool = false\n\tvar issetRole bool = false\n\tvar issetType bool = false\n\tvar issetContent bool = false\n\tvar issetContentType bool = false\n\tvar issetChatID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetRole = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetContent = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetContentType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetChatID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetRole {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetType {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetContent {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetContentType {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetChatID {\n\t\tfieldId = 9\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatV3MessageDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ChatV3MessageDetail[fieldId]))\n}\n\nfunc (p *ChatV3MessageDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Role = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ContentType = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField8(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ChatID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SectionID = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UpdatedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3MessageDetail) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ReasoningContent = _field\n\treturn nil\n}\n\nfunc (p *ChatV3MessageDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatV3MessageDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatV3MessageDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotID\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Role\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Role); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Content\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ContentType\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ContentType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMetaData() {\n\t\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.MetaData {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ChatID\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ChatID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSectionID() {\n\t\tif err = oprot.WriteFieldBegin(\"SectionID\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SectionID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"CreatedAt\", thrift.I64, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreatedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUpdatedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"UpdatedAt\", thrift.I64, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.UpdatedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ChatV3MessageDetail) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReasoningContent() {\n\t\tif err = oprot.WriteFieldBegin(\"ReasoningContent\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ReasoningContent); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *ChatV3MessageDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatV3MessageDetail(%+v)\", *p)\n\n}\n\ntype EnterMessage struct {\n\t// user / assistant\n\tRole string `thrift:\"Role,1\" form:\"role\" json:\"role\"`\n\t// If it is not text, you need to parse JSON.\n\tContent  string            `thrift:\"Content,2\" form:\"content\" json:\"content\"`\n\tMetaData map[string]string `thrift:\"MetaData,3\" form:\"meta_data\" json:\"meta_data\"`\n\t// text, card, object_string\n\tContentType string  `thrift:\"ContentType,4\" form:\"content_type\" json:\"content_type\"`\n\tType        *string `thrift:\"Type,5,optional\" form:\"type\" json:\"type,omitempty\"`\n\tName        *string `thrift:\"Name,6,optional\" form:\"name\" json:\"name,omitempty\"`\n}\n\nfunc NewEnterMessage() *EnterMessage {\n\treturn &EnterMessage{}\n}\n\nfunc (p *EnterMessage) InitDefault() {\n}\n\nfunc (p *EnterMessage) GetRole() (v string) {\n\treturn p.Role\n}\n\nfunc (p *EnterMessage) GetContent() (v string) {\n\treturn p.Content\n}\n\nfunc (p *EnterMessage) GetMetaData() (v map[string]string) {\n\treturn p.MetaData\n}\n\nfunc (p *EnterMessage) GetContentType() (v string) {\n\treturn p.ContentType\n}\n\nvar EnterMessage_Type_DEFAULT string\n\nfunc (p *EnterMessage) GetType() (v string) {\n\tif !p.IsSetType() {\n\t\treturn EnterMessage_Type_DEFAULT\n\t}\n\treturn *p.Type\n}\n\nvar EnterMessage_Name_DEFAULT string\n\nfunc (p *EnterMessage) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn EnterMessage_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar fieldIDToName_EnterMessage = map[int16]string{\n\t1: \"Role\",\n\t2: \"Content\",\n\t3: \"MetaData\",\n\t4: \"ContentType\",\n\t5: \"Type\",\n\t6: \"Name\",\n}\n\nfunc (p *EnterMessage) IsSetType() bool {\n\treturn p.Type != nil\n}\n\nfunc (p *EnterMessage) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *EnterMessage) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_EnterMessage[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *EnterMessage) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Role = _field\n\treturn nil\n}\nfunc (p *EnterMessage) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\nfunc (p *EnterMessage) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *EnterMessage) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ContentType = _field\n\treturn nil\n}\nfunc (p *EnterMessage) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *EnterMessage) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\n\nfunc (p *EnterMessage) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"EnterMessage\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *EnterMessage) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Role\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Role); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *EnterMessage) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Content\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *EnterMessage) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.MetaData {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *EnterMessage) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ContentType\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ContentType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *EnterMessage) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetType() {\n\t\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Type); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *EnterMessage) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *EnterMessage) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"EnterMessage(%+v)\", *p)\n\n}\n\ntype LastError struct {\n\tCode int32  `thrift:\"Code,1,required\" form:\"code,required\" json:\"code,required\"`\n\tMsg  string `thrift:\"Msg,2,required\" form:\"msg,required\" json:\"msg,required\"`\n}\n\nfunc NewLastError() *LastError {\n\treturn &LastError{}\n}\n\nfunc (p *LastError) InitDefault() {\n}\n\nfunc (p *LastError) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *LastError) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_LastError = map[int16]string{\n\t1: \"Code\",\n\t2: \"Msg\",\n}\n\nfunc (p *LastError) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_LastError[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_LastError[fieldId]))\n}\n\nfunc (p *LastError) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *LastError) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *LastError) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"LastError\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *LastError) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *LastError) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *LastError) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"LastError(%+v)\", *p)\n\n}\n\ntype Usage struct {\n\tTokenCount   *int32 `thrift:\"TokenCount,1,optional\" form:\"token_count\" json:\"token_count,omitempty\"`\n\tOutputTokens *int32 `thrift:\"OutputTokens,2,optional\" form:\"output_count\" json:\"output_count,omitempty\"`\n\tInputTokens  *int32 `thrift:\"InputTokens,3,optional\" form:\"input_count\" json:\"input_count,omitempty\"`\n}\n\nfunc NewUsage() *Usage {\n\treturn &Usage{}\n}\n\nfunc (p *Usage) InitDefault() {\n}\n\nvar Usage_TokenCount_DEFAULT int32\n\nfunc (p *Usage) GetTokenCount() (v int32) {\n\tif !p.IsSetTokenCount() {\n\t\treturn Usage_TokenCount_DEFAULT\n\t}\n\treturn *p.TokenCount\n}\n\nvar Usage_OutputTokens_DEFAULT int32\n\nfunc (p *Usage) GetOutputTokens() (v int32) {\n\tif !p.IsSetOutputTokens() {\n\t\treturn Usage_OutputTokens_DEFAULT\n\t}\n\treturn *p.OutputTokens\n}\n\nvar Usage_InputTokens_DEFAULT int32\n\nfunc (p *Usage) GetInputTokens() (v int32) {\n\tif !p.IsSetInputTokens() {\n\t\treturn Usage_InputTokens_DEFAULT\n\t}\n\treturn *p.InputTokens\n}\n\nvar fieldIDToName_Usage = map[int16]string{\n\t1: \"TokenCount\",\n\t2: \"OutputTokens\",\n\t3: \"InputTokens\",\n}\n\nfunc (p *Usage) IsSetTokenCount() bool {\n\treturn p.TokenCount != nil\n}\n\nfunc (p *Usage) IsSetOutputTokens() bool {\n\treturn p.OutputTokens != nil\n}\n\nfunc (p *Usage) IsSetInputTokens() bool {\n\treturn p.InputTokens != nil\n}\n\nfunc (p *Usage) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Usage[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Usage) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TokenCount = _field\n\treturn nil\n}\nfunc (p *Usage) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OutputTokens = _field\n\treturn nil\n}\nfunc (p *Usage) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.InputTokens = _field\n\treturn nil\n}\n\nfunc (p *Usage) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Usage\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Usage) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTokenCount() {\n\t\tif err = oprot.WriteFieldBegin(\"TokenCount\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.TokenCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Usage) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOutputTokens() {\n\t\tif err = oprot.WriteFieldBegin(\"OutputTokens\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.OutputTokens); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Usage) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInputTokens() {\n\t\tif err = oprot.WriteFieldBegin(\"InputTokens\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.InputTokens); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *Usage) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Usage(%+v)\", *p)\n\n}\n\ntype RequiredAction struct {\n\tType              string             `thrift:\"Type,1\" form:\"type\" json:\"type\"`\n\tSubmitToolOutputs *SubmitToolOutputs `thrift:\"SubmitToolOutputs,2\" form:\"submit_tool_outputs\" json:\"submit_tool_outputs\"`\n}\n\nfunc NewRequiredAction() *RequiredAction {\n\treturn &RequiredAction{}\n}\n\nfunc (p *RequiredAction) InitDefault() {\n}\n\nfunc (p *RequiredAction) GetType() (v string) {\n\treturn p.Type\n}\n\nvar RequiredAction_SubmitToolOutputs_DEFAULT *SubmitToolOutputs\n\nfunc (p *RequiredAction) GetSubmitToolOutputs() (v *SubmitToolOutputs) {\n\tif !p.IsSetSubmitToolOutputs() {\n\t\treturn RequiredAction_SubmitToolOutputs_DEFAULT\n\t}\n\treturn p.SubmitToolOutputs\n}\n\nvar fieldIDToName_RequiredAction = map[int16]string{\n\t1: \"Type\",\n\t2: \"SubmitToolOutputs\",\n}\n\nfunc (p *RequiredAction) IsSetSubmitToolOutputs() bool {\n\treturn p.SubmitToolOutputs != nil\n}\n\nfunc (p *RequiredAction) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RequiredAction[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *RequiredAction) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *RequiredAction) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewSubmitToolOutputs()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SubmitToolOutputs = _field\n\treturn nil\n}\n\nfunc (p *RequiredAction) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RequiredAction\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RequiredAction) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RequiredAction) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SubmitToolOutputs\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.SubmitToolOutputs.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *RequiredAction) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RequiredAction(%+v)\", *p)\n\n}\n\ntype SubmitToolOutputs struct {\n\tToolCalls []*InterruptPlugin `thrift:\"ToolCalls,1\" form:\"tool_calls\" json:\"tool_calls\"`\n}\n\nfunc NewSubmitToolOutputs() *SubmitToolOutputs {\n\treturn &SubmitToolOutputs{}\n}\n\nfunc (p *SubmitToolOutputs) InitDefault() {\n}\n\nfunc (p *SubmitToolOutputs) GetToolCalls() (v []*InterruptPlugin) {\n\treturn p.ToolCalls\n}\n\nvar fieldIDToName_SubmitToolOutputs = map[int16]string{\n\t1: \"ToolCalls\",\n}\n\nfunc (p *SubmitToolOutputs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SubmitToolOutputs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SubmitToolOutputs) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*InterruptPlugin, 0, size)\n\tvalues := make([]InterruptPlugin, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ToolCalls = _field\n\treturn nil\n}\n\nfunc (p *SubmitToolOutputs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitToolOutputs\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SubmitToolOutputs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ToolCalls\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ToolCalls)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ToolCalls {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *SubmitToolOutputs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SubmitToolOutputs(%+v)\", *p)\n\n}\n\ntype InterruptPlugin struct {\n\tID          string                `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tType        string                `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n\tFunction    *InterruptFunction    `thrift:\"function,3\" form:\"function\" json:\"function\" query:\"function\"`\n\tRequireInfo *InterruptRequireInfo `thrift:\"require_info,4\" form:\"require_info\" json:\"require_info\" query:\"require_info\"`\n}\n\nfunc NewInterruptPlugin() *InterruptPlugin {\n\treturn &InterruptPlugin{}\n}\n\nfunc (p *InterruptPlugin) InitDefault() {\n}\n\nfunc (p *InterruptPlugin) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *InterruptPlugin) GetType() (v string) {\n\treturn p.Type\n}\n\nvar InterruptPlugin_Function_DEFAULT *InterruptFunction\n\nfunc (p *InterruptPlugin) GetFunction() (v *InterruptFunction) {\n\tif !p.IsSetFunction() {\n\t\treturn InterruptPlugin_Function_DEFAULT\n\t}\n\treturn p.Function\n}\n\nvar InterruptPlugin_RequireInfo_DEFAULT *InterruptRequireInfo\n\nfunc (p *InterruptPlugin) GetRequireInfo() (v *InterruptRequireInfo) {\n\tif !p.IsSetRequireInfo() {\n\t\treturn InterruptPlugin_RequireInfo_DEFAULT\n\t}\n\treturn p.RequireInfo\n}\n\nvar fieldIDToName_InterruptPlugin = map[int16]string{\n\t1: \"id\",\n\t2: \"type\",\n\t3: \"function\",\n\t4: \"require_info\",\n}\n\nfunc (p *InterruptPlugin) IsSetFunction() bool {\n\treturn p.Function != nil\n}\n\nfunc (p *InterruptPlugin) IsSetRequireInfo() bool {\n\treturn p.RequireInfo != nil\n}\n\nfunc (p *InterruptPlugin) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_InterruptPlugin[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *InterruptPlugin) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *InterruptPlugin) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *InterruptPlugin) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewInterruptFunction()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Function = _field\n\treturn nil\n}\nfunc (p *InterruptPlugin) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewInterruptRequireInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RequireInfo = _field\n\treturn nil\n}\n\nfunc (p *InterruptPlugin) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"InterruptPlugin\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *InterruptPlugin) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *InterruptPlugin) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *InterruptPlugin) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"function\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Function.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *InterruptPlugin) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"require_info\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.RequireInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *InterruptPlugin) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"InterruptPlugin(%+v)\", *p)\n\n}\n\ntype InterruptFunction struct {\n\tName      string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tArguments string `thrift:\"arguments,2\" form:\"arguments\" json:\"arguments\" query:\"arguments\"`\n}\n\nfunc NewInterruptFunction() *InterruptFunction {\n\treturn &InterruptFunction{}\n}\n\nfunc (p *InterruptFunction) InitDefault() {\n}\n\nfunc (p *InterruptFunction) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *InterruptFunction) GetArguments() (v string) {\n\treturn p.Arguments\n}\n\nvar fieldIDToName_InterruptFunction = map[int16]string{\n\t1: \"name\",\n\t2: \"arguments\",\n}\n\nfunc (p *InterruptFunction) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_InterruptFunction[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *InterruptFunction) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *InterruptFunction) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Arguments = _field\n\treturn nil\n}\n\nfunc (p *InterruptFunction) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"InterruptFunction\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *InterruptFunction) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *InterruptFunction) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"arguments\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Arguments); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *InterruptFunction) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"InterruptFunction(%+v)\", *p)\n\n}\n\ntype InterruptRequireInfo struct {\n\tInfos []string `thrift:\"infos,1\" form:\"infos\" json:\"infos\" query:\"infos\"`\n}\n\nfunc NewInterruptRequireInfo() *InterruptRequireInfo {\n\treturn &InterruptRequireInfo{}\n}\n\nfunc (p *InterruptRequireInfo) InitDefault() {\n}\n\nfunc (p *InterruptRequireInfo) GetInfos() (v []string) {\n\treturn p.Infos\n}\n\nvar fieldIDToName_InterruptRequireInfo = map[int16]string{\n\t1: \"infos\",\n}\n\nfunc (p *InterruptRequireInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_InterruptRequireInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *InterruptRequireInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Infos = _field\n\treturn nil\n}\n\nfunc (p *InterruptRequireInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"InterruptRequireInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *InterruptRequireInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"infos\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Infos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Infos {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *InterruptRequireInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"InterruptRequireInfo(%+v)\", *p)\n\n}\n\ntype ChatV3ChatDetail struct {\n\tID             int64             `thrift:\"ID,1,required\" form:\"id,required\" json:\"id,string,required\"`\n\tConversationID int64             `thrift:\"ConversationID,2,required\" form:\"conversation_id,required\" json:\"conversation_id,string,required\"`\n\tBotID          int64             `thrift:\"BotID,3,required\" form:\"bot_id,required\" json:\"bot_id,string,required\"`\n\tCreatedAt      *int32            `thrift:\"CreatedAt,4,optional\" form:\"created_at\" json:\"created_at,omitempty\"`\n\tCompletedAt    *int32            `thrift:\"CompletedAt,5,optional\" form:\"completed_at\" json:\"completed_at,omitempty\"`\n\tFailedAt       *int32            `thrift:\"FailedAt,6,optional\" form:\"failed_at\" json:\"failed_at,omitempty\"`\n\tMetaData       map[string]string `thrift:\"MetaData,7,optional\" form:\"meta_data\" json:\"meta_data,omitempty\"`\n\tLastError      *LastError        `thrift:\"LastError,8,optional\" form:\"last_error\" json:\"last_error,omitempty\"`\n\tStatus         string            `thrift:\"Status,9,required\" form:\"status,required\" json:\"status,required\"`\n\tUsage          *Usage            `thrift:\"Usage,10,optional\" form:\"usage\" json:\"usage,omitempty\"`\n\tRequiredAction *RequiredAction   `thrift:\"RequiredAction,11,optional\" form:\"required_action\" json:\"required_action,omitempty\"`\n\tSectionID      *int64            `thrift:\"SectionID,12,optional\" form:\"section_id\" json:\"section_id,string,omitempty\"`\n}\n\nfunc NewChatV3ChatDetail() *ChatV3ChatDetail {\n\treturn &ChatV3ChatDetail{}\n}\n\nfunc (p *ChatV3ChatDetail) InitDefault() {\n}\n\nfunc (p *ChatV3ChatDetail) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *ChatV3ChatDetail) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nfunc (p *ChatV3ChatDetail) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar ChatV3ChatDetail_CreatedAt_DEFAULT int32\n\nfunc (p *ChatV3ChatDetail) GetCreatedAt() (v int32) {\n\tif !p.IsSetCreatedAt() {\n\t\treturn ChatV3ChatDetail_CreatedAt_DEFAULT\n\t}\n\treturn *p.CreatedAt\n}\n\nvar ChatV3ChatDetail_CompletedAt_DEFAULT int32\n\nfunc (p *ChatV3ChatDetail) GetCompletedAt() (v int32) {\n\tif !p.IsSetCompletedAt() {\n\t\treturn ChatV3ChatDetail_CompletedAt_DEFAULT\n\t}\n\treturn *p.CompletedAt\n}\n\nvar ChatV3ChatDetail_FailedAt_DEFAULT int32\n\nfunc (p *ChatV3ChatDetail) GetFailedAt() (v int32) {\n\tif !p.IsSetFailedAt() {\n\t\treturn ChatV3ChatDetail_FailedAt_DEFAULT\n\t}\n\treturn *p.FailedAt\n}\n\nvar ChatV3ChatDetail_MetaData_DEFAULT map[string]string\n\nfunc (p *ChatV3ChatDetail) GetMetaData() (v map[string]string) {\n\tif !p.IsSetMetaData() {\n\t\treturn ChatV3ChatDetail_MetaData_DEFAULT\n\t}\n\treturn p.MetaData\n}\n\nvar ChatV3ChatDetail_LastError_DEFAULT *LastError\n\nfunc (p *ChatV3ChatDetail) GetLastError() (v *LastError) {\n\tif !p.IsSetLastError() {\n\t\treturn ChatV3ChatDetail_LastError_DEFAULT\n\t}\n\treturn p.LastError\n}\n\nfunc (p *ChatV3ChatDetail) GetStatus() (v string) {\n\treturn p.Status\n}\n\nvar ChatV3ChatDetail_Usage_DEFAULT *Usage\n\nfunc (p *ChatV3ChatDetail) GetUsage() (v *Usage) {\n\tif !p.IsSetUsage() {\n\t\treturn ChatV3ChatDetail_Usage_DEFAULT\n\t}\n\treturn p.Usage\n}\n\nvar ChatV3ChatDetail_RequiredAction_DEFAULT *RequiredAction\n\nfunc (p *ChatV3ChatDetail) GetRequiredAction() (v *RequiredAction) {\n\tif !p.IsSetRequiredAction() {\n\t\treturn ChatV3ChatDetail_RequiredAction_DEFAULT\n\t}\n\treturn p.RequiredAction\n}\n\nvar ChatV3ChatDetail_SectionID_DEFAULT int64\n\nfunc (p *ChatV3ChatDetail) GetSectionID() (v int64) {\n\tif !p.IsSetSectionID() {\n\t\treturn ChatV3ChatDetail_SectionID_DEFAULT\n\t}\n\treturn *p.SectionID\n}\n\nvar fieldIDToName_ChatV3ChatDetail = map[int16]string{\n\t1:  \"ID\",\n\t2:  \"ConversationID\",\n\t3:  \"BotID\",\n\t4:  \"CreatedAt\",\n\t5:  \"CompletedAt\",\n\t6:  \"FailedAt\",\n\t7:  \"MetaData\",\n\t8:  \"LastError\",\n\t9:  \"Status\",\n\t10: \"Usage\",\n\t11: \"RequiredAction\",\n\t12: \"SectionID\",\n}\n\nfunc (p *ChatV3ChatDetail) IsSetCreatedAt() bool {\n\treturn p.CreatedAt != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetCompletedAt() bool {\n\treturn p.CompletedAt != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetFailedAt() bool {\n\treturn p.FailedAt != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetMetaData() bool {\n\treturn p.MetaData != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetLastError() bool {\n\treturn p.LastError != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetUsage() bool {\n\treturn p.Usage != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetRequiredAction() bool {\n\treturn p.RequiredAction != nil\n}\n\nfunc (p *ChatV3ChatDetail) IsSetSectionID() bool {\n\treturn p.SectionID != nil\n}\n\nfunc (p *ChatV3ChatDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\tvar issetConversationID bool = false\n\tvar issetBotID bool = false\n\tvar issetStatus bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetStatus = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetStatus {\n\t\tfieldId = 9\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatV3ChatDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ChatV3ChatDetail[fieldId]))\n}\n\nfunc (p *ChatV3ChatDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CompletedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FailedAt = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField7(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewLastError()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.LastError = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewUsage()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Usage = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField11(iprot thrift.TProtocol) error {\n\t_field := NewRequiredAction()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RequiredAction = _field\n\treturn nil\n}\nfunc (p *ChatV3ChatDetail) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SectionID = _field\n\treturn nil\n}\n\nfunc (p *ChatV3ChatDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatV3ChatDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatV3ChatDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotID\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"CreatedAt\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.CreatedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCompletedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"CompletedAt\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.CompletedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFailedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"FailedAt\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.FailedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMetaData() {\n\t\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.MetaData {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLastError() {\n\t\tif err = oprot.WriteFieldBegin(\"LastError\", thrift.STRUCT, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.LastError.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Status\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Status); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUsage() {\n\t\tif err = oprot.WriteFieldBegin(\"Usage\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Usage.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRequiredAction() {\n\t\tif err = oprot.WriteFieldBegin(\"RequiredAction\", thrift.STRUCT, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RequiredAction.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ChatV3ChatDetail) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSectionID() {\n\t\tif err = oprot.WriteFieldBegin(\"SectionID\", thrift.I64, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SectionID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\n\nfunc (p *ChatV3ChatDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatV3ChatDetail(%+v)\", *p)\n\n}\n\n// no stream\ntype ChatV3Response struct {\n\tChatDetail *ChatV3ChatDetail `thrift:\"ChatDetail,1,optional\" form:\"data\" json:\"data,omitempty\"`\n\tCode       int32             `thrift:\"Code,2,required\" form:\"code,required\" json:\"code,required\"`\n\tMsg        string            `thrift:\"Msg,3,required\" form:\"msg,required\" json:\"msg,required\"`\n}\n\nfunc NewChatV3Response() *ChatV3Response {\n\treturn &ChatV3Response{}\n}\n\nfunc (p *ChatV3Response) InitDefault() {\n}\n\nvar ChatV3Response_ChatDetail_DEFAULT *ChatV3ChatDetail\n\nfunc (p *ChatV3Response) GetChatDetail() (v *ChatV3ChatDetail) {\n\tif !p.IsSetChatDetail() {\n\t\treturn ChatV3Response_ChatDetail_DEFAULT\n\t}\n\treturn p.ChatDetail\n}\n\nfunc (p *ChatV3Response) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *ChatV3Response) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_ChatV3Response = map[int16]string{\n\t1: \"ChatDetail\",\n\t2: \"Code\",\n\t3: \"Msg\",\n}\n\nfunc (p *ChatV3Response) IsSetChatDetail() bool {\n\treturn p.ChatDetail != nil\n}\n\nfunc (p *ChatV3Response) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatV3Response[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ChatV3Response[fieldId]))\n}\n\nfunc (p *ChatV3Response) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewChatV3ChatDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ChatDetail = _field\n\treturn nil\n}\nfunc (p *ChatV3Response) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ChatV3Response) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *ChatV3Response) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatV3Response\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatV3Response) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChatDetail() {\n\t\tif err = oprot.WriteFieldBegin(\"ChatDetail\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ChatDetail.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatV3Response) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChatV3Response) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Msg\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ChatV3Response) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatV3Response(%+v)\", *p)\n\n}\n\ntype CancelChatApiRequest struct {\n\tChatID         int64      `thrift:\"ChatID,1,required\" form:\"chat_id,required\" json:\"chat_id,string,required\"`\n\tConversationID int64      `thrift:\"ConversationID,2,required\" form:\"conversation_id,required\" json:\"conversation_id,string,required\"`\n\tBase           *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewCancelChatApiRequest() *CancelChatApiRequest {\n\treturn &CancelChatApiRequest{}\n}\n\nfunc (p *CancelChatApiRequest) InitDefault() {\n}\n\nfunc (p *CancelChatApiRequest) GetChatID() (v int64) {\n\treturn p.ChatID\n}\n\nfunc (p *CancelChatApiRequest) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nvar CancelChatApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *CancelChatApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CancelChatApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CancelChatApiRequest = map[int16]string{\n\t1:   \"ChatID\",\n\t2:   \"ConversationID\",\n\t255: \"Base\",\n}\n\nfunc (p *CancelChatApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CancelChatApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetChatID bool = false\n\tvar issetConversationID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetChatID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetChatID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CancelChatApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CancelChatApiRequest[fieldId]))\n}\n\nfunc (p *CancelChatApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ChatID = _field\n\treturn nil\n}\nfunc (p *CancelChatApiRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *CancelChatApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CancelChatApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CancelChatApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CancelChatApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ChatID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ChatID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CancelChatApiRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CancelChatApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CancelChatApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CancelChatApiRequest(%+v)\", *p)\n\n}\n\ntype CancelChatApiResponse struct {\n\tChatV3ChatDetail *ChatV3ChatDetail `thrift:\"ChatV3ChatDetail,1\" form:\"ChatV3ChatDetail\" json:\"ChatV3ChatDetail\" query:\"ChatV3ChatDetail\"`\n\tBaseResp         *base.BaseResp    `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewCancelChatApiResponse() *CancelChatApiResponse {\n\treturn &CancelChatApiResponse{}\n}\n\nfunc (p *CancelChatApiResponse) InitDefault() {\n}\n\nvar CancelChatApiResponse_ChatV3ChatDetail_DEFAULT *ChatV3ChatDetail\n\nfunc (p *CancelChatApiResponse) GetChatV3ChatDetail() (v *ChatV3ChatDetail) {\n\tif !p.IsSetChatV3ChatDetail() {\n\t\treturn CancelChatApiResponse_ChatV3ChatDetail_DEFAULT\n\t}\n\treturn p.ChatV3ChatDetail\n}\n\nvar CancelChatApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CancelChatApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CancelChatApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CancelChatApiResponse = map[int16]string{\n\t1:   \"ChatV3ChatDetail\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CancelChatApiResponse) IsSetChatV3ChatDetail() bool {\n\treturn p.ChatV3ChatDetail != nil\n}\n\nfunc (p *CancelChatApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CancelChatApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CancelChatApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CancelChatApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewChatV3ChatDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ChatV3ChatDetail = _field\n\treturn nil\n}\nfunc (p *CancelChatApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CancelChatApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CancelChatApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CancelChatApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ChatV3ChatDetail\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ChatV3ChatDetail.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CancelChatApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CancelChatApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CancelChatApiResponse(%+v)\", *p)\n\n}\n\ntype RetrieveChatOpenRequest struct {\n\tConversationID int64      `thrift:\"ConversationID,1,required\" json:\"ConversationID,string,required\" query:\"conversation_id,required\"`\n\tChatID         int64      `thrift:\"ChatID,2,required\" json:\"ChatID,string,required\" query:\"chat_id,required\"`\n\tBase           *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewRetrieveChatOpenRequest() *RetrieveChatOpenRequest {\n\treturn &RetrieveChatOpenRequest{}\n}\n\nfunc (p *RetrieveChatOpenRequest) InitDefault() {\n}\n\nfunc (p *RetrieveChatOpenRequest) GetConversationID() (v int64) {\n\treturn p.ConversationID\n}\n\nfunc (p *RetrieveChatOpenRequest) GetChatID() (v int64) {\n\treturn p.ChatID\n}\n\nvar RetrieveChatOpenRequest_Base_DEFAULT *base.Base\n\nfunc (p *RetrieveChatOpenRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn RetrieveChatOpenRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_RetrieveChatOpenRequest = map[int16]string{\n\t1:   \"ConversationID\",\n\t2:   \"ChatID\",\n\t255: \"Base\",\n}\n\nfunc (p *RetrieveChatOpenRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *RetrieveChatOpenRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetConversationID bool = false\n\tvar issetChatID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetChatID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetConversationID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetChatID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RetrieveChatOpenRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_RetrieveChatOpenRequest[fieldId]))\n}\n\nfunc (p *RetrieveChatOpenRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *RetrieveChatOpenRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ChatID = _field\n\treturn nil\n}\nfunc (p *RetrieveChatOpenRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *RetrieveChatOpenRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RetrieveChatOpenRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RetrieveChatOpenRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RetrieveChatOpenRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ChatID\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ChatID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *RetrieveChatOpenRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RetrieveChatOpenRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RetrieveChatOpenRequest(%+v)\", *p)\n\n}\n\ntype RetrieveChatOpenResponse struct {\n\tChatDetail *ChatV3ChatDetail `thrift:\"ChatDetail,1,optional\" form:\"data\" json:\"data,omitempty\"`\n\tCode       int32             `thrift:\"Code,253,required\" form:\"code,required\" json:\"code,required\"`\n\tMsg        string            `thrift:\"Msg,254,required\" form:\"msg,required\" json:\"msg,required\"`\n\tBaseResp   *base.BaseResp    `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewRetrieveChatOpenResponse() *RetrieveChatOpenResponse {\n\treturn &RetrieveChatOpenResponse{}\n}\n\nfunc (p *RetrieveChatOpenResponse) InitDefault() {\n}\n\nvar RetrieveChatOpenResponse_ChatDetail_DEFAULT *ChatV3ChatDetail\n\nfunc (p *RetrieveChatOpenResponse) GetChatDetail() (v *ChatV3ChatDetail) {\n\tif !p.IsSetChatDetail() {\n\t\treturn RetrieveChatOpenResponse_ChatDetail_DEFAULT\n\t}\n\treturn p.ChatDetail\n}\n\nfunc (p *RetrieveChatOpenResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *RetrieveChatOpenResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar RetrieveChatOpenResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *RetrieveChatOpenResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn RetrieveChatOpenResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_RetrieveChatOpenResponse = map[int16]string{\n\t1:   \"ChatDetail\",\n\t253: \"Code\",\n\t254: \"Msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *RetrieveChatOpenResponse) IsSetChatDetail() bool {\n\treturn p.ChatDetail != nil\n}\n\nfunc (p *RetrieveChatOpenResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *RetrieveChatOpenResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RetrieveChatOpenResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_RetrieveChatOpenResponse[fieldId]))\n}\n\nfunc (p *RetrieveChatOpenResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewChatV3ChatDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ChatDetail = _field\n\treturn nil\n}\nfunc (p *RetrieveChatOpenResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *RetrieveChatOpenResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *RetrieveChatOpenResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *RetrieveChatOpenResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RetrieveChatOpenResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RetrieveChatOpenResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChatDetail() {\n\t\tif err = oprot.WriteFieldBegin(\"ChatDetail\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ChatDetail.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RetrieveChatOpenResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *RetrieveChatOpenResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *RetrieveChatOpenResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RetrieveChatOpenResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RetrieveChatOpenResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/coze/api.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage coze\n\nimport (\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_open_api\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/agentrun\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/conversation\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/message\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/database\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/variable\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/file/upload\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/marketplace/product_public_api\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/passport\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/permission/openapiauth\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/resource\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/workflow\"\n)\n\ntype IntelligenceService interface {\n\tintelligence.IntelligenceService\n}\n\ntype IntelligenceServiceClient struct {\n\t*intelligence.IntelligenceServiceClient\n}\n\nfunc NewIntelligenceServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *IntelligenceServiceClient {\n\treturn &IntelligenceServiceClient{\n\t\tIntelligenceServiceClient: intelligence.NewIntelligenceServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewIntelligenceServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *IntelligenceServiceClient {\n\treturn &IntelligenceServiceClient{\n\t\tIntelligenceServiceClient: intelligence.NewIntelligenceServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewIntelligenceServiceClient(c thrift.TClient) *IntelligenceServiceClient {\n\treturn &IntelligenceServiceClient{\n\t\tIntelligenceServiceClient: intelligence.NewIntelligenceServiceClient(c),\n\t}\n}\n\ntype ConversationService interface {\n\tconversation.ConversationService\n}\n\ntype ConversationServiceClient struct {\n\t*conversation.ConversationServiceClient\n}\n\nfunc NewConversationServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *ConversationServiceClient {\n\treturn &ConversationServiceClient{\n\t\tConversationServiceClient: conversation.NewConversationServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewConversationServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *ConversationServiceClient {\n\treturn &ConversationServiceClient{\n\t\tConversationServiceClient: conversation.NewConversationServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewConversationServiceClient(c thrift.TClient) *ConversationServiceClient {\n\treturn &ConversationServiceClient{\n\t\tConversationServiceClient: conversation.NewConversationServiceClient(c),\n\t}\n}\n\ntype MessageService interface {\n\tmessage.MessageService\n}\n\ntype MessageServiceClient struct {\n\t*message.MessageServiceClient\n}\n\nfunc NewMessageServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *MessageServiceClient {\n\treturn &MessageServiceClient{\n\t\tMessageServiceClient: message.NewMessageServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewMessageServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *MessageServiceClient {\n\treturn &MessageServiceClient{\n\t\tMessageServiceClient: message.NewMessageServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewMessageServiceClient(c thrift.TClient) *MessageServiceClient {\n\treturn &MessageServiceClient{\n\t\tMessageServiceClient: message.NewMessageServiceClient(c),\n\t}\n}\n\ntype AgentRunService interface {\n\tagentrun.AgentRunService\n}\n\ntype AgentRunServiceClient struct {\n\t*agentrun.AgentRunServiceClient\n}\n\nfunc NewAgentRunServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *AgentRunServiceClient {\n\treturn &AgentRunServiceClient{\n\t\tAgentRunServiceClient: agentrun.NewAgentRunServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewAgentRunServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *AgentRunServiceClient {\n\treturn &AgentRunServiceClient{\n\t\tAgentRunServiceClient: agentrun.NewAgentRunServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewAgentRunServiceClient(c thrift.TClient) *AgentRunServiceClient {\n\treturn &AgentRunServiceClient{\n\t\tAgentRunServiceClient: agentrun.NewAgentRunServiceClient(c),\n\t}\n}\n\ntype OpenAPIAuthService interface {\n\topenapiauth.OpenAPIAuthService\n}\n\ntype OpenAPIAuthServiceClient struct {\n\t*openapiauth.OpenAPIAuthServiceClient\n}\n\nfunc NewOpenAPIAuthServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *OpenAPIAuthServiceClient {\n\treturn &OpenAPIAuthServiceClient{\n\t\tOpenAPIAuthServiceClient: openapiauth.NewOpenAPIAuthServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewOpenAPIAuthServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *OpenAPIAuthServiceClient {\n\treturn &OpenAPIAuthServiceClient{\n\t\tOpenAPIAuthServiceClient: openapiauth.NewOpenAPIAuthServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewOpenAPIAuthServiceClient(c thrift.TClient) *OpenAPIAuthServiceClient {\n\treturn &OpenAPIAuthServiceClient{\n\t\tOpenAPIAuthServiceClient: openapiauth.NewOpenAPIAuthServiceClient(c),\n\t}\n}\n\ntype MemoryService interface {\n\tvariable.MemoryService\n}\n\ntype MemoryServiceClient struct {\n\t*variable.MemoryServiceClient\n}\n\nfunc NewMemoryServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *MemoryServiceClient {\n\treturn &MemoryServiceClient{\n\t\tMemoryServiceClient: variable.NewMemoryServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewMemoryServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *MemoryServiceClient {\n\treturn &MemoryServiceClient{\n\t\tMemoryServiceClient: variable.NewMemoryServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewMemoryServiceClient(c thrift.TClient) *MemoryServiceClient {\n\treturn &MemoryServiceClient{\n\t\tMemoryServiceClient: variable.NewMemoryServiceClient(c),\n\t}\n}\n\ntype PluginDevelopService interface {\n\tplugin_develop.PluginDevelopService\n}\n\ntype PluginDevelopServiceClient struct {\n\t*plugin_develop.PluginDevelopServiceClient\n}\n\nfunc NewPluginDevelopServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *PluginDevelopServiceClient {\n\treturn &PluginDevelopServiceClient{\n\t\tPluginDevelopServiceClient: plugin_develop.NewPluginDevelopServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewPluginDevelopServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *PluginDevelopServiceClient {\n\treturn &PluginDevelopServiceClient{\n\t\tPluginDevelopServiceClient: plugin_develop.NewPluginDevelopServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewPluginDevelopServiceClient(c thrift.TClient) *PluginDevelopServiceClient {\n\treturn &PluginDevelopServiceClient{\n\t\tPluginDevelopServiceClient: plugin_develop.NewPluginDevelopServiceClient(c),\n\t}\n}\n\ntype PublicProductService interface {\n\tproduct_public_api.PublicProductService\n}\n\ntype PublicProductServiceClient struct {\n\t*product_public_api.PublicProductServiceClient\n}\n\nfunc NewPublicProductServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *PublicProductServiceClient {\n\treturn &PublicProductServiceClient{\n\t\tPublicProductServiceClient: product_public_api.NewPublicProductServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewPublicProductServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *PublicProductServiceClient {\n\treturn &PublicProductServiceClient{\n\t\tPublicProductServiceClient: product_public_api.NewPublicProductServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewPublicProductServiceClient(c thrift.TClient) *PublicProductServiceClient {\n\treturn &PublicProductServiceClient{\n\t\tPublicProductServiceClient: product_public_api.NewPublicProductServiceClient(c),\n\t}\n}\n\ntype DeveloperApiService interface {\n\tdeveloper_api.DeveloperApiService\n}\n\ntype DeveloperApiServiceClient struct {\n\t*developer_api.DeveloperApiServiceClient\n}\n\nfunc NewDeveloperApiServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *DeveloperApiServiceClient {\n\treturn &DeveloperApiServiceClient{\n\t\tDeveloperApiServiceClient: developer_api.NewDeveloperApiServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewDeveloperApiServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *DeveloperApiServiceClient {\n\treturn &DeveloperApiServiceClient{\n\t\tDeveloperApiServiceClient: developer_api.NewDeveloperApiServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewDeveloperApiServiceClient(c thrift.TClient) *DeveloperApiServiceClient {\n\treturn &DeveloperApiServiceClient{\n\t\tDeveloperApiServiceClient: developer_api.NewDeveloperApiServiceClient(c),\n\t}\n}\n\ntype PlaygroundService interface {\n\tplayground.PlaygroundService\n}\n\ntype PlaygroundServiceClient struct {\n\t*playground.PlaygroundServiceClient\n}\n\nfunc NewPlaygroundServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *PlaygroundServiceClient {\n\treturn &PlaygroundServiceClient{\n\t\tPlaygroundServiceClient: playground.NewPlaygroundServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewPlaygroundServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *PlaygroundServiceClient {\n\treturn &PlaygroundServiceClient{\n\t\tPlaygroundServiceClient: playground.NewPlaygroundServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewPlaygroundServiceClient(c thrift.TClient) *PlaygroundServiceClient {\n\treturn &PlaygroundServiceClient{\n\t\tPlaygroundServiceClient: playground.NewPlaygroundServiceClient(c),\n\t}\n}\n\ntype DatabaseService interface {\n\tdatabase.DatabaseService\n}\n\ntype DatabaseServiceClient struct {\n\t*database.DatabaseServiceClient\n}\n\nfunc NewDatabaseServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *DatabaseServiceClient {\n\treturn &DatabaseServiceClient{\n\t\tDatabaseServiceClient: database.NewDatabaseServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewDatabaseServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *DatabaseServiceClient {\n\treturn &DatabaseServiceClient{\n\t\tDatabaseServiceClient: database.NewDatabaseServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewDatabaseServiceClient(c thrift.TClient) *DatabaseServiceClient {\n\treturn &DatabaseServiceClient{\n\t\tDatabaseServiceClient: database.NewDatabaseServiceClient(c),\n\t}\n}\n\ntype ResourceService interface {\n\tresource.ResourceService\n}\n\ntype ResourceServiceClient struct {\n\t*resource.ResourceServiceClient\n}\n\nfunc NewResourceServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *ResourceServiceClient {\n\treturn &ResourceServiceClient{\n\t\tResourceServiceClient: resource.NewResourceServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewResourceServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *ResourceServiceClient {\n\treturn &ResourceServiceClient{\n\t\tResourceServiceClient: resource.NewResourceServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewResourceServiceClient(c thrift.TClient) *ResourceServiceClient {\n\treturn &ResourceServiceClient{\n\t\tResourceServiceClient: resource.NewResourceServiceClient(c),\n\t}\n}\n\ntype PassportService interface {\n\tpassport.PassportService\n}\n\ntype PassportServiceClient struct {\n\t*passport.PassportServiceClient\n}\n\nfunc NewPassportServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *PassportServiceClient {\n\treturn &PassportServiceClient{\n\t\tPassportServiceClient: passport.NewPassportServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewPassportServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *PassportServiceClient {\n\treturn &PassportServiceClient{\n\t\tPassportServiceClient: passport.NewPassportServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewPassportServiceClient(c thrift.TClient) *PassportServiceClient {\n\treturn &PassportServiceClient{\n\t\tPassportServiceClient: passport.NewPassportServiceClient(c),\n\t}\n}\n\ntype WorkflowService interface {\n\tworkflow.WorkflowService\n}\n\ntype WorkflowServiceClient struct {\n\t*workflow.WorkflowServiceClient\n}\n\nfunc NewWorkflowServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *WorkflowServiceClient {\n\treturn &WorkflowServiceClient{\n\t\tWorkflowServiceClient: workflow.NewWorkflowServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewWorkflowServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *WorkflowServiceClient {\n\treturn &WorkflowServiceClient{\n\t\tWorkflowServiceClient: workflow.NewWorkflowServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewWorkflowServiceClient(c thrift.TClient) *WorkflowServiceClient {\n\treturn &WorkflowServiceClient{\n\t\tWorkflowServiceClient: workflow.NewWorkflowServiceClient(c),\n\t}\n}\n\ntype KnowledgeService interface {\n\tknowledge.DatasetService\n}\n\ntype KnowledgeServiceClient struct {\n\t*knowledge.DatasetServiceClient\n}\n\nfunc NewKnowledgeServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *KnowledgeServiceClient {\n\treturn &KnowledgeServiceClient{\n\t\tDatasetServiceClient: knowledge.NewDatasetServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewKnowledgeServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *KnowledgeServiceClient {\n\treturn &KnowledgeServiceClient{\n\t\tDatasetServiceClient: knowledge.NewDatasetServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewKnowledgeServiceClient(c thrift.TClient) *KnowledgeServiceClient {\n\treturn &KnowledgeServiceClient{\n\t\tDatasetServiceClient: knowledge.NewDatasetServiceClient(c),\n\t}\n}\n\ntype BotOpenApiService interface {\n\tbot_open_api.BotOpenApiService\n}\n\ntype BotOpenApiServiceClient struct {\n\t*bot_open_api.BotOpenApiServiceClient\n}\n\nfunc NewBotOpenApiServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *BotOpenApiServiceClient {\n\treturn &BotOpenApiServiceClient{\n\t\tBotOpenApiServiceClient: bot_open_api.NewBotOpenApiServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewBotOpenApiServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *BotOpenApiServiceClient {\n\treturn &BotOpenApiServiceClient{\n\t\tBotOpenApiServiceClient: bot_open_api.NewBotOpenApiServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewBotOpenApiServiceClient(c thrift.TClient) *BotOpenApiServiceClient {\n\treturn &BotOpenApiServiceClient{\n\t\tBotOpenApiServiceClient: bot_open_api.NewBotOpenApiServiceClient(c),\n\t}\n}\n\ntype UploadService interface {\n\tupload.UploadService\n}\n\ntype UploadServiceClient struct {\n\t*upload.UploadServiceClient\n}\n\nfunc NewUploadServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *UploadServiceClient {\n\treturn &UploadServiceClient{\n\t\tUploadServiceClient: upload.NewUploadServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewUploadServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *UploadServiceClient {\n\treturn &UploadServiceClient{\n\t\tUploadServiceClient: upload.NewUploadServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewUploadServiceClient(c thrift.TClient) *UploadServiceClient {\n\treturn &UploadServiceClient{\n\t\tUploadServiceClient: upload.NewUploadServiceClient(c),\n\t}\n}\n\ntype ConfigService interface {\n\tconfig.ConfigService\n}\n\ntype ConfigServiceClient struct {\n\t*config.ConfigServiceClient\n}\n\nfunc NewConfigServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *ConfigServiceClient {\n\treturn &ConfigServiceClient{\n\t\tConfigServiceClient: config.NewConfigServiceClientFactory(t, f),\n\t}\n}\n\nfunc NewConfigServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *ConfigServiceClient {\n\treturn &ConfigServiceClient{\n\t\tConfigServiceClient: config.NewConfigServiceClientProtocol(t, iprot, oprot),\n\t}\n}\n\nfunc NewConfigServiceClient(c thrift.TClient) *ConfigServiceClient {\n\treturn &ConfigServiceClient{\n\t\tConfigServiceClient: config.NewConfigServiceClient(c),\n\t}\n}\n\ntype IntelligenceServiceProcessor struct {\n\t*intelligence.IntelligenceServiceProcessor\n}\n\nfunc NewIntelligenceServiceProcessor(handler IntelligenceService) *IntelligenceServiceProcessor {\n\tself := &IntelligenceServiceProcessor{intelligence.NewIntelligenceServiceProcessor(handler)}\n\treturn self\n}\n\ntype ConversationServiceProcessor struct {\n\t*conversation.ConversationServiceProcessor\n}\n\nfunc NewConversationServiceProcessor(handler ConversationService) *ConversationServiceProcessor {\n\tself := &ConversationServiceProcessor{conversation.NewConversationServiceProcessor(handler)}\n\treturn self\n}\n\ntype MessageServiceProcessor struct {\n\t*message.MessageServiceProcessor\n}\n\nfunc NewMessageServiceProcessor(handler MessageService) *MessageServiceProcessor {\n\tself := &MessageServiceProcessor{message.NewMessageServiceProcessor(handler)}\n\treturn self\n}\n\ntype AgentRunServiceProcessor struct {\n\t*agentrun.AgentRunServiceProcessor\n}\n\nfunc NewAgentRunServiceProcessor(handler AgentRunService) *AgentRunServiceProcessor {\n\tself := &AgentRunServiceProcessor{agentrun.NewAgentRunServiceProcessor(handler)}\n\treturn self\n}\n\ntype OpenAPIAuthServiceProcessor struct {\n\t*openapiauth.OpenAPIAuthServiceProcessor\n}\n\nfunc NewOpenAPIAuthServiceProcessor(handler OpenAPIAuthService) *OpenAPIAuthServiceProcessor {\n\tself := &OpenAPIAuthServiceProcessor{openapiauth.NewOpenAPIAuthServiceProcessor(handler)}\n\treturn self\n}\n\ntype MemoryServiceProcessor struct {\n\t*variable.MemoryServiceProcessor\n}\n\nfunc NewMemoryServiceProcessor(handler MemoryService) *MemoryServiceProcessor {\n\tself := &MemoryServiceProcessor{variable.NewMemoryServiceProcessor(handler)}\n\treturn self\n}\n\ntype PluginDevelopServiceProcessor struct {\n\t*plugin_develop.PluginDevelopServiceProcessor\n}\n\nfunc NewPluginDevelopServiceProcessor(handler PluginDevelopService) *PluginDevelopServiceProcessor {\n\tself := &PluginDevelopServiceProcessor{plugin_develop.NewPluginDevelopServiceProcessor(handler)}\n\treturn self\n}\n\ntype PublicProductServiceProcessor struct {\n\t*product_public_api.PublicProductServiceProcessor\n}\n\nfunc NewPublicProductServiceProcessor(handler PublicProductService) *PublicProductServiceProcessor {\n\tself := &PublicProductServiceProcessor{product_public_api.NewPublicProductServiceProcessor(handler)}\n\treturn self\n}\n\ntype DeveloperApiServiceProcessor struct {\n\t*developer_api.DeveloperApiServiceProcessor\n}\n\nfunc NewDeveloperApiServiceProcessor(handler DeveloperApiService) *DeveloperApiServiceProcessor {\n\tself := &DeveloperApiServiceProcessor{developer_api.NewDeveloperApiServiceProcessor(handler)}\n\treturn self\n}\n\ntype PlaygroundServiceProcessor struct {\n\t*playground.PlaygroundServiceProcessor\n}\n\nfunc NewPlaygroundServiceProcessor(handler PlaygroundService) *PlaygroundServiceProcessor {\n\tself := &PlaygroundServiceProcessor{playground.NewPlaygroundServiceProcessor(handler)}\n\treturn self\n}\n\ntype DatabaseServiceProcessor struct {\n\t*database.DatabaseServiceProcessor\n}\n\nfunc NewDatabaseServiceProcessor(handler DatabaseService) *DatabaseServiceProcessor {\n\tself := &DatabaseServiceProcessor{database.NewDatabaseServiceProcessor(handler)}\n\treturn self\n}\n\ntype ResourceServiceProcessor struct {\n\t*resource.ResourceServiceProcessor\n}\n\nfunc NewResourceServiceProcessor(handler ResourceService) *ResourceServiceProcessor {\n\tself := &ResourceServiceProcessor{resource.NewResourceServiceProcessor(handler)}\n\treturn self\n}\n\ntype PassportServiceProcessor struct {\n\t*passport.PassportServiceProcessor\n}\n\nfunc NewPassportServiceProcessor(handler PassportService) *PassportServiceProcessor {\n\tself := &PassportServiceProcessor{passport.NewPassportServiceProcessor(handler)}\n\treturn self\n}\n\ntype WorkflowServiceProcessor struct {\n\t*workflow.WorkflowServiceProcessor\n}\n\nfunc NewWorkflowServiceProcessor(handler WorkflowService) *WorkflowServiceProcessor {\n\tself := &WorkflowServiceProcessor{workflow.NewWorkflowServiceProcessor(handler)}\n\treturn self\n}\n\ntype KnowledgeServiceProcessor struct {\n\t*knowledge.DatasetServiceProcessor\n}\n\nfunc NewKnowledgeServiceProcessor(handler KnowledgeService) *KnowledgeServiceProcessor {\n\tself := &KnowledgeServiceProcessor{knowledge.NewDatasetServiceProcessor(handler)}\n\treturn self\n}\n\ntype BotOpenApiServiceProcessor struct {\n\t*bot_open_api.BotOpenApiServiceProcessor\n}\n\nfunc NewBotOpenApiServiceProcessor(handler BotOpenApiService) *BotOpenApiServiceProcessor {\n\tself := &BotOpenApiServiceProcessor{bot_open_api.NewBotOpenApiServiceProcessor(handler)}\n\treturn self\n}\n\ntype UploadServiceProcessor struct {\n\t*upload.UploadServiceProcessor\n}\n\nfunc NewUploadServiceProcessor(handler UploadService) *UploadServiceProcessor {\n\tself := &UploadServiceProcessor{upload.NewUploadServiceProcessor(handler)}\n\treturn self\n}\n\ntype ConfigServiceProcessor struct {\n\t*config.ConfigServiceProcessor\n}\n\nfunc NewConfigServiceProcessor(handler ConfigService) *ConfigServiceProcessor {\n\tself := &ConfigServiceProcessor{config.NewConfigServiceProcessor(handler)}\n\treturn self\n}\n"
  },
  {
    "path": "backend/api/model/data/database/database_svc.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage database\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/database/table\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge\"\n)\n\ntype DatabaseService interface {\n\tListDatabase(ctx context.Context, req *table.ListDatabaseRequest) (r *table.ListDatabaseResponse, err error)\n\n\tGetDatabaseByID(ctx context.Context, req *table.SingleDatabaseRequest) (r *table.SingleDatabaseResponse, err error)\n\n\tAddDatabase(ctx context.Context, req *table.AddDatabaseRequest) (r *table.SingleDatabaseResponse, err error)\n\n\tUpdateDatabase(ctx context.Context, req *table.UpdateDatabaseRequest) (r *table.SingleDatabaseResponse, err error)\n\n\tDeleteDatabase(ctx context.Context, req *table.DeleteDatabaseRequest) (r *table.DeleteDatabaseResponse, err error)\n\n\tBindDatabase(ctx context.Context, req *table.BindDatabaseToBotRequest) (r *table.BindDatabaseToBotResponse, err error)\n\n\tUnBindDatabase(ctx context.Context, req *table.BindDatabaseToBotRequest) (r *table.BindDatabaseToBotResponse, err error)\n\n\tListDatabaseRecords(ctx context.Context, req *table.ListDatabaseRecordsRequest) (r *table.ListDatabaseRecordsResponse, err error)\n\n\tUpdateDatabaseRecords(ctx context.Context, req *table.UpdateDatabaseRecordsRequest) (r *table.UpdateDatabaseRecordsResponse, err error)\n\n\tGetOnlineDatabaseId(ctx context.Context, req *table.GetOnlineDatabaseIdRequest) (r *table.GetOnlineDatabaseIdResponse, err error)\n\n\tResetBotTable(ctx context.Context, req *table.ResetBotTableRequest) (r *table.ResetBotTableResponse, err error)\n\n\tGetDatabaseTemplate(ctx context.Context, req *table.GetDatabaseTemplateRequest) (r *table.GetDatabaseTemplateResponse, err error)\n\n\tGetConnectorName(ctx context.Context, req *table.GetSpaceConnectorListRequest) (r *table.GetSpaceConnectorListResponse, err error)\n\n\tGetBotDatabase(ctx context.Context, req *table.GetBotTableRequest) (r *table.GetBotTableResponse, err error)\n\n\tUpdateDatabaseBotSwitch(ctx context.Context, req *table.UpdateDatabaseBotSwitchRequest) (r *table.UpdateDatabaseBotSwitchResponse, err error)\n\n\tGetDatabaseTableSchema(ctx context.Context, req *table.GetTableSchemaRequest) (r *knowledge.GetTableSchemaInfoResponse, err error)\n\n\tValidateDatabaseTableSchema(ctx context.Context, req *table.ValidateTableSchemaRequest) (r *table.ValidateTableSchemaResponse, err error)\n\n\tSubmitDatabaseInsertTask(ctx context.Context, req *table.SubmitDatabaseInsertRequest) (r *table.SubmitDatabaseInsertResponse, err error)\n\n\tDatabaseFileProgressData(ctx context.Context, req *table.GetDatabaseFileProgressRequest) (r *table.GetDatabaseFileProgressResponse, err error)\n}\n\ntype DatabaseServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewDatabaseServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *DatabaseServiceClient {\n\treturn &DatabaseServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewDatabaseServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *DatabaseServiceClient {\n\treturn &DatabaseServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewDatabaseServiceClient(c thrift.TClient) *DatabaseServiceClient {\n\treturn &DatabaseServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *DatabaseServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *DatabaseServiceClient) ListDatabase(ctx context.Context, req *table.ListDatabaseRequest) (r *table.ListDatabaseResponse, err error) {\n\tvar _args DatabaseServiceListDatabaseArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceListDatabaseResult\n\tif err = p.Client_().Call(ctx, \"ListDatabase\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) GetDatabaseByID(ctx context.Context, req *table.SingleDatabaseRequest) (r *table.SingleDatabaseResponse, err error) {\n\tvar _args DatabaseServiceGetDatabaseByIDArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceGetDatabaseByIDResult\n\tif err = p.Client_().Call(ctx, \"GetDatabaseByID\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) AddDatabase(ctx context.Context, req *table.AddDatabaseRequest) (r *table.SingleDatabaseResponse, err error) {\n\tvar _args DatabaseServiceAddDatabaseArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceAddDatabaseResult\n\tif err = p.Client_().Call(ctx, \"AddDatabase\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) UpdateDatabase(ctx context.Context, req *table.UpdateDatabaseRequest) (r *table.SingleDatabaseResponse, err error) {\n\tvar _args DatabaseServiceUpdateDatabaseArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceUpdateDatabaseResult\n\tif err = p.Client_().Call(ctx, \"UpdateDatabase\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) DeleteDatabase(ctx context.Context, req *table.DeleteDatabaseRequest) (r *table.DeleteDatabaseResponse, err error) {\n\tvar _args DatabaseServiceDeleteDatabaseArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceDeleteDatabaseResult\n\tif err = p.Client_().Call(ctx, \"DeleteDatabase\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) BindDatabase(ctx context.Context, req *table.BindDatabaseToBotRequest) (r *table.BindDatabaseToBotResponse, err error) {\n\tvar _args DatabaseServiceBindDatabaseArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceBindDatabaseResult\n\tif err = p.Client_().Call(ctx, \"BindDatabase\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) UnBindDatabase(ctx context.Context, req *table.BindDatabaseToBotRequest) (r *table.BindDatabaseToBotResponse, err error) {\n\tvar _args DatabaseServiceUnBindDatabaseArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceUnBindDatabaseResult\n\tif err = p.Client_().Call(ctx, \"UnBindDatabase\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) ListDatabaseRecords(ctx context.Context, req *table.ListDatabaseRecordsRequest) (r *table.ListDatabaseRecordsResponse, err error) {\n\tvar _args DatabaseServiceListDatabaseRecordsArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceListDatabaseRecordsResult\n\tif err = p.Client_().Call(ctx, \"ListDatabaseRecords\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) UpdateDatabaseRecords(ctx context.Context, req *table.UpdateDatabaseRecordsRequest) (r *table.UpdateDatabaseRecordsResponse, err error) {\n\tvar _args DatabaseServiceUpdateDatabaseRecordsArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceUpdateDatabaseRecordsResult\n\tif err = p.Client_().Call(ctx, \"UpdateDatabaseRecords\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) GetOnlineDatabaseId(ctx context.Context, req *table.GetOnlineDatabaseIdRequest) (r *table.GetOnlineDatabaseIdResponse, err error) {\n\tvar _args DatabaseServiceGetOnlineDatabaseIdArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceGetOnlineDatabaseIdResult\n\tif err = p.Client_().Call(ctx, \"GetOnlineDatabaseId\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) ResetBotTable(ctx context.Context, req *table.ResetBotTableRequest) (r *table.ResetBotTableResponse, err error) {\n\tvar _args DatabaseServiceResetBotTableArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceResetBotTableResult\n\tif err = p.Client_().Call(ctx, \"ResetBotTable\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) GetDatabaseTemplate(ctx context.Context, req *table.GetDatabaseTemplateRequest) (r *table.GetDatabaseTemplateResponse, err error) {\n\tvar _args DatabaseServiceGetDatabaseTemplateArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceGetDatabaseTemplateResult\n\tif err = p.Client_().Call(ctx, \"GetDatabaseTemplate\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) GetConnectorName(ctx context.Context, req *table.GetSpaceConnectorListRequest) (r *table.GetSpaceConnectorListResponse, err error) {\n\tvar _args DatabaseServiceGetConnectorNameArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceGetConnectorNameResult\n\tif err = p.Client_().Call(ctx, \"GetConnectorName\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) GetBotDatabase(ctx context.Context, req *table.GetBotTableRequest) (r *table.GetBotTableResponse, err error) {\n\tvar _args DatabaseServiceGetBotDatabaseArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceGetBotDatabaseResult\n\tif err = p.Client_().Call(ctx, \"GetBotDatabase\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) UpdateDatabaseBotSwitch(ctx context.Context, req *table.UpdateDatabaseBotSwitchRequest) (r *table.UpdateDatabaseBotSwitchResponse, err error) {\n\tvar _args DatabaseServiceUpdateDatabaseBotSwitchArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceUpdateDatabaseBotSwitchResult\n\tif err = p.Client_().Call(ctx, \"UpdateDatabaseBotSwitch\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) GetDatabaseTableSchema(ctx context.Context, req *table.GetTableSchemaRequest) (r *knowledge.GetTableSchemaInfoResponse, err error) {\n\tvar _args DatabaseServiceGetDatabaseTableSchemaArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceGetDatabaseTableSchemaResult\n\tif err = p.Client_().Call(ctx, \"GetDatabaseTableSchema\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) ValidateDatabaseTableSchema(ctx context.Context, req *table.ValidateTableSchemaRequest) (r *table.ValidateTableSchemaResponse, err error) {\n\tvar _args DatabaseServiceValidateDatabaseTableSchemaArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceValidateDatabaseTableSchemaResult\n\tif err = p.Client_().Call(ctx, \"ValidateDatabaseTableSchema\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) SubmitDatabaseInsertTask(ctx context.Context, req *table.SubmitDatabaseInsertRequest) (r *table.SubmitDatabaseInsertResponse, err error) {\n\tvar _args DatabaseServiceSubmitDatabaseInsertTaskArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceSubmitDatabaseInsertTaskResult\n\tif err = p.Client_().Call(ctx, \"SubmitDatabaseInsertTask\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatabaseServiceClient) DatabaseFileProgressData(ctx context.Context, req *table.GetDatabaseFileProgressRequest) (r *table.GetDatabaseFileProgressResponse, err error) {\n\tvar _args DatabaseServiceDatabaseFileProgressDataArgs\n\t_args.Req = req\n\tvar _result DatabaseServiceDatabaseFileProgressDataResult\n\tif err = p.Client_().Call(ctx, \"DatabaseFileProgressData\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype DatabaseServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      DatabaseService\n}\n\nfunc (p *DatabaseServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *DatabaseServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *DatabaseServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewDatabaseServiceProcessor(handler DatabaseService) *DatabaseServiceProcessor {\n\tself := &DatabaseServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"ListDatabase\", &databaseServiceProcessorListDatabase{handler: handler})\n\tself.AddToProcessorMap(\"GetDatabaseByID\", &databaseServiceProcessorGetDatabaseByID{handler: handler})\n\tself.AddToProcessorMap(\"AddDatabase\", &databaseServiceProcessorAddDatabase{handler: handler})\n\tself.AddToProcessorMap(\"UpdateDatabase\", &databaseServiceProcessorUpdateDatabase{handler: handler})\n\tself.AddToProcessorMap(\"DeleteDatabase\", &databaseServiceProcessorDeleteDatabase{handler: handler})\n\tself.AddToProcessorMap(\"BindDatabase\", &databaseServiceProcessorBindDatabase{handler: handler})\n\tself.AddToProcessorMap(\"UnBindDatabase\", &databaseServiceProcessorUnBindDatabase{handler: handler})\n\tself.AddToProcessorMap(\"ListDatabaseRecords\", &databaseServiceProcessorListDatabaseRecords{handler: handler})\n\tself.AddToProcessorMap(\"UpdateDatabaseRecords\", &databaseServiceProcessorUpdateDatabaseRecords{handler: handler})\n\tself.AddToProcessorMap(\"GetOnlineDatabaseId\", &databaseServiceProcessorGetOnlineDatabaseId{handler: handler})\n\tself.AddToProcessorMap(\"ResetBotTable\", &databaseServiceProcessorResetBotTable{handler: handler})\n\tself.AddToProcessorMap(\"GetDatabaseTemplate\", &databaseServiceProcessorGetDatabaseTemplate{handler: handler})\n\tself.AddToProcessorMap(\"GetConnectorName\", &databaseServiceProcessorGetConnectorName{handler: handler})\n\tself.AddToProcessorMap(\"GetBotDatabase\", &databaseServiceProcessorGetBotDatabase{handler: handler})\n\tself.AddToProcessorMap(\"UpdateDatabaseBotSwitch\", &databaseServiceProcessorUpdateDatabaseBotSwitch{handler: handler})\n\tself.AddToProcessorMap(\"GetDatabaseTableSchema\", &databaseServiceProcessorGetDatabaseTableSchema{handler: handler})\n\tself.AddToProcessorMap(\"ValidateDatabaseTableSchema\", &databaseServiceProcessorValidateDatabaseTableSchema{handler: handler})\n\tself.AddToProcessorMap(\"SubmitDatabaseInsertTask\", &databaseServiceProcessorSubmitDatabaseInsertTask{handler: handler})\n\tself.AddToProcessorMap(\"DatabaseFileProgressData\", &databaseServiceProcessorDatabaseFileProgressData{handler: handler})\n\treturn self\n}\nfunc (p *DatabaseServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype databaseServiceProcessorListDatabase struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorListDatabase) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceListDatabaseArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceListDatabaseResult{}\n\tvar retval *table.ListDatabaseResponse\n\tif retval, err2 = p.handler.ListDatabase(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListDatabase: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListDatabase\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorGetDatabaseByID struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorGetDatabaseByID) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceGetDatabaseByIDArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDatabaseByID\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceGetDatabaseByIDResult{}\n\tvar retval *table.SingleDatabaseResponse\n\tif retval, err2 = p.handler.GetDatabaseByID(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDatabaseByID: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDatabaseByID\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDatabaseByID\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorAddDatabase struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorAddDatabase) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceAddDatabaseArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"AddDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceAddDatabaseResult{}\n\tvar retval *table.SingleDatabaseResponse\n\tif retval, err2 = p.handler.AddDatabase(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing AddDatabase: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"AddDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"AddDatabase\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorUpdateDatabase struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorUpdateDatabase) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceUpdateDatabaseArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceUpdateDatabaseResult{}\n\tvar retval *table.SingleDatabaseResponse\n\tif retval, err2 = p.handler.UpdateDatabase(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateDatabase: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateDatabase\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorDeleteDatabase struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorDeleteDatabase) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceDeleteDatabaseArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceDeleteDatabaseResult{}\n\tvar retval *table.DeleteDatabaseResponse\n\tif retval, err2 = p.handler.DeleteDatabase(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteDatabase: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteDatabase\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorBindDatabase struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorBindDatabase) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceBindDatabaseArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"BindDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceBindDatabaseResult{}\n\tvar retval *table.BindDatabaseToBotResponse\n\tif retval, err2 = p.handler.BindDatabase(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing BindDatabase: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"BindDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"BindDatabase\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorUnBindDatabase struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorUnBindDatabase) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceUnBindDatabaseArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UnBindDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceUnBindDatabaseResult{}\n\tvar retval *table.BindDatabaseToBotResponse\n\tif retval, err2 = p.handler.UnBindDatabase(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UnBindDatabase: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UnBindDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UnBindDatabase\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorListDatabaseRecords struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorListDatabaseRecords) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceListDatabaseRecordsArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListDatabaseRecords\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceListDatabaseRecordsResult{}\n\tvar retval *table.ListDatabaseRecordsResponse\n\tif retval, err2 = p.handler.ListDatabaseRecords(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListDatabaseRecords: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListDatabaseRecords\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListDatabaseRecords\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorUpdateDatabaseRecords struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorUpdateDatabaseRecords) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceUpdateDatabaseRecordsArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDatabaseRecords\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceUpdateDatabaseRecordsResult{}\n\tvar retval *table.UpdateDatabaseRecordsResponse\n\tif retval, err2 = p.handler.UpdateDatabaseRecords(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateDatabaseRecords: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDatabaseRecords\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateDatabaseRecords\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorGetOnlineDatabaseId struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorGetOnlineDatabaseId) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceGetOnlineDatabaseIdArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetOnlineDatabaseId\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceGetOnlineDatabaseIdResult{}\n\tvar retval *table.GetOnlineDatabaseIdResponse\n\tif retval, err2 = p.handler.GetOnlineDatabaseId(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetOnlineDatabaseId: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetOnlineDatabaseId\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetOnlineDatabaseId\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorResetBotTable struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorResetBotTable) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceResetBotTableArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ResetBotTable\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceResetBotTableResult{}\n\tvar retval *table.ResetBotTableResponse\n\tif retval, err2 = p.handler.ResetBotTable(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ResetBotTable: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ResetBotTable\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ResetBotTable\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorGetDatabaseTemplate struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorGetDatabaseTemplate) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceGetDatabaseTemplateArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDatabaseTemplate\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceGetDatabaseTemplateResult{}\n\tvar retval *table.GetDatabaseTemplateResponse\n\tif retval, err2 = p.handler.GetDatabaseTemplate(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDatabaseTemplate: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDatabaseTemplate\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDatabaseTemplate\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorGetConnectorName struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorGetConnectorName) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceGetConnectorNameArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetConnectorName\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceGetConnectorNameResult{}\n\tvar retval *table.GetSpaceConnectorListResponse\n\tif retval, err2 = p.handler.GetConnectorName(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetConnectorName: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetConnectorName\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetConnectorName\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorGetBotDatabase struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorGetBotDatabase) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceGetBotDatabaseArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetBotDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceGetBotDatabaseResult{}\n\tvar retval *table.GetBotTableResponse\n\tif retval, err2 = p.handler.GetBotDatabase(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetBotDatabase: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetBotDatabase\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetBotDatabase\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorUpdateDatabaseBotSwitch struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorUpdateDatabaseBotSwitch) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceUpdateDatabaseBotSwitchArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDatabaseBotSwitch\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceUpdateDatabaseBotSwitchResult{}\n\tvar retval *table.UpdateDatabaseBotSwitchResponse\n\tif retval, err2 = p.handler.UpdateDatabaseBotSwitch(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateDatabaseBotSwitch: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDatabaseBotSwitch\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateDatabaseBotSwitch\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorGetDatabaseTableSchema struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorGetDatabaseTableSchema) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceGetDatabaseTableSchemaArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDatabaseTableSchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceGetDatabaseTableSchemaResult{}\n\tvar retval *knowledge.GetTableSchemaInfoResponse\n\tif retval, err2 = p.handler.GetDatabaseTableSchema(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDatabaseTableSchema: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDatabaseTableSchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDatabaseTableSchema\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorValidateDatabaseTableSchema struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorValidateDatabaseTableSchema) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceValidateDatabaseTableSchemaArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ValidateDatabaseTableSchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceValidateDatabaseTableSchemaResult{}\n\tvar retval *table.ValidateTableSchemaResponse\n\tif retval, err2 = p.handler.ValidateDatabaseTableSchema(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ValidateDatabaseTableSchema: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ValidateDatabaseTableSchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ValidateDatabaseTableSchema\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorSubmitDatabaseInsertTask struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorSubmitDatabaseInsertTask) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceSubmitDatabaseInsertTaskArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"SubmitDatabaseInsertTask\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceSubmitDatabaseInsertTaskResult{}\n\tvar retval *table.SubmitDatabaseInsertResponse\n\tif retval, err2 = p.handler.SubmitDatabaseInsertTask(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing SubmitDatabaseInsertTask: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"SubmitDatabaseInsertTask\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"SubmitDatabaseInsertTask\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype databaseServiceProcessorDatabaseFileProgressData struct {\n\thandler DatabaseService\n}\n\nfunc (p *databaseServiceProcessorDatabaseFileProgressData) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatabaseServiceDatabaseFileProgressDataArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DatabaseFileProgressData\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatabaseServiceDatabaseFileProgressDataResult{}\n\tvar retval *table.GetDatabaseFileProgressResponse\n\tif retval, err2 = p.handler.DatabaseFileProgressData(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DatabaseFileProgressData: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DatabaseFileProgressData\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DatabaseFileProgressData\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype DatabaseServiceListDatabaseArgs struct {\n\tReq *table.ListDatabaseRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceListDatabaseArgs() *DatabaseServiceListDatabaseArgs {\n\treturn &DatabaseServiceListDatabaseArgs{}\n}\n\nfunc (p *DatabaseServiceListDatabaseArgs) InitDefault() {\n}\n\nvar DatabaseServiceListDatabaseArgs_Req_DEFAULT *table.ListDatabaseRequest\n\nfunc (p *DatabaseServiceListDatabaseArgs) GetReq() (v *table.ListDatabaseRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceListDatabaseArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceListDatabaseArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceListDatabaseArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceListDatabaseArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceListDatabaseArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewListDatabaseRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceListDatabaseArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatabase_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceListDatabaseArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceListDatabaseResult struct {\n\tSuccess *table.ListDatabaseResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceListDatabaseResult() *DatabaseServiceListDatabaseResult {\n\treturn &DatabaseServiceListDatabaseResult{}\n}\n\nfunc (p *DatabaseServiceListDatabaseResult) InitDefault() {\n}\n\nvar DatabaseServiceListDatabaseResult_Success_DEFAULT *table.ListDatabaseResponse\n\nfunc (p *DatabaseServiceListDatabaseResult) GetSuccess() (v *table.ListDatabaseResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceListDatabaseResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceListDatabaseResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceListDatabaseResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceListDatabaseResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceListDatabaseResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewListDatabaseResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceListDatabaseResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatabase_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceListDatabaseResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetDatabaseByIDArgs struct {\n\tReq *table.SingleDatabaseRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceGetDatabaseByIDArgs() *DatabaseServiceGetDatabaseByIDArgs {\n\treturn &DatabaseServiceGetDatabaseByIDArgs{}\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDArgs) InitDefault() {\n}\n\nvar DatabaseServiceGetDatabaseByIDArgs_Req_DEFAULT *table.SingleDatabaseRequest\n\nfunc (p *DatabaseServiceGetDatabaseByIDArgs) GetReq() (v *table.SingleDatabaseRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceGetDatabaseByIDArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceGetDatabaseByIDArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetDatabaseByIDArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewSingleDatabaseRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDatabaseByID_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetDatabaseByIDArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetDatabaseByIDResult struct {\n\tSuccess *table.SingleDatabaseResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceGetDatabaseByIDResult() *DatabaseServiceGetDatabaseByIDResult {\n\treturn &DatabaseServiceGetDatabaseByIDResult{}\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDResult) InitDefault() {\n}\n\nvar DatabaseServiceGetDatabaseByIDResult_Success_DEFAULT *table.SingleDatabaseResponse\n\nfunc (p *DatabaseServiceGetDatabaseByIDResult) GetSuccess() (v *table.SingleDatabaseResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceGetDatabaseByIDResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceGetDatabaseByIDResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetDatabaseByIDResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewSingleDatabaseResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDatabaseByID_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseByIDResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetDatabaseByIDResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceAddDatabaseArgs struct {\n\tReq *table.AddDatabaseRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceAddDatabaseArgs() *DatabaseServiceAddDatabaseArgs {\n\treturn &DatabaseServiceAddDatabaseArgs{}\n}\n\nfunc (p *DatabaseServiceAddDatabaseArgs) InitDefault() {\n}\n\nvar DatabaseServiceAddDatabaseArgs_Req_DEFAULT *table.AddDatabaseRequest\n\nfunc (p *DatabaseServiceAddDatabaseArgs) GetReq() (v *table.AddDatabaseRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceAddDatabaseArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceAddDatabaseArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceAddDatabaseArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceAddDatabaseArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceAddDatabaseArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceAddDatabaseArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewAddDatabaseRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceAddDatabaseArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AddDatabase_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceAddDatabaseArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceAddDatabaseArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceAddDatabaseArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceAddDatabaseResult struct {\n\tSuccess *table.SingleDatabaseResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceAddDatabaseResult() *DatabaseServiceAddDatabaseResult {\n\treturn &DatabaseServiceAddDatabaseResult{}\n}\n\nfunc (p *DatabaseServiceAddDatabaseResult) InitDefault() {\n}\n\nvar DatabaseServiceAddDatabaseResult_Success_DEFAULT *table.SingleDatabaseResponse\n\nfunc (p *DatabaseServiceAddDatabaseResult) GetSuccess() (v *table.SingleDatabaseResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceAddDatabaseResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceAddDatabaseResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceAddDatabaseResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceAddDatabaseResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceAddDatabaseResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceAddDatabaseResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewSingleDatabaseResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceAddDatabaseResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AddDatabase_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceAddDatabaseResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceAddDatabaseResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceAddDatabaseResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceUpdateDatabaseArgs struct {\n\tReq *table.UpdateDatabaseRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceUpdateDatabaseArgs() *DatabaseServiceUpdateDatabaseArgs {\n\treturn &DatabaseServiceUpdateDatabaseArgs{}\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseArgs) InitDefault() {\n}\n\nvar DatabaseServiceUpdateDatabaseArgs_Req_DEFAULT *table.UpdateDatabaseRequest\n\nfunc (p *DatabaseServiceUpdateDatabaseArgs) GetReq() (v *table.UpdateDatabaseRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceUpdateDatabaseArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceUpdateDatabaseArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceUpdateDatabaseArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewUpdateDatabaseRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatabase_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceUpdateDatabaseArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceUpdateDatabaseResult struct {\n\tSuccess *table.SingleDatabaseResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceUpdateDatabaseResult() *DatabaseServiceUpdateDatabaseResult {\n\treturn &DatabaseServiceUpdateDatabaseResult{}\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseResult) InitDefault() {\n}\n\nvar DatabaseServiceUpdateDatabaseResult_Success_DEFAULT *table.SingleDatabaseResponse\n\nfunc (p *DatabaseServiceUpdateDatabaseResult) GetSuccess() (v *table.SingleDatabaseResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceUpdateDatabaseResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceUpdateDatabaseResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceUpdateDatabaseResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewSingleDatabaseResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatabase_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceUpdateDatabaseResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceDeleteDatabaseArgs struct {\n\tReq *table.DeleteDatabaseRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceDeleteDatabaseArgs() *DatabaseServiceDeleteDatabaseArgs {\n\treturn &DatabaseServiceDeleteDatabaseArgs{}\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseArgs) InitDefault() {\n}\n\nvar DatabaseServiceDeleteDatabaseArgs_Req_DEFAULT *table.DeleteDatabaseRequest\n\nfunc (p *DatabaseServiceDeleteDatabaseArgs) GetReq() (v *table.DeleteDatabaseRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceDeleteDatabaseArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceDeleteDatabaseArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceDeleteDatabaseArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewDeleteDatabaseRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDatabase_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceDeleteDatabaseArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceDeleteDatabaseResult struct {\n\tSuccess *table.DeleteDatabaseResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceDeleteDatabaseResult() *DatabaseServiceDeleteDatabaseResult {\n\treturn &DatabaseServiceDeleteDatabaseResult{}\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseResult) InitDefault() {\n}\n\nvar DatabaseServiceDeleteDatabaseResult_Success_DEFAULT *table.DeleteDatabaseResponse\n\nfunc (p *DatabaseServiceDeleteDatabaseResult) GetSuccess() (v *table.DeleteDatabaseResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceDeleteDatabaseResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceDeleteDatabaseResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceDeleteDatabaseResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewDeleteDatabaseResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDatabase_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDeleteDatabaseResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceDeleteDatabaseResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceBindDatabaseArgs struct {\n\tReq *table.BindDatabaseToBotRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceBindDatabaseArgs() *DatabaseServiceBindDatabaseArgs {\n\treturn &DatabaseServiceBindDatabaseArgs{}\n}\n\nfunc (p *DatabaseServiceBindDatabaseArgs) InitDefault() {\n}\n\nvar DatabaseServiceBindDatabaseArgs_Req_DEFAULT *table.BindDatabaseToBotRequest\n\nfunc (p *DatabaseServiceBindDatabaseArgs) GetReq() (v *table.BindDatabaseToBotRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceBindDatabaseArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceBindDatabaseArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceBindDatabaseArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceBindDatabaseArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceBindDatabaseArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceBindDatabaseArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewBindDatabaseToBotRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceBindDatabaseArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BindDatabase_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceBindDatabaseArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceBindDatabaseArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceBindDatabaseArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceBindDatabaseResult struct {\n\tSuccess *table.BindDatabaseToBotResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceBindDatabaseResult() *DatabaseServiceBindDatabaseResult {\n\treturn &DatabaseServiceBindDatabaseResult{}\n}\n\nfunc (p *DatabaseServiceBindDatabaseResult) InitDefault() {\n}\n\nvar DatabaseServiceBindDatabaseResult_Success_DEFAULT *table.BindDatabaseToBotResponse\n\nfunc (p *DatabaseServiceBindDatabaseResult) GetSuccess() (v *table.BindDatabaseToBotResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceBindDatabaseResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceBindDatabaseResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceBindDatabaseResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceBindDatabaseResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceBindDatabaseResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceBindDatabaseResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewBindDatabaseToBotResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceBindDatabaseResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BindDatabase_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceBindDatabaseResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceBindDatabaseResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceBindDatabaseResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceUnBindDatabaseArgs struct {\n\tReq *table.BindDatabaseToBotRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceUnBindDatabaseArgs() *DatabaseServiceUnBindDatabaseArgs {\n\treturn &DatabaseServiceUnBindDatabaseArgs{}\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseArgs) InitDefault() {\n}\n\nvar DatabaseServiceUnBindDatabaseArgs_Req_DEFAULT *table.BindDatabaseToBotRequest\n\nfunc (p *DatabaseServiceUnBindDatabaseArgs) GetReq() (v *table.BindDatabaseToBotRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceUnBindDatabaseArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceUnBindDatabaseArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceUnBindDatabaseArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewBindDatabaseToBotRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UnBindDatabase_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceUnBindDatabaseArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceUnBindDatabaseResult struct {\n\tSuccess *table.BindDatabaseToBotResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceUnBindDatabaseResult() *DatabaseServiceUnBindDatabaseResult {\n\treturn &DatabaseServiceUnBindDatabaseResult{}\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseResult) InitDefault() {\n}\n\nvar DatabaseServiceUnBindDatabaseResult_Success_DEFAULT *table.BindDatabaseToBotResponse\n\nfunc (p *DatabaseServiceUnBindDatabaseResult) GetSuccess() (v *table.BindDatabaseToBotResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceUnBindDatabaseResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceUnBindDatabaseResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceUnBindDatabaseResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewBindDatabaseToBotResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UnBindDatabase_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUnBindDatabaseResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceUnBindDatabaseResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceListDatabaseRecordsArgs struct {\n\tReq *table.ListDatabaseRecordsRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceListDatabaseRecordsArgs() *DatabaseServiceListDatabaseRecordsArgs {\n\treturn &DatabaseServiceListDatabaseRecordsArgs{}\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsArgs) InitDefault() {\n}\n\nvar DatabaseServiceListDatabaseRecordsArgs_Req_DEFAULT *table.ListDatabaseRecordsRequest\n\nfunc (p *DatabaseServiceListDatabaseRecordsArgs) GetReq() (v *table.ListDatabaseRecordsRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceListDatabaseRecordsArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceListDatabaseRecordsArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceListDatabaseRecordsArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewListDatabaseRecordsRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatabaseRecords_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceListDatabaseRecordsArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceListDatabaseRecordsResult struct {\n\tSuccess *table.ListDatabaseRecordsResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceListDatabaseRecordsResult() *DatabaseServiceListDatabaseRecordsResult {\n\treturn &DatabaseServiceListDatabaseRecordsResult{}\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsResult) InitDefault() {\n}\n\nvar DatabaseServiceListDatabaseRecordsResult_Success_DEFAULT *table.ListDatabaseRecordsResponse\n\nfunc (p *DatabaseServiceListDatabaseRecordsResult) GetSuccess() (v *table.ListDatabaseRecordsResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceListDatabaseRecordsResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceListDatabaseRecordsResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceListDatabaseRecordsResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewListDatabaseRecordsResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatabaseRecords_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceListDatabaseRecordsResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceListDatabaseRecordsResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceUpdateDatabaseRecordsArgs struct {\n\tReq *table.UpdateDatabaseRecordsRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceUpdateDatabaseRecordsArgs() *DatabaseServiceUpdateDatabaseRecordsArgs {\n\treturn &DatabaseServiceUpdateDatabaseRecordsArgs{}\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsArgs) InitDefault() {\n}\n\nvar DatabaseServiceUpdateDatabaseRecordsArgs_Req_DEFAULT *table.UpdateDatabaseRecordsRequest\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsArgs) GetReq() (v *table.UpdateDatabaseRecordsRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceUpdateDatabaseRecordsArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceUpdateDatabaseRecordsArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceUpdateDatabaseRecordsArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewUpdateDatabaseRecordsRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatabaseRecords_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceUpdateDatabaseRecordsArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceUpdateDatabaseRecordsResult struct {\n\tSuccess *table.UpdateDatabaseRecordsResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceUpdateDatabaseRecordsResult() *DatabaseServiceUpdateDatabaseRecordsResult {\n\treturn &DatabaseServiceUpdateDatabaseRecordsResult{}\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsResult) InitDefault() {\n}\n\nvar DatabaseServiceUpdateDatabaseRecordsResult_Success_DEFAULT *table.UpdateDatabaseRecordsResponse\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsResult) GetSuccess() (v *table.UpdateDatabaseRecordsResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceUpdateDatabaseRecordsResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceUpdateDatabaseRecordsResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceUpdateDatabaseRecordsResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewUpdateDatabaseRecordsResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatabaseRecords_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseRecordsResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceUpdateDatabaseRecordsResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetOnlineDatabaseIdArgs struct {\n\tReq *table.GetOnlineDatabaseIdRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceGetOnlineDatabaseIdArgs() *DatabaseServiceGetOnlineDatabaseIdArgs {\n\treturn &DatabaseServiceGetOnlineDatabaseIdArgs{}\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdArgs) InitDefault() {\n}\n\nvar DatabaseServiceGetOnlineDatabaseIdArgs_Req_DEFAULT *table.GetOnlineDatabaseIdRequest\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdArgs) GetReq() (v *table.GetOnlineDatabaseIdRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceGetOnlineDatabaseIdArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceGetOnlineDatabaseIdArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetOnlineDatabaseIdArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewGetOnlineDatabaseIdRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnlineDatabaseId_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetOnlineDatabaseIdArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetOnlineDatabaseIdResult struct {\n\tSuccess *table.GetOnlineDatabaseIdResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceGetOnlineDatabaseIdResult() *DatabaseServiceGetOnlineDatabaseIdResult {\n\treturn &DatabaseServiceGetOnlineDatabaseIdResult{}\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdResult) InitDefault() {\n}\n\nvar DatabaseServiceGetOnlineDatabaseIdResult_Success_DEFAULT *table.GetOnlineDatabaseIdResponse\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdResult) GetSuccess() (v *table.GetOnlineDatabaseIdResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceGetOnlineDatabaseIdResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceGetOnlineDatabaseIdResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetOnlineDatabaseIdResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewGetOnlineDatabaseIdResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnlineDatabaseId_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetOnlineDatabaseIdResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetOnlineDatabaseIdResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceResetBotTableArgs struct {\n\tReq *table.ResetBotTableRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceResetBotTableArgs() *DatabaseServiceResetBotTableArgs {\n\treturn &DatabaseServiceResetBotTableArgs{}\n}\n\nfunc (p *DatabaseServiceResetBotTableArgs) InitDefault() {\n}\n\nvar DatabaseServiceResetBotTableArgs_Req_DEFAULT *table.ResetBotTableRequest\n\nfunc (p *DatabaseServiceResetBotTableArgs) GetReq() (v *table.ResetBotTableRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceResetBotTableArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceResetBotTableArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceResetBotTableArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceResetBotTableArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceResetBotTableArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceResetBotTableArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewResetBotTableRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceResetBotTableArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResetBotTable_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceResetBotTableArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceResetBotTableArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceResetBotTableArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceResetBotTableResult struct {\n\tSuccess *table.ResetBotTableResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceResetBotTableResult() *DatabaseServiceResetBotTableResult {\n\treturn &DatabaseServiceResetBotTableResult{}\n}\n\nfunc (p *DatabaseServiceResetBotTableResult) InitDefault() {\n}\n\nvar DatabaseServiceResetBotTableResult_Success_DEFAULT *table.ResetBotTableResponse\n\nfunc (p *DatabaseServiceResetBotTableResult) GetSuccess() (v *table.ResetBotTableResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceResetBotTableResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceResetBotTableResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceResetBotTableResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceResetBotTableResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceResetBotTableResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceResetBotTableResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewResetBotTableResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceResetBotTableResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResetBotTable_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceResetBotTableResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceResetBotTableResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceResetBotTableResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetDatabaseTemplateArgs struct {\n\tReq *table.GetDatabaseTemplateRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceGetDatabaseTemplateArgs() *DatabaseServiceGetDatabaseTemplateArgs {\n\treturn &DatabaseServiceGetDatabaseTemplateArgs{}\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateArgs) InitDefault() {\n}\n\nvar DatabaseServiceGetDatabaseTemplateArgs_Req_DEFAULT *table.GetDatabaseTemplateRequest\n\nfunc (p *DatabaseServiceGetDatabaseTemplateArgs) GetReq() (v *table.GetDatabaseTemplateRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceGetDatabaseTemplateArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceGetDatabaseTemplateArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetDatabaseTemplateArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewGetDatabaseTemplateRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDatabaseTemplate_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetDatabaseTemplateArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetDatabaseTemplateResult struct {\n\tSuccess *table.GetDatabaseTemplateResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceGetDatabaseTemplateResult() *DatabaseServiceGetDatabaseTemplateResult {\n\treturn &DatabaseServiceGetDatabaseTemplateResult{}\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateResult) InitDefault() {\n}\n\nvar DatabaseServiceGetDatabaseTemplateResult_Success_DEFAULT *table.GetDatabaseTemplateResponse\n\nfunc (p *DatabaseServiceGetDatabaseTemplateResult) GetSuccess() (v *table.GetDatabaseTemplateResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceGetDatabaseTemplateResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceGetDatabaseTemplateResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetDatabaseTemplateResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewGetDatabaseTemplateResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDatabaseTemplate_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTemplateResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetDatabaseTemplateResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetConnectorNameArgs struct {\n\tReq *table.GetSpaceConnectorListRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceGetConnectorNameArgs() *DatabaseServiceGetConnectorNameArgs {\n\treturn &DatabaseServiceGetConnectorNameArgs{}\n}\n\nfunc (p *DatabaseServiceGetConnectorNameArgs) InitDefault() {\n}\n\nvar DatabaseServiceGetConnectorNameArgs_Req_DEFAULT *table.GetSpaceConnectorListRequest\n\nfunc (p *DatabaseServiceGetConnectorNameArgs) GetReq() (v *table.GetSpaceConnectorListRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceGetConnectorNameArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceGetConnectorNameArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceGetConnectorNameArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceGetConnectorNameArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetConnectorNameArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetConnectorNameArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewGetSpaceConnectorListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetConnectorNameArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetConnectorName_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetConnectorNameArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetConnectorNameArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetConnectorNameArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetConnectorNameResult struct {\n\tSuccess *table.GetSpaceConnectorListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceGetConnectorNameResult() *DatabaseServiceGetConnectorNameResult {\n\treturn &DatabaseServiceGetConnectorNameResult{}\n}\n\nfunc (p *DatabaseServiceGetConnectorNameResult) InitDefault() {\n}\n\nvar DatabaseServiceGetConnectorNameResult_Success_DEFAULT *table.GetSpaceConnectorListResponse\n\nfunc (p *DatabaseServiceGetConnectorNameResult) GetSuccess() (v *table.GetSpaceConnectorListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceGetConnectorNameResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceGetConnectorNameResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceGetConnectorNameResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceGetConnectorNameResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetConnectorNameResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetConnectorNameResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewGetSpaceConnectorListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetConnectorNameResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetConnectorName_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetConnectorNameResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetConnectorNameResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetConnectorNameResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetBotDatabaseArgs struct {\n\tReq *table.GetBotTableRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceGetBotDatabaseArgs() *DatabaseServiceGetBotDatabaseArgs {\n\treturn &DatabaseServiceGetBotDatabaseArgs{}\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseArgs) InitDefault() {\n}\n\nvar DatabaseServiceGetBotDatabaseArgs_Req_DEFAULT *table.GetBotTableRequest\n\nfunc (p *DatabaseServiceGetBotDatabaseArgs) GetReq() (v *table.GetBotTableRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceGetBotDatabaseArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceGetBotDatabaseArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetBotDatabaseArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewGetBotTableRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotDatabase_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetBotDatabaseArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetBotDatabaseResult struct {\n\tSuccess *table.GetBotTableResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceGetBotDatabaseResult() *DatabaseServiceGetBotDatabaseResult {\n\treturn &DatabaseServiceGetBotDatabaseResult{}\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseResult) InitDefault() {\n}\n\nvar DatabaseServiceGetBotDatabaseResult_Success_DEFAULT *table.GetBotTableResponse\n\nfunc (p *DatabaseServiceGetBotDatabaseResult) GetSuccess() (v *table.GetBotTableResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceGetBotDatabaseResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceGetBotDatabaseResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetBotDatabaseResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewGetBotTableResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotDatabase_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetBotDatabaseResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetBotDatabaseResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceUpdateDatabaseBotSwitchArgs struct {\n\tReq *table.UpdateDatabaseBotSwitchRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceUpdateDatabaseBotSwitchArgs() *DatabaseServiceUpdateDatabaseBotSwitchArgs {\n\treturn &DatabaseServiceUpdateDatabaseBotSwitchArgs{}\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchArgs) InitDefault() {\n}\n\nvar DatabaseServiceUpdateDatabaseBotSwitchArgs_Req_DEFAULT *table.UpdateDatabaseBotSwitchRequest\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchArgs) GetReq() (v *table.UpdateDatabaseBotSwitchRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceUpdateDatabaseBotSwitchArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceUpdateDatabaseBotSwitchArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceUpdateDatabaseBotSwitchArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewUpdateDatabaseBotSwitchRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatabaseBotSwitch_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceUpdateDatabaseBotSwitchArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceUpdateDatabaseBotSwitchResult struct {\n\tSuccess *table.UpdateDatabaseBotSwitchResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceUpdateDatabaseBotSwitchResult() *DatabaseServiceUpdateDatabaseBotSwitchResult {\n\treturn &DatabaseServiceUpdateDatabaseBotSwitchResult{}\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchResult) InitDefault() {\n}\n\nvar DatabaseServiceUpdateDatabaseBotSwitchResult_Success_DEFAULT *table.UpdateDatabaseBotSwitchResponse\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchResult) GetSuccess() (v *table.UpdateDatabaseBotSwitchResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceUpdateDatabaseBotSwitchResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceUpdateDatabaseBotSwitchResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceUpdateDatabaseBotSwitchResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewUpdateDatabaseBotSwitchResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatabaseBotSwitch_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceUpdateDatabaseBotSwitchResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceUpdateDatabaseBotSwitchResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetDatabaseTableSchemaArgs struct {\n\tReq *table.GetTableSchemaRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceGetDatabaseTableSchemaArgs() *DatabaseServiceGetDatabaseTableSchemaArgs {\n\treturn &DatabaseServiceGetDatabaseTableSchemaArgs{}\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaArgs) InitDefault() {\n}\n\nvar DatabaseServiceGetDatabaseTableSchemaArgs_Req_DEFAULT *table.GetTableSchemaRequest\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaArgs) GetReq() (v *table.GetTableSchemaRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceGetDatabaseTableSchemaArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceGetDatabaseTableSchemaArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetDatabaseTableSchemaArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewGetTableSchemaRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDatabaseTableSchema_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetDatabaseTableSchemaArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceGetDatabaseTableSchemaResult struct {\n\tSuccess *knowledge.GetTableSchemaInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceGetDatabaseTableSchemaResult() *DatabaseServiceGetDatabaseTableSchemaResult {\n\treturn &DatabaseServiceGetDatabaseTableSchemaResult{}\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaResult) InitDefault() {\n}\n\nvar DatabaseServiceGetDatabaseTableSchemaResult_Success_DEFAULT *knowledge.GetTableSchemaInfoResponse\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaResult) GetSuccess() (v *knowledge.GetTableSchemaInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceGetDatabaseTableSchemaResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceGetDatabaseTableSchemaResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceGetDatabaseTableSchemaResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := knowledge.NewGetTableSchemaInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDatabaseTableSchema_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceGetDatabaseTableSchemaResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceGetDatabaseTableSchemaResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceValidateDatabaseTableSchemaArgs struct {\n\tReq *table.ValidateTableSchemaRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceValidateDatabaseTableSchemaArgs() *DatabaseServiceValidateDatabaseTableSchemaArgs {\n\treturn &DatabaseServiceValidateDatabaseTableSchemaArgs{}\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaArgs) InitDefault() {\n}\n\nvar DatabaseServiceValidateDatabaseTableSchemaArgs_Req_DEFAULT *table.ValidateTableSchemaRequest\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaArgs) GetReq() (v *table.ValidateTableSchemaRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceValidateDatabaseTableSchemaArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceValidateDatabaseTableSchemaArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceValidateDatabaseTableSchemaArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewValidateTableSchemaRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateDatabaseTableSchema_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceValidateDatabaseTableSchemaArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceValidateDatabaseTableSchemaResult struct {\n\tSuccess *table.ValidateTableSchemaResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceValidateDatabaseTableSchemaResult() *DatabaseServiceValidateDatabaseTableSchemaResult {\n\treturn &DatabaseServiceValidateDatabaseTableSchemaResult{}\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaResult) InitDefault() {\n}\n\nvar DatabaseServiceValidateDatabaseTableSchemaResult_Success_DEFAULT *table.ValidateTableSchemaResponse\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaResult) GetSuccess() (v *table.ValidateTableSchemaResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceValidateDatabaseTableSchemaResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceValidateDatabaseTableSchemaResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceValidateDatabaseTableSchemaResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewValidateTableSchemaResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateDatabaseTableSchema_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceValidateDatabaseTableSchemaResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceValidateDatabaseTableSchemaResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceSubmitDatabaseInsertTaskArgs struct {\n\tReq *table.SubmitDatabaseInsertRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceSubmitDatabaseInsertTaskArgs() *DatabaseServiceSubmitDatabaseInsertTaskArgs {\n\treturn &DatabaseServiceSubmitDatabaseInsertTaskArgs{}\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskArgs) InitDefault() {\n}\n\nvar DatabaseServiceSubmitDatabaseInsertTaskArgs_Req_DEFAULT *table.SubmitDatabaseInsertRequest\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskArgs) GetReq() (v *table.SubmitDatabaseInsertRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceSubmitDatabaseInsertTaskArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceSubmitDatabaseInsertTaskArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceSubmitDatabaseInsertTaskArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewSubmitDatabaseInsertRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitDatabaseInsertTask_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceSubmitDatabaseInsertTaskArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceSubmitDatabaseInsertTaskResult struct {\n\tSuccess *table.SubmitDatabaseInsertResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceSubmitDatabaseInsertTaskResult() *DatabaseServiceSubmitDatabaseInsertTaskResult {\n\treturn &DatabaseServiceSubmitDatabaseInsertTaskResult{}\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskResult) InitDefault() {\n}\n\nvar DatabaseServiceSubmitDatabaseInsertTaskResult_Success_DEFAULT *table.SubmitDatabaseInsertResponse\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskResult) GetSuccess() (v *table.SubmitDatabaseInsertResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceSubmitDatabaseInsertTaskResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceSubmitDatabaseInsertTaskResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceSubmitDatabaseInsertTaskResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewSubmitDatabaseInsertResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitDatabaseInsertTask_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceSubmitDatabaseInsertTaskResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceSubmitDatabaseInsertTaskResult(%+v)\", *p)\n\n}\n\ntype DatabaseServiceDatabaseFileProgressDataArgs struct {\n\tReq *table.GetDatabaseFileProgressRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatabaseServiceDatabaseFileProgressDataArgs() *DatabaseServiceDatabaseFileProgressDataArgs {\n\treturn &DatabaseServiceDatabaseFileProgressDataArgs{}\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataArgs) InitDefault() {\n}\n\nvar DatabaseServiceDatabaseFileProgressDataArgs_Req_DEFAULT *table.GetDatabaseFileProgressRequest\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataArgs) GetReq() (v *table.GetDatabaseFileProgressRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatabaseServiceDatabaseFileProgressDataArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatabaseServiceDatabaseFileProgressDataArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceDatabaseFileProgressDataArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := table.NewGetDatabaseFileProgressRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatabaseFileProgressData_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceDatabaseFileProgressDataArgs(%+v)\", *p)\n\n}\n\ntype DatabaseServiceDatabaseFileProgressDataResult struct {\n\tSuccess *table.GetDatabaseFileProgressResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatabaseServiceDatabaseFileProgressDataResult() *DatabaseServiceDatabaseFileProgressDataResult {\n\treturn &DatabaseServiceDatabaseFileProgressDataResult{}\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataResult) InitDefault() {\n}\n\nvar DatabaseServiceDatabaseFileProgressDataResult_Success_DEFAULT *table.GetDatabaseFileProgressResponse\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataResult) GetSuccess() (v *table.GetDatabaseFileProgressResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatabaseServiceDatabaseFileProgressDataResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatabaseServiceDatabaseFileProgressDataResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseServiceDatabaseFileProgressDataResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := table.NewGetDatabaseFileProgressResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatabaseFileProgressData_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatabaseServiceDatabaseFileProgressDataResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseServiceDatabaseFileProgressDataResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/data/database/table/table.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage table\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype RefType int64\n\nconst (\n\tRefType_NoRef     RefType = 0\n\tRefType_Bot       RefType = 1\n\tRefType_ChatGroup RefType = 2\n)\n\nfunc (p RefType) String() string {\n\tswitch p {\n\tcase RefType_NoRef:\n\t\treturn \"NoRef\"\n\tcase RefType_Bot:\n\t\treturn \"Bot\"\n\tcase RefType_ChatGroup:\n\t\treturn \"ChatGroup\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc RefTypeFromString(s string) (RefType, error) {\n\tswitch s {\n\tcase \"NoRef\":\n\t\treturn RefType_NoRef, nil\n\tcase \"Bot\":\n\t\treturn RefType_Bot, nil\n\tcase \"ChatGroup\":\n\t\treturn RefType_ChatGroup, nil\n\t}\n\treturn RefType(0), fmt.Errorf(\"not a valid RefType string\")\n}\n\nfunc RefTypePtr(v RefType) *RefType { return &v }\nfunc (p *RefType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = RefType(result.Int64)\n\treturn\n}\n\nfunc (p *RefType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BotTableStatus int64\n\nconst (\n\t// online\n\tBotTableStatus_Online BotTableStatus = 1\n\t// delete\n\tBotTableStatus_Delete BotTableStatus = 2\n)\n\nfunc (p BotTableStatus) String() string {\n\tswitch p {\n\tcase BotTableStatus_Online:\n\t\treturn \"Online\"\n\tcase BotTableStatus_Delete:\n\t\treturn \"Delete\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotTableStatusFromString(s string) (BotTableStatus, error) {\n\tswitch s {\n\tcase \"Online\":\n\t\treturn BotTableStatus_Online, nil\n\tcase \"Delete\":\n\t\treturn BotTableStatus_Delete, nil\n\t}\n\treturn BotTableStatus(0), fmt.Errorf(\"not a valid BotTableStatus string\")\n}\n\nfunc BotTableStatusPtr(v BotTableStatus) *BotTableStatus { return &v }\nfunc (p *BotTableStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotTableStatus(result.Int64)\n\treturn\n}\n\nfunc (p *BotTableStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype FieldItemType int64\n\nconst (\n\t// Text\n\tFieldItemType_Text FieldItemType = 1\n\t// number\n\tFieldItemType_Number FieldItemType = 2\n\t// time\n\tFieldItemType_Date FieldItemType = 3\n\t// float\n\tFieldItemType_Float FieldItemType = 4\n\t// bool\n\tFieldItemType_Boolean FieldItemType = 5\n)\n\nfunc (p FieldItemType) String() string {\n\tswitch p {\n\tcase FieldItemType_Text:\n\t\treturn \"Text\"\n\tcase FieldItemType_Number:\n\t\treturn \"Number\"\n\tcase FieldItemType_Date:\n\t\treturn \"Date\"\n\tcase FieldItemType_Float:\n\t\treturn \"Float\"\n\tcase FieldItemType_Boolean:\n\t\treturn \"Boolean\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc FieldItemTypeFromString(s string) (FieldItemType, error) {\n\tswitch s {\n\tcase \"Text\":\n\t\treturn FieldItemType_Text, nil\n\tcase \"Number\":\n\t\treturn FieldItemType_Number, nil\n\tcase \"Date\":\n\t\treturn FieldItemType_Date, nil\n\tcase \"Float\":\n\t\treturn FieldItemType_Float, nil\n\tcase \"Boolean\":\n\t\treturn FieldItemType_Boolean, nil\n\t}\n\treturn FieldItemType(0), fmt.Errorf(\"not a valid FieldItemType string\")\n}\n\nfunc FieldItemTypePtr(v FieldItemType) *FieldItemType { return &v }\nfunc (p *FieldItemType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = FieldItemType(result.Int64)\n\treturn\n}\n\nfunc (p *FieldItemType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BotTableRWMode int64\n\nconst (\n\t// single user mode\n\tBotTableRWMode_LimitedReadWrite BotTableRWMode = 1\n\t// read-only mode\n\tBotTableRWMode_ReadOnly BotTableRWMode = 2\n\t// multi-user mode\n\tBotTableRWMode_UnlimitedReadWrite BotTableRWMode = 3\n\t// Max boundary value\n\tBotTableRWMode_RWModeMax BotTableRWMode = 4\n)\n\nfunc (p BotTableRWMode) String() string {\n\tswitch p {\n\tcase BotTableRWMode_LimitedReadWrite:\n\t\treturn \"LimitedReadWrite\"\n\tcase BotTableRWMode_ReadOnly:\n\t\treturn \"ReadOnly\"\n\tcase BotTableRWMode_UnlimitedReadWrite:\n\t\treturn \"UnlimitedReadWrite\"\n\tcase BotTableRWMode_RWModeMax:\n\t\treturn \"RWModeMax\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotTableRWModeFromString(s string) (BotTableRWMode, error) {\n\tswitch s {\n\tcase \"LimitedReadWrite\":\n\t\treturn BotTableRWMode_LimitedReadWrite, nil\n\tcase \"ReadOnly\":\n\t\treturn BotTableRWMode_ReadOnly, nil\n\tcase \"UnlimitedReadWrite\":\n\t\treturn BotTableRWMode_UnlimitedReadWrite, nil\n\tcase \"RWModeMax\":\n\t\treturn BotTableRWMode_RWModeMax, nil\n\t}\n\treturn BotTableRWMode(0), fmt.Errorf(\"not a valid BotTableRWMode string\")\n}\n\nfunc BotTableRWModePtr(v BotTableRWMode) *BotTableRWMode { return &v }\nfunc (p *BotTableRWMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotTableRWMode(result.Int64)\n\treturn\n}\n\nfunc (p *BotTableRWMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SortDirection int64\n\nconst (\n\tSortDirection_ASC  SortDirection = 1\n\tSortDirection_Desc SortDirection = 2\n)\n\nfunc (p SortDirection) String() string {\n\tswitch p {\n\tcase SortDirection_ASC:\n\t\treturn \"ASC\"\n\tcase SortDirection_Desc:\n\t\treturn \"Desc\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SortDirectionFromString(s string) (SortDirection, error) {\n\tswitch s {\n\tcase \"ASC\":\n\t\treturn SortDirection_ASC, nil\n\tcase \"Desc\":\n\t\treturn SortDirection_Desc, nil\n\t}\n\treturn SortDirection(0), fmt.Errorf(\"not a valid SortDirection string\")\n}\n\nfunc SortDirectionPtr(v SortDirection) *SortDirection { return &v }\nfunc (p *SortDirection) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SortDirection(result.Int64)\n\treturn\n}\n\nfunc (p *SortDirection) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype TableType int64\n\nconst (\n\t// draft\n\tTableType_DraftTable TableType = 1\n\t// online\n\tTableType_OnlineTable TableType = 2\n)\n\nfunc (p TableType) String() string {\n\tswitch p {\n\tcase TableType_DraftTable:\n\t\treturn \"DraftTable\"\n\tcase TableType_OnlineTable:\n\t\treturn \"OnlineTable\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TableTypeFromString(s string) (TableType, error) {\n\tswitch s {\n\tcase \"DraftTable\":\n\t\treturn TableType_DraftTable, nil\n\tcase \"OnlineTable\":\n\t\treturn TableType_OnlineTable, nil\n\t}\n\treturn TableType(0), fmt.Errorf(\"not a valid TableType string\")\n}\n\nfunc TableTypePtr(v TableType) *TableType { return &v }\nfunc (p *TableType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = TableType(result.Int64)\n\treturn\n}\n\nfunc (p *TableType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SceneType int64\n\nconst (\n\t// bot personality description\n\tSceneType_BotPersona SceneType = 1\n\t// Text description of the model given by the developer\n\tSceneType_ModelDesc SceneType = 2\n)\n\nfunc (p SceneType) String() string {\n\tswitch p {\n\tcase SceneType_BotPersona:\n\t\treturn \"BotPersona\"\n\tcase SceneType_ModelDesc:\n\t\treturn \"ModelDesc\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SceneTypeFromString(s string) (SceneType, error) {\n\tswitch s {\n\tcase \"BotPersona\":\n\t\treturn SceneType_BotPersona, nil\n\tcase \"ModelDesc\":\n\t\treturn SceneType_ModelDesc, nil\n\t}\n\treturn SceneType(0), fmt.Errorf(\"not a valid SceneType string\")\n}\n\nfunc SceneTypePtr(v SceneType) *SceneType { return &v }\nfunc (p *SceneType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SceneType(result.Int64)\n\treturn\n}\n\nfunc (p *SceneType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ActionKey int64\n\nconst (\n\t//copy\n\tActionKey_Copy ActionKey = 1\n\t//delete\n\tActionKey_Delete ActionKey = 2\n\t//enable/disable\n\tActionKey_EnableSwitch ActionKey = 3\n\t//edit\n\tActionKey_Edit ActionKey = 4\n\t// Cross-space copy\n\tActionKey_CrossSpaceCopy ActionKey = 10\n)\n\nfunc (p ActionKey) String() string {\n\tswitch p {\n\tcase ActionKey_Copy:\n\t\treturn \"Copy\"\n\tcase ActionKey_Delete:\n\t\treturn \"Delete\"\n\tcase ActionKey_EnableSwitch:\n\t\treturn \"EnableSwitch\"\n\tcase ActionKey_Edit:\n\t\treturn \"Edit\"\n\tcase ActionKey_CrossSpaceCopy:\n\t\treturn \"CrossSpaceCopy\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ActionKeyFromString(s string) (ActionKey, error) {\n\tswitch s {\n\tcase \"Copy\":\n\t\treturn ActionKey_Copy, nil\n\tcase \"Delete\":\n\t\treturn ActionKey_Delete, nil\n\tcase \"EnableSwitch\":\n\t\treturn ActionKey_EnableSwitch, nil\n\tcase \"Edit\":\n\t\treturn ActionKey_Edit, nil\n\tcase \"CrossSpaceCopy\":\n\t\treturn ActionKey_CrossSpaceCopy, nil\n\t}\n\treturn ActionKey(0), fmt.Errorf(\"not a valid ActionKey string\")\n}\n\nfunc ActionKeyPtr(v ActionKey) *ActionKey { return &v }\nfunc (p *ActionKey) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ActionKey(result.Int64)\n\treturn\n}\n\nfunc (p *ActionKey) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PublishStatus int64\n\nconst (\n\t//unpublished\n\tPublishStatus_UnPublished PublishStatus = 1\n\t//Published\n\tPublishStatus_Published PublishStatus = 2\n)\n\nfunc (p PublishStatus) String() string {\n\tswitch p {\n\tcase PublishStatus_UnPublished:\n\t\treturn \"UnPublished\"\n\tcase PublishStatus_Published:\n\t\treturn \"Published\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PublishStatusFromString(s string) (PublishStatus, error) {\n\tswitch s {\n\tcase \"UnPublished\":\n\t\treturn PublishStatus_UnPublished, nil\n\tcase \"Published\":\n\t\treturn PublishStatus_Published, nil\n\t}\n\treturn PublishStatus(0), fmt.Errorf(\"not a valid PublishStatus string\")\n}\n\nfunc PublishStatusPtr(v PublishStatus) *PublishStatus { return &v }\nfunc (p *PublishStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PublishStatus(result.Int64)\n\treturn\n}\n\nfunc (p *PublishStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype OperateType int64\n\nconst (\n\tOperateType_Insert OperateType = 1\n\tOperateType_Update OperateType = 2\n\tOperateType_Delete OperateType = 3\n\tOperateType_Select OperateType = 4\n)\n\nfunc (p OperateType) String() string {\n\tswitch p {\n\tcase OperateType_Insert:\n\t\treturn \"Insert\"\n\tcase OperateType_Update:\n\t\treturn \"Update\"\n\tcase OperateType_Delete:\n\t\treturn \"Delete\"\n\tcase OperateType_Select:\n\t\treturn \"Select\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OperateTypeFromString(s string) (OperateType, error) {\n\tswitch s {\n\tcase \"Insert\":\n\t\treturn OperateType_Insert, nil\n\tcase \"Update\":\n\t\treturn OperateType_Update, nil\n\tcase \"Delete\":\n\t\treturn OperateType_Delete, nil\n\tcase \"Select\":\n\t\treturn OperateType_Select, nil\n\t}\n\treturn OperateType(0), fmt.Errorf(\"not a valid OperateType string\")\n}\n\nfunc OperateTypePtr(v OperateType) *OperateType { return &v }\nfunc (p *OperateType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OperateType(result.Int64)\n\treturn\n}\n\nfunc (p *OperateType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype Operation int64\n\nconst (\n\t// \"=\"\n\tOperation_EQUAL Operation = 1\n\t// \"< >\" or \"! =\"\n\tOperation_NOT_EQUAL Operation = 2\n\t// \">\"\n\tOperation_GREATER_THAN Operation = 3\n\t// \"<\"\n\tOperation_LESS_THAN Operation = 4\n\t// \">=\"\n\tOperation_GREATER_EQUAL Operation = 5\n\t// \"<=\"\n\tOperation_LESS_EQUAL Operation = 6\n\t// \"IN\"\n\tOperation_IN Operation = 7\n\t// \"NOT IN\"\n\tOperation_NOT_IN Operation = 8\n\t// \"IS NULL\"\n\tOperation_IS_NULL Operation = 9\n\t// \"IS NOT NULL\"\n\tOperation_IS_NOT_NULL Operation = 10\n\t// \"LIKE\" fuzzy match string\n\tOperation_LIKE Operation = 11\n\t// \"NOT LIKE\" inverse fuzzy match\n\tOperation_NOT_LIKE Operation = 12\n)\n\nfunc (p Operation) String() string {\n\tswitch p {\n\tcase Operation_EQUAL:\n\t\treturn \"EQUAL\"\n\tcase Operation_NOT_EQUAL:\n\t\treturn \"NOT_EQUAL\"\n\tcase Operation_GREATER_THAN:\n\t\treturn \"GREATER_THAN\"\n\tcase Operation_LESS_THAN:\n\t\treturn \"LESS_THAN\"\n\tcase Operation_GREATER_EQUAL:\n\t\treturn \"GREATER_EQUAL\"\n\tcase Operation_LESS_EQUAL:\n\t\treturn \"LESS_EQUAL\"\n\tcase Operation_IN:\n\t\treturn \"IN\"\n\tcase Operation_NOT_IN:\n\t\treturn \"NOT_IN\"\n\tcase Operation_IS_NULL:\n\t\treturn \"IS_NULL\"\n\tcase Operation_IS_NOT_NULL:\n\t\treturn \"IS_NOT_NULL\"\n\tcase Operation_LIKE:\n\t\treturn \"LIKE\"\n\tcase Operation_NOT_LIKE:\n\t\treturn \"NOT_LIKE\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OperationFromString(s string) (Operation, error) {\n\tswitch s {\n\tcase \"EQUAL\":\n\t\treturn Operation_EQUAL, nil\n\tcase \"NOT_EQUAL\":\n\t\treturn Operation_NOT_EQUAL, nil\n\tcase \"GREATER_THAN\":\n\t\treturn Operation_GREATER_THAN, nil\n\tcase \"LESS_THAN\":\n\t\treturn Operation_LESS_THAN, nil\n\tcase \"GREATER_EQUAL\":\n\t\treturn Operation_GREATER_EQUAL, nil\n\tcase \"LESS_EQUAL\":\n\t\treturn Operation_LESS_EQUAL, nil\n\tcase \"IN\":\n\t\treturn Operation_IN, nil\n\tcase \"NOT_IN\":\n\t\treturn Operation_NOT_IN, nil\n\tcase \"IS_NULL\":\n\t\treturn Operation_IS_NULL, nil\n\tcase \"IS_NOT_NULL\":\n\t\treturn Operation_IS_NOT_NULL, nil\n\tcase \"LIKE\":\n\t\treturn Operation_LIKE, nil\n\tcase \"NOT_LIKE\":\n\t\treturn Operation_NOT_LIKE, nil\n\t}\n\treturn Operation(0), fmt.Errorf(\"not a valid Operation string\")\n}\n\nfunc OperationPtr(v Operation) *Operation { return &v }\nfunc (p *Operation) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = Operation(result.Int64)\n\treturn\n}\n\nfunc (p *Operation) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype TableDataType int64\n\nconst (\n\t// Schema sheets and preview data\n\tTableDataType_AllData TableDataType = 0\n\t// Only need schema structure & Sheets\n\tTableDataType_OnlySchema TableDataType = 1\n\t// Just preview the data\n\tTableDataType_OnlyPreview TableDataType = 2\n)\n\nfunc (p TableDataType) String() string {\n\tswitch p {\n\tcase TableDataType_AllData:\n\t\treturn \"AllData\"\n\tcase TableDataType_OnlySchema:\n\t\treturn \"OnlySchema\"\n\tcase TableDataType_OnlyPreview:\n\t\treturn \"OnlyPreview\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TableDataTypeFromString(s string) (TableDataType, error) {\n\tswitch s {\n\tcase \"AllData\":\n\t\treturn TableDataType_AllData, nil\n\tcase \"OnlySchema\":\n\t\treturn TableDataType_OnlySchema, nil\n\tcase \"OnlyPreview\":\n\t\treturn TableDataType_OnlyPreview, nil\n\t}\n\treturn TableDataType(0), fmt.Errorf(\"not a valid TableDataType string\")\n}\n\nfunc TableDataTypePtr(v TableDataType) *TableDataType { return &v }\nfunc (p *TableDataType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = TableDataType(result.Int64)\n\treturn\n}\n\nfunc (p *TableDataType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ColumnType int64\n\nconst (\n\tColumnType_Unknown ColumnType = 0\n\t// Text\n\tColumnType_Text ColumnType = 1\n\t// number\n\tColumnType_Number ColumnType = 2\n\t// time\n\tColumnType_Date ColumnType = 3\n\t// float\n\tColumnType_Float ColumnType = 4\n\t// bool\n\tColumnType_Boolean ColumnType = 5\n\t// picture\n\tColumnType_Image ColumnType = 6\n)\n\nfunc (p ColumnType) String() string {\n\tswitch p {\n\tcase ColumnType_Unknown:\n\t\treturn \"Unknown\"\n\tcase ColumnType_Text:\n\t\treturn \"Text\"\n\tcase ColumnType_Number:\n\t\treturn \"Number\"\n\tcase ColumnType_Date:\n\t\treturn \"Date\"\n\tcase ColumnType_Float:\n\t\treturn \"Float\"\n\tcase ColumnType_Boolean:\n\t\treturn \"Boolean\"\n\tcase ColumnType_Image:\n\t\treturn \"Image\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ColumnTypeFromString(s string) (ColumnType, error) {\n\tswitch s {\n\tcase \"Unknown\":\n\t\treturn ColumnType_Unknown, nil\n\tcase \"Text\":\n\t\treturn ColumnType_Text, nil\n\tcase \"Number\":\n\t\treturn ColumnType_Number, nil\n\tcase \"Date\":\n\t\treturn ColumnType_Date, nil\n\tcase \"Float\":\n\t\treturn ColumnType_Float, nil\n\tcase \"Boolean\":\n\t\treturn ColumnType_Boolean, nil\n\tcase \"Image\":\n\t\treturn ColumnType_Image, nil\n\t}\n\treturn ColumnType(0), fmt.Errorf(\"not a valid ColumnType string\")\n}\n\nfunc ColumnTypePtr(v ColumnType) *ColumnType { return &v }\nfunc (p *ColumnType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ColumnType(result.Int64)\n\treturn\n}\n\nfunc (p *ColumnType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype GetDatabaseTemplateRequest = GetDatabaseFileProgressRequest\n\nfunc NewGetDatabaseTemplateRequest() *GetDatabaseTemplateRequest {\n\treturn (*GetDatabaseTemplateRequest)(NewGetDatabaseFileProgressRequest())\n}\n\ntype RefInfo struct {\n\t// reference type\n\tRefType RefType `thrift:\"ref_type,1\" form:\"ref_type\" json:\"ref_type\" query:\"ref_type\"`\n\t// reference id\n\tRefID string `thrift:\"ref_id,2\" form:\"ref_id\" json:\"ref_id\" query:\"ref_id\"`\n}\n\nfunc NewRefInfo() *RefInfo {\n\treturn &RefInfo{}\n}\n\nfunc (p *RefInfo) InitDefault() {\n}\n\nfunc (p *RefInfo) GetRefType() (v RefType) {\n\treturn p.RefType\n}\n\nfunc (p *RefInfo) GetRefID() (v string) {\n\treturn p.RefID\n}\n\nvar fieldIDToName_RefInfo = map[int16]string{\n\t1: \"ref_type\",\n\t2: \"ref_id\",\n}\n\nfunc (p *RefInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RefInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *RefInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field RefType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = RefType(v)\n\t}\n\tp.RefType = _field\n\treturn nil\n}\nfunc (p *RefInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RefID = _field\n\treturn nil\n}\n\nfunc (p *RefInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RefInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RefInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ref_type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.RefType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RefInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ref_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.RefID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *RefInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RefInfo(%+v)\", *p)\n\n}\n\ntype FieldItem struct {\n\tName         string        `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc         string        `thrift:\"desc,2\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tType         FieldItemType `thrift:\"type,3\" form:\"type\" json:\"type\" query:\"type\"`\n\tMustRequired bool          `thrift:\"must_required,4\" form:\"must_required\" json:\"must_required\" query:\"must_required\"`\n\t// This field is only used to determine whether it is published. If it is not 0, it is published. The front end cannot modify the field type for the published field.\n\tID int64 `thrift:\"id,5\" form:\"id\" json:\"id\" query:\"id\"`\n\t// When modifying a field (alter, publish), it is used to judge additions and deletions. 0 means new additions, and non-0 means modification or deletion.\n\tAlterId int64 `thrift:\"alterId,6\" form:\"alterId\" json:\"alterId\" query:\"alterId\"`\n\t// Is it a system field?\n\tIsSystemField bool `thrift:\"is_system_field,7\" form:\"is_system_field\" json:\"is_system_field\" query:\"is_system_field\"`\n}\n\nfunc NewFieldItem() *FieldItem {\n\treturn &FieldItem{}\n}\n\nfunc (p *FieldItem) InitDefault() {\n}\n\nfunc (p *FieldItem) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *FieldItem) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *FieldItem) GetType() (v FieldItemType) {\n\treturn p.Type\n}\n\nfunc (p *FieldItem) GetMustRequired() (v bool) {\n\treturn p.MustRequired\n}\n\nfunc (p *FieldItem) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *FieldItem) GetAlterId() (v int64) {\n\treturn p.AlterId\n}\n\nfunc (p *FieldItem) GetIsSystemField() (v bool) {\n\treturn p.IsSystemField\n}\n\nvar fieldIDToName_FieldItem = map[int16]string{\n\t1: \"name\",\n\t2: \"desc\",\n\t3: \"type\",\n\t4: \"must_required\",\n\t5: \"id\",\n\t6: \"alterId\",\n\t7: \"is_system_field\",\n}\n\nfunc (p *FieldItem) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FieldItem[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FieldItem) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field FieldItemType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = FieldItemType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MustRequired = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AlterId = _field\n\treturn nil\n}\nfunc (p *FieldItem) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsSystemField = _field\n\treturn nil\n}\n\nfunc (p *FieldItem) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FieldItem\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FieldItem) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"must_required\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.MustRequired); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"alterId\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.AlterId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *FieldItem) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_system_field\", thrift.BOOL, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsSystemField); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *FieldItem) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FieldItem(%+v)\", *p)\n\n}\n\ntype OrderBy struct {\n\tField     string        `thrift:\"field,1\" form:\"field\" json:\"field\" query:\"field\"`\n\tDirection SortDirection `thrift:\"direction,2\" form:\"direction\" json:\"direction\" query:\"direction\"`\n}\n\nfunc NewOrderBy() *OrderBy {\n\treturn &OrderBy{}\n}\n\nfunc (p *OrderBy) InitDefault() {\n}\n\nfunc (p *OrderBy) GetField() (v string) {\n\treturn p.Field\n}\n\nfunc (p *OrderBy) GetDirection() (v SortDirection) {\n\treturn p.Direction\n}\n\nvar fieldIDToName_OrderBy = map[int16]string{\n\t1: \"field\",\n\t2: \"direction\",\n}\n\nfunc (p *OrderBy) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OrderBy[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OrderBy) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Field = _field\n\treturn nil\n}\nfunc (p *OrderBy) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field SortDirection\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SortDirection(v)\n\t}\n\tp.Direction = _field\n\treturn nil\n}\n\nfunc (p *OrderBy) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OrderBy\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OrderBy) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"field\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Field); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OrderBy) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"direction\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Direction)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *OrderBy) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OrderBy(%+v)\", *p)\n\n}\n\ntype Criterion struct {\n\tConditions      []*Condition `thrift:\"conditions,1\" form:\"conditions\" json:\"conditions\" query:\"conditions\"`\n\tLogicExpression string       `thrift:\"logic_expression,2\" form:\"logic_expression\" json:\"logic_expression\" query:\"logic_expression\"`\n}\n\nfunc NewCriterion() *Criterion {\n\treturn &Criterion{}\n}\n\nfunc (p *Criterion) InitDefault() {\n}\n\nfunc (p *Criterion) GetConditions() (v []*Condition) {\n\treturn p.Conditions\n}\n\nfunc (p *Criterion) GetLogicExpression() (v string) {\n\treturn p.LogicExpression\n}\n\nvar fieldIDToName_Criterion = map[int16]string{\n\t1: \"conditions\",\n\t2: \"logic_expression\",\n}\n\nfunc (p *Criterion) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Criterion[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Criterion) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Condition, 0, size)\n\tvalues := make([]Condition, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Conditions = _field\n\treturn nil\n}\nfunc (p *Criterion) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LogicExpression = _field\n\treturn nil\n}\n\nfunc (p *Criterion) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Criterion\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Criterion) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conditions\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Conditions)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Conditions {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Criterion) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"logic_expression\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LogicExpression); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *Criterion) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Criterion(%+v)\", *p)\n\n}\n\ntype ListDatabaseRequest struct {\n\t// Get a database created by a user\n\tCreatorID *int64 `thrift:\"creator_id,1,optional\" form:\"creator_id\" json:\"creator_id,string,omitempty\" query:\"creator_id\"`\n\t// Get the database under the project\n\tProjectID *int64 `thrift:\"project_id,2,optional\" form:\"project_id\" json:\"project_id,string,omitempty\" query:\"project_id\"`\n\t//Get the visible database under space\n\tSpaceID *int64 `thrift:\"space_id,3,optional\" form:\"space_id\" json:\"space_id,string,omitempty\" query:\"space_id\"`\n\t//Filter bot_id to filter out databases that have been added to the bot\n\tBotID *int64 `thrift:\"bot_id,4,optional\" form:\"bot_id\" json:\"bot_id,string,omitempty\" query:\"bot_id\"`\n\t// Table name, fuzzy search\n\tTableName *string `thrift:\"table_name,5,optional\" form:\"table_name\" json:\"table_name,omitempty\" query:\"table_name\"`\n\t// Draft database\n\tTableType TableType `thrift:\"table_type,6,required\" form:\"table_type,required\" json:\"table_type,required\" query:\"table_type,required\"`\n\t// sort\n\tOrderBy []*OrderBy `thrift:\"order_by,7,optional\" form:\"order_by\" json:\"order_by,omitempty\" query:\"order_by\"`\n\tOffset  *int32     `thrift:\"offset,8,optional\" form:\"offset\" json:\"offset,omitempty\" query:\"offset\"`\n\tLimit   *int32     `thrift:\"limit,9,optional\" form:\"limit\" json:\"limit,omitempty\" query:\"limit\"`\n\t//filter criteria\n\tFilterCriterion *Criterion `thrift:\"filter_criterion,10,optional\" form:\"filter_criterion\" json:\"filter_criterion,omitempty\" query:\"filter_criterion\"`\n\t//sort condition\n\tOrderByList []*OrderBy `thrift:\"order_by_list,11,optional\" form:\"order_by_list\" json:\"order_by_list,omitempty\" query:\"order_by_list\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewListDatabaseRequest() *ListDatabaseRequest {\n\treturn &ListDatabaseRequest{}\n}\n\nfunc (p *ListDatabaseRequest) InitDefault() {\n}\n\nvar ListDatabaseRequest_CreatorID_DEFAULT int64\n\nfunc (p *ListDatabaseRequest) GetCreatorID() (v int64) {\n\tif !p.IsSetCreatorID() {\n\t\treturn ListDatabaseRequest_CreatorID_DEFAULT\n\t}\n\treturn *p.CreatorID\n}\n\nvar ListDatabaseRequest_ProjectID_DEFAULT int64\n\nfunc (p *ListDatabaseRequest) GetProjectID() (v int64) {\n\tif !p.IsSetProjectID() {\n\t\treturn ListDatabaseRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar ListDatabaseRequest_SpaceID_DEFAULT int64\n\nfunc (p *ListDatabaseRequest) GetSpaceID() (v int64) {\n\tif !p.IsSetSpaceID() {\n\t\treturn ListDatabaseRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar ListDatabaseRequest_BotID_DEFAULT int64\n\nfunc (p *ListDatabaseRequest) GetBotID() (v int64) {\n\tif !p.IsSetBotID() {\n\t\treturn ListDatabaseRequest_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar ListDatabaseRequest_TableName_DEFAULT string\n\nfunc (p *ListDatabaseRequest) GetTableName() (v string) {\n\tif !p.IsSetTableName() {\n\t\treturn ListDatabaseRequest_TableName_DEFAULT\n\t}\n\treturn *p.TableName\n}\n\nfunc (p *ListDatabaseRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nvar ListDatabaseRequest_OrderBy_DEFAULT []*OrderBy\n\nfunc (p *ListDatabaseRequest) GetOrderBy() (v []*OrderBy) {\n\tif !p.IsSetOrderBy() {\n\t\treturn ListDatabaseRequest_OrderBy_DEFAULT\n\t}\n\treturn p.OrderBy\n}\n\nvar ListDatabaseRequest_Offset_DEFAULT int32\n\nfunc (p *ListDatabaseRequest) GetOffset() (v int32) {\n\tif !p.IsSetOffset() {\n\t\treturn ListDatabaseRequest_Offset_DEFAULT\n\t}\n\treturn *p.Offset\n}\n\nvar ListDatabaseRequest_Limit_DEFAULT int32\n\nfunc (p *ListDatabaseRequest) GetLimit() (v int32) {\n\tif !p.IsSetLimit() {\n\t\treturn ListDatabaseRequest_Limit_DEFAULT\n\t}\n\treturn *p.Limit\n}\n\nvar ListDatabaseRequest_FilterCriterion_DEFAULT *Criterion\n\nfunc (p *ListDatabaseRequest) GetFilterCriterion() (v *Criterion) {\n\tif !p.IsSetFilterCriterion() {\n\t\treturn ListDatabaseRequest_FilterCriterion_DEFAULT\n\t}\n\treturn p.FilterCriterion\n}\n\nvar ListDatabaseRequest_OrderByList_DEFAULT []*OrderBy\n\nfunc (p *ListDatabaseRequest) GetOrderByList() (v []*OrderBy) {\n\tif !p.IsSetOrderByList() {\n\t\treturn ListDatabaseRequest_OrderByList_DEFAULT\n\t}\n\treturn p.OrderByList\n}\n\nvar ListDatabaseRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListDatabaseRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListDatabaseRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListDatabaseRequest = map[int16]string{\n\t1:   \"creator_id\",\n\t2:   \"project_id\",\n\t3:   \"space_id\",\n\t4:   \"bot_id\",\n\t5:   \"table_name\",\n\t6:   \"table_type\",\n\t7:   \"order_by\",\n\t8:   \"offset\",\n\t9:   \"limit\",\n\t10:  \"filter_criterion\",\n\t11:  \"order_by_list\",\n\t255: \"Base\",\n}\n\nfunc (p *ListDatabaseRequest) IsSetCreatorID() bool {\n\treturn p.CreatorID != nil\n}\n\nfunc (p *ListDatabaseRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *ListDatabaseRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *ListDatabaseRequest) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *ListDatabaseRequest) IsSetTableName() bool {\n\treturn p.TableName != nil\n}\n\nfunc (p *ListDatabaseRequest) IsSetOrderBy() bool {\n\treturn p.OrderBy != nil\n}\n\nfunc (p *ListDatabaseRequest) IsSetOffset() bool {\n\treturn p.Offset != nil\n}\n\nfunc (p *ListDatabaseRequest) IsSetLimit() bool {\n\treturn p.Limit != nil\n}\n\nfunc (p *ListDatabaseRequest) IsSetFilterCriterion() bool {\n\treturn p.FilterCriterion != nil\n}\n\nfunc (p *ListDatabaseRequest) IsSetOrderByList() bool {\n\treturn p.OrderByList != nil\n}\n\nfunc (p *ListDatabaseRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListDatabaseRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetTableType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetTableType {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDatabaseRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDatabaseRequest[fieldId]))\n}\n\nfunc (p *ListDatabaseRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TableName = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRequest) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*OrderBy, 0, size)\n\tvalues := make([]OrderBy, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OrderBy = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Offset = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Limit = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRequest) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewCriterion()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FilterCriterion = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRequest) ReadField11(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*OrderBy, 0, size)\n\tvalues := make([]OrderBy, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OrderByList = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListDatabaseRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatabaseRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDatabaseRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatorID() {\n\t\tif err = oprot.WriteFieldBegin(\"creator_id\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreatorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDatabaseRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDatabaseRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListDatabaseRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListDatabaseRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableName() {\n\t\tif err = oprot.WriteFieldBegin(\"table_name\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TableName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListDatabaseRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ListDatabaseRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderBy() {\n\t\tif err = oprot.WriteFieldBegin(\"order_by\", thrift.LIST, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OrderBy)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.OrderBy {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ListDatabaseRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOffset() {\n\t\tif err = oprot.WriteFieldBegin(\"offset\", thrift.I32, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Offset); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ListDatabaseRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLimit() {\n\t\tif err = oprot.WriteFieldBegin(\"limit\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Limit); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ListDatabaseRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFilterCriterion() {\n\t\tif err = oprot.WriteFieldBegin(\"filter_criterion\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.FilterCriterion.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ListDatabaseRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderByList() {\n\t\tif err = oprot.WriteFieldBegin(\"order_by_list\", thrift.LIST, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OrderByList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.OrderByList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ListDatabaseRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDatabaseRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDatabaseRequest(%+v)\", *p)\n\n}\n\ntype DatabaseInfo struct {\n\t// online_database_info primary key id\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\t// ID of space\n\tSpaceID int64 `thrift:\"space_id,2\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\t// project id\n\tProjectID int64 `thrift:\"project_id,3\" form:\"project_id\" json:\"project_id,string\" query:\"project_id\"`\n\t// Table ID on the datamodel side\n\tDatamodelTableID string `thrift:\"datamodel_table_id,4\" form:\"datamodel_table_id\" json:\"datamodel_table_id\" query:\"datamodel_table_id\"`\n\t// avatar url\n\tIconURL string `thrift:\"icon_url,5\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\t// avatar url\n\tIconURI string `thrift:\"icon_uri,6\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\t// table name\n\tTableName string `thrift:\"table_name,7\" form:\"table_name\" json:\"table_name\" query:\"table_name\"`\n\t// table description\n\tTableDesc string `thrift:\"table_desc,8\" form:\"table_desc\" json:\"table_desc\" query:\"table_desc\"`\n\t// status\n\tStatus BotTableStatus `thrift:\"status,9\" form:\"status\" json:\"status\" query:\"status\"`\n\t// creator id\n\tCreatorID int64 `thrift:\"creator_id,10\" form:\"creator_id\" json:\"creator_id,string\" query:\"creator_id\"`\n\t// create_time\n\tCreateTime int64 `thrift:\"create_time,11\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\t// update time\n\tUpdateTime int64 `thrift:\"update_time,12\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\t// Field information\n\tFieldList []*FieldItem `thrift:\"field_list,13\" form:\"field_list\" json:\"field_list\" query:\"field_list\"`\n\t// Data table actual name\n\tActualTableName string `thrift:\"actual_table_name,14\" form:\"actual_table_name\" json:\"actual_table_name\" query:\"actual_table_name\"`\n\t// read and write mode\n\tRwMode BotTableRWMode `thrift:\"rw_mode,15\" form:\"rw_mode\" json:\"rw_mode\" query:\"rw_mode\"`\n\t// Whether to support prompt calls\n\tPromptDisabled bool `thrift:\"prompt_disabled,16\" form:\"prompt_disabled\" json:\"prompt_disabled\" query:\"prompt_disabled\"`\n\t// Is it visible?\n\tIsVisible bool `thrift:\"is_visible,17\" form:\"is_visible\" json:\"is_visible\" query:\"is_visible\"`\n\t// ID corresponding to draft state\n\tDraftID *int64 `thrift:\"draft_id,18,optional\" form:\"draft_id\" json:\"draft_id,string,omitempty\" query:\"draft_id\"`\n\t// Related id. bot_id, the old one is available, the new one is not.\n\tBotID *int64 `thrift:\"bot_id,19,optional\" form:\"bot_id\" json:\"bot_id,string,omitempty\" query:\"bot_id\"`\n\t// extended information\n\tExtraInfo map[string]string `thrift:\"extra_info,20,optional\" form:\"extra_info\" json:\"extra_info,omitempty\" query:\"extra_info\"`\n\t// Has it been added to the bot?\n\tIsAddedToBot *bool `thrift:\"is_added_to_bot,21,optional\" form:\"is_added_to_bot\" json:\"is_added_to_bot,omitempty\" query:\"is_added_to_bot\"`\n}\n\nfunc NewDatabaseInfo() *DatabaseInfo {\n\treturn &DatabaseInfo{}\n}\n\nfunc (p *DatabaseInfo) InitDefault() {\n}\n\nfunc (p *DatabaseInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *DatabaseInfo) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *DatabaseInfo) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nfunc (p *DatabaseInfo) GetDatamodelTableID() (v string) {\n\treturn p.DatamodelTableID\n}\n\nfunc (p *DatabaseInfo) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *DatabaseInfo) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *DatabaseInfo) GetTableName() (v string) {\n\treturn p.TableName\n}\n\nfunc (p *DatabaseInfo) GetTableDesc() (v string) {\n\treturn p.TableDesc\n}\n\nfunc (p *DatabaseInfo) GetStatus() (v BotTableStatus) {\n\treturn p.Status\n}\n\nfunc (p *DatabaseInfo) GetCreatorID() (v int64) {\n\treturn p.CreatorID\n}\n\nfunc (p *DatabaseInfo) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *DatabaseInfo) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nfunc (p *DatabaseInfo) GetFieldList() (v []*FieldItem) {\n\treturn p.FieldList\n}\n\nfunc (p *DatabaseInfo) GetActualTableName() (v string) {\n\treturn p.ActualTableName\n}\n\nfunc (p *DatabaseInfo) GetRwMode() (v BotTableRWMode) {\n\treturn p.RwMode\n}\n\nfunc (p *DatabaseInfo) GetPromptDisabled() (v bool) {\n\treturn p.PromptDisabled\n}\n\nfunc (p *DatabaseInfo) GetIsVisible() (v bool) {\n\treturn p.IsVisible\n}\n\nvar DatabaseInfo_DraftID_DEFAULT int64\n\nfunc (p *DatabaseInfo) GetDraftID() (v int64) {\n\tif !p.IsSetDraftID() {\n\t\treturn DatabaseInfo_DraftID_DEFAULT\n\t}\n\treturn *p.DraftID\n}\n\nvar DatabaseInfo_BotID_DEFAULT int64\n\nfunc (p *DatabaseInfo) GetBotID() (v int64) {\n\tif !p.IsSetBotID() {\n\t\treturn DatabaseInfo_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar DatabaseInfo_ExtraInfo_DEFAULT map[string]string\n\nfunc (p *DatabaseInfo) GetExtraInfo() (v map[string]string) {\n\tif !p.IsSetExtraInfo() {\n\t\treturn DatabaseInfo_ExtraInfo_DEFAULT\n\t}\n\treturn p.ExtraInfo\n}\n\nvar DatabaseInfo_IsAddedToBot_DEFAULT bool\n\nfunc (p *DatabaseInfo) GetIsAddedToBot() (v bool) {\n\tif !p.IsSetIsAddedToBot() {\n\t\treturn DatabaseInfo_IsAddedToBot_DEFAULT\n\t}\n\treturn *p.IsAddedToBot\n}\n\nvar fieldIDToName_DatabaseInfo = map[int16]string{\n\t1:  \"id\",\n\t2:  \"space_id\",\n\t3:  \"project_id\",\n\t4:  \"datamodel_table_id\",\n\t5:  \"icon_url\",\n\t6:  \"icon_uri\",\n\t7:  \"table_name\",\n\t8:  \"table_desc\",\n\t9:  \"status\",\n\t10: \"creator_id\",\n\t11: \"create_time\",\n\t12: \"update_time\",\n\t13: \"field_list\",\n\t14: \"actual_table_name\",\n\t15: \"rw_mode\",\n\t16: \"prompt_disabled\",\n\t17: \"is_visible\",\n\t18: \"draft_id\",\n\t19: \"bot_id\",\n\t20: \"extra_info\",\n\t21: \"is_added_to_bot\",\n}\n\nfunc (p *DatabaseInfo) IsSetDraftID() bool {\n\treturn p.DraftID != nil\n}\n\nfunc (p *DatabaseInfo) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *DatabaseInfo) IsSetExtraInfo() bool {\n\treturn p.ExtraInfo != nil\n}\n\nfunc (p *DatabaseInfo) IsSetIsAddedToBot() bool {\n\treturn p.IsAddedToBot != nil\n}\n\nfunc (p *DatabaseInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatamodelTableID = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableName = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableDesc = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field BotTableStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotTableStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField13(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*FieldItem, 0, size)\n\tvalues := make([]FieldItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FieldList = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ActualTableName = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field BotTableRWMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotTableRWMode(v)\n\t}\n\tp.RwMode = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PromptDisabled = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsVisible = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DraftID = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField20(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ExtraInfo = _field\n\treturn nil\n}\nfunc (p *DatabaseInfo) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsAddedToBot = _field\n\treturn nil\n}\n\nfunc (p *DatabaseInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatabaseInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"datamodel_table_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DatamodelTableID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_name\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TableName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_desc\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TableDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator_id\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I64, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I64, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"field_list\", thrift.LIST, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.FieldList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"actual_table_name\", thrift.STRING, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ActualTableName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"rw_mode\", thrift.I32, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.RwMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"prompt_disabled\", thrift.BOOL, 16); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.PromptDisabled); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_visible\", thrift.BOOL, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsVisible); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDraftID() {\n\t\tif err = oprot.WriteFieldBegin(\"draft_id\", thrift.I64, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.DraftID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExtraInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"extra_info\", thrift.MAP, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.ExtraInfo)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ExtraInfo {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *DatabaseInfo) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsAddedToBot() {\n\t\tif err = oprot.WriteFieldBegin(\"is_added_to_bot\", thrift.BOOL, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsAddedToBot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\n\nfunc (p *DatabaseInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseInfo(%+v)\", *p)\n\n}\n\ntype ListDatabaseResponse struct {\n\tDatabaseInfoList []*DatabaseInfo `thrift:\"database_info_list,1\" form:\"database_info_list\" json:\"database_info_list\" query:\"database_info_list\"`\n\tHasMore          bool            `thrift:\"has_more,2\" form:\"has_more\" json:\"has_more\" query:\"has_more\"`\n\tTotalCount       int64           `thrift:\"total_count,3\" form:\"total_count\" json:\"total_count\" query:\"total_count\"`\n\tCode             int64           `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg              string          `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp         *base.BaseResp  `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewListDatabaseResponse() *ListDatabaseResponse {\n\treturn &ListDatabaseResponse{}\n}\n\nfunc (p *ListDatabaseResponse) InitDefault() {\n}\n\nfunc (p *ListDatabaseResponse) GetDatabaseInfoList() (v []*DatabaseInfo) {\n\treturn p.DatabaseInfoList\n}\n\nfunc (p *ListDatabaseResponse) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nfunc (p *ListDatabaseResponse) GetTotalCount() (v int64) {\n\treturn p.TotalCount\n}\n\nfunc (p *ListDatabaseResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListDatabaseResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ListDatabaseResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListDatabaseResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListDatabaseResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListDatabaseResponse = map[int16]string{\n\t1:   \"database_info_list\",\n\t2:   \"has_more\",\n\t3:   \"total_count\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListDatabaseResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListDatabaseResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDatabaseResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDatabaseResponse[fieldId]))\n}\n\nfunc (p *ListDatabaseResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DatabaseInfo, 0, size)\n\tvalues := make([]DatabaseInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DatabaseInfoList = _field\n\treturn nil\n}\nfunc (p *ListDatabaseResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *ListDatabaseResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TotalCount = _field\n\treturn nil\n}\nfunc (p *ListDatabaseResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListDatabaseResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListDatabaseResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListDatabaseResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatabaseResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDatabaseResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_info_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.DatabaseInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DatabaseInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDatabaseResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_more\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDatabaseResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total_count\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TotalCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListDatabaseResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListDatabaseResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ListDatabaseResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDatabaseResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDatabaseResponse(%+v)\", *p)\n\n}\n\ntype SingleDatabaseRequest struct {\n\t// database_info primary key id\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\t//Whether the incoming data is in draft form, the default is false.\n\tIsDraft bool `thrift:\"is_draft,2\" form:\"is_draft\" json:\"is_draft\" query:\"is_draft\"`\n\t//Do you need system fields?\n\tNeedSysFields bool `thrift:\"need_sys_fields,3\" form:\"need_sys_fields\" json:\"need_sys_fields\" query:\"need_sys_fields\"`\n\t// The version number is not passed on, and the default is the latest.\n\tVersion int64      `thrift:\"version,4\" form:\"version\" json:\"version,string\" query:\"version\"`\n\tBase    *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewSingleDatabaseRequest() *SingleDatabaseRequest {\n\treturn &SingleDatabaseRequest{}\n}\n\nfunc (p *SingleDatabaseRequest) InitDefault() {\n}\n\nfunc (p *SingleDatabaseRequest) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *SingleDatabaseRequest) GetIsDraft() (v bool) {\n\treturn p.IsDraft\n}\n\nfunc (p *SingleDatabaseRequest) GetNeedSysFields() (v bool) {\n\treturn p.NeedSysFields\n}\n\nfunc (p *SingleDatabaseRequest) GetVersion() (v int64) {\n\treturn p.Version\n}\n\nvar SingleDatabaseRequest_Base_DEFAULT *base.Base\n\nfunc (p *SingleDatabaseRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SingleDatabaseRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SingleDatabaseRequest = map[int16]string{\n\t1:   \"id\",\n\t2:   \"is_draft\",\n\t3:   \"need_sys_fields\",\n\t4:   \"version\",\n\t255: \"Base\",\n}\n\nfunc (p *SingleDatabaseRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SingleDatabaseRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SingleDatabaseRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SingleDatabaseRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *SingleDatabaseRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsDraft = _field\n\treturn nil\n}\nfunc (p *SingleDatabaseRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NeedSysFields = _field\n\treturn nil\n}\nfunc (p *SingleDatabaseRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *SingleDatabaseRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SingleDatabaseRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SingleDatabaseRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SingleDatabaseRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SingleDatabaseRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_draft\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsDraft); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SingleDatabaseRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"need_sys_fields\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.NeedSysFields); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SingleDatabaseRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SingleDatabaseRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SingleDatabaseRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SingleDatabaseRequest(%+v)\", *p)\n\n}\n\ntype SingleDatabaseResponse struct {\n\tDatabaseInfo *DatabaseInfo  `thrift:\"database_info,1\" form:\"database_info\" json:\"database_info\" query:\"database_info\"`\n\tCode         int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg          string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp     *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewSingleDatabaseResponse() *SingleDatabaseResponse {\n\treturn &SingleDatabaseResponse{}\n}\n\nfunc (p *SingleDatabaseResponse) InitDefault() {\n}\n\nvar SingleDatabaseResponse_DatabaseInfo_DEFAULT *DatabaseInfo\n\nfunc (p *SingleDatabaseResponse) GetDatabaseInfo() (v *DatabaseInfo) {\n\tif !p.IsSetDatabaseInfo() {\n\t\treturn SingleDatabaseResponse_DatabaseInfo_DEFAULT\n\t}\n\treturn p.DatabaseInfo\n}\n\nfunc (p *SingleDatabaseResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *SingleDatabaseResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar SingleDatabaseResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SingleDatabaseResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SingleDatabaseResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SingleDatabaseResponse = map[int16]string{\n\t1:   \"database_info\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *SingleDatabaseResponse) IsSetDatabaseInfo() bool {\n\treturn p.DatabaseInfo != nil\n}\n\nfunc (p *SingleDatabaseResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SingleDatabaseResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SingleDatabaseResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SingleDatabaseResponse[fieldId]))\n}\n\nfunc (p *SingleDatabaseResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDatabaseInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DatabaseInfo = _field\n\treturn nil\n}\nfunc (p *SingleDatabaseResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *SingleDatabaseResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *SingleDatabaseResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SingleDatabaseResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SingleDatabaseResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SingleDatabaseResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_info\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.DatabaseInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SingleDatabaseResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *SingleDatabaseResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *SingleDatabaseResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SingleDatabaseResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SingleDatabaseResponse(%+v)\", *p)\n\n}\n\ntype AddDatabaseRequest struct {\n\t// creator id\n\tCreatorID int64 `thrift:\"creator_id,1\" form:\"creator_id\" json:\"creator_id,string\" query:\"creator_id\"`\n\t// ID of space\n\tSpaceID int64 `thrift:\"space_id,2\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\t// project id\n\tProjectID int64 `thrift:\"project_id,3\" form:\"project_id\" json:\"project_id,string\" query:\"project_id\"`\n\t// avatar url\n\tIconURI string `thrift:\"icon_uri,4\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\t// table name\n\tTableName string `thrift:\"table_name,5\" form:\"table_name\" json:\"table_name\" query:\"table_name\"`\n\t// table description\n\tTableDesc string `thrift:\"table_desc,6\" form:\"table_desc\" json:\"table_desc\" query:\"table_desc\"`\n\t// Field information\n\tFieldList []*FieldItem `thrift:\"field_list,7\" form:\"field_list\" json:\"field_list\" query:\"field_list\"`\n\t// Read and write mode, single user mode/multi-user mode\n\tRwMode BotTableRWMode `thrift:\"rw_mode,8\" form:\"rw_mode\" json:\"rw_mode\" query:\"rw_mode\"`\n\t// Whether to support prompt calls\n\tPromptDisabled bool `thrift:\"prompt_disabled,9\" form:\"prompt_disabled\" json:\"prompt_disabled\" query:\"prompt_disabled\"`\n\t// extended information\n\tExtraInfo map[string]string `thrift:\"extra_info,10,optional\" form:\"extra_info\" json:\"extra_info,omitempty\" query:\"extra_info\"`\n\tBase      *base.Base        `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewAddDatabaseRequest() *AddDatabaseRequest {\n\treturn &AddDatabaseRequest{}\n}\n\nfunc (p *AddDatabaseRequest) InitDefault() {\n}\n\nfunc (p *AddDatabaseRequest) GetCreatorID() (v int64) {\n\treturn p.CreatorID\n}\n\nfunc (p *AddDatabaseRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *AddDatabaseRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nfunc (p *AddDatabaseRequest) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *AddDatabaseRequest) GetTableName() (v string) {\n\treturn p.TableName\n}\n\nfunc (p *AddDatabaseRequest) GetTableDesc() (v string) {\n\treturn p.TableDesc\n}\n\nfunc (p *AddDatabaseRequest) GetFieldList() (v []*FieldItem) {\n\treturn p.FieldList\n}\n\nfunc (p *AddDatabaseRequest) GetRwMode() (v BotTableRWMode) {\n\treturn p.RwMode\n}\n\nfunc (p *AddDatabaseRequest) GetPromptDisabled() (v bool) {\n\treturn p.PromptDisabled\n}\n\nvar AddDatabaseRequest_ExtraInfo_DEFAULT map[string]string\n\nfunc (p *AddDatabaseRequest) GetExtraInfo() (v map[string]string) {\n\tif !p.IsSetExtraInfo() {\n\t\treturn AddDatabaseRequest_ExtraInfo_DEFAULT\n\t}\n\treturn p.ExtraInfo\n}\n\nvar AddDatabaseRequest_Base_DEFAULT *base.Base\n\nfunc (p *AddDatabaseRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn AddDatabaseRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_AddDatabaseRequest = map[int16]string{\n\t1:   \"creator_id\",\n\t2:   \"space_id\",\n\t3:   \"project_id\",\n\t4:   \"icon_uri\",\n\t5:   \"table_name\",\n\t6:   \"table_desc\",\n\t7:   \"field_list\",\n\t8:   \"rw_mode\",\n\t9:   \"prompt_disabled\",\n\t10:  \"extra_info\",\n\t255: \"Base\",\n}\n\nfunc (p *AddDatabaseRequest) IsSetExtraInfo() bool {\n\treturn p.ExtraInfo != nil\n}\n\nfunc (p *AddDatabaseRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *AddDatabaseRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AddDatabaseRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AddDatabaseRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *AddDatabaseRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *AddDatabaseRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *AddDatabaseRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *AddDatabaseRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableName = _field\n\treturn nil\n}\nfunc (p *AddDatabaseRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableDesc = _field\n\treturn nil\n}\nfunc (p *AddDatabaseRequest) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*FieldItem, 0, size)\n\tvalues := make([]FieldItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FieldList = _field\n\treturn nil\n}\nfunc (p *AddDatabaseRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field BotTableRWMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotTableRWMode(v)\n\t}\n\tp.RwMode = _field\n\treturn nil\n}\nfunc (p *AddDatabaseRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PromptDisabled = _field\n\treturn nil\n}\nfunc (p *AddDatabaseRequest) ReadField10(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ExtraInfo = _field\n\treturn nil\n}\nfunc (p *AddDatabaseRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *AddDatabaseRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AddDatabaseRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AddDatabaseRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AddDatabaseRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AddDatabaseRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *AddDatabaseRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *AddDatabaseRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_name\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TableName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *AddDatabaseRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_desc\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TableDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *AddDatabaseRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"field_list\", thrift.LIST, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.FieldList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *AddDatabaseRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"rw_mode\", thrift.I32, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.RwMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *AddDatabaseRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"prompt_disabled\", thrift.BOOL, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.PromptDisabled); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *AddDatabaseRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExtraInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"extra_info\", thrift.MAP, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.ExtraInfo)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ExtraInfo {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *AddDatabaseRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *AddDatabaseRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AddDatabaseRequest(%+v)\", *p)\n\n}\n\ntype UpdateDatabaseRequest struct {\n\t// database_info primary key id\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\t// avatar url\n\tIconURI string `thrift:\"icon_uri,2\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\t// table name\n\tTableName string `thrift:\"table_name,3\" form:\"table_name\" json:\"table_name\" query:\"table_name\"`\n\t// table description\n\tTableDesc string `thrift:\"table_desc,5\" form:\"table_desc\" json:\"table_desc\" query:\"table_desc\"`\n\t// Field information\n\tFieldList []*FieldItem `thrift:\"field_list,6\" form:\"field_list\" json:\"field_list\" query:\"field_list\"`\n\t// Read and write mode, single user mode/multi-user mode\n\tRwMode BotTableRWMode `thrift:\"rw_mode,7\" form:\"rw_mode\" json:\"rw_mode\" query:\"rw_mode\"`\n\t// Whether to support prompt calls\n\tPromptDisabled bool `thrift:\"prompt_disabled,8\" form:\"prompt_disabled\" json:\"prompt_disabled\" query:\"prompt_disabled\"`\n\t// extended information\n\tExtraInfo map[string]string `thrift:\"extra_info,9,optional\" form:\"extra_info\" json:\"extra_info,omitempty\" query:\"extra_info\"`\n\tBase      *base.Base        `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateDatabaseRequest() *UpdateDatabaseRequest {\n\treturn &UpdateDatabaseRequest{}\n}\n\nfunc (p *UpdateDatabaseRequest) InitDefault() {\n}\n\nfunc (p *UpdateDatabaseRequest) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *UpdateDatabaseRequest) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *UpdateDatabaseRequest) GetTableName() (v string) {\n\treturn p.TableName\n}\n\nfunc (p *UpdateDatabaseRequest) GetTableDesc() (v string) {\n\treturn p.TableDesc\n}\n\nfunc (p *UpdateDatabaseRequest) GetFieldList() (v []*FieldItem) {\n\treturn p.FieldList\n}\n\nfunc (p *UpdateDatabaseRequest) GetRwMode() (v BotTableRWMode) {\n\treturn p.RwMode\n}\n\nfunc (p *UpdateDatabaseRequest) GetPromptDisabled() (v bool) {\n\treturn p.PromptDisabled\n}\n\nvar UpdateDatabaseRequest_ExtraInfo_DEFAULT map[string]string\n\nfunc (p *UpdateDatabaseRequest) GetExtraInfo() (v map[string]string) {\n\tif !p.IsSetExtraInfo() {\n\t\treturn UpdateDatabaseRequest_ExtraInfo_DEFAULT\n\t}\n\treturn p.ExtraInfo\n}\n\nvar UpdateDatabaseRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateDatabaseRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateDatabaseRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateDatabaseRequest = map[int16]string{\n\t1:   \"id\",\n\t2:   \"icon_uri\",\n\t3:   \"table_name\",\n\t5:   \"table_desc\",\n\t6:   \"field_list\",\n\t7:   \"rw_mode\",\n\t8:   \"prompt_disabled\",\n\t9:   \"extra_info\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateDatabaseRequest) IsSetExtraInfo() bool {\n\treturn p.ExtraInfo != nil\n}\n\nfunc (p *UpdateDatabaseRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateDatabaseRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDatabaseRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatabaseRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableName = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableDesc = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRequest) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*FieldItem, 0, size)\n\tvalues := make([]FieldItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FieldList = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field BotTableRWMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotTableRWMode(v)\n\t}\n\tp.RwMode = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PromptDisabled = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRequest) ReadField9(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ExtraInfo = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateDatabaseRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatabaseRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatabaseRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TableName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_desc\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TableDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"field_list\", thrift.LIST, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.FieldList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"rw_mode\", thrift.I32, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.RwMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"prompt_disabled\", thrift.BOOL, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.PromptDisabled); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExtraInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"extra_info\", thrift.MAP, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.ExtraInfo)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ExtraInfo {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDatabaseRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDatabaseRequest(%+v)\", *p)\n\n}\n\ntype DeleteDatabaseRequest struct {\n\t// database_info primary key id\n\tID   int64      `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteDatabaseRequest() *DeleteDatabaseRequest {\n\treturn &DeleteDatabaseRequest{}\n}\n\nfunc (p *DeleteDatabaseRequest) InitDefault() {\n}\n\nfunc (p *DeleteDatabaseRequest) GetID() (v int64) {\n\treturn p.ID\n}\n\nvar DeleteDatabaseRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteDatabaseRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteDatabaseRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteDatabaseRequest = map[int16]string{\n\t1:   \"id\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteDatabaseRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteDatabaseRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteDatabaseRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteDatabaseRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *DeleteDatabaseRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteDatabaseRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDatabaseRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteDatabaseRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteDatabaseRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteDatabaseRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteDatabaseRequest(%+v)\", *p)\n\n}\n\ntype DeleteDatabaseResponse struct {\n\tCode     int64          `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewDeleteDatabaseResponse() *DeleteDatabaseResponse {\n\treturn &DeleteDatabaseResponse{}\n}\n\nfunc (p *DeleteDatabaseResponse) InitDefault() {\n}\n\nfunc (p *DeleteDatabaseResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DeleteDatabaseResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DeleteDatabaseResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteDatabaseResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteDatabaseResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteDatabaseResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteDatabaseResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteDatabaseResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteDatabaseResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteDatabaseResponse[fieldId]))\n}\n\nfunc (p *DeleteDatabaseResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteDatabaseResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeleteDatabaseResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteDatabaseResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDatabaseResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteDatabaseResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteDatabaseResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteDatabaseResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteDatabaseResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteDatabaseResponse(%+v)\", *p)\n\n}\n\ntype BindDatabaseToBotRequest struct {\n\t// Draft data database table primary key id, note that it is draft state\n\tDatabaseID int64 `thrift:\"database_id,1\" form:\"database_id\" json:\"database_id,string\" query:\"database_id\"`\n\t// bot_id\n\tBotID int64      `thrift:\"bot_id,2\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\tBase  *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewBindDatabaseToBotRequest() *BindDatabaseToBotRequest {\n\treturn &BindDatabaseToBotRequest{}\n}\n\nfunc (p *BindDatabaseToBotRequest) InitDefault() {\n}\n\nfunc (p *BindDatabaseToBotRequest) GetDatabaseID() (v int64) {\n\treturn p.DatabaseID\n}\n\nfunc (p *BindDatabaseToBotRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar BindDatabaseToBotRequest_Base_DEFAULT *base.Base\n\nfunc (p *BindDatabaseToBotRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn BindDatabaseToBotRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_BindDatabaseToBotRequest = map[int16]string{\n\t1:   \"database_id\",\n\t2:   \"bot_id\",\n\t255: \"Base\",\n}\n\nfunc (p *BindDatabaseToBotRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *BindDatabaseToBotRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BindDatabaseToBotRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BindDatabaseToBotRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatabaseID = _field\n\treturn nil\n}\nfunc (p *BindDatabaseToBotRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *BindDatabaseToBotRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *BindDatabaseToBotRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BindDatabaseToBotRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BindDatabaseToBotRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatabaseID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BindDatabaseToBotRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BindDatabaseToBotRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BindDatabaseToBotRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BindDatabaseToBotRequest(%+v)\", *p)\n\n}\n\ntype BindDatabaseToBotResponse struct {\n\tCode     int64          `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewBindDatabaseToBotResponse() *BindDatabaseToBotResponse {\n\treturn &BindDatabaseToBotResponse{}\n}\n\nfunc (p *BindDatabaseToBotResponse) InitDefault() {\n}\n\nfunc (p *BindDatabaseToBotResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *BindDatabaseToBotResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar BindDatabaseToBotResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *BindDatabaseToBotResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn BindDatabaseToBotResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_BindDatabaseToBotResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *BindDatabaseToBotResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *BindDatabaseToBotResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BindDatabaseToBotResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_BindDatabaseToBotResponse[fieldId]))\n}\n\nfunc (p *BindDatabaseToBotResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *BindDatabaseToBotResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *BindDatabaseToBotResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *BindDatabaseToBotResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BindDatabaseToBotResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BindDatabaseToBotResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BindDatabaseToBotResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BindDatabaseToBotResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BindDatabaseToBotResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BindDatabaseToBotResponse(%+v)\", *p)\n\n}\n\ntype ListDatabaseRecordsRequest struct {\n\t// database_id\n\tDatabaseID int64 `thrift:\"database_id,1,required\" form:\"database_id,required\" json:\"database_id,string,required\" query:\"database_id,required\"`\n\t// bot id, here is to fill in this when looking for the draft state data associated with the bot\n\tBotID *int64 `thrift:\"bot_id,2,optional\" form:\"bot_id\" json:\"bot_id,string,omitempty\" query:\"bot_id\"`\n\t// workflow_id,, here is to fill in this when looking up wk_flow associated draft status sheet\n\tWorkflowID *int64 `thrift:\"workflow_id,3,optional\" form:\"workflow_id\" json:\"workflow_id,string,omitempty\" query:\"workflow_id\"`\n\t// Is true does not filter by user_id Records\n\tNotFilterByUserID *bool `thrift:\"not_filter_by_user_id,4,optional\" form:\"not_filter_by_user_id\" json:\"not_filter_by_user_id,omitempty\" query:\"not_filter_by_user_id\"`\n\t// Records not filtered by ConnectorID\n\tNotFilterByConnectorID *bool `thrift:\"not_filter_by_connector_id,5,optional\" form:\"not_filter_by_connector_id\" json:\"not_filter_by_connector_id,omitempty\" query:\"not_filter_by_connector_id\"`\n\t// Do you want to check the draft state or the online state?\n\tTableType TableType `thrift:\"table_type,6\" form:\"table_type\" json:\"table_type\" query:\"table_type\"`\n\t// Do not exceed 100, 50 is recommended.\n\tLimit int64 `thrift:\"limit,7\" form:\"limit\" json:\"limit\" query:\"limit\"`\n\t// Offset\n\tOffset int64 `thrift:\"offset,8\" form:\"offset\" json:\"offset\" query:\"offset\"`\n\t// Data is not isolated under the same project\n\tProjectID *int64 `thrift:\"project_id,9,optional\" form:\"project_id\" json:\"project_id,string,omitempty\" query:\"project_id\"`\n\t//filter criteria\n\tFilterCriterion *ComplexCondition `thrift:\"filter_criterion,10,optional\" form:\"filter_criterion\" json:\"filter_criterion,omitempty\" query:\"filter_criterion\"`\n\t//sort condition\n\tOrderByList []*OrderBy `thrift:\"order_by_list,11,optional\" form:\"order_by_list\" json:\"order_by_list,omitempty\" query:\"order_by_list\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewListDatabaseRecordsRequest() *ListDatabaseRecordsRequest {\n\treturn &ListDatabaseRecordsRequest{}\n}\n\nfunc (p *ListDatabaseRecordsRequest) InitDefault() {\n}\n\nfunc (p *ListDatabaseRecordsRequest) GetDatabaseID() (v int64) {\n\treturn p.DatabaseID\n}\n\nvar ListDatabaseRecordsRequest_BotID_DEFAULT int64\n\nfunc (p *ListDatabaseRecordsRequest) GetBotID() (v int64) {\n\tif !p.IsSetBotID() {\n\t\treturn ListDatabaseRecordsRequest_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar ListDatabaseRecordsRequest_WorkflowID_DEFAULT int64\n\nfunc (p *ListDatabaseRecordsRequest) GetWorkflowID() (v int64) {\n\tif !p.IsSetWorkflowID() {\n\t\treturn ListDatabaseRecordsRequest_WorkflowID_DEFAULT\n\t}\n\treturn *p.WorkflowID\n}\n\nvar ListDatabaseRecordsRequest_NotFilterByUserID_DEFAULT bool\n\nfunc (p *ListDatabaseRecordsRequest) GetNotFilterByUserID() (v bool) {\n\tif !p.IsSetNotFilterByUserID() {\n\t\treturn ListDatabaseRecordsRequest_NotFilterByUserID_DEFAULT\n\t}\n\treturn *p.NotFilterByUserID\n}\n\nvar ListDatabaseRecordsRequest_NotFilterByConnectorID_DEFAULT bool\n\nfunc (p *ListDatabaseRecordsRequest) GetNotFilterByConnectorID() (v bool) {\n\tif !p.IsSetNotFilterByConnectorID() {\n\t\treturn ListDatabaseRecordsRequest_NotFilterByConnectorID_DEFAULT\n\t}\n\treturn *p.NotFilterByConnectorID\n}\n\nfunc (p *ListDatabaseRecordsRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nfunc (p *ListDatabaseRecordsRequest) GetLimit() (v int64) {\n\treturn p.Limit\n}\n\nfunc (p *ListDatabaseRecordsRequest) GetOffset() (v int64) {\n\treturn p.Offset\n}\n\nvar ListDatabaseRecordsRequest_ProjectID_DEFAULT int64\n\nfunc (p *ListDatabaseRecordsRequest) GetProjectID() (v int64) {\n\tif !p.IsSetProjectID() {\n\t\treturn ListDatabaseRecordsRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar ListDatabaseRecordsRequest_FilterCriterion_DEFAULT *ComplexCondition\n\nfunc (p *ListDatabaseRecordsRequest) GetFilterCriterion() (v *ComplexCondition) {\n\tif !p.IsSetFilterCriterion() {\n\t\treturn ListDatabaseRecordsRequest_FilterCriterion_DEFAULT\n\t}\n\treturn p.FilterCriterion\n}\n\nvar ListDatabaseRecordsRequest_OrderByList_DEFAULT []*OrderBy\n\nfunc (p *ListDatabaseRecordsRequest) GetOrderByList() (v []*OrderBy) {\n\tif !p.IsSetOrderByList() {\n\t\treturn ListDatabaseRecordsRequest_OrderByList_DEFAULT\n\t}\n\treturn p.OrderByList\n}\n\nvar ListDatabaseRecordsRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListDatabaseRecordsRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListDatabaseRecordsRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListDatabaseRecordsRequest = map[int16]string{\n\t1:   \"database_id\",\n\t2:   \"bot_id\",\n\t3:   \"workflow_id\",\n\t4:   \"not_filter_by_user_id\",\n\t5:   \"not_filter_by_connector_id\",\n\t6:   \"table_type\",\n\t7:   \"limit\",\n\t8:   \"offset\",\n\t9:   \"project_id\",\n\t10:  \"filter_criterion\",\n\t11:  \"order_by_list\",\n\t255: \"Base\",\n}\n\nfunc (p *ListDatabaseRecordsRequest) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *ListDatabaseRecordsRequest) IsSetWorkflowID() bool {\n\treturn p.WorkflowID != nil\n}\n\nfunc (p *ListDatabaseRecordsRequest) IsSetNotFilterByUserID() bool {\n\treturn p.NotFilterByUserID != nil\n}\n\nfunc (p *ListDatabaseRecordsRequest) IsSetNotFilterByConnectorID() bool {\n\treturn p.NotFilterByConnectorID != nil\n}\n\nfunc (p *ListDatabaseRecordsRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *ListDatabaseRecordsRequest) IsSetFilterCriterion() bool {\n\treturn p.FilterCriterion != nil\n}\n\nfunc (p *ListDatabaseRecordsRequest) IsSetOrderByList() bool {\n\treturn p.OrderByList != nil\n}\n\nfunc (p *ListDatabaseRecordsRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListDatabaseRecordsRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDatabaseID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDatabaseID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDatabaseID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDatabaseRecordsRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDatabaseRecordsRequest[fieldId]))\n}\n\nfunc (p *ListDatabaseRecordsRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatabaseID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NotFilterByUserID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NotFilterByConnectorID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Limit = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Offset = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequest) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewComplexCondition()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FilterCriterion = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequest) ReadField11(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*OrderBy, 0, size)\n\tvalues := make([]OrderBy, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OrderByList = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListDatabaseRecordsRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatabaseRecordsRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDatabaseRecordsRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatabaseID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowID() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.WorkflowID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNotFilterByUserID() {\n\t\tif err = oprot.WriteFieldBegin(\"not_filter_by_user_id\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NotFilterByUserID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNotFilterByConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"not_filter_by_connector_id\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NotFilterByConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"limit\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Limit); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"offset\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Offset); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFilterCriterion() {\n\t\tif err = oprot.WriteFieldBegin(\"filter_criterion\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.FilterCriterion.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderByList() {\n\t\tif err = oprot.WriteFieldBegin(\"order_by_list\", thrift.LIST, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OrderByList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.OrderByList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDatabaseRecordsRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDatabaseRecordsRequest(%+v)\", *p)\n\n}\n\ntype ListDatabaseRecordsRequestRPC struct {\n\t// database_id\n\tDatabaseID int64 `thrift:\"database_id,1,required\" form:\"database_id,required\" json:\"database_id,string,required\" query:\"database_id,required\"`\n\t// Do you want to check the draft state or the online state?\n\tTableType TableType `thrift:\"table_type,2\" form:\"table_type\" json:\"table_type\" query:\"table_type\"`\n\t// Do not exceed 100, 50 is recommended.\n\tLimit int64 `thrift:\"limit,3\" form:\"limit\" json:\"limit\" query:\"limit\"`\n\t// Offset\n\tOffset int64 `thrift:\"offset,4\" form:\"offset\" json:\"offset\" query:\"offset\"`\n\t// user id\n\tUserID string     `thrift:\"user_id,5\" form:\"user_id\" json:\"user_id\" query:\"user_id\"`\n\tBase   *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewListDatabaseRecordsRequestRPC() *ListDatabaseRecordsRequestRPC {\n\treturn &ListDatabaseRecordsRequestRPC{}\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) InitDefault() {\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) GetDatabaseID() (v int64) {\n\treturn p.DatabaseID\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) GetLimit() (v int64) {\n\treturn p.Limit\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) GetOffset() (v int64) {\n\treturn p.Offset\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) GetUserID() (v string) {\n\treturn p.UserID\n}\n\nvar ListDatabaseRecordsRequestRPC_Base_DEFAULT *base.Base\n\nfunc (p *ListDatabaseRecordsRequestRPC) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListDatabaseRecordsRequestRPC_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListDatabaseRecordsRequestRPC = map[int16]string{\n\t1:   \"database_id\",\n\t2:   \"table_type\",\n\t3:   \"limit\",\n\t4:   \"offset\",\n\t5:   \"user_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDatabaseID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDatabaseID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDatabaseID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDatabaseRecordsRequestRPC[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDatabaseRecordsRequestRPC[fieldId]))\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatabaseID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequestRPC) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequestRPC) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Limit = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequestRPC) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Offset = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequestRPC) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsRequestRPC) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatabaseRecordsRequestRPC\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatabaseID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequestRPC) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequestRPC) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"limit\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Limit); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequestRPC) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"offset\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Offset); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequestRPC) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsRequestRPC) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDatabaseRecordsRequestRPC) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDatabaseRecordsRequestRPC(%+v)\", *p)\n\n}\n\ntype ListDatabaseRecordsResponseRPC struct {\n\tData     []map[string]string `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tHasMore  bool                `thrift:\"HasMore,2,required\" form:\"HasMore,required\" json:\"HasMore,required\" query:\"HasMore,required\"`\n\tTotalNum int32               `thrift:\"TotalNum,3,required\" form:\"TotalNum,required\" json:\"TotalNum,required\" query:\"TotalNum,required\"`\n\t// Field information\n\tFieldList []*FieldItem   `thrift:\"field_list,4\" form:\"field_list\" json:\"field_list\" query:\"field_list\"`\n\tBaseResp  *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewListDatabaseRecordsResponseRPC() *ListDatabaseRecordsResponseRPC {\n\treturn &ListDatabaseRecordsResponseRPC{\n\n\t\tHasMore: false,\n\t}\n}\n\nfunc (p *ListDatabaseRecordsResponseRPC) InitDefault() {\n\tp.HasMore = false\n}\n\nfunc (p *ListDatabaseRecordsResponseRPC) GetData() (v []map[string]string) {\n\treturn p.Data\n}\n\nfunc (p *ListDatabaseRecordsResponseRPC) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nfunc (p *ListDatabaseRecordsResponseRPC) GetTotalNum() (v int32) {\n\treturn p.TotalNum\n}\n\nfunc (p *ListDatabaseRecordsResponseRPC) GetFieldList() (v []*FieldItem) {\n\treturn p.FieldList\n}\n\nvar ListDatabaseRecordsResponseRPC_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListDatabaseRecordsResponseRPC) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListDatabaseRecordsResponseRPC_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListDatabaseRecordsResponseRPC = map[int16]string{\n\t1:   \"data\",\n\t2:   \"HasMore\",\n\t3:   \"TotalNum\",\n\t4:   \"field_list\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListDatabaseRecordsResponseRPC) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListDatabaseRecordsResponseRPC) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetHasMore bool = false\n\tvar issetTotalNum bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetHasMore = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTotalNum = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetHasMore {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTotalNum {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDatabaseRecordsResponseRPC[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDatabaseRecordsResponseRPC[fieldId]))\n}\n\nfunc (p *ListDatabaseRecordsResponseRPC) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsResponseRPC) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsResponseRPC) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TotalNum = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsResponseRPC) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*FieldItem, 0, size)\n\tvalues := make([]FieldItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FieldList = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsResponseRPC) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListDatabaseRecordsResponseRPC) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatabaseRecordsResponseRPC\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDatabaseRecordsResponseRPC) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.MAP, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range v {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsResponseRPC) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"HasMore\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsResponseRPC) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TotalNum\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TotalNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsResponseRPC) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"field_list\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.FieldList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsResponseRPC) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDatabaseRecordsResponseRPC) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDatabaseRecordsResponseRPC(%+v)\", *p)\n\n}\n\ntype ListDatabaseRecordsResponse struct {\n\tData     []map[string]string `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tHasMore  bool                `thrift:\"HasMore,2,required\" form:\"HasMore,required\" json:\"HasMore,required\" query:\"HasMore,required\"`\n\tTotalNum int32               `thrift:\"TotalNum,3,required\" form:\"TotalNum,required\" json:\"TotalNum,required\" query:\"TotalNum,required\"`\n\t// Field information\n\tFieldList []*FieldItem   `thrift:\"field_list,4,optional\" form:\"field_list\" json:\"field_list,omitempty\" query:\"field_list\"`\n\tCode      int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg       string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp  *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewListDatabaseRecordsResponse() *ListDatabaseRecordsResponse {\n\treturn &ListDatabaseRecordsResponse{\n\n\t\tHasMore: false,\n\t}\n}\n\nfunc (p *ListDatabaseRecordsResponse) InitDefault() {\n\tp.HasMore = false\n}\n\nfunc (p *ListDatabaseRecordsResponse) GetData() (v []map[string]string) {\n\treturn p.Data\n}\n\nfunc (p *ListDatabaseRecordsResponse) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nfunc (p *ListDatabaseRecordsResponse) GetTotalNum() (v int32) {\n\treturn p.TotalNum\n}\n\nvar ListDatabaseRecordsResponse_FieldList_DEFAULT []*FieldItem\n\nfunc (p *ListDatabaseRecordsResponse) GetFieldList() (v []*FieldItem) {\n\tif !p.IsSetFieldList() {\n\t\treturn ListDatabaseRecordsResponse_FieldList_DEFAULT\n\t}\n\treturn p.FieldList\n}\n\nfunc (p *ListDatabaseRecordsResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListDatabaseRecordsResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ListDatabaseRecordsResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListDatabaseRecordsResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListDatabaseRecordsResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListDatabaseRecordsResponse = map[int16]string{\n\t1:   \"data\",\n\t2:   \"HasMore\",\n\t3:   \"TotalNum\",\n\t4:   \"field_list\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListDatabaseRecordsResponse) IsSetFieldList() bool {\n\treturn p.FieldList != nil\n}\n\nfunc (p *ListDatabaseRecordsResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListDatabaseRecordsResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetHasMore bool = false\n\tvar issetTotalNum bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetHasMore = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTotalNum = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetHasMore {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTotalNum {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDatabaseRecordsResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDatabaseRecordsResponse[fieldId]))\n}\n\nfunc (p *ListDatabaseRecordsResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TotalNum = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*FieldItem, 0, size)\n\tvalues := make([]FieldItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FieldList = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListDatabaseRecordsResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListDatabaseRecordsResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatabaseRecordsResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDatabaseRecordsResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.MAP, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range v {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"HasMore\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TotalNum\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TotalNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFieldList() {\n\t\tif err = oprot.WriteFieldBegin(\"field_list\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FieldList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ListDatabaseRecordsResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDatabaseRecordsResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDatabaseRecordsResponse(%+v)\", *p)\n\n}\n\ntype UpdateDatabaseRecordsRequest struct {\n\t// database_id\n\tDatabaseID int64 `thrift:\"database_id,1,required\" form:\"database_id,required\" json:\"database_id,string,required\" query:\"database_id,required\"`\n\t// new\n\tRecordDataAdd []map[string]string `thrift:\"record_data_add,2,optional\" form:\"record_data_add\" json:\"record_data_add,omitempty\" query:\"record_data_add\"`\n\t// modified\n\tRecordDataAlter []map[string]string `thrift:\"record_data_alter,3,optional\" form:\"record_data_alter\" json:\"record_data_alter,omitempty\" query:\"record_data_alter\"`\n\t// deleted\n\tRecordDataDelete []map[string]string `thrift:\"record_data_delete,4,optional\" form:\"record_data_delete\" json:\"record_data_delete,omitempty\" query:\"record_data_delete\"`\n\t// Is the draft state or online state to be updated?\n\tTableType *TableType `thrift:\"table_type,5,optional\" form:\"table_type\" json:\"table_type,omitempty\" query:\"table_type\"`\n\t// The connector id needs to be inserted when updating.\n\tOriConnectorID *string    `thrift:\"ori_connector_id,6,optional\" form:\"ori_connector_id\" json:\"ori_connector_id,omitempty\" query:\"ori_connector_id\"`\n\tBase           *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateDatabaseRecordsRequest() *UpdateDatabaseRecordsRequest {\n\treturn &UpdateDatabaseRecordsRequest{}\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) InitDefault() {\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) GetDatabaseID() (v int64) {\n\treturn p.DatabaseID\n}\n\nvar UpdateDatabaseRecordsRequest_RecordDataAdd_DEFAULT []map[string]string\n\nfunc (p *UpdateDatabaseRecordsRequest) GetRecordDataAdd() (v []map[string]string) {\n\tif !p.IsSetRecordDataAdd() {\n\t\treturn UpdateDatabaseRecordsRequest_RecordDataAdd_DEFAULT\n\t}\n\treturn p.RecordDataAdd\n}\n\nvar UpdateDatabaseRecordsRequest_RecordDataAlter_DEFAULT []map[string]string\n\nfunc (p *UpdateDatabaseRecordsRequest) GetRecordDataAlter() (v []map[string]string) {\n\tif !p.IsSetRecordDataAlter() {\n\t\treturn UpdateDatabaseRecordsRequest_RecordDataAlter_DEFAULT\n\t}\n\treturn p.RecordDataAlter\n}\n\nvar UpdateDatabaseRecordsRequest_RecordDataDelete_DEFAULT []map[string]string\n\nfunc (p *UpdateDatabaseRecordsRequest) GetRecordDataDelete() (v []map[string]string) {\n\tif !p.IsSetRecordDataDelete() {\n\t\treturn UpdateDatabaseRecordsRequest_RecordDataDelete_DEFAULT\n\t}\n\treturn p.RecordDataDelete\n}\n\nvar UpdateDatabaseRecordsRequest_TableType_DEFAULT TableType\n\nfunc (p *UpdateDatabaseRecordsRequest) GetTableType() (v TableType) {\n\tif !p.IsSetTableType() {\n\t\treturn UpdateDatabaseRecordsRequest_TableType_DEFAULT\n\t}\n\treturn *p.TableType\n}\n\nvar UpdateDatabaseRecordsRequest_OriConnectorID_DEFAULT string\n\nfunc (p *UpdateDatabaseRecordsRequest) GetOriConnectorID() (v string) {\n\tif !p.IsSetOriConnectorID() {\n\t\treturn UpdateDatabaseRecordsRequest_OriConnectorID_DEFAULT\n\t}\n\treturn *p.OriConnectorID\n}\n\nvar UpdateDatabaseRecordsRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateDatabaseRecordsRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateDatabaseRecordsRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateDatabaseRecordsRequest = map[int16]string{\n\t1:   \"database_id\",\n\t2:   \"record_data_add\",\n\t3:   \"record_data_alter\",\n\t4:   \"record_data_delete\",\n\t5:   \"table_type\",\n\t6:   \"ori_connector_id\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) IsSetRecordDataAdd() bool {\n\treturn p.RecordDataAdd != nil\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) IsSetRecordDataAlter() bool {\n\treturn p.RecordDataAlter != nil\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) IsSetRecordDataDelete() bool {\n\treturn p.RecordDataDelete != nil\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) IsSetTableType() bool {\n\treturn p.TableType != nil\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) IsSetOriConnectorID() bool {\n\treturn p.OriConnectorID != nil\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDatabaseID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDatabaseID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDatabaseID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDatabaseRecordsRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateDatabaseRecordsRequest[fieldId]))\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatabaseID = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRecordsRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RecordDataAdd = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRecordsRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RecordDataAlter = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRecordsRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RecordDataDelete = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRecordsRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TableType(v)\n\t\t_field = &tmp\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRecordsRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OriConnectorID = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRecordsRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatabaseRecordsRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatabaseID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRecordsRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRecordDataAdd() {\n\t\tif err = oprot.WriteFieldBegin(\"record_data_add\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.MAP, len(p.RecordDataAdd)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.RecordDataAdd {\n\t\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfor k, v := range v {\n\t\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRecordsRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRecordDataAlter() {\n\t\tif err = oprot.WriteFieldBegin(\"record_data_alter\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.MAP, len(p.RecordDataAlter)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.RecordDataAlter {\n\t\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfor k, v := range v {\n\t\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRecordsRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRecordDataDelete() {\n\t\tif err = oprot.WriteFieldBegin(\"record_data_delete\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.MAP, len(p.RecordDataDelete)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.RecordDataDelete {\n\t\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfor k, v := range v {\n\t\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRecordsRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableType() {\n\t\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.TableType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRecordsRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOriConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"ori_connector_id\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OriConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRecordsRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDatabaseRecordsRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDatabaseRecordsRequest(%+v)\", *p)\n\n}\n\ntype UpdateDatabaseRecordsResponse struct {\n\tData     []map[string]string `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64               `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string              `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewUpdateDatabaseRecordsResponse() *UpdateDatabaseRecordsResponse {\n\treturn &UpdateDatabaseRecordsResponse{}\n}\n\nfunc (p *UpdateDatabaseRecordsResponse) InitDefault() {\n}\n\nfunc (p *UpdateDatabaseRecordsResponse) GetData() (v []map[string]string) {\n\treturn p.Data\n}\n\nfunc (p *UpdateDatabaseRecordsResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateDatabaseRecordsResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateDatabaseRecordsResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateDatabaseRecordsResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateDatabaseRecordsResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateDatabaseRecordsResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateDatabaseRecordsResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateDatabaseRecordsResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDatabaseRecordsResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateDatabaseRecordsResponse[fieldId]))\n}\n\nfunc (p *UpdateDatabaseRecordsResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRecordsResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRecordsResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseRecordsResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateDatabaseRecordsResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatabaseRecordsResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatabaseRecordsResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.MAP, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range v {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRecordsResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRecordsResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseRecordsResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDatabaseRecordsResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDatabaseRecordsResponse(%+v)\", *p)\n\n}\n\ntype GetOnlineDatabaseIdRequest struct {\n\t// The draft database_id\n\tID   int64      `thrift:\"id,1,required\" form:\"id,required\" json:\"id,string,required\" query:\"id,required\"`\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetOnlineDatabaseIdRequest() *GetOnlineDatabaseIdRequest {\n\treturn &GetOnlineDatabaseIdRequest{}\n}\n\nfunc (p *GetOnlineDatabaseIdRequest) InitDefault() {\n}\n\nfunc (p *GetOnlineDatabaseIdRequest) GetID() (v int64) {\n\treturn p.ID\n}\n\nvar GetOnlineDatabaseIdRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetOnlineDatabaseIdRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetOnlineDatabaseIdRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetOnlineDatabaseIdRequest = map[int16]string{\n\t1:   \"id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetOnlineDatabaseIdRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetOnlineDatabaseIdRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOnlineDatabaseIdRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetOnlineDatabaseIdRequest[fieldId]))\n}\n\nfunc (p *GetOnlineDatabaseIdRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *GetOnlineDatabaseIdRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetOnlineDatabaseIdRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnlineDatabaseIdRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOnlineDatabaseIdRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetOnlineDatabaseIdRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetOnlineDatabaseIdRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOnlineDatabaseIdRequest(%+v)\", *p)\n\n}\n\ntype GetOnlineDatabaseIdResponse struct {\n\t// Check the online id according to the id of the draft.\n\tID       *int64         `thrift:\"id,1,optional\" form:\"id\" json:\"id,string,omitempty\" query:\"id\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetOnlineDatabaseIdResponse() *GetOnlineDatabaseIdResponse {\n\treturn &GetOnlineDatabaseIdResponse{}\n}\n\nfunc (p *GetOnlineDatabaseIdResponse) InitDefault() {\n}\n\nvar GetOnlineDatabaseIdResponse_ID_DEFAULT int64\n\nfunc (p *GetOnlineDatabaseIdResponse) GetID() (v int64) {\n\tif !p.IsSetID() {\n\t\treturn GetOnlineDatabaseIdResponse_ID_DEFAULT\n\t}\n\treturn *p.ID\n}\n\nfunc (p *GetOnlineDatabaseIdResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetOnlineDatabaseIdResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetOnlineDatabaseIdResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetOnlineDatabaseIdResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetOnlineDatabaseIdResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetOnlineDatabaseIdResponse = map[int16]string{\n\t1:   \"id\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetOnlineDatabaseIdResponse) IsSetID() bool {\n\treturn p.ID != nil\n}\n\nfunc (p *GetOnlineDatabaseIdResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetOnlineDatabaseIdResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOnlineDatabaseIdResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetOnlineDatabaseIdResponse[fieldId]))\n}\n\nfunc (p *GetOnlineDatabaseIdResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *GetOnlineDatabaseIdResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetOnlineDatabaseIdResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetOnlineDatabaseIdResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetOnlineDatabaseIdResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOnlineDatabaseIdResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOnlineDatabaseIdResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetID() {\n\t\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetOnlineDatabaseIdResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetOnlineDatabaseIdResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetOnlineDatabaseIdResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetOnlineDatabaseIdResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOnlineDatabaseIdResponse(%+v)\", *p)\n\n}\n\ntype BotTable struct {\n\t// Autoincrement id, table id\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\t// Related id bot_id\n\tBotID int64 `thrift:\"bot_id,2\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\t// table_id\n\tTableID string `thrift:\"table_id,3\" form:\"table_id\" json:\"table_id\" query:\"table_id\"`\n\t// table name\n\tTableName string `thrift:\"table_name,4\" form:\"table_name\" json:\"table_name\" query:\"table_name\"`\n\t// table description\n\tTableDesc string `thrift:\"table_desc,5\" form:\"table_desc\" json:\"table_desc\" query:\"table_desc\"`\n\t// status\n\tStatus BotTableStatus `thrift:\"status,6\" form:\"status\" json:\"status\" query:\"status\"`\n\t// Creating the ID.\n\tCreatorID int64 `thrift:\"creator_id,7\" form:\"creator_id\" json:\"creator_id\" query:\"creator_id\"`\n\t// create_time\n\tCreateTime int64 `thrift:\"create_time,8\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\t// update time\n\tUpdateTime int64 `thrift:\"update_time,9\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\t// Field information\n\tFieldList []*FieldItem `thrift:\"field_list,10\" form:\"field_list\" json:\"field_list\" query:\"field_list\"`\n\t// Data table actual name\n\tActualTableName string `thrift:\"actual_table_name,11\" form:\"actual_table_name\" json:\"actual_table_name\" query:\"actual_table_name\"`\n\t// read and write mode\n\tRwMode BotTableRWMode `thrift:\"rw_mode,12\" form:\"rw_mode\" json:\"rw_mode\" query:\"rw_mode\"`\n\t// extended information\n\tExtraInfo map[string]string `thrift:\"extra_info,13,optional\" form:\"extra_info\" json:\"extra_info,omitempty\" query:\"extra_info\"`\n}\n\nfunc NewBotTable() *BotTable {\n\treturn &BotTable{}\n}\n\nfunc (p *BotTable) InitDefault() {\n}\n\nfunc (p *BotTable) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *BotTable) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *BotTable) GetTableID() (v string) {\n\treturn p.TableID\n}\n\nfunc (p *BotTable) GetTableName() (v string) {\n\treturn p.TableName\n}\n\nfunc (p *BotTable) GetTableDesc() (v string) {\n\treturn p.TableDesc\n}\n\nfunc (p *BotTable) GetStatus() (v BotTableStatus) {\n\treturn p.Status\n}\n\nfunc (p *BotTable) GetCreatorID() (v int64) {\n\treturn p.CreatorID\n}\n\nfunc (p *BotTable) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *BotTable) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nfunc (p *BotTable) GetFieldList() (v []*FieldItem) {\n\treturn p.FieldList\n}\n\nfunc (p *BotTable) GetActualTableName() (v string) {\n\treturn p.ActualTableName\n}\n\nfunc (p *BotTable) GetRwMode() (v BotTableRWMode) {\n\treturn p.RwMode\n}\n\nvar BotTable_ExtraInfo_DEFAULT map[string]string\n\nfunc (p *BotTable) GetExtraInfo() (v map[string]string) {\n\tif !p.IsSetExtraInfo() {\n\t\treturn BotTable_ExtraInfo_DEFAULT\n\t}\n\treturn p.ExtraInfo\n}\n\nvar fieldIDToName_BotTable = map[int16]string{\n\t1:  \"id\",\n\t2:  \"bot_id\",\n\t3:  \"table_id\",\n\t4:  \"table_name\",\n\t5:  \"table_desc\",\n\t6:  \"status\",\n\t7:  \"creator_id\",\n\t8:  \"create_time\",\n\t9:  \"update_time\",\n\t10: \"field_list\",\n\t11: \"actual_table_name\",\n\t12: \"rw_mode\",\n\t13: \"extra_info\",\n}\n\nfunc (p *BotTable) IsSetExtraInfo() bool {\n\treturn p.ExtraInfo != nil\n}\n\nfunc (p *BotTable) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotTable[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotTable) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableID = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableName = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableDesc = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field BotTableStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotTableStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField10(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*FieldItem, 0, size)\n\tvalues := make([]FieldItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FieldList = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ActualTableName = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field BotTableRWMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotTableRWMode(v)\n\t}\n\tp.RwMode = _field\n\treturn nil\n}\nfunc (p *BotTable) ReadField13(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ExtraInfo = _field\n\treturn nil\n}\n\nfunc (p *BotTable) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotTable\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotTable) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotTable) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotTable) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TableID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotTable) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TableName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BotTable) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_desc\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TableDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BotTable) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *BotTable) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator_id\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *BotTable) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *BotTable) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *BotTable) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"field_list\", thrift.LIST, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.FieldList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *BotTable) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"actual_table_name\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ActualTableName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *BotTable) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"rw_mode\", thrift.I32, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.RwMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *BotTable) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExtraInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"extra_info\", thrift.MAP, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.ExtraInfo)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ExtraInfo {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *BotTable) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotTable(%+v)\", *p)\n\n}\n\ntype InsertBotTableRequest struct {\n\t// Save table information\n\tBotTable *BotTable  `thrift:\"bot_table,1\" form:\"bot_table\" json:\"bot_table\" query:\"bot_table\"`\n\tBase     *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewInsertBotTableRequest() *InsertBotTableRequest {\n\treturn &InsertBotTableRequest{}\n}\n\nfunc (p *InsertBotTableRequest) InitDefault() {\n}\n\nvar InsertBotTableRequest_BotTable_DEFAULT *BotTable\n\nfunc (p *InsertBotTableRequest) GetBotTable() (v *BotTable) {\n\tif !p.IsSetBotTable() {\n\t\treturn InsertBotTableRequest_BotTable_DEFAULT\n\t}\n\treturn p.BotTable\n}\n\nvar InsertBotTableRequest_Base_DEFAULT *base.Base\n\nfunc (p *InsertBotTableRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn InsertBotTableRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_InsertBotTableRequest = map[int16]string{\n\t1:   \"bot_table\",\n\t255: \"Base\",\n}\n\nfunc (p *InsertBotTableRequest) IsSetBotTable() bool {\n\treturn p.BotTable != nil\n}\n\nfunc (p *InsertBotTableRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *InsertBotTableRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_InsertBotTableRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *InsertBotTableRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBotTable()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotTable = _field\n\treturn nil\n}\nfunc (p *InsertBotTableRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *InsertBotTableRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"InsertBotTableRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *InsertBotTableRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_table\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BotTable.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *InsertBotTableRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *InsertBotTableRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"InsertBotTableRequest(%+v)\", *p)\n\n}\n\ntype InsertBotTableResponse struct {\n\t// table id\n\tTableID  int64          `thrift:\"table_id,1\" form:\"table_id\" json:\"table_id,string\" query:\"table_id\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewInsertBotTableResponse() *InsertBotTableResponse {\n\treturn &InsertBotTableResponse{}\n}\n\nfunc (p *InsertBotTableResponse) InitDefault() {\n}\n\nfunc (p *InsertBotTableResponse) GetTableID() (v int64) {\n\treturn p.TableID\n}\n\nvar InsertBotTableResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *InsertBotTableResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn InsertBotTableResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_InsertBotTableResponse = map[int16]string{\n\t1:   \"table_id\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *InsertBotTableResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *InsertBotTableResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_InsertBotTableResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_InsertBotTableResponse[fieldId]))\n}\n\nfunc (p *InsertBotTableResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableID = _field\n\treturn nil\n}\nfunc (p *InsertBotTableResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *InsertBotTableResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"InsertBotTableResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *InsertBotTableResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TableID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *InsertBotTableResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *InsertBotTableResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"InsertBotTableResponse(%+v)\", *p)\n\n}\n\ntype AlterBotTableRequest struct {\n\t// Modify table information\n\tBotTable *BotTable  `thrift:\"bot_table,1\" form:\"bot_table\" json:\"bot_table\" query:\"bot_table\"`\n\tBase     *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewAlterBotTableRequest() *AlterBotTableRequest {\n\treturn &AlterBotTableRequest{}\n}\n\nfunc (p *AlterBotTableRequest) InitDefault() {\n}\n\nvar AlterBotTableRequest_BotTable_DEFAULT *BotTable\n\nfunc (p *AlterBotTableRequest) GetBotTable() (v *BotTable) {\n\tif !p.IsSetBotTable() {\n\t\treturn AlterBotTableRequest_BotTable_DEFAULT\n\t}\n\treturn p.BotTable\n}\n\nvar AlterBotTableRequest_Base_DEFAULT *base.Base\n\nfunc (p *AlterBotTableRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn AlterBotTableRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_AlterBotTableRequest = map[int16]string{\n\t1:   \"bot_table\",\n\t255: \"Base\",\n}\n\nfunc (p *AlterBotTableRequest) IsSetBotTable() bool {\n\treturn p.BotTable != nil\n}\n\nfunc (p *AlterBotTableRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *AlterBotTableRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AlterBotTableRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AlterBotTableRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBotTable()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotTable = _field\n\treturn nil\n}\nfunc (p *AlterBotTableRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *AlterBotTableRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AlterBotTableRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AlterBotTableRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_table\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BotTable.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AlterBotTableRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *AlterBotTableRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AlterBotTableRequest(%+v)\", *p)\n\n}\n\ntype AlterBotTableResponse struct {\n\t// table id\n\tTableID  int64          `thrift:\"table_id,1\" form:\"table_id\" json:\"table_id,string\" query:\"table_id\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewAlterBotTableResponse() *AlterBotTableResponse {\n\treturn &AlterBotTableResponse{}\n}\n\nfunc (p *AlterBotTableResponse) InitDefault() {\n}\n\nfunc (p *AlterBotTableResponse) GetTableID() (v int64) {\n\treturn p.TableID\n}\n\nvar AlterBotTableResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *AlterBotTableResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn AlterBotTableResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_AlterBotTableResponse = map[int16]string{\n\t1:   \"table_id\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *AlterBotTableResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *AlterBotTableResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AlterBotTableResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_AlterBotTableResponse[fieldId]))\n}\n\nfunc (p *AlterBotTableResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableID = _field\n\treturn nil\n}\nfunc (p *AlterBotTableResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *AlterBotTableResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AlterBotTableResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AlterBotTableResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TableID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AlterBotTableResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *AlterBotTableResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AlterBotTableResponse(%+v)\", *p)\n\n}\n\ntype DeleteBotTableRequest struct {\n\tRelatedID int64      `thrift:\"related_id,1,required\" form:\"related_id,required\" json:\"related_id,string,required\" query:\"related_id,required\"`\n\tTableID   int64      `thrift:\"table_id,2,required\" form:\"table_id,required\" json:\"table_id,string,required\" query:\"table_id,required\"`\n\tUserID    *int64     `thrift:\"user_id,3,optional\" form:\"user_id\" json:\"user_id,omitempty\" query:\"user_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteBotTableRequest() *DeleteBotTableRequest {\n\treturn &DeleteBotTableRequest{}\n}\n\nfunc (p *DeleteBotTableRequest) InitDefault() {\n}\n\nfunc (p *DeleteBotTableRequest) GetRelatedID() (v int64) {\n\treturn p.RelatedID\n}\n\nfunc (p *DeleteBotTableRequest) GetTableID() (v int64) {\n\treturn p.TableID\n}\n\nvar DeleteBotTableRequest_UserID_DEFAULT int64\n\nfunc (p *DeleteBotTableRequest) GetUserID() (v int64) {\n\tif !p.IsSetUserID() {\n\t\treturn DeleteBotTableRequest_UserID_DEFAULT\n\t}\n\treturn *p.UserID\n}\n\nvar DeleteBotTableRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteBotTableRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteBotTableRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteBotTableRequest = map[int16]string{\n\t1:   \"related_id\",\n\t2:   \"table_id\",\n\t3:   \"user_id\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteBotTableRequest) IsSetUserID() bool {\n\treturn p.UserID != nil\n}\n\nfunc (p *DeleteBotTableRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteBotTableRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetRelatedID bool = false\n\tvar issetTableID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetRelatedID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetRelatedID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTableID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteBotTableRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteBotTableRequest[fieldId]))\n}\n\nfunc (p *DeleteBotTableRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RelatedID = _field\n\treturn nil\n}\nfunc (p *DeleteBotTableRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableID = _field\n\treturn nil\n}\nfunc (p *DeleteBotTableRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *DeleteBotTableRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteBotTableRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteBotTableRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteBotTableRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"related_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.RelatedID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteBotTableRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TableID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteBotTableRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserID() {\n\t\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.UserID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DeleteBotTableRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteBotTableRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteBotTableRequest(%+v)\", *p)\n\n}\n\ntype DeleteBotTableResponse struct {\n\t// table id\n\tTableID  int64          `thrift:\"table_id,1\" form:\"table_id\" json:\"table_id,string\" query:\"table_id\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewDeleteBotTableResponse() *DeleteBotTableResponse {\n\treturn &DeleteBotTableResponse{}\n}\n\nfunc (p *DeleteBotTableResponse) InitDefault() {\n}\n\nfunc (p *DeleteBotTableResponse) GetTableID() (v int64) {\n\treturn p.TableID\n}\n\nvar DeleteBotTableResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteBotTableResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteBotTableResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteBotTableResponse = map[int16]string{\n\t1:   \"table_id\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteBotTableResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteBotTableResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteBotTableResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteBotTableResponse[fieldId]))\n}\n\nfunc (p *DeleteBotTableResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableID = _field\n\treturn nil\n}\nfunc (p *DeleteBotTableResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteBotTableResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteBotTableResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteBotTableResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TableID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteBotTableResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteBotTableResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteBotTableResponse(%+v)\", *p)\n\n}\n\ntype GetBotTableRequest struct {\n\tCreatorID *int64     `thrift:\"creator_id,1,optional\" form:\"creator_id\" json:\"creator_id,omitempty\" query:\"creator_id\"`\n\tBotID     *int64     `thrift:\"bot_id,2,optional\" form:\"bot_id\" json:\"bot_id,string,omitempty\" query:\"bot_id\"`\n\tTableIds  []int64    `thrift:\"table_ids,3,optional\" form:\"table_ids\" json:\"table_ids,string,omitempty\" query:\"table_ids\"`\n\tTableType TableType  `thrift:\"table_type,4,required\" form:\"table_type,required\" json:\"table_type,required\" query:\"table_type,required\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetBotTableRequest() *GetBotTableRequest {\n\treturn &GetBotTableRequest{}\n}\n\nfunc (p *GetBotTableRequest) InitDefault() {\n}\n\nvar GetBotTableRequest_CreatorID_DEFAULT int64\n\nfunc (p *GetBotTableRequest) GetCreatorID() (v int64) {\n\tif !p.IsSetCreatorID() {\n\t\treturn GetBotTableRequest_CreatorID_DEFAULT\n\t}\n\treturn *p.CreatorID\n}\n\nvar GetBotTableRequest_BotID_DEFAULT int64\n\nfunc (p *GetBotTableRequest) GetBotID() (v int64) {\n\tif !p.IsSetBotID() {\n\t\treturn GetBotTableRequest_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar GetBotTableRequest_TableIds_DEFAULT []int64\n\nfunc (p *GetBotTableRequest) GetTableIds() (v []int64) {\n\tif !p.IsSetTableIds() {\n\t\treturn GetBotTableRequest_TableIds_DEFAULT\n\t}\n\treturn p.TableIds\n}\n\nfunc (p *GetBotTableRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nvar GetBotTableRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetBotTableRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetBotTableRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetBotTableRequest = map[int16]string{\n\t1:   \"creator_id\",\n\t2:   \"bot_id\",\n\t3:   \"table_ids\",\n\t4:   \"table_type\",\n\t255: \"Base\",\n}\n\nfunc (p *GetBotTableRequest) IsSetCreatorID() bool {\n\treturn p.CreatorID != nil\n}\n\nfunc (p *GetBotTableRequest) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *GetBotTableRequest) IsSetTableIds() bool {\n\treturn p.TableIds != nil\n}\n\nfunc (p *GetBotTableRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetBotTableRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetTableType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetTableType {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetBotTableRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetBotTableRequest[fieldId]))\n}\n\nfunc (p *GetBotTableRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *GetBotTableRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetBotTableRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableIds = _field\n\treturn nil\n}\nfunc (p *GetBotTableRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *GetBotTableRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetBotTableRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotTableRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetBotTableRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatorID() {\n\t\tif err = oprot.WriteFieldBegin(\"creator_id\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreatorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetBotTableRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetBotTableRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableIds() {\n\t\tif err = oprot.WriteFieldBegin(\"table_ids\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I64, len(p.TableIds)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.TableIds {\n\t\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetBotTableRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetBotTableRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetBotTableRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetBotTableRequest(%+v)\", *p)\n\n}\n\ntype GetBotTableResponse struct {\n\tBotTableList []*BotTable    `thrift:\"BotTableList,1\" form:\"BotTableList\" json:\"BotTableList\" query:\"BotTableList\"`\n\tCode         int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg          string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp     *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetBotTableResponse() *GetBotTableResponse {\n\treturn &GetBotTableResponse{}\n}\n\nfunc (p *GetBotTableResponse) InitDefault() {\n}\n\nfunc (p *GetBotTableResponse) GetBotTableList() (v []*BotTable) {\n\treturn p.BotTableList\n}\n\nfunc (p *GetBotTableResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetBotTableResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetBotTableResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetBotTableResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetBotTableResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetBotTableResponse = map[int16]string{\n\t1:   \"BotTableList\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetBotTableResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetBotTableResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetBotTableResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetBotTableResponse[fieldId]))\n}\n\nfunc (p *GetBotTableResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*BotTable, 0, size)\n\tvalues := make([]BotTable, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BotTableList = _field\n\treturn nil\n}\nfunc (p *GetBotTableResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetBotTableResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetBotTableResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetBotTableResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotTableResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetBotTableResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotTableList\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.BotTableList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.BotTableList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetBotTableResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetBotTableResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetBotTableResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetBotTableResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetBotTableResponse(%+v)\", *p)\n\n}\n\ntype CopyDatabaseRequest struct {\n\t//ID generator generation\n\tIdempotentId string `thrift:\"IdempotentId,1,required\" form:\"IdempotentId,required\" json:\"IdempotentId,required\" query:\"IdempotentId,required\"`\n\t//Original tableId\n\tTableIds  []int64    `thrift:\"TableIds,2,required\" form:\"TableIds,required\" json:\"TableIds,required\" query:\"TableIds,required\"`\n\tToSpaceId int64      `thrift:\"ToSpaceId,3,required\" form:\"ToSpaceId,required\" json:\"ToSpaceId,required\" query:\"ToSpaceId,required\"`\n\tToUserId  int64      `thrift:\"ToUserId,4,required\" form:\"ToUserId,required\" json:\"ToUserId,required\" query:\"ToUserId,required\"`\n\tToBotId   int64      `thrift:\"ToBotId,5,required\" form:\"ToBotId,required\" json:\"ToBotId,required\" query:\"ToBotId,required\"`\n\tTableType TableType  `thrift:\"table_type,6,required\" form:\"table_type,required\" json:\"table_type,required\" query:\"table_type,required\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCopyDatabaseRequest() *CopyDatabaseRequest {\n\treturn &CopyDatabaseRequest{}\n}\n\nfunc (p *CopyDatabaseRequest) InitDefault() {\n}\n\nfunc (p *CopyDatabaseRequest) GetIdempotentId() (v string) {\n\treturn p.IdempotentId\n}\n\nfunc (p *CopyDatabaseRequest) GetTableIds() (v []int64) {\n\treturn p.TableIds\n}\n\nfunc (p *CopyDatabaseRequest) GetToSpaceId() (v int64) {\n\treturn p.ToSpaceId\n}\n\nfunc (p *CopyDatabaseRequest) GetToUserId() (v int64) {\n\treturn p.ToUserId\n}\n\nfunc (p *CopyDatabaseRequest) GetToBotId() (v int64) {\n\treturn p.ToBotId\n}\n\nfunc (p *CopyDatabaseRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nvar CopyDatabaseRequest_Base_DEFAULT *base.Base\n\nfunc (p *CopyDatabaseRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CopyDatabaseRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CopyDatabaseRequest = map[int16]string{\n\t1:   \"IdempotentId\",\n\t2:   \"TableIds\",\n\t3:   \"ToSpaceId\",\n\t4:   \"ToUserId\",\n\t5:   \"ToBotId\",\n\t6:   \"table_type\",\n\t255: \"Base\",\n}\n\nfunc (p *CopyDatabaseRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CopyDatabaseRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetIdempotentId bool = false\n\tvar issetTableIds bool = false\n\tvar issetToSpaceId bool = false\n\tvar issetToUserId bool = false\n\tvar issetToBotId bool = false\n\tvar issetTableType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetIdempotentId = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableIds = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetToSpaceId = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetToUserId = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetToBotId = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetIdempotentId {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTableIds {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetToSpaceId {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetToUserId {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetToBotId {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTableType {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CopyDatabaseRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CopyDatabaseRequest[fieldId]))\n}\n\nfunc (p *CopyDatabaseRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IdempotentId = _field\n\treturn nil\n}\nfunc (p *CopyDatabaseRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableIds = _field\n\treturn nil\n}\nfunc (p *CopyDatabaseRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ToSpaceId = _field\n\treturn nil\n}\nfunc (p *CopyDatabaseRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ToUserId = _field\n\treturn nil\n}\nfunc (p *CopyDatabaseRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ToBotId = _field\n\treturn nil\n}\nfunc (p *CopyDatabaseRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *CopyDatabaseRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CopyDatabaseRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyDatabaseRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CopyDatabaseRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IdempotentId\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IdempotentId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CopyDatabaseRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TableIds\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I64, len(p.TableIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.TableIds {\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CopyDatabaseRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ToSpaceId\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ToSpaceId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CopyDatabaseRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ToUserId\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ToUserId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CopyDatabaseRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ToBotId\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ToBotId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *CopyDatabaseRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *CopyDatabaseRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CopyDatabaseRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CopyDatabaseRequest(%+v)\", *p)\n\n}\n\ntype CopyDatabaseResponse struct {\n\tTableIdsMapping map[int64]int64 `thrift:\"TableIdsMapping,1,required\" form:\"TableIdsMapping,required\" json:\"TableIdsMapping,required\" query:\"TableIdsMapping,required\"`\n\tBaseResp        *base.BaseResp  `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCopyDatabaseResponse() *CopyDatabaseResponse {\n\treturn &CopyDatabaseResponse{}\n}\n\nfunc (p *CopyDatabaseResponse) InitDefault() {\n}\n\nfunc (p *CopyDatabaseResponse) GetTableIdsMapping() (v map[int64]int64) {\n\treturn p.TableIdsMapping\n}\n\nvar CopyDatabaseResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CopyDatabaseResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CopyDatabaseResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CopyDatabaseResponse = map[int16]string{\n\t1:   \"TableIdsMapping\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CopyDatabaseResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CopyDatabaseResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetTableIdsMapping bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableIdsMapping = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetTableIdsMapping {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CopyDatabaseResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CopyDatabaseResponse[fieldId]))\n}\n\nfunc (p *CopyDatabaseResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]int64, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableIdsMapping = _field\n\treturn nil\n}\nfunc (p *CopyDatabaseResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CopyDatabaseResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyDatabaseResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CopyDatabaseResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TableIdsMapping\", thrift.MAP, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I64, thrift.I64, len(p.TableIdsMapping)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.TableIdsMapping {\n\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CopyDatabaseResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CopyDatabaseResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CopyDatabaseResponse(%+v)\", *p)\n\n}\n\ntype CopyDatabaseRollbackRequest struct {\n\t// ID generator generation\n\tIdempotentId string `thrift:\"IdempotentId,1,required\" form:\"IdempotentId,required\" json:\"IdempotentId,required\" query:\"IdempotentId,required\"`\n\t// Parameters returned CopyDatabaseResponse\n\tTableIdsMapping map[int64]int64 `thrift:\"TableIdsMapping,2,required\" form:\"TableIdsMapping,required\" json:\"TableIdsMapping,required\" query:\"TableIdsMapping,required\"`\n\tBase            *base.Base      `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCopyDatabaseRollbackRequest() *CopyDatabaseRollbackRequest {\n\treturn &CopyDatabaseRollbackRequest{}\n}\n\nfunc (p *CopyDatabaseRollbackRequest) InitDefault() {\n}\n\nfunc (p *CopyDatabaseRollbackRequest) GetIdempotentId() (v string) {\n\treturn p.IdempotentId\n}\n\nfunc (p *CopyDatabaseRollbackRequest) GetTableIdsMapping() (v map[int64]int64) {\n\treturn p.TableIdsMapping\n}\n\nvar CopyDatabaseRollbackRequest_Base_DEFAULT *base.Base\n\nfunc (p *CopyDatabaseRollbackRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CopyDatabaseRollbackRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CopyDatabaseRollbackRequest = map[int16]string{\n\t1:   \"IdempotentId\",\n\t2:   \"TableIdsMapping\",\n\t255: \"Base\",\n}\n\nfunc (p *CopyDatabaseRollbackRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CopyDatabaseRollbackRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetIdempotentId bool = false\n\tvar issetTableIdsMapping bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetIdempotentId = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableIdsMapping = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetIdempotentId {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTableIdsMapping {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CopyDatabaseRollbackRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CopyDatabaseRollbackRequest[fieldId]))\n}\n\nfunc (p *CopyDatabaseRollbackRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IdempotentId = _field\n\treturn nil\n}\nfunc (p *CopyDatabaseRollbackRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]int64, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableIdsMapping = _field\n\treturn nil\n}\nfunc (p *CopyDatabaseRollbackRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CopyDatabaseRollbackRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyDatabaseRollbackRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CopyDatabaseRollbackRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IdempotentId\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IdempotentId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CopyDatabaseRollbackRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TableIdsMapping\", thrift.MAP, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I64, thrift.I64, len(p.TableIdsMapping)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.TableIdsMapping {\n\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CopyDatabaseRollbackRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CopyDatabaseRollbackRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CopyDatabaseRollbackRequest(%+v)\", *p)\n\n}\n\ntype CopyDatabaseRollbackResponce struct {\n\tResult   bool           `thrift:\"Result,1,required\" form:\"Result,required\" json:\"Result,required\" query:\"Result,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCopyDatabaseRollbackResponce() *CopyDatabaseRollbackResponce {\n\treturn &CopyDatabaseRollbackResponce{}\n}\n\nfunc (p *CopyDatabaseRollbackResponce) InitDefault() {\n}\n\nfunc (p *CopyDatabaseRollbackResponce) GetResult() (v bool) {\n\treturn p.Result\n}\n\nvar CopyDatabaseRollbackResponce_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CopyDatabaseRollbackResponce) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CopyDatabaseRollbackResponce_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CopyDatabaseRollbackResponce = map[int16]string{\n\t1:   \"Result\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CopyDatabaseRollbackResponce) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CopyDatabaseRollbackResponce) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetResult bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetResult = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetResult {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CopyDatabaseRollbackResponce[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CopyDatabaseRollbackResponce[fieldId]))\n}\n\nfunc (p *CopyDatabaseRollbackResponce) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Result = _field\n\treturn nil\n}\nfunc (p *CopyDatabaseRollbackResponce) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CopyDatabaseRollbackResponce) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyDatabaseRollbackResponce\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CopyDatabaseRollbackResponce) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Result\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Result); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CopyDatabaseRollbackResponce) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CopyDatabaseRollbackResponce) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CopyDatabaseRollbackResponce(%+v)\", *p)\n\n}\n\ntype GetNL2SQLRequest struct {\n\t// Natural language description of database requests\n\tText string `thrift:\"text,1,required\" form:\"text,required\" json:\"text,required\" query:\"text,required\"`\n\t// bot id\n\tBotID int64 `thrift:\"bot_id,2,required\" form:\"bot_id,required\" json:\"bot_id,required\" query:\"bot_id,required\"`\n\t// line of business id\n\tConnectorID *int64 `thrift:\"connector_id,3,optional\" form:\"connector_id\" json:\"connector_id,omitempty\" query:\"connector_id\"`\n\t// line of business user id\n\tConnectorUID *string `thrift:\"connector_uid,4,optional\" form:\"connector_uid\" json:\"connector_uid,omitempty\" query:\"connector_uid\"`\n\t// Table types, draft and online\n\tTableType TableType `thrift:\"table_type,5,required\" form:\"table_type,required\" json:\"table_type,required\" query:\"table_type,required\"`\n\t// Database ID\n\tDatabaseID *int64     `thrift:\"database_id,6,optional\" form:\"database_id\" json:\"database_id,string,omitempty\" query:\"database_id\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetNL2SQLRequest() *GetNL2SQLRequest {\n\treturn &GetNL2SQLRequest{}\n}\n\nfunc (p *GetNL2SQLRequest) InitDefault() {\n}\n\nfunc (p *GetNL2SQLRequest) GetText() (v string) {\n\treturn p.Text\n}\n\nfunc (p *GetNL2SQLRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar GetNL2SQLRequest_ConnectorID_DEFAULT int64\n\nfunc (p *GetNL2SQLRequest) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn GetNL2SQLRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar GetNL2SQLRequest_ConnectorUID_DEFAULT string\n\nfunc (p *GetNL2SQLRequest) GetConnectorUID() (v string) {\n\tif !p.IsSetConnectorUID() {\n\t\treturn GetNL2SQLRequest_ConnectorUID_DEFAULT\n\t}\n\treturn *p.ConnectorUID\n}\n\nfunc (p *GetNL2SQLRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nvar GetNL2SQLRequest_DatabaseID_DEFAULT int64\n\nfunc (p *GetNL2SQLRequest) GetDatabaseID() (v int64) {\n\tif !p.IsSetDatabaseID() {\n\t\treturn GetNL2SQLRequest_DatabaseID_DEFAULT\n\t}\n\treturn *p.DatabaseID\n}\n\nvar GetNL2SQLRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetNL2SQLRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetNL2SQLRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetNL2SQLRequest = map[int16]string{\n\t1:   \"text\",\n\t2:   \"bot_id\",\n\t3:   \"connector_id\",\n\t4:   \"connector_uid\",\n\t5:   \"table_type\",\n\t6:   \"database_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetNL2SQLRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *GetNL2SQLRequest) IsSetConnectorUID() bool {\n\treturn p.ConnectorUID != nil\n}\n\nfunc (p *GetNL2SQLRequest) IsSetDatabaseID() bool {\n\treturn p.DatabaseID != nil\n}\n\nfunc (p *GetNL2SQLRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetNL2SQLRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetText bool = false\n\tvar issetBotID bool = false\n\tvar issetTableType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetText = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetText {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTableType {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetNL2SQLRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetNL2SQLRequest[fieldId]))\n}\n\nfunc (p *GetNL2SQLRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Text = _field\n\treturn nil\n}\nfunc (p *GetNL2SQLRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetNL2SQLRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *GetNL2SQLRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorUID = _field\n\treturn nil\n}\nfunc (p *GetNL2SQLRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *GetNL2SQLRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DatabaseID = _field\n\treturn nil\n}\nfunc (p *GetNL2SQLRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetNL2SQLRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetNL2SQLRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetNL2SQLRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"text\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Text); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetNL2SQLRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetNL2SQLRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetNL2SQLRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorUID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_uid\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorUID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetNL2SQLRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetNL2SQLRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDatabaseID() {\n\t\tif err = oprot.WriteFieldBegin(\"database_id\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.DatabaseID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetNL2SQLRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetNL2SQLRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetNL2SQLRequest(%+v)\", *p)\n\n}\n\ntype GetNL2SQLResponse struct {\n\tCode     int32             `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string            `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tSQL      string            `thrift:\"sql,3,required\" form:\"sql,required\" json:\"sql,required\" query:\"sql,required\"`\n\tExtraMap map[string]string `thrift:\"extraMap,4,optional\" form:\"extraMap\" json:\"extraMap,omitempty\" query:\"extraMap\"`\n\tBaseResp *base.BaseResp    `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetNL2SQLResponse() *GetNL2SQLResponse {\n\treturn &GetNL2SQLResponse{}\n}\n\nfunc (p *GetNL2SQLResponse) InitDefault() {\n}\n\nfunc (p *GetNL2SQLResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetNL2SQLResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetNL2SQLResponse) GetSQL() (v string) {\n\treturn p.SQL\n}\n\nvar GetNL2SQLResponse_ExtraMap_DEFAULT map[string]string\n\nfunc (p *GetNL2SQLResponse) GetExtraMap() (v map[string]string) {\n\tif !p.IsSetExtraMap() {\n\t\treturn GetNL2SQLResponse_ExtraMap_DEFAULT\n\t}\n\treturn p.ExtraMap\n}\n\nvar GetNL2SQLResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetNL2SQLResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetNL2SQLResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetNL2SQLResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"sql\",\n\t4:   \"extraMap\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetNL2SQLResponse) IsSetExtraMap() bool {\n\treturn p.ExtraMap != nil\n}\n\nfunc (p *GetNL2SQLResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetNL2SQLResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSQL bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSQL = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSQL {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetNL2SQLResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetNL2SQLResponse[fieldId]))\n}\n\nfunc (p *GetNL2SQLResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetNL2SQLResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetNL2SQLResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SQL = _field\n\treturn nil\n}\nfunc (p *GetNL2SQLResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ExtraMap = _field\n\treturn nil\n}\nfunc (p *GetNL2SQLResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetNL2SQLResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetNL2SQLResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetNL2SQLResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetNL2SQLResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetNL2SQLResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sql\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SQL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetNL2SQLResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExtraMap() {\n\t\tif err = oprot.WriteFieldBegin(\"extraMap\", thrift.MAP, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.ExtraMap)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ExtraMap {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetNL2SQLResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetNL2SQLResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetNL2SQLResponse(%+v)\", *p)\n\n}\n\ntype ResetBotTableRequest struct {\n\tCreatorID *int64    `thrift:\"creator_id,1,optional\" form:\"creator_id\" json:\"creator_id,string,omitempty\" query:\"creator_id\"`\n\tBotID     *int64    `thrift:\"bot_id,2,optional\" form:\"bot_id\" json:\"bot_id,string,omitempty\" query:\"bot_id\"`\n\tTableID   *int64    `thrift:\"table_id,3,optional\" form:\"table_id\" json:\"table_id,string,omitempty\" query:\"table_id\"`\n\tTableType TableType `thrift:\"table_type,4,required\" form:\"table_type,required\" json:\"table_type,required\" query:\"table_type,required\"`\n\t// line of business id\n\tConnectorID *int64 `thrift:\"connector_id,5,optional\" form:\"connector_id\" json:\"connector_id,omitempty\" query:\"connector_id\"`\n\t// line of business user id\n\tConnectorUID *string `thrift:\"connector_uid,6,optional\" form:\"connector_uid\" json:\"connector_uid,omitempty\" query:\"connector_uid\"`\n\t// Workflow ID\n\tWorkflowID *int64 `thrift:\"workflow_id,7,optional\" form:\"workflow_id\" json:\"workflow_id,string,omitempty\" query:\"workflow_id\"`\n\t// user id\n\tDatabaseInfoID *int64 `thrift:\"database_info_id,8,optional\" form:\"database_info_id\" json:\"database_info_id,string,omitempty\" query:\"database_info_id\"`\n\t// Project ID\n\tProjectID *int64     `thrift:\"project_id,9,optional\" form:\"project_id\" json:\"project_id,string,omitempty\" query:\"project_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewResetBotTableRequest() *ResetBotTableRequest {\n\treturn &ResetBotTableRequest{}\n}\n\nfunc (p *ResetBotTableRequest) InitDefault() {\n}\n\nvar ResetBotTableRequest_CreatorID_DEFAULT int64\n\nfunc (p *ResetBotTableRequest) GetCreatorID() (v int64) {\n\tif !p.IsSetCreatorID() {\n\t\treturn ResetBotTableRequest_CreatorID_DEFAULT\n\t}\n\treturn *p.CreatorID\n}\n\nvar ResetBotTableRequest_BotID_DEFAULT int64\n\nfunc (p *ResetBotTableRequest) GetBotID() (v int64) {\n\tif !p.IsSetBotID() {\n\t\treturn ResetBotTableRequest_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar ResetBotTableRequest_TableID_DEFAULT int64\n\nfunc (p *ResetBotTableRequest) GetTableID() (v int64) {\n\tif !p.IsSetTableID() {\n\t\treturn ResetBotTableRequest_TableID_DEFAULT\n\t}\n\treturn *p.TableID\n}\n\nfunc (p *ResetBotTableRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nvar ResetBotTableRequest_ConnectorID_DEFAULT int64\n\nfunc (p *ResetBotTableRequest) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn ResetBotTableRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar ResetBotTableRequest_ConnectorUID_DEFAULT string\n\nfunc (p *ResetBotTableRequest) GetConnectorUID() (v string) {\n\tif !p.IsSetConnectorUID() {\n\t\treturn ResetBotTableRequest_ConnectorUID_DEFAULT\n\t}\n\treturn *p.ConnectorUID\n}\n\nvar ResetBotTableRequest_WorkflowID_DEFAULT int64\n\nfunc (p *ResetBotTableRequest) GetWorkflowID() (v int64) {\n\tif !p.IsSetWorkflowID() {\n\t\treturn ResetBotTableRequest_WorkflowID_DEFAULT\n\t}\n\treturn *p.WorkflowID\n}\n\nvar ResetBotTableRequest_DatabaseInfoID_DEFAULT int64\n\nfunc (p *ResetBotTableRequest) GetDatabaseInfoID() (v int64) {\n\tif !p.IsSetDatabaseInfoID() {\n\t\treturn ResetBotTableRequest_DatabaseInfoID_DEFAULT\n\t}\n\treturn *p.DatabaseInfoID\n}\n\nvar ResetBotTableRequest_ProjectID_DEFAULT int64\n\nfunc (p *ResetBotTableRequest) GetProjectID() (v int64) {\n\tif !p.IsSetProjectID() {\n\t\treturn ResetBotTableRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar ResetBotTableRequest_Base_DEFAULT *base.Base\n\nfunc (p *ResetBotTableRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ResetBotTableRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ResetBotTableRequest = map[int16]string{\n\t1:   \"creator_id\",\n\t2:   \"bot_id\",\n\t3:   \"table_id\",\n\t4:   \"table_type\",\n\t5:   \"connector_id\",\n\t6:   \"connector_uid\",\n\t7:   \"workflow_id\",\n\t8:   \"database_info_id\",\n\t9:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ResetBotTableRequest) IsSetCreatorID() bool {\n\treturn p.CreatorID != nil\n}\n\nfunc (p *ResetBotTableRequest) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *ResetBotTableRequest) IsSetTableID() bool {\n\treturn p.TableID != nil\n}\n\nfunc (p *ResetBotTableRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *ResetBotTableRequest) IsSetConnectorUID() bool {\n\treturn p.ConnectorUID != nil\n}\n\nfunc (p *ResetBotTableRequest) IsSetWorkflowID() bool {\n\treturn p.WorkflowID != nil\n}\n\nfunc (p *ResetBotTableRequest) IsSetDatabaseInfoID() bool {\n\treturn p.DatabaseInfoID != nil\n}\n\nfunc (p *ResetBotTableRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *ResetBotTableRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ResetBotTableRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetTableType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetTableType {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResetBotTableRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ResetBotTableRequest[fieldId]))\n}\n\nfunc (p *ResetBotTableRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *ResetBotTableRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ResetBotTableRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TableID = _field\n\treturn nil\n}\nfunc (p *ResetBotTableRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *ResetBotTableRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ResetBotTableRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorUID = _field\n\treturn nil\n}\nfunc (p *ResetBotTableRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *ResetBotTableRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DatabaseInfoID = _field\n\treturn nil\n}\nfunc (p *ResetBotTableRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *ResetBotTableRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ResetBotTableRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResetBotTableRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResetBotTableRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatorID() {\n\t\tif err = oprot.WriteFieldBegin(\"creator_id\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreatorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResetBotTableRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResetBotTableRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableID() {\n\t\tif err = oprot.WriteFieldBegin(\"table_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.TableID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ResetBotTableRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ResetBotTableRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ResetBotTableRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorUID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_uid\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorUID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ResetBotTableRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowID() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.WorkflowID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ResetBotTableRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDatabaseInfoID() {\n\t\tif err = oprot.WriteFieldBegin(\"database_info_id\", thrift.I64, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.DatabaseInfoID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ResetBotTableRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ResetBotTableRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResetBotTableRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResetBotTableRequest(%+v)\", *p)\n\n}\n\ntype ResetBotTableResponse struct {\n\tCode     *int64         `thrift:\"code,253,optional\" form:\"code\" json:\"code,omitempty\" query:\"code\"`\n\tMsg      *string        `thrift:\"msg,254,optional\" form:\"msg\" json:\"msg,omitempty\" query:\"msg\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewResetBotTableResponse() *ResetBotTableResponse {\n\treturn &ResetBotTableResponse{}\n}\n\nfunc (p *ResetBotTableResponse) InitDefault() {\n}\n\nvar ResetBotTableResponse_Code_DEFAULT int64\n\nfunc (p *ResetBotTableResponse) GetCode() (v int64) {\n\tif !p.IsSetCode() {\n\t\treturn ResetBotTableResponse_Code_DEFAULT\n\t}\n\treturn *p.Code\n}\n\nvar ResetBotTableResponse_Msg_DEFAULT string\n\nfunc (p *ResetBotTableResponse) GetMsg() (v string) {\n\tif !p.IsSetMsg() {\n\t\treturn ResetBotTableResponse_Msg_DEFAULT\n\t}\n\treturn *p.Msg\n}\n\nvar ResetBotTableResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ResetBotTableResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ResetBotTableResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ResetBotTableResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ResetBotTableResponse) IsSetCode() bool {\n\treturn p.Code != nil\n}\n\nfunc (p *ResetBotTableResponse) IsSetMsg() bool {\n\treturn p.Msg != nil\n}\n\nfunc (p *ResetBotTableResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ResetBotTableResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResetBotTableResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ResetBotTableResponse[fieldId]))\n}\n\nfunc (p *ResetBotTableResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ResetBotTableResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ResetBotTableResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ResetBotTableResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResetBotTableResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResetBotTableResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCode() {\n\t\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Code); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ResetBotTableResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ResetBotTableResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResetBotTableResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResetBotTableResponse(%+v)\", *p)\n\n}\n\n/********  bot_table end     ********/\n/********      Bytedoc  bot_table_info  start   ********/\ntype BatchInsertBotTableInfoRequest struct {\n\t// database name\n\tDbName string `thrift:\"db_name,1\" form:\"db_name\" json:\"db_name\" query:\"db_name\"`\n\t// collection name\n\tCollectionName string `thrift:\"collection_name,2\" form:\"collection_name\" json:\"collection_name\" query:\"collection_name\"`\n\t// save data\n\tData []map[string]string `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n\t// user id\n\tUserID int64 `thrift:\"user_id,4\" form:\"user_id\" json:\"user_id\" query:\"user_id\"`\n\t// bot id\n\tBotID int64      `thrift:\"bot_id,5\" form:\"bot_id\" json:\"bot_id\" query:\"bot_id\"`\n\tBase  *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewBatchInsertBotTableInfoRequest() *BatchInsertBotTableInfoRequest {\n\treturn &BatchInsertBotTableInfoRequest{}\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) InitDefault() {\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) GetDbName() (v string) {\n\treturn p.DbName\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) GetCollectionName() (v string) {\n\treturn p.CollectionName\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) GetData() (v []map[string]string) {\n\treturn p.Data\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar BatchInsertBotTableInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *BatchInsertBotTableInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn BatchInsertBotTableInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_BatchInsertBotTableInfoRequest = map[int16]string{\n\t1:   \"db_name\",\n\t2:   \"collection_name\",\n\t3:   \"data\",\n\t4:   \"user_id\",\n\t5:   \"bot_id\",\n\t255: \"Base\",\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BatchInsertBotTableInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DbName = _field\n\treturn nil\n}\nfunc (p *BatchInsertBotTableInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CollectionName = _field\n\treturn nil\n}\nfunc (p *BatchInsertBotTableInfoRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *BatchInsertBotTableInfoRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *BatchInsertBotTableInfoRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *BatchInsertBotTableInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchInsertBotTableInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"db_name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DbName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BatchInsertBotTableInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"collection_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CollectionName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BatchInsertBotTableInfoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.MAP, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range v {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BatchInsertBotTableInfoRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BatchInsertBotTableInfoRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BatchInsertBotTableInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BatchInsertBotTableInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BatchInsertBotTableInfoRequest(%+v)\", *p)\n\n}\n\ntype BatchInsertBotTableInfoResponse struct {\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewBatchInsertBotTableInfoResponse() *BatchInsertBotTableInfoResponse {\n\treturn &BatchInsertBotTableInfoResponse{}\n}\n\nfunc (p *BatchInsertBotTableInfoResponse) InitDefault() {\n}\n\nvar BatchInsertBotTableInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *BatchInsertBotTableInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn BatchInsertBotTableInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_BatchInsertBotTableInfoResponse = map[int16]string{\n\t255: \"BaseResp\",\n}\n\nfunc (p *BatchInsertBotTableInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *BatchInsertBotTableInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BatchInsertBotTableInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_BatchInsertBotTableInfoResponse[fieldId]))\n}\n\nfunc (p *BatchInsertBotTableInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *BatchInsertBotTableInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchInsertBotTableInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BatchInsertBotTableInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BatchInsertBotTableInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BatchInsertBotTableInfoResponse(%+v)\", *p)\n\n}\n\ntype UpdateBotTableInfoRequest struct {\n\t// database name\n\tDbName string `thrift:\"db_name,1\" form:\"db_name\" json:\"db_name\" query:\"db_name\"`\n\t// collection name\n\tCollectionName string `thrift:\"collection_name,2\" form:\"collection_name\" json:\"collection_name\" query:\"collection_name\"`\n\t// update data\n\tDataList []map[string]string `thrift:\"data_list,3\" form:\"data_list\" json:\"data_list\" query:\"data_list\"`\n\t// user id\n\tUserID int64 `thrift:\"user_id,4\" form:\"user_id\" json:\"user_id\" query:\"user_id\"`\n\t// bot id\n\tBotID int64      `thrift:\"bot_id,5\" form:\"bot_id\" json:\"bot_id\" query:\"bot_id\"`\n\tBase  *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateBotTableInfoRequest() *UpdateBotTableInfoRequest {\n\treturn &UpdateBotTableInfoRequest{}\n}\n\nfunc (p *UpdateBotTableInfoRequest) InitDefault() {\n}\n\nfunc (p *UpdateBotTableInfoRequest) GetDbName() (v string) {\n\treturn p.DbName\n}\n\nfunc (p *UpdateBotTableInfoRequest) GetCollectionName() (v string) {\n\treturn p.CollectionName\n}\n\nfunc (p *UpdateBotTableInfoRequest) GetDataList() (v []map[string]string) {\n\treturn p.DataList\n}\n\nfunc (p *UpdateBotTableInfoRequest) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *UpdateBotTableInfoRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar UpdateBotTableInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateBotTableInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateBotTableInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateBotTableInfoRequest = map[int16]string{\n\t1:   \"db_name\",\n\t2:   \"collection_name\",\n\t3:   \"data_list\",\n\t4:   \"user_id\",\n\t5:   \"bot_id\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateBotTableInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateBotTableInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateBotTableInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateBotTableInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DbName = _field\n\treturn nil\n}\nfunc (p *UpdateBotTableInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CollectionName = _field\n\treturn nil\n}\nfunc (p *UpdateBotTableInfoRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DataList = _field\n\treturn nil\n}\nfunc (p *UpdateBotTableInfoRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *UpdateBotTableInfoRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *UpdateBotTableInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateBotTableInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateBotTableInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateBotTableInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"db_name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DbName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateBotTableInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"collection_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CollectionName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateBotTableInfoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data_list\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.MAP, len(p.DataList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DataList {\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range v {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateBotTableInfoRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UpdateBotTableInfoRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UpdateBotTableInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateBotTableInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateBotTableInfoRequest(%+v)\", *p)\n\n}\n\ntype UpdateBotTableInfoResponse struct {\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewUpdateBotTableInfoResponse() *UpdateBotTableInfoResponse {\n\treturn &UpdateBotTableInfoResponse{}\n}\n\nfunc (p *UpdateBotTableInfoResponse) InitDefault() {\n}\n\nvar UpdateBotTableInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateBotTableInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateBotTableInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateBotTableInfoResponse = map[int16]string{\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateBotTableInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateBotTableInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateBotTableInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateBotTableInfoResponse[fieldId]))\n}\n\nfunc (p *UpdateBotTableInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateBotTableInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateBotTableInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateBotTableInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateBotTableInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateBotTableInfoResponse(%+v)\", *p)\n\n}\n\ntype DeleteBotTableInfoRequest struct {\n\t// database name\n\tDbName string `thrift:\"db_name,1\" form:\"db_name\" json:\"db_name\" query:\"db_name\"`\n\t// collection name\n\tCollectionName string `thrift:\"collection_name,2\" form:\"collection_name\" json:\"collection_name\" query:\"collection_name\"`\n\t// Delete id list\n\tIds []string `thrift:\"ids,3\" form:\"ids\" json:\"ids\" query:\"ids\"`\n\t// user id\n\tUserID int64 `thrift:\"user_id,4\" form:\"user_id\" json:\"user_id\" query:\"user_id\"`\n\t// bot id\n\tBotID int64      `thrift:\"bot_id,5\" form:\"bot_id\" json:\"bot_id\" query:\"bot_id\"`\n\tBase  *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteBotTableInfoRequest() *DeleteBotTableInfoRequest {\n\treturn &DeleteBotTableInfoRequest{}\n}\n\nfunc (p *DeleteBotTableInfoRequest) InitDefault() {\n}\n\nfunc (p *DeleteBotTableInfoRequest) GetDbName() (v string) {\n\treturn p.DbName\n}\n\nfunc (p *DeleteBotTableInfoRequest) GetCollectionName() (v string) {\n\treturn p.CollectionName\n}\n\nfunc (p *DeleteBotTableInfoRequest) GetIds() (v []string) {\n\treturn p.Ids\n}\n\nfunc (p *DeleteBotTableInfoRequest) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *DeleteBotTableInfoRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar DeleteBotTableInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteBotTableInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteBotTableInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteBotTableInfoRequest = map[int16]string{\n\t1:   \"db_name\",\n\t2:   \"collection_name\",\n\t3:   \"ids\",\n\t4:   \"user_id\",\n\t5:   \"bot_id\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteBotTableInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteBotTableInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteBotTableInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteBotTableInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DbName = _field\n\treturn nil\n}\nfunc (p *DeleteBotTableInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CollectionName = _field\n\treturn nil\n}\nfunc (p *DeleteBotTableInfoRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Ids = _field\n\treturn nil\n}\nfunc (p *DeleteBotTableInfoRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *DeleteBotTableInfoRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *DeleteBotTableInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteBotTableInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteBotTableInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteBotTableInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"db_name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DbName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteBotTableInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"collection_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CollectionName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteBotTableInfoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ids\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Ids)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Ids {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DeleteBotTableInfoRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DeleteBotTableInfoRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DeleteBotTableInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteBotTableInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteBotTableInfoRequest(%+v)\", *p)\n\n}\n\ntype DeleteBotTableInfoResponse struct {\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewDeleteBotTableInfoResponse() *DeleteBotTableInfoResponse {\n\treturn &DeleteBotTableInfoResponse{}\n}\n\nfunc (p *DeleteBotTableInfoResponse) InitDefault() {\n}\n\nvar DeleteBotTableInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteBotTableInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteBotTableInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteBotTableInfoResponse = map[int16]string{\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteBotTableInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteBotTableInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteBotTableInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteBotTableInfoResponse[fieldId]))\n}\n\nfunc (p *DeleteBotTableInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteBotTableInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteBotTableInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteBotTableInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteBotTableInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteBotTableInfoResponse(%+v)\", *p)\n\n}\n\ntype SearchBotTableInfoRequest struct {\n\t// Search term, currently ignored\n\tKeyWord string `thrift:\"key_word,1\" form:\"key_word\" json:\"key_word\" query:\"key_word\"`\n\tLimit   int64  `thrift:\"limit,2\" form:\"limit\" json:\"limit\" query:\"limit\"`\n\tOffset  int64  `thrift:\"offset,3\" form:\"offset\" json:\"offset\" query:\"offset\"`\n\t// user id\n\tConnectorUID string `thrift:\"connector_uid,4\" form:\"connector_uid\" json:\"connector_uid\" query:\"connector_uid\"`\n\tConnectorID  int64  `thrift:\"connector_id,5\" form:\"connector_id\" json:\"connector_id\" query:\"connector_id\"`\n\t// bot id\n\tBotID int64 `thrift:\"bot_id,6\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\t// Currently ignored\n\tTableName string `thrift:\"table_name,7\" form:\"table_name\" json:\"table_name\" query:\"table_name\"`\n\tTableID   int64  `thrift:\"table_id,8\" form:\"table_id\" json:\"table_id,string\" query:\"table_id\"`\n\t// citation information\n\tRefInfo *RefInfo   `thrift:\"ref_info,9,optional\" form:\"ref_info\" json:\"ref_info,omitempty\" query:\"ref_info\"`\n\tBase    *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewSearchBotTableInfoRequest() *SearchBotTableInfoRequest {\n\treturn &SearchBotTableInfoRequest{}\n}\n\nfunc (p *SearchBotTableInfoRequest) InitDefault() {\n}\n\nfunc (p *SearchBotTableInfoRequest) GetKeyWord() (v string) {\n\treturn p.KeyWord\n}\n\nfunc (p *SearchBotTableInfoRequest) GetLimit() (v int64) {\n\treturn p.Limit\n}\n\nfunc (p *SearchBotTableInfoRequest) GetOffset() (v int64) {\n\treturn p.Offset\n}\n\nfunc (p *SearchBotTableInfoRequest) GetConnectorUID() (v string) {\n\treturn p.ConnectorUID\n}\n\nfunc (p *SearchBotTableInfoRequest) GetConnectorID() (v int64) {\n\treturn p.ConnectorID\n}\n\nfunc (p *SearchBotTableInfoRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *SearchBotTableInfoRequest) GetTableName() (v string) {\n\treturn p.TableName\n}\n\nfunc (p *SearchBotTableInfoRequest) GetTableID() (v int64) {\n\treturn p.TableID\n}\n\nvar SearchBotTableInfoRequest_RefInfo_DEFAULT *RefInfo\n\nfunc (p *SearchBotTableInfoRequest) GetRefInfo() (v *RefInfo) {\n\tif !p.IsSetRefInfo() {\n\t\treturn SearchBotTableInfoRequest_RefInfo_DEFAULT\n\t}\n\treturn p.RefInfo\n}\n\nvar SearchBotTableInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *SearchBotTableInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SearchBotTableInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SearchBotTableInfoRequest = map[int16]string{\n\t1:   \"key_word\",\n\t2:   \"limit\",\n\t3:   \"offset\",\n\t4:   \"connector_uid\",\n\t5:   \"connector_id\",\n\t6:   \"bot_id\",\n\t7:   \"table_name\",\n\t8:   \"table_id\",\n\t9:   \"ref_info\",\n\t255: \"Base\",\n}\n\nfunc (p *SearchBotTableInfoRequest) IsSetRefInfo() bool {\n\treturn p.RefInfo != nil\n}\n\nfunc (p *SearchBotTableInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SearchBotTableInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SearchBotTableInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SearchBotTableInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.KeyWord = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Limit = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Offset = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorUID = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableName = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TableID = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoRequest) ReadField9(iprot thrift.TProtocol) error {\n\t_field := NewRefInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RefInfo = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SearchBotTableInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SearchBotTableInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SearchBotTableInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"key_word\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.KeyWord); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"limit\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Limit); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"offset\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Offset); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_uid\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorUID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_name\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TableName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_id\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TableID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRefInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"ref_info\", thrift.STRUCT, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RefInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SearchBotTableInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SearchBotTableInfoRequest(%+v)\", *p)\n\n}\n\ntype SearchBotTableInfoResponse struct {\n\tData     []map[string]string `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tHasMore  bool                `thrift:\"HasMore,2,required\" form:\"HasMore,required\" json:\"HasMore,required\" query:\"HasMore,required\"`\n\tTotalNum int32               `thrift:\"TotalNum,3,required\" form:\"TotalNum,required\" json:\"TotalNum,required\" query:\"TotalNum,required\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewSearchBotTableInfoResponse() *SearchBotTableInfoResponse {\n\treturn &SearchBotTableInfoResponse{\n\n\t\tHasMore: false,\n\t}\n}\n\nfunc (p *SearchBotTableInfoResponse) InitDefault() {\n\tp.HasMore = false\n}\n\nfunc (p *SearchBotTableInfoResponse) GetData() (v []map[string]string) {\n\treturn p.Data\n}\n\nfunc (p *SearchBotTableInfoResponse) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nfunc (p *SearchBotTableInfoResponse) GetTotalNum() (v int32) {\n\treturn p.TotalNum\n}\n\nvar SearchBotTableInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SearchBotTableInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SearchBotTableInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SearchBotTableInfoResponse = map[int16]string{\n\t1:   \"data\",\n\t2:   \"HasMore\",\n\t3:   \"TotalNum\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *SearchBotTableInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SearchBotTableInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetHasMore bool = false\n\tvar issetTotalNum bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetHasMore = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTotalNum = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetHasMore {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTotalNum {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SearchBotTableInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SearchBotTableInfoResponse[fieldId]))\n}\n\nfunc (p *SearchBotTableInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TotalNum = _field\n\treturn nil\n}\nfunc (p *SearchBotTableInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SearchBotTableInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SearchBotTableInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SearchBotTableInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.MAP, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range v {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"HasMore\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TotalNum\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TotalNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SearchBotTableInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SearchBotTableInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SearchBotTableInfoResponse(%+v)\", *p)\n\n}\n\ntype ExecuteSqlRequest struct {\n\t// SQL that RunCommand can execute\n\tSQL string `thrift:\"sql,1\" form:\"sql\" json:\"sql\" query:\"sql\"`\n\t// bot id\n\tBotID int64 `thrift:\"bot_id,2\" form:\"bot_id\" json:\"bot_id\" query:\"bot_id\"`\n\t// line of business id\n\tConnectorID int64 `thrift:\"connector_id,3\" form:\"connector_id\" json:\"connector_id\" query:\"connector_id\"`\n\t// line of business user id\n\tConnectorUID string `thrift:\"connector_uid,4\" form:\"connector_uid\" json:\"connector_uid\" query:\"connector_uid\"`\n\t// Table type\n\tTableType TableType `thrift:\"table_type,5\" form:\"table_type\" json:\"table_type\" query:\"table_type\"`\n\t// Workflow test run identification\n\tWftestID string `thrift:\"wftest_id,6\" form:\"wftest_id\" json:\"wftest_id\" query:\"wftest_id\"`\n\t// citation information\n\tRefInfo *RefInfo `thrift:\"ref_info,7,optional\" form:\"ref_info\" json:\"ref_info,omitempty\" query:\"ref_info\"`\n\t// SQL params\n\tSqlParams []*SqlParamVal `thrift:\"SqlParams,8,optional\" form:\"SqlParams\" json:\"SqlParams,omitempty\" query:\"SqlParams\"`\n\t// Database info id\n\tDatabaseInfoID int64 `thrift:\"database_info_id,9\" form:\"database_info_id\" json:\"database_info_id\" query:\"database_info_id\"`\n\t// workflow id\n\tWorkflowID int64 `thrift:\"workflow_id,10\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\t// Project ID\n\tProjectID int64      `thrift:\"project_id,11\" form:\"project_id\" json:\"project_id\" query:\"project_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewExecuteSqlRequest() *ExecuteSqlRequest {\n\treturn &ExecuteSqlRequest{}\n}\n\nfunc (p *ExecuteSqlRequest) InitDefault() {\n}\n\nfunc (p *ExecuteSqlRequest) GetSQL() (v string) {\n\treturn p.SQL\n}\n\nfunc (p *ExecuteSqlRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *ExecuteSqlRequest) GetConnectorID() (v int64) {\n\treturn p.ConnectorID\n}\n\nfunc (p *ExecuteSqlRequest) GetConnectorUID() (v string) {\n\treturn p.ConnectorUID\n}\n\nfunc (p *ExecuteSqlRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nfunc (p *ExecuteSqlRequest) GetWftestID() (v string) {\n\treturn p.WftestID\n}\n\nvar ExecuteSqlRequest_RefInfo_DEFAULT *RefInfo\n\nfunc (p *ExecuteSqlRequest) GetRefInfo() (v *RefInfo) {\n\tif !p.IsSetRefInfo() {\n\t\treturn ExecuteSqlRequest_RefInfo_DEFAULT\n\t}\n\treturn p.RefInfo\n}\n\nvar ExecuteSqlRequest_SqlParams_DEFAULT []*SqlParamVal\n\nfunc (p *ExecuteSqlRequest) GetSqlParams() (v []*SqlParamVal) {\n\tif !p.IsSetSqlParams() {\n\t\treturn ExecuteSqlRequest_SqlParams_DEFAULT\n\t}\n\treturn p.SqlParams\n}\n\nfunc (p *ExecuteSqlRequest) GetDatabaseInfoID() (v int64) {\n\treturn p.DatabaseInfoID\n}\n\nfunc (p *ExecuteSqlRequest) GetWorkflowID() (v int64) {\n\treturn p.WorkflowID\n}\n\nfunc (p *ExecuteSqlRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar ExecuteSqlRequest_Base_DEFAULT *base.Base\n\nfunc (p *ExecuteSqlRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ExecuteSqlRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ExecuteSqlRequest = map[int16]string{\n\t1:   \"sql\",\n\t2:   \"bot_id\",\n\t3:   \"connector_id\",\n\t4:   \"connector_uid\",\n\t5:   \"table_type\",\n\t6:   \"wftest_id\",\n\t7:   \"ref_info\",\n\t8:   \"SqlParams\",\n\t9:   \"database_info_id\",\n\t10:  \"workflow_id\",\n\t11:  \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ExecuteSqlRequest) IsSetRefInfo() bool {\n\treturn p.RefInfo != nil\n}\n\nfunc (p *ExecuteSqlRequest) IsSetSqlParams() bool {\n\treturn p.SqlParams != nil\n}\n\nfunc (p *ExecuteSqlRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ExecuteSqlRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ExecuteSqlRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ExecuteSqlRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SQL = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorUID = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WftestID = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlRequest) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewRefInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RefInfo = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlRequest) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*SqlParamVal, 0, size)\n\tvalues := make([]SqlParamVal, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SqlParams = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatabaseInfoID = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ExecuteSqlRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ExecuteSqlRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ExecuteSqlRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sql\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SQL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ExecuteSqlRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ExecuteSqlRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ExecuteSqlRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_uid\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorUID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ExecuteSqlRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ExecuteSqlRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"wftest_id\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WftestID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ExecuteSqlRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRefInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"ref_info\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RefInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ExecuteSqlRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSqlParams() {\n\t\tif err = oprot.WriteFieldBegin(\"SqlParams\", thrift.LIST, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SqlParams)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SqlParams {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ExecuteSqlRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_info_id\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatabaseInfoID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ExecuteSqlRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ExecuteSqlRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ExecuteSqlRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ExecuteSqlRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ExecuteSqlRequest(%+v)\", *p)\n\n}\n\ntype SqlParamVal struct {\n\tValueType FieldItemType `thrift:\"ValueType,1,required\" json:\"value_type\" form:\"ValueType,required\" query:\"ValueType,required\"`\n\tISNull    bool          `thrift:\"ISNull,2,required\" json:\"is_null\" form:\"ISNull,required\" query:\"ISNull,required\"`\n\tValue     *string       `thrift:\"Value,3,optional\" json:\"value\" form:\"Value\" query:\"Value\"`\n\tName      *string       `thrift:\"Name,4,optional\" json:\"name\" form:\"Name\" query:\"Name\"`\n}\n\nfunc NewSqlParamVal() *SqlParamVal {\n\treturn &SqlParamVal{}\n}\n\nfunc (p *SqlParamVal) InitDefault() {\n}\n\nfunc (p *SqlParamVal) GetValueType() (v FieldItemType) {\n\treturn p.ValueType\n}\n\nfunc (p *SqlParamVal) GetISNull() (v bool) {\n\treturn p.ISNull\n}\n\nvar SqlParamVal_Value_DEFAULT string\n\nfunc (p *SqlParamVal) GetValue() (v string) {\n\tif !p.IsSetValue() {\n\t\treturn SqlParamVal_Value_DEFAULT\n\t}\n\treturn *p.Value\n}\n\nvar SqlParamVal_Name_DEFAULT string\n\nfunc (p *SqlParamVal) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn SqlParamVal_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar fieldIDToName_SqlParamVal = map[int16]string{\n\t1: \"ValueType\",\n\t2: \"ISNull\",\n\t3: \"Value\",\n\t4: \"Name\",\n}\n\nfunc (p *SqlParamVal) IsSetValue() bool {\n\treturn p.Value != nil\n}\n\nfunc (p *SqlParamVal) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *SqlParamVal) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetValueType bool = false\n\tvar issetISNull bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetValueType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetISNull = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetValueType {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetISNull {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SqlParamVal[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SqlParamVal[fieldId]))\n}\n\nfunc (p *SqlParamVal) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field FieldItemType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = FieldItemType(v)\n\t}\n\tp.ValueType = _field\n\treturn nil\n}\nfunc (p *SqlParamVal) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ISNull = _field\n\treturn nil\n}\nfunc (p *SqlParamVal) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *SqlParamVal) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\n\nfunc (p *SqlParamVal) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SqlParamVal\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SqlParamVal) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ValueType\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ValueType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SqlParamVal) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ISNull\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.ISNull); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SqlParamVal) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetValue() {\n\t\tif err = oprot.WriteFieldBegin(\"Value\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SqlParamVal) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *SqlParamVal) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SqlParamVal(%+v)\", *p)\n\n}\n\ntype ExecuteSqlResponse struct {\n\tData     []map[string]string `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewExecuteSqlResponse() *ExecuteSqlResponse {\n\treturn &ExecuteSqlResponse{}\n}\n\nfunc (p *ExecuteSqlResponse) InitDefault() {\n}\n\nfunc (p *ExecuteSqlResponse) GetData() (v []map[string]string) {\n\treturn p.Data\n}\n\nvar ExecuteSqlResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ExecuteSqlResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ExecuteSqlResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ExecuteSqlResponse = map[int16]string{\n\t1:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ExecuteSqlResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ExecuteSqlResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ExecuteSqlResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ExecuteSqlResponse[fieldId]))\n}\n\nfunc (p *ExecuteSqlResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ExecuteSqlResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ExecuteSqlResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ExecuteSqlResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ExecuteSqlResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.MAP, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range v {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ExecuteSqlResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ExecuteSqlResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ExecuteSqlResponse(%+v)\", *p)\n\n}\n\ntype BotTablePublishReq struct {\n\tBotID int64 `thrift:\"bot_id,1,required\" form:\"bot_id,required\" json:\"bot_id,required\" query:\"bot_id,required\"`\n\t// line of business id\n\tConnectorID *int64 `thrift:\"connector_id,2,optional\" form:\"connector_id\" json:\"connector_id,omitempty\" query:\"connector_id\"`\n\t// line of business user id\n\tConnectorUID *string    `thrift:\"connector_uid,3,optional\" form:\"connector_uid\" json:\"connector_uid,omitempty\" query:\"connector_uid\"`\n\tBase         *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewBotTablePublishReq() *BotTablePublishReq {\n\treturn &BotTablePublishReq{}\n}\n\nfunc (p *BotTablePublishReq) InitDefault() {\n}\n\nfunc (p *BotTablePublishReq) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar BotTablePublishReq_ConnectorID_DEFAULT int64\n\nfunc (p *BotTablePublishReq) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn BotTablePublishReq_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar BotTablePublishReq_ConnectorUID_DEFAULT string\n\nfunc (p *BotTablePublishReq) GetConnectorUID() (v string) {\n\tif !p.IsSetConnectorUID() {\n\t\treturn BotTablePublishReq_ConnectorUID_DEFAULT\n\t}\n\treturn *p.ConnectorUID\n}\n\nvar BotTablePublishReq_Base_DEFAULT *base.Base\n\nfunc (p *BotTablePublishReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn BotTablePublishReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_BotTablePublishReq = map[int16]string{\n\t1:   \"bot_id\",\n\t2:   \"connector_id\",\n\t3:   \"connector_uid\",\n\t255: \"Base\",\n}\n\nfunc (p *BotTablePublishReq) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *BotTablePublishReq) IsSetConnectorUID() bool {\n\treturn p.ConnectorUID != nil\n}\n\nfunc (p *BotTablePublishReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *BotTablePublishReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotTablePublishReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_BotTablePublishReq[fieldId]))\n}\n\nfunc (p *BotTablePublishReq) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *BotTablePublishReq) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *BotTablePublishReq) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorUID = _field\n\treturn nil\n}\nfunc (p *BotTablePublishReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *BotTablePublishReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotTablePublishReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotTablePublishReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotTablePublishReq) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotTablePublishReq) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorUID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_uid\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorUID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotTablePublishReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BotTablePublishReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotTablePublishReq(%+v)\", *p)\n\n}\n\ntype BotTablePublishResp struct {\n\t// Execution status: 0-successful execution 1-failed execution all 2-failed execution part\n\tStatus int64 `thrift:\"status,1\" form:\"status\" json:\"status\" query:\"status\"`\n\t// error message\n\tMsg      string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewBotTablePublishResp() *BotTablePublishResp {\n\treturn &BotTablePublishResp{}\n}\n\nfunc (p *BotTablePublishResp) InitDefault() {\n}\n\nfunc (p *BotTablePublishResp) GetStatus() (v int64) {\n\treturn p.Status\n}\n\nfunc (p *BotTablePublishResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar BotTablePublishResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *BotTablePublishResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn BotTablePublishResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_BotTablePublishResp = map[int16]string{\n\t1:   \"status\",\n\t2:   \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *BotTablePublishResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *BotTablePublishResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotTablePublishResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotTablePublishResp) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *BotTablePublishResp) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *BotTablePublishResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *BotTablePublishResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotTablePublishResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotTablePublishResp) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Status); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotTablePublishResp) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotTablePublishResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BotTablePublishResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotTablePublishResp(%+v)\", *p)\n\n}\n\ntype NL2SQLRequest struct {\n\t// Natural language description of database requests\n\tText string `thrift:\"text,1,required\" form:\"text,required\" json:\"text,required\" query:\"text,required\"`\n\t// bot id\n\tBotID int64 `thrift:\"bot_id,2,required\" form:\"bot_id,required\" json:\"bot_id,required\" query:\"bot_id,required\"`\n\t// line of business id\n\tConnectorID *int64 `thrift:\"connector_id,3,optional\" form:\"connector_id\" json:\"connector_id,omitempty\" query:\"connector_id\"`\n\t// line of business user id\n\tConnectorUID *string `thrift:\"connector_uid,4,optional\" form:\"connector_uid\" json:\"connector_uid,omitempty\" query:\"connector_uid\"`\n\t// Table types, draft and online\n\tTableType TableType  `thrift:\"table_type,5,required\" form:\"table_type,required\" json:\"table_type,required\" query:\"table_type,required\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewNL2SQLRequest() *NL2SQLRequest {\n\treturn &NL2SQLRequest{}\n}\n\nfunc (p *NL2SQLRequest) InitDefault() {\n}\n\nfunc (p *NL2SQLRequest) GetText() (v string) {\n\treturn p.Text\n}\n\nfunc (p *NL2SQLRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar NL2SQLRequest_ConnectorID_DEFAULT int64\n\nfunc (p *NL2SQLRequest) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn NL2SQLRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar NL2SQLRequest_ConnectorUID_DEFAULT string\n\nfunc (p *NL2SQLRequest) GetConnectorUID() (v string) {\n\tif !p.IsSetConnectorUID() {\n\t\treturn NL2SQLRequest_ConnectorUID_DEFAULT\n\t}\n\treturn *p.ConnectorUID\n}\n\nfunc (p *NL2SQLRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nvar NL2SQLRequest_Base_DEFAULT *base.Base\n\nfunc (p *NL2SQLRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn NL2SQLRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_NL2SQLRequest = map[int16]string{\n\t1:   \"text\",\n\t2:   \"bot_id\",\n\t3:   \"connector_id\",\n\t4:   \"connector_uid\",\n\t5:   \"table_type\",\n\t255: \"Base\",\n}\n\nfunc (p *NL2SQLRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *NL2SQLRequest) IsSetConnectorUID() bool {\n\treturn p.ConnectorUID != nil\n}\n\nfunc (p *NL2SQLRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *NL2SQLRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetText bool = false\n\tvar issetBotID bool = false\n\tvar issetTableType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetText = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetText {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTableType {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NL2SQLRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_NL2SQLRequest[fieldId]))\n}\n\nfunc (p *NL2SQLRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Text = _field\n\treturn nil\n}\nfunc (p *NL2SQLRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *NL2SQLRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *NL2SQLRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorUID = _field\n\treturn nil\n}\nfunc (p *NL2SQLRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *NL2SQLRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *NL2SQLRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NL2SQLRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NL2SQLRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"text\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Text); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NL2SQLRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NL2SQLRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NL2SQLRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorUID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_uid\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorUID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *NL2SQLRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *NL2SQLRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *NL2SQLRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NL2SQLRequest(%+v)\", *p)\n\n}\n\ntype NL2SQLResponse struct {\n\tSQL      string            `thrift:\"sql,1,required\" form:\"sql,required\" json:\"sql,required\" query:\"sql,required\"`\n\tExtraMap map[string]string `thrift:\"extraMap,2,optional\" form:\"extraMap\" json:\"extraMap,omitempty\" query:\"extraMap\"`\n\tBaseResp *base.BaseResp    `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewNL2SQLResponse() *NL2SQLResponse {\n\treturn &NL2SQLResponse{}\n}\n\nfunc (p *NL2SQLResponse) InitDefault() {\n}\n\nfunc (p *NL2SQLResponse) GetSQL() (v string) {\n\treturn p.SQL\n}\n\nvar NL2SQLResponse_ExtraMap_DEFAULT map[string]string\n\nfunc (p *NL2SQLResponse) GetExtraMap() (v map[string]string) {\n\tif !p.IsSetExtraMap() {\n\t\treturn NL2SQLResponse_ExtraMap_DEFAULT\n\t}\n\treturn p.ExtraMap\n}\n\nvar NL2SQLResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *NL2SQLResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn NL2SQLResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_NL2SQLResponse = map[int16]string{\n\t1:   \"sql\",\n\t2:   \"extraMap\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *NL2SQLResponse) IsSetExtraMap() bool {\n\treturn p.ExtraMap != nil\n}\n\nfunc (p *NL2SQLResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *NL2SQLResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSQL bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSQL = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSQL {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NL2SQLResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_NL2SQLResponse[fieldId]))\n}\n\nfunc (p *NL2SQLResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SQL = _field\n\treturn nil\n}\nfunc (p *NL2SQLResponse) ReadField2(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ExtraMap = _field\n\treturn nil\n}\nfunc (p *NL2SQLResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *NL2SQLResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NL2SQLResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NL2SQLResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sql\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SQL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NL2SQLResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExtraMap() {\n\t\tif err = oprot.WriteFieldBegin(\"extraMap\", thrift.MAP, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.ExtraMap)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ExtraMap {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NL2SQLResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *NL2SQLResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NL2SQLResponse(%+v)\", *p)\n\n}\n\ntype QueryTableByNLRequest struct {\n\t// Natural language description of database requests\n\tText string `thrift:\"text,1,required\" form:\"text,required\" json:\"text,required\" query:\"text,required\"`\n\t// bot id\n\tBotID int64 `thrift:\"bot_id,2,required\" form:\"bot_id,required\" json:\"bot_id,required\" query:\"bot_id,required\"`\n\t// line of business id\n\tConnectorID int64 `thrift:\"connector_id,3,required\" form:\"connector_id,required\" json:\"connector_id,required\" query:\"connector_id,required\"`\n\t// line of business user id\n\tConnectorUID string `thrift:\"connector_uid,4,required\" form:\"connector_uid,required\" json:\"connector_uid,required\" query:\"connector_uid,required\"`\n\t// Table types, draft and online\n\tTableType TableType `thrift:\"table_type,5,required\" form:\"table_type,required\" json:\"table_type,required\" query:\"table_type,required\"`\n\t// The chat history is passed to the nl2query service, which is parsed by nl2query\n\tXAipluginTakoBotHistory *string `thrift:\"x_aiplugin_tako_bot_history,6,optional\" form:\"x_aiplugin_tako_bot_history\" json:\"x_aiplugin_tako_bot_history,omitempty\" query:\"x_aiplugin_tako_bot_history\"`\n\t// bot_system_message passed to the nl2query service, which is parsed by nl2query\n\tXAipluginBotSystemMessage *string    `thrift:\"x_aiplugin_bot_system_message,7,optional\" form:\"x_aiplugin_bot_system_message\" json:\"x_aiplugin_bot_system_message,omitempty\" query:\"x_aiplugin_bot_system_message\"`\n\tBase                      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewQueryTableByNLRequest() *QueryTableByNLRequest {\n\treturn &QueryTableByNLRequest{}\n}\n\nfunc (p *QueryTableByNLRequest) InitDefault() {\n}\n\nfunc (p *QueryTableByNLRequest) GetText() (v string) {\n\treturn p.Text\n}\n\nfunc (p *QueryTableByNLRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *QueryTableByNLRequest) GetConnectorID() (v int64) {\n\treturn p.ConnectorID\n}\n\nfunc (p *QueryTableByNLRequest) GetConnectorUID() (v string) {\n\treturn p.ConnectorUID\n}\n\nfunc (p *QueryTableByNLRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nvar QueryTableByNLRequest_XAipluginTakoBotHistory_DEFAULT string\n\nfunc (p *QueryTableByNLRequest) GetXAipluginTakoBotHistory() (v string) {\n\tif !p.IsSetXAipluginTakoBotHistory() {\n\t\treturn QueryTableByNLRequest_XAipluginTakoBotHistory_DEFAULT\n\t}\n\treturn *p.XAipluginTakoBotHistory\n}\n\nvar QueryTableByNLRequest_XAipluginBotSystemMessage_DEFAULT string\n\nfunc (p *QueryTableByNLRequest) GetXAipluginBotSystemMessage() (v string) {\n\tif !p.IsSetXAipluginBotSystemMessage() {\n\t\treturn QueryTableByNLRequest_XAipluginBotSystemMessage_DEFAULT\n\t}\n\treturn *p.XAipluginBotSystemMessage\n}\n\nvar QueryTableByNLRequest_Base_DEFAULT *base.Base\n\nfunc (p *QueryTableByNLRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn QueryTableByNLRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_QueryTableByNLRequest = map[int16]string{\n\t1:   \"text\",\n\t2:   \"bot_id\",\n\t3:   \"connector_id\",\n\t4:   \"connector_uid\",\n\t5:   \"table_type\",\n\t6:   \"x_aiplugin_tako_bot_history\",\n\t7:   \"x_aiplugin_bot_system_message\",\n\t255: \"Base\",\n}\n\nfunc (p *QueryTableByNLRequest) IsSetXAipluginTakoBotHistory() bool {\n\treturn p.XAipluginTakoBotHistory != nil\n}\n\nfunc (p *QueryTableByNLRequest) IsSetXAipluginBotSystemMessage() bool {\n\treturn p.XAipluginBotSystemMessage != nil\n}\n\nfunc (p *QueryTableByNLRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *QueryTableByNLRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetText bool = false\n\tvar issetBotID bool = false\n\tvar issetConnectorID bool = false\n\tvar issetConnectorUID bool = false\n\tvar issetTableType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetText = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConnectorID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConnectorUID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetText {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConnectorID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConnectorUID {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTableType {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_QueryTableByNLRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_QueryTableByNLRequest[fieldId]))\n}\n\nfunc (p *QueryTableByNLRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Text = _field\n\treturn nil\n}\nfunc (p *QueryTableByNLRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *QueryTableByNLRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *QueryTableByNLRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorUID = _field\n\treturn nil\n}\nfunc (p *QueryTableByNLRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *QueryTableByNLRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.XAipluginTakoBotHistory = _field\n\treturn nil\n}\nfunc (p *QueryTableByNLRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.XAipluginBotSystemMessage = _field\n\treturn nil\n}\nfunc (p *QueryTableByNLRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *QueryTableByNLRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"QueryTableByNLRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *QueryTableByNLRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"text\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Text); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *QueryTableByNLRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *QueryTableByNLRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *QueryTableByNLRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_uid\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorUID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *QueryTableByNLRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *QueryTableByNLRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetXAipluginTakoBotHistory() {\n\t\tif err = oprot.WriteFieldBegin(\"x_aiplugin_tako_bot_history\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.XAipluginTakoBotHistory); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *QueryTableByNLRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetXAipluginBotSystemMessage() {\n\t\tif err = oprot.WriteFieldBegin(\"x_aiplugin_bot_system_message\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.XAipluginBotSystemMessage); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *QueryTableByNLRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *QueryTableByNLRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"QueryTableByNLRequest(%+v)\", *p)\n\n}\n\ntype QueryTableByNLResponse struct {\n\tData     []map[string]string `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewQueryTableByNLResponse() *QueryTableByNLResponse {\n\treturn &QueryTableByNLResponse{}\n}\n\nfunc (p *QueryTableByNLResponse) InitDefault() {\n}\n\nfunc (p *QueryTableByNLResponse) GetData() (v []map[string]string) {\n\treturn p.Data\n}\n\nvar QueryTableByNLResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *QueryTableByNLResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn QueryTableByNLResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_QueryTableByNLResponse = map[int16]string{\n\t1:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *QueryTableByNLResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *QueryTableByNLResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_QueryTableByNLResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_QueryTableByNLResponse[fieldId]))\n}\n\nfunc (p *QueryTableByNLResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *QueryTableByNLResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *QueryTableByNLResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"QueryTableByNLResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *QueryTableByNLResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.MAP, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range v {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *QueryTableByNLResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *QueryTableByNLResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"QueryTableByNLResponse(%+v)\", *p)\n\n}\n\ntype RecommendDataModelRequest struct {\n\tBotID     int64      `thrift:\"bot_id,1,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\tSceneType SceneType  `thrift:\"scene_type,2,required\" form:\"scene_type,required\" json:\"scene_type,required\" query:\"scene_type,required\"`\n\tText      *string    `thrift:\"text,3,optional\" form:\"text\" json:\"text,omitempty\" query:\"text\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewRecommendDataModelRequest() *RecommendDataModelRequest {\n\treturn &RecommendDataModelRequest{}\n}\n\nfunc (p *RecommendDataModelRequest) InitDefault() {\n}\n\nfunc (p *RecommendDataModelRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *RecommendDataModelRequest) GetSceneType() (v SceneType) {\n\treturn p.SceneType\n}\n\nvar RecommendDataModelRequest_Text_DEFAULT string\n\nfunc (p *RecommendDataModelRequest) GetText() (v string) {\n\tif !p.IsSetText() {\n\t\treturn RecommendDataModelRequest_Text_DEFAULT\n\t}\n\treturn *p.Text\n}\n\nvar RecommendDataModelRequest_Base_DEFAULT *base.Base\n\nfunc (p *RecommendDataModelRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn RecommendDataModelRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_RecommendDataModelRequest = map[int16]string{\n\t1:   \"bot_id\",\n\t2:   \"scene_type\",\n\t3:   \"text\",\n\t255: \"Base\",\n}\n\nfunc (p *RecommendDataModelRequest) IsSetText() bool {\n\treturn p.Text != nil\n}\n\nfunc (p *RecommendDataModelRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *RecommendDataModelRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\tvar issetSceneType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSceneType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSceneType {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RecommendDataModelRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_RecommendDataModelRequest[fieldId]))\n}\n\nfunc (p *RecommendDataModelRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *RecommendDataModelRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field SceneType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SceneType(v)\n\t}\n\tp.SceneType = _field\n\treturn nil\n}\nfunc (p *RecommendDataModelRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Text = _field\n\treturn nil\n}\nfunc (p *RecommendDataModelRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *RecommendDataModelRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RecommendDataModelRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RecommendDataModelRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RecommendDataModelRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"scene_type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SceneType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *RecommendDataModelRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetText() {\n\t\tif err = oprot.WriteFieldBegin(\"text\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Text); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *RecommendDataModelRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RecommendDataModelRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RecommendDataModelRequest(%+v)\", *p)\n\n}\n\ntype RecommendDataModelResponse struct {\n\tBotTableList []*BotTable    `thrift:\"BotTableList,1\" form:\"BotTableList\" json:\"BotTableList\" query:\"BotTableList\"`\n\tCode         int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg          string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp     *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewRecommendDataModelResponse() *RecommendDataModelResponse {\n\treturn &RecommendDataModelResponse{}\n}\n\nfunc (p *RecommendDataModelResponse) InitDefault() {\n}\n\nfunc (p *RecommendDataModelResponse) GetBotTableList() (v []*BotTable) {\n\treturn p.BotTableList\n}\n\nfunc (p *RecommendDataModelResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *RecommendDataModelResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar RecommendDataModelResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *RecommendDataModelResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn RecommendDataModelResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_RecommendDataModelResponse = map[int16]string{\n\t1:   \"BotTableList\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *RecommendDataModelResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *RecommendDataModelResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RecommendDataModelResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_RecommendDataModelResponse[fieldId]))\n}\n\nfunc (p *RecommendDataModelResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*BotTable, 0, size)\n\tvalues := make([]BotTable, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BotTableList = _field\n\treturn nil\n}\nfunc (p *RecommendDataModelResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *RecommendDataModelResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *RecommendDataModelResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *RecommendDataModelResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RecommendDataModelResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RecommendDataModelResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotTableList\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.BotTableList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.BotTableList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RecommendDataModelResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *RecommendDataModelResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *RecommendDataModelResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RecommendDataModelResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RecommendDataModelResponse(%+v)\", *p)\n\n}\n\n/********     Bytedoc  bot_table_info  end  ********/\ntype BatchAlterTableRequest struct {\n\tParams string     `thrift:\"params,1\" form:\"params\" json:\"params\" query:\"params\"`\n\tBase   *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewBatchAlterTableRequest() *BatchAlterTableRequest {\n\treturn &BatchAlterTableRequest{}\n}\n\nfunc (p *BatchAlterTableRequest) InitDefault() {\n}\n\nfunc (p *BatchAlterTableRequest) GetParams() (v string) {\n\treturn p.Params\n}\n\nvar BatchAlterTableRequest_Base_DEFAULT *base.Base\n\nfunc (p *BatchAlterTableRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn BatchAlterTableRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_BatchAlterTableRequest = map[int16]string{\n\t1:   \"params\",\n\t255: \"Base\",\n}\n\nfunc (p *BatchAlterTableRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *BatchAlterTableRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BatchAlterTableRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BatchAlterTableRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Params = _field\n\treturn nil\n}\nfunc (p *BatchAlterTableRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *BatchAlterTableRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchAlterTableRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BatchAlterTableRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"params\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Params); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BatchAlterTableRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BatchAlterTableRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BatchAlterTableRequest(%+v)\", *p)\n\n}\n\ntype BatchAlterTableResponse struct {\n\tRes      string         `thrift:\"res,1\" form:\"res\" json:\"res\" query:\"res\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewBatchAlterTableResponse() *BatchAlterTableResponse {\n\treturn &BatchAlterTableResponse{}\n}\n\nfunc (p *BatchAlterTableResponse) InitDefault() {\n}\n\nfunc (p *BatchAlterTableResponse) GetRes() (v string) {\n\treturn p.Res\n}\n\nvar BatchAlterTableResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *BatchAlterTableResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn BatchAlterTableResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_BatchAlterTableResponse = map[int16]string{\n\t1:   \"res\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *BatchAlterTableResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *BatchAlterTableResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BatchAlterTableResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_BatchAlterTableResponse[fieldId]))\n}\n\nfunc (p *BatchAlterTableResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Res = _field\n\treturn nil\n}\nfunc (p *BatchAlterTableResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *BatchAlterTableResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchAlterTableResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BatchAlterTableResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"res\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Res); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BatchAlterTableResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BatchAlterTableResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BatchAlterTableResponse(%+v)\", *p)\n\n}\n\ntype MigrateDatabaseRequest struct {\n\tBotID     int64      `thrift:\"bot_id,1\" form:\"bot_id\" json:\"bot_id\" query:\"bot_id\"`\n\tToSpaceID int64      `thrift:\"to_space_id,2\" form:\"to_space_id\" json:\"to_space_id\" query:\"to_space_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewMigrateDatabaseRequest() *MigrateDatabaseRequest {\n\treturn &MigrateDatabaseRequest{}\n}\n\nfunc (p *MigrateDatabaseRequest) InitDefault() {\n}\n\nfunc (p *MigrateDatabaseRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *MigrateDatabaseRequest) GetToSpaceID() (v int64) {\n\treturn p.ToSpaceID\n}\n\nvar MigrateDatabaseRequest_Base_DEFAULT *base.Base\n\nfunc (p *MigrateDatabaseRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn MigrateDatabaseRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_MigrateDatabaseRequest = map[int16]string{\n\t1:   \"bot_id\",\n\t2:   \"to_space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *MigrateDatabaseRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *MigrateDatabaseRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MigrateDatabaseRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MigrateDatabaseRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *MigrateDatabaseRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ToSpaceID = _field\n\treturn nil\n}\nfunc (p *MigrateDatabaseRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *MigrateDatabaseRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MigrateDatabaseRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MigrateDatabaseRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MigrateDatabaseRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"to_space_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ToSpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MigrateDatabaseRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MigrateDatabaseRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MigrateDatabaseRequest(%+v)\", *p)\n\n}\n\ntype MigrateDatabaseResponse struct {\n\tCode     int64          `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewMigrateDatabaseResponse() *MigrateDatabaseResponse {\n\treturn &MigrateDatabaseResponse{}\n}\n\nfunc (p *MigrateDatabaseResponse) InitDefault() {\n}\n\nfunc (p *MigrateDatabaseResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *MigrateDatabaseResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar MigrateDatabaseResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *MigrateDatabaseResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn MigrateDatabaseResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_MigrateDatabaseResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *MigrateDatabaseResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *MigrateDatabaseResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MigrateDatabaseResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_MigrateDatabaseResponse[fieldId]))\n}\n\nfunc (p *MigrateDatabaseResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *MigrateDatabaseResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *MigrateDatabaseResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *MigrateDatabaseResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MigrateDatabaseResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MigrateDatabaseResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MigrateDatabaseResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MigrateDatabaseResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MigrateDatabaseResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MigrateDatabaseResponse(%+v)\", *p)\n\n}\n\ntype MigrateOldDataRequest struct {\n\t// Which table to migrate\n\tBotType TableType `thrift:\"bot_type,1\" form:\"bot_type\" json:\"bot_type\" query:\"bot_type\"`\n\t// Which bot to migrate?\n\tBotID int64 `thrift:\"bot_id,2\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\t// Failed retry\n\tTableIds []int64    `thrift:\"table_ids,3\" form:\"table_ids\" json:\"table_ids,string\" query:\"table_ids\"`\n\tBase     *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewMigrateOldDataRequest() *MigrateOldDataRequest {\n\treturn &MigrateOldDataRequest{}\n}\n\nfunc (p *MigrateOldDataRequest) InitDefault() {\n}\n\nfunc (p *MigrateOldDataRequest) GetBotType() (v TableType) {\n\treturn p.BotType\n}\n\nfunc (p *MigrateOldDataRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *MigrateOldDataRequest) GetTableIds() (v []int64) {\n\treturn p.TableIds\n}\n\nvar MigrateOldDataRequest_Base_DEFAULT *base.Base\n\nfunc (p *MigrateOldDataRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn MigrateOldDataRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_MigrateOldDataRequest = map[int16]string{\n\t1:   \"bot_type\",\n\t2:   \"bot_id\",\n\t3:   \"table_ids\",\n\t255: \"Base\",\n}\n\nfunc (p *MigrateOldDataRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *MigrateOldDataRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MigrateOldDataRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MigrateOldDataRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.BotType = _field\n\treturn nil\n}\nfunc (p *MigrateOldDataRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *MigrateOldDataRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableIds = _field\n\treturn nil\n}\nfunc (p *MigrateOldDataRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *MigrateOldDataRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MigrateOldDataRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MigrateOldDataRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BotType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MigrateOldDataRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MigrateOldDataRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_ids\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I64, len(p.TableIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.TableIds {\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *MigrateOldDataRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MigrateOldDataRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MigrateOldDataRequest(%+v)\", *p)\n\n}\n\ntype MigrateOldDataResponse struct {\n\tCode     int64          `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewMigrateOldDataResponse() *MigrateOldDataResponse {\n\treturn &MigrateOldDataResponse{}\n}\n\nfunc (p *MigrateOldDataResponse) InitDefault() {\n}\n\nfunc (p *MigrateOldDataResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *MigrateOldDataResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar MigrateOldDataResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *MigrateOldDataResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn MigrateOldDataResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_MigrateOldDataResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *MigrateOldDataResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *MigrateOldDataResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MigrateOldDataResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_MigrateOldDataResponse[fieldId]))\n}\n\nfunc (p *MigrateOldDataResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *MigrateOldDataResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *MigrateOldDataResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *MigrateOldDataResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MigrateOldDataResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MigrateOldDataResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MigrateOldDataResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MigrateOldDataResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MigrateOldDataResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MigrateOldDataResponse(%+v)\", *p)\n\n}\n\ntype MGetDisplayResourceInfoRequest struct {\n\t// The maximum number of one page can be transferred, and the implementer can limit the maximum to 100.\n\tResIDs []int64 `thrift:\"ResIDs,1\" form:\"ResIDs\" json:\"ResIDs\" query:\"ResIDs\"`\n\t// The current user, the implementation is used to determine the authority\n\tCurrentUserID int64      `thrift:\"CurrentUserID,2\" form:\"CurrentUserID\" json:\"CurrentUserID\" query:\"CurrentUserID\"`\n\tBase          *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewMGetDisplayResourceInfoRequest() *MGetDisplayResourceInfoRequest {\n\treturn &MGetDisplayResourceInfoRequest{}\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) InitDefault() {\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) GetResIDs() (v []int64) {\n\treturn p.ResIDs\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) GetCurrentUserID() (v int64) {\n\treturn p.CurrentUserID\n}\n\nvar MGetDisplayResourceInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *MGetDisplayResourceInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn MGetDisplayResourceInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_MGetDisplayResourceInfoRequest = map[int16]string{\n\t1:   \"ResIDs\",\n\t2:   \"CurrentUserID\",\n\t255: \"Base\",\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MGetDisplayResourceInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResIDs = _field\n\treturn nil\n}\nfunc (p *MGetDisplayResourceInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CurrentUserID = _field\n\treturn nil\n}\nfunc (p *MGetDisplayResourceInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetDisplayResourceInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResIDs\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I64, len(p.ResIDs)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResIDs {\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MGetDisplayResourceInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CurrentUserID\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CurrentUserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MGetDisplayResourceInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MGetDisplayResourceInfoRequest(%+v)\", *p)\n\n}\n\ntype MGetDisplayResourceInfoResponse struct {\n\tResourceList []*DisplayResourceInfo `thrift:\"ResourceList,1\" form:\"ResourceList\" json:\"ResourceList\" query:\"ResourceList\"`\n\tBaseResp     *base.BaseResp         `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewMGetDisplayResourceInfoResponse() *MGetDisplayResourceInfoResponse {\n\treturn &MGetDisplayResourceInfoResponse{}\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) InitDefault() {\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) GetResourceList() (v []*DisplayResourceInfo) {\n\treturn p.ResourceList\n}\n\nvar MGetDisplayResourceInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *MGetDisplayResourceInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn MGetDisplayResourceInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_MGetDisplayResourceInfoResponse = map[int16]string{\n\t1:   \"ResourceList\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MGetDisplayResourceInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_MGetDisplayResourceInfoResponse[fieldId]))\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DisplayResourceInfo, 0, size)\n\tvalues := make([]DisplayResourceInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResourceList = _field\n\treturn nil\n}\nfunc (p *MGetDisplayResourceInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetDisplayResourceInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResourceList\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResourceList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResourceList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MGetDisplayResourceInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MGetDisplayResourceInfoResponse(%+v)\", *p)\n\n}\n\n// Library Resource Operations\ntype ResourceAction struct {\n\t// An operation corresponds to a unique key, and the key is constrained by the resource side\n\tKey ActionKey `thrift:\"Key,1,required\" json:\"key\" form:\"Key,required\" query:\"Key,required\"`\n\t//ture = can operate this Action, false = grey out\n\tEnable bool `thrift:\"Enable,2,required\" json:\"enable\" form:\"Enable,required\" query:\"Enable,required\"`\n}\n\nfunc NewResourceAction() *ResourceAction {\n\treturn &ResourceAction{}\n}\n\nfunc (p *ResourceAction) InitDefault() {\n}\n\nfunc (p *ResourceAction) GetKey() (v ActionKey) {\n\treturn p.Key\n}\n\nfunc (p *ResourceAction) GetEnable() (v bool) {\n\treturn p.Enable\n}\n\nvar fieldIDToName_ResourceAction = map[int16]string{\n\t1: \"Key\",\n\t2: \"Enable\",\n}\n\nfunc (p *ResourceAction) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetKey bool = false\n\tvar issetEnable bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetKey = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetEnable = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetKey {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetEnable {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceAction[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ResourceAction[fieldId]))\n}\n\nfunc (p *ResourceAction) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field ActionKey\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ActionKey(v)\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *ResourceAction) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Enable = _field\n\treturn nil\n}\n\nfunc (p *ResourceAction) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceAction\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceAction) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Key\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Key)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceAction) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Enable\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Enable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ResourceAction) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceAction(%+v)\", *p)\n\n}\n\n// For display, the implementer provides display information\ntype DisplayResourceInfo struct {\n\t// Resource ID\n\tResID *int64 `thrift:\"ResID,1,optional\" form:\"ResID\" json:\"ResID,omitempty\" query:\"ResID\"`\n\t// resource description\n\tDesc *string `thrift:\"Desc,5,optional\" form:\"Desc\" json:\"Desc,omitempty\" query:\"Desc\"`\n\t// Resource Icon, full url\n\tIcon *string `thrift:\"Icon,6,optional\" form:\"Icon\" json:\"Icon,omitempty\" query:\"Icon\"`\n\t// Resource status, each type of resource defines itself\n\tBizResStatus *int32 `thrift:\"BizResStatus,12,optional\" form:\"BizResStatus\" json:\"BizResStatus,omitempty\" query:\"BizResStatus\"`\n\t// Whether to enable multi-person editing\n\tCollaborationEnable *bool `thrift:\"CollaborationEnable,13,optional\" form:\"CollaborationEnable\" json:\"CollaborationEnable,omitempty\" query:\"CollaborationEnable\"`\n\t// Business carry extended information to res_type distinguish, each res_type defined schema and meaning is not the same, need to judge before use res_type\n\tBizExtend map[string]string `thrift:\"BizExtend,16,optional\" form:\"BizExtend\" json:\"BizExtend,omitempty\" query:\"BizExtend\"`\n\t// Different types of different operation buttons are agreed upon by the resource implementer and the front end. Return is displayed, if you want to hide a button, do not return;\n\tActions []*ResourceAction `thrift:\"Actions,17,optional\" form:\"Actions\" json:\"Actions,omitempty\" query:\"Actions\"`\n\t// Whether to ban entering the details page\n\tDetailDisable *bool `thrift:\"DetailDisable,18,optional\" form:\"DetailDisable\" json:\"DetailDisable,omitempty\" query:\"DetailDisable\"`\n\t// resource name\n\tName *string `thrift:\"Name,19,optional\" form:\"Name\" json:\"Name,omitempty\" query:\"Name\"`\n\t// Resource release status, 1 - unpublished, 2 - published\n\tPublishStatus *PublishStatus `thrift:\"PublishStatus,20,optional\" form:\"PublishStatus\" json:\"PublishStatus,omitempty\" query:\"PublishStatus\"`\n\t// Last edited, unix timestamp\n\tEditTime *int64 `thrift:\"EditTime,21,optional\" form:\"EditTime\" json:\"EditTime,omitempty\" query:\"EditTime\"`\n}\n\nfunc NewDisplayResourceInfo() *DisplayResourceInfo {\n\treturn &DisplayResourceInfo{}\n}\n\nfunc (p *DisplayResourceInfo) InitDefault() {\n}\n\nvar DisplayResourceInfo_ResID_DEFAULT int64\n\nfunc (p *DisplayResourceInfo) GetResID() (v int64) {\n\tif !p.IsSetResID() {\n\t\treturn DisplayResourceInfo_ResID_DEFAULT\n\t}\n\treturn *p.ResID\n}\n\nvar DisplayResourceInfo_Desc_DEFAULT string\n\nfunc (p *DisplayResourceInfo) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn DisplayResourceInfo_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar DisplayResourceInfo_Icon_DEFAULT string\n\nfunc (p *DisplayResourceInfo) GetIcon() (v string) {\n\tif !p.IsSetIcon() {\n\t\treturn DisplayResourceInfo_Icon_DEFAULT\n\t}\n\treturn *p.Icon\n}\n\nvar DisplayResourceInfo_BizResStatus_DEFAULT int32\n\nfunc (p *DisplayResourceInfo) GetBizResStatus() (v int32) {\n\tif !p.IsSetBizResStatus() {\n\t\treturn DisplayResourceInfo_BizResStatus_DEFAULT\n\t}\n\treturn *p.BizResStatus\n}\n\nvar DisplayResourceInfo_CollaborationEnable_DEFAULT bool\n\nfunc (p *DisplayResourceInfo) GetCollaborationEnable() (v bool) {\n\tif !p.IsSetCollaborationEnable() {\n\t\treturn DisplayResourceInfo_CollaborationEnable_DEFAULT\n\t}\n\treturn *p.CollaborationEnable\n}\n\nvar DisplayResourceInfo_BizExtend_DEFAULT map[string]string\n\nfunc (p *DisplayResourceInfo) GetBizExtend() (v map[string]string) {\n\tif !p.IsSetBizExtend() {\n\t\treturn DisplayResourceInfo_BizExtend_DEFAULT\n\t}\n\treturn p.BizExtend\n}\n\nvar DisplayResourceInfo_Actions_DEFAULT []*ResourceAction\n\nfunc (p *DisplayResourceInfo) GetActions() (v []*ResourceAction) {\n\tif !p.IsSetActions() {\n\t\treturn DisplayResourceInfo_Actions_DEFAULT\n\t}\n\treturn p.Actions\n}\n\nvar DisplayResourceInfo_DetailDisable_DEFAULT bool\n\nfunc (p *DisplayResourceInfo) GetDetailDisable() (v bool) {\n\tif !p.IsSetDetailDisable() {\n\t\treturn DisplayResourceInfo_DetailDisable_DEFAULT\n\t}\n\treturn *p.DetailDisable\n}\n\nvar DisplayResourceInfo_Name_DEFAULT string\n\nfunc (p *DisplayResourceInfo) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn DisplayResourceInfo_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar DisplayResourceInfo_PublishStatus_DEFAULT PublishStatus\n\nfunc (p *DisplayResourceInfo) GetPublishStatus() (v PublishStatus) {\n\tif !p.IsSetPublishStatus() {\n\t\treturn DisplayResourceInfo_PublishStatus_DEFAULT\n\t}\n\treturn *p.PublishStatus\n}\n\nvar DisplayResourceInfo_EditTime_DEFAULT int64\n\nfunc (p *DisplayResourceInfo) GetEditTime() (v int64) {\n\tif !p.IsSetEditTime() {\n\t\treturn DisplayResourceInfo_EditTime_DEFAULT\n\t}\n\treturn *p.EditTime\n}\n\nvar fieldIDToName_DisplayResourceInfo = map[int16]string{\n\t1:  \"ResID\",\n\t5:  \"Desc\",\n\t6:  \"Icon\",\n\t12: \"BizResStatus\",\n\t13: \"CollaborationEnable\",\n\t16: \"BizExtend\",\n\t17: \"Actions\",\n\t18: \"DetailDisable\",\n\t19: \"Name\",\n\t20: \"PublishStatus\",\n\t21: \"EditTime\",\n}\n\nfunc (p *DisplayResourceInfo) IsSetResID() bool {\n\treturn p.ResID != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetIcon() bool {\n\treturn p.Icon != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetBizResStatus() bool {\n\treturn p.BizResStatus != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetCollaborationEnable() bool {\n\treturn p.CollaborationEnable != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetBizExtend() bool {\n\treturn p.BizExtend != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetActions() bool {\n\treturn p.Actions != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetDetailDisable() bool {\n\treturn p.DetailDisable != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetPublishStatus() bool {\n\treturn p.PublishStatus != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetEditTime() bool {\n\treturn p.EditTime != nil\n}\n\nfunc (p *DisplayResourceInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DisplayResourceInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DisplayResourceInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ResID = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BizResStatus = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CollaborationEnable = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField16(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BizExtend = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField17(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ResourceAction, 0, size)\n\tvalues := make([]ResourceAction, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Actions = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DetailDisable = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field *PublishStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := PublishStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.PublishStatus = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EditTime = _field\n\treturn nil\n}\n\nfunc (p *DisplayResourceInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DisplayResourceInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DisplayResourceInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResID() {\n\t\tif err = oprot.WriteFieldBegin(\"ResID\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ResID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"Desc\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIcon() {\n\t\tif err = oprot.WriteFieldBegin(\"Icon\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Icon); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBizResStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"BizResStatus\", thrift.I32, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.BizResStatus); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCollaborationEnable() {\n\t\tif err = oprot.WriteFieldBegin(\"CollaborationEnable\", thrift.BOOL, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.CollaborationEnable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBizExtend() {\n\t\tif err = oprot.WriteFieldBegin(\"BizExtend\", thrift.MAP, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.BizExtend)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.BizExtend {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetActions() {\n\t\tif err = oprot.WriteFieldBegin(\"Actions\", thrift.LIST, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Actions)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Actions {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDetailDisable() {\n\t\tif err = oprot.WriteFieldBegin(\"DetailDisable\", thrift.BOOL, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.DetailDisable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"PublishStatus\", thrift.I32, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PublishStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditTime() {\n\t\tif err = oprot.WriteFieldBegin(\"EditTime\", thrift.I64, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EditTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\n\nfunc (p *DisplayResourceInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DisplayResourceInfo(%+v)\", *p)\n\n}\n\ntype SelectFieldList struct {\n\tFieldID    []string `thrift:\"FieldID,1,required\" form:\"FieldID,required\" json:\"FieldID,required\" query:\"FieldID,required\"`\n\tIsDistinct bool     `thrift:\"isDistinct,2,required\" form:\"isDistinct,required\" json:\"isDistinct,required\" query:\"isDistinct,required\"`\n}\n\nfunc NewSelectFieldList() *SelectFieldList {\n\treturn &SelectFieldList{}\n}\n\nfunc (p *SelectFieldList) InitDefault() {\n}\n\nfunc (p *SelectFieldList) GetFieldID() (v []string) {\n\treturn p.FieldID\n}\n\nfunc (p *SelectFieldList) GetIsDistinct() (v bool) {\n\treturn p.IsDistinct\n}\n\nvar fieldIDToName_SelectFieldList = map[int16]string{\n\t1: \"FieldID\",\n\t2: \"isDistinct\",\n}\n\nfunc (p *SelectFieldList) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetFieldID bool = false\n\tvar issetIsDistinct bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetFieldID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetIsDistinct = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetFieldID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetIsDistinct {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SelectFieldList[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SelectFieldList[fieldId]))\n}\n\nfunc (p *SelectFieldList) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FieldID = _field\n\treturn nil\n}\nfunc (p *SelectFieldList) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsDistinct = _field\n\treturn nil\n}\n\nfunc (p *SelectFieldList) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SelectFieldList\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SelectFieldList) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"FieldID\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.FieldID)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.FieldID {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SelectFieldList) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"isDistinct\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsDistinct); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *SelectFieldList) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SelectFieldList(%+v)\", *p)\n\n}\n\ntype Condition struct {\n\t// Lvalue field name\n\tLeft      string    `thrift:\"left,1,required\" form:\"left,required\" json:\"left,required\" query:\"left,required\"`\n\tOperation Operation `thrift:\"operation,2,required\" form:\"operation,required\" json:\"operation,required\" query:\"operation,required\"`\n\t// rvalue\n\tRight string `thrift:\"right,3,required\" form:\"right,required\" json:\"right,required\" query:\"right,required\"`\n}\n\nfunc NewCondition() *Condition {\n\treturn &Condition{}\n}\n\nfunc (p *Condition) InitDefault() {\n}\n\nfunc (p *Condition) GetLeft() (v string) {\n\treturn p.Left\n}\n\nfunc (p *Condition) GetOperation() (v Operation) {\n\treturn p.Operation\n}\n\nfunc (p *Condition) GetRight() (v string) {\n\treturn p.Right\n}\n\nvar fieldIDToName_Condition = map[int16]string{\n\t1: \"left\",\n\t2: \"operation\",\n\t3: \"right\",\n}\n\nfunc (p *Condition) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetLeft bool = false\n\tvar issetOperation bool = false\n\tvar issetRight bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetLeft = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetOperation = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetRight = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetLeft {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetOperation {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetRight {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Condition[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_Condition[fieldId]))\n}\n\nfunc (p *Condition) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Left = _field\n\treturn nil\n}\nfunc (p *Condition) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field Operation\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = Operation(v)\n\t}\n\tp.Operation = _field\n\treturn nil\n}\nfunc (p *Condition) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Right = _field\n\treturn nil\n}\n\nfunc (p *Condition) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Condition\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Condition) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"left\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Left); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Condition) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"operation\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Operation)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Condition) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"right\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Right); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *Condition) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Condition(%+v)\", *p)\n\n}\n\ntype ComplexCondition struct {\n\tConditions []*Condition `thrift:\"conditions,1,optional\" form:\"conditions\" json:\"conditions,omitempty\" query:\"conditions\"`\n\t// In order to expand, we don't need to\n\tNestedConditions *ComplexCondition `thrift:\"nestedConditions,2,optional\" form:\"nestedConditions\" json:\"nestedConditions,omitempty\" query:\"nestedConditions\"`\n\t// \"AND\" or \"OR\"\n\tLogic string `thrift:\"logic,3,required\" form:\"logic,required\" json:\"logic,required\" query:\"logic,required\"`\n}\n\nfunc NewComplexCondition() *ComplexCondition {\n\treturn &ComplexCondition{}\n}\n\nfunc (p *ComplexCondition) InitDefault() {\n}\n\nvar ComplexCondition_Conditions_DEFAULT []*Condition\n\nfunc (p *ComplexCondition) GetConditions() (v []*Condition) {\n\tif !p.IsSetConditions() {\n\t\treturn ComplexCondition_Conditions_DEFAULT\n\t}\n\treturn p.Conditions\n}\n\nvar ComplexCondition_NestedConditions_DEFAULT *ComplexCondition\n\nfunc (p *ComplexCondition) GetNestedConditions() (v *ComplexCondition) {\n\tif !p.IsSetNestedConditions() {\n\t\treturn ComplexCondition_NestedConditions_DEFAULT\n\t}\n\treturn p.NestedConditions\n}\n\nfunc (p *ComplexCondition) GetLogic() (v string) {\n\treturn p.Logic\n}\n\nvar fieldIDToName_ComplexCondition = map[int16]string{\n\t1: \"conditions\",\n\t2: \"nestedConditions\",\n\t3: \"logic\",\n}\n\nfunc (p *ComplexCondition) IsSetConditions() bool {\n\treturn p.Conditions != nil\n}\n\nfunc (p *ComplexCondition) IsSetNestedConditions() bool {\n\treturn p.NestedConditions != nil\n}\n\nfunc (p *ComplexCondition) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetLogic bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetLogic = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetLogic {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ComplexCondition[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ComplexCondition[fieldId]))\n}\n\nfunc (p *ComplexCondition) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Condition, 0, size)\n\tvalues := make([]Condition, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Conditions = _field\n\treturn nil\n}\nfunc (p *ComplexCondition) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewComplexCondition()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.NestedConditions = _field\n\treturn nil\n}\nfunc (p *ComplexCondition) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Logic = _field\n\treturn nil\n}\n\nfunc (p *ComplexCondition) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ComplexCondition\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ComplexCondition) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConditions() {\n\t\tif err = oprot.WriteFieldBegin(\"conditions\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Conditions)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Conditions {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ComplexCondition) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNestedConditions() {\n\t\tif err = oprot.WriteFieldBegin(\"nestedConditions\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.NestedConditions.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ComplexCondition) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"logic\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Logic); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ComplexCondition) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ComplexCondition(%+v)\", *p)\n\n}\n\ntype UpsertValues struct {\n\tFieldID    string `thrift:\"field_id,1\" form:\"field_id\" json:\"field_id\" query:\"field_id\"`\n\tFieldValue string `thrift:\"field_value,2\" form:\"field_value\" json:\"field_value\" query:\"field_value\"`\n}\n\nfunc NewUpsertValues() *UpsertValues {\n\treturn &UpsertValues{}\n}\n\nfunc (p *UpsertValues) InitDefault() {\n}\n\nfunc (p *UpsertValues) GetFieldID() (v string) {\n\treturn p.FieldID\n}\n\nfunc (p *UpsertValues) GetFieldValue() (v string) {\n\treturn p.FieldValue\n}\n\nvar fieldIDToName_UpsertValues = map[int16]string{\n\t1: \"field_id\",\n\t2: \"field_value\",\n}\n\nfunc (p *UpsertValues) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpsertValues[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpsertValues) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FieldID = _field\n\treturn nil\n}\nfunc (p *UpsertValues) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FieldValue = _field\n\treturn nil\n}\n\nfunc (p *UpsertValues) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpsertValues\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpsertValues) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"field_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FieldID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpsertValues) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"field_value\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FieldValue); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UpsertValues) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpsertValues(%+v)\", *p)\n\n}\n\ntype Row struct {\n\tValues []*UpsertValues `thrift:\"values,1\" form:\"values\" json:\"values\" query:\"values\"`\n}\n\nfunc NewRow() *Row {\n\treturn &Row{}\n}\n\nfunc (p *Row) InitDefault() {\n}\n\nfunc (p *Row) GetValues() (v []*UpsertValues) {\n\treturn p.Values\n}\n\nvar fieldIDToName_Row = map[int16]string{\n\t1: \"values\",\n}\n\nfunc (p *Row) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Row[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Row) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*UpsertValues, 0, size)\n\tvalues := make([]UpsertValues, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Values = _field\n\treturn nil\n}\n\nfunc (p *Row) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Row\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Row) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"values\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Values)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Values {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *Row) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Row(%+v)\", *p)\n\n}\n\ntype CRUDDatabaseRequest struct {\n\t// Database id\n\tDatabaseInfoID int64 `thrift:\"database_info_id,1,required\" form:\"database_info_id,required\" json:\"database_info_id,required\" query:\"database_info_id,required\"`\n\t// Workflow id, wk flow latitude data isolation\n\tWorkflowID int64 `thrift:\"workflow_id,2\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\t// Project id, not isolated under the same project\n\tProjectID int64 `thrift:\"project_id,3\" form:\"project_id\" json:\"project_id\" query:\"project_id\"`\n\t// bot id\n\tBotID int64 `thrift:\"bot_id,4\" form:\"bot_id\" json:\"bot_id\" query:\"bot_id\"`\n\t// line of business id\n\tConnectorID int64 `thrift:\"connector_id,5\" form:\"connector_id\" json:\"connector_id\" query:\"connector_id\"`\n\t// line of business user id\n\tConnectorUID string `thrift:\"connector_uid,6\" form:\"connector_uid\" json:\"connector_uid\" query:\"connector_uid\"`\n\t// Table type\n\tTableType TableType `thrift:\"table_type,7,required\" form:\"table_type,required\" json:\"table_type,required\" query:\"table_type,required\"`\n\t// Workflow test run identification\n\tWftestID string `thrift:\"wftest_id,8\" form:\"wftest_id\" json:\"wftest_id\" query:\"wftest_id\"`\n\t// citation information\n\tRefInfo *RefInfo `thrift:\"ref_info,9,optional\" form:\"ref_info\" json:\"ref_info,omitempty\" query:\"ref_info\"`\n\t// SQL params\n\tSQLParams []*SqlParamVal `thrift:\"sql_params,10,optional\" form:\"sql_params\" json:\"sql_params,omitempty\" query:\"sql_params\"`\n\t// operation type\n\tOperateType OperateType `thrift:\"operate_type,11,required\" form:\"operate_type,required\" json:\"operate_type,required\" query:\"operate_type,required\"`\n\t// List of fields to query when selected\n\tFieldList *SelectFieldList `thrift:\"field_list,12,optional\" form:\"field_list\" json:\"field_list,omitempty\" query:\"field_list\"`\n\t// Order by field list\n\tOrderByList []*OrderBy `thrift:\"order_by_list,13,optional\" form:\"order_by_list\" json:\"order_by_list,omitempty\" query:\"order_by_list\"`\n\t// limit\n\tLimit *int64 `thrift:\"limit,14,optional\" form:\"limit\" json:\"limit,omitempty\" query:\"limit\"`\n\t// offset\n\tOffset *int64 `thrift:\"offset,15,optional\" form:\"offset\" json:\"offset,omitempty\" query:\"offset\"`\n\t// query condition\n\tCondition *ComplexCondition `thrift:\"condition,16,optional\" form:\"condition\" json:\"condition,omitempty\" query:\"condition\"`\n\t// Data to upsert\n\tRows []*Row `thrift:\"rows,17,optional\" form:\"rows\" json:\"rows,omitempty\" query:\"rows\"`\n}\n\nfunc NewCRUDDatabaseRequest() *CRUDDatabaseRequest {\n\treturn &CRUDDatabaseRequest{}\n}\n\nfunc (p *CRUDDatabaseRequest) InitDefault() {\n}\n\nfunc (p *CRUDDatabaseRequest) GetDatabaseInfoID() (v int64) {\n\treturn p.DatabaseInfoID\n}\n\nfunc (p *CRUDDatabaseRequest) GetWorkflowID() (v int64) {\n\treturn p.WorkflowID\n}\n\nfunc (p *CRUDDatabaseRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nfunc (p *CRUDDatabaseRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *CRUDDatabaseRequest) GetConnectorID() (v int64) {\n\treturn p.ConnectorID\n}\n\nfunc (p *CRUDDatabaseRequest) GetConnectorUID() (v string) {\n\treturn p.ConnectorUID\n}\n\nfunc (p *CRUDDatabaseRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nfunc (p *CRUDDatabaseRequest) GetWftestID() (v string) {\n\treturn p.WftestID\n}\n\nvar CRUDDatabaseRequest_RefInfo_DEFAULT *RefInfo\n\nfunc (p *CRUDDatabaseRequest) GetRefInfo() (v *RefInfo) {\n\tif !p.IsSetRefInfo() {\n\t\treturn CRUDDatabaseRequest_RefInfo_DEFAULT\n\t}\n\treturn p.RefInfo\n}\n\nvar CRUDDatabaseRequest_SQLParams_DEFAULT []*SqlParamVal\n\nfunc (p *CRUDDatabaseRequest) GetSQLParams() (v []*SqlParamVal) {\n\tif !p.IsSetSQLParams() {\n\t\treturn CRUDDatabaseRequest_SQLParams_DEFAULT\n\t}\n\treturn p.SQLParams\n}\n\nfunc (p *CRUDDatabaseRequest) GetOperateType() (v OperateType) {\n\treturn p.OperateType\n}\n\nvar CRUDDatabaseRequest_FieldList_DEFAULT *SelectFieldList\n\nfunc (p *CRUDDatabaseRequest) GetFieldList() (v *SelectFieldList) {\n\tif !p.IsSetFieldList() {\n\t\treturn CRUDDatabaseRequest_FieldList_DEFAULT\n\t}\n\treturn p.FieldList\n}\n\nvar CRUDDatabaseRequest_OrderByList_DEFAULT []*OrderBy\n\nfunc (p *CRUDDatabaseRequest) GetOrderByList() (v []*OrderBy) {\n\tif !p.IsSetOrderByList() {\n\t\treturn CRUDDatabaseRequest_OrderByList_DEFAULT\n\t}\n\treturn p.OrderByList\n}\n\nvar CRUDDatabaseRequest_Limit_DEFAULT int64\n\nfunc (p *CRUDDatabaseRequest) GetLimit() (v int64) {\n\tif !p.IsSetLimit() {\n\t\treturn CRUDDatabaseRequest_Limit_DEFAULT\n\t}\n\treturn *p.Limit\n}\n\nvar CRUDDatabaseRequest_Offset_DEFAULT int64\n\nfunc (p *CRUDDatabaseRequest) GetOffset() (v int64) {\n\tif !p.IsSetOffset() {\n\t\treturn CRUDDatabaseRequest_Offset_DEFAULT\n\t}\n\treturn *p.Offset\n}\n\nvar CRUDDatabaseRequest_Condition_DEFAULT *ComplexCondition\n\nfunc (p *CRUDDatabaseRequest) GetCondition() (v *ComplexCondition) {\n\tif !p.IsSetCondition() {\n\t\treturn CRUDDatabaseRequest_Condition_DEFAULT\n\t}\n\treturn p.Condition\n}\n\nvar CRUDDatabaseRequest_Rows_DEFAULT []*Row\n\nfunc (p *CRUDDatabaseRequest) GetRows() (v []*Row) {\n\tif !p.IsSetRows() {\n\t\treturn CRUDDatabaseRequest_Rows_DEFAULT\n\t}\n\treturn p.Rows\n}\n\nvar fieldIDToName_CRUDDatabaseRequest = map[int16]string{\n\t1:  \"database_info_id\",\n\t2:  \"workflow_id\",\n\t3:  \"project_id\",\n\t4:  \"bot_id\",\n\t5:  \"connector_id\",\n\t6:  \"connector_uid\",\n\t7:  \"table_type\",\n\t8:  \"wftest_id\",\n\t9:  \"ref_info\",\n\t10: \"sql_params\",\n\t11: \"operate_type\",\n\t12: \"field_list\",\n\t13: \"order_by_list\",\n\t14: \"limit\",\n\t15: \"offset\",\n\t16: \"condition\",\n\t17: \"rows\",\n}\n\nfunc (p *CRUDDatabaseRequest) IsSetRefInfo() bool {\n\treturn p.RefInfo != nil\n}\n\nfunc (p *CRUDDatabaseRequest) IsSetSQLParams() bool {\n\treturn p.SQLParams != nil\n}\n\nfunc (p *CRUDDatabaseRequest) IsSetFieldList() bool {\n\treturn p.FieldList != nil\n}\n\nfunc (p *CRUDDatabaseRequest) IsSetOrderByList() bool {\n\treturn p.OrderByList != nil\n}\n\nfunc (p *CRUDDatabaseRequest) IsSetLimit() bool {\n\treturn p.Limit != nil\n}\n\nfunc (p *CRUDDatabaseRequest) IsSetOffset() bool {\n\treturn p.Offset != nil\n}\n\nfunc (p *CRUDDatabaseRequest) IsSetCondition() bool {\n\treturn p.Condition != nil\n}\n\nfunc (p *CRUDDatabaseRequest) IsSetRows() bool {\n\treturn p.Rows != nil\n}\n\nfunc (p *CRUDDatabaseRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDatabaseInfoID bool = false\n\tvar issetTableType bool = false\n\tvar issetOperateType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDatabaseInfoID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetOperateType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDatabaseInfoID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTableType {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetOperateType {\n\t\tfieldId = 11\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CRUDDatabaseRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CRUDDatabaseRequest[fieldId]))\n}\n\nfunc (p *CRUDDatabaseRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatabaseInfoID = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorUID = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WftestID = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField9(iprot thrift.TProtocol) error {\n\t_field := NewRefInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RefInfo = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField10(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*SqlParamVal, 0, size)\n\tvalues := make([]SqlParamVal, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SQLParams = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field OperateType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = OperateType(v)\n\t}\n\tp.OperateType = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField12(iprot thrift.TProtocol) error {\n\t_field := NewSelectFieldList()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FieldList = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField13(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*OrderBy, 0, size)\n\tvalues := make([]OrderBy, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OrderByList = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Limit = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Offset = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField16(iprot thrift.TProtocol) error {\n\t_field := NewComplexCondition()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Condition = _field\n\treturn nil\n}\nfunc (p *CRUDDatabaseRequest) ReadField17(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Row, 0, size)\n\tvalues := make([]Row, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Rows = _field\n\treturn nil\n}\n\nfunc (p *CRUDDatabaseRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CRUDDatabaseRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CRUDDatabaseRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_info_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatabaseInfoID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_uid\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorUID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"wftest_id\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WftestID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRefInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"ref_info\", thrift.STRUCT, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RefInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSQLParams() {\n\t\tif err = oprot.WriteFieldBegin(\"sql_params\", thrift.LIST, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SQLParams)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SQLParams {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"operate_type\", thrift.I32, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.OperateType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFieldList() {\n\t\tif err = oprot.WriteFieldBegin(\"field_list\", thrift.STRUCT, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.FieldList.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderByList() {\n\t\tif err = oprot.WriteFieldBegin(\"order_by_list\", thrift.LIST, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OrderByList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.OrderByList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLimit() {\n\t\tif err = oprot.WriteFieldBegin(\"limit\", thrift.I64, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Limit); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOffset() {\n\t\tif err = oprot.WriteFieldBegin(\"offset\", thrift.I64, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Offset); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCondition() {\n\t\tif err = oprot.WriteFieldBegin(\"condition\", thrift.STRUCT, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Condition.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *CRUDDatabaseRequest) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRows() {\n\t\tif err = oprot.WriteFieldBegin(\"rows\", thrift.LIST, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Rows)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Rows {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\n\nfunc (p *CRUDDatabaseRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CRUDDatabaseRequest(%+v)\", *p)\n\n}\n\ntype SourceInfo struct {\n\t// TOS address for local file upload\n\tTosURI *string `thrift:\"tos_uri,1,optional\" form:\"tos_uri\" json:\"tos_uri,omitempty\" query:\"tos_uri\"`\n\t// imagex_uri, and tos_uri choose one, imagex_uri priority, need to get data and sign url through imagex method\n\tImagexURI *string `thrift:\"imagex_uri,2,optional\" form:\"imagex_uri\" json:\"imagex_uri,omitempty\" query:\"imagex_uri\"`\n}\n\nfunc NewSourceInfo() *SourceInfo {\n\treturn &SourceInfo{}\n}\n\nfunc (p *SourceInfo) InitDefault() {\n}\n\nvar SourceInfo_TosURI_DEFAULT string\n\nfunc (p *SourceInfo) GetTosURI() (v string) {\n\tif !p.IsSetTosURI() {\n\t\treturn SourceInfo_TosURI_DEFAULT\n\t}\n\treturn *p.TosURI\n}\n\nvar SourceInfo_ImagexURI_DEFAULT string\n\nfunc (p *SourceInfo) GetImagexURI() (v string) {\n\tif !p.IsSetImagexURI() {\n\t\treturn SourceInfo_ImagexURI_DEFAULT\n\t}\n\treturn *p.ImagexURI\n}\n\nvar fieldIDToName_SourceInfo = map[int16]string{\n\t1: \"tos_uri\",\n\t2: \"imagex_uri\",\n}\n\nfunc (p *SourceInfo) IsSetTosURI() bool {\n\treturn p.TosURI != nil\n}\n\nfunc (p *SourceInfo) IsSetImagexURI() bool {\n\treturn p.ImagexURI != nil\n}\n\nfunc (p *SourceInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SourceInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SourceInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TosURI = _field\n\treturn nil\n}\nfunc (p *SourceInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ImagexURI = _field\n\treturn nil\n}\n\nfunc (p *SourceInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SourceInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SourceInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTosURI() {\n\t\tif err = oprot.WriteFieldBegin(\"tos_uri\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TosURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SourceInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetImagexURI() {\n\t\tif err = oprot.WriteFieldBegin(\"imagex_uri\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ImagexURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *SourceInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SourceInfo(%+v)\", *p)\n\n}\n\ntype ValidateTableSchemaRequest struct {\n\tSpaceID    int64 `thrift:\"space_id,1\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\tDatabaseID int64 `thrift:\"database_id,2\" form:\"database_id\" json:\"database_id,string\" query:\"database_id\"`\n\t// Information from the source file\n\tSourceInfo *SourceInfo `thrift:\"source_info,3\" form:\"source_file\" json:\"source_file\"`\n\tTableSheet *TableSheet `thrift:\"table_sheet,4\" form:\"table_sheet\" json:\"table_sheet\" query:\"table_sheet\"`\n\tTableType  TableType   `thrift:\"table_type,5\" form:\"table_type\" json:\"table_type\" query:\"table_type\"`\n\tBase       *base.Base  `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewValidateTableSchemaRequest() *ValidateTableSchemaRequest {\n\treturn &ValidateTableSchemaRequest{}\n}\n\nfunc (p *ValidateTableSchemaRequest) InitDefault() {\n}\n\nfunc (p *ValidateTableSchemaRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *ValidateTableSchemaRequest) GetDatabaseID() (v int64) {\n\treturn p.DatabaseID\n}\n\nvar ValidateTableSchemaRequest_SourceInfo_DEFAULT *SourceInfo\n\nfunc (p *ValidateTableSchemaRequest) GetSourceInfo() (v *SourceInfo) {\n\tif !p.IsSetSourceInfo() {\n\t\treturn ValidateTableSchemaRequest_SourceInfo_DEFAULT\n\t}\n\treturn p.SourceInfo\n}\n\nvar ValidateTableSchemaRequest_TableSheet_DEFAULT *TableSheet\n\nfunc (p *ValidateTableSchemaRequest) GetTableSheet() (v *TableSheet) {\n\tif !p.IsSetTableSheet() {\n\t\treturn ValidateTableSchemaRequest_TableSheet_DEFAULT\n\t}\n\treturn p.TableSheet\n}\n\nfunc (p *ValidateTableSchemaRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nvar ValidateTableSchemaRequest_Base_DEFAULT *base.Base\n\nfunc (p *ValidateTableSchemaRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ValidateTableSchemaRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ValidateTableSchemaRequest = map[int16]string{\n\t1:   \"space_id\",\n\t2:   \"database_id\",\n\t3:   \"source_info\",\n\t4:   \"table_sheet\",\n\t5:   \"table_type\",\n\t255: \"Base\",\n}\n\nfunc (p *ValidateTableSchemaRequest) IsSetSourceInfo() bool {\n\treturn p.SourceInfo != nil\n}\n\nfunc (p *ValidateTableSchemaRequest) IsSetTableSheet() bool {\n\treturn p.TableSheet != nil\n}\n\nfunc (p *ValidateTableSchemaRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ValidateTableSchemaRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ValidateTableSchemaRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ValidateTableSchemaRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatabaseID = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewSourceInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SourceInfo = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewTableSheet()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TableSheet = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ValidateTableSchemaRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateTableSchemaRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ValidateTableSchemaRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatabaseID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"source_info\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.SourceInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_sheet\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.TableSheet.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ValidateTableSchemaRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ValidateTableSchemaRequest(%+v)\", *p)\n\n}\n\ntype TableSheet struct {\n\t// User selected sheet id\n\tSheetID int64 `thrift:\"sheet_id,1\" form:\"sheet_id\" json:\"sheet_id,string\" query:\"sheet_id\"`\n\t// The number of header rows selected by the user, numbered from 0\n\tHeaderLineIdx int64 `thrift:\"header_line_idx,2\" form:\"header_line_idx\" json:\"header_line_idx,string\" query:\"header_line_idx\"`\n\t// User-selected starting line number, numbered from 0\n\tStartLineIdx int64 `thrift:\"start_line_idx,3\" form:\"start_line_idx\" json:\"start_line_idx,string\" query:\"start_line_idx\"`\n}\n\nfunc NewTableSheet() *TableSheet {\n\treturn &TableSheet{}\n}\n\nfunc (p *TableSheet) InitDefault() {\n}\n\nfunc (p *TableSheet) GetSheetID() (v int64) {\n\treturn p.SheetID\n}\n\nfunc (p *TableSheet) GetHeaderLineIdx() (v int64) {\n\treturn p.HeaderLineIdx\n}\n\nfunc (p *TableSheet) GetStartLineIdx() (v int64) {\n\treturn p.StartLineIdx\n}\n\nvar fieldIDToName_TableSheet = map[int16]string{\n\t1: \"sheet_id\",\n\t2: \"header_line_idx\",\n\t3: \"start_line_idx\",\n}\n\nfunc (p *TableSheet) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TableSheet[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TableSheet) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SheetID = _field\n\treturn nil\n}\nfunc (p *TableSheet) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HeaderLineIdx = _field\n\treturn nil\n}\nfunc (p *TableSheet) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StartLineIdx = _field\n\treturn nil\n}\n\nfunc (p *TableSheet) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TableSheet\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TableSheet) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sheet_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SheetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TableSheet) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"header_line_idx\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.HeaderLineIdx); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TableSheet) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"start_line_idx\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.StartLineIdx); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *TableSheet) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TableSheet(%+v)\", *p)\n\n}\n\ntype ValidateTableSchemaResponse struct {\n\tSchemaValidResult map[string]string `thrift:\"SchemaValidResult,1,optional\" form:\"SchemaValidResult\" json:\"SchemaValidResult,omitempty\" query:\"SchemaValidResult\"`\n\t// If it fails, an error code will be returned.\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewValidateTableSchemaResponse() *ValidateTableSchemaResponse {\n\treturn &ValidateTableSchemaResponse{}\n}\n\nfunc (p *ValidateTableSchemaResponse) InitDefault() {\n}\n\nvar ValidateTableSchemaResponse_SchemaValidResult_DEFAULT map[string]string\n\nfunc (p *ValidateTableSchemaResponse) GetSchemaValidResult() (v map[string]string) {\n\tif !p.IsSetSchemaValidResult() {\n\t\treturn ValidateTableSchemaResponse_SchemaValidResult_DEFAULT\n\t}\n\treturn p.SchemaValidResult\n}\n\nfunc (p *ValidateTableSchemaResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ValidateTableSchemaResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ValidateTableSchemaResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ValidateTableSchemaResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ValidateTableSchemaResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ValidateTableSchemaResponse = map[int16]string{\n\t1:   \"SchemaValidResult\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ValidateTableSchemaResponse) IsSetSchemaValidResult() bool {\n\treturn p.SchemaValidResult != nil\n}\n\nfunc (p *ValidateTableSchemaResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ValidateTableSchemaResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ValidateTableSchemaResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ValidateTableSchemaResponse[fieldId]))\n}\n\nfunc (p *ValidateTableSchemaResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SchemaValidResult = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ValidateTableSchemaResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateTableSchemaResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ValidateTableSchemaResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSchemaValidResult() {\n\t\tif err = oprot.WriteFieldBegin(\"SchemaValidResult\", thrift.MAP, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.SchemaValidResult)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.SchemaValidResult {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ValidateTableSchemaResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ValidateTableSchemaResponse(%+v)\", *p)\n\n}\n\ntype GetTableSchemaRequest struct {\n\t// Table parsing information, default initial value 0, 0, 1\n\tTableSheet *TableSheet `thrift:\"table_sheet,1,optional\" form:\"table_sheet\" json:\"table_sheet,omitempty\" query:\"table_sheet\"`\n\t// All data is returned by default without passing it on.\n\tTableDataType *TableDataType `thrift:\"table_data_type,2,optional\" form:\"table_data_type\" json:\"table_data_type,omitempty\" query:\"table_data_type\"`\n\t// Compatible with pre-refactoring versions: pass this value if you need to pull the schema of the current document\n\tDatabaseID *int64 `thrift:\"database_id,3,optional\" form:\"database_id\" json:\"database_id,string,omitempty\" query:\"database_id\"`\n\t// Source file information, add segment/before logic migrate here\n\tSourceFile *SourceInfo `thrift:\"source_file,4,optional\" form:\"source_file\" json:\"source_file,omitempty\" query:\"source_file\"`\n\tBase       *base.Base  `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetTableSchemaRequest() *GetTableSchemaRequest {\n\treturn &GetTableSchemaRequest{}\n}\n\nfunc (p *GetTableSchemaRequest) InitDefault() {\n}\n\nvar GetTableSchemaRequest_TableSheet_DEFAULT *TableSheet\n\nfunc (p *GetTableSchemaRequest) GetTableSheet() (v *TableSheet) {\n\tif !p.IsSetTableSheet() {\n\t\treturn GetTableSchemaRequest_TableSheet_DEFAULT\n\t}\n\treturn p.TableSheet\n}\n\nvar GetTableSchemaRequest_TableDataType_DEFAULT TableDataType\n\nfunc (p *GetTableSchemaRequest) GetTableDataType() (v TableDataType) {\n\tif !p.IsSetTableDataType() {\n\t\treturn GetTableSchemaRequest_TableDataType_DEFAULT\n\t}\n\treturn *p.TableDataType\n}\n\nvar GetTableSchemaRequest_DatabaseID_DEFAULT int64\n\nfunc (p *GetTableSchemaRequest) GetDatabaseID() (v int64) {\n\tif !p.IsSetDatabaseID() {\n\t\treturn GetTableSchemaRequest_DatabaseID_DEFAULT\n\t}\n\treturn *p.DatabaseID\n}\n\nvar GetTableSchemaRequest_SourceFile_DEFAULT *SourceInfo\n\nfunc (p *GetTableSchemaRequest) GetSourceFile() (v *SourceInfo) {\n\tif !p.IsSetSourceFile() {\n\t\treturn GetTableSchemaRequest_SourceFile_DEFAULT\n\t}\n\treturn p.SourceFile\n}\n\nvar GetTableSchemaRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetTableSchemaRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetTableSchemaRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetTableSchemaRequest = map[int16]string{\n\t1:   \"table_sheet\",\n\t2:   \"table_data_type\",\n\t3:   \"database_id\",\n\t4:   \"source_file\",\n\t255: \"Base\",\n}\n\nfunc (p *GetTableSchemaRequest) IsSetTableSheet() bool {\n\treturn p.TableSheet != nil\n}\n\nfunc (p *GetTableSchemaRequest) IsSetTableDataType() bool {\n\treturn p.TableDataType != nil\n}\n\nfunc (p *GetTableSchemaRequest) IsSetDatabaseID() bool {\n\treturn p.DatabaseID != nil\n}\n\nfunc (p *GetTableSchemaRequest) IsSetSourceFile() bool {\n\treturn p.SourceFile != nil\n}\n\nfunc (p *GetTableSchemaRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetTableSchemaRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetTableSchemaRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetTableSchemaRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewTableSheet()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TableSheet = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *TableDataType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TableDataType(v)\n\t\t_field = &tmp\n\t}\n\tp.TableDataType = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DatabaseID = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewSourceInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SourceFile = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetTableSchemaRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTableSchemaRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetTableSchemaRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableSheet() {\n\t\tif err = oprot.WriteFieldBegin(\"table_sheet\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TableSheet.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetTableSchemaRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableDataType() {\n\t\tif err = oprot.WriteFieldBegin(\"table_data_type\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.TableDataType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetTableSchemaRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDatabaseID() {\n\t\tif err = oprot.WriteFieldBegin(\"database_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.DatabaseID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetTableSchemaRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSourceFile() {\n\t\tif err = oprot.WriteFieldBegin(\"source_file\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SourceFile.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetTableSchemaRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetTableSchemaRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetTableSchemaRequest(%+v)\", *p)\n\n}\n\ntype TableColumn struct {\n\t// Column ID\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\t// column_name\n\tColumnName string `thrift:\"column_name,2\" form:\"column_name\" json:\"column_name\" query:\"column_name\"`\n\t// List the serial number originally in excel\n\tSequence int64 `thrift:\"sequence,3\" form:\"sequence\" json:\"sequence,string\" query:\"sequence\"`\n\t// column type\n\tColumnType         *ColumnType `thrift:\"column_type,4,optional\" form:\"column_type\" json:\"column_type,omitempty\" query:\"column_type\"`\n\tContainsEmptyValue *bool       `thrift:\"contains_empty_value,5,optional\" form:\"contains_empty_value\" json:\"contains_empty_value,omitempty\" query:\"contains_empty_value\"`\n\t// describe\n\tDesc *string `thrift:\"desc,6,optional\" form:\"desc\" json:\"desc,omitempty\" query:\"desc\"`\n}\n\nfunc NewTableColumn() *TableColumn {\n\treturn &TableColumn{}\n}\n\nfunc (p *TableColumn) InitDefault() {\n}\n\nfunc (p *TableColumn) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *TableColumn) GetColumnName() (v string) {\n\treturn p.ColumnName\n}\n\nfunc (p *TableColumn) GetSequence() (v int64) {\n\treturn p.Sequence\n}\n\nvar TableColumn_ColumnType_DEFAULT ColumnType\n\nfunc (p *TableColumn) GetColumnType() (v ColumnType) {\n\tif !p.IsSetColumnType() {\n\t\treturn TableColumn_ColumnType_DEFAULT\n\t}\n\treturn *p.ColumnType\n}\n\nvar TableColumn_ContainsEmptyValue_DEFAULT bool\n\nfunc (p *TableColumn) GetContainsEmptyValue() (v bool) {\n\tif !p.IsSetContainsEmptyValue() {\n\t\treturn TableColumn_ContainsEmptyValue_DEFAULT\n\t}\n\treturn *p.ContainsEmptyValue\n}\n\nvar TableColumn_Desc_DEFAULT string\n\nfunc (p *TableColumn) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn TableColumn_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar fieldIDToName_TableColumn = map[int16]string{\n\t1: \"id\",\n\t2: \"column_name\",\n\t3: \"sequence\",\n\t4: \"column_type\",\n\t5: \"contains_empty_value\",\n\t6: \"desc\",\n}\n\nfunc (p *TableColumn) IsSetColumnType() bool {\n\treturn p.ColumnType != nil\n}\n\nfunc (p *TableColumn) IsSetContainsEmptyValue() bool {\n\treturn p.ContainsEmptyValue != nil\n}\n\nfunc (p *TableColumn) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *TableColumn) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TableColumn[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TableColumn) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *TableColumn) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ColumnName = _field\n\treturn nil\n}\nfunc (p *TableColumn) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Sequence = _field\n\treturn nil\n}\nfunc (p *TableColumn) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *ColumnType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ColumnType(v)\n\t\t_field = &tmp\n\t}\n\tp.ColumnType = _field\n\treturn nil\n}\nfunc (p *TableColumn) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ContainsEmptyValue = _field\n\treturn nil\n}\nfunc (p *TableColumn) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\n\nfunc (p *TableColumn) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TableColumn\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TableColumn) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TableColumn) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"column_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ColumnName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TableColumn) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sequence\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Sequence); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *TableColumn) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetColumnType() {\n\t\tif err = oprot.WriteFieldBegin(\"column_type\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ColumnType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *TableColumn) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContainsEmptyValue() {\n\t\tif err = oprot.WriteFieldBegin(\"contains_empty_value\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.ContainsEmptyValue); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *TableColumn) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *TableColumn) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TableColumn(%+v)\", *p)\n\n}\n\ntype GetDatabaseFileProgressRequest struct {\n\tDatabaseID int64 `thrift:\"database_id,1\" form:\"database_id\" json:\"database_id,string\" query:\"database_id\"`\n\t// Table type\n\tTableType TableType  `thrift:\"table_type,2,required\" form:\"table_type,required\" json:\"table_type,required\" query:\"table_type,required\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetDatabaseFileProgressRequest() *GetDatabaseFileProgressRequest {\n\treturn &GetDatabaseFileProgressRequest{}\n}\n\nfunc (p *GetDatabaseFileProgressRequest) InitDefault() {\n}\n\nfunc (p *GetDatabaseFileProgressRequest) GetDatabaseID() (v int64) {\n\treturn p.DatabaseID\n}\n\nfunc (p *GetDatabaseFileProgressRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nvar GetDatabaseFileProgressRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetDatabaseFileProgressRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetDatabaseFileProgressRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetDatabaseFileProgressRequest = map[int16]string{\n\t1:   \"database_id\",\n\t2:   \"table_type\",\n\t255: \"Base\",\n}\n\nfunc (p *GetDatabaseFileProgressRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetDatabaseFileProgressRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetTableType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTableType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetTableType {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDatabaseFileProgressRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDatabaseFileProgressRequest[fieldId]))\n}\n\nfunc (p *GetDatabaseFileProgressRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatabaseID = _field\n\treturn nil\n}\nfunc (p *GetDatabaseFileProgressRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *GetDatabaseFileProgressRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetDatabaseFileProgressRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDatabaseFileProgressRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDatabaseFileProgressRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatabaseID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDatabaseFileProgressRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDatabaseFileProgressRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDatabaseFileProgressRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDatabaseFileProgressRequest(%+v)\", *p)\n\n}\n\ntype GetDatabaseFileProgressResponse struct {\n\tData     *DatabaseFileProgressData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                     `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                    `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp            `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetDatabaseFileProgressResponse() *GetDatabaseFileProgressResponse {\n\treturn &GetDatabaseFileProgressResponse{}\n}\n\nfunc (p *GetDatabaseFileProgressResponse) InitDefault() {\n}\n\nvar GetDatabaseFileProgressResponse_Data_DEFAULT *DatabaseFileProgressData\n\nfunc (p *GetDatabaseFileProgressResponse) GetData() (v *DatabaseFileProgressData) {\n\tif !p.IsSetData() {\n\t\treturn GetDatabaseFileProgressResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetDatabaseFileProgressResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetDatabaseFileProgressResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetDatabaseFileProgressResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetDatabaseFileProgressResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetDatabaseFileProgressResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetDatabaseFileProgressResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetDatabaseFileProgressResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetDatabaseFileProgressResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetDatabaseFileProgressResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDatabaseFileProgressResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDatabaseFileProgressResponse[fieldId]))\n}\n\nfunc (p *GetDatabaseFileProgressResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDatabaseFileProgressData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetDatabaseFileProgressResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetDatabaseFileProgressResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetDatabaseFileProgressResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetDatabaseFileProgressResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDatabaseFileProgressResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDatabaseFileProgressResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDatabaseFileProgressResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetDatabaseFileProgressResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetDatabaseFileProgressResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDatabaseFileProgressResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDatabaseFileProgressResponse(%+v)\", *p)\n\n}\n\ntype DatabaseFileProgressData struct {\n\tFileName string `thrift:\"file_name,1\" form:\"file_name\" json:\"file_name\" query:\"file_name\"`\n\tProgress int32  `thrift:\"progress,2\" form:\"progress\" json:\"progress\" query:\"progress\"`\n\t//Describe the information if there is a representative file processing failure\n\tStatusDescript *string `thrift:\"status_descript,3,optional\" form:\"status_descript\" json:\"status_descript,omitempty\" query:\"status_descript\"`\n}\n\nfunc NewDatabaseFileProgressData() *DatabaseFileProgressData {\n\treturn &DatabaseFileProgressData{}\n}\n\nfunc (p *DatabaseFileProgressData) InitDefault() {\n}\n\nfunc (p *DatabaseFileProgressData) GetFileName() (v string) {\n\treturn p.FileName\n}\n\nfunc (p *DatabaseFileProgressData) GetProgress() (v int32) {\n\treturn p.Progress\n}\n\nvar DatabaseFileProgressData_StatusDescript_DEFAULT string\n\nfunc (p *DatabaseFileProgressData) GetStatusDescript() (v string) {\n\tif !p.IsSetStatusDescript() {\n\t\treturn DatabaseFileProgressData_StatusDescript_DEFAULT\n\t}\n\treturn *p.StatusDescript\n}\n\nvar fieldIDToName_DatabaseFileProgressData = map[int16]string{\n\t1: \"file_name\",\n\t2: \"progress\",\n\t3: \"status_descript\",\n}\n\nfunc (p *DatabaseFileProgressData) IsSetStatusDescript() bool {\n\treturn p.StatusDescript != nil\n}\n\nfunc (p *DatabaseFileProgressData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatabaseFileProgressData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatabaseFileProgressData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileName = _field\n\treturn nil\n}\nfunc (p *DatabaseFileProgressData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Progress = _field\n\treturn nil\n}\nfunc (p *DatabaseFileProgressData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.StatusDescript = _field\n\treturn nil\n}\n\nfunc (p *DatabaseFileProgressData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatabaseFileProgressData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatabaseFileProgressData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FileName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DatabaseFileProgressData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"progress\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Progress); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DatabaseFileProgressData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatusDescript() {\n\t\tif err = oprot.WriteFieldBegin(\"status_descript\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.StatusDescript); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *DatabaseFileProgressData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatabaseFileProgressData(%+v)\", *p)\n\n}\n\ntype SubmitDatabaseInsertRequest struct {\n\tDatabaseID int64  `thrift:\"database_id,1\" form:\"database_id\" json:\"database_id,string\" query:\"database_id\"`\n\tFileURI    string `thrift:\"file_uri,2\" form:\"file_uri\" json:\"file_uri\" query:\"file_uri\"`\n\t// Table type, do you want to insert into the draft table or the online table?\n\tTableType  TableType   `thrift:\"table_type,3\" form:\"table_type\" json:\"table_type\" query:\"table_type\"`\n\tTableSheet *TableSheet `thrift:\"table_sheet,4,optional\" form:\"table_sheet\" json:\"table_sheet,omitempty\" query:\"table_sheet\"`\n\t// Channel ID to write to\n\tConnectorID *int64     `thrift:\"connector_id,5,optional\" form:\"connector_id\" json:\"connector_id,string,omitempty\" query:\"connector_id\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewSubmitDatabaseInsertRequest() *SubmitDatabaseInsertRequest {\n\treturn &SubmitDatabaseInsertRequest{}\n}\n\nfunc (p *SubmitDatabaseInsertRequest) InitDefault() {\n}\n\nfunc (p *SubmitDatabaseInsertRequest) GetDatabaseID() (v int64) {\n\treturn p.DatabaseID\n}\n\nfunc (p *SubmitDatabaseInsertRequest) GetFileURI() (v string) {\n\treturn p.FileURI\n}\n\nfunc (p *SubmitDatabaseInsertRequest) GetTableType() (v TableType) {\n\treturn p.TableType\n}\n\nvar SubmitDatabaseInsertRequest_TableSheet_DEFAULT *TableSheet\n\nfunc (p *SubmitDatabaseInsertRequest) GetTableSheet() (v *TableSheet) {\n\tif !p.IsSetTableSheet() {\n\t\treturn SubmitDatabaseInsertRequest_TableSheet_DEFAULT\n\t}\n\treturn p.TableSheet\n}\n\nvar SubmitDatabaseInsertRequest_ConnectorID_DEFAULT int64\n\nfunc (p *SubmitDatabaseInsertRequest) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn SubmitDatabaseInsertRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar SubmitDatabaseInsertRequest_Base_DEFAULT *base.Base\n\nfunc (p *SubmitDatabaseInsertRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SubmitDatabaseInsertRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SubmitDatabaseInsertRequest = map[int16]string{\n\t1:   \"database_id\",\n\t2:   \"file_uri\",\n\t3:   \"table_type\",\n\t4:   \"table_sheet\",\n\t5:   \"connector_id\",\n\t255: \"Base\",\n}\n\nfunc (p *SubmitDatabaseInsertRequest) IsSetTableSheet() bool {\n\treturn p.TableSheet != nil\n}\n\nfunc (p *SubmitDatabaseInsertRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *SubmitDatabaseInsertRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SubmitDatabaseInsertRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SubmitDatabaseInsertRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SubmitDatabaseInsertRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatabaseID = _field\n\treturn nil\n}\nfunc (p *SubmitDatabaseInsertRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileURI = _field\n\treturn nil\n}\nfunc (p *SubmitDatabaseInsertRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field TableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TableType(v)\n\t}\n\tp.TableType = _field\n\treturn nil\n}\nfunc (p *SubmitDatabaseInsertRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewTableSheet()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TableSheet = _field\n\treturn nil\n}\nfunc (p *SubmitDatabaseInsertRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *SubmitDatabaseInsertRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SubmitDatabaseInsertRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitDatabaseInsertRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SubmitDatabaseInsertRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatabaseID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SubmitDatabaseInsertRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_uri\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FileURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SubmitDatabaseInsertRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_type\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SubmitDatabaseInsertRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableSheet() {\n\t\tif err = oprot.WriteFieldBegin(\"table_sheet\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TableSheet.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SubmitDatabaseInsertRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *SubmitDatabaseInsertRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SubmitDatabaseInsertRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SubmitDatabaseInsertRequest(%+v)\", *p)\n\n}\n\ntype SubmitDatabaseInsertResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewSubmitDatabaseInsertResponse() *SubmitDatabaseInsertResponse {\n\treturn &SubmitDatabaseInsertResponse{}\n}\n\nfunc (p *SubmitDatabaseInsertResponse) InitDefault() {\n}\n\nfunc (p *SubmitDatabaseInsertResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *SubmitDatabaseInsertResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar SubmitDatabaseInsertResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SubmitDatabaseInsertResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SubmitDatabaseInsertResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SubmitDatabaseInsertResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *SubmitDatabaseInsertResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SubmitDatabaseInsertResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SubmitDatabaseInsertResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SubmitDatabaseInsertResponse[fieldId]))\n}\n\nfunc (p *SubmitDatabaseInsertResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *SubmitDatabaseInsertResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *SubmitDatabaseInsertResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SubmitDatabaseInsertResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitDatabaseInsertResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SubmitDatabaseInsertResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *SubmitDatabaseInsertResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *SubmitDatabaseInsertResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SubmitDatabaseInsertResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SubmitDatabaseInsertResponse(%+v)\", *p)\n\n}\n\ntype SubmitBatchInsertTaskRequest struct {\n\tMsg  string     `thrift:\"msg,1\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewSubmitBatchInsertTaskRequest() *SubmitBatchInsertTaskRequest {\n\treturn &SubmitBatchInsertTaskRequest{}\n}\n\nfunc (p *SubmitBatchInsertTaskRequest) InitDefault() {\n}\n\nfunc (p *SubmitBatchInsertTaskRequest) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar SubmitBatchInsertTaskRequest_Base_DEFAULT *base.Base\n\nfunc (p *SubmitBatchInsertTaskRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SubmitBatchInsertTaskRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SubmitBatchInsertTaskRequest = map[int16]string{\n\t1:   \"msg\",\n\t255: \"Base\",\n}\n\nfunc (p *SubmitBatchInsertTaskRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SubmitBatchInsertTaskRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SubmitBatchInsertTaskRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SubmitBatchInsertTaskRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *SubmitBatchInsertTaskRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SubmitBatchInsertTaskRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitBatchInsertTaskRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SubmitBatchInsertTaskRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SubmitBatchInsertTaskRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SubmitBatchInsertTaskRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SubmitBatchInsertTaskRequest(%+v)\", *p)\n\n}\n\ntype SubmitBatchInsertTaskResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewSubmitBatchInsertTaskResponse() *SubmitBatchInsertTaskResponse {\n\treturn &SubmitBatchInsertTaskResponse{}\n}\n\nfunc (p *SubmitBatchInsertTaskResponse) InitDefault() {\n}\n\nfunc (p *SubmitBatchInsertTaskResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *SubmitBatchInsertTaskResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar SubmitBatchInsertTaskResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SubmitBatchInsertTaskResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SubmitBatchInsertTaskResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SubmitBatchInsertTaskResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *SubmitBatchInsertTaskResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SubmitBatchInsertTaskResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SubmitBatchInsertTaskResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SubmitBatchInsertTaskResponse[fieldId]))\n}\n\nfunc (p *SubmitBatchInsertTaskResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *SubmitBatchInsertTaskResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *SubmitBatchInsertTaskResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SubmitBatchInsertTaskResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubmitBatchInsertTaskResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SubmitBatchInsertTaskResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *SubmitBatchInsertTaskResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *SubmitBatchInsertTaskResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SubmitBatchInsertTaskResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SubmitBatchInsertTaskResponse(%+v)\", *p)\n\n}\n\ntype GetSpaceConnectorListRequest struct {\n\tSpaceId int64 `thrift:\"SpaceId,1,required\" form:\"SpaceId,required\" json:\"SpaceId,string,required\" query:\"SpaceId,required\"`\n\t// release inhouse\n\tVersion     *string    `thrift:\"Version,2,optional\" form:\"Version\" json:\"Version,omitempty\" query:\"Version\"`\n\tConnectorID *int64     `thrift:\"ConnectorID,3,optional\" form:\"ConnectorID\" json:\"ConnectorID,omitempty\" query:\"ConnectorID\"`\n\tListAll     *bool      `thrift:\"ListAll,4,optional\" form:\"ListAll\" json:\"ListAll,omitempty\" query:\"ListAll\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetSpaceConnectorListRequest() *GetSpaceConnectorListRequest {\n\treturn &GetSpaceConnectorListRequest{}\n}\n\nfunc (p *GetSpaceConnectorListRequest) InitDefault() {\n}\n\nfunc (p *GetSpaceConnectorListRequest) GetSpaceId() (v int64) {\n\treturn p.SpaceId\n}\n\nvar GetSpaceConnectorListRequest_Version_DEFAULT string\n\nfunc (p *GetSpaceConnectorListRequest) GetVersion() (v string) {\n\tif !p.IsSetVersion() {\n\t\treturn GetSpaceConnectorListRequest_Version_DEFAULT\n\t}\n\treturn *p.Version\n}\n\nvar GetSpaceConnectorListRequest_ConnectorID_DEFAULT int64\n\nfunc (p *GetSpaceConnectorListRequest) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn GetSpaceConnectorListRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar GetSpaceConnectorListRequest_ListAll_DEFAULT bool\n\nfunc (p *GetSpaceConnectorListRequest) GetListAll() (v bool) {\n\tif !p.IsSetListAll() {\n\t\treturn GetSpaceConnectorListRequest_ListAll_DEFAULT\n\t}\n\treturn *p.ListAll\n}\n\nvar GetSpaceConnectorListRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetSpaceConnectorListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetSpaceConnectorListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetSpaceConnectorListRequest = map[int16]string{\n\t1:   \"SpaceId\",\n\t2:   \"Version\",\n\t3:   \"ConnectorID\",\n\t4:   \"ListAll\",\n\t255: \"Base\",\n}\n\nfunc (p *GetSpaceConnectorListRequest) IsSetVersion() bool {\n\treturn p.Version != nil\n}\n\nfunc (p *GetSpaceConnectorListRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *GetSpaceConnectorListRequest) IsSetListAll() bool {\n\treturn p.ListAll != nil\n}\n\nfunc (p *GetSpaceConnectorListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetSpaceConnectorListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceId bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceId = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceId {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetSpaceConnectorListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetSpaceConnectorListRequest[fieldId]))\n}\n\nfunc (p *GetSpaceConnectorListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceId = _field\n\treturn nil\n}\nfunc (p *GetSpaceConnectorListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *GetSpaceConnectorListRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *GetSpaceConnectorListRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ListAll = _field\n\treturn nil\n}\nfunc (p *GetSpaceConnectorListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetSpaceConnectorListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetSpaceConnectorListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetSpaceConnectorListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SpaceId\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetSpaceConnectorListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"Version\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Version); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetSpaceConnectorListRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetSpaceConnectorListRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetListAll() {\n\t\tif err = oprot.WriteFieldBegin(\"ListAll\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.ListAll); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetSpaceConnectorListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetSpaceConnectorListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetSpaceConnectorListRequest(%+v)\", *p)\n\n}\n\ntype GetSpaceConnectorListResponse struct {\n\tConnectorList []*ConnectorInfo `thrift:\"ConnectorList,1\" form:\"ConnectorList\" json:\"ConnectorList\" query:\"ConnectorList\"`\n\tCode          int64            `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg           string           `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp      *base.BaseResp   `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetSpaceConnectorListResponse() *GetSpaceConnectorListResponse {\n\treturn &GetSpaceConnectorListResponse{}\n}\n\nfunc (p *GetSpaceConnectorListResponse) InitDefault() {\n}\n\nfunc (p *GetSpaceConnectorListResponse) GetConnectorList() (v []*ConnectorInfo) {\n\treturn p.ConnectorList\n}\n\nfunc (p *GetSpaceConnectorListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetSpaceConnectorListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetSpaceConnectorListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetSpaceConnectorListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetSpaceConnectorListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetSpaceConnectorListResponse = map[int16]string{\n\t1:   \"ConnectorList\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetSpaceConnectorListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetSpaceConnectorListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetSpaceConnectorListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetSpaceConnectorListResponse[fieldId]))\n}\n\nfunc (p *GetSpaceConnectorListResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ConnectorInfo, 0, size)\n\tvalues := make([]ConnectorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConnectorList = _field\n\treturn nil\n}\nfunc (p *GetSpaceConnectorListResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetSpaceConnectorListResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetSpaceConnectorListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetSpaceConnectorListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetSpaceConnectorListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetSpaceConnectorListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConnectorList\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ConnectorList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ConnectorList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetSpaceConnectorListResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetSpaceConnectorListResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetSpaceConnectorListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetSpaceConnectorListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetSpaceConnectorListResponse(%+v)\", *p)\n\n}\n\ntype ConnectorInfo struct {\n\tConnectorID   int64  `thrift:\"ConnectorID,1\" form:\"ConnectorID\" json:\"ConnectorID\" query:\"ConnectorID\"`\n\tConnectorName string `thrift:\"ConnectorName,2\" form:\"ConnectorName\" json:\"ConnectorName\" query:\"ConnectorName\"`\n}\n\nfunc NewConnectorInfo() *ConnectorInfo {\n\treturn &ConnectorInfo{}\n}\n\nfunc (p *ConnectorInfo) InitDefault() {\n}\n\nfunc (p *ConnectorInfo) GetConnectorID() (v int64) {\n\treturn p.ConnectorID\n}\n\nfunc (p *ConnectorInfo) GetConnectorName() (v string) {\n\treturn p.ConnectorName\n}\n\nvar fieldIDToName_ConnectorInfo = map[int16]string{\n\t1: \"ConnectorID\",\n\t2: \"ConnectorName\",\n}\n\nfunc (p *ConnectorInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConnectorInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorName = _field\n\treturn nil\n}\n\nfunc (p *ConnectorInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConnectorInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConnectorName\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConnectorInfo(%+v)\", *p)\n\n}\n\ntype GetDatabaseTemplateResponse struct {\n\t// Download address\n\tTosUrl   string         `thrift:\"TosUrl,1\" form:\"TosUrl\" json:\"TosUrl\" query:\"TosUrl\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetDatabaseTemplateResponse() *GetDatabaseTemplateResponse {\n\treturn &GetDatabaseTemplateResponse{}\n}\n\nfunc (p *GetDatabaseTemplateResponse) InitDefault() {\n}\n\nfunc (p *GetDatabaseTemplateResponse) GetTosUrl() (v string) {\n\treturn p.TosUrl\n}\n\nfunc (p *GetDatabaseTemplateResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetDatabaseTemplateResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetDatabaseTemplateResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetDatabaseTemplateResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetDatabaseTemplateResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetDatabaseTemplateResponse = map[int16]string{\n\t1:   \"TosUrl\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetDatabaseTemplateResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetDatabaseTemplateResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDatabaseTemplateResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDatabaseTemplateResponse[fieldId]))\n}\n\nfunc (p *GetDatabaseTemplateResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TosUrl = _field\n\treturn nil\n}\nfunc (p *GetDatabaseTemplateResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetDatabaseTemplateResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetDatabaseTemplateResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetDatabaseTemplateResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDatabaseTemplateResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDatabaseTemplateResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TosUrl\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TosUrl); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDatabaseTemplateResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetDatabaseTemplateResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetDatabaseTemplateResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDatabaseTemplateResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDatabaseTemplateResponse(%+v)\", *p)\n\n}\n\ntype UpdateDatabaseBotSwitchRequest struct {\n\tBotID      int64 `thrift:\"bot_id,1,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\tDatabaseID int64 `thrift:\"database_id,2,required\" form:\"database_id,required\" json:\"database_id,string,required\" query:\"database_id,required\"`\n\t// Whether to disable prompt\n\tPromptDisable bool       `thrift:\"prompt_disable,3,required\" form:\"prompt_disable,required\" json:\"prompt_disable,required\" query:\"prompt_disable,required\"`\n\tBase          *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateDatabaseBotSwitchRequest() *UpdateDatabaseBotSwitchRequest {\n\treturn &UpdateDatabaseBotSwitchRequest{}\n}\n\nfunc (p *UpdateDatabaseBotSwitchRequest) InitDefault() {\n}\n\nfunc (p *UpdateDatabaseBotSwitchRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *UpdateDatabaseBotSwitchRequest) GetDatabaseID() (v int64) {\n\treturn p.DatabaseID\n}\n\nfunc (p *UpdateDatabaseBotSwitchRequest) GetPromptDisable() (v bool) {\n\treturn p.PromptDisable\n}\n\nvar UpdateDatabaseBotSwitchRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateDatabaseBotSwitchRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateDatabaseBotSwitchRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateDatabaseBotSwitchRequest = map[int16]string{\n\t1:   \"bot_id\",\n\t2:   \"database_id\",\n\t3:   \"prompt_disable\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateDatabaseBotSwitchRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateDatabaseBotSwitchRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\tvar issetDatabaseID bool = false\n\tvar issetPromptDisable bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDatabaseID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPromptDisable = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetDatabaseID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetPromptDisable {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDatabaseBotSwitchRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateDatabaseBotSwitchRequest[fieldId]))\n}\n\nfunc (p *UpdateDatabaseBotSwitchRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseBotSwitchRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatabaseID = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseBotSwitchRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PromptDisable = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseBotSwitchRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateDatabaseBotSwitchRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatabaseBotSwitchRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatabaseBotSwitchRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseBotSwitchRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"database_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatabaseID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseBotSwitchRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"prompt_disable\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.PromptDisable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseBotSwitchRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDatabaseBotSwitchRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDatabaseBotSwitchRequest(%+v)\", *p)\n\n}\n\ntype UpdateDatabaseBotSwitchResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewUpdateDatabaseBotSwitchResponse() *UpdateDatabaseBotSwitchResponse {\n\treturn &UpdateDatabaseBotSwitchResponse{}\n}\n\nfunc (p *UpdateDatabaseBotSwitchResponse) InitDefault() {\n}\n\nfunc (p *UpdateDatabaseBotSwitchResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateDatabaseBotSwitchResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateDatabaseBotSwitchResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateDatabaseBotSwitchResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateDatabaseBotSwitchResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateDatabaseBotSwitchResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateDatabaseBotSwitchResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateDatabaseBotSwitchResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDatabaseBotSwitchResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateDatabaseBotSwitchResponse[fieldId]))\n}\n\nfunc (p *UpdateDatabaseBotSwitchResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseBotSwitchResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateDatabaseBotSwitchResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateDatabaseBotSwitchResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatabaseBotSwitchResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatabaseBotSwitchResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseBotSwitchResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateDatabaseBotSwitchResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDatabaseBotSwitchResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDatabaseBotSwitchResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/data/knowledge/common.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage knowledge\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\n// type\ntype FormatType int64\n\nconst (\n\t// Text\n\tFormatType_Text FormatType = 0\n\t// table\n\tFormatType_Table FormatType = 1\n\t// image\n\tFormatType_Image FormatType = 2\n\t// database\n\tFormatType_Database FormatType = 3\n)\n\nfunc (p FormatType) String() string {\n\tswitch p {\n\tcase FormatType_Text:\n\t\treturn \"Text\"\n\tcase FormatType_Table:\n\t\treturn \"Table\"\n\tcase FormatType_Image:\n\t\treturn \"Image\"\n\tcase FormatType_Database:\n\t\treturn \"Database\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc FormatTypeFromString(s string) (FormatType, error) {\n\tswitch s {\n\tcase \"Text\":\n\t\treturn FormatType_Text, nil\n\tcase \"Table\":\n\t\treturn FormatType_Table, nil\n\tcase \"Image\":\n\t\treturn FormatType_Image, nil\n\tcase \"Database\":\n\t\treturn FormatType_Database, nil\n\t}\n\treturn FormatType(0), fmt.Errorf(\"not a valid FormatType string\")\n}\n\nfunc FormatTypePtr(v FormatType) *FormatType { return &v }\nfunc (p *FormatType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = FormatType(result.Int64)\n\treturn\n}\n\nfunc (p *FormatType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ChunkType int64\n\nconst (\n\tChunkType_DefaultChunk ChunkType = 0\n\tChunkType_CustomChunk  ChunkType = 1\n\tChunkType_LevelChunk   ChunkType = 2\n)\n\nfunc (p ChunkType) String() string {\n\tswitch p {\n\tcase ChunkType_DefaultChunk:\n\t\treturn \"DefaultChunk\"\n\tcase ChunkType_CustomChunk:\n\t\treturn \"CustomChunk\"\n\tcase ChunkType_LevelChunk:\n\t\treturn \"LevelChunk\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ChunkTypeFromString(s string) (ChunkType, error) {\n\tswitch s {\n\tcase \"DefaultChunk\":\n\t\treturn ChunkType_DefaultChunk, nil\n\tcase \"CustomChunk\":\n\t\treturn ChunkType_CustomChunk, nil\n\tcase \"LevelChunk\":\n\t\treturn ChunkType_LevelChunk, nil\n\t}\n\treturn ChunkType(0), fmt.Errorf(\"not a valid ChunkType string\")\n}\n\nfunc ChunkTypePtr(v ChunkType) *ChunkType { return &v }\nfunc (p *ChunkType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ChunkType(result.Int64)\n\treturn\n}\n\nfunc (p *ChunkType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ContentSchema int64\n\nconst (\n\tContentSchema_DefaultSchema    ContentSchema = 0\n\tContentSchema_LinkReaderSchema ContentSchema = 1\n)\n\nfunc (p ContentSchema) String() string {\n\tswitch p {\n\tcase ContentSchema_DefaultSchema:\n\t\treturn \"DefaultSchema\"\n\tcase ContentSchema_LinkReaderSchema:\n\t\treturn \"LinkReaderSchema\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ContentSchemaFromString(s string) (ContentSchema, error) {\n\tswitch s {\n\tcase \"DefaultSchema\":\n\t\treturn ContentSchema_DefaultSchema, nil\n\tcase \"LinkReaderSchema\":\n\t\treturn ContentSchema_LinkReaderSchema, nil\n\t}\n\treturn ContentSchema(0), fmt.Errorf(\"not a valid ContentSchema string\")\n}\n\nfunc ContentSchemaPtr(v ContentSchema) *ContentSchema { return &v }\nfunc (p *ContentSchema) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ContentSchema(result.Int64)\n\treturn\n}\n\nfunc (p *ContentSchema) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype CaptionType int64\n\nconst (\n\t// intelligent annotation\n\tCaptionType_Auto CaptionType = 0\n\t// manual annotation\n\tCaptionType_Manual CaptionType = 1\n)\n\nfunc (p CaptionType) String() string {\n\tswitch p {\n\tcase CaptionType_Auto:\n\t\treturn \"Auto\"\n\tcase CaptionType_Manual:\n\t\treturn \"Manual\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc CaptionTypeFromString(s string) (CaptionType, error) {\n\tswitch s {\n\tcase \"Auto\":\n\t\treturn CaptionType_Auto, nil\n\tcase \"Manual\":\n\t\treturn CaptionType_Manual, nil\n\t}\n\treturn CaptionType(0), fmt.Errorf(\"not a valid CaptionType string\")\n}\n\nfunc CaptionTypePtr(v CaptionType) *CaptionType { return &v }\nfunc (p *CaptionType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = CaptionType(result.Int64)\n\treturn\n}\n\nfunc (p *CaptionType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DocumentStatus int64\n\nconst (\n\t// Uploading\n\tDocumentStatus_Processing DocumentStatus = 0\n\t// take effect\n\tDocumentStatus_Enable DocumentStatus = 1\n\t// failure\n\tDocumentStatus_Disable DocumentStatus = 2\n\t// delete\n\tDocumentStatus_Deleted DocumentStatus = 3\n\t// In rescaling, the caller is not aware of the state\n\tDocumentStatus_Resegment DocumentStatus = 4\n\t// Refreshing (will be deleted after successful refresh)\n\tDocumentStatus_Refreshing DocumentStatus = 5\n\t// fail\n\tDocumentStatus_Failed DocumentStatus = 9\n)\n\nfunc (p DocumentStatus) String() string {\n\tswitch p {\n\tcase DocumentStatus_Processing:\n\t\treturn \"Processing\"\n\tcase DocumentStatus_Enable:\n\t\treturn \"Enable\"\n\tcase DocumentStatus_Disable:\n\t\treturn \"Disable\"\n\tcase DocumentStatus_Deleted:\n\t\treturn \"Deleted\"\n\tcase DocumentStatus_Resegment:\n\t\treturn \"Resegment\"\n\tcase DocumentStatus_Refreshing:\n\t\treturn \"Refreshing\"\n\tcase DocumentStatus_Failed:\n\t\treturn \"Failed\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DocumentStatusFromString(s string) (DocumentStatus, error) {\n\tswitch s {\n\tcase \"Processing\":\n\t\treturn DocumentStatus_Processing, nil\n\tcase \"Enable\":\n\t\treturn DocumentStatus_Enable, nil\n\tcase \"Disable\":\n\t\treturn DocumentStatus_Disable, nil\n\tcase \"Deleted\":\n\t\treturn DocumentStatus_Deleted, nil\n\tcase \"Resegment\":\n\t\treturn DocumentStatus_Resegment, nil\n\tcase \"Refreshing\":\n\t\treturn DocumentStatus_Refreshing, nil\n\tcase \"Failed\":\n\t\treturn DocumentStatus_Failed, nil\n\t}\n\treturn DocumentStatus(0), fmt.Errorf(\"not a valid DocumentStatus string\")\n}\n\nfunc DocumentStatusPtr(v DocumentStatus) *DocumentStatus { return &v }\nfunc (p *DocumentStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DocumentStatus(result.Int64)\n\treturn\n}\n\nfunc (p *DocumentStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DocumentSource int64\n\nconst (\n\t// local file upload\n\tDocumentSource_Document DocumentSource = 0\n\t// custom type\n\tDocumentSource_Custom DocumentSource = 2\n)\n\nfunc (p DocumentSource) String() string {\n\tswitch p {\n\tcase DocumentSource_Document:\n\t\treturn \"Document\"\n\tcase DocumentSource_Custom:\n\t\treturn \"Custom\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DocumentSourceFromString(s string) (DocumentSource, error) {\n\tswitch s {\n\tcase \"Document\":\n\t\treturn DocumentSource_Document, nil\n\tcase \"Custom\":\n\t\treturn DocumentSource_Custom, nil\n\t}\n\treturn DocumentSource(0), fmt.Errorf(\"not a valid DocumentSource string\")\n}\n\nfunc DocumentSourcePtr(v DocumentSource) *DocumentSource { return &v }\nfunc (p *DocumentSource) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DocumentSource(result.Int64)\n\treturn\n}\n\nfunc (p *DocumentSource) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ParsingType int64\n\nconst (\n\t//fast parse\n\tParsingType_FastParsing ParsingType = 0\n\t//accurate analysis\n\tParsingType_AccurateParsing ParsingType = 1\n)\n\nfunc (p ParsingType) String() string {\n\tswitch p {\n\tcase ParsingType_FastParsing:\n\t\treturn \"FastParsing\"\n\tcase ParsingType_AccurateParsing:\n\t\treturn \"AccurateParsing\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ParsingTypeFromString(s string) (ParsingType, error) {\n\tswitch s {\n\tcase \"FastParsing\":\n\t\treturn ParsingType_FastParsing, nil\n\tcase \"AccurateParsing\":\n\t\treturn ParsingType_AccurateParsing, nil\n\t}\n\treturn ParsingType(0), fmt.Errorf(\"not a valid ParsingType string\")\n}\n\nfunc ParsingTypePtr(v ParsingType) *ParsingType { return &v }\nfunc (p *ParsingType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ParsingType(result.Int64)\n\treturn\n}\n\nfunc (p *ParsingType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// sort field\ntype OrderField int64\n\nconst (\n\tOrderField_CreateTime OrderField = 1\n\tOrderField_UpdateTime OrderField = 2\n)\n\nfunc (p OrderField) String() string {\n\tswitch p {\n\tcase OrderField_CreateTime:\n\t\treturn \"CreateTime\"\n\tcase OrderField_UpdateTime:\n\t\treturn \"UpdateTime\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OrderFieldFromString(s string) (OrderField, error) {\n\tswitch s {\n\tcase \"CreateTime\":\n\t\treturn OrderField_CreateTime, nil\n\tcase \"UpdateTime\":\n\t\treturn OrderField_UpdateTime, nil\n\t}\n\treturn OrderField(0), fmt.Errorf(\"not a valid OrderField string\")\n}\n\nfunc OrderFieldPtr(v OrderField) *OrderField { return &v }\nfunc (p *OrderField) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OrderField(result.Int64)\n\treturn\n}\n\nfunc (p *OrderField) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// OrderType\ntype OrderType int64\n\nconst (\n\tOrderType_Desc OrderType = 1\n\tOrderType_Asc  OrderType = 2\n)\n\nfunc (p OrderType) String() string {\n\tswitch p {\n\tcase OrderType_Desc:\n\t\treturn \"Desc\"\n\tcase OrderType_Asc:\n\t\treturn \"Asc\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OrderTypeFromString(s string) (OrderType, error) {\n\tswitch s {\n\tcase \"Desc\":\n\t\treturn OrderType_Desc, nil\n\tcase \"Asc\":\n\t\treturn OrderType_Asc, nil\n\t}\n\treturn OrderType(0), fmt.Errorf(\"not a valid OrderType string\")\n}\n\nfunc OrderTypePtr(v OrderType) *OrderType { return &v }\nfunc (p *OrderType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OrderType(result.Int64)\n\treturn\n}\n\nfunc (p *OrderType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ReviewStatus int64\n\nconst (\n\t// Processing\n\tReviewStatus_Processing ReviewStatus = 0\n\t// Completed.\n\tReviewStatus_Enable ReviewStatus = 1\n\t// fail\n\tReviewStatus_Failed ReviewStatus = 2\n\t// fail\n\tReviewStatus_ForceStop ReviewStatus = 3\n)\n\nfunc (p ReviewStatus) String() string {\n\tswitch p {\n\tcase ReviewStatus_Processing:\n\t\treturn \"Processing\"\n\tcase ReviewStatus_Enable:\n\t\treturn \"Enable\"\n\tcase ReviewStatus_Failed:\n\t\treturn \"Failed\"\n\tcase ReviewStatus_ForceStop:\n\t\treturn \"ForceStop\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ReviewStatusFromString(s string) (ReviewStatus, error) {\n\tswitch s {\n\tcase \"Processing\":\n\t\treturn ReviewStatus_Processing, nil\n\tcase \"Enable\":\n\t\treturn ReviewStatus_Enable, nil\n\tcase \"Failed\":\n\t\treturn ReviewStatus_Failed, nil\n\tcase \"ForceStop\":\n\t\treturn ReviewStatus_ForceStop, nil\n\t}\n\treturn ReviewStatus(0), fmt.Errorf(\"not a valid ReviewStatus string\")\n}\n\nfunc ReviewStatusPtr(v ReviewStatus) *ReviewStatus { return &v }\nfunc (p *ReviewStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ReviewStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ReviewStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ColumnType int64\n\nconst (\n\tColumnType_Unknown ColumnType = 0\n\t// Text\n\tColumnType_Text ColumnType = 1\n\t// number\n\tColumnType_Number ColumnType = 2\n\t// time\n\tColumnType_Date ColumnType = 3\n\t// float\n\tColumnType_Float ColumnType = 4\n\t// bool\n\tColumnType_Boolean ColumnType = 5\n\t// picture\n\tColumnType_Image ColumnType = 6\n)\n\nfunc (p ColumnType) String() string {\n\tswitch p {\n\tcase ColumnType_Unknown:\n\t\treturn \"Unknown\"\n\tcase ColumnType_Text:\n\t\treturn \"Text\"\n\tcase ColumnType_Number:\n\t\treturn \"Number\"\n\tcase ColumnType_Date:\n\t\treturn \"Date\"\n\tcase ColumnType_Float:\n\t\treturn \"Float\"\n\tcase ColumnType_Boolean:\n\t\treturn \"Boolean\"\n\tcase ColumnType_Image:\n\t\treturn \"Image\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ColumnTypeFromString(s string) (ColumnType, error) {\n\tswitch s {\n\tcase \"Unknown\":\n\t\treturn ColumnType_Unknown, nil\n\tcase \"Text\":\n\t\treturn ColumnType_Text, nil\n\tcase \"Number\":\n\t\treturn ColumnType_Number, nil\n\tcase \"Date\":\n\t\treturn ColumnType_Date, nil\n\tcase \"Float\":\n\t\treturn ColumnType_Float, nil\n\tcase \"Boolean\":\n\t\treturn ColumnType_Boolean, nil\n\tcase \"Image\":\n\t\treturn ColumnType_Image, nil\n\t}\n\treturn ColumnType(0), fmt.Errorf(\"not a valid ColumnType string\")\n}\n\nfunc ColumnTypePtr(v ColumnType) *ColumnType { return &v }\nfunc (p *ColumnType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ColumnType(result.Int64)\n\treturn\n}\n\nfunc (p *ColumnType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DatasetStatus int64\n\nconst (\n\tDatasetStatus_DatasetProcessing DatasetStatus = 0\n\tDatasetStatus_DatasetReady      DatasetStatus = 1\n\t// soft delete\n\tDatasetStatus_DatasetDeleted DatasetStatus = 2\n\t// Do not enable\n\tDatasetStatus_DatasetForbid DatasetStatus = 3\n\tDatasetStatus_DatasetFailed DatasetStatus = 9\n)\n\nfunc (p DatasetStatus) String() string {\n\tswitch p {\n\tcase DatasetStatus_DatasetProcessing:\n\t\treturn \"DatasetProcessing\"\n\tcase DatasetStatus_DatasetReady:\n\t\treturn \"DatasetReady\"\n\tcase DatasetStatus_DatasetDeleted:\n\t\treturn \"DatasetDeleted\"\n\tcase DatasetStatus_DatasetForbid:\n\t\treturn \"DatasetForbid\"\n\tcase DatasetStatus_DatasetFailed:\n\t\treturn \"DatasetFailed\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DatasetStatusFromString(s string) (DatasetStatus, error) {\n\tswitch s {\n\tcase \"DatasetProcessing\":\n\t\treturn DatasetStatus_DatasetProcessing, nil\n\tcase \"DatasetReady\":\n\t\treturn DatasetStatus_DatasetReady, nil\n\tcase \"DatasetDeleted\":\n\t\treturn DatasetStatus_DatasetDeleted, nil\n\tcase \"DatasetForbid\":\n\t\treturn DatasetStatus_DatasetForbid, nil\n\tcase \"DatasetFailed\":\n\t\treturn DatasetStatus_DatasetFailed, nil\n\t}\n\treturn DatasetStatus(0), fmt.Errorf(\"not a valid DatasetStatus string\")\n}\n\nfunc DatasetStatusPtr(v DatasetStatus) *DatasetStatus { return &v }\nfunc (p *DatasetStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DatasetStatus(result.Int64)\n\treturn\n}\n\nfunc (p *DatasetStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ChunkStrategy struct {\n\t// A separator, such as a period\n\tSeparator string `thrift:\"separator,1\" form:\"separator\" json:\"separator\" query:\"separator\"`\n\t// Maximum number of tokens for sharding\n\tMaxTokens int64 `thrift:\"max_tokens,2\" form:\"max_tokens\" json:\"max_tokens\" query:\"max_tokens\"`\n\t// Replace consecutive spaces, newlines, and tabs\n\tRemoveExtraSpaces bool `thrift:\"remove_extra_spaces,3\" form:\"remove_extra_spaces\" json:\"remove_extra_spaces\" query:\"remove_extra_spaces\"`\n\t// Remove URL and email\n\tRemoveUrlsEmails bool `thrift:\"remove_urls_emails,4\" form:\"remove_urls_emails\" json:\"remove_urls_emails\" query:\"remove_urls_emails\"`\n\t// If 0, the configuration of the above fields is not used\n\tChunkType ChunkType `thrift:\"chunk_type,5\" form:\"chunk_type\" json:\"chunk_type\" query:\"chunk_type\"`\n\t// Image type, image description text annotation method\n\tCaptionType *CaptionType `thrift:\"caption_type,7,optional\" form:\"caption_type\" json:\"caption_type,omitempty\" query:\"caption_type\"`\n\t//segmented overlap\n\tOverlap *int64 `thrift:\"overlap,8,optional\" form:\"overlap\" json:\"overlap,omitempty\" query:\"overlap\"`\n\t//Maximum number of levels (effective when segmented by level)\n\tMaxLevel *int64 `thrift:\"max_level,9,optional\" form:\"max_level\" json:\"max_level,omitempty\" query:\"max_level\"`\n\t//Slice preserves level headers (effective when segmented by level)\n\tSaveTitle *bool `thrift:\"save_title,10,optional\" form:\"save_title\" json:\"save_title,omitempty\" query:\"save_title\"`\n}\n\nfunc NewChunkStrategy() *ChunkStrategy {\n\treturn &ChunkStrategy{}\n}\n\nfunc (p *ChunkStrategy) InitDefault() {\n}\n\nfunc (p *ChunkStrategy) GetSeparator() (v string) {\n\treturn p.Separator\n}\n\nfunc (p *ChunkStrategy) GetMaxTokens() (v int64) {\n\treturn p.MaxTokens\n}\n\nfunc (p *ChunkStrategy) GetRemoveExtraSpaces() (v bool) {\n\treturn p.RemoveExtraSpaces\n}\n\nfunc (p *ChunkStrategy) GetRemoveUrlsEmails() (v bool) {\n\treturn p.RemoveUrlsEmails\n}\n\nfunc (p *ChunkStrategy) GetChunkType() (v ChunkType) {\n\treturn p.ChunkType\n}\n\nvar ChunkStrategy_CaptionType_DEFAULT CaptionType\n\nfunc (p *ChunkStrategy) GetCaptionType() (v CaptionType) {\n\tif !p.IsSetCaptionType() {\n\t\treturn ChunkStrategy_CaptionType_DEFAULT\n\t}\n\treturn *p.CaptionType\n}\n\nvar ChunkStrategy_Overlap_DEFAULT int64\n\nfunc (p *ChunkStrategy) GetOverlap() (v int64) {\n\tif !p.IsSetOverlap() {\n\t\treturn ChunkStrategy_Overlap_DEFAULT\n\t}\n\treturn *p.Overlap\n}\n\nvar ChunkStrategy_MaxLevel_DEFAULT int64\n\nfunc (p *ChunkStrategy) GetMaxLevel() (v int64) {\n\tif !p.IsSetMaxLevel() {\n\t\treturn ChunkStrategy_MaxLevel_DEFAULT\n\t}\n\treturn *p.MaxLevel\n}\n\nvar ChunkStrategy_SaveTitle_DEFAULT bool\n\nfunc (p *ChunkStrategy) GetSaveTitle() (v bool) {\n\tif !p.IsSetSaveTitle() {\n\t\treturn ChunkStrategy_SaveTitle_DEFAULT\n\t}\n\treturn *p.SaveTitle\n}\n\nvar fieldIDToName_ChunkStrategy = map[int16]string{\n\t1:  \"separator\",\n\t2:  \"max_tokens\",\n\t3:  \"remove_extra_spaces\",\n\t4:  \"remove_urls_emails\",\n\t5:  \"chunk_type\",\n\t7:  \"caption_type\",\n\t8:  \"overlap\",\n\t9:  \"max_level\",\n\t10: \"save_title\",\n}\n\nfunc (p *ChunkStrategy) IsSetCaptionType() bool {\n\treturn p.CaptionType != nil\n}\n\nfunc (p *ChunkStrategy) IsSetOverlap() bool {\n\treturn p.Overlap != nil\n}\n\nfunc (p *ChunkStrategy) IsSetMaxLevel() bool {\n\treturn p.MaxLevel != nil\n}\n\nfunc (p *ChunkStrategy) IsSetSaveTitle() bool {\n\treturn p.SaveTitle != nil\n}\n\nfunc (p *ChunkStrategy) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChunkStrategy[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ChunkStrategy) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Separator = _field\n\treturn nil\n}\nfunc (p *ChunkStrategy) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MaxTokens = _field\n\treturn nil\n}\nfunc (p *ChunkStrategy) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RemoveExtraSpaces = _field\n\treturn nil\n}\nfunc (p *ChunkStrategy) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RemoveUrlsEmails = _field\n\treturn nil\n}\nfunc (p *ChunkStrategy) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field ChunkType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ChunkType(v)\n\t}\n\tp.ChunkType = _field\n\treturn nil\n}\nfunc (p *ChunkStrategy) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *CaptionType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := CaptionType(v)\n\t\t_field = &tmp\n\t}\n\tp.CaptionType = _field\n\treturn nil\n}\nfunc (p *ChunkStrategy) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Overlap = _field\n\treturn nil\n}\nfunc (p *ChunkStrategy) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.MaxLevel = _field\n\treturn nil\n}\nfunc (p *ChunkStrategy) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SaveTitle = _field\n\treturn nil\n}\n\nfunc (p *ChunkStrategy) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChunkStrategy\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChunkStrategy) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"separator\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Separator); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChunkStrategy) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"max_tokens\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.MaxTokens); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChunkStrategy) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"remove_extra_spaces\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.RemoveExtraSpaces); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ChunkStrategy) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"remove_urls_emails\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.RemoveUrlsEmails); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ChunkStrategy) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"chunk_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ChunkType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ChunkStrategy) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCaptionType() {\n\t\tif err = oprot.WriteFieldBegin(\"caption_type\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.CaptionType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ChunkStrategy) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOverlap() {\n\t\tif err = oprot.WriteFieldBegin(\"overlap\", thrift.I64, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Overlap); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ChunkStrategy) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMaxLevel() {\n\t\tif err = oprot.WriteFieldBegin(\"max_level\", thrift.I64, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.MaxLevel); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ChunkStrategy) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSaveTitle() {\n\t\tif err = oprot.WriteFieldBegin(\"save_title\", thrift.BOOL, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SaveTitle); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\n\nfunc (p *ChunkStrategy) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChunkStrategy(%+v)\", *p)\n\n}\n\ntype ParsingStrategy struct {\n\t//parse type\n\tParsingType *ParsingType `thrift:\"parsing_type,1,optional\" form:\"parsing_type\" json:\"parsing_type,omitempty\" query:\"parsing_type\"`\n\t//Whether to enable image element extraction (effective when accurately parsing)\n\tImageExtraction *bool `thrift:\"image_extraction,2,optional\" form:\"image_extraction\" json:\"image_extraction,omitempty\" query:\"image_extraction\"`\n\t//Whether to enable table element extraction (effective when accurately parsing)\n\tTableExtraction *bool `thrift:\"table_extraction,3,optional\" form:\"table_extraction\" json:\"table_extraction,omitempty\" query:\"table_extraction\"`\n\t//Whether to turn on picture OCR (effective when accurate analysis)\n\tImageOcr *bool `thrift:\"image_ocr,4,optional\" form:\"image_ocr\" json:\"image_ocr,omitempty\" query:\"image_ocr\"`\n}\n\nfunc NewParsingStrategy() *ParsingStrategy {\n\treturn &ParsingStrategy{}\n}\n\nfunc (p *ParsingStrategy) InitDefault() {\n}\n\nvar ParsingStrategy_ParsingType_DEFAULT ParsingType\n\nfunc (p *ParsingStrategy) GetParsingType() (v ParsingType) {\n\tif !p.IsSetParsingType() {\n\t\treturn ParsingStrategy_ParsingType_DEFAULT\n\t}\n\treturn *p.ParsingType\n}\n\nvar ParsingStrategy_ImageExtraction_DEFAULT bool\n\nfunc (p *ParsingStrategy) GetImageExtraction() (v bool) {\n\tif !p.IsSetImageExtraction() {\n\t\treturn ParsingStrategy_ImageExtraction_DEFAULT\n\t}\n\treturn *p.ImageExtraction\n}\n\nvar ParsingStrategy_TableExtraction_DEFAULT bool\n\nfunc (p *ParsingStrategy) GetTableExtraction() (v bool) {\n\tif !p.IsSetTableExtraction() {\n\t\treturn ParsingStrategy_TableExtraction_DEFAULT\n\t}\n\treturn *p.TableExtraction\n}\n\nvar ParsingStrategy_ImageOcr_DEFAULT bool\n\nfunc (p *ParsingStrategy) GetImageOcr() (v bool) {\n\tif !p.IsSetImageOcr() {\n\t\treturn ParsingStrategy_ImageOcr_DEFAULT\n\t}\n\treturn *p.ImageOcr\n}\n\nvar fieldIDToName_ParsingStrategy = map[int16]string{\n\t1: \"parsing_type\",\n\t2: \"image_extraction\",\n\t3: \"table_extraction\",\n\t4: \"image_ocr\",\n}\n\nfunc (p *ParsingStrategy) IsSetParsingType() bool {\n\treturn p.ParsingType != nil\n}\n\nfunc (p *ParsingStrategy) IsSetImageExtraction() bool {\n\treturn p.ImageExtraction != nil\n}\n\nfunc (p *ParsingStrategy) IsSetTableExtraction() bool {\n\treturn p.TableExtraction != nil\n}\n\nfunc (p *ParsingStrategy) IsSetImageOcr() bool {\n\treturn p.ImageOcr != nil\n}\n\nfunc (p *ParsingStrategy) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ParsingStrategy[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ParsingStrategy) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *ParsingType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ParsingType(v)\n\t\t_field = &tmp\n\t}\n\tp.ParsingType = _field\n\treturn nil\n}\nfunc (p *ParsingStrategy) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ImageExtraction = _field\n\treturn nil\n}\nfunc (p *ParsingStrategy) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TableExtraction = _field\n\treturn nil\n}\nfunc (p *ParsingStrategy) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ImageOcr = _field\n\treturn nil\n}\n\nfunc (p *ParsingStrategy) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ParsingStrategy\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ParsingStrategy) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParsingType() {\n\t\tif err = oprot.WriteFieldBegin(\"parsing_type\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ParsingType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ParsingStrategy) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetImageExtraction() {\n\t\tif err = oprot.WriteFieldBegin(\"image_extraction\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.ImageExtraction); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ParsingStrategy) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableExtraction() {\n\t\tif err = oprot.WriteFieldBegin(\"table_extraction\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.TableExtraction); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ParsingStrategy) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetImageOcr() {\n\t\tif err = oprot.WriteFieldBegin(\"image_ocr\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.ImageOcr); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *ParsingStrategy) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ParsingStrategy(%+v)\", *p)\n\n}\n\ntype IndexStrategy struct {\n\t//Whether to enable vector indexing (default is true)\n\tVectorIndexing *bool `thrift:\"vector_indexing,1,optional\" form:\"vector_indexing\" json:\"vector_indexing,omitempty\" query:\"vector_indexing\"`\n\t//Whether to enable keyword indexing (default is true)\n\tKeywordIndexing *bool `thrift:\"keyword_indexing,2,optional\" form:\"keyword_indexing\" json:\"keyword_indexing,omitempty\" query:\"keyword_indexing\"`\n\t//Whether to enable hierarchical indexing\n\tHierarchicalIndexing *bool `thrift:\"hierarchical_indexing,3,optional\" form:\"hierarchical_indexing\" json:\"hierarchical_indexing,omitempty\" query:\"hierarchical_indexing\"`\n\t//vector model\n\tModel *string `thrift:\"model,4,optional\" form:\"model\" json:\"model,omitempty\" query:\"model\"`\n}\n\nfunc NewIndexStrategy() *IndexStrategy {\n\treturn &IndexStrategy{}\n}\n\nfunc (p *IndexStrategy) InitDefault() {\n}\n\nvar IndexStrategy_VectorIndexing_DEFAULT bool\n\nfunc (p *IndexStrategy) GetVectorIndexing() (v bool) {\n\tif !p.IsSetVectorIndexing() {\n\t\treturn IndexStrategy_VectorIndexing_DEFAULT\n\t}\n\treturn *p.VectorIndexing\n}\n\nvar IndexStrategy_KeywordIndexing_DEFAULT bool\n\nfunc (p *IndexStrategy) GetKeywordIndexing() (v bool) {\n\tif !p.IsSetKeywordIndexing() {\n\t\treturn IndexStrategy_KeywordIndexing_DEFAULT\n\t}\n\treturn *p.KeywordIndexing\n}\n\nvar IndexStrategy_HierarchicalIndexing_DEFAULT bool\n\nfunc (p *IndexStrategy) GetHierarchicalIndexing() (v bool) {\n\tif !p.IsSetHierarchicalIndexing() {\n\t\treturn IndexStrategy_HierarchicalIndexing_DEFAULT\n\t}\n\treturn *p.HierarchicalIndexing\n}\n\nvar IndexStrategy_Model_DEFAULT string\n\nfunc (p *IndexStrategy) GetModel() (v string) {\n\tif !p.IsSetModel() {\n\t\treturn IndexStrategy_Model_DEFAULT\n\t}\n\treturn *p.Model\n}\n\nvar fieldIDToName_IndexStrategy = map[int16]string{\n\t1: \"vector_indexing\",\n\t2: \"keyword_indexing\",\n\t3: \"hierarchical_indexing\",\n\t4: \"model\",\n}\n\nfunc (p *IndexStrategy) IsSetVectorIndexing() bool {\n\treturn p.VectorIndexing != nil\n}\n\nfunc (p *IndexStrategy) IsSetKeywordIndexing() bool {\n\treturn p.KeywordIndexing != nil\n}\n\nfunc (p *IndexStrategy) IsSetHierarchicalIndexing() bool {\n\treturn p.HierarchicalIndexing != nil\n}\n\nfunc (p *IndexStrategy) IsSetModel() bool {\n\treturn p.Model != nil\n}\n\nfunc (p *IndexStrategy) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IndexStrategy[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IndexStrategy) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.VectorIndexing = _field\n\treturn nil\n}\nfunc (p *IndexStrategy) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.KeywordIndexing = _field\n\treturn nil\n}\nfunc (p *IndexStrategy) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HierarchicalIndexing = _field\n\treturn nil\n}\nfunc (p *IndexStrategy) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Model = _field\n\treturn nil\n}\n\nfunc (p *IndexStrategy) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"IndexStrategy\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IndexStrategy) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVectorIndexing() {\n\t\tif err = oprot.WriteFieldBegin(\"vector_indexing\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.VectorIndexing); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *IndexStrategy) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKeywordIndexing() {\n\t\tif err = oprot.WriteFieldBegin(\"keyword_indexing\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.KeywordIndexing); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *IndexStrategy) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHierarchicalIndexing() {\n\t\tif err = oprot.WriteFieldBegin(\"hierarchical_indexing\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HierarchicalIndexing); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *IndexStrategy) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModel() {\n\t\tif err = oprot.WriteFieldBegin(\"model\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Model); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *IndexStrategy) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IndexStrategy(%+v)\", *p)\n\n}\n\ntype FilterStrategy struct {\n\t//filter pages\n\tFilterPage []int32 `thrift:\"filter_page,1,optional\" form:\"filter_page\" json:\"filter_page,omitempty\" query:\"filter_page\"`\n}\n\nfunc NewFilterStrategy() *FilterStrategy {\n\treturn &FilterStrategy{}\n}\n\nfunc (p *FilterStrategy) InitDefault() {\n}\n\nvar FilterStrategy_FilterPage_DEFAULT []int32\n\nfunc (p *FilterStrategy) GetFilterPage() (v []int32) {\n\tif !p.IsSetFilterPage() {\n\t\treturn FilterStrategy_FilterPage_DEFAULT\n\t}\n\treturn p.FilterPage\n}\n\nvar fieldIDToName_FilterStrategy = map[int16]string{\n\t1: \"filter_page\",\n}\n\nfunc (p *FilterStrategy) IsSetFilterPage() bool {\n\treturn p.FilterPage != nil\n}\n\nfunc (p *FilterStrategy) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FilterStrategy[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FilterStrategy) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int32, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int32\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FilterPage = _field\n\treturn nil\n}\n\nfunc (p *FilterStrategy) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FilterStrategy\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FilterStrategy) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFilterPage() {\n\t\tif err = oprot.WriteFieldBegin(\"filter_page\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.FilterPage)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FilterPage {\n\t\t\tif err := oprot.WriteI32(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *FilterStrategy) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FilterStrategy(%+v)\", *p)\n\n}\n\ntype SinkStrategy struct {\n\t// Check whether the index was successful\n\tCheckIndex bool `thrift:\"check_index,1\" form:\"check_index\" json:\"check_index\" query:\"check_index\"`\n}\n\nfunc NewSinkStrategy() *SinkStrategy {\n\treturn &SinkStrategy{}\n}\n\nfunc (p *SinkStrategy) InitDefault() {\n}\n\nfunc (p *SinkStrategy) GetCheckIndex() (v bool) {\n\treturn p.CheckIndex\n}\n\nvar fieldIDToName_SinkStrategy = map[int16]string{\n\t1: \"check_index\",\n}\n\nfunc (p *SinkStrategy) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SinkStrategy[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SinkStrategy) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CheckIndex = _field\n\treturn nil\n}\n\nfunc (p *SinkStrategy) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SinkStrategy\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SinkStrategy) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"check_index\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CheckIndex); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *SinkStrategy) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SinkStrategy(%+v)\", *p)\n\n}\n\n// Table column information\ntype DocTableColumn struct {\n\t// Column ID\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\"`\n\t// column_name\n\tColumnName string `thrift:\"column_name,2\" form:\"column_name\" json:\"column_name\" query:\"column_name\"`\n\t// Is it a semantically matched column?\n\tIsSemantic bool `thrift:\"is_semantic,3\" form:\"is_semantic\" json:\"is_semantic\" query:\"is_semantic\"`\n\t// List the serial number originally in excel\n\tSequence int64 `thrift:\"sequence,4\" form:\"sequence\" json:\"sequence,string\"`\n\t// column type\n\tColumnType         *ColumnType `thrift:\"column_type,5,optional\" form:\"column_type\" json:\"column_type,omitempty\" query:\"column_type\"`\n\tContainsEmptyValue *bool       `thrift:\"contains_empty_value,6,optional\" form:\"contains_empty_value\" json:\"contains_empty_value,omitempty\" query:\"contains_empty_value\"`\n\t// describe\n\tDesc *string `thrift:\"desc,7,optional\" form:\"desc\" json:\"desc,omitempty\" query:\"desc\"`\n}\n\nfunc NewDocTableColumn() *DocTableColumn {\n\treturn &DocTableColumn{}\n}\n\nfunc (p *DocTableColumn) InitDefault() {\n}\n\nfunc (p *DocTableColumn) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *DocTableColumn) GetColumnName() (v string) {\n\treturn p.ColumnName\n}\n\nfunc (p *DocTableColumn) GetIsSemantic() (v bool) {\n\treturn p.IsSemantic\n}\n\nfunc (p *DocTableColumn) GetSequence() (v int64) {\n\treturn p.Sequence\n}\n\nvar DocTableColumn_ColumnType_DEFAULT ColumnType\n\nfunc (p *DocTableColumn) GetColumnType() (v ColumnType) {\n\tif !p.IsSetColumnType() {\n\t\treturn DocTableColumn_ColumnType_DEFAULT\n\t}\n\treturn *p.ColumnType\n}\n\nvar DocTableColumn_ContainsEmptyValue_DEFAULT bool\n\nfunc (p *DocTableColumn) GetContainsEmptyValue() (v bool) {\n\tif !p.IsSetContainsEmptyValue() {\n\t\treturn DocTableColumn_ContainsEmptyValue_DEFAULT\n\t}\n\treturn *p.ContainsEmptyValue\n}\n\nvar DocTableColumn_Desc_DEFAULT string\n\nfunc (p *DocTableColumn) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn DocTableColumn_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar fieldIDToName_DocTableColumn = map[int16]string{\n\t1: \"id\",\n\t2: \"column_name\",\n\t3: \"is_semantic\",\n\t4: \"sequence\",\n\t5: \"column_type\",\n\t6: \"contains_empty_value\",\n\t7: \"desc\",\n}\n\nfunc (p *DocTableColumn) IsSetColumnType() bool {\n\treturn p.ColumnType != nil\n}\n\nfunc (p *DocTableColumn) IsSetContainsEmptyValue() bool {\n\treturn p.ContainsEmptyValue != nil\n}\n\nfunc (p *DocTableColumn) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *DocTableColumn) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DocTableColumn[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DocTableColumn) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *DocTableColumn) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ColumnName = _field\n\treturn nil\n}\nfunc (p *DocTableColumn) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsSemantic = _field\n\treturn nil\n}\nfunc (p *DocTableColumn) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Sequence = _field\n\treturn nil\n}\nfunc (p *DocTableColumn) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *ColumnType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ColumnType(v)\n\t\t_field = &tmp\n\t}\n\tp.ColumnType = _field\n\treturn nil\n}\nfunc (p *DocTableColumn) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ContainsEmptyValue = _field\n\treturn nil\n}\nfunc (p *DocTableColumn) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\n\nfunc (p *DocTableColumn) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DocTableColumn\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DocTableColumn) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DocTableColumn) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"column_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ColumnName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DocTableColumn) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_semantic\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsSemantic); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DocTableColumn) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sequence\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Sequence); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DocTableColumn) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetColumnType() {\n\t\tif err = oprot.WriteFieldBegin(\"column_type\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ColumnType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DocTableColumn) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContainsEmptyValue() {\n\t\tif err = oprot.WriteFieldBegin(\"contains_empty_value\", thrift.BOOL, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.ContainsEmptyValue); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DocTableColumn) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *DocTableColumn) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DocTableColumn(%+v)\", *p)\n\n}\n\ntype PhotoInfo struct {\n\t// Picture Knowledge Base One picture corresponds to one document\n\tName string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\t// Document ID\n\tDocumentID int64 `thrift:\"document_id,2\" form:\"document_id\" json:\"document_id,string\" query:\"document_id\"`\n\t// image link\n\tURL string `thrift:\"url,3\" form:\"url\" json:\"url\" query:\"url\"`\n\t// picture description information\n\tCaption string `thrift:\"caption,4\" form:\"caption\" json:\"caption\" query:\"caption\"`\n\t// create_time\n\tCreateTime int32 `thrift:\"create_time,5\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\t// update time\n\tUpdateTime int32 `thrift:\"update_time,6\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\t// creator_id\n\tCreatorID int64 `thrift:\"creator_id,7\" form:\"creator_id\" json:\"creator_id,string\"`\n\t// Image suffix jpg, png, etc\n\tType string `thrift:\"type,8\" form:\"type\" json:\"type\" query:\"type\"`\n\t// image size\n\tSize int32 `thrift:\"size,9\" form:\"size\" json:\"size\" query:\"size\"`\n\t// status\n\tStatus DocumentStatus `thrift:\"status,10\" form:\"status\" json:\"status\" query:\"status\"`\n\t// source\n\tSourceType DocumentSource `thrift:\"source_type,11\" form:\"source_type\" json:\"source_type\" query:\"source_type\"`\n}\n\nfunc NewPhotoInfo() *PhotoInfo {\n\treturn &PhotoInfo{}\n}\n\nfunc (p *PhotoInfo) InitDefault() {\n}\n\nfunc (p *PhotoInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PhotoInfo) GetDocumentID() (v int64) {\n\treturn p.DocumentID\n}\n\nfunc (p *PhotoInfo) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *PhotoInfo) GetCaption() (v string) {\n\treturn p.Caption\n}\n\nfunc (p *PhotoInfo) GetCreateTime() (v int32) {\n\treturn p.CreateTime\n}\n\nfunc (p *PhotoInfo) GetUpdateTime() (v int32) {\n\treturn p.UpdateTime\n}\n\nfunc (p *PhotoInfo) GetCreatorID() (v int64) {\n\treturn p.CreatorID\n}\n\nfunc (p *PhotoInfo) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *PhotoInfo) GetSize() (v int32) {\n\treturn p.Size\n}\n\nfunc (p *PhotoInfo) GetStatus() (v DocumentStatus) {\n\treturn p.Status\n}\n\nfunc (p *PhotoInfo) GetSourceType() (v DocumentSource) {\n\treturn p.SourceType\n}\n\nvar fieldIDToName_PhotoInfo = map[int16]string{\n\t1:  \"name\",\n\t2:  \"document_id\",\n\t3:  \"url\",\n\t4:  \"caption\",\n\t5:  \"create_time\",\n\t6:  \"update_time\",\n\t7:  \"creator_id\",\n\t8:  \"type\",\n\t9:  \"size\",\n\t10: \"status\",\n\t11: \"source_type\",\n}\n\nfunc (p *PhotoInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PhotoInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PhotoInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PhotoInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *PhotoInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *PhotoInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Caption = _field\n\treturn nil\n}\nfunc (p *PhotoInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *PhotoInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *PhotoInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *PhotoInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *PhotoInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *PhotoInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field DocumentStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = DocumentStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *PhotoInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field DocumentSource\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = DocumentSource(v)\n\t}\n\tp.SourceType = _field\n\treturn nil\n}\n\nfunc (p *PhotoInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PhotoInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PhotoInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PhotoInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DocumentID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PhotoInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PhotoInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"caption\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Caption); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PhotoInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PhotoInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PhotoInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator_id\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PhotoInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PhotoInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Size); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PhotoInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *PhotoInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"source_type\", thrift.I32, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SourceType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\n\nfunc (p *PhotoInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PhotoInfo(%+v)\", *p)\n\n}\n\ntype DocumentProgress struct {\n\tDocumentID int64 `thrift:\"document_id,1\" form:\"document_id\" json:\"document_id,string\" query:\"document_id\"`\n\t// Knowledge Base Progress Percentage\n\tProgress int32          `thrift:\"progress,2\" form:\"progress\" json:\"progress\" query:\"progress\"`\n\tStatus   DocumentStatus `thrift:\"status,3\" form:\"status\" json:\"status\" query:\"status\"`\n\t// A detailed description of the status; if the slice fails, a failure message is returned\n\tStatusDescript *string `thrift:\"status_descript,4,optional\" form:\"status_descript\" json:\"status_descript,omitempty\" query:\"status_descript\"`\n\tDocumentName   string  `thrift:\"document_name,5\" form:\"document_name\" json:\"document_name\" query:\"document_name\"`\n\t// Remaining time in seconds\n\tRemainingTime *int64  `thrift:\"remaining_time,6,optional\" form:\"remaining_time\" json:\"remaining_time,omitempty\" query:\"remaining_time\"`\n\tSize          *int64  `thrift:\"size,7,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\tType          *string `thrift:\"type,8,optional\" form:\"type\" json:\"type,omitempty\" query:\"type\"`\n\tURL           *string `thrift:\"url,9,optional\" form:\"url\" json:\"url,omitempty\" query:\"url\"`\n}\n\nfunc NewDocumentProgress() *DocumentProgress {\n\treturn &DocumentProgress{}\n}\n\nfunc (p *DocumentProgress) InitDefault() {\n}\n\nfunc (p *DocumentProgress) GetDocumentID() (v int64) {\n\treturn p.DocumentID\n}\n\nfunc (p *DocumentProgress) GetProgress() (v int32) {\n\treturn p.Progress\n}\n\nfunc (p *DocumentProgress) GetStatus() (v DocumentStatus) {\n\treturn p.Status\n}\n\nvar DocumentProgress_StatusDescript_DEFAULT string\n\nfunc (p *DocumentProgress) GetStatusDescript() (v string) {\n\tif !p.IsSetStatusDescript() {\n\t\treturn DocumentProgress_StatusDescript_DEFAULT\n\t}\n\treturn *p.StatusDescript\n}\n\nfunc (p *DocumentProgress) GetDocumentName() (v string) {\n\treturn p.DocumentName\n}\n\nvar DocumentProgress_RemainingTime_DEFAULT int64\n\nfunc (p *DocumentProgress) GetRemainingTime() (v int64) {\n\tif !p.IsSetRemainingTime() {\n\t\treturn DocumentProgress_RemainingTime_DEFAULT\n\t}\n\treturn *p.RemainingTime\n}\n\nvar DocumentProgress_Size_DEFAULT int64\n\nfunc (p *DocumentProgress) GetSize() (v int64) {\n\tif !p.IsSetSize() {\n\t\treturn DocumentProgress_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar DocumentProgress_Type_DEFAULT string\n\nfunc (p *DocumentProgress) GetType() (v string) {\n\tif !p.IsSetType() {\n\t\treturn DocumentProgress_Type_DEFAULT\n\t}\n\treturn *p.Type\n}\n\nvar DocumentProgress_URL_DEFAULT string\n\nfunc (p *DocumentProgress) GetURL() (v string) {\n\tif !p.IsSetURL() {\n\t\treturn DocumentProgress_URL_DEFAULT\n\t}\n\treturn *p.URL\n}\n\nvar fieldIDToName_DocumentProgress = map[int16]string{\n\t1: \"document_id\",\n\t2: \"progress\",\n\t3: \"status\",\n\t4: \"status_descript\",\n\t5: \"document_name\",\n\t6: \"remaining_time\",\n\t7: \"size\",\n\t8: \"type\",\n\t9: \"url\",\n}\n\nfunc (p *DocumentProgress) IsSetStatusDescript() bool {\n\treturn p.StatusDescript != nil\n}\n\nfunc (p *DocumentProgress) IsSetRemainingTime() bool {\n\treturn p.RemainingTime != nil\n}\n\nfunc (p *DocumentProgress) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *DocumentProgress) IsSetType() bool {\n\treturn p.Type != nil\n}\n\nfunc (p *DocumentProgress) IsSetURL() bool {\n\treturn p.URL != nil\n}\n\nfunc (p *DocumentProgress) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DocumentProgress[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DocumentProgress) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *DocumentProgress) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Progress = _field\n\treturn nil\n}\nfunc (p *DocumentProgress) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field DocumentStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = DocumentStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *DocumentProgress) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.StatusDescript = _field\n\treturn nil\n}\nfunc (p *DocumentProgress) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentName = _field\n\treturn nil\n}\nfunc (p *DocumentProgress) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RemainingTime = _field\n\treturn nil\n}\nfunc (p *DocumentProgress) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *DocumentProgress) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *DocumentProgress) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.URL = _field\n\treturn nil\n}\n\nfunc (p *DocumentProgress) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DocumentProgress\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DocumentProgress) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DocumentID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DocumentProgress) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"progress\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Progress); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DocumentProgress) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DocumentProgress) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatusDescript() {\n\t\tif err = oprot.WriteFieldBegin(\"status_descript\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.StatusDescript); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DocumentProgress) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_name\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DocumentName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DocumentProgress) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRemainingTime() {\n\t\tif err = oprot.WriteFieldBegin(\"remaining_time\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.RemainingTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DocumentProgress) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *DocumentProgress) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetType() {\n\t\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Type); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *DocumentProgress) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetURL() {\n\t\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.URL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *DocumentProgress) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DocumentProgress(%+v)\", *p)\n\n}\n\ntype Dataset struct {\n\tDatasetID int64 `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id,string\" query:\"dataset_id\"`\n\t// Dataset name\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\t// file list\n\tFileList []string `thrift:\"file_list,3\" form:\"file_list\" json:\"file_list\" query:\"file_list\"`\n\t// All file sizes\n\tAllFileSize int64 `thrift:\"all_file_size,4\" form:\"all_file_size\" json:\"all_file_size,string\" query:\"all_file_size\"`\n\t// Bot count\n\tBotUsedCount int32         `thrift:\"bot_used_count,5\" form:\"bot_used_count\" json:\"bot_used_count\" query:\"bot_used_count\"`\n\tStatus       DatasetStatus `thrift:\"status,6\" form:\"status\" json:\"status\" query:\"status\"`\n\t// List of file names in process, compatible with old logic\n\tProcessingFileList []string `thrift:\"processing_file_list,7\" form:\"processing_file_list\" json:\"processing_file_list\" query:\"processing_file_list\"`\n\t// Update time, second timestamp\n\tUpdateTime  int32  `thrift:\"update_time,8\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\tIconURL     string `thrift:\"icon_url,9\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tDescription string `thrift:\"description,10\" form:\"description\" json:\"description\" query:\"description\"`\n\tIconURI     string `thrift:\"icon_uri,11\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\t// Can it be edited?\n\tCanEdit bool `thrift:\"can_edit,12\" form:\"can_edit\" json:\"can_edit\" query:\"can_edit\"`\n\t// create_time, second timestamp\n\tCreateTime int32 `thrift:\"create_time,13\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\t// creator ID\n\tCreatorID int64 `thrift:\"creator_id,14\" form:\"creator_id\" json:\"creator_id,string\" query:\"creator_id\"`\n\t// Space ID\n\tSpaceID int64 `thrift:\"space_id,15\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\t// Processing failed files\n\tFailedFileList []string   `thrift:\"failed_file_list,18\" form:\"failed_file_list\" json:\"failed_file_list\" query:\"failed_file_list\"`\n\tFormatType     FormatType `thrift:\"format_type,19\" form:\"format_type\" json:\"format_type\" query:\"format_type\"`\n\t// number of segments\n\tSliceCount int32 `thrift:\"slice_count,20\" form:\"slice_count\" json:\"slice_count\" query:\"slice_count\"`\n\t// hit count\n\tHitCount int32 `thrift:\"hit_count,21\" form:\"hit_count\" json:\"hit_count\" query:\"hit_count\"`\n\t// number of documents\n\tDocCount int32 `thrift:\"doc_count,22\" form:\"doc_count\" json:\"doc_count\" query:\"doc_count\"`\n\t// slicing rule\n\tChunkStrategy *ChunkStrategy `thrift:\"chunk_strategy,23\" form:\"chunk_strategy\" json:\"chunk_strategy\" query:\"chunk_strategy\"`\n\t// List of file IDs in process\n\tProcessingFileIDList []string `thrift:\"processing_file_id_list,24\" form:\"processing_file_id_list\" json:\"processing_file_id_list\" query:\"processing_file_id_list\"`\n\t//project ID\n\tProjectID string `thrift:\"project_id,25\" form:\"project_id\" json:\"project_id\" query:\"project_id\"`\n}\n\nfunc NewDataset() *Dataset {\n\treturn &Dataset{}\n}\n\nfunc (p *Dataset) InitDefault() {\n}\n\nfunc (p *Dataset) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nfunc (p *Dataset) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *Dataset) GetFileList() (v []string) {\n\treturn p.FileList\n}\n\nfunc (p *Dataset) GetAllFileSize() (v int64) {\n\treturn p.AllFileSize\n}\n\nfunc (p *Dataset) GetBotUsedCount() (v int32) {\n\treturn p.BotUsedCount\n}\n\nfunc (p *Dataset) GetStatus() (v DatasetStatus) {\n\treturn p.Status\n}\n\nfunc (p *Dataset) GetProcessingFileList() (v []string) {\n\treturn p.ProcessingFileList\n}\n\nfunc (p *Dataset) GetUpdateTime() (v int32) {\n\treturn p.UpdateTime\n}\n\nfunc (p *Dataset) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *Dataset) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *Dataset) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *Dataset) GetCanEdit() (v bool) {\n\treturn p.CanEdit\n}\n\nfunc (p *Dataset) GetCreateTime() (v int32) {\n\treturn p.CreateTime\n}\n\nfunc (p *Dataset) GetCreatorID() (v int64) {\n\treturn p.CreatorID\n}\n\nfunc (p *Dataset) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *Dataset) GetFailedFileList() (v []string) {\n\treturn p.FailedFileList\n}\n\nfunc (p *Dataset) GetFormatType() (v FormatType) {\n\treturn p.FormatType\n}\n\nfunc (p *Dataset) GetSliceCount() (v int32) {\n\treturn p.SliceCount\n}\n\nfunc (p *Dataset) GetHitCount() (v int32) {\n\treturn p.HitCount\n}\n\nfunc (p *Dataset) GetDocCount() (v int32) {\n\treturn p.DocCount\n}\n\nvar Dataset_ChunkStrategy_DEFAULT *ChunkStrategy\n\nfunc (p *Dataset) GetChunkStrategy() (v *ChunkStrategy) {\n\tif !p.IsSetChunkStrategy() {\n\t\treturn Dataset_ChunkStrategy_DEFAULT\n\t}\n\treturn p.ChunkStrategy\n}\n\nfunc (p *Dataset) GetProcessingFileIDList() (v []string) {\n\treturn p.ProcessingFileIDList\n}\n\nfunc (p *Dataset) GetProjectID() (v string) {\n\treturn p.ProjectID\n}\n\nvar fieldIDToName_Dataset = map[int16]string{\n\t1:  \"dataset_id\",\n\t2:  \"name\",\n\t3:  \"file_list\",\n\t4:  \"all_file_size\",\n\t5:  \"bot_used_count\",\n\t6:  \"status\",\n\t7:  \"processing_file_list\",\n\t8:  \"update_time\",\n\t9:  \"icon_url\",\n\t10: \"description\",\n\t11: \"icon_uri\",\n\t12: \"can_edit\",\n\t13: \"create_time\",\n\t14: \"creator_id\",\n\t15: \"space_id\",\n\t18: \"failed_file_list\",\n\t19: \"format_type\",\n\t20: \"slice_count\",\n\t21: \"hit_count\",\n\t22: \"doc_count\",\n\t23: \"chunk_strategy\",\n\t24: \"processing_file_id_list\",\n\t25: \"project_id\",\n}\n\nfunc (p *Dataset) IsSetChunkStrategy() bool {\n\treturn p.ChunkStrategy != nil\n}\n\nfunc (p *Dataset) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 25:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField25(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Dataset[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Dataset) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FileList = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AllFileSize = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotUsedCount = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field DatasetStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = DatasetStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ProcessingFileList = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanEdit = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField18(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FailedFileList = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field FormatType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = FormatType(v)\n\t}\n\tp.FormatType = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SliceCount = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HitCount = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocCount = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField23(iprot thrift.TProtocol) error {\n\t_field := NewChunkStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ChunkStrategy = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField24(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ProcessingFileIDList = _field\n\treturn nil\n}\nfunc (p *Dataset) ReadField25(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\n\nfunc (p *Dataset) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Dataset\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField25(oprot); err != nil {\n\t\t\tfieldId = 25\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Dataset) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Dataset) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Dataset) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_list\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.FileList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.FileList {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Dataset) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"all_file_size\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.AllFileSize); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Dataset) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_used_count\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.BotUsedCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Dataset) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Dataset) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"processing_file_list\", thrift.LIST, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.ProcessingFileList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ProcessingFileList {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Dataset) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I32, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *Dataset) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *Dataset) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *Dataset) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *Dataset) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_edit\", thrift.BOOL, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanEdit); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *Dataset) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I32, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *Dataset) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator_id\", thrift.I64, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *Dataset) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *Dataset) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"failed_file_list\", thrift.LIST, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.FailedFileList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.FailedFileList {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *Dataset) writeField19(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"format_type\", thrift.I32, 19); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FormatType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *Dataset) writeField20(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"slice_count\", thrift.I32, 20); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.SliceCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *Dataset) writeField21(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"hit_count\", thrift.I32, 21); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.HitCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *Dataset) writeField22(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"doc_count\", thrift.I32, 22); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.DocCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *Dataset) writeField23(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"chunk_strategy\", thrift.STRUCT, 23); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ChunkStrategy.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *Dataset) writeField24(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"processing_file_id_list\", thrift.LIST, 24); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.ProcessingFileIDList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ProcessingFileIDList {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\nfunc (p *Dataset) writeField25(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 25); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 end error: \", p), err)\n}\n\nfunc (p *Dataset) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Dataset(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/data/knowledge/document.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage knowledge\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype TableDataType int64\n\nconst (\n\t// Schema sheets and preview data\n\tTableDataType_AllData TableDataType = 0\n\t// Only need schema structure & Sheets\n\tTableDataType_OnlySchema TableDataType = 1\n\t// Just preview the data\n\tTableDataType_OnlyPreview TableDataType = 2\n)\n\nfunc (p TableDataType) String() string {\n\tswitch p {\n\tcase TableDataType_AllData:\n\t\treturn \"AllData\"\n\tcase TableDataType_OnlySchema:\n\t\treturn \"OnlySchema\"\n\tcase TableDataType_OnlyPreview:\n\t\treturn \"OnlyPreview\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TableDataTypeFromString(s string) (TableDataType, error) {\n\tswitch s {\n\tcase \"AllData\":\n\t\treturn TableDataType_AllData, nil\n\tcase \"OnlySchema\":\n\t\treturn TableDataType_OnlySchema, nil\n\tcase \"OnlyPreview\":\n\t\treturn TableDataType_OnlyPreview, nil\n\t}\n\treturn TableDataType(0), fmt.Errorf(\"not a valid TableDataType string\")\n}\n\nfunc TableDataTypePtr(v TableDataType) *TableDataType { return &v }\nfunc (p *TableDataType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = TableDataType(result.Int64)\n\treturn\n}\n\nfunc (p *TableDataType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ListDocumentRequest struct {\n\tDatasetID   int64    `thrift:\"dataset_id,1,required\" form:\"dataset_id,required\" json:\"dataset_id,string,required\" query:\"dataset_id,required\"`\n\tDocumentIds []string `thrift:\"document_ids,2,optional\" form:\"document_ids\" json:\"document_ids,omitempty\" query:\"document_ids\"`\n\tPage        *int32   `thrift:\"page,3,optional\" form:\"page\" json:\"page,omitempty\" query:\"page\"`\n\tSize        *int32   `thrift:\"size,4,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\t// Search by name\n\tKeyword *string    `thrift:\"keyword,5,optional\" form:\"keyword\" json:\"keyword,omitempty\" query:\"keyword\"`\n\tBase    *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewListDocumentRequest() *ListDocumentRequest {\n\treturn &ListDocumentRequest{}\n}\n\nfunc (p *ListDocumentRequest) InitDefault() {\n}\n\nfunc (p *ListDocumentRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nvar ListDocumentRequest_DocumentIds_DEFAULT []string\n\nfunc (p *ListDocumentRequest) GetDocumentIds() (v []string) {\n\tif !p.IsSetDocumentIds() {\n\t\treturn ListDocumentRequest_DocumentIds_DEFAULT\n\t}\n\treturn p.DocumentIds\n}\n\nvar ListDocumentRequest_Page_DEFAULT int32\n\nfunc (p *ListDocumentRequest) GetPage() (v int32) {\n\tif !p.IsSetPage() {\n\t\treturn ListDocumentRequest_Page_DEFAULT\n\t}\n\treturn *p.Page\n}\n\nvar ListDocumentRequest_Size_DEFAULT int32\n\nfunc (p *ListDocumentRequest) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn ListDocumentRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar ListDocumentRequest_Keyword_DEFAULT string\n\nfunc (p *ListDocumentRequest) GetKeyword() (v string) {\n\tif !p.IsSetKeyword() {\n\t\treturn ListDocumentRequest_Keyword_DEFAULT\n\t}\n\treturn *p.Keyword\n}\n\nvar ListDocumentRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListDocumentRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListDocumentRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListDocumentRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t2:   \"document_ids\",\n\t3:   \"page\",\n\t4:   \"size\",\n\t5:   \"keyword\",\n\t255: \"Base\",\n}\n\nfunc (p *ListDocumentRequest) IsSetDocumentIds() bool {\n\treturn p.DocumentIds != nil\n}\n\nfunc (p *ListDocumentRequest) IsSetPage() bool {\n\treturn p.Page != nil\n}\n\nfunc (p *ListDocumentRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *ListDocumentRequest) IsSetKeyword() bool {\n\treturn p.Keyword != nil\n}\n\nfunc (p *ListDocumentRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListDocumentRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDatasetID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDatasetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDatasetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDocumentRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDocumentRequest[fieldId]))\n}\n\nfunc (p *ListDocumentRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *ListDocumentRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DocumentIds = _field\n\treturn nil\n}\nfunc (p *ListDocumentRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *ListDocumentRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *ListDocumentRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *ListDocumentRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListDocumentRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDocumentRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDocumentRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDocumentRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDocumentIds() {\n\t\tif err = oprot.WriteFieldBegin(\"document_ids\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.DocumentIds)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.DocumentIds {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDocumentRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPage() {\n\t\tif err = oprot.WriteFieldBegin(\"page\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Page); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListDocumentRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListDocumentRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKeyword() {\n\t\tif err = oprot.WriteFieldBegin(\"keyword\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Keyword); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListDocumentRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDocumentRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDocumentRequest(%+v)\", *p)\n\n}\n\ntype ListDocumentResponse struct {\n\tDocumentInfos []*DocumentInfo `thrift:\"document_infos,1\" form:\"document_infos\" json:\"document_infos\" query:\"document_infos\"`\n\tTotal         int32           `thrift:\"total,2\" form:\"total\" json:\"total\" query:\"total\"`\n\tCode          int64           `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg           string          `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp      *base.BaseResp  `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewListDocumentResponse() *ListDocumentResponse {\n\treturn &ListDocumentResponse{}\n}\n\nfunc (p *ListDocumentResponse) InitDefault() {\n}\n\nfunc (p *ListDocumentResponse) GetDocumentInfos() (v []*DocumentInfo) {\n\treturn p.DocumentInfos\n}\n\nfunc (p *ListDocumentResponse) GetTotal() (v int32) {\n\treturn p.Total\n}\n\nfunc (p *ListDocumentResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListDocumentResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ListDocumentResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListDocumentResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListDocumentResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListDocumentResponse = map[int16]string{\n\t1:   \"document_infos\",\n\t2:   \"total\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListDocumentResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListDocumentResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDocumentResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDocumentResponse[fieldId]))\n}\n\nfunc (p *ListDocumentResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DocumentInfo, 0, size)\n\tvalues := make([]DocumentInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DocumentInfos = _field\n\treturn nil\n}\nfunc (p *ListDocumentResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\nfunc (p *ListDocumentResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListDocumentResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListDocumentResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListDocumentResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDocumentResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDocumentResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_infos\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.DocumentInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DocumentInfos {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDocumentResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDocumentResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListDocumentResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ListDocumentResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDocumentResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDocumentResponse(%+v)\", *p)\n\n}\n\ntype DocumentInfo struct {\n\tName       string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tDocumentID int64  `thrift:\"document_id,2\" form:\"document_id\" json:\"document_id,string\" query:\"document_id\"`\n\t// file link\n\tTosURI *string `thrift:\"tos_uri,3,optional\" form:\"tos_uri\" json:\"tos_uri,omitempty\" query:\"tos_uri\"`\n\t// create_time\n\tCreateTime int32 `thrift:\"create_time,5\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\t// update time\n\tUpdateTime int32 `thrift:\"update_time,6\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\t// creator_id\n\tCreatorID *int64 `thrift:\"creator_id,7,optional\" form:\"creator_id\" json:\"creator_id,string,omitempty\"`\n\t// number of segments included\n\tSliceCount int32 `thrift:\"slice_count,8\" form:\"slice_count\" json:\"slice_count\" query:\"slice_count\"`\n\t// File suffix csv, pdf, etc\n\tType string `thrift:\"type,9\" form:\"type\" json:\"type\" query:\"type\"`\n\t// File size, number of bytes\n\tSize int32 `thrift:\"size,10\" form:\"size\" json:\"size\" query:\"size\"`\n\t// character count\n\tCharCount int32 `thrift:\"char_count,11\" form:\"char_count\" json:\"char_count\" query:\"char_count\"`\n\t// status\n\tStatus DocumentStatus `thrift:\"status,12\" form:\"status\" json:\"status\" query:\"status\"`\n\t// hit count\n\tHitCount int32 `thrift:\"hit_count,13\" form:\"hit_count\" json:\"hit_count\" query:\"hit_count\"`\n\t// source\n\tSourceType DocumentSource `thrift:\"source_type,14\" form:\"source_type\" json:\"source_type\" query:\"source_type\"`\n\t// file type\n\tFormatType FormatType `thrift:\"format_type,18\" form:\"format_type\" json:\"format_type\" query:\"format_type\"`\n\t// Table type metadata\n\tTableMeta []*TableColumn `thrift:\"table_meta,19,optional\" form:\"table_meta\" json:\"table_meta,omitempty\" query:\"table_meta\"`\n\t// URL address\n\tWebURL *string `thrift:\"web_url,20,optional\" form:\"web_url\" json:\"web_url,omitempty\" query:\"web_url\"`\n\t// Details of the status; if the slice fails, return the failure information\n\tStatusDescript *string `thrift:\"status_descript,21,optional\" form:\"status_descript\" json:\"status_descript,omitempty\" query:\"status_descript\"`\n\t// Space ID\n\tSpaceID *int64 `thrift:\"space_id,24,optional\" form:\"space_id\" json:\"space_id,string,omitempty\" query:\"space_id\"`\n\t// The following fields are only useful for the reconstructed table type and are used for front-end judgment\n\tEditableAppendContent *bool `thrift:\"editable_append_content,26,optional\" form:\"editable_append_content\" json:\"editable_append_content,omitempty\" query:\"editable_append_content\"`\n\t// slicing rule\n\tChunkStrategy *ChunkStrategy `thrift:\"chunk_strategy,27\" form:\"chunk_strategy\" json:\"chunk_strategy\" query:\"chunk_strategy\"`\n\t// File links stored by ImageX\n\tImagexURI *string `thrift:\"imagex_uri,28,optional\" form:\"imagex_uri\" json:\"imagex_uri,omitempty\" query:\"imagex_uri\"`\n\t// Hierarchical Segmentation Document Tree Json (unused)\n\tDocOutline *string `thrift:\"doc_outline,29,optional\" form:\"doc_outline\" json:\"doc_outline,omitempty\" query:\"doc_outline\"`\n\t// parsing strategy\n\tParsingStrategy *ParsingStrategy `thrift:\"parsing_strategy,30,optional\" form:\"parsing_strategy\" json:\"parsing_strategy,omitempty\" query:\"parsing_strategy\"`\n\t// filtering strategy\n\tFilterStrategy *FilterStrategy `thrift:\"filter_strategy,32,optional\" form:\"filter_strategy\" json:\"filter_strategy,omitempty\" query:\"filter_strategy\"`\n\t// Hierarchical segmented document tree tos_url\n\tDocTreeTosURL *string `thrift:\"doc_tree_tos_url,33,optional\" form:\"doc_tree_tos_url\" json:\"doc_tree_tos_url,omitempty\" query:\"doc_tree_tos_url\"`\n\t// Preview the original document tos_url\n\tPreviewTosURL *string `thrift:\"preview_tos_url,34,optional\" form:\"preview_tos_url\" json:\"preview_tos_url,omitempty\" query:\"preview_tos_url\"`\n\t// Preview the original document tos_url\n\tReviewID *int64 `thrift:\"review_id,35,optional\" form:\"review_id\" json:\"review_id,omitempty\" query:\"review_id\"`\n}\n\nfunc NewDocumentInfo() *DocumentInfo {\n\treturn &DocumentInfo{}\n}\n\nfunc (p *DocumentInfo) InitDefault() {\n}\n\nfunc (p *DocumentInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *DocumentInfo) GetDocumentID() (v int64) {\n\treturn p.DocumentID\n}\n\nvar DocumentInfo_TosURI_DEFAULT string\n\nfunc (p *DocumentInfo) GetTosURI() (v string) {\n\tif !p.IsSetTosURI() {\n\t\treturn DocumentInfo_TosURI_DEFAULT\n\t}\n\treturn *p.TosURI\n}\n\nfunc (p *DocumentInfo) GetCreateTime() (v int32) {\n\treturn p.CreateTime\n}\n\nfunc (p *DocumentInfo) GetUpdateTime() (v int32) {\n\treturn p.UpdateTime\n}\n\nvar DocumentInfo_CreatorID_DEFAULT int64\n\nfunc (p *DocumentInfo) GetCreatorID() (v int64) {\n\tif !p.IsSetCreatorID() {\n\t\treturn DocumentInfo_CreatorID_DEFAULT\n\t}\n\treturn *p.CreatorID\n}\n\nfunc (p *DocumentInfo) GetSliceCount() (v int32) {\n\treturn p.SliceCount\n}\n\nfunc (p *DocumentInfo) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *DocumentInfo) GetSize() (v int32) {\n\treturn p.Size\n}\n\nfunc (p *DocumentInfo) GetCharCount() (v int32) {\n\treturn p.CharCount\n}\n\nfunc (p *DocumentInfo) GetStatus() (v DocumentStatus) {\n\treturn p.Status\n}\n\nfunc (p *DocumentInfo) GetHitCount() (v int32) {\n\treturn p.HitCount\n}\n\nfunc (p *DocumentInfo) GetSourceType() (v DocumentSource) {\n\treturn p.SourceType\n}\n\nfunc (p *DocumentInfo) GetFormatType() (v FormatType) {\n\treturn p.FormatType\n}\n\nvar DocumentInfo_TableMeta_DEFAULT []*TableColumn\n\nfunc (p *DocumentInfo) GetTableMeta() (v []*TableColumn) {\n\tif !p.IsSetTableMeta() {\n\t\treturn DocumentInfo_TableMeta_DEFAULT\n\t}\n\treturn p.TableMeta\n}\n\nvar DocumentInfo_WebURL_DEFAULT string\n\nfunc (p *DocumentInfo) GetWebURL() (v string) {\n\tif !p.IsSetWebURL() {\n\t\treturn DocumentInfo_WebURL_DEFAULT\n\t}\n\treturn *p.WebURL\n}\n\nvar DocumentInfo_StatusDescript_DEFAULT string\n\nfunc (p *DocumentInfo) GetStatusDescript() (v string) {\n\tif !p.IsSetStatusDescript() {\n\t\treturn DocumentInfo_StatusDescript_DEFAULT\n\t}\n\treturn *p.StatusDescript\n}\n\nvar DocumentInfo_SpaceID_DEFAULT int64\n\nfunc (p *DocumentInfo) GetSpaceID() (v int64) {\n\tif !p.IsSetSpaceID() {\n\t\treturn DocumentInfo_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar DocumentInfo_EditableAppendContent_DEFAULT bool\n\nfunc (p *DocumentInfo) GetEditableAppendContent() (v bool) {\n\tif !p.IsSetEditableAppendContent() {\n\t\treturn DocumentInfo_EditableAppendContent_DEFAULT\n\t}\n\treturn *p.EditableAppendContent\n}\n\nvar DocumentInfo_ChunkStrategy_DEFAULT *ChunkStrategy\n\nfunc (p *DocumentInfo) GetChunkStrategy() (v *ChunkStrategy) {\n\tif !p.IsSetChunkStrategy() {\n\t\treturn DocumentInfo_ChunkStrategy_DEFAULT\n\t}\n\treturn p.ChunkStrategy\n}\n\nvar DocumentInfo_ImagexURI_DEFAULT string\n\nfunc (p *DocumentInfo) GetImagexURI() (v string) {\n\tif !p.IsSetImagexURI() {\n\t\treturn DocumentInfo_ImagexURI_DEFAULT\n\t}\n\treturn *p.ImagexURI\n}\n\nvar DocumentInfo_DocOutline_DEFAULT string\n\nfunc (p *DocumentInfo) GetDocOutline() (v string) {\n\tif !p.IsSetDocOutline() {\n\t\treturn DocumentInfo_DocOutline_DEFAULT\n\t}\n\treturn *p.DocOutline\n}\n\nvar DocumentInfo_ParsingStrategy_DEFAULT *ParsingStrategy\n\nfunc (p *DocumentInfo) GetParsingStrategy() (v *ParsingStrategy) {\n\tif !p.IsSetParsingStrategy() {\n\t\treturn DocumentInfo_ParsingStrategy_DEFAULT\n\t}\n\treturn p.ParsingStrategy\n}\n\nvar DocumentInfo_FilterStrategy_DEFAULT *FilterStrategy\n\nfunc (p *DocumentInfo) GetFilterStrategy() (v *FilterStrategy) {\n\tif !p.IsSetFilterStrategy() {\n\t\treturn DocumentInfo_FilterStrategy_DEFAULT\n\t}\n\treturn p.FilterStrategy\n}\n\nvar DocumentInfo_DocTreeTosURL_DEFAULT string\n\nfunc (p *DocumentInfo) GetDocTreeTosURL() (v string) {\n\tif !p.IsSetDocTreeTosURL() {\n\t\treturn DocumentInfo_DocTreeTosURL_DEFAULT\n\t}\n\treturn *p.DocTreeTosURL\n}\n\nvar DocumentInfo_PreviewTosURL_DEFAULT string\n\nfunc (p *DocumentInfo) GetPreviewTosURL() (v string) {\n\tif !p.IsSetPreviewTosURL() {\n\t\treturn DocumentInfo_PreviewTosURL_DEFAULT\n\t}\n\treturn *p.PreviewTosURL\n}\n\nvar DocumentInfo_ReviewID_DEFAULT int64\n\nfunc (p *DocumentInfo) GetReviewID() (v int64) {\n\tif !p.IsSetReviewID() {\n\t\treturn DocumentInfo_ReviewID_DEFAULT\n\t}\n\treturn *p.ReviewID\n}\n\nvar fieldIDToName_DocumentInfo = map[int16]string{\n\t1:  \"name\",\n\t2:  \"document_id\",\n\t3:  \"tos_uri\",\n\t5:  \"create_time\",\n\t6:  \"update_time\",\n\t7:  \"creator_id\",\n\t8:  \"slice_count\",\n\t9:  \"type\",\n\t10: \"size\",\n\t11: \"char_count\",\n\t12: \"status\",\n\t13: \"hit_count\",\n\t14: \"source_type\",\n\t18: \"format_type\",\n\t19: \"table_meta\",\n\t20: \"web_url\",\n\t21: \"status_descript\",\n\t24: \"space_id\",\n\t26: \"editable_append_content\",\n\t27: \"chunk_strategy\",\n\t28: \"imagex_uri\",\n\t29: \"doc_outline\",\n\t30: \"parsing_strategy\",\n\t32: \"filter_strategy\",\n\t33: \"doc_tree_tos_url\",\n\t34: \"preview_tos_url\",\n\t35: \"review_id\",\n}\n\nfunc (p *DocumentInfo) IsSetTosURI() bool {\n\treturn p.TosURI != nil\n}\n\nfunc (p *DocumentInfo) IsSetCreatorID() bool {\n\treturn p.CreatorID != nil\n}\n\nfunc (p *DocumentInfo) IsSetTableMeta() bool {\n\treturn p.TableMeta != nil\n}\n\nfunc (p *DocumentInfo) IsSetWebURL() bool {\n\treturn p.WebURL != nil\n}\n\nfunc (p *DocumentInfo) IsSetStatusDescript() bool {\n\treturn p.StatusDescript != nil\n}\n\nfunc (p *DocumentInfo) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *DocumentInfo) IsSetEditableAppendContent() bool {\n\treturn p.EditableAppendContent != nil\n}\n\nfunc (p *DocumentInfo) IsSetChunkStrategy() bool {\n\treturn p.ChunkStrategy != nil\n}\n\nfunc (p *DocumentInfo) IsSetImagexURI() bool {\n\treturn p.ImagexURI != nil\n}\n\nfunc (p *DocumentInfo) IsSetDocOutline() bool {\n\treturn p.DocOutline != nil\n}\n\nfunc (p *DocumentInfo) IsSetParsingStrategy() bool {\n\treturn p.ParsingStrategy != nil\n}\n\nfunc (p *DocumentInfo) IsSetFilterStrategy() bool {\n\treturn p.FilterStrategy != nil\n}\n\nfunc (p *DocumentInfo) IsSetDocTreeTosURL() bool {\n\treturn p.DocTreeTosURL != nil\n}\n\nfunc (p *DocumentInfo) IsSetPreviewTosURL() bool {\n\treturn p.PreviewTosURL != nil\n}\n\nfunc (p *DocumentInfo) IsSetReviewID() bool {\n\treturn p.ReviewID != nil\n}\n\nfunc (p *DocumentInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 26:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField26(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 27:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField27(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 28:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField28(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 29:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField29(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 30:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField30(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 32:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField32(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 33:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField33(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 34:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField34(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 35:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField35(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DocumentInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DocumentInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TosURI = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SliceCount = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CharCount = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field DocumentStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = DocumentStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HitCount = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field DocumentSource\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = DocumentSource(v)\n\t}\n\tp.SourceType = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field FormatType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = FormatType(v)\n\t}\n\tp.FormatType = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField19(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TableColumn, 0, size)\n\tvalues := make([]TableColumn, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableMeta = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WebURL = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.StatusDescript = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField24(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField26(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EditableAppendContent = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField27(iprot thrift.TProtocol) error {\n\t_field := NewChunkStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ChunkStrategy = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField28(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ImagexURI = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField29(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DocOutline = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField30(iprot thrift.TProtocol) error {\n\t_field := NewParsingStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ParsingStrategy = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField32(iprot thrift.TProtocol) error {\n\t_field := NewFilterStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FilterStrategy = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField33(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DocTreeTosURL = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField34(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PreviewTosURL = _field\n\treturn nil\n}\nfunc (p *DocumentInfo) ReadField35(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ReviewID = _field\n\treturn nil\n}\n\nfunc (p *DocumentInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DocumentInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField26(oprot); err != nil {\n\t\t\tfieldId = 26\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField27(oprot); err != nil {\n\t\t\tfieldId = 27\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField28(oprot); err != nil {\n\t\t\tfieldId = 28\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField29(oprot); err != nil {\n\t\t\tfieldId = 29\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField30(oprot); err != nil {\n\t\t\tfieldId = 30\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField32(oprot); err != nil {\n\t\t\tfieldId = 32\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField33(oprot); err != nil {\n\t\t\tfieldId = 33\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField34(oprot); err != nil {\n\t\t\tfieldId = 34\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField35(oprot); err != nil {\n\t\t\tfieldId = 35\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DocumentInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DocumentID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTosURI() {\n\t\tif err = oprot.WriteFieldBegin(\"tos_uri\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TosURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatorID() {\n\t\tif err = oprot.WriteFieldBegin(\"creator_id\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreatorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"slice_count\", thrift.I32, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.SliceCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Size); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"char_count\", thrift.I32, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.CharCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"hit_count\", thrift.I32, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.HitCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"source_type\", thrift.I32, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SourceType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"format_type\", thrift.I32, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FormatType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableMeta() {\n\t\tif err = oprot.WriteFieldBegin(\"table_meta\", thrift.LIST, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.TableMeta)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.TableMeta {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWebURL() {\n\t\tif err = oprot.WriteFieldBegin(\"web_url\", thrift.STRING, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WebURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatusDescript() {\n\t\tif err = oprot.WriteFieldBegin(\"status_descript\", thrift.STRING, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.StatusDescript); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField24(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 24); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField26(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditableAppendContent() {\n\t\tif err = oprot.WriteFieldBegin(\"editable_append_content\", thrift.BOOL, 26); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.EditableAppendContent); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 26 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 26 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField27(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"chunk_strategy\", thrift.STRUCT, 27); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ChunkStrategy.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 27 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 27 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField28(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetImagexURI() {\n\t\tif err = oprot.WriteFieldBegin(\"imagex_uri\", thrift.STRING, 28); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ImagexURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 28 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 28 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField29(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDocOutline() {\n\t\tif err = oprot.WriteFieldBegin(\"doc_outline\", thrift.STRING, 29); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DocOutline); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 29 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 29 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField30(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParsingStrategy() {\n\t\tif err = oprot.WriteFieldBegin(\"parsing_strategy\", thrift.STRUCT, 30); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ParsingStrategy.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 30 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 30 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField32(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFilterStrategy() {\n\t\tif err = oprot.WriteFieldBegin(\"filter_strategy\", thrift.STRUCT, 32); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.FilterStrategy.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 32 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 32 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField33(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDocTreeTosURL() {\n\t\tif err = oprot.WriteFieldBegin(\"doc_tree_tos_url\", thrift.STRING, 33); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DocTreeTosURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 33 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 33 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField34(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPreviewTosURL() {\n\t\tif err = oprot.WriteFieldBegin(\"preview_tos_url\", thrift.STRING, 34); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PreviewTosURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 34 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 34 end error: \", p), err)\n}\nfunc (p *DocumentInfo) writeField35(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReviewID() {\n\t\tif err = oprot.WriteFieldBegin(\"review_id\", thrift.I64, 35); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ReviewID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 35 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 35 end error: \", p), err)\n}\n\nfunc (p *DocumentInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DocumentInfo(%+v)\", *p)\n\n}\n\ntype TableColumn struct {\n\t// Column ID\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\"`\n\t// column_name\n\tColumnName string `thrift:\"column_name,2\" form:\"column_name\" json:\"column_name\" query:\"column_name\"`\n\t// Is it a semantically matched column?\n\tIsSemantic bool `thrift:\"is_semantic,3\" form:\"is_semantic\" json:\"is_semantic\" query:\"is_semantic\"`\n\t// List the serial number originally in excel\n\tSequence int64 `thrift:\"sequence,4\" form:\"sequence\" json:\"sequence,string\"`\n\t// column type\n\tColumnType         *ColumnType `thrift:\"column_type,5,optional\" form:\"column_type\" json:\"column_type,omitempty\" query:\"column_type\"`\n\tContainsEmptyValue *bool       `thrift:\"contains_empty_value,6,optional\" form:\"contains_empty_value\" json:\"contains_empty_value,omitempty\" query:\"contains_empty_value\"`\n\t// describe\n\tDesc *string `thrift:\"desc,7,optional\" form:\"desc\" json:\"desc,omitempty\" query:\"desc\"`\n}\n\nfunc NewTableColumn() *TableColumn {\n\treturn &TableColumn{}\n}\n\nfunc (p *TableColumn) InitDefault() {\n}\n\nfunc (p *TableColumn) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *TableColumn) GetColumnName() (v string) {\n\treturn p.ColumnName\n}\n\nfunc (p *TableColumn) GetIsSemantic() (v bool) {\n\treturn p.IsSemantic\n}\n\nfunc (p *TableColumn) GetSequence() (v int64) {\n\treturn p.Sequence\n}\n\nvar TableColumn_ColumnType_DEFAULT ColumnType\n\nfunc (p *TableColumn) GetColumnType() (v ColumnType) {\n\tif !p.IsSetColumnType() {\n\t\treturn TableColumn_ColumnType_DEFAULT\n\t}\n\treturn *p.ColumnType\n}\n\nvar TableColumn_ContainsEmptyValue_DEFAULT bool\n\nfunc (p *TableColumn) GetContainsEmptyValue() (v bool) {\n\tif !p.IsSetContainsEmptyValue() {\n\t\treturn TableColumn_ContainsEmptyValue_DEFAULT\n\t}\n\treturn *p.ContainsEmptyValue\n}\n\nvar TableColumn_Desc_DEFAULT string\n\nfunc (p *TableColumn) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn TableColumn_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar fieldIDToName_TableColumn = map[int16]string{\n\t1: \"id\",\n\t2: \"column_name\",\n\t3: \"is_semantic\",\n\t4: \"sequence\",\n\t5: \"column_type\",\n\t6: \"contains_empty_value\",\n\t7: \"desc\",\n}\n\nfunc (p *TableColumn) IsSetColumnType() bool {\n\treturn p.ColumnType != nil\n}\n\nfunc (p *TableColumn) IsSetContainsEmptyValue() bool {\n\treturn p.ContainsEmptyValue != nil\n}\n\nfunc (p *TableColumn) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *TableColumn) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TableColumn[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TableColumn) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *TableColumn) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ColumnName = _field\n\treturn nil\n}\nfunc (p *TableColumn) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsSemantic = _field\n\treturn nil\n}\nfunc (p *TableColumn) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Sequence = _field\n\treturn nil\n}\nfunc (p *TableColumn) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *ColumnType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ColumnType(v)\n\t\t_field = &tmp\n\t}\n\tp.ColumnType = _field\n\treturn nil\n}\nfunc (p *TableColumn) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ContainsEmptyValue = _field\n\treturn nil\n}\nfunc (p *TableColumn) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\n\nfunc (p *TableColumn) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TableColumn\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TableColumn) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TableColumn) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"column_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ColumnName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TableColumn) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_semantic\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsSemantic); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *TableColumn) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sequence\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Sequence); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *TableColumn) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetColumnType() {\n\t\tif err = oprot.WriteFieldBegin(\"column_type\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ColumnType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *TableColumn) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContainsEmptyValue() {\n\t\tif err = oprot.WriteFieldBegin(\"contains_empty_value\", thrift.BOOL, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.ContainsEmptyValue); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *TableColumn) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *TableColumn) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TableColumn(%+v)\", *p)\n\n}\n\ntype DeleteDocumentRequest struct {\n\t// List of document IDs to delete\n\tDocumentIds []string   `thrift:\"document_ids,2\" form:\"document_ids\" json:\"document_ids\" query:\"document_ids\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteDocumentRequest() *DeleteDocumentRequest {\n\treturn &DeleteDocumentRequest{}\n}\n\nfunc (p *DeleteDocumentRequest) InitDefault() {\n}\n\nfunc (p *DeleteDocumentRequest) GetDocumentIds() (v []string) {\n\treturn p.DocumentIds\n}\n\nvar DeleteDocumentRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteDocumentRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteDocumentRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteDocumentRequest = map[int16]string{\n\t2:   \"document_ids\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteDocumentRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteDocumentRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteDocumentRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteDocumentRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DocumentIds = _field\n\treturn nil\n}\nfunc (p *DeleteDocumentRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteDocumentRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDocumentRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteDocumentRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_ids\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.DocumentIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DocumentIds {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteDocumentRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteDocumentRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteDocumentRequest(%+v)\", *p)\n\n}\n\ntype DeleteDocumentResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewDeleteDocumentResponse() *DeleteDocumentResponse {\n\treturn &DeleteDocumentResponse{}\n}\n\nfunc (p *DeleteDocumentResponse) InitDefault() {\n}\n\nfunc (p *DeleteDocumentResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DeleteDocumentResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DeleteDocumentResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteDocumentResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteDocumentResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteDocumentResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteDocumentResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteDocumentResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteDocumentResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteDocumentResponse[fieldId]))\n}\n\nfunc (p *DeleteDocumentResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteDocumentResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeleteDocumentResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteDocumentResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDocumentResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteDocumentResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DeleteDocumentResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DeleteDocumentResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteDocumentResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteDocumentResponse(%+v)\", *p)\n\n}\n\ntype UpdateDocumentRequest struct {\n\tDocumentID int64 `thrift:\"document_id,1\" form:\"document_id\" json:\"document_id,string\" query:\"document_id\"`\n\t// If you need to update, please upload it and update the name.\n\tDocumentName *string `thrift:\"document_name,3,optional\" form:\"document_name\" json:\"document_name,omitempty\" query:\"document_name\"`\n\t// Update table structure\n\tTableMeta []*TableColumn `thrift:\"table_meta,5,optional\" form:\"table_meta\" json:\"table_meta,omitempty\" query:\"table_meta\"`\n\tBase      *base.Base     `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateDocumentRequest() *UpdateDocumentRequest {\n\treturn &UpdateDocumentRequest{}\n}\n\nfunc (p *UpdateDocumentRequest) InitDefault() {\n}\n\nfunc (p *UpdateDocumentRequest) GetDocumentID() (v int64) {\n\treturn p.DocumentID\n}\n\nvar UpdateDocumentRequest_DocumentName_DEFAULT string\n\nfunc (p *UpdateDocumentRequest) GetDocumentName() (v string) {\n\tif !p.IsSetDocumentName() {\n\t\treturn UpdateDocumentRequest_DocumentName_DEFAULT\n\t}\n\treturn *p.DocumentName\n}\n\nvar UpdateDocumentRequest_TableMeta_DEFAULT []*TableColumn\n\nfunc (p *UpdateDocumentRequest) GetTableMeta() (v []*TableColumn) {\n\tif !p.IsSetTableMeta() {\n\t\treturn UpdateDocumentRequest_TableMeta_DEFAULT\n\t}\n\treturn p.TableMeta\n}\n\nvar UpdateDocumentRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateDocumentRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateDocumentRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateDocumentRequest = map[int16]string{\n\t1:   \"document_id\",\n\t3:   \"document_name\",\n\t5:   \"table_meta\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateDocumentRequest) IsSetDocumentName() bool {\n\treturn p.DocumentName != nil\n}\n\nfunc (p *UpdateDocumentRequest) IsSetTableMeta() bool {\n\treturn p.TableMeta != nil\n}\n\nfunc (p *UpdateDocumentRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateDocumentRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDocumentRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateDocumentRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *UpdateDocumentRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DocumentName = _field\n\treturn nil\n}\nfunc (p *UpdateDocumentRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TableColumn, 0, size)\n\tvalues := make([]TableColumn, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableMeta = _field\n\treturn nil\n}\nfunc (p *UpdateDocumentRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateDocumentRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDocumentRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDocumentRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DocumentID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDocumentRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDocumentName() {\n\t\tif err = oprot.WriteFieldBegin(\"document_name\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DocumentName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateDocumentRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableMeta() {\n\t\tif err = oprot.WriteFieldBegin(\"table_meta\", thrift.LIST, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.TableMeta)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.TableMeta {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UpdateDocumentRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDocumentRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDocumentRequest(%+v)\", *p)\n\n}\n\ntype UpdateDocumentResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewUpdateDocumentResponse() *UpdateDocumentResponse {\n\treturn &UpdateDocumentResponse{}\n}\n\nfunc (p *UpdateDocumentResponse) InitDefault() {\n}\n\nfunc (p *UpdateDocumentResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateDocumentResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateDocumentResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateDocumentResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateDocumentResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateDocumentResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateDocumentResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateDocumentResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDocumentResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateDocumentResponse[fieldId]))\n}\n\nfunc (p *UpdateDocumentResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateDocumentResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateDocumentResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateDocumentResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDocumentResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDocumentResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateDocumentResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateDocumentResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDocumentResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDocumentResponse(%+v)\", *p)\n\n}\n\ntype UpdatePhotoCaptionRequest struct {\n\t// Document ID\n\tDocumentID int64 `thrift:\"document_id,1,required\" form:\"document_id,required\" json:\"document_id,string,required\" query:\"document_id,required\"`\n\t// Picture description information to be updated\n\tCaption string     `thrift:\"caption,2,required\" form:\"caption,required\" json:\"caption,required\" query:\"caption,required\"`\n\tBase    *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdatePhotoCaptionRequest() *UpdatePhotoCaptionRequest {\n\treturn &UpdatePhotoCaptionRequest{}\n}\n\nfunc (p *UpdatePhotoCaptionRequest) InitDefault() {\n}\n\nfunc (p *UpdatePhotoCaptionRequest) GetDocumentID() (v int64) {\n\treturn p.DocumentID\n}\n\nfunc (p *UpdatePhotoCaptionRequest) GetCaption() (v string) {\n\treturn p.Caption\n}\n\nvar UpdatePhotoCaptionRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdatePhotoCaptionRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdatePhotoCaptionRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdatePhotoCaptionRequest = map[int16]string{\n\t1:   \"document_id\",\n\t2:   \"caption\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdatePhotoCaptionRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdatePhotoCaptionRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDocumentID bool = false\n\tvar issetCaption bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDocumentID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCaption = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDocumentID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCaption {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdatePhotoCaptionRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdatePhotoCaptionRequest[fieldId]))\n}\n\nfunc (p *UpdatePhotoCaptionRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *UpdatePhotoCaptionRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Caption = _field\n\treturn nil\n}\nfunc (p *UpdatePhotoCaptionRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdatePhotoCaptionRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePhotoCaptionRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdatePhotoCaptionRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DocumentID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdatePhotoCaptionRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"caption\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Caption); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdatePhotoCaptionRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdatePhotoCaptionRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdatePhotoCaptionRequest(%+v)\", *p)\n\n}\n\ntype UpdatePhotoCaptionResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewUpdatePhotoCaptionResponse() *UpdatePhotoCaptionResponse {\n\treturn &UpdatePhotoCaptionResponse{}\n}\n\nfunc (p *UpdatePhotoCaptionResponse) InitDefault() {\n}\n\nfunc (p *UpdatePhotoCaptionResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdatePhotoCaptionResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdatePhotoCaptionResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdatePhotoCaptionResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdatePhotoCaptionResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdatePhotoCaptionResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdatePhotoCaptionResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdatePhotoCaptionResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdatePhotoCaptionResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdatePhotoCaptionResponse[fieldId]))\n}\n\nfunc (p *UpdatePhotoCaptionResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdatePhotoCaptionResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdatePhotoCaptionResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdatePhotoCaptionResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePhotoCaptionResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdatePhotoCaptionResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdatePhotoCaptionResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdatePhotoCaptionResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdatePhotoCaptionResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdatePhotoCaptionResponse(%+v)\", *p)\n\n}\n\ntype ListPhotoRequest struct {\n\t// Knowledge ID\n\tDatasetID int64 `thrift:\"dataset_id,1,required\" form:\"dataset_id,required\" json:\"dataset_id,string,required\" query:\"dataset_id,required\"`\n\t// Number of pages, starting from 1\n\tPage *int32 `thrift:\"page,2,optional\" form:\"page\" json:\"page,omitempty\" query:\"page\"`\n\t// page size\n\tSize   *int32       `thrift:\"size,3,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\tFilter *PhotoFilter `thrift:\"filter,4,optional\" form:\"filter\" json:\"filter,omitempty\" query:\"filter\"`\n\tBase   *base.Base   `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewListPhotoRequest() *ListPhotoRequest {\n\treturn &ListPhotoRequest{}\n}\n\nfunc (p *ListPhotoRequest) InitDefault() {\n}\n\nfunc (p *ListPhotoRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nvar ListPhotoRequest_Page_DEFAULT int32\n\nfunc (p *ListPhotoRequest) GetPage() (v int32) {\n\tif !p.IsSetPage() {\n\t\treturn ListPhotoRequest_Page_DEFAULT\n\t}\n\treturn *p.Page\n}\n\nvar ListPhotoRequest_Size_DEFAULT int32\n\nfunc (p *ListPhotoRequest) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn ListPhotoRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar ListPhotoRequest_Filter_DEFAULT *PhotoFilter\n\nfunc (p *ListPhotoRequest) GetFilter() (v *PhotoFilter) {\n\tif !p.IsSetFilter() {\n\t\treturn ListPhotoRequest_Filter_DEFAULT\n\t}\n\treturn p.Filter\n}\n\nvar ListPhotoRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListPhotoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListPhotoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListPhotoRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t2:   \"page\",\n\t3:   \"size\",\n\t4:   \"filter\",\n\t255: \"Base\",\n}\n\nfunc (p *ListPhotoRequest) IsSetPage() bool {\n\treturn p.Page != nil\n}\n\nfunc (p *ListPhotoRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *ListPhotoRequest) IsSetFilter() bool {\n\treturn p.Filter != nil\n}\n\nfunc (p *ListPhotoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListPhotoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDatasetID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDatasetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDatasetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListPhotoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListPhotoRequest[fieldId]))\n}\n\nfunc (p *ListPhotoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *ListPhotoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *ListPhotoRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *ListPhotoRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewPhotoFilter()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Filter = _field\n\treturn nil\n}\nfunc (p *ListPhotoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListPhotoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPhotoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListPhotoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListPhotoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPage() {\n\t\tif err = oprot.WriteFieldBegin(\"page\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Page); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListPhotoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListPhotoRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFilter() {\n\t\tif err = oprot.WriteFieldBegin(\"filter\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Filter.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListPhotoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListPhotoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListPhotoRequest(%+v)\", *p)\n\n}\n\ntype PhotoFilter struct {\n\t// True to filter \"marked\" images, false to filter \"unmarked\" images\n\tHasCaption *bool `thrift:\"has_caption,1,optional\" form:\"has_caption\" json:\"has_caption,omitempty\" query:\"has_caption\"`\n\t// Search keywords, search for image names and picture descriptions\n\tKeyword *string `thrift:\"keyword,2,optional\" form:\"keyword\" json:\"keyword,omitempty\" query:\"keyword\"`\n\t// status\n\tStatus *DocumentStatus `thrift:\"status,3,optional\" form:\"status\" json:\"status,omitempty\" query:\"status\"`\n}\n\nfunc NewPhotoFilter() *PhotoFilter {\n\treturn &PhotoFilter{}\n}\n\nfunc (p *PhotoFilter) InitDefault() {\n}\n\nvar PhotoFilter_HasCaption_DEFAULT bool\n\nfunc (p *PhotoFilter) GetHasCaption() (v bool) {\n\tif !p.IsSetHasCaption() {\n\t\treturn PhotoFilter_HasCaption_DEFAULT\n\t}\n\treturn *p.HasCaption\n}\n\nvar PhotoFilter_Keyword_DEFAULT string\n\nfunc (p *PhotoFilter) GetKeyword() (v string) {\n\tif !p.IsSetKeyword() {\n\t\treturn PhotoFilter_Keyword_DEFAULT\n\t}\n\treturn *p.Keyword\n}\n\nvar PhotoFilter_Status_DEFAULT DocumentStatus\n\nfunc (p *PhotoFilter) GetStatus() (v DocumentStatus) {\n\tif !p.IsSetStatus() {\n\t\treturn PhotoFilter_Status_DEFAULT\n\t}\n\treturn *p.Status\n}\n\nvar fieldIDToName_PhotoFilter = map[int16]string{\n\t1: \"has_caption\",\n\t2: \"keyword\",\n\t3: \"status\",\n}\n\nfunc (p *PhotoFilter) IsSetHasCaption() bool {\n\treturn p.HasCaption != nil\n}\n\nfunc (p *PhotoFilter) IsSetKeyword() bool {\n\treturn p.Keyword != nil\n}\n\nfunc (p *PhotoFilter) IsSetStatus() bool {\n\treturn p.Status != nil\n}\n\nfunc (p *PhotoFilter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PhotoFilter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PhotoFilter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HasCaption = _field\n\treturn nil\n}\nfunc (p *PhotoFilter) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *PhotoFilter) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *DocumentStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DocumentStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.Status = _field\n\treturn nil\n}\n\nfunc (p *PhotoFilter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PhotoFilter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PhotoFilter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHasCaption() {\n\t\tif err = oprot.WriteFieldBegin(\"has_caption\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HasCaption); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PhotoFilter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKeyword() {\n\t\tif err = oprot.WriteFieldBegin(\"keyword\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Keyword); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PhotoFilter) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Status)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *PhotoFilter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PhotoFilter(%+v)\", *p)\n\n}\n\ntype ListPhotoResponse struct {\n\tPhotoInfos []*PhotoInfo   `thrift:\"photo_infos,1\" form:\"photo_infos\" json:\"photo_infos\" query:\"photo_infos\"`\n\tTotal      int32          `thrift:\"total,2\" form:\"total\" json:\"total\" query:\"total\"`\n\tCode       int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg        string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp   *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewListPhotoResponse() *ListPhotoResponse {\n\treturn &ListPhotoResponse{}\n}\n\nfunc (p *ListPhotoResponse) InitDefault() {\n}\n\nfunc (p *ListPhotoResponse) GetPhotoInfos() (v []*PhotoInfo) {\n\treturn p.PhotoInfos\n}\n\nfunc (p *ListPhotoResponse) GetTotal() (v int32) {\n\treturn p.Total\n}\n\nfunc (p *ListPhotoResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListPhotoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ListPhotoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListPhotoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListPhotoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListPhotoResponse = map[int16]string{\n\t1:   \"photo_infos\",\n\t2:   \"total\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListPhotoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListPhotoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListPhotoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListPhotoResponse[fieldId]))\n}\n\nfunc (p *ListPhotoResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PhotoInfo, 0, size)\n\tvalues := make([]PhotoInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PhotoInfos = _field\n\treturn nil\n}\nfunc (p *ListPhotoResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\nfunc (p *ListPhotoResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListPhotoResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListPhotoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListPhotoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPhotoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListPhotoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"photo_infos\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PhotoInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PhotoInfos {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListPhotoResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListPhotoResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListPhotoResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ListPhotoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListPhotoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListPhotoResponse(%+v)\", *p)\n\n}\n\ntype PhotoDetailRequest struct {\n\t// Document ID List\n\tDocumentIds []string `thrift:\"document_ids,1,required\" form:\"document_ids,required\" json:\"document_ids,required\" query:\"document_ids,required\"`\n\t// Knowledge ID\n\tDatasetID int64      `thrift:\"dataset_id,2,required\" form:\"dataset_id,required\" json:\"dataset_id,string,required\" query:\"dataset_id,required\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewPhotoDetailRequest() *PhotoDetailRequest {\n\treturn &PhotoDetailRequest{}\n}\n\nfunc (p *PhotoDetailRequest) InitDefault() {\n}\n\nfunc (p *PhotoDetailRequest) GetDocumentIds() (v []string) {\n\treturn p.DocumentIds\n}\n\nfunc (p *PhotoDetailRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nvar PhotoDetailRequest_Base_DEFAULT *base.Base\n\nfunc (p *PhotoDetailRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn PhotoDetailRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_PhotoDetailRequest = map[int16]string{\n\t1:   \"document_ids\",\n\t2:   \"dataset_id\",\n\t255: \"Base\",\n}\n\nfunc (p *PhotoDetailRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *PhotoDetailRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDocumentIds bool = false\n\tvar issetDatasetID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDocumentIds = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDatasetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDocumentIds {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetDatasetID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PhotoDetailRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PhotoDetailRequest[fieldId]))\n}\n\nfunc (p *PhotoDetailRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DocumentIds = _field\n\treturn nil\n}\nfunc (p *PhotoDetailRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *PhotoDetailRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *PhotoDetailRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PhotoDetailRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PhotoDetailRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_ids\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.DocumentIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DocumentIds {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PhotoDetailRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PhotoDetailRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *PhotoDetailRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PhotoDetailRequest(%+v)\", *p)\n\n}\n\ntype PhotoDetailResponse struct {\n\t// Mapping document ID to image information\n\tPhotoInfos map[string]*PhotoInfo `thrift:\"photo_infos,1\" form:\"photo_infos\" json:\"photo_infos\" query:\"photo_infos\"`\n\tCode       int64                 `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg        string                `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp   *base.BaseResp        `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewPhotoDetailResponse() *PhotoDetailResponse {\n\treturn &PhotoDetailResponse{}\n}\n\nfunc (p *PhotoDetailResponse) InitDefault() {\n}\n\nfunc (p *PhotoDetailResponse) GetPhotoInfos() (v map[string]*PhotoInfo) {\n\treturn p.PhotoInfos\n}\n\nfunc (p *PhotoDetailResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *PhotoDetailResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar PhotoDetailResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *PhotoDetailResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn PhotoDetailResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_PhotoDetailResponse = map[int16]string{\n\t1:   \"photo_infos\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *PhotoDetailResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *PhotoDetailResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PhotoDetailResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PhotoDetailResponse[fieldId]))\n}\n\nfunc (p *PhotoDetailResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*PhotoInfo, size)\n\tvalues := make([]PhotoInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PhotoInfos = _field\n\treturn nil\n}\nfunc (p *PhotoDetailResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PhotoDetailResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *PhotoDetailResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *PhotoDetailResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PhotoDetailResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PhotoDetailResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"photo_infos\", thrift.MAP, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.PhotoInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.PhotoInfos {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PhotoDetailResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *PhotoDetailResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *PhotoDetailResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *PhotoDetailResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PhotoDetailResponse(%+v)\", *p)\n\n}\n\ntype ResegmentRequest struct {\n\t// Knowledge ID\n\tDatasetID int64 `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id,string\" query:\"dataset_id\"`\n\t// Document to be re-segmented\n\tDocumentIds []string `thrift:\"document_ids,2\" form:\"document_ids\" json:\"document_ids\" query:\"document_ids\"`\n\t// segmentation strategy\n\tChunkStrategy *ChunkStrategy `thrift:\"chunk_strategy,3\" form:\"chunk_strategy\" json:\"chunk_strategy\" query:\"chunk_strategy\"`\n\t// parsing strategy\n\tParsingStrategy *ParsingStrategy `thrift:\"parsing_strategy,5,optional\" form:\"parsing_strategy\" json:\"parsing_strategy,omitempty\" query:\"parsing_strategy\"`\n\t// filtering strategy\n\tFilterStrategy *FilterStrategy `thrift:\"filter_strategy,7,optional\" form:\"filter_strategy\" json:\"filter_strategy,omitempty\" query:\"filter_strategy\"`\n\tBase           *base.Base      `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewResegmentRequest() *ResegmentRequest {\n\treturn &ResegmentRequest{}\n}\n\nfunc (p *ResegmentRequest) InitDefault() {\n}\n\nfunc (p *ResegmentRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nfunc (p *ResegmentRequest) GetDocumentIds() (v []string) {\n\treturn p.DocumentIds\n}\n\nvar ResegmentRequest_ChunkStrategy_DEFAULT *ChunkStrategy\n\nfunc (p *ResegmentRequest) GetChunkStrategy() (v *ChunkStrategy) {\n\tif !p.IsSetChunkStrategy() {\n\t\treturn ResegmentRequest_ChunkStrategy_DEFAULT\n\t}\n\treturn p.ChunkStrategy\n}\n\nvar ResegmentRequest_ParsingStrategy_DEFAULT *ParsingStrategy\n\nfunc (p *ResegmentRequest) GetParsingStrategy() (v *ParsingStrategy) {\n\tif !p.IsSetParsingStrategy() {\n\t\treturn ResegmentRequest_ParsingStrategy_DEFAULT\n\t}\n\treturn p.ParsingStrategy\n}\n\nvar ResegmentRequest_FilterStrategy_DEFAULT *FilterStrategy\n\nfunc (p *ResegmentRequest) GetFilterStrategy() (v *FilterStrategy) {\n\tif !p.IsSetFilterStrategy() {\n\t\treturn ResegmentRequest_FilterStrategy_DEFAULT\n\t}\n\treturn p.FilterStrategy\n}\n\nvar ResegmentRequest_Base_DEFAULT *base.Base\n\nfunc (p *ResegmentRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ResegmentRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ResegmentRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t2:   \"document_ids\",\n\t3:   \"chunk_strategy\",\n\t5:   \"parsing_strategy\",\n\t7:   \"filter_strategy\",\n\t255: \"Base\",\n}\n\nfunc (p *ResegmentRequest) IsSetChunkStrategy() bool {\n\treturn p.ChunkStrategy != nil\n}\n\nfunc (p *ResegmentRequest) IsSetParsingStrategy() bool {\n\treturn p.ParsingStrategy != nil\n}\n\nfunc (p *ResegmentRequest) IsSetFilterStrategy() bool {\n\treturn p.FilterStrategy != nil\n}\n\nfunc (p *ResegmentRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ResegmentRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResegmentRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResegmentRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *ResegmentRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DocumentIds = _field\n\treturn nil\n}\nfunc (p *ResegmentRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewChunkStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ChunkStrategy = _field\n\treturn nil\n}\nfunc (p *ResegmentRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewParsingStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ParsingStrategy = _field\n\treturn nil\n}\nfunc (p *ResegmentRequest) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewFilterStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FilterStrategy = _field\n\treturn nil\n}\nfunc (p *ResegmentRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ResegmentRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResegmentRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResegmentRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResegmentRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_ids\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.DocumentIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DocumentIds {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResegmentRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"chunk_strategy\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ChunkStrategy.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ResegmentRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParsingStrategy() {\n\t\tif err = oprot.WriteFieldBegin(\"parsing_strategy\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ParsingStrategy.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ResegmentRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFilterStrategy() {\n\t\tif err = oprot.WriteFieldBegin(\"filter_strategy\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.FilterStrategy.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ResegmentRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResegmentRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResegmentRequest(%+v)\", *p)\n\n}\n\ntype ResegmentResponse struct {\n\t// The old version requires. Just return the id and name.\n\tDocumentInfos []*DocumentInfo `thrift:\"document_infos,1\" form:\"document_infos\" json:\"document_infos\" query:\"document_infos\"`\n\tCode          int64           `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg           string          `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp      *base.BaseResp  `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewResegmentResponse() *ResegmentResponse {\n\treturn &ResegmentResponse{}\n}\n\nfunc (p *ResegmentResponse) InitDefault() {\n}\n\nfunc (p *ResegmentResponse) GetDocumentInfos() (v []*DocumentInfo) {\n\treturn p.DocumentInfos\n}\n\nfunc (p *ResegmentResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ResegmentResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ResegmentResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ResegmentResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ResegmentResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ResegmentResponse = map[int16]string{\n\t1:   \"document_infos\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ResegmentResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ResegmentResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResegmentResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ResegmentResponse[fieldId]))\n}\n\nfunc (p *ResegmentResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DocumentInfo, 0, size)\n\tvalues := make([]DocumentInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DocumentInfos = _field\n\treturn nil\n}\nfunc (p *ResegmentResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ResegmentResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ResegmentResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ResegmentResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResegmentResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResegmentResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_infos\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.DocumentInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DocumentInfos {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResegmentResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ResegmentResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ResegmentResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResegmentResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResegmentResponse(%+v)\", *p)\n\n}\n\ntype CreateDocumentRequest struct {\n\t// The knowledge base id of the document to insert.\n\tDatasetID int64 `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id,string\" query:\"dataset_id\"`\n\t// Types of knowledge bases, currently supporting text, tables, and images\n\tFormatType FormatType `thrift:\"format_type,4\" form:\"format_type\" json:\"format_type\" query:\"format_type\"`\n\t// Only one table type can be created at a time\n\tDocumentBases []*DocumentBase `thrift:\"document_bases,6\" form:\"document_bases\" json:\"document_bases\" query:\"document_bases\"`\n\t// Only when there is no document in the knowledge base, it needs to be passed, and if there is one, it will be obtained from the knowledge base. Slicing rules, if it is empty, it will be automatically sliced by paragraph\n\tChunkStrategy *ChunkStrategy `thrift:\"chunk_strategy,17,optional\" form:\"chunk_strategy\" json:\"chunk_strategy,omitempty\" query:\"chunk_strategy\"`\n\t// Appends content to an existing document when true. The text type cannot be used\n\tIsAppend *bool `thrift:\"is_append,31,optional\" form:\"is_append\" json:\"is_append,omitempty\" query:\"is_append\"`\n\t// parsing strategy\n\tParsingStrategy *ParsingStrategy `thrift:\"parsing_strategy,32,optional\" form:\"parsing_strategy\" json:\"parsing_strategy,omitempty\" query:\"parsing_strategy\"`\n\tBase            *base.Base       `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCreateDocumentRequest() *CreateDocumentRequest {\n\treturn &CreateDocumentRequest{}\n}\n\nfunc (p *CreateDocumentRequest) InitDefault() {\n}\n\nfunc (p *CreateDocumentRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nfunc (p *CreateDocumentRequest) GetFormatType() (v FormatType) {\n\treturn p.FormatType\n}\n\nfunc (p *CreateDocumentRequest) GetDocumentBases() (v []*DocumentBase) {\n\treturn p.DocumentBases\n}\n\nvar CreateDocumentRequest_ChunkStrategy_DEFAULT *ChunkStrategy\n\nfunc (p *CreateDocumentRequest) GetChunkStrategy() (v *ChunkStrategy) {\n\tif !p.IsSetChunkStrategy() {\n\t\treturn CreateDocumentRequest_ChunkStrategy_DEFAULT\n\t}\n\treturn p.ChunkStrategy\n}\n\nvar CreateDocumentRequest_IsAppend_DEFAULT bool\n\nfunc (p *CreateDocumentRequest) GetIsAppend() (v bool) {\n\tif !p.IsSetIsAppend() {\n\t\treturn CreateDocumentRequest_IsAppend_DEFAULT\n\t}\n\treturn *p.IsAppend\n}\n\nvar CreateDocumentRequest_ParsingStrategy_DEFAULT *ParsingStrategy\n\nfunc (p *CreateDocumentRequest) GetParsingStrategy() (v *ParsingStrategy) {\n\tif !p.IsSetParsingStrategy() {\n\t\treturn CreateDocumentRequest_ParsingStrategy_DEFAULT\n\t}\n\treturn p.ParsingStrategy\n}\n\nvar CreateDocumentRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateDocumentRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateDocumentRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateDocumentRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t4:   \"format_type\",\n\t6:   \"document_bases\",\n\t17:  \"chunk_strategy\",\n\t31:  \"is_append\",\n\t32:  \"parsing_strategy\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateDocumentRequest) IsSetChunkStrategy() bool {\n\treturn p.ChunkStrategy != nil\n}\n\nfunc (p *CreateDocumentRequest) IsSetIsAppend() bool {\n\treturn p.IsAppend != nil\n}\n\nfunc (p *CreateDocumentRequest) IsSetParsingStrategy() bool {\n\treturn p.ParsingStrategy != nil\n}\n\nfunc (p *CreateDocumentRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateDocumentRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 31:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField31(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 32:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField32(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateDocumentRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateDocumentRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *CreateDocumentRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field FormatType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = FormatType(v)\n\t}\n\tp.FormatType = _field\n\treturn nil\n}\nfunc (p *CreateDocumentRequest) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DocumentBase, 0, size)\n\tvalues := make([]DocumentBase, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DocumentBases = _field\n\treturn nil\n}\nfunc (p *CreateDocumentRequest) ReadField17(iprot thrift.TProtocol) error {\n\t_field := NewChunkStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ChunkStrategy = _field\n\treturn nil\n}\nfunc (p *CreateDocumentRequest) ReadField31(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsAppend = _field\n\treturn nil\n}\nfunc (p *CreateDocumentRequest) ReadField32(iprot thrift.TProtocol) error {\n\t_field := NewParsingStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ParsingStrategy = _field\n\treturn nil\n}\nfunc (p *CreateDocumentRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateDocumentRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDocumentRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField31(oprot); err != nil {\n\t\t\tfieldId = 31\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField32(oprot); err != nil {\n\t\t\tfieldId = 32\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateDocumentRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateDocumentRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"format_type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FormatType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CreateDocumentRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_bases\", thrift.LIST, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.DocumentBases)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DocumentBases {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *CreateDocumentRequest) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChunkStrategy() {\n\t\tif err = oprot.WriteFieldBegin(\"chunk_strategy\", thrift.STRUCT, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ChunkStrategy.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *CreateDocumentRequest) writeField31(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsAppend() {\n\t\tif err = oprot.WriteFieldBegin(\"is_append\", thrift.BOOL, 31); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsAppend); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 31 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 31 end error: \", p), err)\n}\nfunc (p *CreateDocumentRequest) writeField32(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParsingStrategy() {\n\t\tif err = oprot.WriteFieldBegin(\"parsing_strategy\", thrift.STRUCT, 32); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ParsingStrategy.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 32 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 32 end error: \", p), err)\n}\nfunc (p *CreateDocumentRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateDocumentRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateDocumentRequest(%+v)\", *p)\n\n}\n\ntype CreateDocumentResponse struct {\n\tDocumentInfos []*DocumentInfo `thrift:\"document_infos,2\" form:\"document_infos\" json:\"document_infos\" query:\"document_infos\"`\n\tCode          int32           `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg           string          `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp      *base.BaseResp  `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCreateDocumentResponse() *CreateDocumentResponse {\n\treturn &CreateDocumentResponse{}\n}\n\nfunc (p *CreateDocumentResponse) InitDefault() {\n}\n\nfunc (p *CreateDocumentResponse) GetDocumentInfos() (v []*DocumentInfo) {\n\treturn p.DocumentInfos\n}\n\nfunc (p *CreateDocumentResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *CreateDocumentResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CreateDocumentResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateDocumentResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateDocumentResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateDocumentResponse = map[int16]string{\n\t2:   \"document_infos\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateDocumentResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateDocumentResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateDocumentResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateDocumentResponse[fieldId]))\n}\n\nfunc (p *CreateDocumentResponse) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DocumentInfo, 0, size)\n\tvalues := make([]DocumentInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DocumentInfos = _field\n\treturn nil\n}\nfunc (p *CreateDocumentResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateDocumentResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateDocumentResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateDocumentResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDocumentResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateDocumentResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_infos\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.DocumentInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DocumentInfos {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateDocumentResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CreateDocumentResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CreateDocumentResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateDocumentResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateDocumentResponse(%+v)\", *p)\n\n}\n\n// Basic information for creating a document\ntype DocumentBase struct {\n\t// Document name\n\tName       string      `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tSourceInfo *SourceInfo `thrift:\"source_info,2\" form:\"source_info\" json:\"source_info\" query:\"source_info\"`\n\t// The following parameter table types need to be passed\n\tTableMeta []*TableColumn `thrift:\"table_meta,4,optional\" form:\"table_meta\" json:\"table_meta,omitempty\" query:\"table_meta\"`\n\t// Table parsing information\n\tTableSheet *TableSheet `thrift:\"table_sheet,5,optional\" form:\"table_sheet\" json:\"table_sheet,omitempty\" query:\"table_sheet\"`\n\t// filtering strategy\n\tFilterStrategy *FilterStrategy `thrift:\"filter_strategy,6,optional\" form:\"filter_strategy\" json:\"filter_strategy,omitempty\" query:\"filter_strategy\"`\n\t// Image type knowledge base, picture description when manually annotated\n\tCaption *string `thrift:\"caption,7,optional\" form:\"caption\" json:\"caption,omitempty\" query:\"caption\"`\n}\n\nfunc NewDocumentBase() *DocumentBase {\n\treturn &DocumentBase{}\n}\n\nfunc (p *DocumentBase) InitDefault() {\n}\n\nfunc (p *DocumentBase) GetName() (v string) {\n\treturn p.Name\n}\n\nvar DocumentBase_SourceInfo_DEFAULT *SourceInfo\n\nfunc (p *DocumentBase) GetSourceInfo() (v *SourceInfo) {\n\tif !p.IsSetSourceInfo() {\n\t\treturn DocumentBase_SourceInfo_DEFAULT\n\t}\n\treturn p.SourceInfo\n}\n\nvar DocumentBase_TableMeta_DEFAULT []*TableColumn\n\nfunc (p *DocumentBase) GetTableMeta() (v []*TableColumn) {\n\tif !p.IsSetTableMeta() {\n\t\treturn DocumentBase_TableMeta_DEFAULT\n\t}\n\treturn p.TableMeta\n}\n\nvar DocumentBase_TableSheet_DEFAULT *TableSheet\n\nfunc (p *DocumentBase) GetTableSheet() (v *TableSheet) {\n\tif !p.IsSetTableSheet() {\n\t\treturn DocumentBase_TableSheet_DEFAULT\n\t}\n\treturn p.TableSheet\n}\n\nvar DocumentBase_FilterStrategy_DEFAULT *FilterStrategy\n\nfunc (p *DocumentBase) GetFilterStrategy() (v *FilterStrategy) {\n\tif !p.IsSetFilterStrategy() {\n\t\treturn DocumentBase_FilterStrategy_DEFAULT\n\t}\n\treturn p.FilterStrategy\n}\n\nvar DocumentBase_Caption_DEFAULT string\n\nfunc (p *DocumentBase) GetCaption() (v string) {\n\tif !p.IsSetCaption() {\n\t\treturn DocumentBase_Caption_DEFAULT\n\t}\n\treturn *p.Caption\n}\n\nvar fieldIDToName_DocumentBase = map[int16]string{\n\t1: \"name\",\n\t2: \"source_info\",\n\t4: \"table_meta\",\n\t5: \"table_sheet\",\n\t6: \"filter_strategy\",\n\t7: \"caption\",\n}\n\nfunc (p *DocumentBase) IsSetSourceInfo() bool {\n\treturn p.SourceInfo != nil\n}\n\nfunc (p *DocumentBase) IsSetTableMeta() bool {\n\treturn p.TableMeta != nil\n}\n\nfunc (p *DocumentBase) IsSetTableSheet() bool {\n\treturn p.TableSheet != nil\n}\n\nfunc (p *DocumentBase) IsSetFilterStrategy() bool {\n\treturn p.FilterStrategy != nil\n}\n\nfunc (p *DocumentBase) IsSetCaption() bool {\n\treturn p.Caption != nil\n}\n\nfunc (p *DocumentBase) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DocumentBase[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DocumentBase) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DocumentBase) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewSourceInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SourceInfo = _field\n\treturn nil\n}\nfunc (p *DocumentBase) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TableColumn, 0, size)\n\tvalues := make([]TableColumn, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableMeta = _field\n\treturn nil\n}\nfunc (p *DocumentBase) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewTableSheet()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TableSheet = _field\n\treturn nil\n}\nfunc (p *DocumentBase) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewFilterStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FilterStrategy = _field\n\treturn nil\n}\nfunc (p *DocumentBase) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Caption = _field\n\treturn nil\n}\n\nfunc (p *DocumentBase) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DocumentBase\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DocumentBase) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DocumentBase) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"source_info\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.SourceInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DocumentBase) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableMeta() {\n\t\tif err = oprot.WriteFieldBegin(\"table_meta\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.TableMeta)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.TableMeta {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DocumentBase) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableSheet() {\n\t\tif err = oprot.WriteFieldBegin(\"table_sheet\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TableSheet.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DocumentBase) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFilterStrategy() {\n\t\tif err = oprot.WriteFieldBegin(\"filter_strategy\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.FilterStrategy.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DocumentBase) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCaption() {\n\t\tif err = oprot.WriteFieldBegin(\"caption\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Caption); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *DocumentBase) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DocumentBase(%+v)\", *p)\n\n}\n\n// Supports multiple data sources\ntype SourceInfo struct {\n\t// Upload the returned URI locally.\n\tTosURI         *string         `thrift:\"tos_uri,1,optional\" form:\"tos_uri\" json:\"tos_uri,omitempty\"`\n\tDocumentSource *DocumentSource `thrift:\"document_source,4,optional\" form:\"document_source\" json:\"document_source,omitempty\"`\n\t// document_source custom raw content: Format required for a tabular knowledge base: json list < map < string, string > >\n\tCustomContent *string `thrift:\"custom_content,5,optional\" form:\"custom_content\" json:\"custom_content,omitempty\"`\n\t// document_source local: If you don't send the tos address, you need to send the file base64, type\n\tFileBase64 *string `thrift:\"file_base64,7,optional\" form:\"file_base64\" json:\"file_base64,omitempty\" query:\"file_base64\"`\n\t// File type, such as PDF\n\tFileType *string `thrift:\"file_type,8,optional\" form:\"file_type\" json:\"file_type,omitempty\" query:\"file_type\"`\n\t// imagex_uri, and tos_uri choose one, imagex_uri priority, need to get data and sign url through imagex method\n\tImagexURI *string `thrift:\"imagex_uri,10,optional\" form:\"imagex_uri\" json:\"imagex_uri,omitempty\" query:\"imagex_uri\"`\n}\n\nfunc NewSourceInfo() *SourceInfo {\n\treturn &SourceInfo{}\n}\n\nfunc (p *SourceInfo) InitDefault() {\n}\n\nvar SourceInfo_TosURI_DEFAULT string\n\nfunc (p *SourceInfo) GetTosURI() (v string) {\n\tif !p.IsSetTosURI() {\n\t\treturn SourceInfo_TosURI_DEFAULT\n\t}\n\treturn *p.TosURI\n}\n\nvar SourceInfo_DocumentSource_DEFAULT DocumentSource\n\nfunc (p *SourceInfo) GetDocumentSource() (v DocumentSource) {\n\tif !p.IsSetDocumentSource() {\n\t\treturn SourceInfo_DocumentSource_DEFAULT\n\t}\n\treturn *p.DocumentSource\n}\n\nvar SourceInfo_CustomContent_DEFAULT string\n\nfunc (p *SourceInfo) GetCustomContent() (v string) {\n\tif !p.IsSetCustomContent() {\n\t\treturn SourceInfo_CustomContent_DEFAULT\n\t}\n\treturn *p.CustomContent\n}\n\nvar SourceInfo_FileBase64_DEFAULT string\n\nfunc (p *SourceInfo) GetFileBase64() (v string) {\n\tif !p.IsSetFileBase64() {\n\t\treturn SourceInfo_FileBase64_DEFAULT\n\t}\n\treturn *p.FileBase64\n}\n\nvar SourceInfo_FileType_DEFAULT string\n\nfunc (p *SourceInfo) GetFileType() (v string) {\n\tif !p.IsSetFileType() {\n\t\treturn SourceInfo_FileType_DEFAULT\n\t}\n\treturn *p.FileType\n}\n\nvar SourceInfo_ImagexURI_DEFAULT string\n\nfunc (p *SourceInfo) GetImagexURI() (v string) {\n\tif !p.IsSetImagexURI() {\n\t\treturn SourceInfo_ImagexURI_DEFAULT\n\t}\n\treturn *p.ImagexURI\n}\n\nvar fieldIDToName_SourceInfo = map[int16]string{\n\t1:  \"tos_uri\",\n\t4:  \"document_source\",\n\t5:  \"custom_content\",\n\t7:  \"file_base64\",\n\t8:  \"file_type\",\n\t10: \"imagex_uri\",\n}\n\nfunc (p *SourceInfo) IsSetTosURI() bool {\n\treturn p.TosURI != nil\n}\n\nfunc (p *SourceInfo) IsSetDocumentSource() bool {\n\treturn p.DocumentSource != nil\n}\n\nfunc (p *SourceInfo) IsSetCustomContent() bool {\n\treturn p.CustomContent != nil\n}\n\nfunc (p *SourceInfo) IsSetFileBase64() bool {\n\treturn p.FileBase64 != nil\n}\n\nfunc (p *SourceInfo) IsSetFileType() bool {\n\treturn p.FileType != nil\n}\n\nfunc (p *SourceInfo) IsSetImagexURI() bool {\n\treturn p.ImagexURI != nil\n}\n\nfunc (p *SourceInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SourceInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SourceInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TosURI = _field\n\treturn nil\n}\nfunc (p *SourceInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *DocumentSource\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DocumentSource(v)\n\t\t_field = &tmp\n\t}\n\tp.DocumentSource = _field\n\treturn nil\n}\nfunc (p *SourceInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CustomContent = _field\n\treturn nil\n}\nfunc (p *SourceInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FileBase64 = _field\n\treturn nil\n}\nfunc (p *SourceInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FileType = _field\n\treturn nil\n}\nfunc (p *SourceInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ImagexURI = _field\n\treturn nil\n}\n\nfunc (p *SourceInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SourceInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SourceInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTosURI() {\n\t\tif err = oprot.WriteFieldBegin(\"tos_uri\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TosURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SourceInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDocumentSource() {\n\t\tif err = oprot.WriteFieldBegin(\"document_source\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.DocumentSource)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SourceInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCustomContent() {\n\t\tif err = oprot.WriteFieldBegin(\"custom_content\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CustomContent); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *SourceInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFileBase64() {\n\t\tif err = oprot.WriteFieldBegin(\"file_base64\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FileBase64); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *SourceInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFileType() {\n\t\tif err = oprot.WriteFieldBegin(\"file_type\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FileType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *SourceInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetImagexURI() {\n\t\tif err = oprot.WriteFieldBegin(\"imagex_uri\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ImagexURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\n\nfunc (p *SourceInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SourceInfo(%+v)\", *p)\n\n}\n\ntype TableSheet struct {\n\t// User selected sheet id\n\tSheetID int64 `thrift:\"sheet_id,1\" form:\"sheet_id\" json:\"sheet_id,string\"`\n\t// The number of header rows selected by the user, numbered from 0\n\tHeaderLineIdx int64 `thrift:\"header_line_idx,2\" form:\"header_line_idx\" json:\"header_line_idx,string\"`\n\t// User-selected starting line number, numbered from 0\n\tStartLineIdx int64 `thrift:\"start_line_idx,3\" form:\"start_line_idx\" json:\"start_line_idx,string\"`\n}\n\nfunc NewTableSheet() *TableSheet {\n\treturn &TableSheet{}\n}\n\nfunc (p *TableSheet) InitDefault() {\n}\n\nfunc (p *TableSheet) GetSheetID() (v int64) {\n\treturn p.SheetID\n}\n\nfunc (p *TableSheet) GetHeaderLineIdx() (v int64) {\n\treturn p.HeaderLineIdx\n}\n\nfunc (p *TableSheet) GetStartLineIdx() (v int64) {\n\treturn p.StartLineIdx\n}\n\nvar fieldIDToName_TableSheet = map[int16]string{\n\t1: \"sheet_id\",\n\t2: \"header_line_idx\",\n\t3: \"start_line_idx\",\n}\n\nfunc (p *TableSheet) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TableSheet[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TableSheet) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SheetID = _field\n\treturn nil\n}\nfunc (p *TableSheet) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HeaderLineIdx = _field\n\treturn nil\n}\nfunc (p *TableSheet) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StartLineIdx = _field\n\treturn nil\n}\n\nfunc (p *TableSheet) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TableSheet\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TableSheet) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sheet_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SheetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TableSheet) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"header_line_idx\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.HeaderLineIdx); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TableSheet) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"start_line_idx\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.StartLineIdx); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *TableSheet) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TableSheet(%+v)\", *p)\n\n}\n\ntype GetDocumentProgressRequest struct {\n\tDocumentIds []string   `thrift:\"document_ids,1\" form:\"document_ids\" json:\"document_ids\" query:\"document_ids\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetDocumentProgressRequest() *GetDocumentProgressRequest {\n\treturn &GetDocumentProgressRequest{}\n}\n\nfunc (p *GetDocumentProgressRequest) InitDefault() {\n}\n\nfunc (p *GetDocumentProgressRequest) GetDocumentIds() (v []string) {\n\treturn p.DocumentIds\n}\n\nvar GetDocumentProgressRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetDocumentProgressRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetDocumentProgressRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetDocumentProgressRequest = map[int16]string{\n\t1:   \"document_ids\",\n\t255: \"Base\",\n}\n\nfunc (p *GetDocumentProgressRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetDocumentProgressRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDocumentProgressRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DocumentIds = _field\n\treturn nil\n}\nfunc (p *GetDocumentProgressRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetDocumentProgressRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentProgressRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_ids\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.DocumentIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DocumentIds {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDocumentProgressRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDocumentProgressRequest(%+v)\", *p)\n\n}\n\ntype GetDocumentProgressResponse struct {\n\tData     []*DocumentProgress `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64               `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string              `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetDocumentProgressResponse() *GetDocumentProgressResponse {\n\treturn &GetDocumentProgressResponse{}\n}\n\nfunc (p *GetDocumentProgressResponse) InitDefault() {\n}\n\nfunc (p *GetDocumentProgressResponse) GetData() (v []*DocumentProgress) {\n\treturn p.Data\n}\n\nfunc (p *GetDocumentProgressResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetDocumentProgressResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetDocumentProgressResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetDocumentProgressResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetDocumentProgressResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetDocumentProgressResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetDocumentProgressResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetDocumentProgressResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDocumentProgressResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDocumentProgressResponse[fieldId]))\n}\n\nfunc (p *GetDocumentProgressResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DocumentProgress, 0, size)\n\tvalues := make([]DocumentProgress, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetDocumentProgressResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetDocumentProgressResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetDocumentProgressResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetDocumentProgressResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentProgressResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDocumentProgressResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetDocumentProgressResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetDocumentProgressResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDocumentProgressResponse(%+v)\", *p)\n\n}\n\n// Get the table file meta information uploaded by the database\ntype GetTableSchemaRequest struct {\n\t// Table parsing information, the default initial value is 0, 0, 1, which represents the first table, the first row of the table header, and the data row starts from the second row\n\tTableSheet *TableSheet `thrift:\"table_sheet,1,optional\" form:\"table_sheet\" json:\"table_sheet,omitempty\" query:\"table_sheet\"`\n\t// All data is returned by default without passing it on.\n\tTableDataType *TableDataType `thrift:\"table_data_type,2,optional\" form:\"table_data_type\" json:\"table_data_type,omitempty\" query:\"table_data_type\"`\n\t// Compatible with pre-refactoring versions: pass this value if you need to pull the schema of the current document\n\tDocumentID *int64 `thrift:\"document_id,3,optional\" form:\"document_id\" json:\"document_id,string,omitempty\"`\n\t// Source file information, add segment/before logic migrate here\n\tSourceFile *SourceInfo `thrift:\"source_file,4,optional\" form:\"source_file\" json:\"source_file,omitempty\" query:\"source_file\"`\n\t// The table preview front end needs to pass the original data table structure\n\tOriginTableMeta []*TableColumn `thrift:\"origin_table_meta,5,optional\" form:\"origin_table_meta\" json:\"origin_table_meta,omitempty\" query:\"origin_table_meta\"`\n\t// The table preview front end needs to pass the data table structure edited by the user\n\tPreviewTableMeta []*TableColumn `thrift:\"preview_table_meta,6,optional\" form:\"preview_table_meta\" json:\"preview_table_meta,omitempty\" query:\"preview_table_meta\"`\n\tBase             *base.Base     `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetTableSchemaRequest() *GetTableSchemaRequest {\n\treturn &GetTableSchemaRequest{}\n}\n\nfunc (p *GetTableSchemaRequest) InitDefault() {\n}\n\nvar GetTableSchemaRequest_TableSheet_DEFAULT *TableSheet\n\nfunc (p *GetTableSchemaRequest) GetTableSheet() (v *TableSheet) {\n\tif !p.IsSetTableSheet() {\n\t\treturn GetTableSchemaRequest_TableSheet_DEFAULT\n\t}\n\treturn p.TableSheet\n}\n\nvar GetTableSchemaRequest_TableDataType_DEFAULT TableDataType\n\nfunc (p *GetTableSchemaRequest) GetTableDataType() (v TableDataType) {\n\tif !p.IsSetTableDataType() {\n\t\treturn GetTableSchemaRequest_TableDataType_DEFAULT\n\t}\n\treturn *p.TableDataType\n}\n\nvar GetTableSchemaRequest_DocumentID_DEFAULT int64\n\nfunc (p *GetTableSchemaRequest) GetDocumentID() (v int64) {\n\tif !p.IsSetDocumentID() {\n\t\treturn GetTableSchemaRequest_DocumentID_DEFAULT\n\t}\n\treturn *p.DocumentID\n}\n\nvar GetTableSchemaRequest_SourceFile_DEFAULT *SourceInfo\n\nfunc (p *GetTableSchemaRequest) GetSourceFile() (v *SourceInfo) {\n\tif !p.IsSetSourceFile() {\n\t\treturn GetTableSchemaRequest_SourceFile_DEFAULT\n\t}\n\treturn p.SourceFile\n}\n\nvar GetTableSchemaRequest_OriginTableMeta_DEFAULT []*TableColumn\n\nfunc (p *GetTableSchemaRequest) GetOriginTableMeta() (v []*TableColumn) {\n\tif !p.IsSetOriginTableMeta() {\n\t\treturn GetTableSchemaRequest_OriginTableMeta_DEFAULT\n\t}\n\treturn p.OriginTableMeta\n}\n\nvar GetTableSchemaRequest_PreviewTableMeta_DEFAULT []*TableColumn\n\nfunc (p *GetTableSchemaRequest) GetPreviewTableMeta() (v []*TableColumn) {\n\tif !p.IsSetPreviewTableMeta() {\n\t\treturn GetTableSchemaRequest_PreviewTableMeta_DEFAULT\n\t}\n\treturn p.PreviewTableMeta\n}\n\nvar GetTableSchemaRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetTableSchemaRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetTableSchemaRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetTableSchemaRequest = map[int16]string{\n\t1:   \"table_sheet\",\n\t2:   \"table_data_type\",\n\t3:   \"document_id\",\n\t4:   \"source_file\",\n\t5:   \"origin_table_meta\",\n\t6:   \"preview_table_meta\",\n\t255: \"Base\",\n}\n\nfunc (p *GetTableSchemaRequest) IsSetTableSheet() bool {\n\treturn p.TableSheet != nil\n}\n\nfunc (p *GetTableSchemaRequest) IsSetTableDataType() bool {\n\treturn p.TableDataType != nil\n}\n\nfunc (p *GetTableSchemaRequest) IsSetDocumentID() bool {\n\treturn p.DocumentID != nil\n}\n\nfunc (p *GetTableSchemaRequest) IsSetSourceFile() bool {\n\treturn p.SourceFile != nil\n}\n\nfunc (p *GetTableSchemaRequest) IsSetOriginTableMeta() bool {\n\treturn p.OriginTableMeta != nil\n}\n\nfunc (p *GetTableSchemaRequest) IsSetPreviewTableMeta() bool {\n\treturn p.PreviewTableMeta != nil\n}\n\nfunc (p *GetTableSchemaRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetTableSchemaRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetTableSchemaRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetTableSchemaRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewTableSheet()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TableSheet = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *TableDataType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TableDataType(v)\n\t\t_field = &tmp\n\t}\n\tp.TableDataType = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewSourceInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SourceFile = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TableColumn, 0, size)\n\tvalues := make([]TableColumn, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OriginTableMeta = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaRequest) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TableColumn, 0, size)\n\tvalues := make([]TableColumn, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PreviewTableMeta = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetTableSchemaRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTableSchemaRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetTableSchemaRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableSheet() {\n\t\tif err = oprot.WriteFieldBegin(\"table_sheet\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TableSheet.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetTableSchemaRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTableDataType() {\n\t\tif err = oprot.WriteFieldBegin(\"table_data_type\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.TableDataType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetTableSchemaRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDocumentID() {\n\t\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.DocumentID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetTableSchemaRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSourceFile() {\n\t\tif err = oprot.WriteFieldBegin(\"source_file\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SourceFile.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetTableSchemaRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOriginTableMeta() {\n\t\tif err = oprot.WriteFieldBegin(\"origin_table_meta\", thrift.LIST, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OriginTableMeta)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.OriginTableMeta {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetTableSchemaRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPreviewTableMeta() {\n\t\tif err = oprot.WriteFieldBegin(\"preview_table_meta\", thrift.LIST, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PreviewTableMeta)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PreviewTableMeta {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetTableSchemaRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetTableSchemaRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetTableSchemaRequest(%+v)\", *p)\n\n}\n\ntype DocTableSheet struct {\n\t// Number of sheet\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\t// Sheet name\n\tSheetName string `thrift:\"sheet_name,2\" form:\"sheet_name\" json:\"sheet_name\" query:\"sheet_name\"`\n\t// total number of rows\n\tTotalRow int64 `thrift:\"total_row,3\" form:\"total_row\" json:\"total_row\" query:\"total_row\"`\n}\n\nfunc NewDocTableSheet() *DocTableSheet {\n\treturn &DocTableSheet{}\n}\n\nfunc (p *DocTableSheet) InitDefault() {\n}\n\nfunc (p *DocTableSheet) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *DocTableSheet) GetSheetName() (v string) {\n\treturn p.SheetName\n}\n\nfunc (p *DocTableSheet) GetTotalRow() (v int64) {\n\treturn p.TotalRow\n}\n\nvar fieldIDToName_DocTableSheet = map[int16]string{\n\t1: \"id\",\n\t2: \"sheet_name\",\n\t3: \"total_row\",\n}\n\nfunc (p *DocTableSheet) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DocTableSheet[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DocTableSheet) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *DocTableSheet) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SheetName = _field\n\treturn nil\n}\nfunc (p *DocTableSheet) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TotalRow = _field\n\treturn nil\n}\n\nfunc (p *DocTableSheet) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DocTableSheet\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DocTableSheet) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DocTableSheet) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sheet_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SheetName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DocTableSheet) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total_row\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TotalRow); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *DocTableSheet) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DocTableSheet(%+v)\", *p)\n\n}\n\ntype GetTableSchemaResponse struct {\n\tCode      int32            `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg       string           `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tSheetList []*DocTableSheet `thrift:\"sheet_list,3\" form:\"sheet_list\" json:\"sheet_list\" query:\"sheet_list\"`\n\t// The schema of the selected sheet, not selected to return the first sheet by default\n\tTableMeta []*TableColumn `thrift:\"table_meta,4\" form:\"table_meta\" json:\"table_meta\" query:\"table_meta\"`\n\t// The knowledge table will return\n\tPreviewData []map[string]string `thrift:\"preview_data,5\" form:\"preview_data\" json:\"preview_data\"`\n\tBaseResp    *base.BaseResp      `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetTableSchemaResponse() *GetTableSchemaResponse {\n\treturn &GetTableSchemaResponse{}\n}\n\nfunc (p *GetTableSchemaResponse) InitDefault() {\n}\n\nfunc (p *GetTableSchemaResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetTableSchemaResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetTableSchemaResponse) GetSheetList() (v []*DocTableSheet) {\n\treturn p.SheetList\n}\n\nfunc (p *GetTableSchemaResponse) GetTableMeta() (v []*TableColumn) {\n\treturn p.TableMeta\n}\n\nfunc (p *GetTableSchemaResponse) GetPreviewData() (v []map[string]string) {\n\treturn p.PreviewData\n}\n\nvar GetTableSchemaResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetTableSchemaResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetTableSchemaResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetTableSchemaResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"sheet_list\",\n\t4:   \"table_meta\",\n\t5:   \"preview_data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetTableSchemaResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetTableSchemaResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetTableSchemaResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetTableSchemaResponse[fieldId]))\n}\n\nfunc (p *GetTableSchemaResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DocTableSheet, 0, size)\n\tvalues := make([]DocTableSheet, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SheetList = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TableColumn, 0, size)\n\tvalues := make([]TableColumn, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableMeta = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaResponse) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[string]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[string]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PreviewData = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetTableSchemaResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTableSchemaResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetTableSchemaResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetTableSchemaResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetTableSchemaResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sheet_list\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SheetList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SheetList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetTableSchemaResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_meta\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.TableMeta)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.TableMeta {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetTableSchemaResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"preview_data\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.MAP, len(p.PreviewData)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PreviewData {\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range v {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetTableSchemaResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetTableSchemaResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetTableSchemaResponse(%+v)\", *p)\n\n}\n\n// Determine whether the schema configured by the user is consistent with the corresponding document id\ntype ValidateTableSchemaRequest struct {\n\t// Space ID\n\tSpaceID int64 `thrift:\"space_id,1\" form:\"space_id\" json:\"space_id,string\"`\n\t// Document ID to verify\n\tDocumentID int64 `thrift:\"document_id,2\" form:\"document_id\" json:\"document_id,string\"`\n\t// Information from the source file\n\tSourceInfo *SourceInfo `thrift:\"source_info,3\" form:\"source_file\" json:\"source_file\"`\n\t// Table parsing information, the default initial value is 0, 0, 1, which represents the first table, the first row of the table header, and the data row starts from the second row\n\tTableSheet *TableSheet `thrift:\"table_sheet,4\" form:\"table_sheet\" json:\"table_sheet\"`\n\tBase       *base.Base  `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewValidateTableSchemaRequest() *ValidateTableSchemaRequest {\n\treturn &ValidateTableSchemaRequest{}\n}\n\nfunc (p *ValidateTableSchemaRequest) InitDefault() {\n}\n\nfunc (p *ValidateTableSchemaRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *ValidateTableSchemaRequest) GetDocumentID() (v int64) {\n\treturn p.DocumentID\n}\n\nvar ValidateTableSchemaRequest_SourceInfo_DEFAULT *SourceInfo\n\nfunc (p *ValidateTableSchemaRequest) GetSourceInfo() (v *SourceInfo) {\n\tif !p.IsSetSourceInfo() {\n\t\treturn ValidateTableSchemaRequest_SourceInfo_DEFAULT\n\t}\n\treturn p.SourceInfo\n}\n\nvar ValidateTableSchemaRequest_TableSheet_DEFAULT *TableSheet\n\nfunc (p *ValidateTableSchemaRequest) GetTableSheet() (v *TableSheet) {\n\tif !p.IsSetTableSheet() {\n\t\treturn ValidateTableSchemaRequest_TableSheet_DEFAULT\n\t}\n\treturn p.TableSheet\n}\n\nvar ValidateTableSchemaRequest_Base_DEFAULT *base.Base\n\nfunc (p *ValidateTableSchemaRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ValidateTableSchemaRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ValidateTableSchemaRequest = map[int16]string{\n\t1:   \"space_id\",\n\t2:   \"document_id\",\n\t3:   \"source_info\",\n\t4:   \"table_sheet\",\n\t255: \"Base\",\n}\n\nfunc (p *ValidateTableSchemaRequest) IsSetSourceInfo() bool {\n\treturn p.SourceInfo != nil\n}\n\nfunc (p *ValidateTableSchemaRequest) IsSetTableSheet() bool {\n\treturn p.TableSheet != nil\n}\n\nfunc (p *ValidateTableSchemaRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ValidateTableSchemaRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ValidateTableSchemaRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ValidateTableSchemaRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewSourceInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SourceInfo = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewTableSheet()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TableSheet = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ValidateTableSchemaRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateTableSchemaRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ValidateTableSchemaRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DocumentID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"source_info\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.SourceInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_sheet\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.TableSheet.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ValidateTableSchemaRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ValidateTableSchemaRequest(%+v)\", *p)\n\n}\n\ntype ValidateTableSchemaResponse struct {\n\tColumnValidResult map[string]string `thrift:\"ColumnValidResult,1,optional\" form:\"column_valid_result\" json:\"column_valid_result,omitempty\"`\n\t// If it fails, an error code will be returned.\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewValidateTableSchemaResponse() *ValidateTableSchemaResponse {\n\treturn &ValidateTableSchemaResponse{}\n}\n\nfunc (p *ValidateTableSchemaResponse) InitDefault() {\n}\n\nvar ValidateTableSchemaResponse_ColumnValidResult_DEFAULT map[string]string\n\nfunc (p *ValidateTableSchemaResponse) GetColumnValidResult() (v map[string]string) {\n\tif !p.IsSetColumnValidResult() {\n\t\treturn ValidateTableSchemaResponse_ColumnValidResult_DEFAULT\n\t}\n\treturn p.ColumnValidResult\n}\n\nfunc (p *ValidateTableSchemaResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ValidateTableSchemaResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ValidateTableSchemaResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ValidateTableSchemaResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ValidateTableSchemaResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ValidateTableSchemaResponse = map[int16]string{\n\t1:   \"ColumnValidResult\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ValidateTableSchemaResponse) IsSetColumnValidResult() bool {\n\treturn p.ColumnValidResult != nil\n}\n\nfunc (p *ValidateTableSchemaResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ValidateTableSchemaResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ValidateTableSchemaResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ValidateTableSchemaResponse[fieldId]))\n}\n\nfunc (p *ValidateTableSchemaResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ColumnValidResult = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ValidateTableSchemaResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ValidateTableSchemaResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateTableSchemaResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ValidateTableSchemaResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetColumnValidResult() {\n\t\tif err = oprot.WriteFieldBegin(\"ColumnValidResult\", thrift.MAP, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.ColumnValidResult)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ColumnValidResult {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ValidateTableSchemaResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ValidateTableSchemaResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ValidateTableSchemaResponse(%+v)\", *p)\n\n}\n\ntype ExtractPhotoCaptionRequest struct {\n\tDocumentID int64      `thrift:\"document_id,1,required\" form:\"document_id,required\" json:\"document_id,string,required\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewExtractPhotoCaptionRequest() *ExtractPhotoCaptionRequest {\n\treturn &ExtractPhotoCaptionRequest{}\n}\n\nfunc (p *ExtractPhotoCaptionRequest) InitDefault() {\n}\n\nfunc (p *ExtractPhotoCaptionRequest) GetDocumentID() (v int64) {\n\treturn p.DocumentID\n}\n\nvar ExtractPhotoCaptionRequest_Base_DEFAULT *base.Base\n\nfunc (p *ExtractPhotoCaptionRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ExtractPhotoCaptionRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ExtractPhotoCaptionRequest = map[int16]string{\n\t1:   \"document_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ExtractPhotoCaptionRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ExtractPhotoCaptionRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDocumentID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDocumentID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDocumentID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ExtractPhotoCaptionRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ExtractPhotoCaptionRequest[fieldId]))\n}\n\nfunc (p *ExtractPhotoCaptionRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *ExtractPhotoCaptionRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ExtractPhotoCaptionRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ExtractPhotoCaptionRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ExtractPhotoCaptionRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DocumentID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ExtractPhotoCaptionRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ExtractPhotoCaptionRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ExtractPhotoCaptionRequest(%+v)\", *p)\n\n}\n\ntype ExtractPhotoCaptionResponse struct {\n\t// picture description\n\tCaption  string         `thrift:\"caption,1\" form:\"caption\" json:\"caption\" query:\"caption\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewExtractPhotoCaptionResponse() *ExtractPhotoCaptionResponse {\n\treturn &ExtractPhotoCaptionResponse{}\n}\n\nfunc (p *ExtractPhotoCaptionResponse) InitDefault() {\n}\n\nfunc (p *ExtractPhotoCaptionResponse) GetCaption() (v string) {\n\treturn p.Caption\n}\n\nfunc (p *ExtractPhotoCaptionResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ExtractPhotoCaptionResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ExtractPhotoCaptionResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ExtractPhotoCaptionResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ExtractPhotoCaptionResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ExtractPhotoCaptionResponse = map[int16]string{\n\t1:   \"caption\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ExtractPhotoCaptionResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ExtractPhotoCaptionResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ExtractPhotoCaptionResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ExtractPhotoCaptionResponse[fieldId]))\n}\n\nfunc (p *ExtractPhotoCaptionResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Caption = _field\n\treturn nil\n}\nfunc (p *ExtractPhotoCaptionResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ExtractPhotoCaptionResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ExtractPhotoCaptionResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ExtractPhotoCaptionResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ExtractPhotoCaptionResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ExtractPhotoCaptionResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"caption\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Caption); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ExtractPhotoCaptionResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ExtractPhotoCaptionResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ExtractPhotoCaptionResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ExtractPhotoCaptionResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ExtractPhotoCaptionResponse(%+v)\", *p)\n\n}\n\ntype GetDocumentTableInfoRequest struct {\n\t// If the table is uploaded for the first local file, pass the value\n\tTosURI *string `thrift:\"tos_uri,2,optional\" form:\"tos_uri\" json:\"tos_uri,omitempty\" query:\"tos_uri\"`\n\t// If it is a document with an existing table, pass the value\n\tDocumentID *int64 `thrift:\"document_id,3,optional\" form:\"document_id\" json:\"document_id,string,omitempty\"`\n\t// Creator [http interface does not need to be passed]\n\tCreatorID int64      `thrift:\"creator_id,4\" form:\"creator_id\" json:\"creator_id\" query:\"creator_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetDocumentTableInfoRequest() *GetDocumentTableInfoRequest {\n\treturn &GetDocumentTableInfoRequest{}\n}\n\nfunc (p *GetDocumentTableInfoRequest) InitDefault() {\n}\n\nvar GetDocumentTableInfoRequest_TosURI_DEFAULT string\n\nfunc (p *GetDocumentTableInfoRequest) GetTosURI() (v string) {\n\tif !p.IsSetTosURI() {\n\t\treturn GetDocumentTableInfoRequest_TosURI_DEFAULT\n\t}\n\treturn *p.TosURI\n}\n\nvar GetDocumentTableInfoRequest_DocumentID_DEFAULT int64\n\nfunc (p *GetDocumentTableInfoRequest) GetDocumentID() (v int64) {\n\tif !p.IsSetDocumentID() {\n\t\treturn GetDocumentTableInfoRequest_DocumentID_DEFAULT\n\t}\n\treturn *p.DocumentID\n}\n\nfunc (p *GetDocumentTableInfoRequest) GetCreatorID() (v int64) {\n\treturn p.CreatorID\n}\n\nvar GetDocumentTableInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetDocumentTableInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetDocumentTableInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetDocumentTableInfoRequest = map[int16]string{\n\t2:   \"tos_uri\",\n\t3:   \"document_id\",\n\t4:   \"creator_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetDocumentTableInfoRequest) IsSetTosURI() bool {\n\treturn p.TosURI != nil\n}\n\nfunc (p *GetDocumentTableInfoRequest) IsSetDocumentID() bool {\n\treturn p.DocumentID != nil\n}\n\nfunc (p *GetDocumentTableInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetDocumentTableInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDocumentTableInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetDocumentTableInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TosURI = _field\n\treturn nil\n}\nfunc (p *GetDocumentTableInfoRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *GetDocumentTableInfoRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *GetDocumentTableInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetDocumentTableInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentTableInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDocumentTableInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTosURI() {\n\t\tif err = oprot.WriteFieldBegin(\"tos_uri\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TosURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDocumentTableInfoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDocumentID() {\n\t\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.DocumentID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetDocumentTableInfoRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetDocumentTableInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDocumentTableInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDocumentTableInfoRequest(%+v)\", *p)\n\n}\n\ntype GetDocumentTableInfoResponse struct {\n\tCode      int32            `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg       string           `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tSheetList []*DocTableSheet `thrift:\"sheet_list,3\" form:\"sheet_list\" json:\"sheet_list\" query:\"sheet_list\"`\n\t// key: sheet_id -> list<common.DocTableColumn>\n\tTableMeta map[string][]*DocTableColumn `thrift:\"table_meta,4\" form:\"table_meta\" json:\"table_meta\"`\n\t// key: sheet_id -> list_preview_data\n\tPreviewData map[string][]map[string]string `thrift:\"preview_data,5\" form:\"preview_data\" json:\"preview_data\"`\n\tBaseResp    *base.BaseResp                 `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetDocumentTableInfoResponse() *GetDocumentTableInfoResponse {\n\treturn &GetDocumentTableInfoResponse{}\n}\n\nfunc (p *GetDocumentTableInfoResponse) InitDefault() {\n}\n\nfunc (p *GetDocumentTableInfoResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetDocumentTableInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetDocumentTableInfoResponse) GetSheetList() (v []*DocTableSheet) {\n\treturn p.SheetList\n}\n\nfunc (p *GetDocumentTableInfoResponse) GetTableMeta() (v map[string][]*DocTableColumn) {\n\treturn p.TableMeta\n}\n\nfunc (p *GetDocumentTableInfoResponse) GetPreviewData() (v map[string][]map[string]string) {\n\treturn p.PreviewData\n}\n\nvar GetDocumentTableInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetDocumentTableInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetDocumentTableInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetDocumentTableInfoResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"sheet_list\",\n\t4:   \"table_meta\",\n\t5:   \"preview_data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetDocumentTableInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetDocumentTableInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDocumentTableInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDocumentTableInfoResponse[fieldId]))\n}\n\nfunc (p *GetDocumentTableInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetDocumentTableInfoResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetDocumentTableInfoResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DocTableSheet, 0, size)\n\tvalues := make([]DocTableSheet, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SheetList = _field\n\treturn nil\n}\nfunc (p *GetDocumentTableInfoResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string][]*DocTableColumn, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\t\t_, size, err := iprot.ReadListBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_val := make([]*DocTableColumn, 0, size)\n\t\tvalues := make([]DocTableColumn, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\t_elem := &values[i]\n\t\t\t_elem.InitDefault()\n\n\t\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t_val = append(_val, _elem)\n\t\t}\n\t\tif err := iprot.ReadListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableMeta = _field\n\treturn nil\n}\nfunc (p *GetDocumentTableInfoResponse) ReadField5(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string][]map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\t\t_, size, err := iprot.ReadListBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_val := make([]map[string]string, 0, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t_elem := make(map[string]string, size)\n\t\t\tfor i := 0; i < size; i++ {\n\t\t\t\tvar _key1 string\n\t\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t} else {\n\t\t\t\t\t_key1 = v\n\t\t\t\t}\n\n\t\t\t\tvar _val1 string\n\t\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t} else {\n\t\t\t\t\t_val1 = v\n\t\t\t\t}\n\n\t\t\t\t_elem[_key1] = _val1\n\t\t\t}\n\t\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t_val = append(_val, _elem)\n\t\t}\n\t\tif err := iprot.ReadListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PreviewData = _field\n\treturn nil\n}\nfunc (p *GetDocumentTableInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetDocumentTableInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentTableInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDocumentTableInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDocumentTableInfoResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDocumentTableInfoResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sheet_list\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SheetList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SheetList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetDocumentTableInfoResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_meta\", thrift.MAP, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.LIST, len(p.TableMeta)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.TableMeta {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range v {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetDocumentTableInfoResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"preview_data\", thrift.MAP, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.LIST, len(p.PreviewData)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.PreviewData {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.MAP, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range v {\n\t\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfor k, v := range v {\n\t\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetDocumentTableInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDocumentTableInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDocumentTableInfoResponse(%+v)\", *p)\n\n}\n\ntype GetTableSchemaInfoResponse struct {\n\tCode      int32            `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg       string           `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tSheetList []*DocTableSheet `thrift:\"sheet_list,3\" form:\"sheet_list\" json:\"sheet_list\" query:\"sheet_list\"`\n\t// The schema of the selected sheet, not selected to return the first sheet by default\n\tTableMeta []*DocTableColumn `thrift:\"table_meta,4\" form:\"table_meta\" json:\"table_meta\" query:\"table_meta\"`\n\t// The knowledge table will return\n\tPreviewData []map[int64]string `thrift:\"preview_data,5\" form:\"preview_data\" json:\"preview_data\" query:\"preview_data\"`\n\tBaseResp    *base.BaseResp     `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetTableSchemaInfoResponse() *GetTableSchemaInfoResponse {\n\treturn &GetTableSchemaInfoResponse{}\n}\n\nfunc (p *GetTableSchemaInfoResponse) InitDefault() {\n}\n\nfunc (p *GetTableSchemaInfoResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetTableSchemaInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetTableSchemaInfoResponse) GetSheetList() (v []*DocTableSheet) {\n\treturn p.SheetList\n}\n\nfunc (p *GetTableSchemaInfoResponse) GetTableMeta() (v []*DocTableColumn) {\n\treturn p.TableMeta\n}\n\nfunc (p *GetTableSchemaInfoResponse) GetPreviewData() (v []map[int64]string) {\n\treturn p.PreviewData\n}\n\nvar GetTableSchemaInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetTableSchemaInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetTableSchemaInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetTableSchemaInfoResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"sheet_list\",\n\t4:   \"table_meta\",\n\t5:   \"preview_data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetTableSchemaInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetTableSchemaInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetTableSchemaInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetTableSchemaInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaInfoResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaInfoResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DocTableSheet, 0, size)\n\tvalues := make([]DocTableSheet, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SheetList = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaInfoResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DocTableColumn, 0, size)\n\tvalues := make([]DocTableColumn, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TableMeta = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaInfoResponse) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]map[int64]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, _, size, err := iprot.ReadMapBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make(map[int64]string, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvar _key int64\n\t\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_key = v\n\t\t\t}\n\n\t\t\tvar _val string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_val = v\n\t\t\t}\n\n\t\t\t_elem[_key] = _val\n\t\t}\n\t\tif err := iprot.ReadMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PreviewData = _field\n\treturn nil\n}\nfunc (p *GetTableSchemaInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetTableSchemaInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTableSchemaInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetTableSchemaInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetTableSchemaInfoResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetTableSchemaInfoResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sheet_list\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SheetList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SheetList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetTableSchemaInfoResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"table_meta\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.TableMeta)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.TableMeta {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetTableSchemaInfoResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"preview_data\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.MAP, len(p.PreviewData)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PreviewData {\n\t\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRING, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range v {\n\t\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetTableSchemaInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetTableSchemaInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetTableSchemaInfoResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/data/knowledge/knowledge.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage knowledge\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype DatasetScopeType int64\n\nconst (\n\tDatasetScopeType_ScopeAll  DatasetScopeType = 1\n\tDatasetScopeType_ScopeSelf DatasetScopeType = 2\n)\n\nfunc (p DatasetScopeType) String() string {\n\tswitch p {\n\tcase DatasetScopeType_ScopeAll:\n\t\treturn \"ScopeAll\"\n\tcase DatasetScopeType_ScopeSelf:\n\t\treturn \"ScopeSelf\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DatasetScopeTypeFromString(s string) (DatasetScopeType, error) {\n\tswitch s {\n\tcase \"ScopeAll\":\n\t\treturn DatasetScopeType_ScopeAll, nil\n\tcase \"ScopeSelf\":\n\t\treturn DatasetScopeType_ScopeSelf, nil\n\t}\n\treturn DatasetScopeType(0), fmt.Errorf(\"not a valid DatasetScopeType string\")\n}\n\nfunc DatasetScopeTypePtr(v DatasetScopeType) *DatasetScopeType { return &v }\nfunc (p *DatasetScopeType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DatasetScopeType(result.Int64)\n\treturn\n}\n\nfunc (p *DatasetScopeType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DatasetSource int64\n\nconst (\n\tDatasetSource_SourceSelf    DatasetSource = 1\n\tDatasetSource_SourceExplore DatasetSource = 2\n)\n\nfunc (p DatasetSource) String() string {\n\tswitch p {\n\tcase DatasetSource_SourceSelf:\n\t\treturn \"SourceSelf\"\n\tcase DatasetSource_SourceExplore:\n\t\treturn \"SourceExplore\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DatasetSourceFromString(s string) (DatasetSource, error) {\n\tswitch s {\n\tcase \"SourceSelf\":\n\t\treturn DatasetSource_SourceSelf, nil\n\tcase \"SourceExplore\":\n\t\treturn DatasetSource_SourceExplore, nil\n\t}\n\treturn DatasetSource(0), fmt.Errorf(\"not a valid DatasetSource string\")\n}\n\nfunc DatasetSourcePtr(v DatasetSource) *DatasetSource { return &v }\nfunc (p *DatasetSource) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DatasetSource(result.Int64)\n\treturn\n}\n\nfunc (p *DatasetSource) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype CreateDatasetRequest struct {\n\t// Knowledge base name, no more than 100 characters in length\n\tName string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\t// Knowledge Base Description\n\tDescription string `thrift:\"description,2\" form:\"description\" json:\"description\" query:\"description\"`\n\t// Space ID\n\tSpaceID int64 `thrift:\"space_id,3\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\t// Knowledge Base Avatar URI\n\tIconURI    string     `thrift:\"icon_uri,4\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tFormatType FormatType `thrift:\"format_type,5\" form:\"format_type\" json:\"format_type\" query:\"format_type\"`\n\t// Open to third-party business identity, coze pass 0 or no pass\n\tBizID int64 `thrift:\"biz_id,6\" form:\"biz_id\" json:\"biz_id,string\" query:\"biz_id\"`\n\t// Project ID\n\tProjectID int64      `thrift:\"project_id,7\" form:\"project_id\" json:\"project_id,string\" query:\"project_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCreateDatasetRequest() *CreateDatasetRequest {\n\treturn &CreateDatasetRequest{}\n}\n\nfunc (p *CreateDatasetRequest) InitDefault() {\n}\n\nfunc (p *CreateDatasetRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *CreateDatasetRequest) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *CreateDatasetRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *CreateDatasetRequest) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *CreateDatasetRequest) GetFormatType() (v FormatType) {\n\treturn p.FormatType\n}\n\nfunc (p *CreateDatasetRequest) GetBizID() (v int64) {\n\treturn p.BizID\n}\n\nfunc (p *CreateDatasetRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar CreateDatasetRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateDatasetRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateDatasetRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateDatasetRequest = map[int16]string{\n\t1:   \"name\",\n\t2:   \"description\",\n\t3:   \"space_id\",\n\t4:   \"icon_uri\",\n\t5:   \"format_type\",\n\t6:   \"biz_id\",\n\t7:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateDatasetRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateDatasetRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateDatasetRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateDatasetRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *CreateDatasetRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *CreateDatasetRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *CreateDatasetRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *CreateDatasetRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field FormatType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = FormatType(v)\n\t}\n\tp.FormatType = _field\n\treturn nil\n}\nfunc (p *CreateDatasetRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BizID = _field\n\treturn nil\n}\nfunc (p *CreateDatasetRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *CreateDatasetRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateDatasetRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDatasetRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateDatasetRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateDatasetRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateDatasetRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateDatasetRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CreateDatasetRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"format_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FormatType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *CreateDatasetRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"biz_id\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BizID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *CreateDatasetRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *CreateDatasetRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateDatasetRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateDatasetRequest(%+v)\", *p)\n\n}\n\ntype CreateDatasetResponse struct {\n\tDatasetID int64          `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id,string\" query:\"dataset_id\"`\n\tCode      int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg       string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp  *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewCreateDatasetResponse() *CreateDatasetResponse {\n\treturn &CreateDatasetResponse{}\n}\n\nfunc (p *CreateDatasetResponse) InitDefault() {\n}\n\nfunc (p *CreateDatasetResponse) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nfunc (p *CreateDatasetResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CreateDatasetResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CreateDatasetResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateDatasetResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateDatasetResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateDatasetResponse = map[int16]string{\n\t1:   \"dataset_id\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateDatasetResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateDatasetResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateDatasetResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateDatasetResponse[fieldId]))\n}\n\nfunc (p *CreateDatasetResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *CreateDatasetResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateDatasetResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateDatasetResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateDatasetResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDatasetResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateDatasetResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateDatasetResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CreateDatasetResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CreateDatasetResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateDatasetResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateDatasetResponse(%+v)\", *p)\n\n}\n\ntype DatasetDetailRequest struct {\n\tDatasetIDs []string `thrift:\"DatasetIDs,1\" form:\"dataset_ids\" json:\"dataset_ids\"`\n\t// project ID\n\tProjectID int64      `thrift:\"project_id,3\" form:\"project_id\" json:\"project_id,string\" query:\"project_id\"`\n\tSpaceID   int64      `thrift:\"space_id,2\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDatasetDetailRequest() *DatasetDetailRequest {\n\treturn &DatasetDetailRequest{}\n}\n\nfunc (p *DatasetDetailRequest) InitDefault() {\n}\n\nfunc (p *DatasetDetailRequest) GetDatasetIDs() (v []string) {\n\treturn p.DatasetIDs\n}\n\nfunc (p *DatasetDetailRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nfunc (p *DatasetDetailRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar DatasetDetailRequest_Base_DEFAULT *base.Base\n\nfunc (p *DatasetDetailRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DatasetDetailRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DatasetDetailRequest = map[int16]string{\n\t1:   \"DatasetIDs\",\n\t3:   \"project_id\",\n\t2:   \"space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *DatasetDetailRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DatasetDetailRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetDetailRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetDetailRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DatasetIDs = _field\n\treturn nil\n}\nfunc (p *DatasetDetailRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *DatasetDetailRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *DatasetDetailRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DatasetDetailRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatasetDetailRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetDetailRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DatasetIDs\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.DatasetIDs)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DatasetIDs {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DatasetDetailRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DatasetDetailRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DatasetDetailRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DatasetDetailRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetDetailRequest(%+v)\", *p)\n\n}\n\ntype DatasetDetailResponse struct {\n\tDatasetDetails map[string]*Dataset `thrift:\"dataset_details,1\" form:\"dataset_details\" json:\"dataset_details\" query:\"dataset_details\"`\n\tCode           int64               `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg            string              `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp       *base.BaseResp      `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewDatasetDetailResponse() *DatasetDetailResponse {\n\treturn &DatasetDetailResponse{}\n}\n\nfunc (p *DatasetDetailResponse) InitDefault() {\n}\n\nfunc (p *DatasetDetailResponse) GetDatasetDetails() (v map[string]*Dataset) {\n\treturn p.DatasetDetails\n}\n\nfunc (p *DatasetDetailResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DatasetDetailResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DatasetDetailResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DatasetDetailResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DatasetDetailResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DatasetDetailResponse = map[int16]string{\n\t1:   \"dataset_details\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DatasetDetailResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DatasetDetailResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetDetailResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DatasetDetailResponse[fieldId]))\n}\n\nfunc (p *DatasetDetailResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*Dataset, size)\n\tvalues := make([]Dataset, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DatasetDetails = _field\n\treturn nil\n}\nfunc (p *DatasetDetailResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DatasetDetailResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DatasetDetailResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DatasetDetailResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatasetDetailResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetDetailResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_details\", thrift.MAP, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.DatasetDetails)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.DatasetDetails {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DatasetDetailResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DatasetDetailResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DatasetDetailResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DatasetDetailResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetDetailResponse(%+v)\", *p)\n\n}\n\ntype ListDatasetRequest struct {\n\tFilter  *DatasetFilter `thrift:\"filter,1,optional\" form:\"filter\" json:\"filter,omitempty\" query:\"filter\"`\n\tPage    *int32         `thrift:\"page,3,optional\" form:\"page\" json:\"page,omitempty\" query:\"page\"`\n\tSize    *int32         `thrift:\"size,4,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\tSpaceID int64          `thrift:\"space_id,5\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\t// sort field\n\tOrderField *OrderField `thrift:\"order_field,6,optional\" form:\"order_field\" json:\"order_field,omitempty\" query:\"order_field\"`\n\t// order_type\n\tOrderType *OrderType `thrift:\"order_type,7,optional\" form:\"order_type\" json:\"order_type,omitempty\" query:\"order_type\"`\n\t// If the specified value is passed, the verification is released\n\tSpaceAuth *string `thrift:\"space_auth,8,optional\" form:\"space_auth\" json:\"space_auth,omitempty\" query:\"space_auth\"`\n\t// Business identity open to third parties\n\tBizID *int64 `thrift:\"biz_id,9,optional\" form:\"biz_id\" json:\"biz_id,string,omitempty\" query:\"biz_id\"`\n\t// Whether the number of reference bots needs to be pulled will increase the response delay\n\tNeedRefBots *bool `thrift:\"need_ref_bots,10,optional\" form:\"need_ref_bots\" json:\"need_ref_bots,omitempty\" query:\"need_ref_bots\"`\n\t//project ID\n\tProjectID *string    `thrift:\"project_id,11,optional\" form:\"project_id\" json:\"project_id,omitempty\" query:\"project_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewListDatasetRequest() *ListDatasetRequest {\n\treturn &ListDatasetRequest{}\n}\n\nfunc (p *ListDatasetRequest) InitDefault() {\n}\n\nvar ListDatasetRequest_Filter_DEFAULT *DatasetFilter\n\nfunc (p *ListDatasetRequest) GetFilter() (v *DatasetFilter) {\n\tif !p.IsSetFilter() {\n\t\treturn ListDatasetRequest_Filter_DEFAULT\n\t}\n\treturn p.Filter\n}\n\nvar ListDatasetRequest_Page_DEFAULT int32\n\nfunc (p *ListDatasetRequest) GetPage() (v int32) {\n\tif !p.IsSetPage() {\n\t\treturn ListDatasetRequest_Page_DEFAULT\n\t}\n\treturn *p.Page\n}\n\nvar ListDatasetRequest_Size_DEFAULT int32\n\nfunc (p *ListDatasetRequest) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn ListDatasetRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nfunc (p *ListDatasetRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar ListDatasetRequest_OrderField_DEFAULT OrderField\n\nfunc (p *ListDatasetRequest) GetOrderField() (v OrderField) {\n\tif !p.IsSetOrderField() {\n\t\treturn ListDatasetRequest_OrderField_DEFAULT\n\t}\n\treturn *p.OrderField\n}\n\nvar ListDatasetRequest_OrderType_DEFAULT OrderType\n\nfunc (p *ListDatasetRequest) GetOrderType() (v OrderType) {\n\tif !p.IsSetOrderType() {\n\t\treturn ListDatasetRequest_OrderType_DEFAULT\n\t}\n\treturn *p.OrderType\n}\n\nvar ListDatasetRequest_SpaceAuth_DEFAULT string\n\nfunc (p *ListDatasetRequest) GetSpaceAuth() (v string) {\n\tif !p.IsSetSpaceAuth() {\n\t\treturn ListDatasetRequest_SpaceAuth_DEFAULT\n\t}\n\treturn *p.SpaceAuth\n}\n\nvar ListDatasetRequest_BizID_DEFAULT int64\n\nfunc (p *ListDatasetRequest) GetBizID() (v int64) {\n\tif !p.IsSetBizID() {\n\t\treturn ListDatasetRequest_BizID_DEFAULT\n\t}\n\treturn *p.BizID\n}\n\nvar ListDatasetRequest_NeedRefBots_DEFAULT bool\n\nfunc (p *ListDatasetRequest) GetNeedRefBots() (v bool) {\n\tif !p.IsSetNeedRefBots() {\n\t\treturn ListDatasetRequest_NeedRefBots_DEFAULT\n\t}\n\treturn *p.NeedRefBots\n}\n\nvar ListDatasetRequest_ProjectID_DEFAULT string\n\nfunc (p *ListDatasetRequest) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn ListDatasetRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar ListDatasetRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListDatasetRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListDatasetRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListDatasetRequest = map[int16]string{\n\t1:   \"filter\",\n\t3:   \"page\",\n\t4:   \"size\",\n\t5:   \"space_id\",\n\t6:   \"order_field\",\n\t7:   \"order_type\",\n\t8:   \"space_auth\",\n\t9:   \"biz_id\",\n\t10:  \"need_ref_bots\",\n\t11:  \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ListDatasetRequest) IsSetFilter() bool {\n\treturn p.Filter != nil\n}\n\nfunc (p *ListDatasetRequest) IsSetPage() bool {\n\treturn p.Page != nil\n}\n\nfunc (p *ListDatasetRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *ListDatasetRequest) IsSetOrderField() bool {\n\treturn p.OrderField != nil\n}\n\nfunc (p *ListDatasetRequest) IsSetOrderType() bool {\n\treturn p.OrderType != nil\n}\n\nfunc (p *ListDatasetRequest) IsSetSpaceAuth() bool {\n\treturn p.SpaceAuth != nil\n}\n\nfunc (p *ListDatasetRequest) IsSetBizID() bool {\n\treturn p.BizID != nil\n}\n\nfunc (p *ListDatasetRequest) IsSetNeedRefBots() bool {\n\treturn p.NeedRefBots != nil\n}\n\nfunc (p *ListDatasetRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *ListDatasetRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListDatasetRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDatasetRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListDatasetRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDatasetFilter()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Filter = _field\n\treturn nil\n}\nfunc (p *ListDatasetRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *ListDatasetRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *ListDatasetRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ListDatasetRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *OrderField\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := OrderField(v)\n\t\t_field = &tmp\n\t}\n\tp.OrderField = _field\n\treturn nil\n}\nfunc (p *ListDatasetRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *OrderType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := OrderType(v)\n\t\t_field = &tmp\n\t}\n\tp.OrderType = _field\n\treturn nil\n}\nfunc (p *ListDatasetRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceAuth = _field\n\treturn nil\n}\nfunc (p *ListDatasetRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BizID = _field\n\treturn nil\n}\nfunc (p *ListDatasetRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NeedRefBots = _field\n\treturn nil\n}\nfunc (p *ListDatasetRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *ListDatasetRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListDatasetRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatasetRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDatasetRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFilter() {\n\t\tif err = oprot.WriteFieldBegin(\"filter\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Filter.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDatasetRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPage() {\n\t\tif err = oprot.WriteFieldBegin(\"page\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Page); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListDatasetRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListDatasetRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListDatasetRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderField() {\n\t\tif err = oprot.WriteFieldBegin(\"order_field\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.OrderField)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ListDatasetRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderType() {\n\t\tif err = oprot.WriteFieldBegin(\"order_type\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.OrderType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ListDatasetRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceAuth() {\n\t\tif err = oprot.WriteFieldBegin(\"space_auth\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceAuth); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ListDatasetRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBizID() {\n\t\tif err = oprot.WriteFieldBegin(\"biz_id\", thrift.I64, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BizID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ListDatasetRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedRefBots() {\n\t\tif err = oprot.WriteFieldBegin(\"need_ref_bots\", thrift.BOOL, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NeedRefBots); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ListDatasetRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ListDatasetRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDatasetRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDatasetRequest(%+v)\", *p)\n\n}\n\ntype ListDatasetResponse struct {\n\tDatasetList []*Dataset     `thrift:\"dataset_list,1\" form:\"dataset_list\" json:\"dataset_list\" query:\"dataset_list\"`\n\tTotal       int32          `thrift:\"total,2\" form:\"total\" json:\"total\" query:\"total\"`\n\tCode        int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg         string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp    *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewListDatasetResponse() *ListDatasetResponse {\n\treturn &ListDatasetResponse{}\n}\n\nfunc (p *ListDatasetResponse) InitDefault() {\n}\n\nfunc (p *ListDatasetResponse) GetDatasetList() (v []*Dataset) {\n\treturn p.DatasetList\n}\n\nfunc (p *ListDatasetResponse) GetTotal() (v int32) {\n\treturn p.Total\n}\n\nfunc (p *ListDatasetResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListDatasetResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ListDatasetResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListDatasetResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListDatasetResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListDatasetResponse = map[int16]string{\n\t1:   \"dataset_list\",\n\t2:   \"total\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListDatasetResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListDatasetResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDatasetResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDatasetResponse[fieldId]))\n}\n\nfunc (p *ListDatasetResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Dataset, 0, size)\n\tvalues := make([]Dataset, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DatasetList = _field\n\treturn nil\n}\nfunc (p *ListDatasetResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\nfunc (p *ListDatasetResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListDatasetResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListDatasetResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListDatasetResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatasetResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDatasetResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.DatasetList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DatasetList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDatasetResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDatasetResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListDatasetResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ListDatasetResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDatasetResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDatasetResponse(%+v)\", *p)\n\n}\n\ntype DatasetFilter struct {\n\t// The following conditions are related to and\n\tName *string `thrift:\"name,1,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\t// Knowledge id list\n\tDatasetIds []string `thrift:\"dataset_ids,2,optional\" form:\"dataset_ids\" json:\"dataset_ids,omitempty\" query:\"dataset_ids\"`\n\t// source\n\tSourceType *DatasetSource `thrift:\"source_type,3,optional\" form:\"source_type\" json:\"source_type,omitempty\" query:\"source_type\"`\n\t// search type\n\tScopeType *DatasetScopeType `thrift:\"scope_type,4,optional\" form:\"scope_type\" json:\"scope_type,omitempty\" query:\"scope_type\"`\n\t// type\n\tFormatType *FormatType `thrift:\"format_type,5,optional\" form:\"format_type\" json:\"format_type,omitempty\" query:\"format_type\"`\n}\n\nfunc NewDatasetFilter() *DatasetFilter {\n\treturn &DatasetFilter{}\n}\n\nfunc (p *DatasetFilter) InitDefault() {\n}\n\nvar DatasetFilter_Name_DEFAULT string\n\nfunc (p *DatasetFilter) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn DatasetFilter_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar DatasetFilter_DatasetIds_DEFAULT []string\n\nfunc (p *DatasetFilter) GetDatasetIds() (v []string) {\n\tif !p.IsSetDatasetIds() {\n\t\treturn DatasetFilter_DatasetIds_DEFAULT\n\t}\n\treturn p.DatasetIds\n}\n\nvar DatasetFilter_SourceType_DEFAULT DatasetSource\n\nfunc (p *DatasetFilter) GetSourceType() (v DatasetSource) {\n\tif !p.IsSetSourceType() {\n\t\treturn DatasetFilter_SourceType_DEFAULT\n\t}\n\treturn *p.SourceType\n}\n\nvar DatasetFilter_ScopeType_DEFAULT DatasetScopeType\n\nfunc (p *DatasetFilter) GetScopeType() (v DatasetScopeType) {\n\tif !p.IsSetScopeType() {\n\t\treturn DatasetFilter_ScopeType_DEFAULT\n\t}\n\treturn *p.ScopeType\n}\n\nvar DatasetFilter_FormatType_DEFAULT FormatType\n\nfunc (p *DatasetFilter) GetFormatType() (v FormatType) {\n\tif !p.IsSetFormatType() {\n\t\treturn DatasetFilter_FormatType_DEFAULT\n\t}\n\treturn *p.FormatType\n}\n\nvar fieldIDToName_DatasetFilter = map[int16]string{\n\t1: \"name\",\n\t2: \"dataset_ids\",\n\t3: \"source_type\",\n\t4: \"scope_type\",\n\t5: \"format_type\",\n}\n\nfunc (p *DatasetFilter) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *DatasetFilter) IsSetDatasetIds() bool {\n\treturn p.DatasetIds != nil\n}\n\nfunc (p *DatasetFilter) IsSetSourceType() bool {\n\treturn p.SourceType != nil\n}\n\nfunc (p *DatasetFilter) IsSetScopeType() bool {\n\treturn p.ScopeType != nil\n}\n\nfunc (p *DatasetFilter) IsSetFormatType() bool {\n\treturn p.FormatType != nil\n}\n\nfunc (p *DatasetFilter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetFilter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetFilter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DatasetFilter) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DatasetIds = _field\n\treturn nil\n}\nfunc (p *DatasetFilter) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *DatasetSource\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DatasetSource(v)\n\t\t_field = &tmp\n\t}\n\tp.SourceType = _field\n\treturn nil\n}\nfunc (p *DatasetFilter) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *DatasetScopeType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DatasetScopeType(v)\n\t\t_field = &tmp\n\t}\n\tp.ScopeType = _field\n\treturn nil\n}\nfunc (p *DatasetFilter) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *FormatType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := FormatType(v)\n\t\t_field = &tmp\n\t}\n\tp.FormatType = _field\n\treturn nil\n}\n\nfunc (p *DatasetFilter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatasetFilter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetFilter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DatasetFilter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDatasetIds() {\n\t\tif err = oprot.WriteFieldBegin(\"dataset_ids\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.DatasetIds)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.DatasetIds {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DatasetFilter) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSourceType() {\n\t\tif err = oprot.WriteFieldBegin(\"source_type\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SourceType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DatasetFilter) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScopeType() {\n\t\tif err = oprot.WriteFieldBegin(\"scope_type\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ScopeType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DatasetFilter) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFormatType() {\n\t\tif err = oprot.WriteFieldBegin(\"format_type\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FormatType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *DatasetFilter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetFilter(%+v)\", *p)\n\n}\n\ntype DeleteDatasetRequest struct {\n\tDatasetID int64      `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id,string\" query:\"dataset_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteDatasetRequest() *DeleteDatasetRequest {\n\treturn &DeleteDatasetRequest{}\n}\n\nfunc (p *DeleteDatasetRequest) InitDefault() {\n}\n\nfunc (p *DeleteDatasetRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nvar DeleteDatasetRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteDatasetRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteDatasetRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteDatasetRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteDatasetRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteDatasetRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteDatasetRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteDatasetRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *DeleteDatasetRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteDatasetRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDatasetRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteDatasetRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteDatasetRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteDatasetRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteDatasetRequest(%+v)\", *p)\n\n}\n\ntype DeleteDatasetResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewDeleteDatasetResponse() *DeleteDatasetResponse {\n\treturn &DeleteDatasetResponse{}\n}\n\nfunc (p *DeleteDatasetResponse) InitDefault() {\n}\n\nfunc (p *DeleteDatasetResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DeleteDatasetResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DeleteDatasetResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteDatasetResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteDatasetResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteDatasetResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteDatasetResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteDatasetResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteDatasetResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteDatasetResponse[fieldId]))\n}\n\nfunc (p *DeleteDatasetResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteDatasetResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeleteDatasetResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteDatasetResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDatasetResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteDatasetResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DeleteDatasetResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DeleteDatasetResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteDatasetResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteDatasetResponse(%+v)\", *p)\n\n}\n\ntype UpdateDatasetRequest struct {\n\t// Knowledge ID\n\tDatasetID int64 `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id,string\" query:\"dataset_id\"`\n\t// Knowledge base name, cannot be empty\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\t// Knowledge base icon\n\tIconURI string `thrift:\"icon_uri,3\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\t// Knowledge Base Description\n\tDescription string         `thrift:\"description,4\" form:\"description\" json:\"description\" query:\"description\"`\n\tStatus      *DatasetStatus `thrift:\"status,5,optional\" form:\"status\" json:\"status,omitempty\" query:\"status\"`\n\tBase        *base.Base     `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateDatasetRequest() *UpdateDatasetRequest {\n\treturn &UpdateDatasetRequest{}\n}\n\nfunc (p *UpdateDatasetRequest) InitDefault() {\n}\n\nfunc (p *UpdateDatasetRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nfunc (p *UpdateDatasetRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *UpdateDatasetRequest) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *UpdateDatasetRequest) GetDescription() (v string) {\n\treturn p.Description\n}\n\nvar UpdateDatasetRequest_Status_DEFAULT DatasetStatus\n\nfunc (p *UpdateDatasetRequest) GetStatus() (v DatasetStatus) {\n\tif !p.IsSetStatus() {\n\t\treturn UpdateDatasetRequest_Status_DEFAULT\n\t}\n\treturn *p.Status\n}\n\nvar UpdateDatasetRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateDatasetRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateDatasetRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateDatasetRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t2:   \"name\",\n\t3:   \"icon_uri\",\n\t4:   \"description\",\n\t5:   \"status\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateDatasetRequest) IsSetStatus() bool {\n\treturn p.Status != nil\n}\n\nfunc (p *UpdateDatasetRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateDatasetRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDatasetRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatasetRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *DatasetStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DatasetStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateDatasetRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatasetRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatasetRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDatasetRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateDatasetRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateDatasetRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UpdateDatasetRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Status)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UpdateDatasetRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDatasetRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDatasetRequest(%+v)\", *p)\n\n}\n\ntype UpdateDatasetResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewUpdateDatasetResponse() *UpdateDatasetResponse {\n\treturn &UpdateDatasetResponse{}\n}\n\nfunc (p *UpdateDatasetResponse) InitDefault() {\n}\n\nfunc (p *UpdateDatasetResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateDatasetResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateDatasetResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateDatasetResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateDatasetResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateDatasetResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateDatasetResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateDatasetResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDatasetResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateDatasetResponse[fieldId]))\n}\n\nfunc (p *UpdateDatasetResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateDatasetResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatasetResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatasetResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateDatasetResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateDatasetResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDatasetResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDatasetResponse(%+v)\", *p)\n\n}\n\ntype GetIconRequest struct {\n\tFormatType FormatType `thrift:\"format_type,1\" form:\"format_type\" json:\"format_type\" query:\"format_type\"`\n}\n\nfunc NewGetIconRequest() *GetIconRequest {\n\treturn &GetIconRequest{}\n}\n\nfunc (p *GetIconRequest) InitDefault() {\n}\n\nfunc (p *GetIconRequest) GetFormatType() (v FormatType) {\n\treturn p.FormatType\n}\n\nvar fieldIDToName_GetIconRequest = map[int16]string{\n\t1: \"format_type\",\n}\n\nfunc (p *GetIconRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetIconRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetIconRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field FormatType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = FormatType(v)\n\t}\n\tp.FormatType = _field\n\treturn nil\n}\n\nfunc (p *GetIconRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetIconRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetIconRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"format_type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FormatType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *GetIconRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetIconRequest(%+v)\", *p)\n\n}\n\ntype Icon struct {\n\tURL string `thrift:\"url,1\" form:\"url\" json:\"url\" query:\"url\"`\n\tURI string `thrift:\"uri,2\" form:\"uri\" json:\"uri\" query:\"uri\"`\n}\n\nfunc NewIcon() *Icon {\n\treturn &Icon{}\n}\n\nfunc (p *Icon) InitDefault() {\n}\n\nfunc (p *Icon) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *Icon) GetURI() (v string) {\n\treturn p.URI\n}\n\nvar fieldIDToName_Icon = map[int16]string{\n\t1: \"url\",\n\t2: \"uri\",\n}\n\nfunc (p *Icon) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Icon[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Icon) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *Icon) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URI = _field\n\treturn nil\n}\n\nfunc (p *Icon) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Icon\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Icon) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Icon) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"uri\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *Icon) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Icon(%+v)\", *p)\n\n}\n\ntype GetIconResponse struct {\n\tIcon     *Icon          `thrift:\"icon,1\" form:\"icon\" json:\"icon\" query:\"icon\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetIconResponse() *GetIconResponse {\n\treturn &GetIconResponse{}\n}\n\nfunc (p *GetIconResponse) InitDefault() {\n}\n\nvar GetIconResponse_Icon_DEFAULT *Icon\n\nfunc (p *GetIconResponse) GetIcon() (v *Icon) {\n\tif !p.IsSetIcon() {\n\t\treturn GetIconResponse_Icon_DEFAULT\n\t}\n\treturn p.Icon\n}\n\nfunc (p *GetIconResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetIconResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetIconResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetIconResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetIconResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetIconResponse = map[int16]string{\n\t1:   \"icon\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetIconResponse) IsSetIcon() bool {\n\treturn p.Icon != nil\n}\n\nfunc (p *GetIconResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetIconResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetIconResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetIconResponse[fieldId]))\n}\n\nfunc (p *GetIconResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewIcon()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *GetIconResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetIconResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetIconResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetIconResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetIconResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetIconResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Icon.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetIconResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetIconResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetIconResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetIconResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetIconResponse(%+v)\", *p)\n\n}\n\ntype GetModeConfigRequest struct {\n\t// bot id\n\tBotID int64 `thrift:\"bot_id,1,required\" form:\"bot_id,required\" json:\"bot_id,required\" query:\"bot_id,required\"`\n\t// line of business id\n\tConnectorID *int64 `thrift:\"connector_id,2,optional\" form:\"connector_id\" json:\"connector_id,omitempty\" query:\"connector_id\"`\n\t// line of business user id\n\tConnectorUID *string    `thrift:\"connector_uid,3,optional\" form:\"connector_uid\" json:\"connector_uid,omitempty\" query:\"connector_uid\"`\n\tBase         *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetModeConfigRequest() *GetModeConfigRequest {\n\treturn &GetModeConfigRequest{}\n}\n\nfunc (p *GetModeConfigRequest) InitDefault() {\n}\n\nfunc (p *GetModeConfigRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar GetModeConfigRequest_ConnectorID_DEFAULT int64\n\nfunc (p *GetModeConfigRequest) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn GetModeConfigRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar GetModeConfigRequest_ConnectorUID_DEFAULT string\n\nfunc (p *GetModeConfigRequest) GetConnectorUID() (v string) {\n\tif !p.IsSetConnectorUID() {\n\t\treturn GetModeConfigRequest_ConnectorUID_DEFAULT\n\t}\n\treturn *p.ConnectorUID\n}\n\nvar GetModeConfigRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetModeConfigRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetModeConfigRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetModeConfigRequest = map[int16]string{\n\t1:   \"bot_id\",\n\t2:   \"connector_id\",\n\t3:   \"connector_uid\",\n\t255: \"Base\",\n}\n\nfunc (p *GetModeConfigRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *GetModeConfigRequest) IsSetConnectorUID() bool {\n\treturn p.ConnectorUID != nil\n}\n\nfunc (p *GetModeConfigRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetModeConfigRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetModeConfigRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetModeConfigRequest[fieldId]))\n}\n\nfunc (p *GetModeConfigRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetModeConfigRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *GetModeConfigRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorUID = _field\n\treturn nil\n}\nfunc (p *GetModeConfigRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetModeConfigRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetModeConfigRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetModeConfigRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetModeConfigRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetModeConfigRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorUID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_uid\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorUID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetModeConfigRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetModeConfigRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetModeConfigRequest(%+v)\", *p)\n\n}\n\ntype GetModeConfigResponse struct {\n\tCode          int32          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg           string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tMode          string         `thrift:\"mode,3\" form:\"mode\" json:\"mode\" query:\"mode\"`\n\tBotID         int64          `thrift:\"bot_id,4\" form:\"bot_id\" json:\"bot_id\" query:\"bot_id\"`\n\tMaxTableNum   int64          `thrift:\"max_table_num,5\" form:\"max_table_num\" json:\"max_table_num\" query:\"max_table_num\"`\n\tMaxColumnNum  int64          `thrift:\"max_column_num,6\" form:\"max_column_num\" json:\"max_column_num\" query:\"max_column_num\"`\n\tMaxCapacityKb int64          `thrift:\"max_capacity_kb,7\" form:\"max_capacity_kb\" json:\"max_capacity_kb\" query:\"max_capacity_kb\"`\n\tMaxRowNum     int64          `thrift:\"max_row_num,8\" form:\"max_row_num\" json:\"max_row_num\" query:\"max_row_num\"`\n\tBaseResp      *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetModeConfigResponse() *GetModeConfigResponse {\n\treturn &GetModeConfigResponse{}\n}\n\nfunc (p *GetModeConfigResponse) InitDefault() {\n}\n\nfunc (p *GetModeConfigResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetModeConfigResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetModeConfigResponse) GetMode() (v string) {\n\treturn p.Mode\n}\n\nfunc (p *GetModeConfigResponse) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *GetModeConfigResponse) GetMaxTableNum() (v int64) {\n\treturn p.MaxTableNum\n}\n\nfunc (p *GetModeConfigResponse) GetMaxColumnNum() (v int64) {\n\treturn p.MaxColumnNum\n}\n\nfunc (p *GetModeConfigResponse) GetMaxCapacityKb() (v int64) {\n\treturn p.MaxCapacityKb\n}\n\nfunc (p *GetModeConfigResponse) GetMaxRowNum() (v int64) {\n\treturn p.MaxRowNum\n}\n\nvar GetModeConfigResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetModeConfigResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetModeConfigResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetModeConfigResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"mode\",\n\t4:   \"bot_id\",\n\t5:   \"max_table_num\",\n\t6:   \"max_column_num\",\n\t7:   \"max_capacity_kb\",\n\t8:   \"max_row_num\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetModeConfigResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetModeConfigResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetModeConfigResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetModeConfigResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetModeConfigResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetModeConfigResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Mode = _field\n\treturn nil\n}\nfunc (p *GetModeConfigResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetModeConfigResponse) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MaxTableNum = _field\n\treturn nil\n}\nfunc (p *GetModeConfigResponse) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MaxColumnNum = _field\n\treturn nil\n}\nfunc (p *GetModeConfigResponse) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MaxCapacityKb = _field\n\treturn nil\n}\nfunc (p *GetModeConfigResponse) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MaxRowNum = _field\n\treturn nil\n}\nfunc (p *GetModeConfigResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetModeConfigResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetModeConfigResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetModeConfigResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetModeConfigResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetModeConfigResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"mode\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Mode); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetModeConfigResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetModeConfigResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"max_table_num\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.MaxTableNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetModeConfigResponse) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"max_column_num\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.MaxColumnNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetModeConfigResponse) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"max_capacity_kb\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.MaxCapacityKb); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetModeConfigResponse) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"max_row_num\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.MaxRowNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetModeConfigResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetModeConfigResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetModeConfigResponse(%+v)\", *p)\n\n}\n\ntype CreateDatasetOpenApiRequest struct {\n\tName        string     `thrift:\"name,1\" form:\"name\" json:\"name\"`\n\tDescription string     `thrift:\"description,2\" form:\"description\" json:\"description\"`\n\tSpaceID     int64      `thrift:\"space_id,3\" form:\"space_id\" json:\"space_id,string\"`\n\tFileID      int64      `thrift:\"file_id,4\" form:\"file_id\" json:\"file_id,string\"`\n\tFormatType  FormatType `thrift:\"format_type,5\" form:\"format_type\" json:\"format_type\"`\n\tProjectID   int64      `thrift:\"project_id,6\" form:\"project_id\" json:\"project_id,string\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCreateDatasetOpenApiRequest() *CreateDatasetOpenApiRequest {\n\treturn &CreateDatasetOpenApiRequest{}\n}\n\nfunc (p *CreateDatasetOpenApiRequest) InitDefault() {\n}\n\nfunc (p *CreateDatasetOpenApiRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *CreateDatasetOpenApiRequest) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *CreateDatasetOpenApiRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *CreateDatasetOpenApiRequest) GetFileID() (v int64) {\n\treturn p.FileID\n}\n\nfunc (p *CreateDatasetOpenApiRequest) GetFormatType() (v FormatType) {\n\treturn p.FormatType\n}\n\nfunc (p *CreateDatasetOpenApiRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar CreateDatasetOpenApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateDatasetOpenApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateDatasetOpenApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateDatasetOpenApiRequest = map[int16]string{\n\t1:   \"name\",\n\t2:   \"description\",\n\t3:   \"space_id\",\n\t4:   \"file_id\",\n\t5:   \"format_type\",\n\t6:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateDatasetOpenApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateDatasetOpenApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateDatasetOpenApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateDatasetOpenApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *CreateDatasetOpenApiRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *CreateDatasetOpenApiRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *CreateDatasetOpenApiRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileID = _field\n\treturn nil\n}\nfunc (p *CreateDatasetOpenApiRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field FormatType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = FormatType(v)\n\t}\n\tp.FormatType = _field\n\treturn nil\n}\nfunc (p *CreateDatasetOpenApiRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *CreateDatasetOpenApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateDatasetOpenApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDatasetOpenApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateDatasetOpenApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateDatasetOpenApiRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateDatasetOpenApiRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateDatasetOpenApiRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.FileID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CreateDatasetOpenApiRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"format_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FormatType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *CreateDatasetOpenApiRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *CreateDatasetOpenApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateDatasetOpenApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateDatasetOpenApiRequest(%+v)\", *p)\n\n}\n\ntype CreateDatasetOpenApiResponse struct {\n\tData     *CreateDatasetOpenApiData `thrift:\"data,1\" form:\"data\" json:\"data\"`\n\tCode     *int64                    `thrift:\"code,253,optional\" form:\"code\" json:\"code,omitempty\"`\n\tMsg      *string                   `thrift:\"msg,254,optional\" form:\"msg\" json:\"msg,omitempty\"`\n\tBaseResp *base.BaseResp            `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCreateDatasetOpenApiResponse() *CreateDatasetOpenApiResponse {\n\treturn &CreateDatasetOpenApiResponse{}\n}\n\nfunc (p *CreateDatasetOpenApiResponse) InitDefault() {\n}\n\nvar CreateDatasetOpenApiResponse_Data_DEFAULT *CreateDatasetOpenApiData\n\nfunc (p *CreateDatasetOpenApiResponse) GetData() (v *CreateDatasetOpenApiData) {\n\tif !p.IsSetData() {\n\t\treturn CreateDatasetOpenApiResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar CreateDatasetOpenApiResponse_Code_DEFAULT int64\n\nfunc (p *CreateDatasetOpenApiResponse) GetCode() (v int64) {\n\tif !p.IsSetCode() {\n\t\treturn CreateDatasetOpenApiResponse_Code_DEFAULT\n\t}\n\treturn *p.Code\n}\n\nvar CreateDatasetOpenApiResponse_Msg_DEFAULT string\n\nfunc (p *CreateDatasetOpenApiResponse) GetMsg() (v string) {\n\tif !p.IsSetMsg() {\n\t\treturn CreateDatasetOpenApiResponse_Msg_DEFAULT\n\t}\n\treturn *p.Msg\n}\n\nvar CreateDatasetOpenApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateDatasetOpenApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateDatasetOpenApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateDatasetOpenApiResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateDatasetOpenApiResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *CreateDatasetOpenApiResponse) IsSetCode() bool {\n\treturn p.Code != nil\n}\n\nfunc (p *CreateDatasetOpenApiResponse) IsSetMsg() bool {\n\treturn p.Msg != nil\n}\n\nfunc (p *CreateDatasetOpenApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateDatasetOpenApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateDatasetOpenApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateDatasetOpenApiResponse[fieldId]))\n}\n\nfunc (p *CreateDatasetOpenApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateDatasetOpenApiData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *CreateDatasetOpenApiResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateDatasetOpenApiResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateDatasetOpenApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateDatasetOpenApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDatasetOpenApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateDatasetOpenApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateDatasetOpenApiResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCode() {\n\t\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Code); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CreateDatasetOpenApiResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CreateDatasetOpenApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateDatasetOpenApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateDatasetOpenApiResponse(%+v)\", *p)\n\n}\n\ntype CreateDatasetOpenApiData struct {\n\tDatasetID int64 `thrift:\"dataset_id,1\" json:\"dataset_id,string\" path:\"dataset_id\"`\n}\n\nfunc NewCreateDatasetOpenApiData() *CreateDatasetOpenApiData {\n\treturn &CreateDatasetOpenApiData{}\n}\n\nfunc (p *CreateDatasetOpenApiData) InitDefault() {\n}\n\nfunc (p *CreateDatasetOpenApiData) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nvar fieldIDToName_CreateDatasetOpenApiData = map[int16]string{\n\t1: \"dataset_id\",\n}\n\nfunc (p *CreateDatasetOpenApiData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateDatasetOpenApiData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateDatasetOpenApiData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\n\nfunc (p *CreateDatasetOpenApiData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDatasetOpenApiData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateDatasetOpenApiData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *CreateDatasetOpenApiData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateDatasetOpenApiData(%+v)\", *p)\n\n}\n\ntype UpdateDatasetOpenApiRequest struct {\n\tDatasetID   int64      `thrift:\"dataset_id,1\" json:\"dataset_id,string\" path:\"dataset_id\"`\n\tName        string     `thrift:\"name,2\" form:\"name\" json:\"name\"`\n\tFileID      string     `thrift:\"file_id,3\" form:\"file_id\" json:\"file_id\"`\n\tDescription string     `thrift:\"description,4\" form:\"description\" json:\"description\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateDatasetOpenApiRequest() *UpdateDatasetOpenApiRequest {\n\treturn &UpdateDatasetOpenApiRequest{}\n}\n\nfunc (p *UpdateDatasetOpenApiRequest) InitDefault() {\n}\n\nfunc (p *UpdateDatasetOpenApiRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nfunc (p *UpdateDatasetOpenApiRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *UpdateDatasetOpenApiRequest) GetFileID() (v string) {\n\treturn p.FileID\n}\n\nfunc (p *UpdateDatasetOpenApiRequest) GetDescription() (v string) {\n\treturn p.Description\n}\n\nvar UpdateDatasetOpenApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateDatasetOpenApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateDatasetOpenApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateDatasetOpenApiRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t2:   \"name\",\n\t3:   \"file_id\",\n\t4:   \"description\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateDatasetOpenApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateDatasetOpenApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDatasetOpenApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatasetOpenApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetOpenApiRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetOpenApiRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileID = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetOpenApiRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetOpenApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateDatasetOpenApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatasetOpenApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatasetOpenApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDatasetOpenApiRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateDatasetOpenApiRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FileID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateDatasetOpenApiRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UpdateDatasetOpenApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDatasetOpenApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDatasetOpenApiRequest(%+v)\", *p)\n\n}\n\ntype UpdateDatasetOpenApiResponse struct {\n\tCode     *int64         `thrift:\"code,253,optional\" form:\"code\" json:\"code,omitempty\"`\n\tMsg      *string        `thrift:\"msg,254,optional\" form:\"msg\" json:\"msg,omitempty\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewUpdateDatasetOpenApiResponse() *UpdateDatasetOpenApiResponse {\n\treturn &UpdateDatasetOpenApiResponse{}\n}\n\nfunc (p *UpdateDatasetOpenApiResponse) InitDefault() {\n}\n\nvar UpdateDatasetOpenApiResponse_Code_DEFAULT int64\n\nfunc (p *UpdateDatasetOpenApiResponse) GetCode() (v int64) {\n\tif !p.IsSetCode() {\n\t\treturn UpdateDatasetOpenApiResponse_Code_DEFAULT\n\t}\n\treturn *p.Code\n}\n\nvar UpdateDatasetOpenApiResponse_Msg_DEFAULT string\n\nfunc (p *UpdateDatasetOpenApiResponse) GetMsg() (v string) {\n\tif !p.IsSetMsg() {\n\t\treturn UpdateDatasetOpenApiResponse_Msg_DEFAULT\n\t}\n\treturn *p.Msg\n}\n\nvar UpdateDatasetOpenApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateDatasetOpenApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateDatasetOpenApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateDatasetOpenApiResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateDatasetOpenApiResponse) IsSetCode() bool {\n\treturn p.Code != nil\n}\n\nfunc (p *UpdateDatasetOpenApiResponse) IsSetMsg() bool {\n\treturn p.Msg != nil\n}\n\nfunc (p *UpdateDatasetOpenApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateDatasetOpenApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDatasetOpenApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateDatasetOpenApiResponse[fieldId]))\n}\n\nfunc (p *UpdateDatasetOpenApiResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetOpenApiResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateDatasetOpenApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateDatasetOpenApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatasetOpenApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDatasetOpenApiResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCode() {\n\t\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Code); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateDatasetOpenApiResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateDatasetOpenApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDatasetOpenApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDatasetOpenApiResponse(%+v)\", *p)\n\n}\n\ntype DeleteDatasetOpenApiRequest struct {\n\tDatasetID int64      `thrift:\"dataset_id,1\" json:\"dataset_id,string\" path:\"dataset_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteDatasetOpenApiRequest() *DeleteDatasetOpenApiRequest {\n\treturn &DeleteDatasetOpenApiRequest{}\n}\n\nfunc (p *DeleteDatasetOpenApiRequest) InitDefault() {\n}\n\nfunc (p *DeleteDatasetOpenApiRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nvar DeleteDatasetOpenApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteDatasetOpenApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteDatasetOpenApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteDatasetOpenApiRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteDatasetOpenApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteDatasetOpenApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteDatasetOpenApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteDatasetOpenApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *DeleteDatasetOpenApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteDatasetOpenApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDatasetOpenApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteDatasetOpenApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteDatasetOpenApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteDatasetOpenApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteDatasetOpenApiRequest(%+v)\", *p)\n\n}\n\ntype DeleteDatasetOpenApiResponse struct {\n\tCode     *int64         `thrift:\"code,253,optional\" form:\"code\" json:\"code,omitempty\"`\n\tMsg      *string        `thrift:\"msg,254,optional\" form:\"msg\" json:\"msg,omitempty\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewDeleteDatasetOpenApiResponse() *DeleteDatasetOpenApiResponse {\n\treturn &DeleteDatasetOpenApiResponse{}\n}\n\nfunc (p *DeleteDatasetOpenApiResponse) InitDefault() {\n}\n\nvar DeleteDatasetOpenApiResponse_Code_DEFAULT int64\n\nfunc (p *DeleteDatasetOpenApiResponse) GetCode() (v int64) {\n\tif !p.IsSetCode() {\n\t\treturn DeleteDatasetOpenApiResponse_Code_DEFAULT\n\t}\n\treturn *p.Code\n}\n\nvar DeleteDatasetOpenApiResponse_Msg_DEFAULT string\n\nfunc (p *DeleteDatasetOpenApiResponse) GetMsg() (v string) {\n\tif !p.IsSetMsg() {\n\t\treturn DeleteDatasetOpenApiResponse_Msg_DEFAULT\n\t}\n\treturn *p.Msg\n}\n\nvar DeleteDatasetOpenApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteDatasetOpenApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteDatasetOpenApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteDatasetOpenApiResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteDatasetOpenApiResponse) IsSetCode() bool {\n\treturn p.Code != nil\n}\n\nfunc (p *DeleteDatasetOpenApiResponse) IsSetMsg() bool {\n\treturn p.Msg != nil\n}\n\nfunc (p *DeleteDatasetOpenApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteDatasetOpenApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteDatasetOpenApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteDatasetOpenApiResponse[fieldId]))\n}\n\nfunc (p *DeleteDatasetOpenApiResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteDatasetOpenApiResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeleteDatasetOpenApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteDatasetOpenApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDatasetOpenApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteDatasetOpenApiResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCode() {\n\t\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Code); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DeleteDatasetOpenApiResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DeleteDatasetOpenApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteDatasetOpenApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteDatasetOpenApiResponse(%+v)\", *p)\n\n}\n\ntype ListDatasetOpenApiRequest struct {\n\tName *string `thrift:\"name,1,optional\" json:\"name,omitempty\" query:\"name\"`\n\t// Type\n\tFormatType *FormatType `thrift:\"format_type,2,optional\" json:\"format_type,omitempty\" query:\"format_type\"`\n\tPageNum    *int32      `thrift:\"page_num,3,optional\" json:\"page_num,omitempty\" query:\"page_num\"`\n\tPageSize   *int32      `thrift:\"page_size,4,optional\" json:\"page_size,omitempty\" query:\"page_size\"`\n\tSpaceID    int64       `thrift:\"space_id,5\" json:\"space_id,string\" query:\"space_id\"`\n\t// Project ID\n\tProjectID *string    `thrift:\"project_id,6,optional\" json:\"project_id,omitempty\" query:\"project_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewListDatasetOpenApiRequest() *ListDatasetOpenApiRequest {\n\treturn &ListDatasetOpenApiRequest{}\n}\n\nfunc (p *ListDatasetOpenApiRequest) InitDefault() {\n}\n\nvar ListDatasetOpenApiRequest_Name_DEFAULT string\n\nfunc (p *ListDatasetOpenApiRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn ListDatasetOpenApiRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar ListDatasetOpenApiRequest_FormatType_DEFAULT FormatType\n\nfunc (p *ListDatasetOpenApiRequest) GetFormatType() (v FormatType) {\n\tif !p.IsSetFormatType() {\n\t\treturn ListDatasetOpenApiRequest_FormatType_DEFAULT\n\t}\n\treturn *p.FormatType\n}\n\nvar ListDatasetOpenApiRequest_PageNum_DEFAULT int32\n\nfunc (p *ListDatasetOpenApiRequest) GetPageNum() (v int32) {\n\tif !p.IsSetPageNum() {\n\t\treturn ListDatasetOpenApiRequest_PageNum_DEFAULT\n\t}\n\treturn *p.PageNum\n}\n\nvar ListDatasetOpenApiRequest_PageSize_DEFAULT int32\n\nfunc (p *ListDatasetOpenApiRequest) GetPageSize() (v int32) {\n\tif !p.IsSetPageSize() {\n\t\treturn ListDatasetOpenApiRequest_PageSize_DEFAULT\n\t}\n\treturn *p.PageSize\n}\n\nfunc (p *ListDatasetOpenApiRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar ListDatasetOpenApiRequest_ProjectID_DEFAULT string\n\nfunc (p *ListDatasetOpenApiRequest) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn ListDatasetOpenApiRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar ListDatasetOpenApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListDatasetOpenApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListDatasetOpenApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListDatasetOpenApiRequest = map[int16]string{\n\t1:   \"name\",\n\t2:   \"format_type\",\n\t3:   \"page_num\",\n\t4:   \"page_size\",\n\t5:   \"space_id\",\n\t6:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ListDatasetOpenApiRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *ListDatasetOpenApiRequest) IsSetFormatType() bool {\n\treturn p.FormatType != nil\n}\n\nfunc (p *ListDatasetOpenApiRequest) IsSetPageNum() bool {\n\treturn p.PageNum != nil\n}\n\nfunc (p *ListDatasetOpenApiRequest) IsSetPageSize() bool {\n\treturn p.PageSize != nil\n}\n\nfunc (p *ListDatasetOpenApiRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *ListDatasetOpenApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListDatasetOpenApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDatasetOpenApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListDatasetOpenApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ListDatasetOpenApiRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *FormatType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := FormatType(v)\n\t\t_field = &tmp\n\t}\n\tp.FormatType = _field\n\treturn nil\n}\nfunc (p *ListDatasetOpenApiRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PageNum = _field\n\treturn nil\n}\nfunc (p *ListDatasetOpenApiRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PageSize = _field\n\treturn nil\n}\nfunc (p *ListDatasetOpenApiRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ListDatasetOpenApiRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *ListDatasetOpenApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListDatasetOpenApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatasetOpenApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDatasetOpenApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDatasetOpenApiRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFormatType() {\n\t\tif err = oprot.WriteFieldBegin(\"format_type\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FormatType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListDatasetOpenApiRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPageNum() {\n\t\tif err = oprot.WriteFieldBegin(\"page_num\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PageNum); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListDatasetOpenApiRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPageSize() {\n\t\tif err = oprot.WriteFieldBegin(\"page_size\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PageSize); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListDatasetOpenApiRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListDatasetOpenApiRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ListDatasetOpenApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDatasetOpenApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDatasetOpenApiRequest(%+v)\", *p)\n\n}\n\ntype ListDatasetOpenApiResponse struct {\n\tData     *ListDatasetOpenApiData `thrift:\"data,1\" form:\"data\" json:\"data\"`\n\tCode     *int64                  `thrift:\"code,253,optional\" form:\"code\" json:\"code,omitempty\"`\n\tMsg      *string                 `thrift:\"msg,254,optional\" form:\"msg\" json:\"msg,omitempty\"`\n\tBaseResp *base.BaseResp          `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewListDatasetOpenApiResponse() *ListDatasetOpenApiResponse {\n\treturn &ListDatasetOpenApiResponse{}\n}\n\nfunc (p *ListDatasetOpenApiResponse) InitDefault() {\n}\n\nvar ListDatasetOpenApiResponse_Data_DEFAULT *ListDatasetOpenApiData\n\nfunc (p *ListDatasetOpenApiResponse) GetData() (v *ListDatasetOpenApiData) {\n\tif !p.IsSetData() {\n\t\treturn ListDatasetOpenApiResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar ListDatasetOpenApiResponse_Code_DEFAULT int64\n\nfunc (p *ListDatasetOpenApiResponse) GetCode() (v int64) {\n\tif !p.IsSetCode() {\n\t\treturn ListDatasetOpenApiResponse_Code_DEFAULT\n\t}\n\treturn *p.Code\n}\n\nvar ListDatasetOpenApiResponse_Msg_DEFAULT string\n\nfunc (p *ListDatasetOpenApiResponse) GetMsg() (v string) {\n\tif !p.IsSetMsg() {\n\t\treturn ListDatasetOpenApiResponse_Msg_DEFAULT\n\t}\n\treturn *p.Msg\n}\n\nvar ListDatasetOpenApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListDatasetOpenApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListDatasetOpenApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListDatasetOpenApiResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListDatasetOpenApiResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *ListDatasetOpenApiResponse) IsSetCode() bool {\n\treturn p.Code != nil\n}\n\nfunc (p *ListDatasetOpenApiResponse) IsSetMsg() bool {\n\treturn p.Msg != nil\n}\n\nfunc (p *ListDatasetOpenApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListDatasetOpenApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDatasetOpenApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListDatasetOpenApiResponse[fieldId]))\n}\n\nfunc (p *ListDatasetOpenApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListDatasetOpenApiData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ListDatasetOpenApiResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListDatasetOpenApiResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListDatasetOpenApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListDatasetOpenApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatasetOpenApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDatasetOpenApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDatasetOpenApiResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCode() {\n\t\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Code); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListDatasetOpenApiResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ListDatasetOpenApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListDatasetOpenApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDatasetOpenApiResponse(%+v)\", *p)\n\n}\n\ntype ListDatasetOpenApiData struct {\n\tDatasetList []*Dataset `thrift:\"dataset_list,1\" form:\"dataset_list\" json:\"dataset_list\"`\n\tTotalCount  int32      `thrift:\"total_count,2\" form:\"total_count\" json:\"total_count\"`\n}\n\nfunc NewListDatasetOpenApiData() *ListDatasetOpenApiData {\n\treturn &ListDatasetOpenApiData{}\n}\n\nfunc (p *ListDatasetOpenApiData) InitDefault() {\n}\n\nfunc (p *ListDatasetOpenApiData) GetDatasetList() (v []*Dataset) {\n\treturn p.DatasetList\n}\n\nfunc (p *ListDatasetOpenApiData) GetTotalCount() (v int32) {\n\treturn p.TotalCount\n}\n\nvar fieldIDToName_ListDatasetOpenApiData = map[int16]string{\n\t1: \"dataset_list\",\n\t2: \"total_count\",\n}\n\nfunc (p *ListDatasetOpenApiData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListDatasetOpenApiData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListDatasetOpenApiData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Dataset, 0, size)\n\tvalues := make([]Dataset, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DatasetList = _field\n\treturn nil\n}\nfunc (p *ListDatasetOpenApiData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TotalCount = _field\n\treturn nil\n}\n\nfunc (p *ListDatasetOpenApiData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatasetOpenApiData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListDatasetOpenApiData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.DatasetList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DatasetList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListDatasetOpenApiData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total_count\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TotalCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ListDatasetOpenApiData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListDatasetOpenApiData(%+v)\", *p)\n\n}\n\ntype ListPhotoOpenApiRequest struct {\n\tDatasetID int64 `thrift:\"dataset_id,1,required\" json:\"dataset_id,string,required\" path:\"dataset_id,required\"`\n\t// Page number, starting from 1\n\tPageNum  *int32 `thrift:\"page_num,2,optional\" json:\"page_num,omitempty\" query:\"page_num\"`\n\tPageSize *int32 `thrift:\"page_size,3,optional\" json:\"page_size,omitempty\" query:\"page_size\"`\n\t// Search keyword, searches image names and image descriptions\n\tKeyword *string `thrift:\"keyword,4,optional\" json:\"keyword,omitempty\" query:\"keyword\"`\n\t// Whether there is description information\n\tHasCaption *bool      `thrift:\"has_caption,5,optional\" json:\"has_caption,omitempty\" query:\"has_caption\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewListPhotoOpenApiRequest() *ListPhotoOpenApiRequest {\n\treturn &ListPhotoOpenApiRequest{}\n}\n\nfunc (p *ListPhotoOpenApiRequest) InitDefault() {\n}\n\nfunc (p *ListPhotoOpenApiRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nvar ListPhotoOpenApiRequest_PageNum_DEFAULT int32\n\nfunc (p *ListPhotoOpenApiRequest) GetPageNum() (v int32) {\n\tif !p.IsSetPageNum() {\n\t\treturn ListPhotoOpenApiRequest_PageNum_DEFAULT\n\t}\n\treturn *p.PageNum\n}\n\nvar ListPhotoOpenApiRequest_PageSize_DEFAULT int32\n\nfunc (p *ListPhotoOpenApiRequest) GetPageSize() (v int32) {\n\tif !p.IsSetPageSize() {\n\t\treturn ListPhotoOpenApiRequest_PageSize_DEFAULT\n\t}\n\treturn *p.PageSize\n}\n\nvar ListPhotoOpenApiRequest_Keyword_DEFAULT string\n\nfunc (p *ListPhotoOpenApiRequest) GetKeyword() (v string) {\n\tif !p.IsSetKeyword() {\n\t\treturn ListPhotoOpenApiRequest_Keyword_DEFAULT\n\t}\n\treturn *p.Keyword\n}\n\nvar ListPhotoOpenApiRequest_HasCaption_DEFAULT bool\n\nfunc (p *ListPhotoOpenApiRequest) GetHasCaption() (v bool) {\n\tif !p.IsSetHasCaption() {\n\t\treturn ListPhotoOpenApiRequest_HasCaption_DEFAULT\n\t}\n\treturn *p.HasCaption\n}\n\nvar ListPhotoOpenApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListPhotoOpenApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListPhotoOpenApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListPhotoOpenApiRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t2:   \"page_num\",\n\t3:   \"page_size\",\n\t4:   \"keyword\",\n\t5:   \"has_caption\",\n\t255: \"Base\",\n}\n\nfunc (p *ListPhotoOpenApiRequest) IsSetPageNum() bool {\n\treturn p.PageNum != nil\n}\n\nfunc (p *ListPhotoOpenApiRequest) IsSetPageSize() bool {\n\treturn p.PageSize != nil\n}\n\nfunc (p *ListPhotoOpenApiRequest) IsSetKeyword() bool {\n\treturn p.Keyword != nil\n}\n\nfunc (p *ListPhotoOpenApiRequest) IsSetHasCaption() bool {\n\treturn p.HasCaption != nil\n}\n\nfunc (p *ListPhotoOpenApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListPhotoOpenApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDatasetID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDatasetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDatasetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListPhotoOpenApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListPhotoOpenApiRequest[fieldId]))\n}\n\nfunc (p *ListPhotoOpenApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *ListPhotoOpenApiRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PageNum = _field\n\treturn nil\n}\nfunc (p *ListPhotoOpenApiRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PageSize = _field\n\treturn nil\n}\nfunc (p *ListPhotoOpenApiRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *ListPhotoOpenApiRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HasCaption = _field\n\treturn nil\n}\nfunc (p *ListPhotoOpenApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListPhotoOpenApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPhotoOpenApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListPhotoOpenApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListPhotoOpenApiRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPageNum() {\n\t\tif err = oprot.WriteFieldBegin(\"page_num\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PageNum); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListPhotoOpenApiRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPageSize() {\n\t\tif err = oprot.WriteFieldBegin(\"page_size\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PageSize); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListPhotoOpenApiRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKeyword() {\n\t\tif err = oprot.WriteFieldBegin(\"keyword\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Keyword); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListPhotoOpenApiRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHasCaption() {\n\t\tif err = oprot.WriteFieldBegin(\"has_caption\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HasCaption); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListPhotoOpenApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListPhotoOpenApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListPhotoOpenApiRequest(%+v)\", *p)\n\n}\n\ntype ListPhotoOpenApiResponse struct {\n\tData     *ListPhotoOpenApiData `thrift:\"data,1\" form:\"data\" json:\"data\"`\n\tCode     *int64                `thrift:\"code,253,optional\" form:\"code\" json:\"code,omitempty\"`\n\tMsg      *string               `thrift:\"msg,254,optional\" form:\"msg\" json:\"msg,omitempty\"`\n\tBaseResp *base.BaseResp        `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewListPhotoOpenApiResponse() *ListPhotoOpenApiResponse {\n\treturn &ListPhotoOpenApiResponse{}\n}\n\nfunc (p *ListPhotoOpenApiResponse) InitDefault() {\n}\n\nvar ListPhotoOpenApiResponse_Data_DEFAULT *ListPhotoOpenApiData\n\nfunc (p *ListPhotoOpenApiResponse) GetData() (v *ListPhotoOpenApiData) {\n\tif !p.IsSetData() {\n\t\treturn ListPhotoOpenApiResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar ListPhotoOpenApiResponse_Code_DEFAULT int64\n\nfunc (p *ListPhotoOpenApiResponse) GetCode() (v int64) {\n\tif !p.IsSetCode() {\n\t\treturn ListPhotoOpenApiResponse_Code_DEFAULT\n\t}\n\treturn *p.Code\n}\n\nvar ListPhotoOpenApiResponse_Msg_DEFAULT string\n\nfunc (p *ListPhotoOpenApiResponse) GetMsg() (v string) {\n\tif !p.IsSetMsg() {\n\t\treturn ListPhotoOpenApiResponse_Msg_DEFAULT\n\t}\n\treturn *p.Msg\n}\n\nvar ListPhotoOpenApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListPhotoOpenApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListPhotoOpenApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListPhotoOpenApiResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListPhotoOpenApiResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *ListPhotoOpenApiResponse) IsSetCode() bool {\n\treturn p.Code != nil\n}\n\nfunc (p *ListPhotoOpenApiResponse) IsSetMsg() bool {\n\treturn p.Msg != nil\n}\n\nfunc (p *ListPhotoOpenApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListPhotoOpenApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListPhotoOpenApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListPhotoOpenApiResponse[fieldId]))\n}\n\nfunc (p *ListPhotoOpenApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListPhotoOpenApiData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ListPhotoOpenApiResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListPhotoOpenApiResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListPhotoOpenApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListPhotoOpenApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPhotoOpenApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListPhotoOpenApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListPhotoOpenApiResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCode() {\n\t\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Code); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListPhotoOpenApiResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ListPhotoOpenApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListPhotoOpenApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListPhotoOpenApiResponse(%+v)\", *p)\n\n}\n\ntype ListPhotoOpenApiData struct {\n\tPhotoInfos []*PhotoInfo `thrift:\"photo_infos,1\" form:\"photo_infos\" json:\"photo_infos\"`\n\tTotalCount int32        `thrift:\"total_count,2\" form:\"total_count\" json:\"total_count\"`\n}\n\nfunc NewListPhotoOpenApiData() *ListPhotoOpenApiData {\n\treturn &ListPhotoOpenApiData{}\n}\n\nfunc (p *ListPhotoOpenApiData) InitDefault() {\n}\n\nfunc (p *ListPhotoOpenApiData) GetPhotoInfos() (v []*PhotoInfo) {\n\treturn p.PhotoInfos\n}\n\nfunc (p *ListPhotoOpenApiData) GetTotalCount() (v int32) {\n\treturn p.TotalCount\n}\n\nvar fieldIDToName_ListPhotoOpenApiData = map[int16]string{\n\t1: \"photo_infos\",\n\t2: \"total_count\",\n}\n\nfunc (p *ListPhotoOpenApiData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListPhotoOpenApiData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListPhotoOpenApiData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PhotoInfo, 0, size)\n\tvalues := make([]PhotoInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PhotoInfos = _field\n\treturn nil\n}\nfunc (p *ListPhotoOpenApiData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TotalCount = _field\n\treturn nil\n}\n\nfunc (p *ListPhotoOpenApiData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPhotoOpenApiData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListPhotoOpenApiData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"photo_infos\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PhotoInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PhotoInfos {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListPhotoOpenApiData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total_count\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TotalCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ListPhotoOpenApiData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListPhotoOpenApiData(%+v)\", *p)\n\n}\n\ntype GetDocumentProgressOpenApiRequest struct {\n\tDocumentIds []int64    `thrift:\"document_ids,1\" form:\"document_ids\" json:\"document_ids,string\"`\n\tDatasetID   int64      `thrift:\"dataset_id,2\" json:\"dataset_id,string\" path:\"dataset_id\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetDocumentProgressOpenApiRequest() *GetDocumentProgressOpenApiRequest {\n\treturn &GetDocumentProgressOpenApiRequest{}\n}\n\nfunc (p *GetDocumentProgressOpenApiRequest) InitDefault() {\n}\n\nfunc (p *GetDocumentProgressOpenApiRequest) GetDocumentIds() (v []int64) {\n\treturn p.DocumentIds\n}\n\nfunc (p *GetDocumentProgressOpenApiRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nvar GetDocumentProgressOpenApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetDocumentProgressOpenApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetDocumentProgressOpenApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetDocumentProgressOpenApiRequest = map[int16]string{\n\t1:   \"document_ids\",\n\t2:   \"dataset_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetDocumentProgressOpenApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetDocumentProgressOpenApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDocumentProgressOpenApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressOpenApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DocumentIds = _field\n\treturn nil\n}\nfunc (p *GetDocumentProgressOpenApiRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *GetDocumentProgressOpenApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetDocumentProgressOpenApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentProgressOpenApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressOpenApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_ids\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I64, len(p.DocumentIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DocumentIds {\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDocumentProgressOpenApiRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDocumentProgressOpenApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressOpenApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDocumentProgressOpenApiRequest(%+v)\", *p)\n\n}\n\ntype GetDocumentProgressOpenApiResponse struct {\n\tData     *GetDocumentProgressOpenApiData `thrift:\"Data,1\" form:\"data\" json:\"data\"`\n\tCode     int64                           `thrift:\"Code,253,required\" form:\"code,required\" json:\"code,required\"`\n\tMsg      string                          `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\"`\n\tBaseResp *base.BaseResp                  `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetDocumentProgressOpenApiResponse() *GetDocumentProgressOpenApiResponse {\n\treturn &GetDocumentProgressOpenApiResponse{}\n}\n\nfunc (p *GetDocumentProgressOpenApiResponse) InitDefault() {\n}\n\nvar GetDocumentProgressOpenApiResponse_Data_DEFAULT *GetDocumentProgressOpenApiData\n\nfunc (p *GetDocumentProgressOpenApiResponse) GetData() (v *GetDocumentProgressOpenApiData) {\n\tif !p.IsSetData() {\n\t\treturn GetDocumentProgressOpenApiResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetDocumentProgressOpenApiResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetDocumentProgressOpenApiResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetDocumentProgressOpenApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetDocumentProgressOpenApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetDocumentProgressOpenApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetDocumentProgressOpenApiResponse = map[int16]string{\n\t1:   \"Data\",\n\t253: \"Code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetDocumentProgressOpenApiResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetDocumentProgressOpenApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetDocumentProgressOpenApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDocumentProgressOpenApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDocumentProgressOpenApiResponse[fieldId]))\n}\n\nfunc (p *GetDocumentProgressOpenApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDocumentProgressOpenApiData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetDocumentProgressOpenApiResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetDocumentProgressOpenApiResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetDocumentProgressOpenApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetDocumentProgressOpenApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentProgressOpenApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressOpenApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDocumentProgressOpenApiResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetDocumentProgressOpenApiResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetDocumentProgressOpenApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressOpenApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDocumentProgressOpenApiResponse(%+v)\", *p)\n\n}\n\ntype GetDocumentProgressOpenApiData struct {\n\tData []*DocumentProgress `thrift:\"data,1\" form:\"data\" json:\"data\"`\n}\n\nfunc NewGetDocumentProgressOpenApiData() *GetDocumentProgressOpenApiData {\n\treturn &GetDocumentProgressOpenApiData{}\n}\n\nfunc (p *GetDocumentProgressOpenApiData) InitDefault() {\n}\n\nfunc (p *GetDocumentProgressOpenApiData) GetData() (v []*DocumentProgress) {\n\treturn p.Data\n}\n\nvar fieldIDToName_GetDocumentProgressOpenApiData = map[int16]string{\n\t1: \"data\",\n}\n\nfunc (p *GetDocumentProgressOpenApiData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDocumentProgressOpenApiData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressOpenApiData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DocumentProgress, 0, size)\n\tvalues := make([]DocumentProgress, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\n\nfunc (p *GetDocumentProgressOpenApiData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentProgressOpenApiData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressOpenApiData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *GetDocumentProgressOpenApiData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDocumentProgressOpenApiData(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/data/knowledge/knowledge_svc.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage knowledge\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype DatasetService interface {\n\t// Knowledge base related\n\tGetIconForDataset(ctx context.Context, req *GetIconRequest) (r *GetIconResponse, err error)\n\n\tCreateDataset(ctx context.Context, req *CreateDatasetRequest) (r *CreateDatasetResponse, err error)\n\n\tDatasetDetail(ctx context.Context, req *DatasetDetailRequest) (r *DatasetDetailResponse, err error)\n\n\tListDataset(ctx context.Context, req *ListDatasetRequest) (r *ListDatasetResponse, err error)\n\n\tDeleteDataset(ctx context.Context, req *DeleteDatasetRequest) (r *DeleteDatasetResponse, err error)\n\n\tUpdateDataset(ctx context.Context, req *UpdateDatasetRequest) (r *UpdateDatasetResponse, err error)\n\n\tGetModeConfig(ctx context.Context, req *GetModeConfigRequest) (r *GetModeConfigResponse, err error)\n\t// Document related\n\tCreateDocument(ctx context.Context, req *CreateDocumentRequest) (r *CreateDocumentResponse, err error)\n\n\tListDocument(ctx context.Context, req *ListDocumentRequest) (r *ListDocumentResponse, err error)\n\n\tDeleteDocument(ctx context.Context, req *DeleteDocumentRequest) (r *DeleteDocumentResponse, err error)\n\n\tUpdateDocument(ctx context.Context, req *UpdateDocumentRequest) (r *UpdateDocumentResponse, err error)\n\n\tGetDocumentProgress(ctx context.Context, req *GetDocumentProgressRequest) (r *GetDocumentProgressResponse, err error)\n\n\tResegment(ctx context.Context, req *ResegmentRequest) (r *ResegmentResponse, err error)\n\n\tUpdatePhotoCaption(ctx context.Context, req *UpdatePhotoCaptionRequest) (r *UpdatePhotoCaptionResponse, err error)\n\n\tListPhoto(ctx context.Context, req *ListPhotoRequest) (r *ListPhotoResponse, err error)\n\n\tPhotoDetail(ctx context.Context, req *PhotoDetailRequest) (r *PhotoDetailResponse, err error)\n\n\tExtractPhotoCaption(ctx context.Context, req *ExtractPhotoCaptionRequest) (r *ExtractPhotoCaptionResponse, err error)\n\n\tGetTableSchema(ctx context.Context, req *GetTableSchemaRequest) (r *GetTableSchemaResponse, err error)\n\n\tValidateTableSchema(ctx context.Context, req *ValidateTableSchemaRequest) (r *ValidateTableSchemaResponse, err error)\n\n\tGetDocumentTableInfo(ctx context.Context, req *GetDocumentTableInfoRequest) (r *GetDocumentTableInfoResponse, err error)\n\t// Slice related\n\tDeleteSlice(ctx context.Context, req *DeleteSliceRequest) (r *DeleteSliceResponse, err error)\n\n\tCreateSlice(ctx context.Context, req *CreateSliceRequest) (r *CreateSliceResponse, err error)\n\n\tUpdateSlice(ctx context.Context, req *UpdateSliceRequest) (r *UpdateSliceResponse, err error)\n\n\tListSlice(ctx context.Context, req *ListSliceRequest) (r *ListSliceResponse, err error)\n\t/** Pre-sharding related **/\n\tCreateDocumentReview(ctx context.Context, req *CreateDocumentReviewRequest) (r *CreateDocumentReviewResponse, err error)\n\n\tMGetDocumentReview(ctx context.Context, req *MGetDocumentReviewRequest) (r *MGetDocumentReviewResponse, err error)\n\n\tSaveDocumentReview(ctx context.Context, req *SaveDocumentReviewRequest) (r *SaveDocumentReviewResponse, err error)\n\n\tCreateDocumentOpenAPI(ctx context.Context, req *CreateDocumentRequest) (r *CreateDocumentResponse, err error)\n\n\tUpdateDocumentOpenAPI(ctx context.Context, req *UpdateDocumentRequest) (r *UpdateDocumentResponse, err error)\n\n\tListDocumentOpenAPI(ctx context.Context, req *ListDocumentRequest) (r *ListDocumentResponse, err error)\n\n\tCreateDatasetOpenAPI(ctx context.Context, req *CreateDatasetOpenApiRequest) (r *CreateDatasetOpenApiResponse, err error)\n\n\tListDatasetOpenAPI(ctx context.Context, req *ListDatasetOpenApiRequest) (r *ListDatasetOpenApiResponse, err error)\n\n\tUpdateDatasetOpenAPI(ctx context.Context, req *UpdateDatasetOpenApiRequest) (r *UpdateDatasetOpenApiResponse, err error)\n\n\tDeleteDatasetOpenAPI(ctx context.Context, req *DeleteDatasetOpenApiRequest) (r *DeleteDatasetOpenApiResponse, err error)\n\n\tListPhotoDocumentOpenAPI(ctx context.Context, req *ListPhotoOpenApiRequest) (r *ListPhotoOpenApiResponse, err error)\n\n\tGetDocumentProgressOpenAPI(ctx context.Context, req *GetDocumentProgressOpenApiRequest) (r *GetDocumentProgressOpenApiResponse, err error)\n}\n\ntype DatasetServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewDatasetServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *DatasetServiceClient {\n\treturn &DatasetServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewDatasetServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *DatasetServiceClient {\n\treturn &DatasetServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewDatasetServiceClient(c thrift.TClient) *DatasetServiceClient {\n\treturn &DatasetServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *DatasetServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *DatasetServiceClient) GetIconForDataset(ctx context.Context, req *GetIconRequest) (r *GetIconResponse, err error) {\n\tvar _args DatasetServiceGetIconForDatasetArgs\n\t_args.Req = req\n\tvar _result DatasetServiceGetIconForDatasetResult\n\tif err = p.Client_().Call(ctx, \"GetIconForDataset\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) CreateDataset(ctx context.Context, req *CreateDatasetRequest) (r *CreateDatasetResponse, err error) {\n\tvar _args DatasetServiceCreateDatasetArgs\n\t_args.Req = req\n\tvar _result DatasetServiceCreateDatasetResult\n\tif err = p.Client_().Call(ctx, \"CreateDataset\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) DatasetDetail(ctx context.Context, req *DatasetDetailRequest) (r *DatasetDetailResponse, err error) {\n\tvar _args DatasetServiceDatasetDetailArgs\n\t_args.Req = req\n\tvar _result DatasetServiceDatasetDetailResult\n\tif err = p.Client_().Call(ctx, \"DatasetDetail\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) ListDataset(ctx context.Context, req *ListDatasetRequest) (r *ListDatasetResponse, err error) {\n\tvar _args DatasetServiceListDatasetArgs\n\t_args.Req = req\n\tvar _result DatasetServiceListDatasetResult\n\tif err = p.Client_().Call(ctx, \"ListDataset\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) DeleteDataset(ctx context.Context, req *DeleteDatasetRequest) (r *DeleteDatasetResponse, err error) {\n\tvar _args DatasetServiceDeleteDatasetArgs\n\t_args.Req = req\n\tvar _result DatasetServiceDeleteDatasetResult\n\tif err = p.Client_().Call(ctx, \"DeleteDataset\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) UpdateDataset(ctx context.Context, req *UpdateDatasetRequest) (r *UpdateDatasetResponse, err error) {\n\tvar _args DatasetServiceUpdateDatasetArgs\n\t_args.Req = req\n\tvar _result DatasetServiceUpdateDatasetResult\n\tif err = p.Client_().Call(ctx, \"UpdateDataset\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) GetModeConfig(ctx context.Context, req *GetModeConfigRequest) (r *GetModeConfigResponse, err error) {\n\tvar _args DatasetServiceGetModeConfigArgs\n\t_args.Req = req\n\tvar _result DatasetServiceGetModeConfigResult\n\tif err = p.Client_().Call(ctx, \"GetModeConfig\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) CreateDocument(ctx context.Context, req *CreateDocumentRequest) (r *CreateDocumentResponse, err error) {\n\tvar _args DatasetServiceCreateDocumentArgs\n\t_args.Req = req\n\tvar _result DatasetServiceCreateDocumentResult\n\tif err = p.Client_().Call(ctx, \"CreateDocument\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) ListDocument(ctx context.Context, req *ListDocumentRequest) (r *ListDocumentResponse, err error) {\n\tvar _args DatasetServiceListDocumentArgs\n\t_args.Req = req\n\tvar _result DatasetServiceListDocumentResult\n\tif err = p.Client_().Call(ctx, \"ListDocument\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) DeleteDocument(ctx context.Context, req *DeleteDocumentRequest) (r *DeleteDocumentResponse, err error) {\n\tvar _args DatasetServiceDeleteDocumentArgs\n\t_args.Req = req\n\tvar _result DatasetServiceDeleteDocumentResult\n\tif err = p.Client_().Call(ctx, \"DeleteDocument\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) UpdateDocument(ctx context.Context, req *UpdateDocumentRequest) (r *UpdateDocumentResponse, err error) {\n\tvar _args DatasetServiceUpdateDocumentArgs\n\t_args.Req = req\n\tvar _result DatasetServiceUpdateDocumentResult\n\tif err = p.Client_().Call(ctx, \"UpdateDocument\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) GetDocumentProgress(ctx context.Context, req *GetDocumentProgressRequest) (r *GetDocumentProgressResponse, err error) {\n\tvar _args DatasetServiceGetDocumentProgressArgs\n\t_args.Req = req\n\tvar _result DatasetServiceGetDocumentProgressResult\n\tif err = p.Client_().Call(ctx, \"GetDocumentProgress\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) Resegment(ctx context.Context, req *ResegmentRequest) (r *ResegmentResponse, err error) {\n\tvar _args DatasetServiceResegmentArgs\n\t_args.Req = req\n\tvar _result DatasetServiceResegmentResult\n\tif err = p.Client_().Call(ctx, \"Resegment\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) UpdatePhotoCaption(ctx context.Context, req *UpdatePhotoCaptionRequest) (r *UpdatePhotoCaptionResponse, err error) {\n\tvar _args DatasetServiceUpdatePhotoCaptionArgs\n\t_args.Req = req\n\tvar _result DatasetServiceUpdatePhotoCaptionResult\n\tif err = p.Client_().Call(ctx, \"UpdatePhotoCaption\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) ListPhoto(ctx context.Context, req *ListPhotoRequest) (r *ListPhotoResponse, err error) {\n\tvar _args DatasetServiceListPhotoArgs\n\t_args.Req = req\n\tvar _result DatasetServiceListPhotoResult\n\tif err = p.Client_().Call(ctx, \"ListPhoto\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) PhotoDetail(ctx context.Context, req *PhotoDetailRequest) (r *PhotoDetailResponse, err error) {\n\tvar _args DatasetServicePhotoDetailArgs\n\t_args.Req = req\n\tvar _result DatasetServicePhotoDetailResult\n\tif err = p.Client_().Call(ctx, \"PhotoDetail\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) ExtractPhotoCaption(ctx context.Context, req *ExtractPhotoCaptionRequest) (r *ExtractPhotoCaptionResponse, err error) {\n\tvar _args DatasetServiceExtractPhotoCaptionArgs\n\t_args.Req = req\n\tvar _result DatasetServiceExtractPhotoCaptionResult\n\tif err = p.Client_().Call(ctx, \"ExtractPhotoCaption\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) GetTableSchema(ctx context.Context, req *GetTableSchemaRequest) (r *GetTableSchemaResponse, err error) {\n\tvar _args DatasetServiceGetTableSchemaArgs\n\t_args.Req = req\n\tvar _result DatasetServiceGetTableSchemaResult\n\tif err = p.Client_().Call(ctx, \"GetTableSchema\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) ValidateTableSchema(ctx context.Context, req *ValidateTableSchemaRequest) (r *ValidateTableSchemaResponse, err error) {\n\tvar _args DatasetServiceValidateTableSchemaArgs\n\t_args.Req = req\n\tvar _result DatasetServiceValidateTableSchemaResult\n\tif err = p.Client_().Call(ctx, \"ValidateTableSchema\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) GetDocumentTableInfo(ctx context.Context, req *GetDocumentTableInfoRequest) (r *GetDocumentTableInfoResponse, err error) {\n\tvar _args DatasetServiceGetDocumentTableInfoArgs\n\t_args.Req = req\n\tvar _result DatasetServiceGetDocumentTableInfoResult\n\tif err = p.Client_().Call(ctx, \"GetDocumentTableInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) DeleteSlice(ctx context.Context, req *DeleteSliceRequest) (r *DeleteSliceResponse, err error) {\n\tvar _args DatasetServiceDeleteSliceArgs\n\t_args.Req = req\n\tvar _result DatasetServiceDeleteSliceResult\n\tif err = p.Client_().Call(ctx, \"DeleteSlice\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) CreateSlice(ctx context.Context, req *CreateSliceRequest) (r *CreateSliceResponse, err error) {\n\tvar _args DatasetServiceCreateSliceArgs\n\t_args.Req = req\n\tvar _result DatasetServiceCreateSliceResult\n\tif err = p.Client_().Call(ctx, \"CreateSlice\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) UpdateSlice(ctx context.Context, req *UpdateSliceRequest) (r *UpdateSliceResponse, err error) {\n\tvar _args DatasetServiceUpdateSliceArgs\n\t_args.Req = req\n\tvar _result DatasetServiceUpdateSliceResult\n\tif err = p.Client_().Call(ctx, \"UpdateSlice\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) ListSlice(ctx context.Context, req *ListSliceRequest) (r *ListSliceResponse, err error) {\n\tvar _args DatasetServiceListSliceArgs\n\t_args.Req = req\n\tvar _result DatasetServiceListSliceResult\n\tif err = p.Client_().Call(ctx, \"ListSlice\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) CreateDocumentReview(ctx context.Context, req *CreateDocumentReviewRequest) (r *CreateDocumentReviewResponse, err error) {\n\tvar _args DatasetServiceCreateDocumentReviewArgs\n\t_args.Req = req\n\tvar _result DatasetServiceCreateDocumentReviewResult\n\tif err = p.Client_().Call(ctx, \"CreateDocumentReview\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) MGetDocumentReview(ctx context.Context, req *MGetDocumentReviewRequest) (r *MGetDocumentReviewResponse, err error) {\n\tvar _args DatasetServiceMGetDocumentReviewArgs\n\t_args.Req = req\n\tvar _result DatasetServiceMGetDocumentReviewResult\n\tif err = p.Client_().Call(ctx, \"MGetDocumentReview\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) SaveDocumentReview(ctx context.Context, req *SaveDocumentReviewRequest) (r *SaveDocumentReviewResponse, err error) {\n\tvar _args DatasetServiceSaveDocumentReviewArgs\n\t_args.Req = req\n\tvar _result DatasetServiceSaveDocumentReviewResult\n\tif err = p.Client_().Call(ctx, \"SaveDocumentReview\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) CreateDocumentOpenAPI(ctx context.Context, req *CreateDocumentRequest) (r *CreateDocumentResponse, err error) {\n\tvar _args DatasetServiceCreateDocumentOpenAPIArgs\n\t_args.Req = req\n\tvar _result DatasetServiceCreateDocumentOpenAPIResult\n\tif err = p.Client_().Call(ctx, \"CreateDocumentOpenAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) UpdateDocumentOpenAPI(ctx context.Context, req *UpdateDocumentRequest) (r *UpdateDocumentResponse, err error) {\n\tvar _args DatasetServiceUpdateDocumentOpenAPIArgs\n\t_args.Req = req\n\tvar _result DatasetServiceUpdateDocumentOpenAPIResult\n\tif err = p.Client_().Call(ctx, \"UpdateDocumentOpenAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) ListDocumentOpenAPI(ctx context.Context, req *ListDocumentRequest) (r *ListDocumentResponse, err error) {\n\tvar _args DatasetServiceListDocumentOpenAPIArgs\n\t_args.Req = req\n\tvar _result DatasetServiceListDocumentOpenAPIResult\n\tif err = p.Client_().Call(ctx, \"ListDocumentOpenAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) CreateDatasetOpenAPI(ctx context.Context, req *CreateDatasetOpenApiRequest) (r *CreateDatasetOpenApiResponse, err error) {\n\tvar _args DatasetServiceCreateDatasetOpenAPIArgs\n\t_args.Req = req\n\tvar _result DatasetServiceCreateDatasetOpenAPIResult\n\tif err = p.Client_().Call(ctx, \"CreateDatasetOpenAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) ListDatasetOpenAPI(ctx context.Context, req *ListDatasetOpenApiRequest) (r *ListDatasetOpenApiResponse, err error) {\n\tvar _args DatasetServiceListDatasetOpenAPIArgs\n\t_args.Req = req\n\tvar _result DatasetServiceListDatasetOpenAPIResult\n\tif err = p.Client_().Call(ctx, \"ListDatasetOpenAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) UpdateDatasetOpenAPI(ctx context.Context, req *UpdateDatasetOpenApiRequest) (r *UpdateDatasetOpenApiResponse, err error) {\n\tvar _args DatasetServiceUpdateDatasetOpenAPIArgs\n\t_args.Req = req\n\tvar _result DatasetServiceUpdateDatasetOpenAPIResult\n\tif err = p.Client_().Call(ctx, \"UpdateDatasetOpenAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) DeleteDatasetOpenAPI(ctx context.Context, req *DeleteDatasetOpenApiRequest) (r *DeleteDatasetOpenApiResponse, err error) {\n\tvar _args DatasetServiceDeleteDatasetOpenAPIArgs\n\t_args.Req = req\n\tvar _result DatasetServiceDeleteDatasetOpenAPIResult\n\tif err = p.Client_().Call(ctx, \"DeleteDatasetOpenAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) ListPhotoDocumentOpenAPI(ctx context.Context, req *ListPhotoOpenApiRequest) (r *ListPhotoOpenApiResponse, err error) {\n\tvar _args DatasetServiceListPhotoDocumentOpenAPIArgs\n\t_args.Req = req\n\tvar _result DatasetServiceListPhotoDocumentOpenAPIResult\n\tif err = p.Client_().Call(ctx, \"ListPhotoDocumentOpenAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *DatasetServiceClient) GetDocumentProgressOpenAPI(ctx context.Context, req *GetDocumentProgressOpenApiRequest) (r *GetDocumentProgressOpenApiResponse, err error) {\n\tvar _args DatasetServiceGetDocumentProgressOpenAPIArgs\n\t_args.Req = req\n\tvar _result DatasetServiceGetDocumentProgressOpenAPIResult\n\tif err = p.Client_().Call(ctx, \"GetDocumentProgressOpenAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype DatasetServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      DatasetService\n}\n\nfunc (p *DatasetServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *DatasetServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *DatasetServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewDatasetServiceProcessor(handler DatasetService) *DatasetServiceProcessor {\n\tself := &DatasetServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"GetIconForDataset\", &datasetServiceProcessorGetIconForDataset{handler: handler})\n\tself.AddToProcessorMap(\"CreateDataset\", &datasetServiceProcessorCreateDataset{handler: handler})\n\tself.AddToProcessorMap(\"DatasetDetail\", &datasetServiceProcessorDatasetDetail{handler: handler})\n\tself.AddToProcessorMap(\"ListDataset\", &datasetServiceProcessorListDataset{handler: handler})\n\tself.AddToProcessorMap(\"DeleteDataset\", &datasetServiceProcessorDeleteDataset{handler: handler})\n\tself.AddToProcessorMap(\"UpdateDataset\", &datasetServiceProcessorUpdateDataset{handler: handler})\n\tself.AddToProcessorMap(\"GetModeConfig\", &datasetServiceProcessorGetModeConfig{handler: handler})\n\tself.AddToProcessorMap(\"CreateDocument\", &datasetServiceProcessorCreateDocument{handler: handler})\n\tself.AddToProcessorMap(\"ListDocument\", &datasetServiceProcessorListDocument{handler: handler})\n\tself.AddToProcessorMap(\"DeleteDocument\", &datasetServiceProcessorDeleteDocument{handler: handler})\n\tself.AddToProcessorMap(\"UpdateDocument\", &datasetServiceProcessorUpdateDocument{handler: handler})\n\tself.AddToProcessorMap(\"GetDocumentProgress\", &datasetServiceProcessorGetDocumentProgress{handler: handler})\n\tself.AddToProcessorMap(\"Resegment\", &datasetServiceProcessorResegment{handler: handler})\n\tself.AddToProcessorMap(\"UpdatePhotoCaption\", &datasetServiceProcessorUpdatePhotoCaption{handler: handler})\n\tself.AddToProcessorMap(\"ListPhoto\", &datasetServiceProcessorListPhoto{handler: handler})\n\tself.AddToProcessorMap(\"PhotoDetail\", &datasetServiceProcessorPhotoDetail{handler: handler})\n\tself.AddToProcessorMap(\"ExtractPhotoCaption\", &datasetServiceProcessorExtractPhotoCaption{handler: handler})\n\tself.AddToProcessorMap(\"GetTableSchema\", &datasetServiceProcessorGetTableSchema{handler: handler})\n\tself.AddToProcessorMap(\"ValidateTableSchema\", &datasetServiceProcessorValidateTableSchema{handler: handler})\n\tself.AddToProcessorMap(\"GetDocumentTableInfo\", &datasetServiceProcessorGetDocumentTableInfo{handler: handler})\n\tself.AddToProcessorMap(\"DeleteSlice\", &datasetServiceProcessorDeleteSlice{handler: handler})\n\tself.AddToProcessorMap(\"CreateSlice\", &datasetServiceProcessorCreateSlice{handler: handler})\n\tself.AddToProcessorMap(\"UpdateSlice\", &datasetServiceProcessorUpdateSlice{handler: handler})\n\tself.AddToProcessorMap(\"ListSlice\", &datasetServiceProcessorListSlice{handler: handler})\n\tself.AddToProcessorMap(\"CreateDocumentReview\", &datasetServiceProcessorCreateDocumentReview{handler: handler})\n\tself.AddToProcessorMap(\"MGetDocumentReview\", &datasetServiceProcessorMGetDocumentReview{handler: handler})\n\tself.AddToProcessorMap(\"SaveDocumentReview\", &datasetServiceProcessorSaveDocumentReview{handler: handler})\n\tself.AddToProcessorMap(\"CreateDocumentOpenAPI\", &datasetServiceProcessorCreateDocumentOpenAPI{handler: handler})\n\tself.AddToProcessorMap(\"UpdateDocumentOpenAPI\", &datasetServiceProcessorUpdateDocumentOpenAPI{handler: handler})\n\tself.AddToProcessorMap(\"ListDocumentOpenAPI\", &datasetServiceProcessorListDocumentOpenAPI{handler: handler})\n\tself.AddToProcessorMap(\"CreateDatasetOpenAPI\", &datasetServiceProcessorCreateDatasetOpenAPI{handler: handler})\n\tself.AddToProcessorMap(\"ListDatasetOpenAPI\", &datasetServiceProcessorListDatasetOpenAPI{handler: handler})\n\tself.AddToProcessorMap(\"UpdateDatasetOpenAPI\", &datasetServiceProcessorUpdateDatasetOpenAPI{handler: handler})\n\tself.AddToProcessorMap(\"DeleteDatasetOpenAPI\", &datasetServiceProcessorDeleteDatasetOpenAPI{handler: handler})\n\tself.AddToProcessorMap(\"ListPhotoDocumentOpenAPI\", &datasetServiceProcessorListPhotoDocumentOpenAPI{handler: handler})\n\tself.AddToProcessorMap(\"GetDocumentProgressOpenAPI\", &datasetServiceProcessorGetDocumentProgressOpenAPI{handler: handler})\n\treturn self\n}\nfunc (p *DatasetServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype datasetServiceProcessorGetIconForDataset struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorGetIconForDataset) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceGetIconForDatasetArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetIconForDataset\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceGetIconForDatasetResult{}\n\tvar retval *GetIconResponse\n\tif retval, err2 = p.handler.GetIconForDataset(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetIconForDataset: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetIconForDataset\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetIconForDataset\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorCreateDataset struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorCreateDataset) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceCreateDatasetArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateDataset\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceCreateDatasetResult{}\n\tvar retval *CreateDatasetResponse\n\tif retval, err2 = p.handler.CreateDataset(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateDataset: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateDataset\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateDataset\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorDatasetDetail struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorDatasetDetail) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceDatasetDetailArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DatasetDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceDatasetDetailResult{}\n\tvar retval *DatasetDetailResponse\n\tif retval, err2 = p.handler.DatasetDetail(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DatasetDetail: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DatasetDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DatasetDetail\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorListDataset struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorListDataset) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceListDatasetArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListDataset\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceListDatasetResult{}\n\tvar retval *ListDatasetResponse\n\tif retval, err2 = p.handler.ListDataset(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListDataset: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListDataset\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListDataset\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorDeleteDataset struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorDeleteDataset) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceDeleteDatasetArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteDataset\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceDeleteDatasetResult{}\n\tvar retval *DeleteDatasetResponse\n\tif retval, err2 = p.handler.DeleteDataset(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteDataset: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteDataset\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteDataset\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorUpdateDataset struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorUpdateDataset) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceUpdateDatasetArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDataset\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceUpdateDatasetResult{}\n\tvar retval *UpdateDatasetResponse\n\tif retval, err2 = p.handler.UpdateDataset(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateDataset: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDataset\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateDataset\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorGetModeConfig struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorGetModeConfig) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceGetModeConfigArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetModeConfig\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceGetModeConfigResult{}\n\tvar retval *GetModeConfigResponse\n\tif retval, err2 = p.handler.GetModeConfig(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetModeConfig: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetModeConfig\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetModeConfig\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorCreateDocument struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorCreateDocument) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceCreateDocumentArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateDocument\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceCreateDocumentResult{}\n\tvar retval *CreateDocumentResponse\n\tif retval, err2 = p.handler.CreateDocument(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateDocument: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateDocument\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateDocument\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorListDocument struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorListDocument) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceListDocumentArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListDocument\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceListDocumentResult{}\n\tvar retval *ListDocumentResponse\n\tif retval, err2 = p.handler.ListDocument(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListDocument: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListDocument\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListDocument\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorDeleteDocument struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorDeleteDocument) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceDeleteDocumentArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteDocument\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceDeleteDocumentResult{}\n\tvar retval *DeleteDocumentResponse\n\tif retval, err2 = p.handler.DeleteDocument(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteDocument: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteDocument\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteDocument\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorUpdateDocument struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorUpdateDocument) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceUpdateDocumentArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDocument\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceUpdateDocumentResult{}\n\tvar retval *UpdateDocumentResponse\n\tif retval, err2 = p.handler.UpdateDocument(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateDocument: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDocument\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateDocument\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorGetDocumentProgress struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorGetDocumentProgress) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceGetDocumentProgressArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDocumentProgress\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceGetDocumentProgressResult{}\n\tvar retval *GetDocumentProgressResponse\n\tif retval, err2 = p.handler.GetDocumentProgress(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDocumentProgress: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDocumentProgress\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDocumentProgress\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorResegment struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorResegment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceResegmentArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"Resegment\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceResegmentResult{}\n\tvar retval *ResegmentResponse\n\tif retval, err2 = p.handler.Resegment(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing Resegment: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"Resegment\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"Resegment\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorUpdatePhotoCaption struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorUpdatePhotoCaption) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceUpdatePhotoCaptionArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdatePhotoCaption\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceUpdatePhotoCaptionResult{}\n\tvar retval *UpdatePhotoCaptionResponse\n\tif retval, err2 = p.handler.UpdatePhotoCaption(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdatePhotoCaption: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdatePhotoCaption\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdatePhotoCaption\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorListPhoto struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorListPhoto) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceListPhotoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListPhoto\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceListPhotoResult{}\n\tvar retval *ListPhotoResponse\n\tif retval, err2 = p.handler.ListPhoto(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListPhoto: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListPhoto\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListPhoto\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorPhotoDetail struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorPhotoDetail) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServicePhotoDetailArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PhotoDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServicePhotoDetailResult{}\n\tvar retval *PhotoDetailResponse\n\tif retval, err2 = p.handler.PhotoDetail(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PhotoDetail: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PhotoDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PhotoDetail\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorExtractPhotoCaption struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorExtractPhotoCaption) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceExtractPhotoCaptionArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ExtractPhotoCaption\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceExtractPhotoCaptionResult{}\n\tvar retval *ExtractPhotoCaptionResponse\n\tif retval, err2 = p.handler.ExtractPhotoCaption(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ExtractPhotoCaption: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ExtractPhotoCaption\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ExtractPhotoCaption\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorGetTableSchema struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorGetTableSchema) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceGetTableSchemaArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetTableSchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceGetTableSchemaResult{}\n\tvar retval *GetTableSchemaResponse\n\tif retval, err2 = p.handler.GetTableSchema(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetTableSchema: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetTableSchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetTableSchema\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorValidateTableSchema struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorValidateTableSchema) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceValidateTableSchemaArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ValidateTableSchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceValidateTableSchemaResult{}\n\tvar retval *ValidateTableSchemaResponse\n\tif retval, err2 = p.handler.ValidateTableSchema(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ValidateTableSchema: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ValidateTableSchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ValidateTableSchema\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorGetDocumentTableInfo struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorGetDocumentTableInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceGetDocumentTableInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDocumentTableInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceGetDocumentTableInfoResult{}\n\tvar retval *GetDocumentTableInfoResponse\n\tif retval, err2 = p.handler.GetDocumentTableInfo(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDocumentTableInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDocumentTableInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDocumentTableInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorDeleteSlice struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorDeleteSlice) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceDeleteSliceArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteSlice\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceDeleteSliceResult{}\n\tvar retval *DeleteSliceResponse\n\tif retval, err2 = p.handler.DeleteSlice(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteSlice: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteSlice\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteSlice\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorCreateSlice struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorCreateSlice) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceCreateSliceArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateSlice\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceCreateSliceResult{}\n\tvar retval *CreateSliceResponse\n\tif retval, err2 = p.handler.CreateSlice(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateSlice: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateSlice\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateSlice\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorUpdateSlice struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorUpdateSlice) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceUpdateSliceArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateSlice\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceUpdateSliceResult{}\n\tvar retval *UpdateSliceResponse\n\tif retval, err2 = p.handler.UpdateSlice(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateSlice: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateSlice\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateSlice\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorListSlice struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorListSlice) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceListSliceArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListSlice\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceListSliceResult{}\n\tvar retval *ListSliceResponse\n\tif retval, err2 = p.handler.ListSlice(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListSlice: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListSlice\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListSlice\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorCreateDocumentReview struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorCreateDocumentReview) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceCreateDocumentReviewArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateDocumentReview\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceCreateDocumentReviewResult{}\n\tvar retval *CreateDocumentReviewResponse\n\tif retval, err2 = p.handler.CreateDocumentReview(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateDocumentReview: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateDocumentReview\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateDocumentReview\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorMGetDocumentReview struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorMGetDocumentReview) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceMGetDocumentReviewArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"MGetDocumentReview\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceMGetDocumentReviewResult{}\n\tvar retval *MGetDocumentReviewResponse\n\tif retval, err2 = p.handler.MGetDocumentReview(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing MGetDocumentReview: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"MGetDocumentReview\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"MGetDocumentReview\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorSaveDocumentReview struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorSaveDocumentReview) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceSaveDocumentReviewArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"SaveDocumentReview\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceSaveDocumentReviewResult{}\n\tvar retval *SaveDocumentReviewResponse\n\tif retval, err2 = p.handler.SaveDocumentReview(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing SaveDocumentReview: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"SaveDocumentReview\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"SaveDocumentReview\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorCreateDocumentOpenAPI struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorCreateDocumentOpenAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceCreateDocumentOpenAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateDocumentOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceCreateDocumentOpenAPIResult{}\n\tvar retval *CreateDocumentResponse\n\tif retval, err2 = p.handler.CreateDocumentOpenAPI(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateDocumentOpenAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateDocumentOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateDocumentOpenAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorUpdateDocumentOpenAPI struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorUpdateDocumentOpenAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceUpdateDocumentOpenAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDocumentOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceUpdateDocumentOpenAPIResult{}\n\tvar retval *UpdateDocumentResponse\n\tif retval, err2 = p.handler.UpdateDocumentOpenAPI(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateDocumentOpenAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDocumentOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateDocumentOpenAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorListDocumentOpenAPI struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorListDocumentOpenAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceListDocumentOpenAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListDocumentOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceListDocumentOpenAPIResult{}\n\tvar retval *ListDocumentResponse\n\tif retval, err2 = p.handler.ListDocumentOpenAPI(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListDocumentOpenAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListDocumentOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListDocumentOpenAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorCreateDatasetOpenAPI struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorCreateDatasetOpenAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceCreateDatasetOpenAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateDatasetOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceCreateDatasetOpenAPIResult{}\n\tvar retval *CreateDatasetOpenApiResponse\n\tif retval, err2 = p.handler.CreateDatasetOpenAPI(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateDatasetOpenAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateDatasetOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateDatasetOpenAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorListDatasetOpenAPI struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorListDatasetOpenAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceListDatasetOpenAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListDatasetOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceListDatasetOpenAPIResult{}\n\tvar retval *ListDatasetOpenApiResponse\n\tif retval, err2 = p.handler.ListDatasetOpenAPI(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListDatasetOpenAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListDatasetOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListDatasetOpenAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorUpdateDatasetOpenAPI struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorUpdateDatasetOpenAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceUpdateDatasetOpenAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDatasetOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceUpdateDatasetOpenAPIResult{}\n\tvar retval *UpdateDatasetOpenApiResponse\n\tif retval, err2 = p.handler.UpdateDatasetOpenAPI(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateDatasetOpenAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDatasetOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateDatasetOpenAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorDeleteDatasetOpenAPI struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorDeleteDatasetOpenAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceDeleteDatasetOpenAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteDatasetOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceDeleteDatasetOpenAPIResult{}\n\tvar retval *DeleteDatasetOpenApiResponse\n\tif retval, err2 = p.handler.DeleteDatasetOpenAPI(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteDatasetOpenAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteDatasetOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteDatasetOpenAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorListPhotoDocumentOpenAPI struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorListPhotoDocumentOpenAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceListPhotoDocumentOpenAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListPhotoDocumentOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceListPhotoDocumentOpenAPIResult{}\n\tvar retval *ListPhotoOpenApiResponse\n\tif retval, err2 = p.handler.ListPhotoDocumentOpenAPI(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListPhotoDocumentOpenAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListPhotoDocumentOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListPhotoDocumentOpenAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype datasetServiceProcessorGetDocumentProgressOpenAPI struct {\n\thandler DatasetService\n}\n\nfunc (p *datasetServiceProcessorGetDocumentProgressOpenAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := DatasetServiceGetDocumentProgressOpenAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDocumentProgressOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := DatasetServiceGetDocumentProgressOpenAPIResult{}\n\tvar retval *GetDocumentProgressOpenApiResponse\n\tif retval, err2 = p.handler.GetDocumentProgressOpenAPI(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDocumentProgressOpenAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDocumentProgressOpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDocumentProgressOpenAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype DatasetServiceGetIconForDatasetArgs struct {\n\tReq *GetIconRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceGetIconForDatasetArgs() *DatasetServiceGetIconForDatasetArgs {\n\treturn &DatasetServiceGetIconForDatasetArgs{}\n}\n\nfunc (p *DatasetServiceGetIconForDatasetArgs) InitDefault() {\n}\n\nvar DatasetServiceGetIconForDatasetArgs_Req_DEFAULT *GetIconRequest\n\nfunc (p *DatasetServiceGetIconForDatasetArgs) GetReq() (v *GetIconRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceGetIconForDatasetArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceGetIconForDatasetArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceGetIconForDatasetArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceGetIconForDatasetArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetIconForDatasetArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetIconForDatasetArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetIconRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetIconForDatasetArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetIconForDataset_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetIconForDatasetArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetIconForDatasetArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetIconForDatasetArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceGetIconForDatasetResult struct {\n\tSuccess *GetIconResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceGetIconForDatasetResult() *DatasetServiceGetIconForDatasetResult {\n\treturn &DatasetServiceGetIconForDatasetResult{}\n}\n\nfunc (p *DatasetServiceGetIconForDatasetResult) InitDefault() {\n}\n\nvar DatasetServiceGetIconForDatasetResult_Success_DEFAULT *GetIconResponse\n\nfunc (p *DatasetServiceGetIconForDatasetResult) GetSuccess() (v *GetIconResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceGetIconForDatasetResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceGetIconForDatasetResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceGetIconForDatasetResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceGetIconForDatasetResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetIconForDatasetResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetIconForDatasetResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetIconResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetIconForDatasetResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetIconForDataset_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetIconForDatasetResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetIconForDatasetResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetIconForDatasetResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateDatasetArgs struct {\n\tReq *CreateDatasetRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceCreateDatasetArgs() *DatasetServiceCreateDatasetArgs {\n\treturn &DatasetServiceCreateDatasetArgs{}\n}\n\nfunc (p *DatasetServiceCreateDatasetArgs) InitDefault() {\n}\n\nvar DatasetServiceCreateDatasetArgs_Req_DEFAULT *CreateDatasetRequest\n\nfunc (p *DatasetServiceCreateDatasetArgs) GetReq() (v *CreateDatasetRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceCreateDatasetArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceCreateDatasetArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceCreateDatasetArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceCreateDatasetArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateDatasetArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateDatasetRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateDatasetArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDataset_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateDatasetArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateDatasetResult struct {\n\tSuccess *CreateDatasetResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceCreateDatasetResult() *DatasetServiceCreateDatasetResult {\n\treturn &DatasetServiceCreateDatasetResult{}\n}\n\nfunc (p *DatasetServiceCreateDatasetResult) InitDefault() {\n}\n\nvar DatasetServiceCreateDatasetResult_Success_DEFAULT *CreateDatasetResponse\n\nfunc (p *DatasetServiceCreateDatasetResult) GetSuccess() (v *CreateDatasetResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceCreateDatasetResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceCreateDatasetResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceCreateDatasetResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceCreateDatasetResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateDatasetResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateDatasetResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateDatasetResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDataset_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateDatasetResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceDatasetDetailArgs struct {\n\tReq *DatasetDetailRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceDatasetDetailArgs() *DatasetServiceDatasetDetailArgs {\n\treturn &DatasetServiceDatasetDetailArgs{}\n}\n\nfunc (p *DatasetServiceDatasetDetailArgs) InitDefault() {\n}\n\nvar DatasetServiceDatasetDetailArgs_Req_DEFAULT *DatasetDetailRequest\n\nfunc (p *DatasetServiceDatasetDetailArgs) GetReq() (v *DatasetDetailRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceDatasetDetailArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceDatasetDetailArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceDatasetDetailArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceDatasetDetailArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceDatasetDetailArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDatasetDetailArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDatasetDetailRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceDatasetDetailArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatasetDetail_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDatasetDetailArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDatasetDetailArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceDatasetDetailArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceDatasetDetailResult struct {\n\tSuccess *DatasetDetailResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceDatasetDetailResult() *DatasetServiceDatasetDetailResult {\n\treturn &DatasetServiceDatasetDetailResult{}\n}\n\nfunc (p *DatasetServiceDatasetDetailResult) InitDefault() {\n}\n\nvar DatasetServiceDatasetDetailResult_Success_DEFAULT *DatasetDetailResponse\n\nfunc (p *DatasetServiceDatasetDetailResult) GetSuccess() (v *DatasetDetailResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceDatasetDetailResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceDatasetDetailResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceDatasetDetailResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceDatasetDetailResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceDatasetDetailResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDatasetDetailResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDatasetDetailResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceDatasetDetailResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatasetDetail_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDatasetDetailResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDatasetDetailResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceDatasetDetailResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceListDatasetArgs struct {\n\tReq *ListDatasetRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceListDatasetArgs() *DatasetServiceListDatasetArgs {\n\treturn &DatasetServiceListDatasetArgs{}\n}\n\nfunc (p *DatasetServiceListDatasetArgs) InitDefault() {\n}\n\nvar DatasetServiceListDatasetArgs_Req_DEFAULT *ListDatasetRequest\n\nfunc (p *DatasetServiceListDatasetArgs) GetReq() (v *ListDatasetRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceListDatasetArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceListDatasetArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceListDatasetArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceListDatasetArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListDatasetArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListDatasetRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListDatasetArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDataset_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListDatasetArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceListDatasetResult struct {\n\tSuccess *ListDatasetResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceListDatasetResult() *DatasetServiceListDatasetResult {\n\treturn &DatasetServiceListDatasetResult{}\n}\n\nfunc (p *DatasetServiceListDatasetResult) InitDefault() {\n}\n\nvar DatasetServiceListDatasetResult_Success_DEFAULT *ListDatasetResponse\n\nfunc (p *DatasetServiceListDatasetResult) GetSuccess() (v *ListDatasetResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceListDatasetResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceListDatasetResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceListDatasetResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceListDatasetResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListDatasetResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListDatasetResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListDatasetResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDataset_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListDatasetResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceDeleteDatasetArgs struct {\n\tReq *DeleteDatasetRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceDeleteDatasetArgs() *DatasetServiceDeleteDatasetArgs {\n\treturn &DatasetServiceDeleteDatasetArgs{}\n}\n\nfunc (p *DatasetServiceDeleteDatasetArgs) InitDefault() {\n}\n\nvar DatasetServiceDeleteDatasetArgs_Req_DEFAULT *DeleteDatasetRequest\n\nfunc (p *DatasetServiceDeleteDatasetArgs) GetReq() (v *DeleteDatasetRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceDeleteDatasetArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceDeleteDatasetArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceDeleteDatasetArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceDeleteDatasetArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceDeleteDatasetArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteDatasetRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceDeleteDatasetArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDataset_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceDeleteDatasetArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceDeleteDatasetResult struct {\n\tSuccess *DeleteDatasetResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceDeleteDatasetResult() *DatasetServiceDeleteDatasetResult {\n\treturn &DatasetServiceDeleteDatasetResult{}\n}\n\nfunc (p *DatasetServiceDeleteDatasetResult) InitDefault() {\n}\n\nvar DatasetServiceDeleteDatasetResult_Success_DEFAULT *DeleteDatasetResponse\n\nfunc (p *DatasetServiceDeleteDatasetResult) GetSuccess() (v *DeleteDatasetResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceDeleteDatasetResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceDeleteDatasetResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceDeleteDatasetResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceDeleteDatasetResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceDeleteDatasetResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteDatasetResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceDeleteDatasetResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDataset_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceDeleteDatasetResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdateDatasetArgs struct {\n\tReq *UpdateDatasetRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceUpdateDatasetArgs() *DatasetServiceUpdateDatasetArgs {\n\treturn &DatasetServiceUpdateDatasetArgs{}\n}\n\nfunc (p *DatasetServiceUpdateDatasetArgs) InitDefault() {\n}\n\nvar DatasetServiceUpdateDatasetArgs_Req_DEFAULT *UpdateDatasetRequest\n\nfunc (p *DatasetServiceUpdateDatasetArgs) GetReq() (v *UpdateDatasetRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceUpdateDatasetArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceUpdateDatasetArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceUpdateDatasetArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceUpdateDatasetArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdateDatasetArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDatasetRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdateDatasetArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDataset_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdateDatasetArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdateDatasetResult struct {\n\tSuccess *UpdateDatasetResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceUpdateDatasetResult() *DatasetServiceUpdateDatasetResult {\n\treturn &DatasetServiceUpdateDatasetResult{}\n}\n\nfunc (p *DatasetServiceUpdateDatasetResult) InitDefault() {\n}\n\nvar DatasetServiceUpdateDatasetResult_Success_DEFAULT *UpdateDatasetResponse\n\nfunc (p *DatasetServiceUpdateDatasetResult) GetSuccess() (v *UpdateDatasetResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceUpdateDatasetResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceUpdateDatasetResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceUpdateDatasetResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceUpdateDatasetResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdateDatasetResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDatasetResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdateDatasetResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDataset_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdateDatasetResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceGetModeConfigArgs struct {\n\tReq *GetModeConfigRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceGetModeConfigArgs() *DatasetServiceGetModeConfigArgs {\n\treturn &DatasetServiceGetModeConfigArgs{}\n}\n\nfunc (p *DatasetServiceGetModeConfigArgs) InitDefault() {\n}\n\nvar DatasetServiceGetModeConfigArgs_Req_DEFAULT *GetModeConfigRequest\n\nfunc (p *DatasetServiceGetModeConfigArgs) GetReq() (v *GetModeConfigRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceGetModeConfigArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceGetModeConfigArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceGetModeConfigArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceGetModeConfigArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetModeConfigArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetModeConfigArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetModeConfigRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetModeConfigArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetModeConfig_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetModeConfigArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetModeConfigArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetModeConfigArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceGetModeConfigResult struct {\n\tSuccess *GetModeConfigResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceGetModeConfigResult() *DatasetServiceGetModeConfigResult {\n\treturn &DatasetServiceGetModeConfigResult{}\n}\n\nfunc (p *DatasetServiceGetModeConfigResult) InitDefault() {\n}\n\nvar DatasetServiceGetModeConfigResult_Success_DEFAULT *GetModeConfigResponse\n\nfunc (p *DatasetServiceGetModeConfigResult) GetSuccess() (v *GetModeConfigResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceGetModeConfigResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceGetModeConfigResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceGetModeConfigResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceGetModeConfigResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetModeConfigResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetModeConfigResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetModeConfigResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetModeConfigResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetModeConfig_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetModeConfigResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetModeConfigResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetModeConfigResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateDocumentArgs struct {\n\tReq *CreateDocumentRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceCreateDocumentArgs() *DatasetServiceCreateDocumentArgs {\n\treturn &DatasetServiceCreateDocumentArgs{}\n}\n\nfunc (p *DatasetServiceCreateDocumentArgs) InitDefault() {\n}\n\nvar DatasetServiceCreateDocumentArgs_Req_DEFAULT *CreateDocumentRequest\n\nfunc (p *DatasetServiceCreateDocumentArgs) GetReq() (v *CreateDocumentRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceCreateDocumentArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceCreateDocumentArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceCreateDocumentArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceCreateDocumentArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateDocumentArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateDocumentRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateDocumentArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDocument_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateDocumentArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateDocumentResult struct {\n\tSuccess *CreateDocumentResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceCreateDocumentResult() *DatasetServiceCreateDocumentResult {\n\treturn &DatasetServiceCreateDocumentResult{}\n}\n\nfunc (p *DatasetServiceCreateDocumentResult) InitDefault() {\n}\n\nvar DatasetServiceCreateDocumentResult_Success_DEFAULT *CreateDocumentResponse\n\nfunc (p *DatasetServiceCreateDocumentResult) GetSuccess() (v *CreateDocumentResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceCreateDocumentResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceCreateDocumentResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceCreateDocumentResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceCreateDocumentResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateDocumentResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateDocumentResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateDocumentResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDocument_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateDocumentResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceListDocumentArgs struct {\n\tReq *ListDocumentRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceListDocumentArgs() *DatasetServiceListDocumentArgs {\n\treturn &DatasetServiceListDocumentArgs{}\n}\n\nfunc (p *DatasetServiceListDocumentArgs) InitDefault() {\n}\n\nvar DatasetServiceListDocumentArgs_Req_DEFAULT *ListDocumentRequest\n\nfunc (p *DatasetServiceListDocumentArgs) GetReq() (v *ListDocumentRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceListDocumentArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceListDocumentArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceListDocumentArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceListDocumentArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListDocumentArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListDocumentRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListDocumentArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDocument_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListDocumentArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceListDocumentResult struct {\n\tSuccess *ListDocumentResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceListDocumentResult() *DatasetServiceListDocumentResult {\n\treturn &DatasetServiceListDocumentResult{}\n}\n\nfunc (p *DatasetServiceListDocumentResult) InitDefault() {\n}\n\nvar DatasetServiceListDocumentResult_Success_DEFAULT *ListDocumentResponse\n\nfunc (p *DatasetServiceListDocumentResult) GetSuccess() (v *ListDocumentResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceListDocumentResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceListDocumentResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceListDocumentResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceListDocumentResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListDocumentResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListDocumentResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListDocumentResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDocument_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListDocumentResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceDeleteDocumentArgs struct {\n\tReq *DeleteDocumentRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceDeleteDocumentArgs() *DatasetServiceDeleteDocumentArgs {\n\treturn &DatasetServiceDeleteDocumentArgs{}\n}\n\nfunc (p *DatasetServiceDeleteDocumentArgs) InitDefault() {\n}\n\nvar DatasetServiceDeleteDocumentArgs_Req_DEFAULT *DeleteDocumentRequest\n\nfunc (p *DatasetServiceDeleteDocumentArgs) GetReq() (v *DeleteDocumentRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceDeleteDocumentArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceDeleteDocumentArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceDeleteDocumentArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceDeleteDocumentArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceDeleteDocumentArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDocumentArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteDocumentRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceDeleteDocumentArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDocument_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDocumentArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDocumentArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceDeleteDocumentArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceDeleteDocumentResult struct {\n\tSuccess *DeleteDocumentResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceDeleteDocumentResult() *DatasetServiceDeleteDocumentResult {\n\treturn &DatasetServiceDeleteDocumentResult{}\n}\n\nfunc (p *DatasetServiceDeleteDocumentResult) InitDefault() {\n}\n\nvar DatasetServiceDeleteDocumentResult_Success_DEFAULT *DeleteDocumentResponse\n\nfunc (p *DatasetServiceDeleteDocumentResult) GetSuccess() (v *DeleteDocumentResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceDeleteDocumentResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceDeleteDocumentResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceDeleteDocumentResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceDeleteDocumentResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceDeleteDocumentResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDocumentResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteDocumentResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceDeleteDocumentResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDocument_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDocumentResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDocumentResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceDeleteDocumentResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdateDocumentArgs struct {\n\tReq *UpdateDocumentRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceUpdateDocumentArgs() *DatasetServiceUpdateDocumentArgs {\n\treturn &DatasetServiceUpdateDocumentArgs{}\n}\n\nfunc (p *DatasetServiceUpdateDocumentArgs) InitDefault() {\n}\n\nvar DatasetServiceUpdateDocumentArgs_Req_DEFAULT *UpdateDocumentRequest\n\nfunc (p *DatasetServiceUpdateDocumentArgs) GetReq() (v *UpdateDocumentRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceUpdateDocumentArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceUpdateDocumentArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceUpdateDocumentArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceUpdateDocumentArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdateDocumentArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDocumentRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdateDocumentArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDocument_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdateDocumentArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdateDocumentResult struct {\n\tSuccess *UpdateDocumentResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceUpdateDocumentResult() *DatasetServiceUpdateDocumentResult {\n\treturn &DatasetServiceUpdateDocumentResult{}\n}\n\nfunc (p *DatasetServiceUpdateDocumentResult) InitDefault() {\n}\n\nvar DatasetServiceUpdateDocumentResult_Success_DEFAULT *UpdateDocumentResponse\n\nfunc (p *DatasetServiceUpdateDocumentResult) GetSuccess() (v *UpdateDocumentResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceUpdateDocumentResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceUpdateDocumentResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceUpdateDocumentResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceUpdateDocumentResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdateDocumentResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDocumentResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdateDocumentResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDocument_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdateDocumentResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceGetDocumentProgressArgs struct {\n\tReq *GetDocumentProgressRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceGetDocumentProgressArgs() *DatasetServiceGetDocumentProgressArgs {\n\treturn &DatasetServiceGetDocumentProgressArgs{}\n}\n\nfunc (p *DatasetServiceGetDocumentProgressArgs) InitDefault() {\n}\n\nvar DatasetServiceGetDocumentProgressArgs_Req_DEFAULT *GetDocumentProgressRequest\n\nfunc (p *DatasetServiceGetDocumentProgressArgs) GetReq() (v *GetDocumentProgressRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceGetDocumentProgressArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceGetDocumentProgressArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceGetDocumentProgressArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceGetDocumentProgressArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetDocumentProgressArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDocumentProgressRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetDocumentProgressArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentProgress_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetDocumentProgressArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceGetDocumentProgressResult struct {\n\tSuccess *GetDocumentProgressResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceGetDocumentProgressResult() *DatasetServiceGetDocumentProgressResult {\n\treturn &DatasetServiceGetDocumentProgressResult{}\n}\n\nfunc (p *DatasetServiceGetDocumentProgressResult) InitDefault() {\n}\n\nvar DatasetServiceGetDocumentProgressResult_Success_DEFAULT *GetDocumentProgressResponse\n\nfunc (p *DatasetServiceGetDocumentProgressResult) GetSuccess() (v *GetDocumentProgressResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceGetDocumentProgressResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceGetDocumentProgressResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceGetDocumentProgressResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceGetDocumentProgressResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetDocumentProgressResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetDocumentProgressResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetDocumentProgressResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentProgress_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetDocumentProgressResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceResegmentArgs struct {\n\tReq *ResegmentRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceResegmentArgs() *DatasetServiceResegmentArgs {\n\treturn &DatasetServiceResegmentArgs{}\n}\n\nfunc (p *DatasetServiceResegmentArgs) InitDefault() {\n}\n\nvar DatasetServiceResegmentArgs_Req_DEFAULT *ResegmentRequest\n\nfunc (p *DatasetServiceResegmentArgs) GetReq() (v *ResegmentRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceResegmentArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceResegmentArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceResegmentArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceResegmentArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceResegmentArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceResegmentArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewResegmentRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceResegmentArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Resegment_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceResegmentArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceResegmentArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceResegmentArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceResegmentResult struct {\n\tSuccess *ResegmentResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceResegmentResult() *DatasetServiceResegmentResult {\n\treturn &DatasetServiceResegmentResult{}\n}\n\nfunc (p *DatasetServiceResegmentResult) InitDefault() {\n}\n\nvar DatasetServiceResegmentResult_Success_DEFAULT *ResegmentResponse\n\nfunc (p *DatasetServiceResegmentResult) GetSuccess() (v *ResegmentResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceResegmentResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceResegmentResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceResegmentResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceResegmentResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceResegmentResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceResegmentResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewResegmentResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceResegmentResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Resegment_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceResegmentResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceResegmentResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceResegmentResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdatePhotoCaptionArgs struct {\n\tReq *UpdatePhotoCaptionRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceUpdatePhotoCaptionArgs() *DatasetServiceUpdatePhotoCaptionArgs {\n\treturn &DatasetServiceUpdatePhotoCaptionArgs{}\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionArgs) InitDefault() {\n}\n\nvar DatasetServiceUpdatePhotoCaptionArgs_Req_DEFAULT *UpdatePhotoCaptionRequest\n\nfunc (p *DatasetServiceUpdatePhotoCaptionArgs) GetReq() (v *UpdatePhotoCaptionRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceUpdatePhotoCaptionArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceUpdatePhotoCaptionArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdatePhotoCaptionArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdatePhotoCaptionRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePhotoCaption_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdatePhotoCaptionArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdatePhotoCaptionResult struct {\n\tSuccess *UpdatePhotoCaptionResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceUpdatePhotoCaptionResult() *DatasetServiceUpdatePhotoCaptionResult {\n\treturn &DatasetServiceUpdatePhotoCaptionResult{}\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionResult) InitDefault() {\n}\n\nvar DatasetServiceUpdatePhotoCaptionResult_Success_DEFAULT *UpdatePhotoCaptionResponse\n\nfunc (p *DatasetServiceUpdatePhotoCaptionResult) GetSuccess() (v *UpdatePhotoCaptionResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceUpdatePhotoCaptionResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceUpdatePhotoCaptionResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdatePhotoCaptionResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdatePhotoCaptionResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePhotoCaption_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdatePhotoCaptionResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdatePhotoCaptionResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceListPhotoArgs struct {\n\tReq *ListPhotoRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceListPhotoArgs() *DatasetServiceListPhotoArgs {\n\treturn &DatasetServiceListPhotoArgs{}\n}\n\nfunc (p *DatasetServiceListPhotoArgs) InitDefault() {\n}\n\nvar DatasetServiceListPhotoArgs_Req_DEFAULT *ListPhotoRequest\n\nfunc (p *DatasetServiceListPhotoArgs) GetReq() (v *ListPhotoRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceListPhotoArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceListPhotoArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceListPhotoArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceListPhotoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListPhotoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListPhotoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListPhotoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPhoto_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListPhotoArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceListPhotoResult struct {\n\tSuccess *ListPhotoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceListPhotoResult() *DatasetServiceListPhotoResult {\n\treturn &DatasetServiceListPhotoResult{}\n}\n\nfunc (p *DatasetServiceListPhotoResult) InitDefault() {\n}\n\nvar DatasetServiceListPhotoResult_Success_DEFAULT *ListPhotoResponse\n\nfunc (p *DatasetServiceListPhotoResult) GetSuccess() (v *ListPhotoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceListPhotoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceListPhotoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceListPhotoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceListPhotoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListPhotoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListPhotoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListPhotoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPhoto_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListPhotoResult(%+v)\", *p)\n\n}\n\ntype DatasetServicePhotoDetailArgs struct {\n\tReq *PhotoDetailRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServicePhotoDetailArgs() *DatasetServicePhotoDetailArgs {\n\treturn &DatasetServicePhotoDetailArgs{}\n}\n\nfunc (p *DatasetServicePhotoDetailArgs) InitDefault() {\n}\n\nvar DatasetServicePhotoDetailArgs_Req_DEFAULT *PhotoDetailRequest\n\nfunc (p *DatasetServicePhotoDetailArgs) GetReq() (v *PhotoDetailRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServicePhotoDetailArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServicePhotoDetailArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServicePhotoDetailArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServicePhotoDetailArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServicePhotoDetailArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServicePhotoDetailArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPhotoDetailRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServicePhotoDetailArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PhotoDetail_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServicePhotoDetailArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServicePhotoDetailArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServicePhotoDetailArgs(%+v)\", *p)\n\n}\n\ntype DatasetServicePhotoDetailResult struct {\n\tSuccess *PhotoDetailResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServicePhotoDetailResult() *DatasetServicePhotoDetailResult {\n\treturn &DatasetServicePhotoDetailResult{}\n}\n\nfunc (p *DatasetServicePhotoDetailResult) InitDefault() {\n}\n\nvar DatasetServicePhotoDetailResult_Success_DEFAULT *PhotoDetailResponse\n\nfunc (p *DatasetServicePhotoDetailResult) GetSuccess() (v *PhotoDetailResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServicePhotoDetailResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServicePhotoDetailResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServicePhotoDetailResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServicePhotoDetailResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServicePhotoDetailResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServicePhotoDetailResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewPhotoDetailResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServicePhotoDetailResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PhotoDetail_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServicePhotoDetailResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServicePhotoDetailResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServicePhotoDetailResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceExtractPhotoCaptionArgs struct {\n\tReq *ExtractPhotoCaptionRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceExtractPhotoCaptionArgs() *DatasetServiceExtractPhotoCaptionArgs {\n\treturn &DatasetServiceExtractPhotoCaptionArgs{}\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionArgs) InitDefault() {\n}\n\nvar DatasetServiceExtractPhotoCaptionArgs_Req_DEFAULT *ExtractPhotoCaptionRequest\n\nfunc (p *DatasetServiceExtractPhotoCaptionArgs) GetReq() (v *ExtractPhotoCaptionRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceExtractPhotoCaptionArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceExtractPhotoCaptionArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceExtractPhotoCaptionArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewExtractPhotoCaptionRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ExtractPhotoCaption_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceExtractPhotoCaptionArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceExtractPhotoCaptionResult struct {\n\tSuccess *ExtractPhotoCaptionResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceExtractPhotoCaptionResult() *DatasetServiceExtractPhotoCaptionResult {\n\treturn &DatasetServiceExtractPhotoCaptionResult{}\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionResult) InitDefault() {\n}\n\nvar DatasetServiceExtractPhotoCaptionResult_Success_DEFAULT *ExtractPhotoCaptionResponse\n\nfunc (p *DatasetServiceExtractPhotoCaptionResult) GetSuccess() (v *ExtractPhotoCaptionResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceExtractPhotoCaptionResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceExtractPhotoCaptionResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceExtractPhotoCaptionResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewExtractPhotoCaptionResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ExtractPhotoCaption_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceExtractPhotoCaptionResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceExtractPhotoCaptionResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceGetTableSchemaArgs struct {\n\tReq *GetTableSchemaRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceGetTableSchemaArgs() *DatasetServiceGetTableSchemaArgs {\n\treturn &DatasetServiceGetTableSchemaArgs{}\n}\n\nfunc (p *DatasetServiceGetTableSchemaArgs) InitDefault() {\n}\n\nvar DatasetServiceGetTableSchemaArgs_Req_DEFAULT *GetTableSchemaRequest\n\nfunc (p *DatasetServiceGetTableSchemaArgs) GetReq() (v *GetTableSchemaRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceGetTableSchemaArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceGetTableSchemaArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceGetTableSchemaArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceGetTableSchemaArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetTableSchemaArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetTableSchemaArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetTableSchemaRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetTableSchemaArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTableSchema_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetTableSchemaArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetTableSchemaArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetTableSchemaArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceGetTableSchemaResult struct {\n\tSuccess *GetTableSchemaResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceGetTableSchemaResult() *DatasetServiceGetTableSchemaResult {\n\treturn &DatasetServiceGetTableSchemaResult{}\n}\n\nfunc (p *DatasetServiceGetTableSchemaResult) InitDefault() {\n}\n\nvar DatasetServiceGetTableSchemaResult_Success_DEFAULT *GetTableSchemaResponse\n\nfunc (p *DatasetServiceGetTableSchemaResult) GetSuccess() (v *GetTableSchemaResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceGetTableSchemaResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceGetTableSchemaResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceGetTableSchemaResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceGetTableSchemaResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetTableSchemaResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetTableSchemaResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetTableSchemaResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetTableSchemaResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTableSchema_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetTableSchemaResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetTableSchemaResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetTableSchemaResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceValidateTableSchemaArgs struct {\n\tReq *ValidateTableSchemaRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceValidateTableSchemaArgs() *DatasetServiceValidateTableSchemaArgs {\n\treturn &DatasetServiceValidateTableSchemaArgs{}\n}\n\nfunc (p *DatasetServiceValidateTableSchemaArgs) InitDefault() {\n}\n\nvar DatasetServiceValidateTableSchemaArgs_Req_DEFAULT *ValidateTableSchemaRequest\n\nfunc (p *DatasetServiceValidateTableSchemaArgs) GetReq() (v *ValidateTableSchemaRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceValidateTableSchemaArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceValidateTableSchemaArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceValidateTableSchemaArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceValidateTableSchemaArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceValidateTableSchemaArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceValidateTableSchemaArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewValidateTableSchemaRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceValidateTableSchemaArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateTableSchema_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceValidateTableSchemaArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceValidateTableSchemaArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceValidateTableSchemaArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceValidateTableSchemaResult struct {\n\tSuccess *ValidateTableSchemaResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceValidateTableSchemaResult() *DatasetServiceValidateTableSchemaResult {\n\treturn &DatasetServiceValidateTableSchemaResult{}\n}\n\nfunc (p *DatasetServiceValidateTableSchemaResult) InitDefault() {\n}\n\nvar DatasetServiceValidateTableSchemaResult_Success_DEFAULT *ValidateTableSchemaResponse\n\nfunc (p *DatasetServiceValidateTableSchemaResult) GetSuccess() (v *ValidateTableSchemaResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceValidateTableSchemaResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceValidateTableSchemaResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceValidateTableSchemaResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceValidateTableSchemaResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceValidateTableSchemaResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceValidateTableSchemaResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewValidateTableSchemaResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceValidateTableSchemaResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateTableSchema_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceValidateTableSchemaResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceValidateTableSchemaResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceValidateTableSchemaResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceGetDocumentTableInfoArgs struct {\n\tReq *GetDocumentTableInfoRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceGetDocumentTableInfoArgs() *DatasetServiceGetDocumentTableInfoArgs {\n\treturn &DatasetServiceGetDocumentTableInfoArgs{}\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoArgs) InitDefault() {\n}\n\nvar DatasetServiceGetDocumentTableInfoArgs_Req_DEFAULT *GetDocumentTableInfoRequest\n\nfunc (p *DatasetServiceGetDocumentTableInfoArgs) GetReq() (v *GetDocumentTableInfoRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceGetDocumentTableInfoArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceGetDocumentTableInfoArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetDocumentTableInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDocumentTableInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentTableInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetDocumentTableInfoArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceGetDocumentTableInfoResult struct {\n\tSuccess *GetDocumentTableInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceGetDocumentTableInfoResult() *DatasetServiceGetDocumentTableInfoResult {\n\treturn &DatasetServiceGetDocumentTableInfoResult{}\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoResult) InitDefault() {\n}\n\nvar DatasetServiceGetDocumentTableInfoResult_Success_DEFAULT *GetDocumentTableInfoResponse\n\nfunc (p *DatasetServiceGetDocumentTableInfoResult) GetSuccess() (v *GetDocumentTableInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceGetDocumentTableInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceGetDocumentTableInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetDocumentTableInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetDocumentTableInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentTableInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentTableInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetDocumentTableInfoResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceDeleteSliceArgs struct {\n\tReq *DeleteSliceRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceDeleteSliceArgs() *DatasetServiceDeleteSliceArgs {\n\treturn &DatasetServiceDeleteSliceArgs{}\n}\n\nfunc (p *DatasetServiceDeleteSliceArgs) InitDefault() {\n}\n\nvar DatasetServiceDeleteSliceArgs_Req_DEFAULT *DeleteSliceRequest\n\nfunc (p *DatasetServiceDeleteSliceArgs) GetReq() (v *DeleteSliceRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceDeleteSliceArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceDeleteSliceArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceDeleteSliceArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceDeleteSliceArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceDeleteSliceArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteSliceArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteSliceRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceDeleteSliceArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteSlice_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteSliceArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteSliceArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceDeleteSliceArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceDeleteSliceResult struct {\n\tSuccess *DeleteSliceResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceDeleteSliceResult() *DatasetServiceDeleteSliceResult {\n\treturn &DatasetServiceDeleteSliceResult{}\n}\n\nfunc (p *DatasetServiceDeleteSliceResult) InitDefault() {\n}\n\nvar DatasetServiceDeleteSliceResult_Success_DEFAULT *DeleteSliceResponse\n\nfunc (p *DatasetServiceDeleteSliceResult) GetSuccess() (v *DeleteSliceResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceDeleteSliceResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceDeleteSliceResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceDeleteSliceResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceDeleteSliceResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceDeleteSliceResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteSliceResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteSliceResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceDeleteSliceResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteSlice_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteSliceResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteSliceResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceDeleteSliceResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateSliceArgs struct {\n\tReq *CreateSliceRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceCreateSliceArgs() *DatasetServiceCreateSliceArgs {\n\treturn &DatasetServiceCreateSliceArgs{}\n}\n\nfunc (p *DatasetServiceCreateSliceArgs) InitDefault() {\n}\n\nvar DatasetServiceCreateSliceArgs_Req_DEFAULT *CreateSliceRequest\n\nfunc (p *DatasetServiceCreateSliceArgs) GetReq() (v *CreateSliceRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceCreateSliceArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceCreateSliceArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceCreateSliceArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceCreateSliceArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateSliceArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateSliceArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateSliceRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateSliceArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateSlice_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateSliceArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateSliceArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateSliceArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateSliceResult struct {\n\tSuccess *CreateSliceResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceCreateSliceResult() *DatasetServiceCreateSliceResult {\n\treturn &DatasetServiceCreateSliceResult{}\n}\n\nfunc (p *DatasetServiceCreateSliceResult) InitDefault() {\n}\n\nvar DatasetServiceCreateSliceResult_Success_DEFAULT *CreateSliceResponse\n\nfunc (p *DatasetServiceCreateSliceResult) GetSuccess() (v *CreateSliceResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceCreateSliceResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceCreateSliceResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceCreateSliceResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceCreateSliceResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateSliceResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateSliceResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateSliceResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateSliceResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateSlice_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateSliceResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateSliceResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateSliceResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdateSliceArgs struct {\n\tReq *UpdateSliceRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceUpdateSliceArgs() *DatasetServiceUpdateSliceArgs {\n\treturn &DatasetServiceUpdateSliceArgs{}\n}\n\nfunc (p *DatasetServiceUpdateSliceArgs) InitDefault() {\n}\n\nvar DatasetServiceUpdateSliceArgs_Req_DEFAULT *UpdateSliceRequest\n\nfunc (p *DatasetServiceUpdateSliceArgs) GetReq() (v *UpdateSliceRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceUpdateSliceArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceUpdateSliceArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceUpdateSliceArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceUpdateSliceArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdateSliceArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateSliceArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateSliceRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdateSliceArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateSlice_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateSliceArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateSliceArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdateSliceArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdateSliceResult struct {\n\tSuccess *UpdateSliceResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceUpdateSliceResult() *DatasetServiceUpdateSliceResult {\n\treturn &DatasetServiceUpdateSliceResult{}\n}\n\nfunc (p *DatasetServiceUpdateSliceResult) InitDefault() {\n}\n\nvar DatasetServiceUpdateSliceResult_Success_DEFAULT *UpdateSliceResponse\n\nfunc (p *DatasetServiceUpdateSliceResult) GetSuccess() (v *UpdateSliceResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceUpdateSliceResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceUpdateSliceResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceUpdateSliceResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceUpdateSliceResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdateSliceResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateSliceResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateSliceResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdateSliceResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateSlice_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateSliceResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateSliceResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdateSliceResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceListSliceArgs struct {\n\tReq *ListSliceRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceListSliceArgs() *DatasetServiceListSliceArgs {\n\treturn &DatasetServiceListSliceArgs{}\n}\n\nfunc (p *DatasetServiceListSliceArgs) InitDefault() {\n}\n\nvar DatasetServiceListSliceArgs_Req_DEFAULT *ListSliceRequest\n\nfunc (p *DatasetServiceListSliceArgs) GetReq() (v *ListSliceRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceListSliceArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceListSliceArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceListSliceArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceListSliceArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListSliceArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListSliceArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListSliceRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListSliceArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListSlice_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListSliceArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListSliceArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListSliceArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceListSliceResult struct {\n\tSuccess *ListSliceResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceListSliceResult() *DatasetServiceListSliceResult {\n\treturn &DatasetServiceListSliceResult{}\n}\n\nfunc (p *DatasetServiceListSliceResult) InitDefault() {\n}\n\nvar DatasetServiceListSliceResult_Success_DEFAULT *ListSliceResponse\n\nfunc (p *DatasetServiceListSliceResult) GetSuccess() (v *ListSliceResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceListSliceResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceListSliceResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceListSliceResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceListSliceResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListSliceResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListSliceResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListSliceResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListSliceResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListSlice_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListSliceResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListSliceResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListSliceResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateDocumentReviewArgs struct {\n\tReq *CreateDocumentReviewRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceCreateDocumentReviewArgs() *DatasetServiceCreateDocumentReviewArgs {\n\treturn &DatasetServiceCreateDocumentReviewArgs{}\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewArgs) InitDefault() {\n}\n\nvar DatasetServiceCreateDocumentReviewArgs_Req_DEFAULT *CreateDocumentReviewRequest\n\nfunc (p *DatasetServiceCreateDocumentReviewArgs) GetReq() (v *CreateDocumentReviewRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceCreateDocumentReviewArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceCreateDocumentReviewArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateDocumentReviewArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateDocumentReviewRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDocumentReview_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateDocumentReviewArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateDocumentReviewResult struct {\n\tSuccess *CreateDocumentReviewResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceCreateDocumentReviewResult() *DatasetServiceCreateDocumentReviewResult {\n\treturn &DatasetServiceCreateDocumentReviewResult{}\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewResult) InitDefault() {\n}\n\nvar DatasetServiceCreateDocumentReviewResult_Success_DEFAULT *CreateDocumentReviewResponse\n\nfunc (p *DatasetServiceCreateDocumentReviewResult) GetSuccess() (v *CreateDocumentReviewResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceCreateDocumentReviewResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceCreateDocumentReviewResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateDocumentReviewResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateDocumentReviewResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDocumentReview_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentReviewResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateDocumentReviewResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceMGetDocumentReviewArgs struct {\n\tReq *MGetDocumentReviewRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceMGetDocumentReviewArgs() *DatasetServiceMGetDocumentReviewArgs {\n\treturn &DatasetServiceMGetDocumentReviewArgs{}\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewArgs) InitDefault() {\n}\n\nvar DatasetServiceMGetDocumentReviewArgs_Req_DEFAULT *MGetDocumentReviewRequest\n\nfunc (p *DatasetServiceMGetDocumentReviewArgs) GetReq() (v *MGetDocumentReviewRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceMGetDocumentReviewArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceMGetDocumentReviewArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceMGetDocumentReviewArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewMGetDocumentReviewRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetDocumentReview_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceMGetDocumentReviewArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceMGetDocumentReviewResult struct {\n\tSuccess *MGetDocumentReviewResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceMGetDocumentReviewResult() *DatasetServiceMGetDocumentReviewResult {\n\treturn &DatasetServiceMGetDocumentReviewResult{}\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewResult) InitDefault() {\n}\n\nvar DatasetServiceMGetDocumentReviewResult_Success_DEFAULT *MGetDocumentReviewResponse\n\nfunc (p *DatasetServiceMGetDocumentReviewResult) GetSuccess() (v *MGetDocumentReviewResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceMGetDocumentReviewResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceMGetDocumentReviewResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceMGetDocumentReviewResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewMGetDocumentReviewResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetDocumentReview_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceMGetDocumentReviewResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceMGetDocumentReviewResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceSaveDocumentReviewArgs struct {\n\tReq *SaveDocumentReviewRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceSaveDocumentReviewArgs() *DatasetServiceSaveDocumentReviewArgs {\n\treturn &DatasetServiceSaveDocumentReviewArgs{}\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewArgs) InitDefault() {\n}\n\nvar DatasetServiceSaveDocumentReviewArgs_Req_DEFAULT *SaveDocumentReviewRequest\n\nfunc (p *DatasetServiceSaveDocumentReviewArgs) GetReq() (v *SaveDocumentReviewRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceSaveDocumentReviewArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceSaveDocumentReviewArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceSaveDocumentReviewArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewSaveDocumentReviewRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveDocumentReview_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceSaveDocumentReviewArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceSaveDocumentReviewResult struct {\n\tSuccess *SaveDocumentReviewResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceSaveDocumentReviewResult() *DatasetServiceSaveDocumentReviewResult {\n\treturn &DatasetServiceSaveDocumentReviewResult{}\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewResult) InitDefault() {\n}\n\nvar DatasetServiceSaveDocumentReviewResult_Success_DEFAULT *SaveDocumentReviewResponse\n\nfunc (p *DatasetServiceSaveDocumentReviewResult) GetSuccess() (v *SaveDocumentReviewResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceSaveDocumentReviewResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceSaveDocumentReviewResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceSaveDocumentReviewResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewSaveDocumentReviewResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveDocumentReview_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceSaveDocumentReviewResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceSaveDocumentReviewResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateDocumentOpenAPIArgs struct {\n\tReq *CreateDocumentRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceCreateDocumentOpenAPIArgs() *DatasetServiceCreateDocumentOpenAPIArgs {\n\treturn &DatasetServiceCreateDocumentOpenAPIArgs{}\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIArgs) InitDefault() {\n}\n\nvar DatasetServiceCreateDocumentOpenAPIArgs_Req_DEFAULT *CreateDocumentRequest\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIArgs) GetReq() (v *CreateDocumentRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceCreateDocumentOpenAPIArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceCreateDocumentOpenAPIArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateDocumentOpenAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateDocumentRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDocumentOpenAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateDocumentOpenAPIArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateDocumentOpenAPIResult struct {\n\tSuccess *CreateDocumentResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceCreateDocumentOpenAPIResult() *DatasetServiceCreateDocumentOpenAPIResult {\n\treturn &DatasetServiceCreateDocumentOpenAPIResult{}\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIResult) InitDefault() {\n}\n\nvar DatasetServiceCreateDocumentOpenAPIResult_Success_DEFAULT *CreateDocumentResponse\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIResult) GetSuccess() (v *CreateDocumentResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceCreateDocumentOpenAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceCreateDocumentOpenAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateDocumentOpenAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateDocumentResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDocumentOpenAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDocumentOpenAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateDocumentOpenAPIResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdateDocumentOpenAPIArgs struct {\n\tReq *UpdateDocumentRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceUpdateDocumentOpenAPIArgs() *DatasetServiceUpdateDocumentOpenAPIArgs {\n\treturn &DatasetServiceUpdateDocumentOpenAPIArgs{}\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIArgs) InitDefault() {\n}\n\nvar DatasetServiceUpdateDocumentOpenAPIArgs_Req_DEFAULT *UpdateDocumentRequest\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIArgs) GetReq() (v *UpdateDocumentRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceUpdateDocumentOpenAPIArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceUpdateDocumentOpenAPIArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdateDocumentOpenAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDocumentRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDocumentOpenAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdateDocumentOpenAPIArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdateDocumentOpenAPIResult struct {\n\tSuccess *UpdateDocumentResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceUpdateDocumentOpenAPIResult() *DatasetServiceUpdateDocumentOpenAPIResult {\n\treturn &DatasetServiceUpdateDocumentOpenAPIResult{}\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIResult) InitDefault() {\n}\n\nvar DatasetServiceUpdateDocumentOpenAPIResult_Success_DEFAULT *UpdateDocumentResponse\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIResult) GetSuccess() (v *UpdateDocumentResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceUpdateDocumentOpenAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceUpdateDocumentOpenAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdateDocumentOpenAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDocumentResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDocumentOpenAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDocumentOpenAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdateDocumentOpenAPIResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceListDocumentOpenAPIArgs struct {\n\tReq *ListDocumentRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceListDocumentOpenAPIArgs() *DatasetServiceListDocumentOpenAPIArgs {\n\treturn &DatasetServiceListDocumentOpenAPIArgs{}\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIArgs) InitDefault() {\n}\n\nvar DatasetServiceListDocumentOpenAPIArgs_Req_DEFAULT *ListDocumentRequest\n\nfunc (p *DatasetServiceListDocumentOpenAPIArgs) GetReq() (v *ListDocumentRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceListDocumentOpenAPIArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceListDocumentOpenAPIArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListDocumentOpenAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListDocumentRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDocumentOpenAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListDocumentOpenAPIArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceListDocumentOpenAPIResult struct {\n\tSuccess *ListDocumentResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceListDocumentOpenAPIResult() *DatasetServiceListDocumentOpenAPIResult {\n\treturn &DatasetServiceListDocumentOpenAPIResult{}\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIResult) InitDefault() {\n}\n\nvar DatasetServiceListDocumentOpenAPIResult_Success_DEFAULT *ListDocumentResponse\n\nfunc (p *DatasetServiceListDocumentOpenAPIResult) GetSuccess() (v *ListDocumentResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceListDocumentOpenAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceListDocumentOpenAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListDocumentOpenAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListDocumentResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDocumentOpenAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDocumentOpenAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListDocumentOpenAPIResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateDatasetOpenAPIArgs struct {\n\tReq *CreateDatasetOpenApiRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceCreateDatasetOpenAPIArgs() *DatasetServiceCreateDatasetOpenAPIArgs {\n\treturn &DatasetServiceCreateDatasetOpenAPIArgs{}\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIArgs) InitDefault() {\n}\n\nvar DatasetServiceCreateDatasetOpenAPIArgs_Req_DEFAULT *CreateDatasetOpenApiRequest\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIArgs) GetReq() (v *CreateDatasetOpenApiRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceCreateDatasetOpenAPIArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceCreateDatasetOpenAPIArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateDatasetOpenAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateDatasetOpenApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDatasetOpenAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateDatasetOpenAPIArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceCreateDatasetOpenAPIResult struct {\n\tSuccess *CreateDatasetOpenApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceCreateDatasetOpenAPIResult() *DatasetServiceCreateDatasetOpenAPIResult {\n\treturn &DatasetServiceCreateDatasetOpenAPIResult{}\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIResult) InitDefault() {\n}\n\nvar DatasetServiceCreateDatasetOpenAPIResult_Success_DEFAULT *CreateDatasetOpenApiResponse\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIResult) GetSuccess() (v *CreateDatasetOpenApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceCreateDatasetOpenAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceCreateDatasetOpenAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceCreateDatasetOpenAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateDatasetOpenApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDatasetOpenAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceCreateDatasetOpenAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceCreateDatasetOpenAPIResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceListDatasetOpenAPIArgs struct {\n\tReq *ListDatasetOpenApiRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceListDatasetOpenAPIArgs() *DatasetServiceListDatasetOpenAPIArgs {\n\treturn &DatasetServiceListDatasetOpenAPIArgs{}\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIArgs) InitDefault() {\n}\n\nvar DatasetServiceListDatasetOpenAPIArgs_Req_DEFAULT *ListDatasetOpenApiRequest\n\nfunc (p *DatasetServiceListDatasetOpenAPIArgs) GetReq() (v *ListDatasetOpenApiRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceListDatasetOpenAPIArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceListDatasetOpenAPIArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListDatasetOpenAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListDatasetOpenApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatasetOpenAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListDatasetOpenAPIArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceListDatasetOpenAPIResult struct {\n\tSuccess *ListDatasetOpenApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceListDatasetOpenAPIResult() *DatasetServiceListDatasetOpenAPIResult {\n\treturn &DatasetServiceListDatasetOpenAPIResult{}\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIResult) InitDefault() {\n}\n\nvar DatasetServiceListDatasetOpenAPIResult_Success_DEFAULT *ListDatasetOpenApiResponse\n\nfunc (p *DatasetServiceListDatasetOpenAPIResult) GetSuccess() (v *ListDatasetOpenApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceListDatasetOpenAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceListDatasetOpenAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListDatasetOpenAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListDatasetOpenApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListDatasetOpenAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListDatasetOpenAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListDatasetOpenAPIResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdateDatasetOpenAPIArgs struct {\n\tReq *UpdateDatasetOpenApiRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceUpdateDatasetOpenAPIArgs() *DatasetServiceUpdateDatasetOpenAPIArgs {\n\treturn &DatasetServiceUpdateDatasetOpenAPIArgs{}\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIArgs) InitDefault() {\n}\n\nvar DatasetServiceUpdateDatasetOpenAPIArgs_Req_DEFAULT *UpdateDatasetOpenApiRequest\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIArgs) GetReq() (v *UpdateDatasetOpenApiRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceUpdateDatasetOpenAPIArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceUpdateDatasetOpenAPIArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdateDatasetOpenAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDatasetOpenApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatasetOpenAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdateDatasetOpenAPIArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceUpdateDatasetOpenAPIResult struct {\n\tSuccess *UpdateDatasetOpenApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceUpdateDatasetOpenAPIResult() *DatasetServiceUpdateDatasetOpenAPIResult {\n\treturn &DatasetServiceUpdateDatasetOpenAPIResult{}\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIResult) InitDefault() {\n}\n\nvar DatasetServiceUpdateDatasetOpenAPIResult_Success_DEFAULT *UpdateDatasetOpenApiResponse\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIResult) GetSuccess() (v *UpdateDatasetOpenApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceUpdateDatasetOpenAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceUpdateDatasetOpenAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceUpdateDatasetOpenAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDatasetOpenApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDatasetOpenAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceUpdateDatasetOpenAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceUpdateDatasetOpenAPIResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceDeleteDatasetOpenAPIArgs struct {\n\tReq *DeleteDatasetOpenApiRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceDeleteDatasetOpenAPIArgs() *DatasetServiceDeleteDatasetOpenAPIArgs {\n\treturn &DatasetServiceDeleteDatasetOpenAPIArgs{}\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIArgs) InitDefault() {\n}\n\nvar DatasetServiceDeleteDatasetOpenAPIArgs_Req_DEFAULT *DeleteDatasetOpenApiRequest\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIArgs) GetReq() (v *DeleteDatasetOpenApiRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceDeleteDatasetOpenAPIArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceDeleteDatasetOpenAPIArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceDeleteDatasetOpenAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteDatasetOpenApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDatasetOpenAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceDeleteDatasetOpenAPIArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceDeleteDatasetOpenAPIResult struct {\n\tSuccess *DeleteDatasetOpenApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceDeleteDatasetOpenAPIResult() *DatasetServiceDeleteDatasetOpenAPIResult {\n\treturn &DatasetServiceDeleteDatasetOpenAPIResult{}\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIResult) InitDefault() {\n}\n\nvar DatasetServiceDeleteDatasetOpenAPIResult_Success_DEFAULT *DeleteDatasetOpenApiResponse\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIResult) GetSuccess() (v *DeleteDatasetOpenApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceDeleteDatasetOpenAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceDeleteDatasetOpenAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceDeleteDatasetOpenAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteDatasetOpenApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteDatasetOpenAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceDeleteDatasetOpenAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceDeleteDatasetOpenAPIResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceListPhotoDocumentOpenAPIArgs struct {\n\tReq *ListPhotoOpenApiRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceListPhotoDocumentOpenAPIArgs() *DatasetServiceListPhotoDocumentOpenAPIArgs {\n\treturn &DatasetServiceListPhotoDocumentOpenAPIArgs{}\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIArgs) InitDefault() {\n}\n\nvar DatasetServiceListPhotoDocumentOpenAPIArgs_Req_DEFAULT *ListPhotoOpenApiRequest\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIArgs) GetReq() (v *ListPhotoOpenApiRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceListPhotoDocumentOpenAPIArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceListPhotoDocumentOpenAPIArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListPhotoDocumentOpenAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListPhotoOpenApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPhotoDocumentOpenAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListPhotoDocumentOpenAPIArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceListPhotoDocumentOpenAPIResult struct {\n\tSuccess *ListPhotoOpenApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceListPhotoDocumentOpenAPIResult() *DatasetServiceListPhotoDocumentOpenAPIResult {\n\treturn &DatasetServiceListPhotoDocumentOpenAPIResult{}\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIResult) InitDefault() {\n}\n\nvar DatasetServiceListPhotoDocumentOpenAPIResult_Success_DEFAULT *ListPhotoOpenApiResponse\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIResult) GetSuccess() (v *ListPhotoOpenApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceListPhotoDocumentOpenAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceListPhotoDocumentOpenAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceListPhotoDocumentOpenAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListPhotoOpenApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPhotoDocumentOpenAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceListPhotoDocumentOpenAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceListPhotoDocumentOpenAPIResult(%+v)\", *p)\n\n}\n\ntype DatasetServiceGetDocumentProgressOpenAPIArgs struct {\n\tReq *GetDocumentProgressOpenApiRequest `thrift:\"req,1\"`\n}\n\nfunc NewDatasetServiceGetDocumentProgressOpenAPIArgs() *DatasetServiceGetDocumentProgressOpenAPIArgs {\n\treturn &DatasetServiceGetDocumentProgressOpenAPIArgs{}\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIArgs) InitDefault() {\n}\n\nvar DatasetServiceGetDocumentProgressOpenAPIArgs_Req_DEFAULT *GetDocumentProgressOpenApiRequest\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIArgs) GetReq() (v *GetDocumentProgressOpenApiRequest) {\n\tif !p.IsSetReq() {\n\t\treturn DatasetServiceGetDocumentProgressOpenAPIArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_DatasetServiceGetDocumentProgressOpenAPIArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetDocumentProgressOpenAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDocumentProgressOpenApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentProgressOpenAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetDocumentProgressOpenAPIArgs(%+v)\", *p)\n\n}\n\ntype DatasetServiceGetDocumentProgressOpenAPIResult struct {\n\tSuccess *GetDocumentProgressOpenApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewDatasetServiceGetDocumentProgressOpenAPIResult() *DatasetServiceGetDocumentProgressOpenAPIResult {\n\treturn &DatasetServiceGetDocumentProgressOpenAPIResult{}\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIResult) InitDefault() {\n}\n\nvar DatasetServiceGetDocumentProgressOpenAPIResult_Success_DEFAULT *GetDocumentProgressOpenApiResponse\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIResult) GetSuccess() (v *GetDocumentProgressOpenApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn DatasetServiceGetDocumentProgressOpenAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_DatasetServiceGetDocumentProgressOpenAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetServiceGetDocumentProgressOpenAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetDocumentProgressOpenApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDocumentProgressOpenAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *DatasetServiceGetDocumentProgressOpenAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetServiceGetDocumentProgressOpenAPIResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/data/knowledge/review.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage knowledge\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype ReviewInput struct {\n\tDocumentName string `thrift:\"document_name,1\" form:\"document_name\" json:\"document_name\" query:\"document_name\"`\n\tDocumentType string `thrift:\"document_type,2\" form:\"document_type\" json:\"document_type\" query:\"document_type\"`\n\tTosURI       string `thrift:\"tos_uri,3\" form:\"tos_uri\" json:\"tos_uri\" query:\"tos_uri\"`\n\tDocumentID   *int64 `thrift:\"document_id,4,optional\" form:\"document_id\" json:\"document_id,string,omitempty\" query:\"document_id\"`\n}\n\nfunc NewReviewInput() *ReviewInput {\n\treturn &ReviewInput{}\n}\n\nfunc (p *ReviewInput) InitDefault() {\n}\n\nfunc (p *ReviewInput) GetDocumentName() (v string) {\n\treturn p.DocumentName\n}\n\nfunc (p *ReviewInput) GetDocumentType() (v string) {\n\treturn p.DocumentType\n}\n\nfunc (p *ReviewInput) GetTosURI() (v string) {\n\treturn p.TosURI\n}\n\nvar ReviewInput_DocumentID_DEFAULT int64\n\nfunc (p *ReviewInput) GetDocumentID() (v int64) {\n\tif !p.IsSetDocumentID() {\n\t\treturn ReviewInput_DocumentID_DEFAULT\n\t}\n\treturn *p.DocumentID\n}\n\nvar fieldIDToName_ReviewInput = map[int16]string{\n\t1: \"document_name\",\n\t2: \"document_type\",\n\t3: \"tos_uri\",\n\t4: \"document_id\",\n}\n\nfunc (p *ReviewInput) IsSetDocumentID() bool {\n\treturn p.DocumentID != nil\n}\n\nfunc (p *ReviewInput) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ReviewInput[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ReviewInput) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentName = _field\n\treturn nil\n}\nfunc (p *ReviewInput) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentType = _field\n\treturn nil\n}\nfunc (p *ReviewInput) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TosURI = _field\n\treturn nil\n}\nfunc (p *ReviewInput) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\n\nfunc (p *ReviewInput) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ReviewInput\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ReviewInput) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DocumentName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ReviewInput) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DocumentType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ReviewInput) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tos_uri\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TosURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ReviewInput) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDocumentID() {\n\t\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.DocumentID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *ReviewInput) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ReviewInput(%+v)\", *p)\n\n}\n\ntype Review struct {\n\tReviewID     *int64 `thrift:\"review_id,1,optional\" form:\"review_id\" json:\"review_id,string,omitempty\" query:\"review_id\"`\n\tDocumentName string `thrift:\"document_name,2\" form:\"document_name\" json:\"document_name\" query:\"document_name\"`\n\tDocumentType string `thrift:\"document_type,3\" form:\"document_type\" json:\"document_type\" query:\"document_type\"`\n\tTosURL       string `thrift:\"tos_url,4\" form:\"tos_url\" json:\"tos_url\" query:\"tos_url\"`\n\t// status\n\tStatus        *ReviewStatus `thrift:\"status,5,optional\" form:\"status\" json:\"status,omitempty\" query:\"status\"`\n\tDocTreeTosURL *string       `thrift:\"doc_tree_tos_url,6,optional\" form:\"doc_tree_tos_url\" json:\"doc_tree_tos_url,omitempty\" query:\"doc_tree_tos_url\"`\n\tPreviewTosURL *string       `thrift:\"preview_tos_url,7,optional\" form:\"preview_tos_url\" json:\"preview_tos_url,omitempty\" query:\"preview_tos_url\"`\n}\n\nfunc NewReview() *Review {\n\treturn &Review{}\n}\n\nfunc (p *Review) InitDefault() {\n}\n\nvar Review_ReviewID_DEFAULT int64\n\nfunc (p *Review) GetReviewID() (v int64) {\n\tif !p.IsSetReviewID() {\n\t\treturn Review_ReviewID_DEFAULT\n\t}\n\treturn *p.ReviewID\n}\n\nfunc (p *Review) GetDocumentName() (v string) {\n\treturn p.DocumentName\n}\n\nfunc (p *Review) GetDocumentType() (v string) {\n\treturn p.DocumentType\n}\n\nfunc (p *Review) GetTosURL() (v string) {\n\treturn p.TosURL\n}\n\nvar Review_Status_DEFAULT ReviewStatus\n\nfunc (p *Review) GetStatus() (v ReviewStatus) {\n\tif !p.IsSetStatus() {\n\t\treturn Review_Status_DEFAULT\n\t}\n\treturn *p.Status\n}\n\nvar Review_DocTreeTosURL_DEFAULT string\n\nfunc (p *Review) GetDocTreeTosURL() (v string) {\n\tif !p.IsSetDocTreeTosURL() {\n\t\treturn Review_DocTreeTosURL_DEFAULT\n\t}\n\treturn *p.DocTreeTosURL\n}\n\nvar Review_PreviewTosURL_DEFAULT string\n\nfunc (p *Review) GetPreviewTosURL() (v string) {\n\tif !p.IsSetPreviewTosURL() {\n\t\treturn Review_PreviewTosURL_DEFAULT\n\t}\n\treturn *p.PreviewTosURL\n}\n\nvar fieldIDToName_Review = map[int16]string{\n\t1: \"review_id\",\n\t2: \"document_name\",\n\t3: \"document_type\",\n\t4: \"tos_url\",\n\t5: \"status\",\n\t6: \"doc_tree_tos_url\",\n\t7: \"preview_tos_url\",\n}\n\nfunc (p *Review) IsSetReviewID() bool {\n\treturn p.ReviewID != nil\n}\n\nfunc (p *Review) IsSetStatus() bool {\n\treturn p.Status != nil\n}\n\nfunc (p *Review) IsSetDocTreeTosURL() bool {\n\treturn p.DocTreeTosURL != nil\n}\n\nfunc (p *Review) IsSetPreviewTosURL() bool {\n\treturn p.PreviewTosURL != nil\n}\n\nfunc (p *Review) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Review[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Review) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ReviewID = _field\n\treturn nil\n}\nfunc (p *Review) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentName = _field\n\treturn nil\n}\nfunc (p *Review) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentType = _field\n\treturn nil\n}\nfunc (p *Review) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TosURL = _field\n\treturn nil\n}\nfunc (p *Review) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *ReviewStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ReviewStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *Review) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DocTreeTosURL = _field\n\treturn nil\n}\nfunc (p *Review) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PreviewTosURL = _field\n\treturn nil\n}\n\nfunc (p *Review) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Review\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Review) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReviewID() {\n\t\tif err = oprot.WriteFieldBegin(\"review_id\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ReviewID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Review) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DocumentName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Review) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_type\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DocumentType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Review) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tos_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TosURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Review) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Status)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Review) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDocTreeTosURL() {\n\t\tif err = oprot.WriteFieldBegin(\"doc_tree_tos_url\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DocTreeTosURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Review) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPreviewTosURL() {\n\t\tif err = oprot.WriteFieldBegin(\"preview_tos_url\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PreviewTosURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *Review) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Review(%+v)\", *p)\n\n}\n\ntype CreateDocumentReviewRequest struct {\n\tDatasetID       int64            `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id,string\" query:\"dataset_id\"`\n\tReviews         []*ReviewInput   `thrift:\"reviews,2\" form:\"reviews\" json:\"reviews\" query:\"reviews\"`\n\tChunkStrategy   *ChunkStrategy   `thrift:\"chunk_strategy,3,optional\" form:\"chunk_strategy\" json:\"chunk_strategy,omitempty\" query:\"chunk_strategy\"`\n\tParsingStrategy *ParsingStrategy `thrift:\"parsing_strategy,4,optional\" form:\"parsing_strategy\" json:\"parsing_strategy,omitempty\" query:\"parsing_strategy\"`\n\tBase            *base.Base       `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCreateDocumentReviewRequest() *CreateDocumentReviewRequest {\n\treturn &CreateDocumentReviewRequest{}\n}\n\nfunc (p *CreateDocumentReviewRequest) InitDefault() {\n}\n\nfunc (p *CreateDocumentReviewRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nfunc (p *CreateDocumentReviewRequest) GetReviews() (v []*ReviewInput) {\n\treturn p.Reviews\n}\n\nvar CreateDocumentReviewRequest_ChunkStrategy_DEFAULT *ChunkStrategy\n\nfunc (p *CreateDocumentReviewRequest) GetChunkStrategy() (v *ChunkStrategy) {\n\tif !p.IsSetChunkStrategy() {\n\t\treturn CreateDocumentReviewRequest_ChunkStrategy_DEFAULT\n\t}\n\treturn p.ChunkStrategy\n}\n\nvar CreateDocumentReviewRequest_ParsingStrategy_DEFAULT *ParsingStrategy\n\nfunc (p *CreateDocumentReviewRequest) GetParsingStrategy() (v *ParsingStrategy) {\n\tif !p.IsSetParsingStrategy() {\n\t\treturn CreateDocumentReviewRequest_ParsingStrategy_DEFAULT\n\t}\n\treturn p.ParsingStrategy\n}\n\nvar CreateDocumentReviewRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateDocumentReviewRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateDocumentReviewRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateDocumentReviewRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t2:   \"reviews\",\n\t3:   \"chunk_strategy\",\n\t4:   \"parsing_strategy\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateDocumentReviewRequest) IsSetChunkStrategy() bool {\n\treturn p.ChunkStrategy != nil\n}\n\nfunc (p *CreateDocumentReviewRequest) IsSetParsingStrategy() bool {\n\treturn p.ParsingStrategy != nil\n}\n\nfunc (p *CreateDocumentReviewRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateDocumentReviewRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateDocumentReviewRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateDocumentReviewRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *CreateDocumentReviewRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ReviewInput, 0, size)\n\tvalues := make([]ReviewInput, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Reviews = _field\n\treturn nil\n}\nfunc (p *CreateDocumentReviewRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewChunkStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ChunkStrategy = _field\n\treturn nil\n}\nfunc (p *CreateDocumentReviewRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewParsingStrategy()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ParsingStrategy = _field\n\treturn nil\n}\nfunc (p *CreateDocumentReviewRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateDocumentReviewRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDocumentReviewRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateDocumentReviewRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateDocumentReviewRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"reviews\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Reviews)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Reviews {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateDocumentReviewRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChunkStrategy() {\n\t\tif err = oprot.WriteFieldBegin(\"chunk_strategy\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ChunkStrategy.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateDocumentReviewRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParsingStrategy() {\n\t\tif err = oprot.WriteFieldBegin(\"parsing_strategy\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ParsingStrategy.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CreateDocumentReviewRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateDocumentReviewRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateDocumentReviewRequest(%+v)\", *p)\n\n}\n\ntype CreateDocumentReviewResponse struct {\n\tDatasetID int64          `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id,string\" query:\"dataset_id\"`\n\tReviews   []*Review      `thrift:\"reviews,2\" form:\"reviews\" json:\"reviews\" query:\"reviews\"`\n\tCode      int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg       string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp  *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCreateDocumentReviewResponse() *CreateDocumentReviewResponse {\n\treturn &CreateDocumentReviewResponse{}\n}\n\nfunc (p *CreateDocumentReviewResponse) InitDefault() {\n}\n\nfunc (p *CreateDocumentReviewResponse) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nfunc (p *CreateDocumentReviewResponse) GetReviews() (v []*Review) {\n\treturn p.Reviews\n}\n\nfunc (p *CreateDocumentReviewResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CreateDocumentReviewResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CreateDocumentReviewResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateDocumentReviewResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateDocumentReviewResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateDocumentReviewResponse = map[int16]string{\n\t1:   \"dataset_id\",\n\t2:   \"reviews\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateDocumentReviewResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateDocumentReviewResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateDocumentReviewResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateDocumentReviewResponse[fieldId]))\n}\n\nfunc (p *CreateDocumentReviewResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *CreateDocumentReviewResponse) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Review, 0, size)\n\tvalues := make([]Review, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Reviews = _field\n\treturn nil\n}\nfunc (p *CreateDocumentReviewResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateDocumentReviewResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateDocumentReviewResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateDocumentReviewResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateDocumentReviewResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateDocumentReviewResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateDocumentReviewResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"reviews\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Reviews)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Reviews {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateDocumentReviewResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CreateDocumentReviewResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CreateDocumentReviewResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateDocumentReviewResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateDocumentReviewResponse(%+v)\", *p)\n\n}\n\ntype MGetDocumentReviewRequest struct {\n\tDatasetID int64      `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id,string\" query:\"dataset_id\"`\n\tReviewIds []string   `thrift:\"review_ids,2\" form:\"review_ids\" json:\"review_ids\" query:\"review_ids\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewMGetDocumentReviewRequest() *MGetDocumentReviewRequest {\n\treturn &MGetDocumentReviewRequest{}\n}\n\nfunc (p *MGetDocumentReviewRequest) InitDefault() {\n}\n\nfunc (p *MGetDocumentReviewRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nfunc (p *MGetDocumentReviewRequest) GetReviewIds() (v []string) {\n\treturn p.ReviewIds\n}\n\nvar MGetDocumentReviewRequest_Base_DEFAULT *base.Base\n\nfunc (p *MGetDocumentReviewRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn MGetDocumentReviewRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_MGetDocumentReviewRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t2:   \"review_ids\",\n\t255: \"Base\",\n}\n\nfunc (p *MGetDocumentReviewRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *MGetDocumentReviewRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MGetDocumentReviewRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MGetDocumentReviewRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *MGetDocumentReviewRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ReviewIds = _field\n\treturn nil\n}\nfunc (p *MGetDocumentReviewRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *MGetDocumentReviewRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetDocumentReviewRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MGetDocumentReviewRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MGetDocumentReviewRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"review_ids\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.ReviewIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ReviewIds {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MGetDocumentReviewRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MGetDocumentReviewRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MGetDocumentReviewRequest(%+v)\", *p)\n\n}\n\ntype MGetDocumentReviewResponse struct {\n\tDatasetID int64          `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id,string\" query:\"dataset_id\"`\n\tReviews   []*Review      `thrift:\"reviews,2\" form:\"reviews\" json:\"reviews\" query:\"reviews\"`\n\tCode      int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg       string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp  *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewMGetDocumentReviewResponse() *MGetDocumentReviewResponse {\n\treturn &MGetDocumentReviewResponse{}\n}\n\nfunc (p *MGetDocumentReviewResponse) InitDefault() {\n}\n\nfunc (p *MGetDocumentReviewResponse) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nfunc (p *MGetDocumentReviewResponse) GetReviews() (v []*Review) {\n\treturn p.Reviews\n}\n\nfunc (p *MGetDocumentReviewResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *MGetDocumentReviewResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar MGetDocumentReviewResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *MGetDocumentReviewResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn MGetDocumentReviewResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_MGetDocumentReviewResponse = map[int16]string{\n\t1:   \"dataset_id\",\n\t2:   \"reviews\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *MGetDocumentReviewResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *MGetDocumentReviewResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MGetDocumentReviewResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_MGetDocumentReviewResponse[fieldId]))\n}\n\nfunc (p *MGetDocumentReviewResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *MGetDocumentReviewResponse) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Review, 0, size)\n\tvalues := make([]Review, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Reviews = _field\n\treturn nil\n}\nfunc (p *MGetDocumentReviewResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *MGetDocumentReviewResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *MGetDocumentReviewResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *MGetDocumentReviewResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetDocumentReviewResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MGetDocumentReviewResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MGetDocumentReviewResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"reviews\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Reviews)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Reviews {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MGetDocumentReviewResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *MGetDocumentReviewResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *MGetDocumentReviewResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MGetDocumentReviewResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MGetDocumentReviewResponse(%+v)\", *p)\n\n}\n\ntype SaveDocumentReviewRequest struct {\n\tDatasetID   int64      `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id,string\" query:\"dataset_id\"`\n\tReviewID    int64      `thrift:\"review_id,2\" form:\"review_id\" json:\"review_id,string\" query:\"review_id\"`\n\tDocTreeJSON string     `thrift:\"doc_tree_json,3\" form:\"doc_tree_json\" json:\"doc_tree_json\" query:\"doc_tree_json\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewSaveDocumentReviewRequest() *SaveDocumentReviewRequest {\n\treturn &SaveDocumentReviewRequest{}\n}\n\nfunc (p *SaveDocumentReviewRequest) InitDefault() {\n}\n\nfunc (p *SaveDocumentReviewRequest) GetDatasetID() (v int64) {\n\treturn p.DatasetID\n}\n\nfunc (p *SaveDocumentReviewRequest) GetReviewID() (v int64) {\n\treturn p.ReviewID\n}\n\nfunc (p *SaveDocumentReviewRequest) GetDocTreeJSON() (v string) {\n\treturn p.DocTreeJSON\n}\n\nvar SaveDocumentReviewRequest_Base_DEFAULT *base.Base\n\nfunc (p *SaveDocumentReviewRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SaveDocumentReviewRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SaveDocumentReviewRequest = map[int16]string{\n\t1:   \"dataset_id\",\n\t2:   \"review_id\",\n\t3:   \"doc_tree_json\",\n\t255: \"Base\",\n}\n\nfunc (p *SaveDocumentReviewRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SaveDocumentReviewRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SaveDocumentReviewRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SaveDocumentReviewRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *SaveDocumentReviewRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReviewID = _field\n\treturn nil\n}\nfunc (p *SaveDocumentReviewRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocTreeJSON = _field\n\treturn nil\n}\nfunc (p *SaveDocumentReviewRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SaveDocumentReviewRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveDocumentReviewRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SaveDocumentReviewRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SaveDocumentReviewRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"review_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ReviewID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SaveDocumentReviewRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"doc_tree_json\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DocTreeJSON); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SaveDocumentReviewRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SaveDocumentReviewRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SaveDocumentReviewRequest(%+v)\", *p)\n\n}\n\ntype SaveDocumentReviewResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewSaveDocumentReviewResponse() *SaveDocumentReviewResponse {\n\treturn &SaveDocumentReviewResponse{}\n}\n\nfunc (p *SaveDocumentReviewResponse) InitDefault() {\n}\n\nfunc (p *SaveDocumentReviewResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *SaveDocumentReviewResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar SaveDocumentReviewResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SaveDocumentReviewResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SaveDocumentReviewResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SaveDocumentReviewResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *SaveDocumentReviewResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SaveDocumentReviewResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SaveDocumentReviewResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SaveDocumentReviewResponse[fieldId]))\n}\n\nfunc (p *SaveDocumentReviewResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *SaveDocumentReviewResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *SaveDocumentReviewResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SaveDocumentReviewResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveDocumentReviewResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SaveDocumentReviewResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *SaveDocumentReviewResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *SaveDocumentReviewResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SaveDocumentReviewResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SaveDocumentReviewResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/data/knowledge/slice.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage knowledge\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype SliceStatus int64\n\nconst (\n\t// unvectorized\n\tSliceStatus_PendingVectoring SliceStatus = 0\n\t// vectorized\n\tSliceStatus_FinishVectoring SliceStatus = 1\n\t// disable\n\tSliceStatus_Deactive SliceStatus = 9\n)\n\nfunc (p SliceStatus) String() string {\n\tswitch p {\n\tcase SliceStatus_PendingVectoring:\n\t\treturn \"PendingVectoring\"\n\tcase SliceStatus_FinishVectoring:\n\t\treturn \"FinishVectoring\"\n\tcase SliceStatus_Deactive:\n\t\treturn \"Deactive\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SliceStatusFromString(s string) (SliceStatus, error) {\n\tswitch s {\n\tcase \"PendingVectoring\":\n\t\treturn SliceStatus_PendingVectoring, nil\n\tcase \"FinishVectoring\":\n\t\treturn SliceStatus_FinishVectoring, nil\n\tcase \"Deactive\":\n\t\treturn SliceStatus_Deactive, nil\n\t}\n\treturn SliceStatus(0), fmt.Errorf(\"not a valid SliceStatus string\")\n}\n\nfunc SliceStatusPtr(v SliceStatus) *SliceStatus { return &v }\nfunc (p *SliceStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SliceStatus(result.Int64)\n\treturn\n}\n\nfunc (p *SliceStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DeleteSliceRequest struct {\n\t// List of sharding IDs to delete\n\tSliceIds []string   `thrift:\"slice_ids,4,optional\" form:\"slice_ids\" json:\"slice_ids,omitempty\"`\n\tBase     *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteSliceRequest() *DeleteSliceRequest {\n\treturn &DeleteSliceRequest{}\n}\n\nfunc (p *DeleteSliceRequest) InitDefault() {\n}\n\nvar DeleteSliceRequest_SliceIds_DEFAULT []string\n\nfunc (p *DeleteSliceRequest) GetSliceIds() (v []string) {\n\tif !p.IsSetSliceIds() {\n\t\treturn DeleteSliceRequest_SliceIds_DEFAULT\n\t}\n\treturn p.SliceIds\n}\n\nvar DeleteSliceRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteSliceRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteSliceRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteSliceRequest = map[int16]string{\n\t4:   \"slice_ids\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteSliceRequest) IsSetSliceIds() bool {\n\treturn p.SliceIds != nil\n}\n\nfunc (p *DeleteSliceRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteSliceRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteSliceRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteSliceRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SliceIds = _field\n\treturn nil\n}\nfunc (p *DeleteSliceRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteSliceRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteSliceRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteSliceRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSliceIds() {\n\t\tif err = oprot.WriteFieldBegin(\"slice_ids\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.SliceIds)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SliceIds {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DeleteSliceRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteSliceRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteSliceRequest(%+v)\", *p)\n\n}\n\ntype DeleteSliceResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDeleteSliceResponse() *DeleteSliceResponse {\n\treturn &DeleteSliceResponse{}\n}\n\nfunc (p *DeleteSliceResponse) InitDefault() {\n}\n\nfunc (p *DeleteSliceResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DeleteSliceResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DeleteSliceResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteSliceResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteSliceResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteSliceResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteSliceResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteSliceResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteSliceResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteSliceResponse[fieldId]))\n}\n\nfunc (p *DeleteSliceResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteSliceResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeleteSliceResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteSliceResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteSliceResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteSliceResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DeleteSliceResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DeleteSliceResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteSliceResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteSliceResponse(%+v)\", *p)\n\n}\n\ntype CreateSliceRequest struct {\n\t// Add sharding inserted document ID\n\tDocumentID int64 `thrift:\"document_id,2,required\" form:\"document_id,required\" json:\"document_id,string,required\" query:\"document_id,required\"`\n\t// Add sharding content\n\tRawText *string `thrift:\"raw_text,5,optional\" form:\"raw_text\" json:\"raw_text,omitempty\" query:\"raw_text\"`\n\t// Sharding insertion position, 1 indicates the beginning of the document, and the maximum value is the last sharding position + 1\n\tSequence *int64     `thrift:\"sequence,6,optional\" form:\"sequence\" json:\"sequence,string,omitempty\" query:\"sequence\"`\n\tBase     *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCreateSliceRequest() *CreateSliceRequest {\n\treturn &CreateSliceRequest{}\n}\n\nfunc (p *CreateSliceRequest) InitDefault() {\n}\n\nfunc (p *CreateSliceRequest) GetDocumentID() (v int64) {\n\treturn p.DocumentID\n}\n\nvar CreateSliceRequest_RawText_DEFAULT string\n\nfunc (p *CreateSliceRequest) GetRawText() (v string) {\n\tif !p.IsSetRawText() {\n\t\treturn CreateSliceRequest_RawText_DEFAULT\n\t}\n\treturn *p.RawText\n}\n\nvar CreateSliceRequest_Sequence_DEFAULT int64\n\nfunc (p *CreateSliceRequest) GetSequence() (v int64) {\n\tif !p.IsSetSequence() {\n\t\treturn CreateSliceRequest_Sequence_DEFAULT\n\t}\n\treturn *p.Sequence\n}\n\nvar CreateSliceRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateSliceRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateSliceRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateSliceRequest = map[int16]string{\n\t2:   \"document_id\",\n\t5:   \"raw_text\",\n\t6:   \"sequence\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateSliceRequest) IsSetRawText() bool {\n\treturn p.RawText != nil\n}\n\nfunc (p *CreateSliceRequest) IsSetSequence() bool {\n\treturn p.Sequence != nil\n}\n\nfunc (p *CreateSliceRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateSliceRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDocumentID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDocumentID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDocumentID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateSliceRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateSliceRequest[fieldId]))\n}\n\nfunc (p *CreateSliceRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *CreateSliceRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RawText = _field\n\treturn nil\n}\nfunc (p *CreateSliceRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Sequence = _field\n\treturn nil\n}\nfunc (p *CreateSliceRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateSliceRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateSliceRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateSliceRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DocumentID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateSliceRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRawText() {\n\t\tif err = oprot.WriteFieldBegin(\"raw_text\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.RawText); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *CreateSliceRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSequence() {\n\t\tif err = oprot.WriteFieldBegin(\"sequence\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Sequence); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *CreateSliceRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateSliceRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateSliceRequest(%+v)\", *p)\n\n}\n\ntype CreateSliceResponse struct {\n\t// Add sharding ID\n\tSliceID  int64          `thrift:\"slice_id,1\" form:\"slice_id\" json:\"slice_id,string\" query:\"slice_id\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewCreateSliceResponse() *CreateSliceResponse {\n\treturn &CreateSliceResponse{}\n}\n\nfunc (p *CreateSliceResponse) InitDefault() {\n}\n\nfunc (p *CreateSliceResponse) GetSliceID() (v int64) {\n\treturn p.SliceID\n}\n\nfunc (p *CreateSliceResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CreateSliceResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CreateSliceResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateSliceResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateSliceResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateSliceResponse = map[int16]string{\n\t1:   \"slice_id\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateSliceResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateSliceResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateSliceResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateSliceResponse[fieldId]))\n}\n\nfunc (p *CreateSliceResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SliceID = _field\n\treturn nil\n}\nfunc (p *CreateSliceResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateSliceResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateSliceResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateSliceResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateSliceResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateSliceResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"slice_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SliceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateSliceResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CreateSliceResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CreateSliceResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateSliceResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateSliceResponse(%+v)\", *p)\n\n}\n\ntype UpdateSliceRequest struct {\n\t// The sharding ID to update\n\tSliceID int64 `thrift:\"slice_id,2,required\" form:\"slice_id,required\" json:\"slice_id,string,required\" query:\"slice_id,required\"`\n\t// Content to be updated\n\tRawText *string    `thrift:\"raw_text,7,optional\" form:\"raw_text\" json:\"raw_text,omitempty\" query:\"raw_text\"`\n\tBase    *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateSliceRequest() *UpdateSliceRequest {\n\treturn &UpdateSliceRequest{}\n}\n\nfunc (p *UpdateSliceRequest) InitDefault() {\n}\n\nfunc (p *UpdateSliceRequest) GetSliceID() (v int64) {\n\treturn p.SliceID\n}\n\nvar UpdateSliceRequest_RawText_DEFAULT string\n\nfunc (p *UpdateSliceRequest) GetRawText() (v string) {\n\tif !p.IsSetRawText() {\n\t\treturn UpdateSliceRequest_RawText_DEFAULT\n\t}\n\treturn *p.RawText\n}\n\nvar UpdateSliceRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateSliceRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateSliceRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateSliceRequest = map[int16]string{\n\t2:   \"slice_id\",\n\t7:   \"raw_text\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateSliceRequest) IsSetRawText() bool {\n\treturn p.RawText != nil\n}\n\nfunc (p *UpdateSliceRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateSliceRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSliceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSliceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSliceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateSliceRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateSliceRequest[fieldId]))\n}\n\nfunc (p *UpdateSliceRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SliceID = _field\n\treturn nil\n}\nfunc (p *UpdateSliceRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RawText = _field\n\treturn nil\n}\nfunc (p *UpdateSliceRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateSliceRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateSliceRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateSliceRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"slice_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SliceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateSliceRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRawText() {\n\t\tif err = oprot.WriteFieldBegin(\"raw_text\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.RawText); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *UpdateSliceRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateSliceRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateSliceRequest(%+v)\", *p)\n\n}\n\ntype UpdateSliceResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewUpdateSliceResponse() *UpdateSliceResponse {\n\treturn &UpdateSliceResponse{}\n}\n\nfunc (p *UpdateSliceResponse) InitDefault() {\n}\n\nfunc (p *UpdateSliceResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateSliceResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateSliceResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateSliceResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateSliceResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateSliceResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateSliceResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateSliceResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateSliceResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateSliceResponse[fieldId]))\n}\n\nfunc (p *UpdateSliceResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateSliceResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateSliceResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateSliceResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateSliceResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateSliceResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateSliceResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateSliceResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateSliceResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateSliceResponse(%+v)\", *p)\n\n}\n\ntype ListSliceRequest struct {\n\t// The document ID of the sharding to list\n\tDocumentID *int64 `thrift:\"document_id,2,optional\" form:\"document_id\" json:\"document_id,string,omitempty\" query:\"document_id\"`\n\t// Sharding serial number, indicating that the list starts from the sharding of this serial number\n\tSequence *int64 `thrift:\"sequence,3,optional\" form:\"sequence\" json:\"sequence,string,omitempty\" query:\"sequence\"`\n\t// query keyword\n\tKeyword *string `thrift:\"keyword,4,optional\" form:\"keyword\" json:\"keyword,omitempty\" query:\"keyword\"`\n\t// If only dataset_id, return sharding under that knowledge base\n\tDatasetID *int64 `thrift:\"dataset_id,5,optional\" form:\"dataset_id\" json:\"dataset_id,string,omitempty\" query:\"dataset_id\"`\n\t// page size\n\tPageSize int64      `thrift:\"page_size,21\" form:\"page_size\" json:\"page_size,string\" query:\"page_size\"`\n\tBase     *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewListSliceRequest() *ListSliceRequest {\n\treturn &ListSliceRequest{}\n}\n\nfunc (p *ListSliceRequest) InitDefault() {\n}\n\nvar ListSliceRequest_DocumentID_DEFAULT int64\n\nfunc (p *ListSliceRequest) GetDocumentID() (v int64) {\n\tif !p.IsSetDocumentID() {\n\t\treturn ListSliceRequest_DocumentID_DEFAULT\n\t}\n\treturn *p.DocumentID\n}\n\nvar ListSliceRequest_Sequence_DEFAULT int64\n\nfunc (p *ListSliceRequest) GetSequence() (v int64) {\n\tif !p.IsSetSequence() {\n\t\treturn ListSliceRequest_Sequence_DEFAULT\n\t}\n\treturn *p.Sequence\n}\n\nvar ListSliceRequest_Keyword_DEFAULT string\n\nfunc (p *ListSliceRequest) GetKeyword() (v string) {\n\tif !p.IsSetKeyword() {\n\t\treturn ListSliceRequest_Keyword_DEFAULT\n\t}\n\treturn *p.Keyword\n}\n\nvar ListSliceRequest_DatasetID_DEFAULT int64\n\nfunc (p *ListSliceRequest) GetDatasetID() (v int64) {\n\tif !p.IsSetDatasetID() {\n\t\treturn ListSliceRequest_DatasetID_DEFAULT\n\t}\n\treturn *p.DatasetID\n}\n\nfunc (p *ListSliceRequest) GetPageSize() (v int64) {\n\treturn p.PageSize\n}\n\nvar ListSliceRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListSliceRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListSliceRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListSliceRequest = map[int16]string{\n\t2:   \"document_id\",\n\t3:   \"sequence\",\n\t4:   \"keyword\",\n\t5:   \"dataset_id\",\n\t21:  \"page_size\",\n\t255: \"Base\",\n}\n\nfunc (p *ListSliceRequest) IsSetDocumentID() bool {\n\treturn p.DocumentID != nil\n}\n\nfunc (p *ListSliceRequest) IsSetSequence() bool {\n\treturn p.Sequence != nil\n}\n\nfunc (p *ListSliceRequest) IsSetKeyword() bool {\n\treturn p.Keyword != nil\n}\n\nfunc (p *ListSliceRequest) IsSetDatasetID() bool {\n\treturn p.DatasetID != nil\n}\n\nfunc (p *ListSliceRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListSliceRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListSliceRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListSliceRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *ListSliceRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Sequence = _field\n\treturn nil\n}\nfunc (p *ListSliceRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *ListSliceRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *ListSliceRequest) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageSize = _field\n\treturn nil\n}\nfunc (p *ListSliceRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListSliceRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListSliceRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListSliceRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDocumentID() {\n\t\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.DocumentID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListSliceRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSequence() {\n\t\tif err = oprot.WriteFieldBegin(\"sequence\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Sequence); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListSliceRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKeyword() {\n\t\tif err = oprot.WriteFieldBegin(\"keyword\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Keyword); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListSliceRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDatasetID() {\n\t\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.DatasetID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListSliceRequest) writeField21(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"page_size\", thrift.I64, 21); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PageSize); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *ListSliceRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListSliceRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListSliceRequest(%+v)\", *p)\n\n}\n\ntype ListSliceResponse struct {\n\t// Returned list of shardings\n\tSlices []*SliceInfo `thrift:\"slices,1\" form:\"slices\" json:\"slices\" query:\"slices\"`\n\t// Total shardings\n\tTotal int64 `thrift:\"total,2\" form:\"total\" json:\"total,string\" query:\"total\"`\n\t// Is there more sharding?\n\tHasmore  bool           `thrift:\"hasmore,3\" form:\"hasmore\" json:\"hasmore\" query:\"hasmore\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewListSliceResponse() *ListSliceResponse {\n\treturn &ListSliceResponse{}\n}\n\nfunc (p *ListSliceResponse) InitDefault() {\n}\n\nfunc (p *ListSliceResponse) GetSlices() (v []*SliceInfo) {\n\treturn p.Slices\n}\n\nfunc (p *ListSliceResponse) GetTotal() (v int64) {\n\treturn p.Total\n}\n\nfunc (p *ListSliceResponse) GetHasmore() (v bool) {\n\treturn p.Hasmore\n}\n\nfunc (p *ListSliceResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListSliceResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ListSliceResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListSliceResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListSliceResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListSliceResponse = map[int16]string{\n\t1:   \"slices\",\n\t2:   \"total\",\n\t3:   \"hasmore\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListSliceResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListSliceResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListSliceResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListSliceResponse[fieldId]))\n}\n\nfunc (p *ListSliceResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*SliceInfo, 0, size)\n\tvalues := make([]SliceInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Slices = _field\n\treturn nil\n}\nfunc (p *ListSliceResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\nfunc (p *ListSliceResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Hasmore = _field\n\treturn nil\n}\nfunc (p *ListSliceResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListSliceResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListSliceResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListSliceResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListSliceResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListSliceResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"slices\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Slices)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Slices {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListSliceResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListSliceResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"hasmore\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Hasmore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListSliceResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListSliceResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ListSliceResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListSliceResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListSliceResponse(%+v)\", *p)\n\n}\n\ntype SliceInfo struct {\n\t// Sharding ID\n\tSliceID int64 `thrift:\"slice_id,1\" form:\"slice_id\" json:\"slice_id,string\" query:\"slice_id\"`\n\t// Sharding content\n\tContent string `thrift:\"content,2\" form:\"content\" json:\"content\" query:\"content\"`\n\t// Sharding state\n\tStatus SliceStatus `thrift:\"status,3\" form:\"status\" json:\"status\" query:\"status\"`\n\t// hit count\n\tHitCount int64 `thrift:\"hit_count,4\" form:\"hit_count\" json:\"hit_count,string\" query:\"hit_count\"`\n\t// character count\n\tCharCount int64 `thrift:\"char_count,5\" form:\"char_count\" json:\"char_count,string\" query:\"char_count\"`\n\t// serial number\n\tSequence int64 `thrift:\"sequence,7\" form:\"sequence\" json:\"sequence,string\" query:\"sequence\"`\n\t// The document ID to which sharding belongs\n\tDocumentID int64 `thrift:\"document_id,8\" form:\"document_id\" json:\"document_id,string\" query:\"document_id\"`\n\t// Meta information related to sharding, extra- > chunk_info field in the transparent slice table (json)\n\tChunkInfo string `thrift:\"chunk_info,9\" form:\"chunk_info\" json:\"chunk_info\" query:\"chunk_info\"`\n}\n\nfunc NewSliceInfo() *SliceInfo {\n\treturn &SliceInfo{}\n}\n\nfunc (p *SliceInfo) InitDefault() {\n}\n\nfunc (p *SliceInfo) GetSliceID() (v int64) {\n\treturn p.SliceID\n}\n\nfunc (p *SliceInfo) GetContent() (v string) {\n\treturn p.Content\n}\n\nfunc (p *SliceInfo) GetStatus() (v SliceStatus) {\n\treturn p.Status\n}\n\nfunc (p *SliceInfo) GetHitCount() (v int64) {\n\treturn p.HitCount\n}\n\nfunc (p *SliceInfo) GetCharCount() (v int64) {\n\treturn p.CharCount\n}\n\nfunc (p *SliceInfo) GetSequence() (v int64) {\n\treturn p.Sequence\n}\n\nfunc (p *SliceInfo) GetDocumentID() (v int64) {\n\treturn p.DocumentID\n}\n\nfunc (p *SliceInfo) GetChunkInfo() (v string) {\n\treturn p.ChunkInfo\n}\n\nvar fieldIDToName_SliceInfo = map[int16]string{\n\t1: \"slice_id\",\n\t2: \"content\",\n\t3: \"status\",\n\t4: \"hit_count\",\n\t5: \"char_count\",\n\t7: \"sequence\",\n\t8: \"document_id\",\n\t9: \"chunk_info\",\n}\n\nfunc (p *SliceInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SliceInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SliceInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SliceID = _field\n\treturn nil\n}\nfunc (p *SliceInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\nfunc (p *SliceInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field SliceStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SliceStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *SliceInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HitCount = _field\n\treturn nil\n}\nfunc (p *SliceInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CharCount = _field\n\treturn nil\n}\nfunc (p *SliceInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Sequence = _field\n\treturn nil\n}\nfunc (p *SliceInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DocumentID = _field\n\treturn nil\n}\nfunc (p *SliceInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ChunkInfo = _field\n\treturn nil\n}\n\nfunc (p *SliceInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SliceInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SliceInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"slice_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SliceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SliceInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"content\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SliceInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SliceInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"hit_count\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.HitCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SliceInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"char_count\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CharCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *SliceInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sequence\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Sequence); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *SliceInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"document_id\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DocumentID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *SliceInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"chunk_info\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ChunkInfo); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *SliceInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SliceInfo(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/data/variable/kvmemory/kvmemory.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage kvmemory\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/database/table\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/variable/project_memory\"\n)\n\ntype KVItem struct {\n\tKeyword        string `thrift:\"keyword,1\" form:\"keyword\" json:\"keyword\" query:\"keyword\"`\n\tValue          string `thrift:\"value,2\" form:\"value\" json:\"value\" query:\"value\"`\n\tCreateTime     int64  `thrift:\"create_time,3\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\tUpdateTime     int64  `thrift:\"update_time,4\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\tIsSystem       bool   `thrift:\"is_system,5\" form:\"is_system\" json:\"is_system\" query:\"is_system\"`\n\tPromptDisabled bool   `thrift:\"prompt_disabled,6\" form:\"prompt_disabled\" json:\"prompt_disabled\" query:\"prompt_disabled\"`\n\tSchema         string `thrift:\"schema,7\" form:\"schema\" json:\"schema\" query:\"schema\"`\n}\n\nfunc NewKVItem() *KVItem {\n\treturn &KVItem{}\n}\n\nfunc (p *KVItem) InitDefault() {\n}\n\nfunc (p *KVItem) GetKeyword() (v string) {\n\treturn p.Keyword\n}\n\nfunc (p *KVItem) GetValue() (v string) {\n\treturn p.Value\n}\n\nfunc (p *KVItem) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *KVItem) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nfunc (p *KVItem) GetIsSystem() (v bool) {\n\treturn p.IsSystem\n}\n\nfunc (p *KVItem) GetPromptDisabled() (v bool) {\n\treturn p.PromptDisabled\n}\n\nfunc (p *KVItem) GetSchema() (v string) {\n\treturn p.Schema\n}\n\nvar fieldIDToName_KVItem = map[int16]string{\n\t1: \"keyword\",\n\t2: \"value\",\n\t3: \"create_time\",\n\t4: \"update_time\",\n\t5: \"is_system\",\n\t6: \"prompt_disabled\",\n\t7: \"schema\",\n}\n\nfunc (p *KVItem) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_KVItem[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *KVItem) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *KVItem) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *KVItem) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *KVItem) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *KVItem) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsSystem = _field\n\treturn nil\n}\nfunc (p *KVItem) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PromptDisabled = _field\n\treturn nil\n}\nfunc (p *KVItem) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Schema = _field\n\treturn nil\n}\n\nfunc (p *KVItem) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"KVItem\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *KVItem) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"keyword\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Keyword); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *KVItem) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"value\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Value); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *KVItem) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *KVItem) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *KVItem) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_system\", thrift.BOOL, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsSystem); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *KVItem) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"prompt_disabled\", thrift.BOOL, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.PromptDisabled); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *KVItem) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"schema\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Schema); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *KVItem) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"KVItem(%+v)\", *p)\n\n}\n\ntype VariableInfo struct {\n\tKey                  string   `thrift:\"key,1\" form:\"key\" json:\"key\" query:\"key\"`\n\tDefaultValue         string   `thrift:\"default_value,2\" form:\"default_value\" json:\"default_value\" query:\"default_value\"`\n\tDescription          string   `thrift:\"description,3\" form:\"description\" json:\"description\" query:\"description\"`\n\tSensitive            string   `thrift:\"sensitive,4\" form:\"sensitive\" json:\"sensitive\" query:\"sensitive\"`\n\tMustNotUseInPrompt   string   `thrift:\"must_not_use_in_prompt,5\" form:\"must_not_use_in_prompt\" json:\"must_not_use_in_prompt\" query:\"must_not_use_in_prompt\"`\n\tCanWrite             string   `thrift:\"can_write,6\" form:\"can_write\" json:\"can_write\" query:\"can_write\"`\n\tExample              string   `thrift:\"example,7\" form:\"example\" json:\"example\" query:\"example\"`\n\tExtDesc              string   `thrift:\"ext_desc,8\" form:\"ext_desc\" json:\"ext_desc\" query:\"ext_desc\"`\n\tGroupName            string   `thrift:\"group_name,9\" form:\"group_name\" json:\"group_name\" query:\"group_name\"`\n\tGroupDesc            string   `thrift:\"group_desc,10\" form:\"group_desc\" json:\"group_desc\" query:\"group_desc\"`\n\tGroupExtDesc         string   `thrift:\"group_ext_desc,11\" form:\"group_ext_desc\" json:\"group_ext_desc\" query:\"group_ext_desc\"`\n\tEffectiveChannelList []string `thrift:\"EffectiveChannelList,12,optional\" form:\"EffectiveChannelList\" json:\"EffectiveChannelList,omitempty\" query:\"EffectiveChannelList\"`\n}\n\nfunc NewVariableInfo() *VariableInfo {\n\treturn &VariableInfo{}\n}\n\nfunc (p *VariableInfo) InitDefault() {\n}\n\nfunc (p *VariableInfo) GetKey() (v string) {\n\treturn p.Key\n}\n\nfunc (p *VariableInfo) GetDefaultValue() (v string) {\n\treturn p.DefaultValue\n}\n\nfunc (p *VariableInfo) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *VariableInfo) GetSensitive() (v string) {\n\treturn p.Sensitive\n}\n\nfunc (p *VariableInfo) GetMustNotUseInPrompt() (v string) {\n\treturn p.MustNotUseInPrompt\n}\n\nfunc (p *VariableInfo) GetCanWrite() (v string) {\n\treturn p.CanWrite\n}\n\nfunc (p *VariableInfo) GetExample() (v string) {\n\treturn p.Example\n}\n\nfunc (p *VariableInfo) GetExtDesc() (v string) {\n\treturn p.ExtDesc\n}\n\nfunc (p *VariableInfo) GetGroupName() (v string) {\n\treturn p.GroupName\n}\n\nfunc (p *VariableInfo) GetGroupDesc() (v string) {\n\treturn p.GroupDesc\n}\n\nfunc (p *VariableInfo) GetGroupExtDesc() (v string) {\n\treturn p.GroupExtDesc\n}\n\nvar VariableInfo_EffectiveChannelList_DEFAULT []string\n\nfunc (p *VariableInfo) GetEffectiveChannelList() (v []string) {\n\tif !p.IsSetEffectiveChannelList() {\n\t\treturn VariableInfo_EffectiveChannelList_DEFAULT\n\t}\n\treturn p.EffectiveChannelList\n}\n\nvar fieldIDToName_VariableInfo = map[int16]string{\n\t1:  \"key\",\n\t2:  \"default_value\",\n\t3:  \"description\",\n\t4:  \"sensitive\",\n\t5:  \"must_not_use_in_prompt\",\n\t6:  \"can_write\",\n\t7:  \"example\",\n\t8:  \"ext_desc\",\n\t9:  \"group_name\",\n\t10: \"group_desc\",\n\t11: \"group_ext_desc\",\n\t12: \"EffectiveChannelList\",\n}\n\nfunc (p *VariableInfo) IsSetEffectiveChannelList() bool {\n\treturn p.EffectiveChannelList != nil\n}\n\nfunc (p *VariableInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_VariableInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *VariableInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *VariableInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DefaultValue = _field\n\treturn nil\n}\nfunc (p *VariableInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *VariableInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Sensitive = _field\n\treturn nil\n}\nfunc (p *VariableInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MustNotUseInPrompt = _field\n\treturn nil\n}\nfunc (p *VariableInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanWrite = _field\n\treturn nil\n}\nfunc (p *VariableInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Example = _field\n\treturn nil\n}\nfunc (p *VariableInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExtDesc = _field\n\treturn nil\n}\nfunc (p *VariableInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GroupName = _field\n\treturn nil\n}\nfunc (p *VariableInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GroupDesc = _field\n\treturn nil\n}\nfunc (p *VariableInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GroupExtDesc = _field\n\treturn nil\n}\nfunc (p *VariableInfo) ReadField12(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.EffectiveChannelList = _field\n\treturn nil\n}\n\nfunc (p *VariableInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"VariableInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *VariableInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"key\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Key); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *VariableInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"default_value\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DefaultValue); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *VariableInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *VariableInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sensitive\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Sensitive); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *VariableInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"must_not_use_in_prompt\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.MustNotUseInPrompt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *VariableInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_write\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CanWrite); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *VariableInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"example\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Example); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *VariableInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ext_desc\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExtDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *VariableInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"group_name\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.GroupName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *VariableInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"group_desc\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.GroupDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *VariableInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"group_ext_desc\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.GroupExtDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *VariableInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEffectiveChannelList() {\n\t\tif err = oprot.WriteFieldBegin(\"EffectiveChannelList\", thrift.LIST, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.EffectiveChannelList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.EffectiveChannelList {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\n\nfunc (p *VariableInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"VariableInfo(%+v)\", *p)\n\n}\n\ntype GroupVariableInfo struct {\n\tGroupName    string               `thrift:\"group_name,1\" form:\"group_name\" json:\"group_name\" query:\"group_name\"`\n\tGroupDesc    string               `thrift:\"group_desc,2\" form:\"group_desc\" json:\"group_desc\" query:\"group_desc\"`\n\tGroupExtDesc string               `thrift:\"group_ext_desc,3\" form:\"group_ext_desc\" json:\"group_ext_desc\" query:\"group_ext_desc\"`\n\tVarInfoList  []*VariableInfo      `thrift:\"var_info_list,4\" form:\"var_info_list\" json:\"var_info_list\" query:\"var_info_list\"`\n\tSubGroupInfo []*GroupVariableInfo `thrift:\"sub_group_info,5\" form:\"sub_group_info\" json:\"sub_group_info\" query:\"sub_group_info\"`\n}\n\nfunc NewGroupVariableInfo() *GroupVariableInfo {\n\treturn &GroupVariableInfo{}\n}\n\nfunc (p *GroupVariableInfo) InitDefault() {\n}\n\nfunc (p *GroupVariableInfo) GetGroupName() (v string) {\n\treturn p.GroupName\n}\n\nfunc (p *GroupVariableInfo) GetGroupDesc() (v string) {\n\treturn p.GroupDesc\n}\n\nfunc (p *GroupVariableInfo) GetGroupExtDesc() (v string) {\n\treturn p.GroupExtDesc\n}\n\nfunc (p *GroupVariableInfo) GetVarInfoList() (v []*VariableInfo) {\n\treturn p.VarInfoList\n}\n\nfunc (p *GroupVariableInfo) GetSubGroupInfo() (v []*GroupVariableInfo) {\n\treturn p.SubGroupInfo\n}\n\nvar fieldIDToName_GroupVariableInfo = map[int16]string{\n\t1: \"group_name\",\n\t2: \"group_desc\",\n\t3: \"group_ext_desc\",\n\t4: \"var_info_list\",\n\t5: \"sub_group_info\",\n}\n\nfunc (p *GroupVariableInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GroupVariableInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GroupVariableInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GroupName = _field\n\treturn nil\n}\nfunc (p *GroupVariableInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GroupDesc = _field\n\treturn nil\n}\nfunc (p *GroupVariableInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GroupExtDesc = _field\n\treturn nil\n}\nfunc (p *GroupVariableInfo) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*VariableInfo, 0, size)\n\tvalues := make([]VariableInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.VarInfoList = _field\n\treturn nil\n}\nfunc (p *GroupVariableInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*GroupVariableInfo, 0, size)\n\tvalues := make([]GroupVariableInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubGroupInfo = _field\n\treturn nil\n}\n\nfunc (p *GroupVariableInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GroupVariableInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GroupVariableInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"group_name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.GroupName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GroupVariableInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"group_desc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.GroupDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GroupVariableInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"group_ext_desc\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.GroupExtDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GroupVariableInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"var_info_list\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.VarInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.VarInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GroupVariableInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sub_group_info\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubGroupInfo)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SubGroupInfo {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *GroupVariableInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GroupVariableInfo(%+v)\", *p)\n\n}\n\ntype SetKvMemoryReq struct {\n\tBotID       int64     `thrift:\"bot_id,1,required\" form:\"bot_id,required\" json:\"bot_id,string,required\"`\n\tUserID      *int64    `thrift:\"user_id,2,optional\" form:\"user_id\" json:\"user_id,omitempty\" query:\"user_id\"`\n\tData        []*KVItem `thrift:\"data,3,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tConnectorID *int64    `thrift:\"connector_id,4,optional\" form:\"connector_id\" json:\"connector_id,omitempty\" query:\"connector_id\"`\n\t// citation information\n\tRefInfo        *table.RefInfo `thrift:\"ref_info,5,optional\" form:\"ref_info\" json:\"ref_info,omitempty\" query:\"ref_info\"`\n\tProjectID      *string        `thrift:\"project_id,6,optional\" form:\"project_id\" json:\"project_id,omitempty\" query:\"project_id\"`\n\tProjectVersion *int64         `thrift:\"ProjectVersion,7,optional\" form:\"ProjectVersion\" json:\"ProjectVersion,omitempty\" query:\"ProjectVersion\"`\n\tBase           *base.Base     `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewSetKvMemoryReq() *SetKvMemoryReq {\n\treturn &SetKvMemoryReq{}\n}\n\nfunc (p *SetKvMemoryReq) InitDefault() {\n}\n\nfunc (p *SetKvMemoryReq) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar SetKvMemoryReq_UserID_DEFAULT int64\n\nfunc (p *SetKvMemoryReq) GetUserID() (v int64) {\n\tif !p.IsSetUserID() {\n\t\treturn SetKvMemoryReq_UserID_DEFAULT\n\t}\n\treturn *p.UserID\n}\n\nfunc (p *SetKvMemoryReq) GetData() (v []*KVItem) {\n\treturn p.Data\n}\n\nvar SetKvMemoryReq_ConnectorID_DEFAULT int64\n\nfunc (p *SetKvMemoryReq) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn SetKvMemoryReq_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar SetKvMemoryReq_RefInfo_DEFAULT *table.RefInfo\n\nfunc (p *SetKvMemoryReq) GetRefInfo() (v *table.RefInfo) {\n\tif !p.IsSetRefInfo() {\n\t\treturn SetKvMemoryReq_RefInfo_DEFAULT\n\t}\n\treturn p.RefInfo\n}\n\nvar SetKvMemoryReq_ProjectID_DEFAULT string\n\nfunc (p *SetKvMemoryReq) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn SetKvMemoryReq_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar SetKvMemoryReq_ProjectVersion_DEFAULT int64\n\nfunc (p *SetKvMemoryReq) GetProjectVersion() (v int64) {\n\tif !p.IsSetProjectVersion() {\n\t\treturn SetKvMemoryReq_ProjectVersion_DEFAULT\n\t}\n\treturn *p.ProjectVersion\n}\n\nvar SetKvMemoryReq_Base_DEFAULT *base.Base\n\nfunc (p *SetKvMemoryReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SetKvMemoryReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SetKvMemoryReq = map[int16]string{\n\t1:   \"bot_id\",\n\t2:   \"user_id\",\n\t3:   \"data\",\n\t4:   \"connector_id\",\n\t5:   \"ref_info\",\n\t6:   \"project_id\",\n\t7:   \"ProjectVersion\",\n\t255: \"Base\",\n}\n\nfunc (p *SetKvMemoryReq) IsSetUserID() bool {\n\treturn p.UserID != nil\n}\n\nfunc (p *SetKvMemoryReq) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *SetKvMemoryReq) IsSetRefInfo() bool {\n\treturn p.RefInfo != nil\n}\n\nfunc (p *SetKvMemoryReq) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *SetKvMemoryReq) IsSetProjectVersion() bool {\n\treturn p.ProjectVersion != nil\n}\n\nfunc (p *SetKvMemoryReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SetKvMemoryReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SetKvMemoryReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SetKvMemoryReq[fieldId]))\n}\n\nfunc (p *SetKvMemoryReq) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *SetKvMemoryReq) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *SetKvMemoryReq) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*KVItem, 0, size)\n\tvalues := make([]KVItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *SetKvMemoryReq) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *SetKvMemoryReq) ReadField5(iprot thrift.TProtocol) error {\n\t_field := table.NewRefInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RefInfo = _field\n\treturn nil\n}\nfunc (p *SetKvMemoryReq) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *SetKvMemoryReq) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectVersion = _field\n\treturn nil\n}\nfunc (p *SetKvMemoryReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SetKvMemoryReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SetKvMemoryReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SetKvMemoryReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SetKvMemoryReq) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserID() {\n\t\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.UserID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SetKvMemoryReq) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SetKvMemoryReq) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SetKvMemoryReq) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRefInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"ref_info\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RefInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *SetKvMemoryReq) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *SetKvMemoryReq) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"ProjectVersion\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ProjectVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *SetKvMemoryReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SetKvMemoryReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SetKvMemoryReq(%+v)\", *p)\n\n}\n\ntype SetKvMemoryResp struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewSetKvMemoryResp() *SetKvMemoryResp {\n\treturn &SetKvMemoryResp{}\n}\n\nfunc (p *SetKvMemoryResp) InitDefault() {\n}\n\nfunc (p *SetKvMemoryResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *SetKvMemoryResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar SetKvMemoryResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SetKvMemoryResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SetKvMemoryResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SetKvMemoryResp = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *SetKvMemoryResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SetKvMemoryResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SetKvMemoryResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SetKvMemoryResp[fieldId]))\n}\n\nfunc (p *SetKvMemoryResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *SetKvMemoryResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *SetKvMemoryResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SetKvMemoryResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SetKvMemoryResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SetKvMemoryResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *SetKvMemoryResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *SetKvMemoryResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SetKvMemoryResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SetKvMemoryResp(%+v)\", *p)\n\n}\n\ntype GetSysVariableConfRequest struct {\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetSysVariableConfRequest() *GetSysVariableConfRequest {\n\treturn &GetSysVariableConfRequest{}\n}\n\nfunc (p *GetSysVariableConfRequest) InitDefault() {\n}\n\nvar GetSysVariableConfRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetSysVariableConfRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetSysVariableConfRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetSysVariableConfRequest = map[int16]string{\n\t255: \"Base\",\n}\n\nfunc (p *GetSysVariableConfRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetSysVariableConfRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetSysVariableConfRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetSysVariableConfRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetSysVariableConfRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetSysVariableConfRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetSysVariableConfRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetSysVariableConfRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetSysVariableConfRequest(%+v)\", *p)\n\n}\n\ntype GetSysVariableConfResponse struct {\n\tConf      []*VariableInfo      `thrift:\"conf,1\" form:\"conf\" json:\"conf\" query:\"conf\"`\n\tGroupConf []*GroupVariableInfo `thrift:\"group_conf,2\" form:\"group_conf\" json:\"group_conf\" query:\"group_conf\"`\n\tCode      int64                `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg       string               `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp  *base.BaseResp       `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetSysVariableConfResponse() *GetSysVariableConfResponse {\n\treturn &GetSysVariableConfResponse{}\n}\n\nfunc (p *GetSysVariableConfResponse) InitDefault() {\n}\n\nfunc (p *GetSysVariableConfResponse) GetConf() (v []*VariableInfo) {\n\treturn p.Conf\n}\n\nfunc (p *GetSysVariableConfResponse) GetGroupConf() (v []*GroupVariableInfo) {\n\treturn p.GroupConf\n}\n\nfunc (p *GetSysVariableConfResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetSysVariableConfResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetSysVariableConfResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetSysVariableConfResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetSysVariableConfResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetSysVariableConfResponse = map[int16]string{\n\t1:   \"conf\",\n\t2:   \"group_conf\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetSysVariableConfResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetSysVariableConfResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetSysVariableConfResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetSysVariableConfResponse[fieldId]))\n}\n\nfunc (p *GetSysVariableConfResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*VariableInfo, 0, size)\n\tvalues := make([]VariableInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Conf = _field\n\treturn nil\n}\nfunc (p *GetSysVariableConfResponse) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*GroupVariableInfo, 0, size)\n\tvalues := make([]GroupVariableInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.GroupConf = _field\n\treturn nil\n}\nfunc (p *GetSysVariableConfResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetSysVariableConfResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetSysVariableConfResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetSysVariableConfResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetSysVariableConfResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetSysVariableConfResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conf\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Conf)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Conf {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetSysVariableConfResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"group_conf\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.GroupConf)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.GroupConf {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetSysVariableConfResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetSysVariableConfResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetSysVariableConfResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetSysVariableConfResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetSysVariableConfResponse(%+v)\", *p)\n\n}\n\ntype DelProfileMemoryResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewDelProfileMemoryResponse() *DelProfileMemoryResponse {\n\treturn &DelProfileMemoryResponse{}\n}\n\nfunc (p *DelProfileMemoryResponse) InitDefault() {\n}\n\nfunc (p *DelProfileMemoryResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DelProfileMemoryResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DelProfileMemoryResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DelProfileMemoryResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DelProfileMemoryResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DelProfileMemoryResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DelProfileMemoryResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DelProfileMemoryResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DelProfileMemoryResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DelProfileMemoryResponse[fieldId]))\n}\n\nfunc (p *DelProfileMemoryResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DelProfileMemoryResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DelProfileMemoryResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DelProfileMemoryResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DelProfileMemoryResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DelProfileMemoryResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DelProfileMemoryResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DelProfileMemoryResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DelProfileMemoryResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DelProfileMemoryResponse(%+v)\", *p)\n\n}\n\ntype DelProfileMemoryRequest struct {\n\tUserID      int64    `thrift:\"user_id,1\" form:\"user_id\" json:\"user_id\" query:\"user_id\"`\n\tBotID       int64    `thrift:\"bot_id,2\" form:\"bot_id\" json:\"bot_id,string\"`\n\tKeywords    []string `thrift:\"keywords,3\" form:\"keywords\" json:\"keywords\" query:\"keywords\"`\n\tConnectorID *int64   `thrift:\"connector_id,4,optional\" form:\"connector_id\" json:\"connector_id,omitempty\" query:\"connector_id\"`\n\t// citation information\n\tRefInfo   *table.RefInfo `thrift:\"ref_info,5,optional\" form:\"ref_info\" json:\"ref_info,omitempty\" query:\"ref_info\"`\n\tProjectID string         `thrift:\"project_id,6\" form:\"project_id\" json:\"project_id\" query:\"project_id\"`\n\tBase      *base.Base     `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDelProfileMemoryRequest() *DelProfileMemoryRequest {\n\treturn &DelProfileMemoryRequest{}\n}\n\nfunc (p *DelProfileMemoryRequest) InitDefault() {\n}\n\nfunc (p *DelProfileMemoryRequest) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *DelProfileMemoryRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *DelProfileMemoryRequest) GetKeywords() (v []string) {\n\treturn p.Keywords\n}\n\nvar DelProfileMemoryRequest_ConnectorID_DEFAULT int64\n\nfunc (p *DelProfileMemoryRequest) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn DelProfileMemoryRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar DelProfileMemoryRequest_RefInfo_DEFAULT *table.RefInfo\n\nfunc (p *DelProfileMemoryRequest) GetRefInfo() (v *table.RefInfo) {\n\tif !p.IsSetRefInfo() {\n\t\treturn DelProfileMemoryRequest_RefInfo_DEFAULT\n\t}\n\treturn p.RefInfo\n}\n\nfunc (p *DelProfileMemoryRequest) GetProjectID() (v string) {\n\treturn p.ProjectID\n}\n\nvar DelProfileMemoryRequest_Base_DEFAULT *base.Base\n\nfunc (p *DelProfileMemoryRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DelProfileMemoryRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DelProfileMemoryRequest = map[int16]string{\n\t1:   \"user_id\",\n\t2:   \"bot_id\",\n\t3:   \"keywords\",\n\t4:   \"connector_id\",\n\t5:   \"ref_info\",\n\t6:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *DelProfileMemoryRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *DelProfileMemoryRequest) IsSetRefInfo() bool {\n\treturn p.RefInfo != nil\n}\n\nfunc (p *DelProfileMemoryRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DelProfileMemoryRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DelProfileMemoryRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DelProfileMemoryRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *DelProfileMemoryRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *DelProfileMemoryRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Keywords = _field\n\treturn nil\n}\nfunc (p *DelProfileMemoryRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *DelProfileMemoryRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_field := table.NewRefInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RefInfo = _field\n\treturn nil\n}\nfunc (p *DelProfileMemoryRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *DelProfileMemoryRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DelProfileMemoryRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DelProfileMemoryRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DelProfileMemoryRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DelProfileMemoryRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DelProfileMemoryRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"keywords\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Keywords)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Keywords {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DelProfileMemoryRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DelProfileMemoryRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRefInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"ref_info\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RefInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DelProfileMemoryRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DelProfileMemoryRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DelProfileMemoryRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DelProfileMemoryRequest(%+v)\", *p)\n\n}\n\ntype GetProfileMemoryRequest struct {\n\tUserID      int64    `thrift:\"user_id,1\" form:\"user_id\" json:\"user_id\" query:\"user_id\"`\n\tBotID       int64    `thrift:\"bot_id,2\" form:\"bot_id\" json:\"bot_id,string\"`\n\tKeywords    []string `thrift:\"keywords,3\" form:\"keywords\" json:\"keywords\" query:\"keywords\"`\n\tConnectorID *int64   `thrift:\"connector_id,4,optional\" form:\"connector_id\" json:\"connector_id,omitempty\" query:\"connector_id\"`\n\tVersion     *string  `thrift:\"version,5,optional\" form:\"version\" json:\"version,omitempty\" query:\"version\"`\n\t// citation information\n\tRefInfo         *table.RefInfo                  `thrift:\"ref_info,6,optional\" form:\"ref_info\" json:\"ref_info,omitempty\" query:\"ref_info\"`\n\tExt             *string                         `thrift:\"ext,7,optional\" form:\"ext\" json:\"ext,omitempty\" query:\"ext\"`\n\tProjectID       *string                         `thrift:\"project_id,8,optional\" form:\"project_id\" json:\"project_id,omitempty\" query:\"project_id\"`\n\tProjectVersion  *int64                          `thrift:\"ProjectVersion,9,optional\" form:\"ProjectVersion\" json:\"ProjectVersion,omitempty\" query:\"ProjectVersion\"`\n\tVariableChannel *project_memory.VariableChannel `thrift:\"VariableChannel,10,optional\" form:\"VariableChannel\" json:\"VariableChannel,omitempty\" query:\"VariableChannel\"`\n\tBase            *base.Base                      `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetProfileMemoryRequest() *GetProfileMemoryRequest {\n\treturn &GetProfileMemoryRequest{}\n}\n\nfunc (p *GetProfileMemoryRequest) InitDefault() {\n}\n\nfunc (p *GetProfileMemoryRequest) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *GetProfileMemoryRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *GetProfileMemoryRequest) GetKeywords() (v []string) {\n\treturn p.Keywords\n}\n\nvar GetProfileMemoryRequest_ConnectorID_DEFAULT int64\n\nfunc (p *GetProfileMemoryRequest) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn GetProfileMemoryRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar GetProfileMemoryRequest_Version_DEFAULT string\n\nfunc (p *GetProfileMemoryRequest) GetVersion() (v string) {\n\tif !p.IsSetVersion() {\n\t\treturn GetProfileMemoryRequest_Version_DEFAULT\n\t}\n\treturn *p.Version\n}\n\nvar GetProfileMemoryRequest_RefInfo_DEFAULT *table.RefInfo\n\nfunc (p *GetProfileMemoryRequest) GetRefInfo() (v *table.RefInfo) {\n\tif !p.IsSetRefInfo() {\n\t\treturn GetProfileMemoryRequest_RefInfo_DEFAULT\n\t}\n\treturn p.RefInfo\n}\n\nvar GetProfileMemoryRequest_Ext_DEFAULT string\n\nfunc (p *GetProfileMemoryRequest) GetExt() (v string) {\n\tif !p.IsSetExt() {\n\t\treturn GetProfileMemoryRequest_Ext_DEFAULT\n\t}\n\treturn *p.Ext\n}\n\nvar GetProfileMemoryRequest_ProjectID_DEFAULT string\n\nfunc (p *GetProfileMemoryRequest) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn GetProfileMemoryRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar GetProfileMemoryRequest_ProjectVersion_DEFAULT int64\n\nfunc (p *GetProfileMemoryRequest) GetProjectVersion() (v int64) {\n\tif !p.IsSetProjectVersion() {\n\t\treturn GetProfileMemoryRequest_ProjectVersion_DEFAULT\n\t}\n\treturn *p.ProjectVersion\n}\n\nvar GetProfileMemoryRequest_VariableChannel_DEFAULT project_memory.VariableChannel\n\nfunc (p *GetProfileMemoryRequest) GetVariableChannel() (v project_memory.VariableChannel) {\n\tif !p.IsSetVariableChannel() {\n\t\treturn GetProfileMemoryRequest_VariableChannel_DEFAULT\n\t}\n\treturn *p.VariableChannel\n}\n\nvar GetProfileMemoryRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetProfileMemoryRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetProfileMemoryRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetProfileMemoryRequest = map[int16]string{\n\t1:   \"user_id\",\n\t2:   \"bot_id\",\n\t3:   \"keywords\",\n\t4:   \"connector_id\",\n\t5:   \"version\",\n\t6:   \"ref_info\",\n\t7:   \"ext\",\n\t8:   \"project_id\",\n\t9:   \"ProjectVersion\",\n\t10:  \"VariableChannel\",\n\t255: \"Base\",\n}\n\nfunc (p *GetProfileMemoryRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *GetProfileMemoryRequest) IsSetVersion() bool {\n\treturn p.Version != nil\n}\n\nfunc (p *GetProfileMemoryRequest) IsSetRefInfo() bool {\n\treturn p.RefInfo != nil\n}\n\nfunc (p *GetProfileMemoryRequest) IsSetExt() bool {\n\treturn p.Ext != nil\n}\n\nfunc (p *GetProfileMemoryRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *GetProfileMemoryRequest) IsSetProjectVersion() bool {\n\treturn p.ProjectVersion != nil\n}\n\nfunc (p *GetProfileMemoryRequest) IsSetVariableChannel() bool {\n\treturn p.VariableChannel != nil\n}\n\nfunc (p *GetProfileMemoryRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetProfileMemoryRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProfileMemoryRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetProfileMemoryRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Keywords = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryRequest) ReadField6(iprot thrift.TProtocol) error {\n\t_field := table.NewRefInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RefInfo = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Ext = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectVersion = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *project_memory.VariableChannel\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := project_memory.VariableChannel(v)\n\t\t_field = &tmp\n\t}\n\tp.VariableChannel = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetProfileMemoryRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProfileMemoryRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProfileMemoryRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"keywords\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Keywords)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Keywords {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Version); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRefInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"ref_info\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RefInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExt() {\n\t\tif err = oprot.WriteFieldBegin(\"ext\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Ext); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"ProjectVersion\", thrift.I64, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ProjectVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVariableChannel() {\n\t\tif err = oprot.WriteFieldBegin(\"VariableChannel\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.VariableChannel)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProfileMemoryRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProfileMemoryRequest(%+v)\", *p)\n\n}\n\ntype GetProfileMemoryResponse struct {\n\tMemories []*KVItem      `thrift:\"memories,1\" form:\"memories\" json:\"memories\" query:\"memories\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetProfileMemoryResponse() *GetProfileMemoryResponse {\n\treturn &GetProfileMemoryResponse{}\n}\n\nfunc (p *GetProfileMemoryResponse) InitDefault() {\n}\n\nfunc (p *GetProfileMemoryResponse) GetMemories() (v []*KVItem) {\n\treturn p.Memories\n}\n\nfunc (p *GetProfileMemoryResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetProfileMemoryResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetProfileMemoryResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetProfileMemoryResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetProfileMemoryResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetProfileMemoryResponse = map[int16]string{\n\t1:   \"memories\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetProfileMemoryResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetProfileMemoryResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProfileMemoryResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetProfileMemoryResponse[fieldId]))\n}\n\nfunc (p *GetProfileMemoryResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*KVItem, 0, size)\n\tvalues := make([]KVItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Memories = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetProfileMemoryResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetProfileMemoryResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProfileMemoryResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProfileMemoryResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"memories\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Memories)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Memories {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetProfileMemoryResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProfileMemoryResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProfileMemoryResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/data/variable/project_memory/project_memory.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage project_memory\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype VariableType int64\n\nconst (\n\tVariableType_KVVariable   VariableType = 1\n\tVariableType_ListVariable VariableType = 2\n)\n\nfunc (p VariableType) String() string {\n\tswitch p {\n\tcase VariableType_KVVariable:\n\t\treturn \"KVVariable\"\n\tcase VariableType_ListVariable:\n\t\treturn \"ListVariable\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc VariableTypeFromString(s string) (VariableType, error) {\n\tswitch s {\n\tcase \"KVVariable\":\n\t\treturn VariableType_KVVariable, nil\n\tcase \"ListVariable\":\n\t\treturn VariableType_ListVariable, nil\n\t}\n\treturn VariableType(0), fmt.Errorf(\"not a valid VariableType string\")\n}\n\nfunc VariableTypePtr(v VariableType) *VariableType { return &v }\nfunc (p *VariableType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = VariableType(result.Int64)\n\treturn\n}\n\nfunc (p *VariableType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype VariableChannel int64\n\nconst (\n\tVariableChannel_Custom   VariableChannel = 1\n\tVariableChannel_System   VariableChannel = 2\n\tVariableChannel_Location VariableChannel = 3\n\tVariableChannel_Feishu   VariableChannel = 4\n\t// project variable\n\tVariableChannel_APP VariableChannel = 5\n)\n\nfunc (p VariableChannel) String() string {\n\tswitch p {\n\tcase VariableChannel_Custom:\n\t\treturn \"Custom\"\n\tcase VariableChannel_System:\n\t\treturn \"System\"\n\tcase VariableChannel_Location:\n\t\treturn \"Location\"\n\tcase VariableChannel_Feishu:\n\t\treturn \"Feishu\"\n\tcase VariableChannel_APP:\n\t\treturn \"APP\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc VariableChannelFromString(s string) (VariableChannel, error) {\n\tswitch s {\n\tcase \"Custom\":\n\t\treturn VariableChannel_Custom, nil\n\tcase \"System\":\n\t\treturn VariableChannel_System, nil\n\tcase \"Location\":\n\t\treturn VariableChannel_Location, nil\n\tcase \"Feishu\":\n\t\treturn VariableChannel_Feishu, nil\n\tcase \"APP\":\n\t\treturn VariableChannel_APP, nil\n\t}\n\treturn VariableChannel(0), fmt.Errorf(\"not a valid VariableChannel string\")\n}\n\nfunc VariableChannelPtr(v VariableChannel) *VariableChannel { return &v }\nfunc (p *VariableChannel) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = VariableChannel(result.Int64)\n\treturn\n}\n\nfunc (p *VariableChannel) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype VariableConnector int64\n\nconst (\n\tVariableConnector_Bot     VariableConnector = 1\n\tVariableConnector_Project VariableConnector = 2\n)\n\nfunc (p VariableConnector) String() string {\n\tswitch p {\n\tcase VariableConnector_Bot:\n\t\treturn \"Bot\"\n\tcase VariableConnector_Project:\n\t\treturn \"Project\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc VariableConnectorFromString(s string) (VariableConnector, error) {\n\tswitch s {\n\tcase \"Bot\":\n\t\treturn VariableConnector_Bot, nil\n\tcase \"Project\":\n\t\treturn VariableConnector_Project, nil\n\t}\n\treturn VariableConnector(0), fmt.Errorf(\"not a valid VariableConnector string\")\n}\n\nfunc VariableConnectorPtr(v VariableConnector) *VariableConnector { return &v }\nfunc (p *VariableConnector) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = VariableConnector(result.Int64)\n\treturn\n}\n\nfunc (p *VariableConnector) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype Variable struct {\n\tKeyword      string          `thrift:\"Keyword,1\" form:\"Keyword\" json:\"Keyword\" query:\"Keyword\"`\n\tDefaultValue string          `thrift:\"DefaultValue,2\" form:\"DefaultValue\" json:\"DefaultValue\" query:\"DefaultValue\"`\n\tVariableType VariableType    `thrift:\"VariableType,3\" form:\"VariableType\" json:\"VariableType\" query:\"VariableType\"`\n\tChannel      VariableChannel `thrift:\"Channel,4\" form:\"Channel\" json:\"Channel\" query:\"Channel\"`\n\tDescription  string          `thrift:\"Description,5\" form:\"Description\" json:\"Description\" query:\"Description\"`\n\tEnable       bool            `thrift:\"Enable,6\" form:\"Enable\" json:\"Enable\" query:\"Enable\"`\n\t//effective channel\n\tEffectiveChannelList []string `thrift:\"EffectiveChannelList,7,optional\" form:\"EffectiveChannelList\" json:\"EffectiveChannelList,omitempty\" query:\"EffectiveChannelList\"`\n\t//New and old data will have schemas, except for project variables, the default is string.\n\tSchema     string `thrift:\"Schema,8\" form:\"Schema\" json:\"Schema\" query:\"Schema\"`\n\tIsReadOnly bool   `thrift:\"IsReadOnly,9\" form:\"IsReadOnly\" json:\"IsReadOnly\" query:\"IsReadOnly\"`\n}\n\nfunc NewVariable() *Variable {\n\treturn &Variable{}\n}\n\nfunc (p *Variable) InitDefault() {\n}\n\nfunc (p *Variable) GetKeyword() (v string) {\n\treturn p.Keyword\n}\n\nfunc (p *Variable) GetDefaultValue() (v string) {\n\treturn p.DefaultValue\n}\n\nfunc (p *Variable) GetVariableType() (v VariableType) {\n\treturn p.VariableType\n}\n\nfunc (p *Variable) GetChannel() (v VariableChannel) {\n\treturn p.Channel\n}\n\nfunc (p *Variable) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *Variable) GetEnable() (v bool) {\n\treturn p.Enable\n}\n\nvar Variable_EffectiveChannelList_DEFAULT []string\n\nfunc (p *Variable) GetEffectiveChannelList() (v []string) {\n\tif !p.IsSetEffectiveChannelList() {\n\t\treturn Variable_EffectiveChannelList_DEFAULT\n\t}\n\treturn p.EffectiveChannelList\n}\n\nfunc (p *Variable) GetSchema() (v string) {\n\treturn p.Schema\n}\n\nfunc (p *Variable) GetIsReadOnly() (v bool) {\n\treturn p.IsReadOnly\n}\n\nvar fieldIDToName_Variable = map[int16]string{\n\t1: \"Keyword\",\n\t2: \"DefaultValue\",\n\t3: \"VariableType\",\n\t4: \"Channel\",\n\t5: \"Description\",\n\t6: \"Enable\",\n\t7: \"EffectiveChannelList\",\n\t8: \"Schema\",\n\t9: \"IsReadOnly\",\n}\n\nfunc (p *Variable) IsSetEffectiveChannelList() bool {\n\treturn p.EffectiveChannelList != nil\n}\n\nfunc (p *Variable) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Variable[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Variable) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DefaultValue = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field VariableType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = VariableType(v)\n\t}\n\tp.VariableType = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field VariableChannel\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = VariableChannel(v)\n\t}\n\tp.Channel = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Enable = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.EffectiveChannelList = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Schema = _field\n\treturn nil\n}\nfunc (p *Variable) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsReadOnly = _field\n\treturn nil\n}\n\nfunc (p *Variable) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Variable\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Variable) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Keyword\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Keyword); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Variable) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DefaultValue\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DefaultValue); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Variable) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VariableType\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.VariableType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Variable) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Channel\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Channel)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Variable) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Variable) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Enable\", thrift.BOOL, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Enable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Variable) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEffectiveChannelList() {\n\t\tif err = oprot.WriteFieldBegin(\"EffectiveChannelList\", thrift.LIST, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.EffectiveChannelList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.EffectiveChannelList {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Variable) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Schema\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Schema); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *Variable) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsReadOnly\", thrift.BOOL, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsReadOnly); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *Variable) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Variable(%+v)\", *p)\n\n}\n\ntype GroupVariableInfo struct {\n\tGroupName      string               `thrift:\"GroupName,1\" form:\"GroupName\" json:\"GroupName\" query:\"GroupName\"`\n\tGroupDesc      string               `thrift:\"GroupDesc,2\" form:\"GroupDesc\" json:\"GroupDesc\" query:\"GroupDesc\"`\n\tGroupExtDesc   string               `thrift:\"GroupExtDesc,3\" form:\"GroupExtDesc\" json:\"GroupExtDesc\" query:\"GroupExtDesc\"`\n\tVarInfoList    []*Variable          `thrift:\"VarInfoList,4\" form:\"VarInfoList\" json:\"VarInfoList\" query:\"VarInfoList\"`\n\tSubGroupList   []*GroupVariableInfo `thrift:\"SubGroupList,5\" form:\"SubGroupList\" json:\"SubGroupList\" query:\"SubGroupList\"`\n\tIsReadOnly     bool                 `thrift:\"IsReadOnly,6\" form:\"IsReadOnly\" json:\"IsReadOnly\" query:\"IsReadOnly\"`\n\tDefaultChannel *VariableChannel     `thrift:\"DefaultChannel,7,optional\" form:\"DefaultChannel\" json:\"DefaultChannel,omitempty\" query:\"DefaultChannel\"`\n}\n\nfunc NewGroupVariableInfo() *GroupVariableInfo {\n\treturn &GroupVariableInfo{}\n}\n\nfunc (p *GroupVariableInfo) InitDefault() {\n}\n\nfunc (p *GroupVariableInfo) GetGroupName() (v string) {\n\treturn p.GroupName\n}\n\nfunc (p *GroupVariableInfo) GetGroupDesc() (v string) {\n\treturn p.GroupDesc\n}\n\nfunc (p *GroupVariableInfo) GetGroupExtDesc() (v string) {\n\treturn p.GroupExtDesc\n}\n\nfunc (p *GroupVariableInfo) GetVarInfoList() (v []*Variable) {\n\treturn p.VarInfoList\n}\n\nfunc (p *GroupVariableInfo) GetSubGroupList() (v []*GroupVariableInfo) {\n\treturn p.SubGroupList\n}\n\nfunc (p *GroupVariableInfo) GetIsReadOnly() (v bool) {\n\treturn p.IsReadOnly\n}\n\nvar GroupVariableInfo_DefaultChannel_DEFAULT VariableChannel\n\nfunc (p *GroupVariableInfo) GetDefaultChannel() (v VariableChannel) {\n\tif !p.IsSetDefaultChannel() {\n\t\treturn GroupVariableInfo_DefaultChannel_DEFAULT\n\t}\n\treturn *p.DefaultChannel\n}\n\nvar fieldIDToName_GroupVariableInfo = map[int16]string{\n\t1: \"GroupName\",\n\t2: \"GroupDesc\",\n\t3: \"GroupExtDesc\",\n\t4: \"VarInfoList\",\n\t5: \"SubGroupList\",\n\t6: \"IsReadOnly\",\n\t7: \"DefaultChannel\",\n}\n\nfunc (p *GroupVariableInfo) IsSetDefaultChannel() bool {\n\treturn p.DefaultChannel != nil\n}\n\nfunc (p *GroupVariableInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GroupVariableInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GroupVariableInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GroupName = _field\n\treturn nil\n}\nfunc (p *GroupVariableInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GroupDesc = _field\n\treturn nil\n}\nfunc (p *GroupVariableInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GroupExtDesc = _field\n\treturn nil\n}\nfunc (p *GroupVariableInfo) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Variable, 0, size)\n\tvalues := make([]Variable, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.VarInfoList = _field\n\treturn nil\n}\nfunc (p *GroupVariableInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*GroupVariableInfo, 0, size)\n\tvalues := make([]GroupVariableInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubGroupList = _field\n\treturn nil\n}\nfunc (p *GroupVariableInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsReadOnly = _field\n\treturn nil\n}\nfunc (p *GroupVariableInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *VariableChannel\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := VariableChannel(v)\n\t\t_field = &tmp\n\t}\n\tp.DefaultChannel = _field\n\treturn nil\n}\n\nfunc (p *GroupVariableInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GroupVariableInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GroupVariableInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"GroupName\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.GroupName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GroupVariableInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"GroupDesc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.GroupDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GroupVariableInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"GroupExtDesc\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.GroupExtDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GroupVariableInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VarInfoList\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.VarInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.VarInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GroupVariableInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SubGroupList\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubGroupList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SubGroupList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GroupVariableInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsReadOnly\", thrift.BOOL, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsReadOnly); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GroupVariableInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDefaultChannel() {\n\t\tif err = oprot.WriteFieldBegin(\"DefaultChannel\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.DefaultChannel)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *GroupVariableInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GroupVariableInfo(%+v)\", *p)\n\n}\n\ntype GetProjectVariableListReq struct {\n\tProjectID string     `thrift:\"ProjectID,1\" form:\"ProjectID\" json:\"ProjectID\" query:\"ProjectID\"`\n\tUserID    int64      `thrift:\"UserID,2\" form:\"UserID\" json:\"UserID\" query:\"UserID\"`\n\tVersion   int64      `thrift:\"version,3\" form:\"version\" json:\"version,string\" query:\"version\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetProjectVariableListReq() *GetProjectVariableListReq {\n\treturn &GetProjectVariableListReq{}\n}\n\nfunc (p *GetProjectVariableListReq) InitDefault() {\n}\n\nfunc (p *GetProjectVariableListReq) GetProjectID() (v string) {\n\treturn p.ProjectID\n}\n\nfunc (p *GetProjectVariableListReq) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *GetProjectVariableListReq) GetVersion() (v int64) {\n\treturn p.Version\n}\n\nvar GetProjectVariableListReq_Base_DEFAULT *base.Base\n\nfunc (p *GetProjectVariableListReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetProjectVariableListReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetProjectVariableListReq = map[int16]string{\n\t1:   \"ProjectID\",\n\t2:   \"UserID\",\n\t3:   \"version\",\n\t255: \"Base\",\n}\n\nfunc (p *GetProjectVariableListReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetProjectVariableListReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProjectVariableListReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetProjectVariableListReq) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *GetProjectVariableListReq) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *GetProjectVariableListReq) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *GetProjectVariableListReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetProjectVariableListReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProjectVariableListReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProjectVariableListReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ProjectID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProjectVariableListReq) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserID\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProjectVariableListReq) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProjectVariableListReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProjectVariableListReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProjectVariableListReq(%+v)\", *p)\n\n}\n\ntype GetProjectVariableListResp struct {\n\tVariableList []*Variable          `thrift:\"VariableList,1\" form:\"VariableList\" json:\"VariableList\" query:\"VariableList\"`\n\tCanEdit      bool                 `thrift:\"CanEdit,2\" form:\"CanEdit\" json:\"CanEdit\" query:\"CanEdit\"`\n\tGroupConf    []*GroupVariableInfo `thrift:\"GroupConf,3\" form:\"GroupConf\" json:\"GroupConf\" query:\"GroupConf\"`\n\tCode         int64                `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg          string               `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp     *base.BaseResp       `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetProjectVariableListResp() *GetProjectVariableListResp {\n\treturn &GetProjectVariableListResp{}\n}\n\nfunc (p *GetProjectVariableListResp) InitDefault() {\n}\n\nfunc (p *GetProjectVariableListResp) GetVariableList() (v []*Variable) {\n\treturn p.VariableList\n}\n\nfunc (p *GetProjectVariableListResp) GetCanEdit() (v bool) {\n\treturn p.CanEdit\n}\n\nfunc (p *GetProjectVariableListResp) GetGroupConf() (v []*GroupVariableInfo) {\n\treturn p.GroupConf\n}\n\nfunc (p *GetProjectVariableListResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetProjectVariableListResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetProjectVariableListResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetProjectVariableListResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetProjectVariableListResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetProjectVariableListResp = map[int16]string{\n\t1:   \"VariableList\",\n\t2:   \"CanEdit\",\n\t3:   \"GroupConf\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetProjectVariableListResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetProjectVariableListResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProjectVariableListResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetProjectVariableListResp[fieldId]))\n}\n\nfunc (p *GetProjectVariableListResp) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Variable, 0, size)\n\tvalues := make([]Variable, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.VariableList = _field\n\treturn nil\n}\nfunc (p *GetProjectVariableListResp) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanEdit = _field\n\treturn nil\n}\nfunc (p *GetProjectVariableListResp) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*GroupVariableInfo, 0, size)\n\tvalues := make([]GroupVariableInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.GroupConf = _field\n\treturn nil\n}\nfunc (p *GetProjectVariableListResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetProjectVariableListResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetProjectVariableListResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetProjectVariableListResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProjectVariableListResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProjectVariableListResp) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VariableList\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.VariableList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.VariableList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProjectVariableListResp) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CanEdit\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanEdit); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProjectVariableListResp) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"GroupConf\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.GroupConf)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.GroupConf {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProjectVariableListResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetProjectVariableListResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetProjectVariableListResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProjectVariableListResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProjectVariableListResp(%+v)\", *p)\n\n}\n\ntype UpdateProjectVariableReq struct {\n\tProjectID    string      `thrift:\"ProjectID,1\" form:\"ProjectID\" json:\"ProjectID\" query:\"ProjectID\"`\n\tUserID       int64       `thrift:\"UserID,2\" form:\"UserID\" json:\"UserID\" query:\"UserID\"`\n\tVariableList []*Variable `thrift:\"VariableList,3\" form:\"VariableList\" json:\"VariableList\" query:\"VariableList\"`\n\tBase         *base.Base  `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateProjectVariableReq() *UpdateProjectVariableReq {\n\treturn &UpdateProjectVariableReq{}\n}\n\nfunc (p *UpdateProjectVariableReq) InitDefault() {\n}\n\nfunc (p *UpdateProjectVariableReq) GetProjectID() (v string) {\n\treturn p.ProjectID\n}\n\nfunc (p *UpdateProjectVariableReq) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *UpdateProjectVariableReq) GetVariableList() (v []*Variable) {\n\treturn p.VariableList\n}\n\nvar UpdateProjectVariableReq_Base_DEFAULT *base.Base\n\nfunc (p *UpdateProjectVariableReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateProjectVariableReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateProjectVariableReq = map[int16]string{\n\t1:   \"ProjectID\",\n\t2:   \"UserID\",\n\t3:   \"VariableList\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateProjectVariableReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateProjectVariableReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateProjectVariableReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateProjectVariableReq) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *UpdateProjectVariableReq) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *UpdateProjectVariableReq) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Variable, 0, size)\n\tvalues := make([]Variable, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.VariableList = _field\n\treturn nil\n}\nfunc (p *UpdateProjectVariableReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateProjectVariableReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateProjectVariableReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateProjectVariableReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ProjectID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateProjectVariableReq) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserID\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateProjectVariableReq) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VariableList\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.VariableList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.VariableList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateProjectVariableReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateProjectVariableReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateProjectVariableReq(%+v)\", *p)\n\n}\n\ntype UpdateProjectVariableResp struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewUpdateProjectVariableResp() *UpdateProjectVariableResp {\n\treturn &UpdateProjectVariableResp{}\n}\n\nfunc (p *UpdateProjectVariableResp) InitDefault() {\n}\n\nfunc (p *UpdateProjectVariableResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateProjectVariableResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateProjectVariableResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateProjectVariableResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateProjectVariableResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateProjectVariableResp = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateProjectVariableResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateProjectVariableResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateProjectVariableResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateProjectVariableResp[fieldId]))\n}\n\nfunc (p *UpdateProjectVariableResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateProjectVariableResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateProjectVariableResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateProjectVariableResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateProjectVariableResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateProjectVariableResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateProjectVariableResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateProjectVariableResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateProjectVariableResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateProjectVariableResp(%+v)\", *p)\n\n}\n\ntype GetMemoryVariableMetaReq struct {\n\tConnectorID   string            `thrift:\"ConnectorID,1\" form:\"ConnectorID\" json:\"ConnectorID\" query:\"ConnectorID\"`\n\tConnectorType VariableConnector `thrift:\"ConnectorType,2\" form:\"ConnectorType\" json:\"ConnectorType\" query:\"ConnectorType\"`\n\tVersion       *string           `thrift:\"version,3,optional\" form:\"version\" json:\"version,omitempty\" query:\"version\"`\n\tBase          *base.Base        `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetMemoryVariableMetaReq() *GetMemoryVariableMetaReq {\n\treturn &GetMemoryVariableMetaReq{}\n}\n\nfunc (p *GetMemoryVariableMetaReq) InitDefault() {\n}\n\nfunc (p *GetMemoryVariableMetaReq) GetConnectorID() (v string) {\n\treturn p.ConnectorID\n}\n\nfunc (p *GetMemoryVariableMetaReq) GetConnectorType() (v VariableConnector) {\n\treturn p.ConnectorType\n}\n\nvar GetMemoryVariableMetaReq_Version_DEFAULT string\n\nfunc (p *GetMemoryVariableMetaReq) GetVersion() (v string) {\n\tif !p.IsSetVersion() {\n\t\treturn GetMemoryVariableMetaReq_Version_DEFAULT\n\t}\n\treturn *p.Version\n}\n\nvar GetMemoryVariableMetaReq_Base_DEFAULT *base.Base\n\nfunc (p *GetMemoryVariableMetaReq) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetMemoryVariableMetaReq_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetMemoryVariableMetaReq = map[int16]string{\n\t1:   \"ConnectorID\",\n\t2:   \"ConnectorType\",\n\t3:   \"version\",\n\t255: \"Base\",\n}\n\nfunc (p *GetMemoryVariableMetaReq) IsSetVersion() bool {\n\treturn p.Version != nil\n}\n\nfunc (p *GetMemoryVariableMetaReq) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetMemoryVariableMetaReq) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetMemoryVariableMetaReq[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetMemoryVariableMetaReq) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *GetMemoryVariableMetaReq) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field VariableConnector\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = VariableConnector(v)\n\t}\n\tp.ConnectorType = _field\n\treturn nil\n}\nfunc (p *GetMemoryVariableMetaReq) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *GetMemoryVariableMetaReq) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetMemoryVariableMetaReq) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetMemoryVariableMetaReq\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetMemoryVariableMetaReq) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetMemoryVariableMetaReq) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConnectorType\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ConnectorType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetMemoryVariableMetaReq) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Version); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetMemoryVariableMetaReq) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetMemoryVariableMetaReq) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetMemoryVariableMetaReq(%+v)\", *p)\n\n}\n\n// It should be the rpc interface for workflow, no authentication is required, VariableChannel\ntype GetMemoryVariableMetaResp struct {\n\tVariableMap map[VariableChannel][]*Variable `thrift:\"VariableMap,1\" form:\"VariableMap\" json:\"VariableMap\" query:\"VariableMap\"`\n\tCode        int64                           `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg         string                          `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp    *base.BaseResp                  `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetMemoryVariableMetaResp() *GetMemoryVariableMetaResp {\n\treturn &GetMemoryVariableMetaResp{}\n}\n\nfunc (p *GetMemoryVariableMetaResp) InitDefault() {\n}\n\nfunc (p *GetMemoryVariableMetaResp) GetVariableMap() (v map[VariableChannel][]*Variable) {\n\treturn p.VariableMap\n}\n\nfunc (p *GetMemoryVariableMetaResp) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetMemoryVariableMetaResp) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetMemoryVariableMetaResp_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetMemoryVariableMetaResp) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetMemoryVariableMetaResp_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetMemoryVariableMetaResp = map[int16]string{\n\t1:   \"VariableMap\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetMemoryVariableMetaResp) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetMemoryVariableMetaResp) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetMemoryVariableMetaResp[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetMemoryVariableMetaResp[fieldId]))\n}\n\nfunc (p *GetMemoryVariableMetaResp) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[VariableChannel][]*Variable, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key VariableChannel\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = VariableChannel(v)\n\t\t}\n\t\t_, size, err := iprot.ReadListBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_val := make([]*Variable, 0, size)\n\t\tvalues := make([]Variable, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\t_elem := &values[i]\n\t\t\t_elem.InitDefault()\n\n\t\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t_val = append(_val, _elem)\n\t\t}\n\t\tif err := iprot.ReadListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.VariableMap = _field\n\treturn nil\n}\nfunc (p *GetMemoryVariableMetaResp) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetMemoryVariableMetaResp) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetMemoryVariableMetaResp) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetMemoryVariableMetaResp) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetMemoryVariableMetaResp\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetMemoryVariableMetaResp) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VariableMap\", thrift.MAP, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I32, thrift.LIST, len(p.VariableMap)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.VariableMap {\n\t\tif err := oprot.WriteI32(int32(k)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range v {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetMemoryVariableMetaResp) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetMemoryVariableMetaResp) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetMemoryVariableMetaResp) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetMemoryVariableMetaResp) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetMemoryVariableMetaResp(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/data/variable/variable_svc.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage variable\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/variable/kvmemory\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/variable/project_memory\"\n)\n\ntype MemoryService interface {\n\t// --- variable\n\tGetProjectVariableList(ctx context.Context, req *project_memory.GetProjectVariableListReq) (r *project_memory.GetProjectVariableListResp, err error)\n\n\tUpdateProjectVariable(ctx context.Context, req *project_memory.UpdateProjectVariableReq) (r *project_memory.UpdateProjectVariableResp, err error)\n\n\tGetMemoryVariableMeta(ctx context.Context, req *project_memory.GetMemoryVariableMetaReq) (r *project_memory.GetMemoryVariableMetaResp, err error)\n\n\tDelProfileMemory(ctx context.Context, req *kvmemory.DelProfileMemoryRequest) (r *kvmemory.DelProfileMemoryResponse, err error)\n\n\tGetPlayGroundMemory(ctx context.Context, req *kvmemory.GetProfileMemoryRequest) (r *kvmemory.GetProfileMemoryResponse, err error)\n\n\tGetSysVariableConf(ctx context.Context, req *kvmemory.GetSysVariableConfRequest) (r *kvmemory.GetSysVariableConfResponse, err error)\n\n\tSetKvMemory(ctx context.Context, req *kvmemory.SetKvMemoryReq) (r *kvmemory.SetKvMemoryResp, err error)\n}\n\ntype MemoryServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewMemoryServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *MemoryServiceClient {\n\treturn &MemoryServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewMemoryServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *MemoryServiceClient {\n\treturn &MemoryServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewMemoryServiceClient(c thrift.TClient) *MemoryServiceClient {\n\treturn &MemoryServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *MemoryServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *MemoryServiceClient) GetProjectVariableList(ctx context.Context, req *project_memory.GetProjectVariableListReq) (r *project_memory.GetProjectVariableListResp, err error) {\n\tvar _args MemoryServiceGetProjectVariableListArgs\n\t_args.Req = req\n\tvar _result MemoryServiceGetProjectVariableListResult\n\tif err = p.Client_().Call(ctx, \"GetProjectVariableList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *MemoryServiceClient) UpdateProjectVariable(ctx context.Context, req *project_memory.UpdateProjectVariableReq) (r *project_memory.UpdateProjectVariableResp, err error) {\n\tvar _args MemoryServiceUpdateProjectVariableArgs\n\t_args.Req = req\n\tvar _result MemoryServiceUpdateProjectVariableResult\n\tif err = p.Client_().Call(ctx, \"UpdateProjectVariable\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *MemoryServiceClient) GetMemoryVariableMeta(ctx context.Context, req *project_memory.GetMemoryVariableMetaReq) (r *project_memory.GetMemoryVariableMetaResp, err error) {\n\tvar _args MemoryServiceGetMemoryVariableMetaArgs\n\t_args.Req = req\n\tvar _result MemoryServiceGetMemoryVariableMetaResult\n\tif err = p.Client_().Call(ctx, \"GetMemoryVariableMeta\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *MemoryServiceClient) DelProfileMemory(ctx context.Context, req *kvmemory.DelProfileMemoryRequest) (r *kvmemory.DelProfileMemoryResponse, err error) {\n\tvar _args MemoryServiceDelProfileMemoryArgs\n\t_args.Req = req\n\tvar _result MemoryServiceDelProfileMemoryResult\n\tif err = p.Client_().Call(ctx, \"DelProfileMemory\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *MemoryServiceClient) GetPlayGroundMemory(ctx context.Context, req *kvmemory.GetProfileMemoryRequest) (r *kvmemory.GetProfileMemoryResponse, err error) {\n\tvar _args MemoryServiceGetPlayGroundMemoryArgs\n\t_args.Req = req\n\tvar _result MemoryServiceGetPlayGroundMemoryResult\n\tif err = p.Client_().Call(ctx, \"GetPlayGroundMemory\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *MemoryServiceClient) GetSysVariableConf(ctx context.Context, req *kvmemory.GetSysVariableConfRequest) (r *kvmemory.GetSysVariableConfResponse, err error) {\n\tvar _args MemoryServiceGetSysVariableConfArgs\n\t_args.Req = req\n\tvar _result MemoryServiceGetSysVariableConfResult\n\tif err = p.Client_().Call(ctx, \"GetSysVariableConf\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *MemoryServiceClient) SetKvMemory(ctx context.Context, req *kvmemory.SetKvMemoryReq) (r *kvmemory.SetKvMemoryResp, err error) {\n\tvar _args MemoryServiceSetKvMemoryArgs\n\t_args.Req = req\n\tvar _result MemoryServiceSetKvMemoryResult\n\tif err = p.Client_().Call(ctx, \"SetKvMemory\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype MemoryServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      MemoryService\n}\n\nfunc (p *MemoryServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *MemoryServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *MemoryServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewMemoryServiceProcessor(handler MemoryService) *MemoryServiceProcessor {\n\tself := &MemoryServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"GetProjectVariableList\", &memoryServiceProcessorGetProjectVariableList{handler: handler})\n\tself.AddToProcessorMap(\"UpdateProjectVariable\", &memoryServiceProcessorUpdateProjectVariable{handler: handler})\n\tself.AddToProcessorMap(\"GetMemoryVariableMeta\", &memoryServiceProcessorGetMemoryVariableMeta{handler: handler})\n\tself.AddToProcessorMap(\"DelProfileMemory\", &memoryServiceProcessorDelProfileMemory{handler: handler})\n\tself.AddToProcessorMap(\"GetPlayGroundMemory\", &memoryServiceProcessorGetPlayGroundMemory{handler: handler})\n\tself.AddToProcessorMap(\"GetSysVariableConf\", &memoryServiceProcessorGetSysVariableConf{handler: handler})\n\tself.AddToProcessorMap(\"SetKvMemory\", &memoryServiceProcessorSetKvMemory{handler: handler})\n\treturn self\n}\nfunc (p *MemoryServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype memoryServiceProcessorGetProjectVariableList struct {\n\thandler MemoryService\n}\n\nfunc (p *memoryServiceProcessorGetProjectVariableList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MemoryServiceGetProjectVariableListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetProjectVariableList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MemoryServiceGetProjectVariableListResult{}\n\tvar retval *project_memory.GetProjectVariableListResp\n\tif retval, err2 = p.handler.GetProjectVariableList(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetProjectVariableList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetProjectVariableList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetProjectVariableList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype memoryServiceProcessorUpdateProjectVariable struct {\n\thandler MemoryService\n}\n\nfunc (p *memoryServiceProcessorUpdateProjectVariable) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MemoryServiceUpdateProjectVariableArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateProjectVariable\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MemoryServiceUpdateProjectVariableResult{}\n\tvar retval *project_memory.UpdateProjectVariableResp\n\tif retval, err2 = p.handler.UpdateProjectVariable(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateProjectVariable: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateProjectVariable\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateProjectVariable\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype memoryServiceProcessorGetMemoryVariableMeta struct {\n\thandler MemoryService\n}\n\nfunc (p *memoryServiceProcessorGetMemoryVariableMeta) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MemoryServiceGetMemoryVariableMetaArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetMemoryVariableMeta\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MemoryServiceGetMemoryVariableMetaResult{}\n\tvar retval *project_memory.GetMemoryVariableMetaResp\n\tif retval, err2 = p.handler.GetMemoryVariableMeta(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetMemoryVariableMeta: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetMemoryVariableMeta\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetMemoryVariableMeta\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype memoryServiceProcessorDelProfileMemory struct {\n\thandler MemoryService\n}\n\nfunc (p *memoryServiceProcessorDelProfileMemory) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MemoryServiceDelProfileMemoryArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DelProfileMemory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MemoryServiceDelProfileMemoryResult{}\n\tvar retval *kvmemory.DelProfileMemoryResponse\n\tif retval, err2 = p.handler.DelProfileMemory(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DelProfileMemory: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DelProfileMemory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DelProfileMemory\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype memoryServiceProcessorGetPlayGroundMemory struct {\n\thandler MemoryService\n}\n\nfunc (p *memoryServiceProcessorGetPlayGroundMemory) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MemoryServiceGetPlayGroundMemoryArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetPlayGroundMemory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MemoryServiceGetPlayGroundMemoryResult{}\n\tvar retval *kvmemory.GetProfileMemoryResponse\n\tif retval, err2 = p.handler.GetPlayGroundMemory(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetPlayGroundMemory: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetPlayGroundMemory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetPlayGroundMemory\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype memoryServiceProcessorGetSysVariableConf struct {\n\thandler MemoryService\n}\n\nfunc (p *memoryServiceProcessorGetSysVariableConf) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MemoryServiceGetSysVariableConfArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetSysVariableConf\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MemoryServiceGetSysVariableConfResult{}\n\tvar retval *kvmemory.GetSysVariableConfResponse\n\tif retval, err2 = p.handler.GetSysVariableConf(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetSysVariableConf: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetSysVariableConf\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetSysVariableConf\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype memoryServiceProcessorSetKvMemory struct {\n\thandler MemoryService\n}\n\nfunc (p *memoryServiceProcessorSetKvMemory) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := MemoryServiceSetKvMemoryArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"SetKvMemory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := MemoryServiceSetKvMemoryResult{}\n\tvar retval *kvmemory.SetKvMemoryResp\n\tif retval, err2 = p.handler.SetKvMemory(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing SetKvMemory: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"SetKvMemory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"SetKvMemory\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype MemoryServiceGetProjectVariableListArgs struct {\n\tReq *project_memory.GetProjectVariableListReq `thrift:\"req,1\"`\n}\n\nfunc NewMemoryServiceGetProjectVariableListArgs() *MemoryServiceGetProjectVariableListArgs {\n\treturn &MemoryServiceGetProjectVariableListArgs{}\n}\n\nfunc (p *MemoryServiceGetProjectVariableListArgs) InitDefault() {\n}\n\nvar MemoryServiceGetProjectVariableListArgs_Req_DEFAULT *project_memory.GetProjectVariableListReq\n\nfunc (p *MemoryServiceGetProjectVariableListArgs) GetReq() (v *project_memory.GetProjectVariableListReq) {\n\tif !p.IsSetReq() {\n\t\treturn MemoryServiceGetProjectVariableListArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_MemoryServiceGetProjectVariableListArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *MemoryServiceGetProjectVariableListArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *MemoryServiceGetProjectVariableListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceGetProjectVariableListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetProjectVariableListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := project_memory.NewGetProjectVariableListReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceGetProjectVariableListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProjectVariableList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetProjectVariableListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetProjectVariableListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceGetProjectVariableListArgs(%+v)\", *p)\n\n}\n\ntype MemoryServiceGetProjectVariableListResult struct {\n\tSuccess *project_memory.GetProjectVariableListResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewMemoryServiceGetProjectVariableListResult() *MemoryServiceGetProjectVariableListResult {\n\treturn &MemoryServiceGetProjectVariableListResult{}\n}\n\nfunc (p *MemoryServiceGetProjectVariableListResult) InitDefault() {\n}\n\nvar MemoryServiceGetProjectVariableListResult_Success_DEFAULT *project_memory.GetProjectVariableListResp\n\nfunc (p *MemoryServiceGetProjectVariableListResult) GetSuccess() (v *project_memory.GetProjectVariableListResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn MemoryServiceGetProjectVariableListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MemoryServiceGetProjectVariableListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MemoryServiceGetProjectVariableListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MemoryServiceGetProjectVariableListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceGetProjectVariableListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetProjectVariableListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := project_memory.NewGetProjectVariableListResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceGetProjectVariableListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProjectVariableList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetProjectVariableListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetProjectVariableListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceGetProjectVariableListResult(%+v)\", *p)\n\n}\n\ntype MemoryServiceUpdateProjectVariableArgs struct {\n\tReq *project_memory.UpdateProjectVariableReq `thrift:\"req,1\"`\n}\n\nfunc NewMemoryServiceUpdateProjectVariableArgs() *MemoryServiceUpdateProjectVariableArgs {\n\treturn &MemoryServiceUpdateProjectVariableArgs{}\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableArgs) InitDefault() {\n}\n\nvar MemoryServiceUpdateProjectVariableArgs_Req_DEFAULT *project_memory.UpdateProjectVariableReq\n\nfunc (p *MemoryServiceUpdateProjectVariableArgs) GetReq() (v *project_memory.UpdateProjectVariableReq) {\n\tif !p.IsSetReq() {\n\t\treturn MemoryServiceUpdateProjectVariableArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_MemoryServiceUpdateProjectVariableArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceUpdateProjectVariableArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := project_memory.NewUpdateProjectVariableReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateProjectVariable_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceUpdateProjectVariableArgs(%+v)\", *p)\n\n}\n\ntype MemoryServiceUpdateProjectVariableResult struct {\n\tSuccess *project_memory.UpdateProjectVariableResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewMemoryServiceUpdateProjectVariableResult() *MemoryServiceUpdateProjectVariableResult {\n\treturn &MemoryServiceUpdateProjectVariableResult{}\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableResult) InitDefault() {\n}\n\nvar MemoryServiceUpdateProjectVariableResult_Success_DEFAULT *project_memory.UpdateProjectVariableResp\n\nfunc (p *MemoryServiceUpdateProjectVariableResult) GetSuccess() (v *project_memory.UpdateProjectVariableResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn MemoryServiceUpdateProjectVariableResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MemoryServiceUpdateProjectVariableResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceUpdateProjectVariableResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := project_memory.NewUpdateProjectVariableResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateProjectVariable_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceUpdateProjectVariableResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceUpdateProjectVariableResult(%+v)\", *p)\n\n}\n\ntype MemoryServiceGetMemoryVariableMetaArgs struct {\n\tReq *project_memory.GetMemoryVariableMetaReq `thrift:\"req,1\"`\n}\n\nfunc NewMemoryServiceGetMemoryVariableMetaArgs() *MemoryServiceGetMemoryVariableMetaArgs {\n\treturn &MemoryServiceGetMemoryVariableMetaArgs{}\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaArgs) InitDefault() {\n}\n\nvar MemoryServiceGetMemoryVariableMetaArgs_Req_DEFAULT *project_memory.GetMemoryVariableMetaReq\n\nfunc (p *MemoryServiceGetMemoryVariableMetaArgs) GetReq() (v *project_memory.GetMemoryVariableMetaReq) {\n\tif !p.IsSetReq() {\n\t\treturn MemoryServiceGetMemoryVariableMetaArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_MemoryServiceGetMemoryVariableMetaArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceGetMemoryVariableMetaArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := project_memory.NewGetMemoryVariableMetaReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetMemoryVariableMeta_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceGetMemoryVariableMetaArgs(%+v)\", *p)\n\n}\n\ntype MemoryServiceGetMemoryVariableMetaResult struct {\n\tSuccess *project_memory.GetMemoryVariableMetaResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewMemoryServiceGetMemoryVariableMetaResult() *MemoryServiceGetMemoryVariableMetaResult {\n\treturn &MemoryServiceGetMemoryVariableMetaResult{}\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaResult) InitDefault() {\n}\n\nvar MemoryServiceGetMemoryVariableMetaResult_Success_DEFAULT *project_memory.GetMemoryVariableMetaResp\n\nfunc (p *MemoryServiceGetMemoryVariableMetaResult) GetSuccess() (v *project_memory.GetMemoryVariableMetaResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn MemoryServiceGetMemoryVariableMetaResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MemoryServiceGetMemoryVariableMetaResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceGetMemoryVariableMetaResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := project_memory.NewGetMemoryVariableMetaResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetMemoryVariableMeta_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetMemoryVariableMetaResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceGetMemoryVariableMetaResult(%+v)\", *p)\n\n}\n\ntype MemoryServiceDelProfileMemoryArgs struct {\n\tReq *kvmemory.DelProfileMemoryRequest `thrift:\"req,1\"`\n}\n\nfunc NewMemoryServiceDelProfileMemoryArgs() *MemoryServiceDelProfileMemoryArgs {\n\treturn &MemoryServiceDelProfileMemoryArgs{}\n}\n\nfunc (p *MemoryServiceDelProfileMemoryArgs) InitDefault() {\n}\n\nvar MemoryServiceDelProfileMemoryArgs_Req_DEFAULT *kvmemory.DelProfileMemoryRequest\n\nfunc (p *MemoryServiceDelProfileMemoryArgs) GetReq() (v *kvmemory.DelProfileMemoryRequest) {\n\tif !p.IsSetReq() {\n\t\treturn MemoryServiceDelProfileMemoryArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_MemoryServiceDelProfileMemoryArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *MemoryServiceDelProfileMemoryArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *MemoryServiceDelProfileMemoryArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceDelProfileMemoryArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceDelProfileMemoryArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := kvmemory.NewDelProfileMemoryRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceDelProfileMemoryArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DelProfileMemory_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceDelProfileMemoryArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceDelProfileMemoryArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceDelProfileMemoryArgs(%+v)\", *p)\n\n}\n\ntype MemoryServiceDelProfileMemoryResult struct {\n\tSuccess *kvmemory.DelProfileMemoryResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewMemoryServiceDelProfileMemoryResult() *MemoryServiceDelProfileMemoryResult {\n\treturn &MemoryServiceDelProfileMemoryResult{}\n}\n\nfunc (p *MemoryServiceDelProfileMemoryResult) InitDefault() {\n}\n\nvar MemoryServiceDelProfileMemoryResult_Success_DEFAULT *kvmemory.DelProfileMemoryResponse\n\nfunc (p *MemoryServiceDelProfileMemoryResult) GetSuccess() (v *kvmemory.DelProfileMemoryResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn MemoryServiceDelProfileMemoryResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MemoryServiceDelProfileMemoryResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MemoryServiceDelProfileMemoryResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MemoryServiceDelProfileMemoryResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceDelProfileMemoryResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceDelProfileMemoryResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := kvmemory.NewDelProfileMemoryResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceDelProfileMemoryResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DelProfileMemory_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceDelProfileMemoryResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceDelProfileMemoryResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceDelProfileMemoryResult(%+v)\", *p)\n\n}\n\ntype MemoryServiceGetPlayGroundMemoryArgs struct {\n\tReq *kvmemory.GetProfileMemoryRequest `thrift:\"req,1\"`\n}\n\nfunc NewMemoryServiceGetPlayGroundMemoryArgs() *MemoryServiceGetPlayGroundMemoryArgs {\n\treturn &MemoryServiceGetPlayGroundMemoryArgs{}\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryArgs) InitDefault() {\n}\n\nvar MemoryServiceGetPlayGroundMemoryArgs_Req_DEFAULT *kvmemory.GetProfileMemoryRequest\n\nfunc (p *MemoryServiceGetPlayGroundMemoryArgs) GetReq() (v *kvmemory.GetProfileMemoryRequest) {\n\tif !p.IsSetReq() {\n\t\treturn MemoryServiceGetPlayGroundMemoryArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_MemoryServiceGetPlayGroundMemoryArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceGetPlayGroundMemoryArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := kvmemory.NewGetProfileMemoryRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPlayGroundMemory_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceGetPlayGroundMemoryArgs(%+v)\", *p)\n\n}\n\ntype MemoryServiceGetPlayGroundMemoryResult struct {\n\tSuccess *kvmemory.GetProfileMemoryResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewMemoryServiceGetPlayGroundMemoryResult() *MemoryServiceGetPlayGroundMemoryResult {\n\treturn &MemoryServiceGetPlayGroundMemoryResult{}\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryResult) InitDefault() {\n}\n\nvar MemoryServiceGetPlayGroundMemoryResult_Success_DEFAULT *kvmemory.GetProfileMemoryResponse\n\nfunc (p *MemoryServiceGetPlayGroundMemoryResult) GetSuccess() (v *kvmemory.GetProfileMemoryResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn MemoryServiceGetPlayGroundMemoryResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MemoryServiceGetPlayGroundMemoryResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceGetPlayGroundMemoryResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := kvmemory.NewGetProfileMemoryResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPlayGroundMemory_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetPlayGroundMemoryResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceGetPlayGroundMemoryResult(%+v)\", *p)\n\n}\n\ntype MemoryServiceGetSysVariableConfArgs struct {\n\tReq *kvmemory.GetSysVariableConfRequest `thrift:\"req,1\"`\n}\n\nfunc NewMemoryServiceGetSysVariableConfArgs() *MemoryServiceGetSysVariableConfArgs {\n\treturn &MemoryServiceGetSysVariableConfArgs{}\n}\n\nfunc (p *MemoryServiceGetSysVariableConfArgs) InitDefault() {\n}\n\nvar MemoryServiceGetSysVariableConfArgs_Req_DEFAULT *kvmemory.GetSysVariableConfRequest\n\nfunc (p *MemoryServiceGetSysVariableConfArgs) GetReq() (v *kvmemory.GetSysVariableConfRequest) {\n\tif !p.IsSetReq() {\n\t\treturn MemoryServiceGetSysVariableConfArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_MemoryServiceGetSysVariableConfArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *MemoryServiceGetSysVariableConfArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *MemoryServiceGetSysVariableConfArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceGetSysVariableConfArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetSysVariableConfArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := kvmemory.NewGetSysVariableConfRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceGetSysVariableConfArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetSysVariableConf_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetSysVariableConfArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetSysVariableConfArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceGetSysVariableConfArgs(%+v)\", *p)\n\n}\n\ntype MemoryServiceGetSysVariableConfResult struct {\n\tSuccess *kvmemory.GetSysVariableConfResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewMemoryServiceGetSysVariableConfResult() *MemoryServiceGetSysVariableConfResult {\n\treturn &MemoryServiceGetSysVariableConfResult{}\n}\n\nfunc (p *MemoryServiceGetSysVariableConfResult) InitDefault() {\n}\n\nvar MemoryServiceGetSysVariableConfResult_Success_DEFAULT *kvmemory.GetSysVariableConfResponse\n\nfunc (p *MemoryServiceGetSysVariableConfResult) GetSuccess() (v *kvmemory.GetSysVariableConfResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn MemoryServiceGetSysVariableConfResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MemoryServiceGetSysVariableConfResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MemoryServiceGetSysVariableConfResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MemoryServiceGetSysVariableConfResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceGetSysVariableConfResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetSysVariableConfResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := kvmemory.NewGetSysVariableConfResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceGetSysVariableConfResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetSysVariableConf_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetSysVariableConfResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceGetSysVariableConfResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceGetSysVariableConfResult(%+v)\", *p)\n\n}\n\ntype MemoryServiceSetKvMemoryArgs struct {\n\tReq *kvmemory.SetKvMemoryReq `thrift:\"req,1\"`\n}\n\nfunc NewMemoryServiceSetKvMemoryArgs() *MemoryServiceSetKvMemoryArgs {\n\treturn &MemoryServiceSetKvMemoryArgs{}\n}\n\nfunc (p *MemoryServiceSetKvMemoryArgs) InitDefault() {\n}\n\nvar MemoryServiceSetKvMemoryArgs_Req_DEFAULT *kvmemory.SetKvMemoryReq\n\nfunc (p *MemoryServiceSetKvMemoryArgs) GetReq() (v *kvmemory.SetKvMemoryReq) {\n\tif !p.IsSetReq() {\n\t\treturn MemoryServiceSetKvMemoryArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_MemoryServiceSetKvMemoryArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *MemoryServiceSetKvMemoryArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *MemoryServiceSetKvMemoryArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceSetKvMemoryArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceSetKvMemoryArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := kvmemory.NewSetKvMemoryReq()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceSetKvMemoryArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SetKvMemory_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceSetKvMemoryArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceSetKvMemoryArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceSetKvMemoryArgs(%+v)\", *p)\n\n}\n\ntype MemoryServiceSetKvMemoryResult struct {\n\tSuccess *kvmemory.SetKvMemoryResp `thrift:\"success,0,optional\"`\n}\n\nfunc NewMemoryServiceSetKvMemoryResult() *MemoryServiceSetKvMemoryResult {\n\treturn &MemoryServiceSetKvMemoryResult{}\n}\n\nfunc (p *MemoryServiceSetKvMemoryResult) InitDefault() {\n}\n\nvar MemoryServiceSetKvMemoryResult_Success_DEFAULT *kvmemory.SetKvMemoryResp\n\nfunc (p *MemoryServiceSetKvMemoryResult) GetSuccess() (v *kvmemory.SetKvMemoryResp) {\n\tif !p.IsSetSuccess() {\n\t\treturn MemoryServiceSetKvMemoryResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_MemoryServiceSetKvMemoryResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *MemoryServiceSetKvMemoryResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *MemoryServiceSetKvMemoryResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MemoryServiceSetKvMemoryResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceSetKvMemoryResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := kvmemory.NewSetKvMemoryResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *MemoryServiceSetKvMemoryResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SetKvMemory_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MemoryServiceSetKvMemoryResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *MemoryServiceSetKvMemoryResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MemoryServiceSetKvMemoryResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/file/upload/upload.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage upload\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype CommonUploadRequest struct {\n\tByteData   []byte  `thrift:\"ByteData,1,optional\" json:\"ByteData,omitempty\" raw_body:\"\"`\n\tUploadID   *string `thrift:\"uploadID,2,optional\" json:\"uploadID,omitempty\" query:\"uploadID\"`\n\tPartNumber *string `thrift:\"partNumber,3,optional\" json:\"partNumber,omitempty\" query:\"partNumber\"`\n}\n\nfunc NewCommonUploadRequest() *CommonUploadRequest {\n\treturn &CommonUploadRequest{}\n}\n\nfunc (p *CommonUploadRequest) InitDefault() {\n}\n\nvar CommonUploadRequest_ByteData_DEFAULT []byte\n\nfunc (p *CommonUploadRequest) GetByteData() (v []byte) {\n\tif !p.IsSetByteData() {\n\t\treturn CommonUploadRequest_ByteData_DEFAULT\n\t}\n\treturn p.ByteData\n}\n\nvar CommonUploadRequest_UploadID_DEFAULT string\n\nfunc (p *CommonUploadRequest) GetUploadID() (v string) {\n\tif !p.IsSetUploadID() {\n\t\treturn CommonUploadRequest_UploadID_DEFAULT\n\t}\n\treturn *p.UploadID\n}\n\nvar CommonUploadRequest_PartNumber_DEFAULT string\n\nfunc (p *CommonUploadRequest) GetPartNumber() (v string) {\n\tif !p.IsSetPartNumber() {\n\t\treturn CommonUploadRequest_PartNumber_DEFAULT\n\t}\n\treturn *p.PartNumber\n}\n\nvar fieldIDToName_CommonUploadRequest = map[int16]string{\n\t1: \"ByteData\",\n\t2: \"uploadID\",\n\t3: \"partNumber\",\n}\n\nfunc (p *CommonUploadRequest) IsSetByteData() bool {\n\treturn p.ByteData != nil\n}\n\nfunc (p *CommonUploadRequest) IsSetUploadID() bool {\n\treturn p.UploadID != nil\n}\n\nfunc (p *CommonUploadRequest) IsSetPartNumber() bool {\n\treturn p.PartNumber != nil\n}\n\nfunc (p *CommonUploadRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CommonUploadRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CommonUploadRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field []byte\n\tif v, err := iprot.ReadBinary(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = []byte(v)\n\t}\n\tp.ByteData = _field\n\treturn nil\n}\nfunc (p *CommonUploadRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UploadID = _field\n\treturn nil\n}\nfunc (p *CommonUploadRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PartNumber = _field\n\treturn nil\n}\n\nfunc (p *CommonUploadRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CommonUploadRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CommonUploadRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetByteData() {\n\t\tif err = oprot.WriteFieldBegin(\"ByteData\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBinary([]byte(p.ByteData)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CommonUploadRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUploadID() {\n\t\tif err = oprot.WriteFieldBegin(\"uploadID\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UploadID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CommonUploadRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPartNumber() {\n\t\tif err = oprot.WriteFieldBegin(\"partNumber\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PartNumber); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *CommonUploadRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CommonUploadRequest(%+v)\", *p)\n\n}\n\ntype Error struct {\n\tCode      int32  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tError     string `thrift:\"error,2\" form:\"error\" json:\"error\" query:\"error\"`\n\tErrorCode int32  `thrift:\"error_code,3\" form:\"error_code\" json:\"error_code\" query:\"error_code\"`\n\tMessage   string `thrift:\"message,4\" form:\"message\" json:\"message\" query:\"message\"`\n}\n\nfunc NewError() *Error {\n\treturn &Error{}\n}\n\nfunc (p *Error) InitDefault() {\n}\n\nfunc (p *Error) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *Error) GetError() (v string) {\n\treturn p.Error\n}\n\nfunc (p *Error) GetErrorCode() (v int32) {\n\treturn p.ErrorCode\n}\n\nfunc (p *Error) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar fieldIDToName_Error = map[int16]string{\n\t1: \"code\",\n\t2: \"error\",\n\t3: \"error_code\",\n\t4: \"message\",\n}\n\nfunc (p *Error) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Error[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Error) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *Error) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Error = _field\n\treturn nil\n}\nfunc (p *Error) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ErrorCode = _field\n\treturn nil\n}\nfunc (p *Error) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\n\nfunc (p *Error) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Error\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Error) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Error) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"error\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Error); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Error) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"error_code\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.ErrorCode); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Error) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"message\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *Error) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Error(%+v)\", *p)\n\n}\n\ntype Payload struct {\n\tHash     string `thrift:\"hash,1\" form:\"hash\" json:\"hash\" query:\"hash\"`\n\tKey      string `thrift:\"key,2\" form:\"key\" json:\"key\" query:\"key\"`\n\tUploadID string `thrift:\"uploadID,3\" form:\"uploadID\" json:\"uploadID\" query:\"uploadID\"`\n}\n\nfunc NewPayload() *Payload {\n\treturn &Payload{}\n}\n\nfunc (p *Payload) InitDefault() {\n}\n\nfunc (p *Payload) GetHash() (v string) {\n\treturn p.Hash\n}\n\nfunc (p *Payload) GetKey() (v string) {\n\treturn p.Key\n}\n\nfunc (p *Payload) GetUploadID() (v string) {\n\treturn p.UploadID\n}\n\nvar fieldIDToName_Payload = map[int16]string{\n\t1: \"hash\",\n\t2: \"key\",\n\t3: \"uploadID\",\n}\n\nfunc (p *Payload) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Payload[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Payload) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Hash = _field\n\treturn nil\n}\nfunc (p *Payload) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *Payload) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UploadID = _field\n\treturn nil\n}\n\nfunc (p *Payload) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Payload\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Payload) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"hash\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Hash); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Payload) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"key\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Key); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Payload) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"uploadID\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UploadID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *Payload) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Payload(%+v)\", *p)\n\n}\n\ntype CommonUploadResponse struct {\n\tVersion string   `thrift:\"Version,1\" form:\"Version\" json:\"Version\" query:\"Version\"`\n\tSuccess int32    `thrift:\"success,2\" form:\"success\" json:\"success\" query:\"success\"`\n\tError   *Error   `thrift:\"error,3\" form:\"error\" json:\"error\" query:\"error\"`\n\tPayload *Payload `thrift:\"payload,4\" form:\"payload\" json:\"payload\" query:\"payload\"`\n}\n\nfunc NewCommonUploadResponse() *CommonUploadResponse {\n\treturn &CommonUploadResponse{}\n}\n\nfunc (p *CommonUploadResponse) InitDefault() {\n}\n\nfunc (p *CommonUploadResponse) GetVersion() (v string) {\n\treturn p.Version\n}\n\nfunc (p *CommonUploadResponse) GetSuccess() (v int32) {\n\treturn p.Success\n}\n\nvar CommonUploadResponse_Error_DEFAULT *Error\n\nfunc (p *CommonUploadResponse) GetError() (v *Error) {\n\tif !p.IsSetError() {\n\t\treturn CommonUploadResponse_Error_DEFAULT\n\t}\n\treturn p.Error\n}\n\nvar CommonUploadResponse_Payload_DEFAULT *Payload\n\nfunc (p *CommonUploadResponse) GetPayload() (v *Payload) {\n\tif !p.IsSetPayload() {\n\t\treturn CommonUploadResponse_Payload_DEFAULT\n\t}\n\treturn p.Payload\n}\n\nvar fieldIDToName_CommonUploadResponse = map[int16]string{\n\t1: \"Version\",\n\t2: \"success\",\n\t3: \"error\",\n\t4: \"payload\",\n}\n\nfunc (p *CommonUploadResponse) IsSetError() bool {\n\treturn p.Error != nil\n}\n\nfunc (p *CommonUploadResponse) IsSetPayload() bool {\n\treturn p.Payload != nil\n}\n\nfunc (p *CommonUploadResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CommonUploadResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CommonUploadResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *CommonUploadResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Success = _field\n\treturn nil\n}\nfunc (p *CommonUploadResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewError()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Error = _field\n\treturn nil\n}\nfunc (p *CommonUploadResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewPayload()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Payload = _field\n\treturn nil\n}\n\nfunc (p *CommonUploadResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CommonUploadResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CommonUploadResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Version\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CommonUploadResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"success\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Success); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CommonUploadResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"error\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Error.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CommonUploadResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"payload\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Payload.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *CommonUploadResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CommonUploadResponse(%+v)\", *p)\n\n}\n\ntype ApplyUploadActionRequest struct {\n\tAction        *string `thrift:\"Action,1,optional\" json:\"Action,omitempty\" query:\"Action\"`\n\tVersion       *string `thrift:\"Version,2,optional\" json:\"Version,omitempty\" query:\"Version\"`\n\tServiceId     *string `thrift:\"ServiceId,3,optional\" json:\"ServiceId,omitempty\" query:\"ServiceId\"`\n\tFileExtension *string `thrift:\"FileExtension,4,optional\" json:\"FileExtension,omitempty\" query:\"FileExtension\"`\n\tFileSize      *string `thrift:\"FileSize,5,optional\" json:\"FileSize,omitempty\" query:\"FileSize\"`\n\tS             *string `thrift:\"s,6,optional\" json:\"s,omitempty\" query:\"s\"`\n\tByteData      []byte  `thrift:\"ByteData,7,optional\" json:\"ByteData,omitempty\" raw_body:\"\"`\n}\n\nfunc NewApplyUploadActionRequest() *ApplyUploadActionRequest {\n\treturn &ApplyUploadActionRequest{}\n}\n\nfunc (p *ApplyUploadActionRequest) InitDefault() {\n}\n\nvar ApplyUploadActionRequest_Action_DEFAULT string\n\nfunc (p *ApplyUploadActionRequest) GetAction() (v string) {\n\tif !p.IsSetAction() {\n\t\treturn ApplyUploadActionRequest_Action_DEFAULT\n\t}\n\treturn *p.Action\n}\n\nvar ApplyUploadActionRequest_Version_DEFAULT string\n\nfunc (p *ApplyUploadActionRequest) GetVersion() (v string) {\n\tif !p.IsSetVersion() {\n\t\treturn ApplyUploadActionRequest_Version_DEFAULT\n\t}\n\treturn *p.Version\n}\n\nvar ApplyUploadActionRequest_ServiceId_DEFAULT string\n\nfunc (p *ApplyUploadActionRequest) GetServiceId() (v string) {\n\tif !p.IsSetServiceId() {\n\t\treturn ApplyUploadActionRequest_ServiceId_DEFAULT\n\t}\n\treturn *p.ServiceId\n}\n\nvar ApplyUploadActionRequest_FileExtension_DEFAULT string\n\nfunc (p *ApplyUploadActionRequest) GetFileExtension() (v string) {\n\tif !p.IsSetFileExtension() {\n\t\treturn ApplyUploadActionRequest_FileExtension_DEFAULT\n\t}\n\treturn *p.FileExtension\n}\n\nvar ApplyUploadActionRequest_FileSize_DEFAULT string\n\nfunc (p *ApplyUploadActionRequest) GetFileSize() (v string) {\n\tif !p.IsSetFileSize() {\n\t\treturn ApplyUploadActionRequest_FileSize_DEFAULT\n\t}\n\treturn *p.FileSize\n}\n\nvar ApplyUploadActionRequest_S_DEFAULT string\n\nfunc (p *ApplyUploadActionRequest) GetS() (v string) {\n\tif !p.IsSetS() {\n\t\treturn ApplyUploadActionRequest_S_DEFAULT\n\t}\n\treturn *p.S\n}\n\nvar ApplyUploadActionRequest_ByteData_DEFAULT []byte\n\nfunc (p *ApplyUploadActionRequest) GetByteData() (v []byte) {\n\tif !p.IsSetByteData() {\n\t\treturn ApplyUploadActionRequest_ByteData_DEFAULT\n\t}\n\treturn p.ByteData\n}\n\nvar fieldIDToName_ApplyUploadActionRequest = map[int16]string{\n\t1: \"Action\",\n\t2: \"Version\",\n\t3: \"ServiceId\",\n\t4: \"FileExtension\",\n\t5: \"FileSize\",\n\t6: \"s\",\n\t7: \"ByteData\",\n}\n\nfunc (p *ApplyUploadActionRequest) IsSetAction() bool {\n\treturn p.Action != nil\n}\n\nfunc (p *ApplyUploadActionRequest) IsSetVersion() bool {\n\treturn p.Version != nil\n}\n\nfunc (p *ApplyUploadActionRequest) IsSetServiceId() bool {\n\treturn p.ServiceId != nil\n}\n\nfunc (p *ApplyUploadActionRequest) IsSetFileExtension() bool {\n\treturn p.FileExtension != nil\n}\n\nfunc (p *ApplyUploadActionRequest) IsSetFileSize() bool {\n\treturn p.FileSize != nil\n}\n\nfunc (p *ApplyUploadActionRequest) IsSetS() bool {\n\treturn p.S != nil\n}\n\nfunc (p *ApplyUploadActionRequest) IsSetByteData() bool {\n\treturn p.ByteData != nil\n}\n\nfunc (p *ApplyUploadActionRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ApplyUploadActionRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ApplyUploadActionRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Action = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ServiceId = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FileExtension = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FileSize = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.S = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field []byte\n\tif v, err := iprot.ReadBinary(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = []byte(v)\n\t}\n\tp.ByteData = _field\n\treturn nil\n}\n\nfunc (p *ApplyUploadActionRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ApplyUploadActionRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ApplyUploadActionRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAction() {\n\t\tif err = oprot.WriteFieldBegin(\"Action\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Action); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"Version\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Version); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetServiceId() {\n\t\tif err = oprot.WriteFieldBegin(\"ServiceId\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ServiceId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFileExtension() {\n\t\tif err = oprot.WriteFieldBegin(\"FileExtension\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FileExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFileSize() {\n\t\tif err = oprot.WriteFieldBegin(\"FileSize\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FileSize); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetS() {\n\t\tif err = oprot.WriteFieldBegin(\"s\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.S); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetByteData() {\n\t\tif err = oprot.WriteFieldBegin(\"ByteData\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBinary([]byte(p.ByteData)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *ApplyUploadActionRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ApplyUploadActionRequest(%+v)\", *p)\n\n}\n\ntype ResponseMetadata struct {\n\tRequestId string `thrift:\"RequestId,1,required\" form:\"RequestId,required\" json:\"RequestId,required\" query:\"RequestId,required\"`\n\tAction    string `thrift:\"Action,2,required\" form:\"Action,required\" json:\"Action,required\" query:\"Action,required\"`\n\tVersion   string `thrift:\"Version,3,required\" form:\"Version,required\" json:\"Version,required\" query:\"Version,required\"`\n\tService   string `thrift:\"Service,4,required\" form:\"Service,required\" json:\"Service,required\" query:\"Service,required\"`\n\tRegion    string `thrift:\"Region,5,required\" form:\"Region,required\" json:\"Region,required\" query:\"Region,required\"`\n}\n\nfunc NewResponseMetadata() *ResponseMetadata {\n\treturn &ResponseMetadata{}\n}\n\nfunc (p *ResponseMetadata) InitDefault() {\n}\n\nfunc (p *ResponseMetadata) GetRequestId() (v string) {\n\treturn p.RequestId\n}\n\nfunc (p *ResponseMetadata) GetAction() (v string) {\n\treturn p.Action\n}\n\nfunc (p *ResponseMetadata) GetVersion() (v string) {\n\treturn p.Version\n}\n\nfunc (p *ResponseMetadata) GetService() (v string) {\n\treturn p.Service\n}\n\nfunc (p *ResponseMetadata) GetRegion() (v string) {\n\treturn p.Region\n}\n\nvar fieldIDToName_ResponseMetadata = map[int16]string{\n\t1: \"RequestId\",\n\t2: \"Action\",\n\t3: \"Version\",\n\t4: \"Service\",\n\t5: \"Region\",\n}\n\nfunc (p *ResponseMetadata) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetRequestId bool = false\n\tvar issetAction bool = false\n\tvar issetVersion bool = false\n\tvar issetService bool = false\n\tvar issetRegion bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetRequestId = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetAction = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetVersion = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetService = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetRegion = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetRequestId {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetAction {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetVersion {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetService {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetRegion {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResponseMetadata[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ResponseMetadata[fieldId]))\n}\n\nfunc (p *ResponseMetadata) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RequestId = _field\n\treturn nil\n}\nfunc (p *ResponseMetadata) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Action = _field\n\treturn nil\n}\nfunc (p *ResponseMetadata) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *ResponseMetadata) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Service = _field\n\treturn nil\n}\nfunc (p *ResponseMetadata) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Region = _field\n\treturn nil\n}\n\nfunc (p *ResponseMetadata) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResponseMetadata\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResponseMetadata) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"RequestId\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.RequestId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResponseMetadata) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Action\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Action); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResponseMetadata) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Version\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ResponseMetadata) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Service\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Service); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ResponseMetadata) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Region\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Region); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *ResponseMetadata) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResponseMetadata(%+v)\", *p)\n\n}\n\ntype StoreInfo struct {\n\tStoreUri string `thrift:\"StoreUri,1,required\" form:\"StoreUri,required\" json:\"StoreUri,required\" query:\"StoreUri,required\"`\n\tAuth     string `thrift:\"Auth,2,required\" form:\"Auth,required\" json:\"Auth,required\" query:\"Auth,required\"`\n\tUploadID string `thrift:\"UploadID,3,required\" form:\"UploadID,required\" json:\"UploadID,required\" query:\"UploadID,required\"`\n}\n\nfunc NewStoreInfo() *StoreInfo {\n\treturn &StoreInfo{}\n}\n\nfunc (p *StoreInfo) InitDefault() {\n}\n\nfunc (p *StoreInfo) GetStoreUri() (v string) {\n\treturn p.StoreUri\n}\n\nfunc (p *StoreInfo) GetAuth() (v string) {\n\treturn p.Auth\n}\n\nfunc (p *StoreInfo) GetUploadID() (v string) {\n\treturn p.UploadID\n}\n\nvar fieldIDToName_StoreInfo = map[int16]string{\n\t1: \"StoreUri\",\n\t2: \"Auth\",\n\t3: \"UploadID\",\n}\n\nfunc (p *StoreInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetStoreUri bool = false\n\tvar issetAuth bool = false\n\tvar issetUploadID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetStoreUri = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetAuth = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUploadID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetStoreUri {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetAuth {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUploadID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_StoreInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_StoreInfo[fieldId]))\n}\n\nfunc (p *StoreInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StoreUri = _field\n\treturn nil\n}\nfunc (p *StoreInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Auth = _field\n\treturn nil\n}\nfunc (p *StoreInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UploadID = _field\n\treturn nil\n}\n\nfunc (p *StoreInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"StoreInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *StoreInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StoreUri\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.StoreUri); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *StoreInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Auth\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Auth); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *StoreInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UploadID\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UploadID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *StoreInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"StoreInfo(%+v)\", *p)\n\n}\n\ntype UploadAddress struct {\n\tStoreInfos   []*StoreInfo      `thrift:\"StoreInfos,1,required\" form:\"StoreInfos,required\" json:\"StoreInfos,required\" query:\"StoreInfos,required\"`\n\tUploadHosts  []string          `thrift:\"UploadHosts,2,required\" form:\"UploadHosts,required\" json:\"UploadHosts,required\" query:\"UploadHosts,required\"`\n\tUploadHeader map[string]string `thrift:\"UploadHeader,3,optional\" form:\"UploadHeader\" json:\"UploadHeader,omitempty\" query:\"UploadHeader\"`\n\tSessionKey   string            `thrift:\"SessionKey,4,required\" form:\"SessionKey,required\" json:\"SessionKey,required\" query:\"SessionKey,required\"`\n\tCloud        string            `thrift:\"Cloud,5,required\" form:\"Cloud,required\" json:\"Cloud,required\" query:\"Cloud,required\"`\n}\n\nfunc NewUploadAddress() *UploadAddress {\n\treturn &UploadAddress{}\n}\n\nfunc (p *UploadAddress) InitDefault() {\n}\n\nfunc (p *UploadAddress) GetStoreInfos() (v []*StoreInfo) {\n\treturn p.StoreInfos\n}\n\nfunc (p *UploadAddress) GetUploadHosts() (v []string) {\n\treturn p.UploadHosts\n}\n\nvar UploadAddress_UploadHeader_DEFAULT map[string]string\n\nfunc (p *UploadAddress) GetUploadHeader() (v map[string]string) {\n\tif !p.IsSetUploadHeader() {\n\t\treturn UploadAddress_UploadHeader_DEFAULT\n\t}\n\treturn p.UploadHeader\n}\n\nfunc (p *UploadAddress) GetSessionKey() (v string) {\n\treturn p.SessionKey\n}\n\nfunc (p *UploadAddress) GetCloud() (v string) {\n\treturn p.Cloud\n}\n\nvar fieldIDToName_UploadAddress = map[int16]string{\n\t1: \"StoreInfos\",\n\t2: \"UploadHosts\",\n\t3: \"UploadHeader\",\n\t4: \"SessionKey\",\n\t5: \"Cloud\",\n}\n\nfunc (p *UploadAddress) IsSetUploadHeader() bool {\n\treturn p.UploadHeader != nil\n}\n\nfunc (p *UploadAddress) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetStoreInfos bool = false\n\tvar issetUploadHosts bool = false\n\tvar issetSessionKey bool = false\n\tvar issetCloud bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetStoreInfos = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUploadHosts = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSessionKey = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCloud = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetStoreInfos {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUploadHosts {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSessionKey {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCloud {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadAddress[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UploadAddress[fieldId]))\n}\n\nfunc (p *UploadAddress) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*StoreInfo, 0, size)\n\tvalues := make([]StoreInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.StoreInfos = _field\n\treturn nil\n}\nfunc (p *UploadAddress) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.UploadHosts = _field\n\treturn nil\n}\nfunc (p *UploadAddress) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.UploadHeader = _field\n\treturn nil\n}\nfunc (p *UploadAddress) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SessionKey = _field\n\treturn nil\n}\nfunc (p *UploadAddress) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Cloud = _field\n\treturn nil\n}\n\nfunc (p *UploadAddress) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadAddress\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadAddress) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StoreInfos\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.StoreInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.StoreInfos {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UploadAddress) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UploadHosts\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.UploadHosts)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.UploadHosts {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UploadAddress) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUploadHeader() {\n\t\tif err = oprot.WriteFieldBegin(\"UploadHeader\", thrift.MAP, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.UploadHeader)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.UploadHeader {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UploadAddress) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SessionKey\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SessionKey); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UploadAddress) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Cloud\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Cloud); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *UploadAddress) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadAddress(%+v)\", *p)\n\n}\n\ntype UploadNode struct {\n\tStoreInfos   []*StoreInfo      `thrift:\"StoreInfos,1,required\" form:\"StoreInfos,required\" json:\"StoreInfos,required\" query:\"StoreInfos,required\"`\n\tUploadHost   string            `thrift:\"UploadHost,2,required\" form:\"UploadHost,required\" json:\"UploadHost,required\" query:\"UploadHost,required\"`\n\tUploadHeader map[string]string `thrift:\"UploadHeader,3,optional\" form:\"UploadHeader\" json:\"UploadHeader,omitempty\" query:\"UploadHeader\"`\n\tSessionKey   string            `thrift:\"SessionKey,4,required\" form:\"SessionKey,required\" json:\"SessionKey,required\" query:\"SessionKey,required\"`\n}\n\nfunc NewUploadNode() *UploadNode {\n\treturn &UploadNode{}\n}\n\nfunc (p *UploadNode) InitDefault() {\n}\n\nfunc (p *UploadNode) GetStoreInfos() (v []*StoreInfo) {\n\treturn p.StoreInfos\n}\n\nfunc (p *UploadNode) GetUploadHost() (v string) {\n\treturn p.UploadHost\n}\n\nvar UploadNode_UploadHeader_DEFAULT map[string]string\n\nfunc (p *UploadNode) GetUploadHeader() (v map[string]string) {\n\tif !p.IsSetUploadHeader() {\n\t\treturn UploadNode_UploadHeader_DEFAULT\n\t}\n\treturn p.UploadHeader\n}\n\nfunc (p *UploadNode) GetSessionKey() (v string) {\n\treturn p.SessionKey\n}\n\nvar fieldIDToName_UploadNode = map[int16]string{\n\t1: \"StoreInfos\",\n\t2: \"UploadHost\",\n\t3: \"UploadHeader\",\n\t4: \"SessionKey\",\n}\n\nfunc (p *UploadNode) IsSetUploadHeader() bool {\n\treturn p.UploadHeader != nil\n}\n\nfunc (p *UploadNode) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetStoreInfos bool = false\n\tvar issetUploadHost bool = false\n\tvar issetSessionKey bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetStoreInfos = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUploadHost = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSessionKey = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetStoreInfos {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUploadHost {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSessionKey {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadNode[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UploadNode[fieldId]))\n}\n\nfunc (p *UploadNode) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*StoreInfo, 0, size)\n\tvalues := make([]StoreInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.StoreInfos = _field\n\treturn nil\n}\nfunc (p *UploadNode) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UploadHost = _field\n\treturn nil\n}\nfunc (p *UploadNode) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.UploadHeader = _field\n\treturn nil\n}\nfunc (p *UploadNode) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SessionKey = _field\n\treturn nil\n}\n\nfunc (p *UploadNode) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadNode\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadNode) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StoreInfos\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.StoreInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.StoreInfos {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UploadNode) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UploadHost\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UploadHost); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UploadNode) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUploadHeader() {\n\t\tif err = oprot.WriteFieldBegin(\"UploadHeader\", thrift.MAP, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.UploadHeader)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.UploadHeader {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UploadNode) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SessionKey\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SessionKey); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *UploadNode) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadNode(%+v)\", *p)\n\n}\n\ntype InnerUploadAddress struct {\n\tUploadNodes []*UploadNode `thrift:\"UploadNodes,1,required\" form:\"UploadNodes,required\" json:\"UploadNodes,required\" query:\"UploadNodes,required\"`\n}\n\nfunc NewInnerUploadAddress() *InnerUploadAddress {\n\treturn &InnerUploadAddress{}\n}\n\nfunc (p *InnerUploadAddress) InitDefault() {\n}\n\nfunc (p *InnerUploadAddress) GetUploadNodes() (v []*UploadNode) {\n\treturn p.UploadNodes\n}\n\nvar fieldIDToName_InnerUploadAddress = map[int16]string{\n\t1: \"UploadNodes\",\n}\n\nfunc (p *InnerUploadAddress) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetUploadNodes bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUploadNodes = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetUploadNodes {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_InnerUploadAddress[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_InnerUploadAddress[fieldId]))\n}\n\nfunc (p *InnerUploadAddress) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*UploadNode, 0, size)\n\tvalues := make([]UploadNode, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.UploadNodes = _field\n\treturn nil\n}\n\nfunc (p *InnerUploadAddress) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"InnerUploadAddress\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *InnerUploadAddress) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UploadNodes\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.UploadNodes)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.UploadNodes {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *InnerUploadAddress) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"InnerUploadAddress(%+v)\", *p)\n\n}\n\ntype UploadResult struct {\n\tUri       string `thrift:\"Uri,1,required\" form:\"Uri,required\" json:\"Uri,required\" query:\"Uri,required\"`\n\tUriStatus int32  `thrift:\"UriStatus,2,required\" form:\"UriStatus,required\" json:\"UriStatus,required\" query:\"UriStatus,required\"`\n}\n\nfunc NewUploadResult() *UploadResult {\n\treturn &UploadResult{}\n}\n\nfunc (p *UploadResult) InitDefault() {\n}\n\nfunc (p *UploadResult) GetUri() (v string) {\n\treturn p.Uri\n}\n\nfunc (p *UploadResult) GetUriStatus() (v int32) {\n\treturn p.UriStatus\n}\n\nvar fieldIDToName_UploadResult = map[int16]string{\n\t1: \"Uri\",\n\t2: \"UriStatus\",\n}\n\nfunc (p *UploadResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetUri bool = false\n\tvar issetUriStatus bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUri = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUriStatus = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetUri {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUriStatus {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UploadResult[fieldId]))\n}\n\nfunc (p *UploadResult) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Uri = _field\n\treturn nil\n}\nfunc (p *UploadResult) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UriStatus = _field\n\treturn nil\n}\n\nfunc (p *UploadResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadResult\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadResult) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Uri\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Uri); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UploadResult) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UriStatus\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.UriStatus); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UploadResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadResult(%+v)\", *p)\n\n}\n\ntype PluginResult struct {\n\tFileName    string `thrift:\"FileName,1,required\" form:\"FileName,required\" json:\"FileName,required\" query:\"FileName,required\"`\n\tSourceUri   string `thrift:\"SourceUri,2,required\" form:\"SourceUri,required\" json:\"SourceUri,required\" query:\"SourceUri,required\"`\n\tImageUri    string `thrift:\"ImageUri,3,required\" form:\"ImageUri,required\" json:\"ImageUri,required\" query:\"ImageUri,required\"`\n\tImageWidth  int32  `thrift:\"ImageWidth,4,required\" form:\"ImageWidth,required\" json:\"ImageWidth,required\" query:\"ImageWidth,required\"`\n\tImageHeight int32  `thrift:\"ImageHeight,5,required\" form:\"ImageHeight,required\" json:\"ImageHeight,required\" query:\"ImageHeight,required\"`\n\tImageMd5    string `thrift:\"ImageMd5,6,required\" form:\"ImageMd5,required\" json:\"ImageMd5,required\" query:\"ImageMd5,required\"`\n\tImageFormat string `thrift:\"ImageFormat,7,required\" form:\"ImageFormat,required\" json:\"ImageFormat,required\" query:\"ImageFormat,required\"`\n\tImageSize   int32  `thrift:\"ImageSize,8,required\" form:\"ImageSize,required\" json:\"ImageSize,required\" query:\"ImageSize,required\"`\n\tFrameCnt    int32  `thrift:\"FrameCnt,9,required\" form:\"FrameCnt,required\" json:\"FrameCnt,required\" query:\"FrameCnt,required\"`\n}\n\nfunc NewPluginResult() *PluginResult {\n\treturn &PluginResult{}\n}\n\nfunc (p *PluginResult) InitDefault() {\n}\n\nfunc (p *PluginResult) GetFileName() (v string) {\n\treturn p.FileName\n}\n\nfunc (p *PluginResult) GetSourceUri() (v string) {\n\treturn p.SourceUri\n}\n\nfunc (p *PluginResult) GetImageUri() (v string) {\n\treturn p.ImageUri\n}\n\nfunc (p *PluginResult) GetImageWidth() (v int32) {\n\treturn p.ImageWidth\n}\n\nfunc (p *PluginResult) GetImageHeight() (v int32) {\n\treturn p.ImageHeight\n}\n\nfunc (p *PluginResult) GetImageMd5() (v string) {\n\treturn p.ImageMd5\n}\n\nfunc (p *PluginResult) GetImageFormat() (v string) {\n\treturn p.ImageFormat\n}\n\nfunc (p *PluginResult) GetImageSize() (v int32) {\n\treturn p.ImageSize\n}\n\nfunc (p *PluginResult) GetFrameCnt() (v int32) {\n\treturn p.FrameCnt\n}\n\nvar fieldIDToName_PluginResult = map[int16]string{\n\t1: \"FileName\",\n\t2: \"SourceUri\",\n\t3: \"ImageUri\",\n\t4: \"ImageWidth\",\n\t5: \"ImageHeight\",\n\t6: \"ImageMd5\",\n\t7: \"ImageFormat\",\n\t8: \"ImageSize\",\n\t9: \"FrameCnt\",\n}\n\nfunc (p *PluginResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetFileName bool = false\n\tvar issetSourceUri bool = false\n\tvar issetImageUri bool = false\n\tvar issetImageWidth bool = false\n\tvar issetImageHeight bool = false\n\tvar issetImageMd5 bool = false\n\tvar issetImageFormat bool = false\n\tvar issetImageSize bool = false\n\tvar issetFrameCnt bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetFileName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSourceUri = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetImageUri = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetImageWidth = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetImageHeight = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetImageMd5 = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetImageFormat = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetImageSize = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetFrameCnt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetFileName {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSourceUri {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetImageUri {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetImageWidth {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetImageHeight {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetImageMd5 {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetImageFormat {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetImageSize {\n\t\tfieldId = 8\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetFrameCnt {\n\t\tfieldId = 9\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PluginResult[fieldId]))\n}\n\nfunc (p *PluginResult) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FileName = _field\n\treturn nil\n}\nfunc (p *PluginResult) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SourceUri = _field\n\treturn nil\n}\nfunc (p *PluginResult) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ImageUri = _field\n\treturn nil\n}\nfunc (p *PluginResult) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ImageWidth = _field\n\treturn nil\n}\nfunc (p *PluginResult) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ImageHeight = _field\n\treturn nil\n}\nfunc (p *PluginResult) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ImageMd5 = _field\n\treturn nil\n}\nfunc (p *PluginResult) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ImageFormat = _field\n\treturn nil\n}\nfunc (p *PluginResult) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ImageSize = _field\n\treturn nil\n}\nfunc (p *PluginResult) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FrameCnt = _field\n\treturn nil\n}\n\nfunc (p *PluginResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginResult\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginResult) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"FileName\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FileName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginResult) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SourceUri\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SourceUri); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginResult) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ImageUri\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ImageUri); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginResult) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ImageWidth\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.ImageWidth); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginResult) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ImageHeight\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.ImageHeight); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginResult) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ImageMd5\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ImageMd5); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PluginResult) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ImageFormat\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ImageFormat); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PluginResult) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ImageSize\", thrift.I32, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.ImageSize); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PluginResult) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"FrameCnt\", thrift.I32, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.FrameCnt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *PluginResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginResult(%+v)\", *p)\n\n}\n\ntype ApplyUploadActionResult struct {\n\tUploadAddress         *UploadAddress      `thrift:\"UploadAddress,1,optional\" form:\"UploadAddress\" json:\"UploadAddress,omitempty\" query:\"UploadAddress\"`\n\tFallbackUploadAddress *UploadAddress      `thrift:\"FallbackUploadAddress,2,optional\" form:\"FallbackUploadAddress\" json:\"FallbackUploadAddress,omitempty\" query:\"FallbackUploadAddress\"`\n\tInnerUploadAddress    *InnerUploadAddress `thrift:\"InnerUploadAddress,3,optional\" form:\"InnerUploadAddress\" json:\"InnerUploadAddress,omitempty\" query:\"InnerUploadAddress\"`\n\tRequestId             *string             `thrift:\"RequestId,4,optional\" form:\"RequestId\" json:\"RequestId,omitempty\" query:\"RequestId\"`\n\tSDKParam              *string             `thrift:\"SDKParam,5,optional\" form:\"SDKParam\" json:\"SDKParam,omitempty\" query:\"SDKParam\"`\n\tResults               []*UploadResult     `thrift:\"Results,6,optional\" form:\"Results\" json:\"Results,omitempty\" query:\"Results\"`\n\tPluginResult          []*PluginResult     `thrift:\"PluginResult,7,optional\" form:\"PluginResult\" json:\"PluginResult,omitempty\" query:\"PluginResult\"`\n}\n\nfunc NewApplyUploadActionResult() *ApplyUploadActionResult {\n\treturn &ApplyUploadActionResult{}\n}\n\nfunc (p *ApplyUploadActionResult) InitDefault() {\n}\n\nvar ApplyUploadActionResult_UploadAddress_DEFAULT *UploadAddress\n\nfunc (p *ApplyUploadActionResult) GetUploadAddress() (v *UploadAddress) {\n\tif !p.IsSetUploadAddress() {\n\t\treturn ApplyUploadActionResult_UploadAddress_DEFAULT\n\t}\n\treturn p.UploadAddress\n}\n\nvar ApplyUploadActionResult_FallbackUploadAddress_DEFAULT *UploadAddress\n\nfunc (p *ApplyUploadActionResult) GetFallbackUploadAddress() (v *UploadAddress) {\n\tif !p.IsSetFallbackUploadAddress() {\n\t\treturn ApplyUploadActionResult_FallbackUploadAddress_DEFAULT\n\t}\n\treturn p.FallbackUploadAddress\n}\n\nvar ApplyUploadActionResult_InnerUploadAddress_DEFAULT *InnerUploadAddress\n\nfunc (p *ApplyUploadActionResult) GetInnerUploadAddress() (v *InnerUploadAddress) {\n\tif !p.IsSetInnerUploadAddress() {\n\t\treturn ApplyUploadActionResult_InnerUploadAddress_DEFAULT\n\t}\n\treturn p.InnerUploadAddress\n}\n\nvar ApplyUploadActionResult_RequestId_DEFAULT string\n\nfunc (p *ApplyUploadActionResult) GetRequestId() (v string) {\n\tif !p.IsSetRequestId() {\n\t\treturn ApplyUploadActionResult_RequestId_DEFAULT\n\t}\n\treturn *p.RequestId\n}\n\nvar ApplyUploadActionResult_SDKParam_DEFAULT string\n\nfunc (p *ApplyUploadActionResult) GetSDKParam() (v string) {\n\tif !p.IsSetSDKParam() {\n\t\treturn ApplyUploadActionResult_SDKParam_DEFAULT\n\t}\n\treturn *p.SDKParam\n}\n\nvar ApplyUploadActionResult_Results_DEFAULT []*UploadResult\n\nfunc (p *ApplyUploadActionResult) GetResults() (v []*UploadResult) {\n\tif !p.IsSetResults() {\n\t\treturn ApplyUploadActionResult_Results_DEFAULT\n\t}\n\treturn p.Results\n}\n\nvar ApplyUploadActionResult_PluginResult_DEFAULT []*PluginResult\n\nfunc (p *ApplyUploadActionResult) GetPluginResult() (v []*PluginResult) {\n\tif !p.IsSetPluginResult() {\n\t\treturn ApplyUploadActionResult_PluginResult_DEFAULT\n\t}\n\treturn p.PluginResult\n}\n\nvar fieldIDToName_ApplyUploadActionResult = map[int16]string{\n\t1: \"UploadAddress\",\n\t2: \"FallbackUploadAddress\",\n\t3: \"InnerUploadAddress\",\n\t4: \"RequestId\",\n\t5: \"SDKParam\",\n\t6: \"Results\",\n\t7: \"PluginResult\",\n}\n\nfunc (p *ApplyUploadActionResult) IsSetUploadAddress() bool {\n\treturn p.UploadAddress != nil\n}\n\nfunc (p *ApplyUploadActionResult) IsSetFallbackUploadAddress() bool {\n\treturn p.FallbackUploadAddress != nil\n}\n\nfunc (p *ApplyUploadActionResult) IsSetInnerUploadAddress() bool {\n\treturn p.InnerUploadAddress != nil\n}\n\nfunc (p *ApplyUploadActionResult) IsSetRequestId() bool {\n\treturn p.RequestId != nil\n}\n\nfunc (p *ApplyUploadActionResult) IsSetSDKParam() bool {\n\treturn p.SDKParam != nil\n}\n\nfunc (p *ApplyUploadActionResult) IsSetResults() bool {\n\treturn p.Results != nil\n}\n\nfunc (p *ApplyUploadActionResult) IsSetPluginResult() bool {\n\treturn p.PluginResult != nil\n}\n\nfunc (p *ApplyUploadActionResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ApplyUploadActionResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ApplyUploadActionResult) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUploadAddress()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UploadAddress = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionResult) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewUploadAddress()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FallbackUploadAddress = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionResult) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewInnerUploadAddress()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.InnerUploadAddress = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionResult) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RequestId = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionResult) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SDKParam = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionResult) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*UploadResult, 0, size)\n\tvalues := make([]UploadResult, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Results = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionResult) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginResult, 0, size)\n\tvalues := make([]PluginResult, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginResult = _field\n\treturn nil\n}\n\nfunc (p *ApplyUploadActionResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ApplyUploadActionResult\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ApplyUploadActionResult) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUploadAddress() {\n\t\tif err = oprot.WriteFieldBegin(\"UploadAddress\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.UploadAddress.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionResult) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFallbackUploadAddress() {\n\t\tif err = oprot.WriteFieldBegin(\"FallbackUploadAddress\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.FallbackUploadAddress.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionResult) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInnerUploadAddress() {\n\t\tif err = oprot.WriteFieldBegin(\"InnerUploadAddress\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.InnerUploadAddress.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionResult) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRequestId() {\n\t\tif err = oprot.WriteFieldBegin(\"RequestId\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.RequestId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionResult) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSDKParam() {\n\t\tif err = oprot.WriteFieldBegin(\"SDKParam\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SDKParam); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionResult) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResults() {\n\t\tif err = oprot.WriteFieldBegin(\"Results\", thrift.LIST, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Results)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Results {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionResult) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginResult() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginResult\", thrift.LIST, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginResult)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PluginResult {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *ApplyUploadActionResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ApplyUploadActionResult(%+v)\", *p)\n\n}\n\ntype ApplyUploadActionResponse struct {\n\tResponseMetadata *ResponseMetadata        `thrift:\"ResponseMetadata,1,required\" form:\"ResponseMetadata,required\" json:\"ResponseMetadata,required\" query:\"ResponseMetadata,required\"`\n\tResult           *ApplyUploadActionResult `thrift:\"Result,2,required\" form:\"Result,required\" json:\"Result,required\" query:\"Result,required\"`\n}\n\nfunc NewApplyUploadActionResponse() *ApplyUploadActionResponse {\n\treturn &ApplyUploadActionResponse{}\n}\n\nfunc (p *ApplyUploadActionResponse) InitDefault() {\n}\n\nvar ApplyUploadActionResponse_ResponseMetadata_DEFAULT *ResponseMetadata\n\nfunc (p *ApplyUploadActionResponse) GetResponseMetadata() (v *ResponseMetadata) {\n\tif !p.IsSetResponseMetadata() {\n\t\treturn ApplyUploadActionResponse_ResponseMetadata_DEFAULT\n\t}\n\treturn p.ResponseMetadata\n}\n\nvar ApplyUploadActionResponse_Result_DEFAULT *ApplyUploadActionResult\n\nfunc (p *ApplyUploadActionResponse) GetResult() (v *ApplyUploadActionResult) {\n\tif !p.IsSetResult() {\n\t\treturn ApplyUploadActionResponse_Result_DEFAULT\n\t}\n\treturn p.Result\n}\n\nvar fieldIDToName_ApplyUploadActionResponse = map[int16]string{\n\t1: \"ResponseMetadata\",\n\t2: \"Result\",\n}\n\nfunc (p *ApplyUploadActionResponse) IsSetResponseMetadata() bool {\n\treturn p.ResponseMetadata != nil\n}\n\nfunc (p *ApplyUploadActionResponse) IsSetResult() bool {\n\treturn p.Result != nil\n}\n\nfunc (p *ApplyUploadActionResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetResponseMetadata bool = false\n\tvar issetResult bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetResponseMetadata = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetResult = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetResponseMetadata {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetResult {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ApplyUploadActionResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ApplyUploadActionResponse[fieldId]))\n}\n\nfunc (p *ApplyUploadActionResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewResponseMetadata()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseMetadata = _field\n\treturn nil\n}\nfunc (p *ApplyUploadActionResponse) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewApplyUploadActionResult()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Result = _field\n\treturn nil\n}\n\nfunc (p *ApplyUploadActionResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ApplyUploadActionResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ApplyUploadActionResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResponseMetadata\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ResponseMetadata.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ApplyUploadActionResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Result\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Result.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ApplyUploadActionResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ApplyUploadActionResponse(%+v)\", *p)\n\n}\n\ntype UploadService interface {\n\tCommonUpload(ctx context.Context, request *CommonUploadRequest) (r *CommonUploadResponse, err error)\n\n\tApplyUploadAction(ctx context.Context, request *ApplyUploadActionRequest) (r *ApplyUploadActionResponse, err error)\n}\n\ntype UploadServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewUploadServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *UploadServiceClient {\n\treturn &UploadServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewUploadServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *UploadServiceClient {\n\treturn &UploadServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewUploadServiceClient(c thrift.TClient) *UploadServiceClient {\n\treturn &UploadServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *UploadServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *UploadServiceClient) CommonUpload(ctx context.Context, request *CommonUploadRequest) (r *CommonUploadResponse, err error) {\n\tvar _args UploadServiceCommonUploadArgs\n\t_args.Request = request\n\tvar _result UploadServiceCommonUploadResult\n\tif err = p.Client_().Call(ctx, \"CommonUpload\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *UploadServiceClient) ApplyUploadAction(ctx context.Context, request *ApplyUploadActionRequest) (r *ApplyUploadActionResponse, err error) {\n\tvar _args UploadServiceApplyUploadActionArgs\n\t_args.Request = request\n\tvar _result UploadServiceApplyUploadActionResult\n\tif err = p.Client_().Call(ctx, \"ApplyUploadAction\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype UploadServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      UploadService\n}\n\nfunc (p *UploadServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *UploadServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *UploadServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewUploadServiceProcessor(handler UploadService) *UploadServiceProcessor {\n\tself := &UploadServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"CommonUpload\", &uploadServiceProcessorCommonUpload{handler: handler})\n\tself.AddToProcessorMap(\"ApplyUploadAction\", &uploadServiceProcessorApplyUploadAction{handler: handler})\n\treturn self\n}\nfunc (p *UploadServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype uploadServiceProcessorCommonUpload struct {\n\thandler UploadService\n}\n\nfunc (p *uploadServiceProcessorCommonUpload) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := UploadServiceCommonUploadArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CommonUpload\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := UploadServiceCommonUploadResult{}\n\tvar retval *CommonUploadResponse\n\tif retval, err2 = p.handler.CommonUpload(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CommonUpload: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CommonUpload\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CommonUpload\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype uploadServiceProcessorApplyUploadAction struct {\n\thandler UploadService\n}\n\nfunc (p *uploadServiceProcessorApplyUploadAction) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := UploadServiceApplyUploadActionArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ApplyUploadAction\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := UploadServiceApplyUploadActionResult{}\n\tvar retval *ApplyUploadActionResponse\n\tif retval, err2 = p.handler.ApplyUploadAction(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ApplyUploadAction: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ApplyUploadAction\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ApplyUploadAction\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype UploadServiceCommonUploadArgs struct {\n\tRequest *CommonUploadRequest `thrift:\"request,1\"`\n}\n\nfunc NewUploadServiceCommonUploadArgs() *UploadServiceCommonUploadArgs {\n\treturn &UploadServiceCommonUploadArgs{}\n}\n\nfunc (p *UploadServiceCommonUploadArgs) InitDefault() {\n}\n\nvar UploadServiceCommonUploadArgs_Request_DEFAULT *CommonUploadRequest\n\nfunc (p *UploadServiceCommonUploadArgs) GetRequest() (v *CommonUploadRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn UploadServiceCommonUploadArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_UploadServiceCommonUploadArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *UploadServiceCommonUploadArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *UploadServiceCommonUploadArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadServiceCommonUploadArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UploadServiceCommonUploadArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCommonUploadRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *UploadServiceCommonUploadArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CommonUpload_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadServiceCommonUploadArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *UploadServiceCommonUploadArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadServiceCommonUploadArgs(%+v)\", *p)\n\n}\n\ntype UploadServiceCommonUploadResult struct {\n\tSuccess *CommonUploadResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewUploadServiceCommonUploadResult() *UploadServiceCommonUploadResult {\n\treturn &UploadServiceCommonUploadResult{}\n}\n\nfunc (p *UploadServiceCommonUploadResult) InitDefault() {\n}\n\nvar UploadServiceCommonUploadResult_Success_DEFAULT *CommonUploadResponse\n\nfunc (p *UploadServiceCommonUploadResult) GetSuccess() (v *CommonUploadResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn UploadServiceCommonUploadResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_UploadServiceCommonUploadResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *UploadServiceCommonUploadResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *UploadServiceCommonUploadResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadServiceCommonUploadResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UploadServiceCommonUploadResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCommonUploadResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *UploadServiceCommonUploadResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CommonUpload_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadServiceCommonUploadResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *UploadServiceCommonUploadResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadServiceCommonUploadResult(%+v)\", *p)\n\n}\n\ntype UploadServiceApplyUploadActionArgs struct {\n\tRequest *ApplyUploadActionRequest `thrift:\"request,1\"`\n}\n\nfunc NewUploadServiceApplyUploadActionArgs() *UploadServiceApplyUploadActionArgs {\n\treturn &UploadServiceApplyUploadActionArgs{}\n}\n\nfunc (p *UploadServiceApplyUploadActionArgs) InitDefault() {\n}\n\nvar UploadServiceApplyUploadActionArgs_Request_DEFAULT *ApplyUploadActionRequest\n\nfunc (p *UploadServiceApplyUploadActionArgs) GetRequest() (v *ApplyUploadActionRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn UploadServiceApplyUploadActionArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_UploadServiceApplyUploadActionArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *UploadServiceApplyUploadActionArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *UploadServiceApplyUploadActionArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadServiceApplyUploadActionArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UploadServiceApplyUploadActionArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewApplyUploadActionRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *UploadServiceApplyUploadActionArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ApplyUploadAction_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadServiceApplyUploadActionArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *UploadServiceApplyUploadActionArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadServiceApplyUploadActionArgs(%+v)\", *p)\n\n}\n\ntype UploadServiceApplyUploadActionResult struct {\n\tSuccess *ApplyUploadActionResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewUploadServiceApplyUploadActionResult() *UploadServiceApplyUploadActionResult {\n\treturn &UploadServiceApplyUploadActionResult{}\n}\n\nfunc (p *UploadServiceApplyUploadActionResult) InitDefault() {\n}\n\nvar UploadServiceApplyUploadActionResult_Success_DEFAULT *ApplyUploadActionResponse\n\nfunc (p *UploadServiceApplyUploadActionResult) GetSuccess() (v *ApplyUploadActionResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn UploadServiceApplyUploadActionResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_UploadServiceApplyUploadActionResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *UploadServiceApplyUploadActionResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *UploadServiceApplyUploadActionResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadServiceApplyUploadActionResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UploadServiceApplyUploadActionResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewApplyUploadActionResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *UploadServiceApplyUploadActionResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ApplyUploadAction_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadServiceApplyUploadActionResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *UploadServiceApplyUploadActionResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadServiceApplyUploadActionResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/marketplace/marketplace_common/marketplace_common.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage marketplace_common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype FollowType int64\n\nconst (\n\t// Unknown\n\tFollowType_Unknown FollowType = 0\n\t// followee\n\tFollowType_Followee FollowType = 1\n\t// follower\n\tFollowType_Follower FollowType = 2\n\t// MutualFollow\n\tFollowType_MutualFollow FollowType = 3\n)\n\nfunc (p FollowType) String() string {\n\tswitch p {\n\tcase FollowType_Unknown:\n\t\treturn \"Unknown\"\n\tcase FollowType_Followee:\n\t\treturn \"Followee\"\n\tcase FollowType_Follower:\n\t\treturn \"Follower\"\n\tcase FollowType_MutualFollow:\n\t\treturn \"MutualFollow\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc FollowTypeFromString(s string) (FollowType, error) {\n\tswitch s {\n\tcase \"Unknown\":\n\t\treturn FollowType_Unknown, nil\n\tcase \"Followee\":\n\t\treturn FollowType_Followee, nil\n\tcase \"Follower\":\n\t\treturn FollowType_Follower, nil\n\tcase \"MutualFollow\":\n\t\treturn FollowType_MutualFollow, nil\n\t}\n\treturn FollowType(0), fmt.Errorf(\"not a valid FollowType string\")\n}\n\nfunc FollowTypePtr(v FollowType) *FollowType { return &v }\nfunc (p *FollowType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = FollowType(result.Int64)\n\treturn\n}\n\nfunc (p *FollowType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype Price struct {\n\t// amount\n\tAmount int64 `thrift:\"Amount,1\" form:\"amount\" json:\"amount,string\"`\n\t// Currencies such as USD and CNY\n\tCurrency string `thrift:\"Currency,2\" form:\"currency\" json:\"currency\"`\n\t// decimal places\n\tDecimalNum int8 `thrift:\"DecimalNum,3\" form:\"decimal_num\" json:\"decimal_num\"`\n}\n\nfunc NewPrice() *Price {\n\treturn &Price{}\n}\n\nfunc (p *Price) InitDefault() {\n}\n\nfunc (p *Price) GetAmount() (v int64) {\n\treturn p.Amount\n}\n\nfunc (p *Price) GetCurrency() (v string) {\n\treturn p.Currency\n}\n\nfunc (p *Price) GetDecimalNum() (v int8) {\n\treturn p.DecimalNum\n}\n\nvar fieldIDToName_Price = map[int16]string{\n\t1: \"Amount\",\n\t2: \"Currency\",\n\t3: \"DecimalNum\",\n}\n\nfunc (p *Price) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BYTE {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Price[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Price) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Amount = _field\n\treturn nil\n}\nfunc (p *Price) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Currency = _field\n\treturn nil\n}\nfunc (p *Price) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int8\n\tif v, err := iprot.ReadByte(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DecimalNum = _field\n\treturn nil\n}\n\nfunc (p *Price) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Price\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Price) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Amount\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Amount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Price) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Currency\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Currency); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Price) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DecimalNum\", thrift.BYTE, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteByte(p.DecimalNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *Price) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Price(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/marketplace/product_common/product_common.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage product_common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/marketplace/marketplace_common\"\n)\n\ntype BotModType int64\n\nconst (\n\tBotModType_SingleAgent BotModType = 1\n\tBotModType_MultiAgent  BotModType = 2\n)\n\nfunc (p BotModType) String() string {\n\tswitch p {\n\tcase BotModType_SingleAgent:\n\t\treturn \"SingleAgent\"\n\tcase BotModType_MultiAgent:\n\t\treturn \"MultiAgent\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotModTypeFromString(s string) (BotModType, error) {\n\tswitch s {\n\tcase \"SingleAgent\":\n\t\treturn BotModType_SingleAgent, nil\n\tcase \"MultiAgent\":\n\t\treturn BotModType_MultiAgent, nil\n\t}\n\treturn BotModType(0), fmt.Errorf(\"not a valid BotModType string\")\n}\n\nfunc BotModTypePtr(v BotModType) *BotModType { return &v }\nfunc (p *BotModType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotModType(result.Int64)\n\treturn\n}\n\nfunc (p *BotModType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype Component int64\n\nconst (\n\tComponent_UsePlugin        Component = 1\n\tComponent_UseWorkFlow      Component = 2\n\tComponent_UseKnowledge     Component = 3\n\tComponent_UseVoice         Component = 4\n\tComponent_UseCard          Component = 5\n\tComponent_UseImageWorkflow Component = 6\n)\n\nfunc (p Component) String() string {\n\tswitch p {\n\tcase Component_UsePlugin:\n\t\treturn \"UsePlugin\"\n\tcase Component_UseWorkFlow:\n\t\treturn \"UseWorkFlow\"\n\tcase Component_UseKnowledge:\n\t\treturn \"UseKnowledge\"\n\tcase Component_UseVoice:\n\t\treturn \"UseVoice\"\n\tcase Component_UseCard:\n\t\treturn \"UseCard\"\n\tcase Component_UseImageWorkflow:\n\t\treturn \"UseImageWorkflow\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ComponentFromString(s string) (Component, error) {\n\tswitch s {\n\tcase \"UsePlugin\":\n\t\treturn Component_UsePlugin, nil\n\tcase \"UseWorkFlow\":\n\t\treturn Component_UseWorkFlow, nil\n\tcase \"UseKnowledge\":\n\t\treturn Component_UseKnowledge, nil\n\tcase \"UseVoice\":\n\t\treturn Component_UseVoice, nil\n\tcase \"UseCard\":\n\t\treturn Component_UseCard, nil\n\tcase \"UseImageWorkflow\":\n\t\treturn Component_UseImageWorkflow, nil\n\t}\n\treturn Component(0), fmt.Errorf(\"not a valid Component string\")\n}\n\nfunc ComponentPtr(v Component) *Component { return &v }\nfunc (p *Component) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = Component(result.Int64)\n\treturn\n}\n\nfunc (p *Component) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ProductEntityType int64\n\nconst (\n\tProductEntityType_Bot    ProductEntityType = 1\n\tProductEntityType_Plugin ProductEntityType = 2\n\t// Workflow = 3 ,\n\tProductEntityType_SocialScene ProductEntityType = 4\n\tProductEntityType_Project     ProductEntityType = 6\n\t// History workflow, no more in the future (abandoned)\n\tProductEntityType_WorkflowTemplate ProductEntityType = 13\n\t// Historical image stream template, no more in the future (obsolete)\n\tProductEntityType_ImageflowTemplate ProductEntityType = 15\n\t// Template universal identification, only used to bind template-related configurations, not bind products\n\tProductEntityType_TemplateCommon ProductEntityType = 20\n\t// Bot template\n\tProductEntityType_BotTemplate ProductEntityType = 21\n\t// workflow template\n\tProductEntityType_WorkflowTemplateV2 ProductEntityType = 23\n\t// Image stream template (this type has been offline and merged into workflow, but historical data will be preserved, and the front end will be treated as workflow display)\n\tProductEntityType_ImageflowTemplateV2 ProductEntityType = 25\n\t// project template\n\tProductEntityType_ProjectTemplate ProductEntityType = 26\n\t// Coze token products, theoretically there will only be one\n\tProductEntityType_CozeToken ProductEntityType = 50\n\t// Subscribe to the traffic package of credit, theoretically there will only be one\n\tProductEntityType_MsgCredit ProductEntityType = 55\n\t// There is only one subscription product in theory\n\tProductEntityType_SubsMsgCredit ProductEntityType = 60\n\tProductEntityType_Common        ProductEntityType = 99\n\t// Special Topics (Compatible with previous designs)\n\tProductEntityType_Topic ProductEntityType = 101\n\t// Saas plugin,the plugins from coze saas\n\tProductEntityType_SaasPlugin ProductEntityType = 901\n)\n\nfunc (p ProductEntityType) String() string {\n\tswitch p {\n\tcase ProductEntityType_Bot:\n\t\treturn \"Bot\"\n\tcase ProductEntityType_Plugin:\n\t\treturn \"Plugin\"\n\tcase ProductEntityType_SocialScene:\n\t\treturn \"SocialScene\"\n\tcase ProductEntityType_Project:\n\t\treturn \"Project\"\n\tcase ProductEntityType_WorkflowTemplate:\n\t\treturn \"WorkflowTemplate\"\n\tcase ProductEntityType_ImageflowTemplate:\n\t\treturn \"ImageflowTemplate\"\n\tcase ProductEntityType_TemplateCommon:\n\t\treturn \"TemplateCommon\"\n\tcase ProductEntityType_BotTemplate:\n\t\treturn \"BotTemplate\"\n\tcase ProductEntityType_WorkflowTemplateV2:\n\t\treturn \"WorkflowTemplateV2\"\n\tcase ProductEntityType_ImageflowTemplateV2:\n\t\treturn \"ImageflowTemplateV2\"\n\tcase ProductEntityType_ProjectTemplate:\n\t\treturn \"ProjectTemplate\"\n\tcase ProductEntityType_CozeToken:\n\t\treturn \"CozeToken\"\n\tcase ProductEntityType_MsgCredit:\n\t\treturn \"MsgCredit\"\n\tcase ProductEntityType_SubsMsgCredit:\n\t\treturn \"SubsMsgCredit\"\n\tcase ProductEntityType_Common:\n\t\treturn \"Common\"\n\tcase ProductEntityType_Topic:\n\t\treturn \"Topic\"\n\tcase ProductEntityType_SaasPlugin:\n\t\treturn \"SaasPlugin\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ProductEntityTypeFromString(s string) (ProductEntityType, error) {\n\tswitch s {\n\tcase \"Bot\":\n\t\treturn ProductEntityType_Bot, nil\n\tcase \"Plugin\":\n\t\treturn ProductEntityType_Plugin, nil\n\tcase \"SocialScene\":\n\t\treturn ProductEntityType_SocialScene, nil\n\tcase \"Project\":\n\t\treturn ProductEntityType_Project, nil\n\tcase \"WorkflowTemplate\":\n\t\treturn ProductEntityType_WorkflowTemplate, nil\n\tcase \"ImageflowTemplate\":\n\t\treturn ProductEntityType_ImageflowTemplate, nil\n\tcase \"TemplateCommon\":\n\t\treturn ProductEntityType_TemplateCommon, nil\n\tcase \"BotTemplate\":\n\t\treturn ProductEntityType_BotTemplate, nil\n\tcase \"WorkflowTemplateV2\":\n\t\treturn ProductEntityType_WorkflowTemplateV2, nil\n\tcase \"ImageflowTemplateV2\":\n\t\treturn ProductEntityType_ImageflowTemplateV2, nil\n\tcase \"ProjectTemplate\":\n\t\treturn ProductEntityType_ProjectTemplate, nil\n\tcase \"CozeToken\":\n\t\treturn ProductEntityType_CozeToken, nil\n\tcase \"MsgCredit\":\n\t\treturn ProductEntityType_MsgCredit, nil\n\tcase \"SubsMsgCredit\":\n\t\treturn ProductEntityType_SubsMsgCredit, nil\n\tcase \"Common\":\n\t\treturn ProductEntityType_Common, nil\n\tcase \"Topic\":\n\t\treturn ProductEntityType_Topic, nil\n\tcase \"SaasPlugin\":\n\t\treturn ProductEntityType_SaasPlugin, nil\n\t}\n\treturn ProductEntityType(0), fmt.Errorf(\"not a valid ProductEntityType string\")\n}\n\nfunc ProductEntityTypePtr(v ProductEntityType) *ProductEntityType { return &v }\nfunc (p *ProductEntityType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ProductEntityType(result.Int64)\n\treturn\n}\n\nfunc (p *ProductEntityType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SortType int64\n\nconst (\n\tSortType_Heat   SortType = 1\n\tSortType_Newest SortType = 2\n\t// collection time\n\tSortType_FavoriteTime SortType = 3\n\t// Correlation, only for search scenarios\n\tSortType_Relative SortType = 4\n)\n\nfunc (p SortType) String() string {\n\tswitch p {\n\tcase SortType_Heat:\n\t\treturn \"Heat\"\n\tcase SortType_Newest:\n\t\treturn \"Newest\"\n\tcase SortType_FavoriteTime:\n\t\treturn \"FavoriteTime\"\n\tcase SortType_Relative:\n\t\treturn \"Relative\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SortTypeFromString(s string) (SortType, error) {\n\tswitch s {\n\tcase \"Heat\":\n\t\treturn SortType_Heat, nil\n\tcase \"Newest\":\n\t\treturn SortType_Newest, nil\n\tcase \"FavoriteTime\":\n\t\treturn SortType_FavoriteTime, nil\n\tcase \"Relative\":\n\t\treturn SortType_Relative, nil\n\t}\n\treturn SortType(0), fmt.Errorf(\"not a valid SortType string\")\n}\n\nfunc SortTypePtr(v SortType) *SortType { return &v }\nfunc (p *SortType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SortType(result.Int64)\n\treturn\n}\n\nfunc (p *SortType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ProductPublishMode int64\n\nconst (\n\tProductPublishMode_OpenSource   ProductPublishMode = 1\n\tProductPublishMode_ClosedSource ProductPublishMode = 2\n)\n\nfunc (p ProductPublishMode) String() string {\n\tswitch p {\n\tcase ProductPublishMode_OpenSource:\n\t\treturn \"OpenSource\"\n\tcase ProductPublishMode_ClosedSource:\n\t\treturn \"ClosedSource\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ProductPublishModeFromString(s string) (ProductPublishMode, error) {\n\tswitch s {\n\tcase \"OpenSource\":\n\t\treturn ProductPublishMode_OpenSource, nil\n\tcase \"ClosedSource\":\n\t\treturn ProductPublishMode_ClosedSource, nil\n\t}\n\treturn ProductPublishMode(0), fmt.Errorf(\"not a valid ProductPublishMode string\")\n}\n\nfunc ProductPublishModePtr(v ProductPublishMode) *ProductPublishMode { return &v }\nfunc (p *ProductPublishMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ProductPublishMode(result.Int64)\n\treturn\n}\n\nfunc (p *ProductPublishMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ProductListSource int64\n\nconst (\n\t// recommended list page\n\tProductListSource_Recommend ProductListSource = 1\n\t// personalized recommendation\n\tProductListSource_CustomizedRecommend ProductListSource = 2\n)\n\nfunc (p ProductListSource) String() string {\n\tswitch p {\n\tcase ProductListSource_Recommend:\n\t\treturn \"Recommend\"\n\tcase ProductListSource_CustomizedRecommend:\n\t\treturn \"CustomizedRecommend\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ProductListSourceFromString(s string) (ProductListSource, error) {\n\tswitch s {\n\tcase \"Recommend\":\n\t\treturn ProductListSource_Recommend, nil\n\tcase \"CustomizedRecommend\":\n\t\treturn ProductListSource_CustomizedRecommend, nil\n\t}\n\treturn ProductListSource(0), fmt.Errorf(\"not a valid ProductListSource string\")\n}\n\nfunc ProductListSourcePtr(v ProductListSource) *ProductListSource { return &v }\nfunc (p *ProductListSource) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ProductListSource(result.Int64)\n\treturn\n}\n\nfunc (p *ProductListSource) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginType int64\n\nconst (\n\t// default\n\tPluginType_CLoudPlugin PluginType = 0\n\tPluginType_LocalPlugin PluginType = 1\n)\n\nfunc (p PluginType) String() string {\n\tswitch p {\n\tcase PluginType_CLoudPlugin:\n\t\treturn \"CLoudPlugin\"\n\tcase PluginType_LocalPlugin:\n\t\treturn \"LocalPlugin\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginTypeFromString(s string) (PluginType, error) {\n\tswitch s {\n\tcase \"CLoudPlugin\":\n\t\treturn PluginType_CLoudPlugin, nil\n\tcase \"LocalPlugin\":\n\t\treturn PluginType_LocalPlugin, nil\n\t}\n\treturn PluginType(0), fmt.Errorf(\"not a valid PluginType string\")\n}\n\nfunc PluginTypePtr(v PluginType) *PluginType { return &v }\nfunc (p *PluginType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginType(result.Int64)\n\treturn\n}\n\nfunc (p *PluginType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ProductPaidType int64\n\nconst (\n\tProductPaidType_Free ProductPaidType = 0\n\tProductPaidType_Paid ProductPaidType = 1\n)\n\nfunc (p ProductPaidType) String() string {\n\tswitch p {\n\tcase ProductPaidType_Free:\n\t\treturn \"Free\"\n\tcase ProductPaidType_Paid:\n\t\treturn \"Paid\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ProductPaidTypeFromString(s string) (ProductPaidType, error) {\n\tswitch s {\n\tcase \"Free\":\n\t\treturn ProductPaidType_Free, nil\n\tcase \"Paid\":\n\t\treturn ProductPaidType_Paid, nil\n\t}\n\treturn ProductPaidType(0), fmt.Errorf(\"not a valid ProductPaidType string\")\n}\n\nfunc ProductPaidTypePtr(v ProductPaidType) *ProductPaidType { return &v }\nfunc (p *ProductPaidType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ProductPaidType(result.Int64)\n\treturn\n}\n\nfunc (p *ProductPaidType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ProductStatus int64\n\nconst (\n\t// NeverListed\n\tProductStatus_NeverListed ProductStatus = 0\n\tProductStatus_Listed      ProductStatus = 1\n\tProductStatus_Unlisted    ProductStatus = 2\n\tProductStatus_Banned      ProductStatus = 3\n)\n\nfunc (p ProductStatus) String() string {\n\tswitch p {\n\tcase ProductStatus_NeverListed:\n\t\treturn \"NeverListed\"\n\tcase ProductStatus_Listed:\n\t\treturn \"Listed\"\n\tcase ProductStatus_Unlisted:\n\t\treturn \"Unlisted\"\n\tcase ProductStatus_Banned:\n\t\treturn \"Banned\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ProductStatusFromString(s string) (ProductStatus, error) {\n\tswitch s {\n\tcase \"NeverListed\":\n\t\treturn ProductStatus_NeverListed, nil\n\tcase \"Listed\":\n\t\treturn ProductStatus_Listed, nil\n\tcase \"Unlisted\":\n\t\treturn ProductStatus_Unlisted, nil\n\tcase \"Banned\":\n\t\treturn ProductStatus_Banned, nil\n\t}\n\treturn ProductStatus(0), fmt.Errorf(\"not a valid ProductStatus string\")\n}\n\nfunc ProductStatusPtr(v ProductStatus) *ProductStatus { return &v }\nfunc (p *ProductStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ProductStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ProductStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ProductDraftStatus int64\n\nconst (\n\t// default\n\tProductDraftStatus_Default ProductDraftStatus = 0\n\t// Under review.\n\tProductDraftStatus_Pending ProductDraftStatus = 1\n\t// approved\n\tProductDraftStatus_Approved ProductDraftStatus = 2\n\t// The review failed.\n\tProductDraftStatus_Rejected ProductDraftStatus = 3\n\t// Abandoned\n\tProductDraftStatus_Abandoned ProductDraftStatus = 4\n)\n\nfunc (p ProductDraftStatus) String() string {\n\tswitch p {\n\tcase ProductDraftStatus_Default:\n\t\treturn \"Default\"\n\tcase ProductDraftStatus_Pending:\n\t\treturn \"Pending\"\n\tcase ProductDraftStatus_Approved:\n\t\treturn \"Approved\"\n\tcase ProductDraftStatus_Rejected:\n\t\treturn \"Rejected\"\n\tcase ProductDraftStatus_Abandoned:\n\t\treturn \"Abandoned\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ProductDraftStatusFromString(s string) (ProductDraftStatus, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn ProductDraftStatus_Default, nil\n\tcase \"Pending\":\n\t\treturn ProductDraftStatus_Pending, nil\n\tcase \"Approved\":\n\t\treturn ProductDraftStatus_Approved, nil\n\tcase \"Rejected\":\n\t\treturn ProductDraftStatus_Rejected, nil\n\tcase \"Abandoned\":\n\t\treturn ProductDraftStatus_Abandoned, nil\n\t}\n\treturn ProductDraftStatus(0), fmt.Errorf(\"not a valid ProductDraftStatus string\")\n}\n\nfunc ProductDraftStatusPtr(v ProductDraftStatus) *ProductDraftStatus { return &v }\nfunc (p *ProductDraftStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ProductDraftStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ProductDraftStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype InputType int64\n\nconst (\n\tInputType_String  InputType = 1\n\tInputType_Integer InputType = 2\n\tInputType_Boolean InputType = 3\n\tInputType_Double  InputType = 4\n\tInputType_List    InputType = 5\n\tInputType_Object  InputType = 6\n)\n\nfunc (p InputType) String() string {\n\tswitch p {\n\tcase InputType_String:\n\t\treturn \"String\"\n\tcase InputType_Integer:\n\t\treturn \"Integer\"\n\tcase InputType_Boolean:\n\t\treturn \"Boolean\"\n\tcase InputType_Double:\n\t\treturn \"Double\"\n\tcase InputType_List:\n\t\treturn \"List\"\n\tcase InputType_Object:\n\t\treturn \"Object\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc InputTypeFromString(s string) (InputType, error) {\n\tswitch s {\n\tcase \"String\":\n\t\treturn InputType_String, nil\n\tcase \"Integer\":\n\t\treturn InputType_Integer, nil\n\tcase \"Boolean\":\n\t\treturn InputType_Boolean, nil\n\tcase \"Double\":\n\t\treturn InputType_Double, nil\n\tcase \"List\":\n\t\treturn InputType_List, nil\n\tcase \"Object\":\n\t\treturn InputType_Object, nil\n\t}\n\treturn InputType(0), fmt.Errorf(\"not a valid InputType string\")\n}\n\nfunc InputTypePtr(v InputType) *InputType { return &v }\nfunc (p *InputType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = InputType(result.Int64)\n\treturn\n}\n\nfunc (p *InputType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginParamTypeFormat int64\n\nconst (\n\tPluginParamTypeFormat_ImageUrl PluginParamTypeFormat = 1\n)\n\nfunc (p PluginParamTypeFormat) String() string {\n\tswitch p {\n\tcase PluginParamTypeFormat_ImageUrl:\n\t\treturn \"ImageUrl\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginParamTypeFormatFromString(s string) (PluginParamTypeFormat, error) {\n\tswitch s {\n\tcase \"ImageUrl\":\n\t\treturn PluginParamTypeFormat_ImageUrl, nil\n\t}\n\treturn PluginParamTypeFormat(0), fmt.Errorf(\"not a valid PluginParamTypeFormat string\")\n}\n\nfunc PluginParamTypeFormatPtr(v PluginParamTypeFormat) *PluginParamTypeFormat { return &v }\nfunc (p *PluginParamTypeFormat) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginParamTypeFormat(result.Int64)\n\treturn\n}\n\nfunc (p *PluginParamTypeFormat) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype WorkflowNodeType int64\n\nconst (\n\t// start\n\tWorkflowNodeType_Start WorkflowNodeType = 1\n\t// end\n\tWorkflowNodeType_End WorkflowNodeType = 2\n\t// Large model\n\tWorkflowNodeType_LLM WorkflowNodeType = 3\n\t// plugin\n\tWorkflowNodeType_Api WorkflowNodeType = 4\n\t// code\n\tWorkflowNodeType_Code WorkflowNodeType = 5\n\t// Knowledge Base\n\tWorkflowNodeType_Dataset WorkflowNodeType = 6\n\t// selector\n\tWorkflowNodeType_If WorkflowNodeType = 8\n\t// Workflow\n\tWorkflowNodeType_SubWorkflow WorkflowNodeType = 9\n\t// variable\n\tWorkflowNodeType_Variable WorkflowNodeType = 11\n\t// database\n\tWorkflowNodeType_Database WorkflowNodeType = 12\n\t// message\n\tWorkflowNodeType_Message WorkflowNodeType = 13\n)\n\nfunc (p WorkflowNodeType) String() string {\n\tswitch p {\n\tcase WorkflowNodeType_Start:\n\t\treturn \"Start\"\n\tcase WorkflowNodeType_End:\n\t\treturn \"End\"\n\tcase WorkflowNodeType_LLM:\n\t\treturn \"LLM\"\n\tcase WorkflowNodeType_Api:\n\t\treturn \"Api\"\n\tcase WorkflowNodeType_Code:\n\t\treturn \"Code\"\n\tcase WorkflowNodeType_Dataset:\n\t\treturn \"Dataset\"\n\tcase WorkflowNodeType_If:\n\t\treturn \"If\"\n\tcase WorkflowNodeType_SubWorkflow:\n\t\treturn \"SubWorkflow\"\n\tcase WorkflowNodeType_Variable:\n\t\treturn \"Variable\"\n\tcase WorkflowNodeType_Database:\n\t\treturn \"Database\"\n\tcase WorkflowNodeType_Message:\n\t\treturn \"Message\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc WorkflowNodeTypeFromString(s string) (WorkflowNodeType, error) {\n\tswitch s {\n\tcase \"Start\":\n\t\treturn WorkflowNodeType_Start, nil\n\tcase \"End\":\n\t\treturn WorkflowNodeType_End, nil\n\tcase \"LLM\":\n\t\treturn WorkflowNodeType_LLM, nil\n\tcase \"Api\":\n\t\treturn WorkflowNodeType_Api, nil\n\tcase \"Code\":\n\t\treturn WorkflowNodeType_Code, nil\n\tcase \"Dataset\":\n\t\treturn WorkflowNodeType_Dataset, nil\n\tcase \"If\":\n\t\treturn WorkflowNodeType_If, nil\n\tcase \"SubWorkflow\":\n\t\treturn WorkflowNodeType_SubWorkflow, nil\n\tcase \"Variable\":\n\t\treturn WorkflowNodeType_Variable, nil\n\tcase \"Database\":\n\t\treturn WorkflowNodeType_Database, nil\n\tcase \"Message\":\n\t\treturn WorkflowNodeType_Message, nil\n\t}\n\treturn WorkflowNodeType(0), fmt.Errorf(\"not a valid WorkflowNodeType string\")\n}\n\nfunc WorkflowNodeTypePtr(v WorkflowNodeType) *WorkflowNodeType { return &v }\nfunc (p *WorkflowNodeType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = WorkflowNodeType(result.Int64)\n\treturn\n}\n\nfunc (p *WorkflowNodeType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SocialSceneRoleType int64\n\nconst (\n\tSocialSceneRoleType_Host      SocialSceneRoleType = 1\n\tSocialSceneRoleType_PresetBot SocialSceneRoleType = 2\n\tSocialSceneRoleType_Custom    SocialSceneRoleType = 3\n)\n\nfunc (p SocialSceneRoleType) String() string {\n\tswitch p {\n\tcase SocialSceneRoleType_Host:\n\t\treturn \"Host\"\n\tcase SocialSceneRoleType_PresetBot:\n\t\treturn \"PresetBot\"\n\tcase SocialSceneRoleType_Custom:\n\t\treturn \"Custom\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SocialSceneRoleTypeFromString(s string) (SocialSceneRoleType, error) {\n\tswitch s {\n\tcase \"Host\":\n\t\treturn SocialSceneRoleType_Host, nil\n\tcase \"PresetBot\":\n\t\treturn SocialSceneRoleType_PresetBot, nil\n\tcase \"Custom\":\n\t\treturn SocialSceneRoleType_Custom, nil\n\t}\n\treturn SocialSceneRoleType(0), fmt.Errorf(\"not a valid SocialSceneRoleType string\")\n}\n\nfunc SocialSceneRoleTypePtr(v SocialSceneRoleType) *SocialSceneRoleType { return &v }\nfunc (p *SocialSceneRoleType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SocialSceneRoleType(result.Int64)\n\treturn\n}\n\nfunc (p *SocialSceneRoleType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype UIPreviewType int64\n\nconst (\n\t// UI preview type, defining alignment UI Builder, currently used in Project\n\tUIPreviewType_Web UIPreviewType = 1\n\t// mobile end\n\tUIPreviewType_Client UIPreviewType = 2\n)\n\nfunc (p UIPreviewType) String() string {\n\tswitch p {\n\tcase UIPreviewType_Web:\n\t\treturn \"Web\"\n\tcase UIPreviewType_Client:\n\t\treturn \"Client\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc UIPreviewTypeFromString(s string) (UIPreviewType, error) {\n\tswitch s {\n\tcase \"Web\":\n\t\treturn UIPreviewType_Web, nil\n\tcase \"Client\":\n\t\treturn UIPreviewType_Client, nil\n\t}\n\treturn UIPreviewType(0), fmt.Errorf(\"not a valid UIPreviewType string\")\n}\n\nfunc UIPreviewTypePtr(v UIPreviewType) *UIPreviewType { return &v }\nfunc (p *UIPreviewType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = UIPreviewType(result.Int64)\n\treturn\n}\n\nfunc (p *UIPreviewType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype FavoriteListSource int64\n\nconst (\n\t// Created by users themselves\n\tFavoriteListSource_CreatedByMe FavoriteListSource = 1\n)\n\nfunc (p FavoriteListSource) String() string {\n\tswitch p {\n\tcase FavoriteListSource_CreatedByMe:\n\t\treturn \"CreatedByMe\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc FavoriteListSourceFromString(s string) (FavoriteListSource, error) {\n\tswitch s {\n\tcase \"CreatedByMe\":\n\t\treturn FavoriteListSource_CreatedByMe, nil\n\t}\n\treturn FavoriteListSource(0), fmt.Errorf(\"not a valid FavoriteListSource string\")\n}\n\nfunc FavoriteListSourcePtr(v FavoriteListSource) *FavoriteListSource { return &v }\nfunc (p *FavoriteListSource) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = FavoriteListSource(result.Int64)\n\treturn\n}\n\nfunc (p *FavoriteListSource) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype AuditStatus = ProductDraftStatus\n\ntype CommercialSetting struct {\n\tCommercialType ProductPaidType `thrift:\"commercial_type,1,required\" form:\"commercial_type,required\" json:\"commercial_type,required\"`\n}\n\nfunc NewCommercialSetting() *CommercialSetting {\n\treturn &CommercialSetting{}\n}\n\nfunc (p *CommercialSetting) InitDefault() {\n}\n\nfunc (p *CommercialSetting) GetCommercialType() (v ProductPaidType) {\n\treturn p.CommercialType\n}\n\nvar fieldIDToName_CommercialSetting = map[int16]string{\n\t1: \"commercial_type\",\n}\n\nfunc (p *CommercialSetting) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCommercialType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCommercialType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCommercialType {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CommercialSetting[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CommercialSetting[fieldId]))\n}\n\nfunc (p *CommercialSetting) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field ProductPaidType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ProductPaidType(v)\n\t}\n\tp.CommercialType = _field\n\treturn nil\n}\n\nfunc (p *CommercialSetting) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CommercialSetting\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CommercialSetting) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"commercial_type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.CommercialType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *CommercialSetting) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CommercialSetting(%+v)\", *p)\n\n}\n\ntype UserLabel struct {\n\tLabelID   string `thrift:\"label_id,1\" form:\"label_id\" json:\"label_id\"`\n\tLabelName string `thrift:\"label_name,2\" form:\"label_name\" json:\"label_name\"`\n\tIconURI   string `thrift:\"icon_uri,3\" form:\"icon_uri\" json:\"icon_uri\"`\n\tIconURL   string `thrift:\"icon_url,4\" form:\"icon_url\" json:\"icon_url\"`\n\tJumpLink  string `thrift:\"jump_link,5\" form:\"jump_link\" json:\"jump_link\"`\n}\n\nfunc NewUserLabel() *UserLabel {\n\treturn &UserLabel{}\n}\n\nfunc (p *UserLabel) InitDefault() {\n}\n\nfunc (p *UserLabel) GetLabelID() (v string) {\n\treturn p.LabelID\n}\n\nfunc (p *UserLabel) GetLabelName() (v string) {\n\treturn p.LabelName\n}\n\nfunc (p *UserLabel) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *UserLabel) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *UserLabel) GetJumpLink() (v string) {\n\treturn p.JumpLink\n}\n\nvar fieldIDToName_UserLabel = map[int16]string{\n\t1: \"label_id\",\n\t2: \"label_name\",\n\t3: \"icon_uri\",\n\t4: \"icon_url\",\n\t5: \"jump_link\",\n}\n\nfunc (p *UserLabel) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserLabel[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserLabel) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LabelID = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LabelName = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.JumpLink = _field\n\treturn nil\n}\n\nfunc (p *UserLabel) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserLabel\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserLabel) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LabelID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LabelName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"jump_link\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.JumpLink); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *UserLabel) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserLabel(%+v)\", *p)\n\n}\n\ntype UserInfo struct {\n\tUserID     int64                          `thrift:\"user_id,1\" form:\"user_id\" json:\"user_id,string\"`\n\tUserName   string                         `thrift:\"user_name,2\" form:\"user_name\" json:\"user_name\"`\n\tName       string                         `thrift:\"name,3\" form:\"name\" json:\"name\"`\n\tAvatarURL  string                         `thrift:\"avatar_url,4\" form:\"avatar_url\" json:\"avatar_url\"`\n\tUserLabel  *UserLabel                     `thrift:\"user_label,5,optional\" form:\"user_label\" json:\"user_label,omitempty\"`\n\tFollowType *marketplace_common.FollowType `thrift:\"follow_type,6,optional\" form:\"follow_type\" json:\"follow_type,omitempty\"`\n}\n\nfunc NewUserInfo() *UserInfo {\n\treturn &UserInfo{}\n}\n\nfunc (p *UserInfo) InitDefault() {\n}\n\nfunc (p *UserInfo) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *UserInfo) GetUserName() (v string) {\n\treturn p.UserName\n}\n\nfunc (p *UserInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *UserInfo) GetAvatarURL() (v string) {\n\treturn p.AvatarURL\n}\n\nvar UserInfo_UserLabel_DEFAULT *UserLabel\n\nfunc (p *UserInfo) GetUserLabel() (v *UserLabel) {\n\tif !p.IsSetUserLabel() {\n\t\treturn UserInfo_UserLabel_DEFAULT\n\t}\n\treturn p.UserLabel\n}\n\nvar UserInfo_FollowType_DEFAULT marketplace_common.FollowType\n\nfunc (p *UserInfo) GetFollowType() (v marketplace_common.FollowType) {\n\tif !p.IsSetFollowType() {\n\t\treturn UserInfo_FollowType_DEFAULT\n\t}\n\treturn *p.FollowType\n}\n\nvar fieldIDToName_UserInfo = map[int16]string{\n\t1: \"user_id\",\n\t2: \"user_name\",\n\t3: \"name\",\n\t4: \"avatar_url\",\n\t5: \"user_label\",\n\t6: \"follow_type\",\n}\n\nfunc (p *UserInfo) IsSetUserLabel() bool {\n\treturn p.UserLabel != nil\n}\n\nfunc (p *UserInfo) IsSetFollowType() bool {\n\treturn p.FollowType != nil\n}\n\nfunc (p *UserInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserName = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AvatarURL = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewUserLabel()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserLabel = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *marketplace_common.FollowType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := marketplace_common.FollowType(v)\n\t\t_field = &tmp\n\t}\n\tp.FollowType = _field\n\treturn nil\n}\n\nfunc (p *UserInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"avatar_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AvatarURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserLabel() {\n\t\tif err = oprot.WriteFieldBegin(\"user_label\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.UserLabel.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFollowType() {\n\t\tif err = oprot.WriteFieldBegin(\"follow_type\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FollowType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *UserInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserInfo(%+v)\", *p)\n\n}\n\ntype ImageInfo struct {\n\tURI string `thrift:\"uri,1\" form:\"uri\" json:\"uri\"`\n\tURL string `thrift:\"url,2\" form:\"url\" json:\"url\"`\n}\n\nfunc NewImageInfo() *ImageInfo {\n\treturn &ImageInfo{}\n}\n\nfunc (p *ImageInfo) InitDefault() {\n}\n\nfunc (p *ImageInfo) GetURI() (v string) {\n\treturn p.URI\n}\n\nfunc (p *ImageInfo) GetURL() (v string) {\n\treturn p.URL\n}\n\nvar fieldIDToName_ImageInfo = map[int16]string{\n\t1: \"uri\",\n\t2: \"url\",\n}\n\nfunc (p *ImageInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ImageInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ImageInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URI = _field\n\treturn nil\n}\nfunc (p *ImageInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\n\nfunc (p *ImageInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ImageInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ImageInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"uri\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ImageInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ImageInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ImageInfo(%+v)\", *p)\n\n}\n\ntype OpeningDialog struct {\n\t// Bot OpeningDialog\n\tContent string `thrift:\"content,1\" form:\"content\" json:\"content\"`\n}\n\nfunc NewOpeningDialog() *OpeningDialog {\n\treturn &OpeningDialog{}\n}\n\nfunc (p *OpeningDialog) InitDefault() {\n}\n\nfunc (p *OpeningDialog) GetContent() (v string) {\n\treturn p.Content\n}\n\nvar fieldIDToName_OpeningDialog = map[int16]string{\n\t1: \"content\",\n}\n\nfunc (p *OpeningDialog) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpeningDialog[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpeningDialog) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\n\nfunc (p *OpeningDialog) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpeningDialog\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpeningDialog) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"content\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *OpeningDialog) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpeningDialog(%+v)\", *p)\n\n}\n\ntype ChargeSKUExtra struct {\n\tQuantity     int64 `thrift:\"Quantity,1\" form:\"quantity\" json:\"quantity,string\"`\n\tIsSelfDefine bool  `thrift:\"IsSelfDefine,2\" form:\"is_self_define\" json:\"is_self_define\"`\n}\n\nfunc NewChargeSKUExtra() *ChargeSKUExtra {\n\treturn &ChargeSKUExtra{}\n}\n\nfunc (p *ChargeSKUExtra) InitDefault() {\n}\n\nfunc (p *ChargeSKUExtra) GetQuantity() (v int64) {\n\treturn p.Quantity\n}\n\nfunc (p *ChargeSKUExtra) GetIsSelfDefine() (v bool) {\n\treturn p.IsSelfDefine\n}\n\nvar fieldIDToName_ChargeSKUExtra = map[int16]string{\n\t1: \"Quantity\",\n\t2: \"IsSelfDefine\",\n}\n\nfunc (p *ChargeSKUExtra) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChargeSKUExtra[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ChargeSKUExtra) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Quantity = _field\n\treturn nil\n}\nfunc (p *ChargeSKUExtra) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsSelfDefine = _field\n\treturn nil\n}\n\nfunc (p *ChargeSKUExtra) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChargeSKUExtra\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChargeSKUExtra) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Quantity\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Quantity); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChargeSKUExtra) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsSelfDefine\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsSelfDefine); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ChargeSKUExtra) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChargeSKUExtra(%+v)\", *p)\n\n}\n\ntype FavoriteEntity struct {\n\tEntityID    int64             `thrift:\"EntityID,1\" form:\"entity_id\" json:\"entity_id,string\"`\n\tEntityType  ProductEntityType `thrift:\"EntityType,2\" form:\"entity_type\" json:\"entity_type\"`\n\tName        string            `thrift:\"Name,4\" form:\"name\" json:\"name\"`\n\tIconURL     string            `thrift:\"IconURL,5\" form:\"icon_url\" json:\"icon_url\"`\n\tDescription string            `thrift:\"Description,6\" form:\"description\" json:\"description\"`\n\t// Abandoned, using UserInfo\n\tSeller *SellerInfo `thrift:\"Seller,7\" form:\"seller\" json:\"seller\"`\n\t// Use to jump to the bot edit page\n\tSpaceID int64 `thrift:\"SpaceID,8\" form:\"space_id\" json:\"space_id,string\"`\n\t// Does the user have permissions to the space where the entity is located?\n\tHasSpacePermission bool `thrift:\"HasSpacePermission,9\" form:\"has_space_permission\" json:\"has_space_permission\"`\n\t// collection time\n\tFavoriteAt   int64                 `thrift:\"FavoriteAt,10\" form:\"favorite_at\" json:\"favorite_at,string\"`\n\tProductExtra *FavoriteProductExtra `thrift:\"ProductExtra,11,optional\" form:\"product_extra\" json:\"product_extra,omitempty\"`\n\tUserInfo     *UserInfo             `thrift:\"UserInfo,12\" form:\"user_info\" json:\"user_info\"`\n\tPluginExtra  *FavoritePluginExtra  `thrift:\"PluginExtra,13,optional\" form:\"plugin_extra\" json:\"plugin_extra,omitempty\"`\n}\n\nfunc NewFavoriteEntity() *FavoriteEntity {\n\treturn &FavoriteEntity{}\n}\n\nfunc (p *FavoriteEntity) InitDefault() {\n}\n\nfunc (p *FavoriteEntity) GetEntityID() (v int64) {\n\treturn p.EntityID\n}\n\nfunc (p *FavoriteEntity) GetEntityType() (v ProductEntityType) {\n\treturn p.EntityType\n}\n\nfunc (p *FavoriteEntity) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *FavoriteEntity) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *FavoriteEntity) GetDescription() (v string) {\n\treturn p.Description\n}\n\nvar FavoriteEntity_Seller_DEFAULT *SellerInfo\n\nfunc (p *FavoriteEntity) GetSeller() (v *SellerInfo) {\n\tif !p.IsSetSeller() {\n\t\treturn FavoriteEntity_Seller_DEFAULT\n\t}\n\treturn p.Seller\n}\n\nfunc (p *FavoriteEntity) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *FavoriteEntity) GetHasSpacePermission() (v bool) {\n\treturn p.HasSpacePermission\n}\n\nfunc (p *FavoriteEntity) GetFavoriteAt() (v int64) {\n\treturn p.FavoriteAt\n}\n\nvar FavoriteEntity_ProductExtra_DEFAULT *FavoriteProductExtra\n\nfunc (p *FavoriteEntity) GetProductExtra() (v *FavoriteProductExtra) {\n\tif !p.IsSetProductExtra() {\n\t\treturn FavoriteEntity_ProductExtra_DEFAULT\n\t}\n\treturn p.ProductExtra\n}\n\nvar FavoriteEntity_UserInfo_DEFAULT *UserInfo\n\nfunc (p *FavoriteEntity) GetUserInfo() (v *UserInfo) {\n\tif !p.IsSetUserInfo() {\n\t\treturn FavoriteEntity_UserInfo_DEFAULT\n\t}\n\treturn p.UserInfo\n}\n\nvar FavoriteEntity_PluginExtra_DEFAULT *FavoritePluginExtra\n\nfunc (p *FavoriteEntity) GetPluginExtra() (v *FavoritePluginExtra) {\n\tif !p.IsSetPluginExtra() {\n\t\treturn FavoriteEntity_PluginExtra_DEFAULT\n\t}\n\treturn p.PluginExtra\n}\n\nvar fieldIDToName_FavoriteEntity = map[int16]string{\n\t1:  \"EntityID\",\n\t2:  \"EntityType\",\n\t4:  \"Name\",\n\t5:  \"IconURL\",\n\t6:  \"Description\",\n\t7:  \"Seller\",\n\t8:  \"SpaceID\",\n\t9:  \"HasSpacePermission\",\n\t10: \"FavoriteAt\",\n\t11: \"ProductExtra\",\n\t12: \"UserInfo\",\n\t13: \"PluginExtra\",\n}\n\nfunc (p *FavoriteEntity) IsSetSeller() bool {\n\treturn p.Seller != nil\n}\n\nfunc (p *FavoriteEntity) IsSetProductExtra() bool {\n\treturn p.ProductExtra != nil\n}\n\nfunc (p *FavoriteEntity) IsSetUserInfo() bool {\n\treturn p.UserInfo != nil\n}\n\nfunc (p *FavoriteEntity) IsSetPluginExtra() bool {\n\treturn p.PluginExtra != nil\n}\n\nfunc (p *FavoriteEntity) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FavoriteEntity[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FavoriteEntity) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EntityID = _field\n\treturn nil\n}\nfunc (p *FavoriteEntity) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ProductEntityType(v)\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *FavoriteEntity) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *FavoriteEntity) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *FavoriteEntity) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *FavoriteEntity) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewSellerInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Seller = _field\n\treturn nil\n}\nfunc (p *FavoriteEntity) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *FavoriteEntity) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasSpacePermission = _field\n\treturn nil\n}\nfunc (p *FavoriteEntity) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FavoriteAt = _field\n\treturn nil\n}\nfunc (p *FavoriteEntity) ReadField11(iprot thrift.TProtocol) error {\n\t_field := NewFavoriteProductExtra()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ProductExtra = _field\n\treturn nil\n}\nfunc (p *FavoriteEntity) ReadField12(iprot thrift.TProtocol) error {\n\t_field := NewUserInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserInfo = _field\n\treturn nil\n}\nfunc (p *FavoriteEntity) ReadField13(iprot thrift.TProtocol) error {\n\t_field := NewFavoritePluginExtra()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PluginExtra = _field\n\treturn nil\n}\n\nfunc (p *FavoriteEntity) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FavoriteEntity\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FavoriteEntity) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.EntityID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FavoriteEntity) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.EntityType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *FavoriteEntity) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *FavoriteEntity) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IconURL\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *FavoriteEntity) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *FavoriteEntity) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Seller\", thrift.STRUCT, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Seller.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *FavoriteEntity) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SpaceID\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *FavoriteEntity) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"HasSpacePermission\", thrift.BOOL, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasSpacePermission); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *FavoriteEntity) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"FavoriteAt\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.FavoriteAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *FavoriteEntity) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProductExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"ProductExtra\", thrift.STRUCT, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ProductExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *FavoriteEntity) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserInfo\", thrift.STRUCT, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.UserInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *FavoriteEntity) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginExtra\", thrift.STRUCT, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.PluginExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *FavoriteEntity) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FavoriteEntity(%+v)\", *p)\n\n}\n\ntype SellerInfo struct {\n\tUserID    int64  `thrift:\"UserID,1\" form:\"user_id\" json:\"user_id,string\"`\n\tUserName  string `thrift:\"UserName,2\" form:\"user_name\" json:\"user_name\"`\n\tAvatarURL string `thrift:\"AvatarURL,3\" form:\"avatar_url\" json:\"avatar_url\"`\n}\n\nfunc NewSellerInfo() *SellerInfo {\n\treturn &SellerInfo{}\n}\n\nfunc (p *SellerInfo) InitDefault() {\n}\n\nfunc (p *SellerInfo) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *SellerInfo) GetUserName() (v string) {\n\treturn p.UserName\n}\n\nfunc (p *SellerInfo) GetAvatarURL() (v string) {\n\treturn p.AvatarURL\n}\n\nvar fieldIDToName_SellerInfo = map[int16]string{\n\t1: \"UserID\",\n\t2: \"UserName\",\n\t3: \"AvatarURL\",\n}\n\nfunc (p *SellerInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SellerInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SellerInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *SellerInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserName = _field\n\treturn nil\n}\nfunc (p *SellerInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AvatarURL = _field\n\treturn nil\n}\n\nfunc (p *SellerInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SellerInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SellerInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SellerInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserName\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SellerInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AvatarURL\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AvatarURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *SellerInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SellerInfo(%+v)\", *p)\n\n}\n\ntype FavoriteProductExtra struct {\n\tProductID     int64         `thrift:\"ProductID,1\" form:\"product_id\" json:\"product_id,string\"`\n\tProductStatus ProductStatus `thrift:\"ProductStatus,2\" form:\"product_status\" json:\"product_status\"`\n}\n\nfunc NewFavoriteProductExtra() *FavoriteProductExtra {\n\treturn &FavoriteProductExtra{}\n}\n\nfunc (p *FavoriteProductExtra) InitDefault() {\n}\n\nfunc (p *FavoriteProductExtra) GetProductID() (v int64) {\n\treturn p.ProductID\n}\n\nfunc (p *FavoriteProductExtra) GetProductStatus() (v ProductStatus) {\n\treturn p.ProductStatus\n}\n\nvar fieldIDToName_FavoriteProductExtra = map[int16]string{\n\t1: \"ProductID\",\n\t2: \"ProductStatus\",\n}\n\nfunc (p *FavoriteProductExtra) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FavoriteProductExtra[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FavoriteProductExtra) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProductID = _field\n\treturn nil\n}\nfunc (p *FavoriteProductExtra) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field ProductStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ProductStatus(v)\n\t}\n\tp.ProductStatus = _field\n\treturn nil\n}\n\nfunc (p *FavoriteProductExtra) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FavoriteProductExtra\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FavoriteProductExtra) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ProductID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProductID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FavoriteProductExtra) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ProductStatus\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ProductStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *FavoriteProductExtra) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FavoriteProductExtra(%+v)\", *p)\n\n}\n\ntype FavoritePluginExtra struct {\n\tTools []*PluginTool `thrift:\"Tools,1\" form:\"tools\" json:\"tools\"`\n}\n\nfunc NewFavoritePluginExtra() *FavoritePluginExtra {\n\treturn &FavoritePluginExtra{}\n}\n\nfunc (p *FavoritePluginExtra) InitDefault() {\n}\n\nfunc (p *FavoritePluginExtra) GetTools() (v []*PluginTool) {\n\treturn p.Tools\n}\n\nvar fieldIDToName_FavoritePluginExtra = map[int16]string{\n\t1: \"Tools\",\n}\n\nfunc (p *FavoritePluginExtra) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FavoritePluginExtra[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FavoritePluginExtra) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginTool, 0, size)\n\tvalues := make([]PluginTool, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Tools = _field\n\treturn nil\n}\n\nfunc (p *FavoritePluginExtra) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FavoritePluginExtra\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FavoritePluginExtra) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Tools\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Tools)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Tools {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *FavoritePluginExtra) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FavoritePluginExtra(%+v)\", *p)\n\n}\n\ntype PluginTool struct {\n\tID          int64  `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\tName        string `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\tDescription string `thrift:\"Description,3\" form:\"description\" json:\"description\"`\n}\n\nfunc NewPluginTool() *PluginTool {\n\treturn &PluginTool{}\n}\n\nfunc (p *PluginTool) InitDefault() {\n}\n\nfunc (p *PluginTool) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *PluginTool) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PluginTool) GetDescription() (v string) {\n\treturn p.Description\n}\n\nvar fieldIDToName_PluginTool = map[int16]string{\n\t1: \"ID\",\n\t2: \"Name\",\n\t3: \"Description\",\n}\n\nfunc (p *PluginTool) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginTool[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginTool) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PluginTool) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginTool) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\n\nfunc (p *PluginTool) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginTool\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginTool) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginTool) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginTool) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *PluginTool) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginTool(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/marketplace/product_public_api/public_api.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage product_public_api\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/marketplace/marketplace_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/marketplace/product_common\"\n)\n\ntype PluginAuthMode int64\n\nconst (\n\t// No authorization required.\n\tPluginAuthMode_NoAuth PluginAuthMode = 0\n\t// Authorization required, but no authorization configuration\n\tPluginAuthMode_Required PluginAuthMode = 1\n\t// Authorization is required and has been configured\n\tPluginAuthMode_Configured PluginAuthMode = 2\n\t// Authorization is required, but the authorization configuration may be user-level and can be configured by the user himself\n\tPluginAuthMode_Supported PluginAuthMode = 3\n\t// the third-party of coze saas plugin needs to be installed in the saas before it can be used.\n\tPluginAuthMode_NeedInstalled PluginAuthMode = 9\n)\n\nfunc (p PluginAuthMode) String() string {\n\tswitch p {\n\tcase PluginAuthMode_NoAuth:\n\t\treturn \"NoAuth\"\n\tcase PluginAuthMode_Required:\n\t\treturn \"Required\"\n\tcase PluginAuthMode_Configured:\n\t\treturn \"Configured\"\n\tcase PluginAuthMode_Supported:\n\t\treturn \"Supported\"\n\tcase PluginAuthMode_NeedInstalled:\n\t\treturn \"NeedInstalled\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginAuthModeFromString(s string) (PluginAuthMode, error) {\n\tswitch s {\n\tcase \"NoAuth\":\n\t\treturn PluginAuthMode_NoAuth, nil\n\tcase \"Required\":\n\t\treturn PluginAuthMode_Required, nil\n\tcase \"Configured\":\n\t\treturn PluginAuthMode_Configured, nil\n\tcase \"Supported\":\n\t\treturn PluginAuthMode_Supported, nil\n\tcase \"NeedInstalled\":\n\t\treturn PluginAuthMode_NeedInstalled, nil\n\t}\n\treturn PluginAuthMode(0), fmt.Errorf(\"not a valid PluginAuthMode string\")\n}\n\nfunc PluginAuthModePtr(v PluginAuthMode) *PluginAuthMode { return &v }\nfunc (p *PluginAuthMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginAuthMode(result.Int64)\n\treturn\n}\n\nfunc (p *PluginAuthMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginRunMode int64\n\nconst (\n\tPluginRunMode_DefaultToSync PluginRunMode = 0\n\tPluginRunMode_Sync          PluginRunMode = 1\n\tPluginRunMode_Async         PluginRunMode = 2\n\tPluginRunMode_Streaming     PluginRunMode = 3\n)\n\nfunc (p PluginRunMode) String() string {\n\tswitch p {\n\tcase PluginRunMode_DefaultToSync:\n\t\treturn \"DefaultToSync\"\n\tcase PluginRunMode_Sync:\n\t\treturn \"Sync\"\n\tcase PluginRunMode_Async:\n\t\treturn \"Async\"\n\tcase PluginRunMode_Streaming:\n\t\treturn \"Streaming\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginRunModeFromString(s string) (PluginRunMode, error) {\n\tswitch s {\n\tcase \"DefaultToSync\":\n\t\treturn PluginRunMode_DefaultToSync, nil\n\tcase \"Sync\":\n\t\treturn PluginRunMode_Sync, nil\n\tcase \"Async\":\n\t\treturn PluginRunMode_Async, nil\n\tcase \"Streaming\":\n\t\treturn PluginRunMode_Streaming, nil\n\t}\n\treturn PluginRunMode(0), fmt.Errorf(\"not a valid PluginRunMode string\")\n}\n\nfunc PluginRunModePtr(v PluginRunMode) *PluginRunMode { return &v }\nfunc (p *PluginRunMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginRunMode(result.Int64)\n\treturn\n}\n\nfunc (p *PluginRunMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype TimeCapsuleMode int64\n\nconst (\n\tTimeCapsuleMode_Off TimeCapsuleMode = 0\n\tTimeCapsuleMode_On  TimeCapsuleMode = 1\n)\n\nfunc (p TimeCapsuleMode) String() string {\n\tswitch p {\n\tcase TimeCapsuleMode_Off:\n\t\treturn \"Off\"\n\tcase TimeCapsuleMode_On:\n\t\treturn \"On\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TimeCapsuleModeFromString(s string) (TimeCapsuleMode, error) {\n\tswitch s {\n\tcase \"Off\":\n\t\treturn TimeCapsuleMode_Off, nil\n\tcase \"On\":\n\t\treturn TimeCapsuleMode_On, nil\n\t}\n\treturn TimeCapsuleMode(0), fmt.Errorf(\"not a valid TimeCapsuleMode string\")\n}\n\nfunc TimeCapsuleModePtr(v TimeCapsuleMode) *TimeCapsuleMode { return &v }\nfunc (p *TimeCapsuleMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = TimeCapsuleMode(result.Int64)\n\treturn\n}\n\nfunc (p *TimeCapsuleMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype FileboxInfoMode int64\n\nconst (\n\tFileboxInfoMode_Off FileboxInfoMode = 0\n\tFileboxInfoMode_On  FileboxInfoMode = 1\n)\n\nfunc (p FileboxInfoMode) String() string {\n\tswitch p {\n\tcase FileboxInfoMode_Off:\n\t\treturn \"Off\"\n\tcase FileboxInfoMode_On:\n\t\treturn \"On\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc FileboxInfoModeFromString(s string) (FileboxInfoMode, error) {\n\tswitch s {\n\tcase \"Off\":\n\t\treturn FileboxInfoMode_Off, nil\n\tcase \"On\":\n\t\treturn FileboxInfoMode_On, nil\n\t}\n\treturn FileboxInfoMode(0), fmt.Errorf(\"not a valid FileboxInfoMode string\")\n}\n\nfunc FileboxInfoModePtr(v FileboxInfoMode) *FileboxInfoMode { return &v }\nfunc (p *FileboxInfoMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = FileboxInfoMode(result.Int64)\n\treturn\n}\n\nfunc (p *FileboxInfoMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype TriggerEnable int64\n\nconst (\n\tTriggerEnable_Init  TriggerEnable = 0\n\tTriggerEnable_Open  TriggerEnable = 1\n\tTriggerEnable_Close TriggerEnable = 2\n)\n\nfunc (p TriggerEnable) String() string {\n\tswitch p {\n\tcase TriggerEnable_Init:\n\t\treturn \"Init\"\n\tcase TriggerEnable_Open:\n\t\treturn \"Open\"\n\tcase TriggerEnable_Close:\n\t\treturn \"Close\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TriggerEnableFromString(s string) (TriggerEnable, error) {\n\tswitch s {\n\tcase \"Init\":\n\t\treturn TriggerEnable_Init, nil\n\tcase \"Open\":\n\t\treturn TriggerEnable_Open, nil\n\tcase \"Close\":\n\t\treturn TriggerEnable_Close, nil\n\t}\n\treturn TriggerEnable(0), fmt.Errorf(\"not a valid TriggerEnable string\")\n}\n\nfunc TriggerEnablePtr(v TriggerEnable) *TriggerEnable { return &v }\nfunc (p *TriggerEnable) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = TriggerEnable(result.Int64)\n\treturn\n}\n\nfunc (p *TriggerEnable) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype UserLevel int64\n\nconst (\n\t// Free version\n\tUserLevel_Free UserLevel = 0\n\t// Overseas\n\tUserLevel_PremiumLite UserLevel = 10\n\t// Premium\n\tUserLevel_Premium     UserLevel = 15\n\tUserLevel_PremiumPlus UserLevel = 20\n\t// Domestic\n\tUserLevel_V1ProInstance UserLevel = 100\n\t// Personal flagship edition\n\tUserLevel_ProPersonal UserLevel = 110\n\t// Team edition\n\tUserLevel_Team UserLevel = 120\n\t// Enterprise edition\n\tUserLevel_Enterprise UserLevel = 130\n)\n\nfunc (p UserLevel) String() string {\n\tswitch p {\n\tcase UserLevel_Free:\n\t\treturn \"Free\"\n\tcase UserLevel_PremiumLite:\n\t\treturn \"PremiumLite\"\n\tcase UserLevel_Premium:\n\t\treturn \"Premium\"\n\tcase UserLevel_PremiumPlus:\n\t\treturn \"PremiumPlus\"\n\tcase UserLevel_V1ProInstance:\n\t\treturn \"V1ProInstance\"\n\tcase UserLevel_ProPersonal:\n\t\treturn \"ProPersonal\"\n\tcase UserLevel_Team:\n\t\treturn \"Team\"\n\tcase UserLevel_Enterprise:\n\t\treturn \"Enterprise\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc UserLevelFromString(s string) (UserLevel, error) {\n\tswitch s {\n\tcase \"Free\":\n\t\treturn UserLevel_Free, nil\n\tcase \"PremiumLite\":\n\t\treturn UserLevel_PremiumLite, nil\n\tcase \"Premium\":\n\t\treturn UserLevel_Premium, nil\n\tcase \"PremiumPlus\":\n\t\treturn UserLevel_PremiumPlus, nil\n\tcase \"V1ProInstance\":\n\t\treturn UserLevel_V1ProInstance, nil\n\tcase \"ProPersonal\":\n\t\treturn UserLevel_ProPersonal, nil\n\tcase \"Team\":\n\t\treturn UserLevel_Team, nil\n\tcase \"Enterprise\":\n\t\treturn UserLevel_Enterprise, nil\n\t}\n\treturn UserLevel(0), fmt.Errorf(\"not a valid UserLevel string\")\n}\n\nfunc UserLevelPtr(v UserLevel) *UserLevel { return &v }\nfunc (p *UserLevel) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = UserLevel(result.Int64)\n\treturn\n}\n\nfunc (p *UserLevel) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype GetMarketPluginConfigRequest struct {\n}\n\nfunc NewGetMarketPluginConfigRequest() *GetMarketPluginConfigRequest {\n\treturn &GetMarketPluginConfigRequest{}\n}\n\nfunc (p *GetMarketPluginConfigRequest) InitDefault() {\n}\n\nvar fieldIDToName_GetMarketPluginConfigRequest = map[int16]string{}\n\nfunc (p *GetMarketPluginConfigRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\tgoto SkipFieldTypeError\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nSkipFieldTypeError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T skip field type %d error\", p, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetMarketPluginConfigRequest) Write(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteStructBegin(\"GetMarketPluginConfigRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetMarketPluginConfigRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetMarketPluginConfigRequest(%+v)\", *p)\n\n}\n\ntype GetMarketPluginConfigResponse struct {\n\tCode     int32          `thrift:\"Code,1,required\" form:\"code,required\" json:\"code,required\"`\n\tMessage  string         `thrift:\"Message,2,required\" form:\"message,required\" json:\"message,required\"`\n\tData     *Configuration `thrift:\"Data,3,optional\" form:\"data\" json:\"data,omitempty\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetMarketPluginConfigResponse() *GetMarketPluginConfigResponse {\n\treturn &GetMarketPluginConfigResponse{}\n}\n\nfunc (p *GetMarketPluginConfigResponse) InitDefault() {\n}\n\nfunc (p *GetMarketPluginConfigResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetMarketPluginConfigResponse) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar GetMarketPluginConfigResponse_Data_DEFAULT *Configuration\n\nfunc (p *GetMarketPluginConfigResponse) GetData() (v *Configuration) {\n\tif !p.IsSetData() {\n\t\treturn GetMarketPluginConfigResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetMarketPluginConfigResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetMarketPluginConfigResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetMarketPluginConfigResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetMarketPluginConfigResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Message\",\n\t3:   \"Data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetMarketPluginConfigResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetMarketPluginConfigResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetMarketPluginConfigResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMessage bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessage = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMessage {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetMarketPluginConfigResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetMarketPluginConfigResponse[fieldId]))\n}\n\nfunc (p *GetMarketPluginConfigResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetMarketPluginConfigResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *GetMarketPluginConfigResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewConfiguration()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetMarketPluginConfigResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetMarketPluginConfigResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetMarketPluginConfigResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetMarketPluginConfigResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetMarketPluginConfigResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Message\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetMarketPluginConfigResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetData() {\n\t\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Data.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetMarketPluginConfigResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetMarketPluginConfigResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetMarketPluginConfigResponse(%+v)\", *p)\n\n}\n\ntype Configuration struct {\n\tEnableSaasPlugin *bool `thrift:\"enable_saas_plugin,1,optional\" form:\"enable_saas_plugin\" json:\"enable_saas_plugin,omitempty\" query:\"enable_saas_plugin\"`\n}\n\nfunc NewConfiguration() *Configuration {\n\treturn &Configuration{}\n}\n\nfunc (p *Configuration) InitDefault() {\n}\n\nvar Configuration_EnableSaasPlugin_DEFAULT bool\n\nfunc (p *Configuration) GetEnableSaasPlugin() (v bool) {\n\tif !p.IsSetEnableSaasPlugin() {\n\t\treturn Configuration_EnableSaasPlugin_DEFAULT\n\t}\n\treturn *p.EnableSaasPlugin\n}\n\nvar fieldIDToName_Configuration = map[int16]string{\n\t1: \"enable_saas_plugin\",\n}\n\nfunc (p *Configuration) IsSetEnableSaasPlugin() bool {\n\treturn p.EnableSaasPlugin != nil\n}\n\nfunc (p *Configuration) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Configuration[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Configuration) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EnableSaasPlugin = _field\n\treturn nil\n}\n\nfunc (p *Configuration) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Configuration\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Configuration) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEnableSaasPlugin() {\n\t\tif err = oprot.WriteFieldBegin(\"enable_saas_plugin\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.EnableSaasPlugin); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *Configuration) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Configuration(%+v)\", *p)\n\n}\n\ntype SearchProductRequest struct {\n\tKeyword    string                            `thrift:\"Keyword,1,required\" json:\"Keyword,required\" query:\"keyword,required\"`\n\tPageNum    int32                             `thrift:\"PageNum,2,required\" json:\"PageNum,required\" query:\"page_num,required\"`\n\tPageSize   int32                             `thrift:\"PageSize,3,required\" json:\"PageSize,required\" query:\"page_size,required\"`\n\tEntityType *product_common.ProductEntityType `thrift:\"EntityType,4,optional\" form:\"EntityType\" json:\"EntityType,omitempty\" query:\"EntityType\"`\n\tSortType   *product_common.SortType          `thrift:\"SortType,5,optional\" json:\"SortType,omitempty\" query:\"sort_type\"`\n\t// Open/closed source\n\tPublishMode *product_common.ProductPublishMode `thrift:\"PublishMode,11,optional\" form:\"PublishMode\" json:\"PublishMode,omitempty\" query:\"PublishMode\"`\n\t// Models used\n\tModelIDs []int64 `thrift:\"ModelIDs,12,optional\" json:\"ModelIDs,omitempty\" query:\"model_ids\"`\n\t// Multimodal type\n\tBotModType *product_common.BotModType `thrift:\"BotModType,13,optional\" form:\"BotModType\" json:\"BotModType,omitempty\" query:\"BotModType\"`\n\t// Sub-attributes\n\tComponents []product_common.Component `thrift:\"Components,14,optional\" form:\"Components\" json:\"Components,omitempty\" query:\"Components\"`\n\t// Publish platform IDs\n\tPublishPlatformIDs []int64 `thrift:\"PublishPlatformIDs,15,optional\" json:\"PublishPlatformIDs,omitempty\" query:\"publish_platform_ids\"`\n\t// Product category IDs\n\tCategoryIDs []int64 `thrift:\"CategoryIDs,16,optional\" json:\"CategoryIDs,omitempty\" query:\"category_ids\"`\n\t// Is official\n\tIsOfficial *bool `thrift:\"IsOfficial,17,optional\" json:\"IsOfficial,omitempty\" query:\"is_official\"`\n\t// Is recommended\n\tIsRecommend *bool `thrift:\"IsRecommend,18,optional\" json:\"IsRecommend,omitempty\" query:\"is_recommend\"`\n\t// Product type list, use this parameter first, then EntityType\n\tEntityTypes *string `thrift:\"EntityTypes,19,optional\" json:\"EntityTypes,omitempty\" query:\"entity_types\"`\n\t// Plugin type\n\tPluginType *product_common.PluginType `thrift:\"PluginType,20,optional\" form:\"PluginType\" json:\"PluginType,omitempty\" query:\"PluginType\"`\n\t// Product paid type\n\tProductPaidType *product_common.ProductPaidType `thrift:\"ProductPaidType,21,optional\" form:\"ProductPaidType\" json:\"ProductPaidType,omitempty\" query:\"ProductPaidType\"`\n\tBase            *base.Base                      `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewSearchProductRequest() *SearchProductRequest {\n\treturn &SearchProductRequest{}\n}\n\nfunc (p *SearchProductRequest) InitDefault() {\n}\n\nfunc (p *SearchProductRequest) GetKeyword() (v string) {\n\treturn p.Keyword\n}\n\nfunc (p *SearchProductRequest) GetPageNum() (v int32) {\n\treturn p.PageNum\n}\n\nfunc (p *SearchProductRequest) GetPageSize() (v int32) {\n\treturn p.PageSize\n}\n\nvar SearchProductRequest_EntityType_DEFAULT product_common.ProductEntityType\n\nfunc (p *SearchProductRequest) GetEntityType() (v product_common.ProductEntityType) {\n\tif !p.IsSetEntityType() {\n\t\treturn SearchProductRequest_EntityType_DEFAULT\n\t}\n\treturn *p.EntityType\n}\n\nvar SearchProductRequest_SortType_DEFAULT product_common.SortType\n\nfunc (p *SearchProductRequest) GetSortType() (v product_common.SortType) {\n\tif !p.IsSetSortType() {\n\t\treturn SearchProductRequest_SortType_DEFAULT\n\t}\n\treturn *p.SortType\n}\n\nvar SearchProductRequest_PublishMode_DEFAULT product_common.ProductPublishMode\n\nfunc (p *SearchProductRequest) GetPublishMode() (v product_common.ProductPublishMode) {\n\tif !p.IsSetPublishMode() {\n\t\treturn SearchProductRequest_PublishMode_DEFAULT\n\t}\n\treturn *p.PublishMode\n}\n\nvar SearchProductRequest_ModelIDs_DEFAULT []int64\n\nfunc (p *SearchProductRequest) GetModelIDs() (v []int64) {\n\tif !p.IsSetModelIDs() {\n\t\treturn SearchProductRequest_ModelIDs_DEFAULT\n\t}\n\treturn p.ModelIDs\n}\n\nvar SearchProductRequest_BotModType_DEFAULT product_common.BotModType\n\nfunc (p *SearchProductRequest) GetBotModType() (v product_common.BotModType) {\n\tif !p.IsSetBotModType() {\n\t\treturn SearchProductRequest_BotModType_DEFAULT\n\t}\n\treturn *p.BotModType\n}\n\nvar SearchProductRequest_Components_DEFAULT []product_common.Component\n\nfunc (p *SearchProductRequest) GetComponents() (v []product_common.Component) {\n\tif !p.IsSetComponents() {\n\t\treturn SearchProductRequest_Components_DEFAULT\n\t}\n\treturn p.Components\n}\n\nvar SearchProductRequest_PublishPlatformIDs_DEFAULT []int64\n\nfunc (p *SearchProductRequest) GetPublishPlatformIDs() (v []int64) {\n\tif !p.IsSetPublishPlatformIDs() {\n\t\treturn SearchProductRequest_PublishPlatformIDs_DEFAULT\n\t}\n\treturn p.PublishPlatformIDs\n}\n\nvar SearchProductRequest_CategoryIDs_DEFAULT []int64\n\nfunc (p *SearchProductRequest) GetCategoryIDs() (v []int64) {\n\tif !p.IsSetCategoryIDs() {\n\t\treturn SearchProductRequest_CategoryIDs_DEFAULT\n\t}\n\treturn p.CategoryIDs\n}\n\nvar SearchProductRequest_IsOfficial_DEFAULT bool\n\nfunc (p *SearchProductRequest) GetIsOfficial() (v bool) {\n\tif !p.IsSetIsOfficial() {\n\t\treturn SearchProductRequest_IsOfficial_DEFAULT\n\t}\n\treturn *p.IsOfficial\n}\n\nvar SearchProductRequest_IsRecommend_DEFAULT bool\n\nfunc (p *SearchProductRequest) GetIsRecommend() (v bool) {\n\tif !p.IsSetIsRecommend() {\n\t\treturn SearchProductRequest_IsRecommend_DEFAULT\n\t}\n\treturn *p.IsRecommend\n}\n\nvar SearchProductRequest_EntityTypes_DEFAULT string\n\nfunc (p *SearchProductRequest) GetEntityTypes() (v string) {\n\tif !p.IsSetEntityTypes() {\n\t\treturn SearchProductRequest_EntityTypes_DEFAULT\n\t}\n\treturn *p.EntityTypes\n}\n\nvar SearchProductRequest_PluginType_DEFAULT product_common.PluginType\n\nfunc (p *SearchProductRequest) GetPluginType() (v product_common.PluginType) {\n\tif !p.IsSetPluginType() {\n\t\treturn SearchProductRequest_PluginType_DEFAULT\n\t}\n\treturn *p.PluginType\n}\n\nvar SearchProductRequest_ProductPaidType_DEFAULT product_common.ProductPaidType\n\nfunc (p *SearchProductRequest) GetProductPaidType() (v product_common.ProductPaidType) {\n\tif !p.IsSetProductPaidType() {\n\t\treturn SearchProductRequest_ProductPaidType_DEFAULT\n\t}\n\treturn *p.ProductPaidType\n}\n\nvar SearchProductRequest_Base_DEFAULT *base.Base\n\nfunc (p *SearchProductRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SearchProductRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SearchProductRequest = map[int16]string{\n\t1:   \"Keyword\",\n\t2:   \"PageNum\",\n\t3:   \"PageSize\",\n\t4:   \"EntityType\",\n\t5:   \"SortType\",\n\t11:  \"PublishMode\",\n\t12:  \"ModelIDs\",\n\t13:  \"BotModType\",\n\t14:  \"Components\",\n\t15:  \"PublishPlatformIDs\",\n\t16:  \"CategoryIDs\",\n\t17:  \"IsOfficial\",\n\t18:  \"IsRecommend\",\n\t19:  \"EntityTypes\",\n\t20:  \"PluginType\",\n\t21:  \"ProductPaidType\",\n\t255: \"Base\",\n}\n\nfunc (p *SearchProductRequest) IsSetEntityType() bool {\n\treturn p.EntityType != nil\n}\n\nfunc (p *SearchProductRequest) IsSetSortType() bool {\n\treturn p.SortType != nil\n}\n\nfunc (p *SearchProductRequest) IsSetPublishMode() bool {\n\treturn p.PublishMode != nil\n}\n\nfunc (p *SearchProductRequest) IsSetModelIDs() bool {\n\treturn p.ModelIDs != nil\n}\n\nfunc (p *SearchProductRequest) IsSetBotModType() bool {\n\treturn p.BotModType != nil\n}\n\nfunc (p *SearchProductRequest) IsSetComponents() bool {\n\treturn p.Components != nil\n}\n\nfunc (p *SearchProductRequest) IsSetPublishPlatformIDs() bool {\n\treturn p.PublishPlatformIDs != nil\n}\n\nfunc (p *SearchProductRequest) IsSetCategoryIDs() bool {\n\treturn p.CategoryIDs != nil\n}\n\nfunc (p *SearchProductRequest) IsSetIsOfficial() bool {\n\treturn p.IsOfficial != nil\n}\n\nfunc (p *SearchProductRequest) IsSetIsRecommend() bool {\n\treturn p.IsRecommend != nil\n}\n\nfunc (p *SearchProductRequest) IsSetEntityTypes() bool {\n\treturn p.EntityTypes != nil\n}\n\nfunc (p *SearchProductRequest) IsSetPluginType() bool {\n\treturn p.PluginType != nil\n}\n\nfunc (p *SearchProductRequest) IsSetProductPaidType() bool {\n\treturn p.ProductPaidType != nil\n}\n\nfunc (p *SearchProductRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SearchProductRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetKeyword bool = false\n\tvar issetPageNum bool = false\n\tvar issetPageSize bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetKeyword = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPageNum = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPageSize = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetKeyword {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetPageNum {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetPageSize {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SearchProductRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SearchProductRequest[fieldId]))\n}\n\nfunc (p *SearchProductRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageNum = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageSize = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.ProductEntityType(v)\n\t\t_field = &tmp\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.SortType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.SortType(v)\n\t\t_field = &tmp\n\t}\n\tp.SortType = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.ProductPublishMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.ProductPublishMode(v)\n\t\t_field = &tmp\n\t}\n\tp.PublishMode = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField12(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ModelIDs = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.BotModType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.BotModType(v)\n\t\t_field = &tmp\n\t}\n\tp.BotModType = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField14(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]product_common.Component, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem product_common.Component\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = product_common.Component(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Components = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField15(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PublishPlatformIDs = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField16(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CategoryIDs = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsOfficial = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsRecommend = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EntityTypes = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.PluginType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.PluginType(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginType = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.ProductPaidType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.ProductPaidType(v)\n\t\t_field = &tmp\n\t}\n\tp.ProductPaidType = _field\n\treturn nil\n}\nfunc (p *SearchProductRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SearchProductRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SearchProductRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SearchProductRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Keyword\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Keyword); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PageNum\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.PageNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PageSize\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.PageSize); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityType() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.EntityType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSortType() {\n\t\tif err = oprot.WriteFieldBegin(\"SortType\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SortType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishMode() {\n\t\tif err = oprot.WriteFieldBegin(\"PublishMode\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PublishMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelIDs() {\n\t\tif err = oprot.WriteFieldBegin(\"ModelIDs\", thrift.LIST, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I64, len(p.ModelIDs)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ModelIDs {\n\t\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotModType() {\n\t\tif err = oprot.WriteFieldBegin(\"BotModType\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.BotModType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetComponents() {\n\t\tif err = oprot.WriteFieldBegin(\"Components\", thrift.LIST, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.Components)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Components {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishPlatformIDs() {\n\t\tif err = oprot.WriteFieldBegin(\"PublishPlatformIDs\", thrift.LIST, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I64, len(p.PublishPlatformIDs)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PublishPlatformIDs {\n\t\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCategoryIDs() {\n\t\tif err = oprot.WriteFieldBegin(\"CategoryIDs\", thrift.LIST, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I64, len(p.CategoryIDs)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.CategoryIDs {\n\t\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsOfficial() {\n\t\tif err = oprot.WriteFieldBegin(\"IsOfficial\", thrift.BOOL, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsOfficial); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsRecommend() {\n\t\tif err = oprot.WriteFieldBegin(\"IsRecommend\", thrift.BOOL, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsRecommend); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityTypes() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityTypes\", thrift.STRING, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.EntityTypes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginType() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginType\", thrift.I32, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProductPaidType() {\n\t\tif err = oprot.WriteFieldBegin(\"ProductPaidType\", thrift.I32, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ProductPaidType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *SearchProductRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SearchProductRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SearchProductRequest(%+v)\", *p)\n\n}\n\ntype SearchProductResponse struct {\n\tCode     int32                      `thrift:\"Code,1,required\" form:\"code,required\" json:\"code,required\"`\n\tMessage  string                     `thrift:\"Message,2,required\" form:\"message,required\" json:\"message,required\"`\n\tData     *SearchProductResponseData `thrift:\"Data,3,optional\" form:\"data\" json:\"data,omitempty\"`\n\tBaseResp *base.BaseResp             `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewSearchProductResponse() *SearchProductResponse {\n\treturn &SearchProductResponse{}\n}\n\nfunc (p *SearchProductResponse) InitDefault() {\n}\n\nfunc (p *SearchProductResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *SearchProductResponse) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar SearchProductResponse_Data_DEFAULT *SearchProductResponseData\n\nfunc (p *SearchProductResponse) GetData() (v *SearchProductResponseData) {\n\tif !p.IsSetData() {\n\t\treturn SearchProductResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar SearchProductResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SearchProductResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SearchProductResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SearchProductResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Message\",\n\t3:   \"Data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *SearchProductResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *SearchProductResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SearchProductResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMessage bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessage = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMessage {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SearchProductResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SearchProductResponse[fieldId]))\n}\n\nfunc (p *SearchProductResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *SearchProductResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *SearchProductResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewSearchProductResponseData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *SearchProductResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SearchProductResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SearchProductResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SearchProductResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SearchProductResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Message\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SearchProductResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetData() {\n\t\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Data.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SearchProductResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SearchProductResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SearchProductResponse(%+v)\", *p)\n\n}\n\ntype SearchProductResponseData struct {\n\tProducts []*ProductInfo `thrift:\"Products,1,optional\" form:\"products\" json:\"products,omitempty\"`\n\tTotal    *int32         `thrift:\"Total,2,optional\" form:\"total\" json:\"total,omitempty\"`\n\tHasMore  *bool          `thrift:\"HasMore,3,optional\" form:\"has_more\" json:\"has_more,omitempty\"`\n\t// Entity count\n\tEntityTotal map[product_common.ProductEntityType]int32 `thrift:\"EntityTotal,4,optional\" form:\"entity_total\" json:\"entity_total,omitempty\"`\n}\n\nfunc NewSearchProductResponseData() *SearchProductResponseData {\n\treturn &SearchProductResponseData{}\n}\n\nfunc (p *SearchProductResponseData) InitDefault() {\n}\n\nvar SearchProductResponseData_Products_DEFAULT []*ProductInfo\n\nfunc (p *SearchProductResponseData) GetProducts() (v []*ProductInfo) {\n\tif !p.IsSetProducts() {\n\t\treturn SearchProductResponseData_Products_DEFAULT\n\t}\n\treturn p.Products\n}\n\nvar SearchProductResponseData_Total_DEFAULT int32\n\nfunc (p *SearchProductResponseData) GetTotal() (v int32) {\n\tif !p.IsSetTotal() {\n\t\treturn SearchProductResponseData_Total_DEFAULT\n\t}\n\treturn *p.Total\n}\n\nvar SearchProductResponseData_HasMore_DEFAULT bool\n\nfunc (p *SearchProductResponseData) GetHasMore() (v bool) {\n\tif !p.IsSetHasMore() {\n\t\treturn SearchProductResponseData_HasMore_DEFAULT\n\t}\n\treturn *p.HasMore\n}\n\nvar SearchProductResponseData_EntityTotal_DEFAULT map[product_common.ProductEntityType]int32\n\nfunc (p *SearchProductResponseData) GetEntityTotal() (v map[product_common.ProductEntityType]int32) {\n\tif !p.IsSetEntityTotal() {\n\t\treturn SearchProductResponseData_EntityTotal_DEFAULT\n\t}\n\treturn p.EntityTotal\n}\n\nvar fieldIDToName_SearchProductResponseData = map[int16]string{\n\t1: \"Products\",\n\t2: \"Total\",\n\t3: \"HasMore\",\n\t4: \"EntityTotal\",\n}\n\nfunc (p *SearchProductResponseData) IsSetProducts() bool {\n\treturn p.Products != nil\n}\n\nfunc (p *SearchProductResponseData) IsSetTotal() bool {\n\treturn p.Total != nil\n}\n\nfunc (p *SearchProductResponseData) IsSetHasMore() bool {\n\treturn p.HasMore != nil\n}\n\nfunc (p *SearchProductResponseData) IsSetEntityTotal() bool {\n\treturn p.EntityTotal != nil\n}\n\nfunc (p *SearchProductResponseData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SearchProductResponseData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SearchProductResponseData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProductInfo, 0, size)\n\tvalues := make([]ProductInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Products = _field\n\treturn nil\n}\nfunc (p *SearchProductResponseData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Total = _field\n\treturn nil\n}\nfunc (p *SearchProductResponseData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *SearchProductResponseData) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[product_common.ProductEntityType]int32, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key product_common.ProductEntityType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = product_common.ProductEntityType(v)\n\t\t}\n\n\t\tvar _val int32\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.EntityTotal = _field\n\treturn nil\n}\n\nfunc (p *SearchProductResponseData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SearchProductResponseData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SearchProductResponseData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProducts() {\n\t\tif err = oprot.WriteFieldBegin(\"Products\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Products)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Products {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SearchProductResponseData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTotal() {\n\t\tif err = oprot.WriteFieldBegin(\"Total\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Total); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SearchProductResponseData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHasMore() {\n\t\tif err = oprot.WriteFieldBegin(\"HasMore\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HasMore); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SearchProductResponseData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityTotal() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityTotal\", thrift.MAP, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I32, thrift.I32, len(p.EntityTotal)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.EntityTotal {\n\t\t\tif err := oprot.WriteI32(int32(k)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteI32(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *SearchProductResponseData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SearchProductResponseData(%+v)\", *p)\n\n}\n\ntype SearchSuggestResponse struct {\n\tCode     int32                      `thrift:\"Code,1,required\" form:\"code,required\" json:\"code,required\"`\n\tMessage  string                     `thrift:\"Message,2,required\" form:\"message,required\" json:\"message,required\"`\n\tData     *SearchSuggestResponseData `thrift:\"Data,3,optional\" form:\"data\" json:\"data,omitempty\"`\n\tBaseResp *base.BaseResp             `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewSearchSuggestResponse() *SearchSuggestResponse {\n\treturn &SearchSuggestResponse{}\n}\n\nfunc (p *SearchSuggestResponse) InitDefault() {\n}\n\nfunc (p *SearchSuggestResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *SearchSuggestResponse) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar SearchSuggestResponse_Data_DEFAULT *SearchSuggestResponseData\n\nfunc (p *SearchSuggestResponse) GetData() (v *SearchSuggestResponseData) {\n\tif !p.IsSetData() {\n\t\treturn SearchSuggestResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar SearchSuggestResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SearchSuggestResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SearchSuggestResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SearchSuggestResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Message\",\n\t3:   \"Data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *SearchSuggestResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *SearchSuggestResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SearchSuggestResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMessage bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessage = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMessage {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SearchSuggestResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SearchSuggestResponse[fieldId]))\n}\n\nfunc (p *SearchSuggestResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *SearchSuggestResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *SearchSuggestResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewSearchSuggestResponseData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *SearchSuggestResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SearchSuggestResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SearchSuggestResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SearchSuggestResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SearchSuggestResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Message\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SearchSuggestResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetData() {\n\t\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Data.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SearchSuggestResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SearchSuggestResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SearchSuggestResponse(%+v)\", *p)\n\n}\n\ntype SearchSuggestResponseData struct {\n\t// Deprecated\n\tSuggestions  []*ProductMetaInfo `thrift:\"Suggestions,1,optional\" form:\"suggestions\" json:\"suggestions,omitempty\"`\n\tHasMore      *bool              `thrift:\"HasMore,2,optional\" form:\"has_more\" json:\"has_more,omitempty\"`\n\tSuggestionV2 []*ProductInfo     `thrift:\"SuggestionV2,3,optional\" form:\"suggestion_v2\" json:\"suggestion_v2,omitempty\"`\n}\n\nfunc NewSearchSuggestResponseData() *SearchSuggestResponseData {\n\treturn &SearchSuggestResponseData{}\n}\n\nfunc (p *SearchSuggestResponseData) InitDefault() {\n}\n\nvar SearchSuggestResponseData_Suggestions_DEFAULT []*ProductMetaInfo\n\nfunc (p *SearchSuggestResponseData) GetSuggestions() (v []*ProductMetaInfo) {\n\tif !p.IsSetSuggestions() {\n\t\treturn SearchSuggestResponseData_Suggestions_DEFAULT\n\t}\n\treturn p.Suggestions\n}\n\nvar SearchSuggestResponseData_HasMore_DEFAULT bool\n\nfunc (p *SearchSuggestResponseData) GetHasMore() (v bool) {\n\tif !p.IsSetHasMore() {\n\t\treturn SearchSuggestResponseData_HasMore_DEFAULT\n\t}\n\treturn *p.HasMore\n}\n\nvar SearchSuggestResponseData_SuggestionV2_DEFAULT []*ProductInfo\n\nfunc (p *SearchSuggestResponseData) GetSuggestionV2() (v []*ProductInfo) {\n\tif !p.IsSetSuggestionV2() {\n\t\treturn SearchSuggestResponseData_SuggestionV2_DEFAULT\n\t}\n\treturn p.SuggestionV2\n}\n\nvar fieldIDToName_SearchSuggestResponseData = map[int16]string{\n\t1: \"Suggestions\",\n\t2: \"HasMore\",\n\t3: \"SuggestionV2\",\n}\n\nfunc (p *SearchSuggestResponseData) IsSetSuggestions() bool {\n\treturn p.Suggestions != nil\n}\n\nfunc (p *SearchSuggestResponseData) IsSetHasMore() bool {\n\treturn p.HasMore != nil\n}\n\nfunc (p *SearchSuggestResponseData) IsSetSuggestionV2() bool {\n\treturn p.SuggestionV2 != nil\n}\n\nfunc (p *SearchSuggestResponseData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SearchSuggestResponseData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SearchSuggestResponseData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProductMetaInfo, 0, size)\n\tvalues := make([]ProductMetaInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Suggestions = _field\n\treturn nil\n}\nfunc (p *SearchSuggestResponseData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *SearchSuggestResponseData) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProductInfo, 0, size)\n\tvalues := make([]ProductInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestionV2 = _field\n\treturn nil\n}\n\nfunc (p *SearchSuggestResponseData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SearchSuggestResponseData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SearchSuggestResponseData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestions() {\n\t\tif err = oprot.WriteFieldBegin(\"Suggestions\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Suggestions)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Suggestions {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SearchSuggestResponseData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHasMore() {\n\t\tif err = oprot.WriteFieldBegin(\"HasMore\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HasMore); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SearchSuggestResponseData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestionV2() {\n\t\tif err = oprot.WriteFieldBegin(\"SuggestionV2\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SuggestionV2)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SuggestionV2 {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *SearchSuggestResponseData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SearchSuggestResponseData(%+v)\", *p)\n\n}\n\ntype SearchSuggestRequest struct {\n\tKeyword *string `thrift:\"Keyword,1,optional\" json:\"Keyword,omitempty\" query:\"keyword\"`\n\t// Optional, defaults to bot recommendation if not provided\n\tEntityType *product_common.ProductEntityType `thrift:\"EntityType,2,optional\" json:\"EntityType,omitempty\" query:\"entity_type\"`\n\tPageNum    *int32                            `thrift:\"PageNum,3,optional\" json:\"PageNum,omitempty\" query:\"page_num\"`\n\tPageSize   *int32                            `thrift:\"PageSize,4,optional\" json:\"PageSize,omitempty\" query:\"page_size\"`\n\t// Product type list, use this parameter first, then EntityType\n\tEntityTypes *string    `thrift:\"EntityTypes,5,optional\" json:\"EntityTypes,omitempty\" query:\"entity_types\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewSearchSuggestRequest() *SearchSuggestRequest {\n\treturn &SearchSuggestRequest{}\n}\n\nfunc (p *SearchSuggestRequest) InitDefault() {\n}\n\nvar SearchSuggestRequest_Keyword_DEFAULT string\n\nfunc (p *SearchSuggestRequest) GetKeyword() (v string) {\n\tif !p.IsSetKeyword() {\n\t\treturn SearchSuggestRequest_Keyword_DEFAULT\n\t}\n\treturn *p.Keyword\n}\n\nvar SearchSuggestRequest_EntityType_DEFAULT product_common.ProductEntityType\n\nfunc (p *SearchSuggestRequest) GetEntityType() (v product_common.ProductEntityType) {\n\tif !p.IsSetEntityType() {\n\t\treturn SearchSuggestRequest_EntityType_DEFAULT\n\t}\n\treturn *p.EntityType\n}\n\nvar SearchSuggestRequest_PageNum_DEFAULT int32\n\nfunc (p *SearchSuggestRequest) GetPageNum() (v int32) {\n\tif !p.IsSetPageNum() {\n\t\treturn SearchSuggestRequest_PageNum_DEFAULT\n\t}\n\treturn *p.PageNum\n}\n\nvar SearchSuggestRequest_PageSize_DEFAULT int32\n\nfunc (p *SearchSuggestRequest) GetPageSize() (v int32) {\n\tif !p.IsSetPageSize() {\n\t\treturn SearchSuggestRequest_PageSize_DEFAULT\n\t}\n\treturn *p.PageSize\n}\n\nvar SearchSuggestRequest_EntityTypes_DEFAULT string\n\nfunc (p *SearchSuggestRequest) GetEntityTypes() (v string) {\n\tif !p.IsSetEntityTypes() {\n\t\treturn SearchSuggestRequest_EntityTypes_DEFAULT\n\t}\n\treturn *p.EntityTypes\n}\n\nvar SearchSuggestRequest_Base_DEFAULT *base.Base\n\nfunc (p *SearchSuggestRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SearchSuggestRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SearchSuggestRequest = map[int16]string{\n\t1:   \"Keyword\",\n\t2:   \"EntityType\",\n\t3:   \"PageNum\",\n\t4:   \"PageSize\",\n\t5:   \"EntityTypes\",\n\t255: \"Base\",\n}\n\nfunc (p *SearchSuggestRequest) IsSetKeyword() bool {\n\treturn p.Keyword != nil\n}\n\nfunc (p *SearchSuggestRequest) IsSetEntityType() bool {\n\treturn p.EntityType != nil\n}\n\nfunc (p *SearchSuggestRequest) IsSetPageNum() bool {\n\treturn p.PageNum != nil\n}\n\nfunc (p *SearchSuggestRequest) IsSetPageSize() bool {\n\treturn p.PageSize != nil\n}\n\nfunc (p *SearchSuggestRequest) IsSetEntityTypes() bool {\n\treturn p.EntityTypes != nil\n}\n\nfunc (p *SearchSuggestRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SearchSuggestRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SearchSuggestRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SearchSuggestRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *SearchSuggestRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.ProductEntityType(v)\n\t\t_field = &tmp\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *SearchSuggestRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PageNum = _field\n\treturn nil\n}\nfunc (p *SearchSuggestRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PageSize = _field\n\treturn nil\n}\nfunc (p *SearchSuggestRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EntityTypes = _field\n\treturn nil\n}\nfunc (p *SearchSuggestRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SearchSuggestRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SearchSuggestRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SearchSuggestRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKeyword() {\n\t\tif err = oprot.WriteFieldBegin(\"Keyword\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Keyword); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SearchSuggestRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityType() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.EntityType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SearchSuggestRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPageNum() {\n\t\tif err = oprot.WriteFieldBegin(\"PageNum\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PageNum); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SearchSuggestRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPageSize() {\n\t\tif err = oprot.WriteFieldBegin(\"PageSize\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PageSize); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SearchSuggestRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityTypes() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityTypes\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.EntityTypes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *SearchSuggestRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SearchSuggestRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SearchSuggestRequest(%+v)\", *p)\n\n}\n\ntype FavoriteProductResponse struct {\n\tCode            int32          `thrift:\"Code,1,required\" form:\"code,required\" json:\"code,required\"`\n\tMessage         string         `thrift:\"Message,2,required\" form:\"message,required\" json:\"message,required\"`\n\tIsFirstFavorite *bool          `thrift:\"IsFirstFavorite,3,optional\" form:\"is_first_favorite\" json:\"is_first_favorite,omitempty\"`\n\tBaseResp        *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewFavoriteProductResponse() *FavoriteProductResponse {\n\treturn &FavoriteProductResponse{}\n}\n\nfunc (p *FavoriteProductResponse) InitDefault() {\n}\n\nfunc (p *FavoriteProductResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *FavoriteProductResponse) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar FavoriteProductResponse_IsFirstFavorite_DEFAULT bool\n\nfunc (p *FavoriteProductResponse) GetIsFirstFavorite() (v bool) {\n\tif !p.IsSetIsFirstFavorite() {\n\t\treturn FavoriteProductResponse_IsFirstFavorite_DEFAULT\n\t}\n\treturn *p.IsFirstFavorite\n}\n\nvar FavoriteProductResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *FavoriteProductResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn FavoriteProductResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_FavoriteProductResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Message\",\n\t3:   \"IsFirstFavorite\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *FavoriteProductResponse) IsSetIsFirstFavorite() bool {\n\treturn p.IsFirstFavorite != nil\n}\n\nfunc (p *FavoriteProductResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *FavoriteProductResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMessage bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessage = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMessage {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FavoriteProductResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_FavoriteProductResponse[fieldId]))\n}\n\nfunc (p *FavoriteProductResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *FavoriteProductResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *FavoriteProductResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsFirstFavorite = _field\n\treturn nil\n}\nfunc (p *FavoriteProductResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *FavoriteProductResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FavoriteProductResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FavoriteProductResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FavoriteProductResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Message\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *FavoriteProductResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsFirstFavorite() {\n\t\tif err = oprot.WriteFieldBegin(\"IsFirstFavorite\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsFirstFavorite); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *FavoriteProductResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *FavoriteProductResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FavoriteProductResponse(%+v)\", *p)\n\n}\n\ntype FavoriteProductRequest struct {\n\tProductID  *int64                           `thrift:\"ProductID,1,optional\" form:\"product_id\" json:\"product_id,string,omitempty\"`\n\tEntityType product_common.ProductEntityType `thrift:\"EntityType,2,required\" form:\"entity_type,required\" json:\"entity_type,required\"`\n\tIsCancel   *bool                            `thrift:\"IsCancel,3,optional\" form:\"is_cancel\" json:\"is_cancel,omitempty\"`\n\tEntityID   *int64                           `thrift:\"EntityID,4,optional\" form:\"entity_id\" json:\"entity_id,string,omitempty\"`\n\tTopicID    *int64                           `thrift:\"TopicID,5,optional\" form:\"topic_id\" json:\"topic_id,string,omitempty\"`\n\tCookie     *string                          `thrift:\"Cookie,100,optional\" jsonlog:\"-\" json:\"-\" form:\"Cookie\" query:\"Cookie\"`\n\tBase       *base.Base                       `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewFavoriteProductRequest() *FavoriteProductRequest {\n\treturn &FavoriteProductRequest{}\n}\n\nfunc (p *FavoriteProductRequest) InitDefault() {\n}\n\nvar FavoriteProductRequest_ProductID_DEFAULT int64\n\nfunc (p *FavoriteProductRequest) GetProductID() (v int64) {\n\tif !p.IsSetProductID() {\n\t\treturn FavoriteProductRequest_ProductID_DEFAULT\n\t}\n\treturn *p.ProductID\n}\n\nfunc (p *FavoriteProductRequest) GetEntityType() (v product_common.ProductEntityType) {\n\treturn p.EntityType\n}\n\nvar FavoriteProductRequest_IsCancel_DEFAULT bool\n\nfunc (p *FavoriteProductRequest) GetIsCancel() (v bool) {\n\tif !p.IsSetIsCancel() {\n\t\treturn FavoriteProductRequest_IsCancel_DEFAULT\n\t}\n\treturn *p.IsCancel\n}\n\nvar FavoriteProductRequest_EntityID_DEFAULT int64\n\nfunc (p *FavoriteProductRequest) GetEntityID() (v int64) {\n\tif !p.IsSetEntityID() {\n\t\treturn FavoriteProductRequest_EntityID_DEFAULT\n\t}\n\treturn *p.EntityID\n}\n\nvar FavoriteProductRequest_TopicID_DEFAULT int64\n\nfunc (p *FavoriteProductRequest) GetTopicID() (v int64) {\n\tif !p.IsSetTopicID() {\n\t\treturn FavoriteProductRequest_TopicID_DEFAULT\n\t}\n\treturn *p.TopicID\n}\n\nvar FavoriteProductRequest_Cookie_DEFAULT string\n\nfunc (p *FavoriteProductRequest) GetCookie() (v string) {\n\tif !p.IsSetCookie() {\n\t\treturn FavoriteProductRequest_Cookie_DEFAULT\n\t}\n\treturn *p.Cookie\n}\n\nvar FavoriteProductRequest_Base_DEFAULT *base.Base\n\nfunc (p *FavoriteProductRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn FavoriteProductRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_FavoriteProductRequest = map[int16]string{\n\t1:   \"ProductID\",\n\t2:   \"EntityType\",\n\t3:   \"IsCancel\",\n\t4:   \"EntityID\",\n\t5:   \"TopicID\",\n\t100: \"Cookie\",\n\t255: \"Base\",\n}\n\nfunc (p *FavoriteProductRequest) IsSetProductID() bool {\n\treturn p.ProductID != nil\n}\n\nfunc (p *FavoriteProductRequest) IsSetIsCancel() bool {\n\treturn p.IsCancel != nil\n}\n\nfunc (p *FavoriteProductRequest) IsSetEntityID() bool {\n\treturn p.EntityID != nil\n}\n\nfunc (p *FavoriteProductRequest) IsSetTopicID() bool {\n\treturn p.TopicID != nil\n}\n\nfunc (p *FavoriteProductRequest) IsSetCookie() bool {\n\treturn p.Cookie != nil\n}\n\nfunc (p *FavoriteProductRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *FavoriteProductRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetEntityType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetEntityType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 100:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField100(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetEntityType {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FavoriteProductRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_FavoriteProductRequest[fieldId]))\n}\n\nfunc (p *FavoriteProductRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProductID = _field\n\treturn nil\n}\nfunc (p *FavoriteProductRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.ProductEntityType(v)\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *FavoriteProductRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsCancel = _field\n\treturn nil\n}\nfunc (p *FavoriteProductRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EntityID = _field\n\treturn nil\n}\nfunc (p *FavoriteProductRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TopicID = _field\n\treturn nil\n}\nfunc (p *FavoriteProductRequest) ReadField100(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Cookie = _field\n\treturn nil\n}\nfunc (p *FavoriteProductRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *FavoriteProductRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FavoriteProductRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField100(oprot); err != nil {\n\t\t\tfieldId = 100\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FavoriteProductRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProductID() {\n\t\tif err = oprot.WriteFieldBegin(\"ProductID\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ProductID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FavoriteProductRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.EntityType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *FavoriteProductRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsCancel() {\n\t\tif err = oprot.WriteFieldBegin(\"IsCancel\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsCancel); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *FavoriteProductRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityID() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityID\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EntityID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *FavoriteProductRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTopicID() {\n\t\tif err = oprot.WriteFieldBegin(\"TopicID\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.TopicID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *FavoriteProductRequest) writeField100(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCookie() {\n\t\tif err = oprot.WriteFieldBegin(\"Cookie\", thrift.STRING, 100); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Cookie); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 100 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 100 end error: \", p), err)\n}\nfunc (p *FavoriteProductRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *FavoriteProductRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FavoriteProductRequest(%+v)\", *p)\n\n}\n\ntype GetProductListRequest struct {\n\tEntityType *product_common.ProductEntityType `thrift:\"EntityType,1,optional\" form:\"entity_type\" json:\"entity_type,omitempty\"`\n\tCategoryID *int64                            `thrift:\"CategoryID,2,optional\" json:\"CategoryID,string,omitempty\" query:\"category_id\"`\n\tSortType   product_common.SortType           `thrift:\"SortType,3,required\" form:\"sort_type,required\" json:\"sort_type,required\"`\n\tPageNum    int32                             `thrift:\"PageNum,4,required\" form:\"page_num,required\" json:\"page_num,required\"`\n\tPageSize   int32                             `thrift:\"PageSize,5,required\" form:\"page_size,required\" json:\"page_size,required\"`\n\t// non-empty search\n\tKeyword *string `thrift:\"Keyword,6,optional\" form:\"keyword\" json:\"keyword,omitempty\"`\n\t// Open mode: 1-open source; 2-closed source,//open mode\n\tPublishMode *product_common.ProductPublishMode `thrift:\"PublishMode,7,optional\" form:\"publish_mode\" json:\"publish_mode,omitempty\"`\n\t// publish platforms\n\tPublishPlatformIDs []int64 `thrift:\"PublishPlatformIDs,8,optional\" form:\"PublishPlatformIDs\" json:\"PublishPlatformIDs,string,omitempty\" query:\"PublishPlatformIDs\"`\n\t// List tab; 1 - Operational recommendations\n\tSource *product_common.ProductListSource `thrift:\"Source,9,optional\" form:\"source\" json:\"source,omitempty\"`\n\t// Personalized recommendation scenarios, enter current entity information, and obtain recommended products\n\tCurrentEntityType *product_common.ProductEntityType `thrift:\"CurrentEntityType,10,optional\" form:\"current_entity_type\" json:\"current_entity_type,omitempty\"`\n\t// Current entity ID\n\tCurrentEntityID *int64 `thrift:\"CurrentEntityID,11,optional\" json:\"CurrentEntityID,string,omitempty\" query:\"current_entity_id\"`\n\t// Current entity version\n\tCurrentEntityVersion *int64 `thrift:\"CurrentEntityVersion,12,optional\" json:\"CurrentEntityVersion,string,omitempty\" query:\"current_entity_version\"`\n\t// thematic scenario\n\tTopicID        *int64  `thrift:\"TopicID,13,optional\" json:\"TopicID,string,omitempty\" query:\"topic_id\"`\n\tPreviewTopicID *string `thrift:\"PreviewTopicID,14,optional\" form:\"preview_topic_id\" json:\"preview_topic_id,omitempty\"`\n\t// Do you need to filter out official products?\n\tIsOfficial *bool `thrift:\"IsOfficial,15,optional\" form:\"is_official\" json:\"is_official,omitempty\"`\n\t// Do you need to return additional information?\n\tNeedExtra *bool `thrift:\"NeedExtra,16,optional\" form:\"need_extra\" json:\"need_extra,omitempty\"`\n\t// List of product types, use this parameter first, followed by EntityType\n\tEntityTypes []product_common.ProductEntityType `thrift:\"EntityTypes,17,optional\" form:\"entity_types\" json:\"entity_types,omitempty\"`\n\t// True = filter for free; false = filter for paid; if you don't pass it, you won't distinguish between free and paid.\n\tIsFree *bool `thrift:\"IsFree,18,optional\" form:\"is_free\" json:\"is_free,omitempty\"`\n\t// plugin type\n\tPluginType *product_common.PluginType `thrift:\"PluginType,19,optional\" form:\"plugin_type\" json:\"plugin_type,omitempty\"`\n\tClientIP   *string                    `thrift:\"ClientIP,101,optional\" header:\"Tt-Agw-Client-Ip\" json:\"ClientIP,omitempty\"`\n\tBase       *base.Base                 `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetProductListRequest() *GetProductListRequest {\n\treturn &GetProductListRequest{}\n}\n\nfunc (p *GetProductListRequest) InitDefault() {\n}\n\nvar GetProductListRequest_EntityType_DEFAULT product_common.ProductEntityType\n\nfunc (p *GetProductListRequest) GetEntityType() (v product_common.ProductEntityType) {\n\tif !p.IsSetEntityType() {\n\t\treturn GetProductListRequest_EntityType_DEFAULT\n\t}\n\treturn *p.EntityType\n}\n\nvar GetProductListRequest_CategoryID_DEFAULT int64\n\nfunc (p *GetProductListRequest) GetCategoryID() (v int64) {\n\tif !p.IsSetCategoryID() {\n\t\treturn GetProductListRequest_CategoryID_DEFAULT\n\t}\n\treturn *p.CategoryID\n}\n\nfunc (p *GetProductListRequest) GetSortType() (v product_common.SortType) {\n\treturn p.SortType\n}\n\nfunc (p *GetProductListRequest) GetPageNum() (v int32) {\n\treturn p.PageNum\n}\n\nfunc (p *GetProductListRequest) GetPageSize() (v int32) {\n\treturn p.PageSize\n}\n\nvar GetProductListRequest_Keyword_DEFAULT string\n\nfunc (p *GetProductListRequest) GetKeyword() (v string) {\n\tif !p.IsSetKeyword() {\n\t\treturn GetProductListRequest_Keyword_DEFAULT\n\t}\n\treturn *p.Keyword\n}\n\nvar GetProductListRequest_PublishMode_DEFAULT product_common.ProductPublishMode\n\nfunc (p *GetProductListRequest) GetPublishMode() (v product_common.ProductPublishMode) {\n\tif !p.IsSetPublishMode() {\n\t\treturn GetProductListRequest_PublishMode_DEFAULT\n\t}\n\treturn *p.PublishMode\n}\n\nvar GetProductListRequest_PublishPlatformIDs_DEFAULT []int64\n\nfunc (p *GetProductListRequest) GetPublishPlatformIDs() (v []int64) {\n\tif !p.IsSetPublishPlatformIDs() {\n\t\treturn GetProductListRequest_PublishPlatformIDs_DEFAULT\n\t}\n\treturn p.PublishPlatformIDs\n}\n\nvar GetProductListRequest_Source_DEFAULT product_common.ProductListSource\n\nfunc (p *GetProductListRequest) GetSource() (v product_common.ProductListSource) {\n\tif !p.IsSetSource() {\n\t\treturn GetProductListRequest_Source_DEFAULT\n\t}\n\treturn *p.Source\n}\n\nvar GetProductListRequest_CurrentEntityType_DEFAULT product_common.ProductEntityType\n\nfunc (p *GetProductListRequest) GetCurrentEntityType() (v product_common.ProductEntityType) {\n\tif !p.IsSetCurrentEntityType() {\n\t\treturn GetProductListRequest_CurrentEntityType_DEFAULT\n\t}\n\treturn *p.CurrentEntityType\n}\n\nvar GetProductListRequest_CurrentEntityID_DEFAULT int64\n\nfunc (p *GetProductListRequest) GetCurrentEntityID() (v int64) {\n\tif !p.IsSetCurrentEntityID() {\n\t\treturn GetProductListRequest_CurrentEntityID_DEFAULT\n\t}\n\treturn *p.CurrentEntityID\n}\n\nvar GetProductListRequest_CurrentEntityVersion_DEFAULT int64\n\nfunc (p *GetProductListRequest) GetCurrentEntityVersion() (v int64) {\n\tif !p.IsSetCurrentEntityVersion() {\n\t\treturn GetProductListRequest_CurrentEntityVersion_DEFAULT\n\t}\n\treturn *p.CurrentEntityVersion\n}\n\nvar GetProductListRequest_TopicID_DEFAULT int64\n\nfunc (p *GetProductListRequest) GetTopicID() (v int64) {\n\tif !p.IsSetTopicID() {\n\t\treturn GetProductListRequest_TopicID_DEFAULT\n\t}\n\treturn *p.TopicID\n}\n\nvar GetProductListRequest_PreviewTopicID_DEFAULT string\n\nfunc (p *GetProductListRequest) GetPreviewTopicID() (v string) {\n\tif !p.IsSetPreviewTopicID() {\n\t\treturn GetProductListRequest_PreviewTopicID_DEFAULT\n\t}\n\treturn *p.PreviewTopicID\n}\n\nvar GetProductListRequest_IsOfficial_DEFAULT bool\n\nfunc (p *GetProductListRequest) GetIsOfficial() (v bool) {\n\tif !p.IsSetIsOfficial() {\n\t\treturn GetProductListRequest_IsOfficial_DEFAULT\n\t}\n\treturn *p.IsOfficial\n}\n\nvar GetProductListRequest_NeedExtra_DEFAULT bool\n\nfunc (p *GetProductListRequest) GetNeedExtra() (v bool) {\n\tif !p.IsSetNeedExtra() {\n\t\treturn GetProductListRequest_NeedExtra_DEFAULT\n\t}\n\treturn *p.NeedExtra\n}\n\nvar GetProductListRequest_EntityTypes_DEFAULT []product_common.ProductEntityType\n\nfunc (p *GetProductListRequest) GetEntityTypes() (v []product_common.ProductEntityType) {\n\tif !p.IsSetEntityTypes() {\n\t\treturn GetProductListRequest_EntityTypes_DEFAULT\n\t}\n\treturn p.EntityTypes\n}\n\nvar GetProductListRequest_IsFree_DEFAULT bool\n\nfunc (p *GetProductListRequest) GetIsFree() (v bool) {\n\tif !p.IsSetIsFree() {\n\t\treturn GetProductListRequest_IsFree_DEFAULT\n\t}\n\treturn *p.IsFree\n}\n\nvar GetProductListRequest_PluginType_DEFAULT product_common.PluginType\n\nfunc (p *GetProductListRequest) GetPluginType() (v product_common.PluginType) {\n\tif !p.IsSetPluginType() {\n\t\treturn GetProductListRequest_PluginType_DEFAULT\n\t}\n\treturn *p.PluginType\n}\n\nvar GetProductListRequest_ClientIP_DEFAULT string\n\nfunc (p *GetProductListRequest) GetClientIP() (v string) {\n\tif !p.IsSetClientIP() {\n\t\treturn GetProductListRequest_ClientIP_DEFAULT\n\t}\n\treturn *p.ClientIP\n}\n\nvar GetProductListRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetProductListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetProductListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetProductListRequest = map[int16]string{\n\t1:   \"EntityType\",\n\t2:   \"CategoryID\",\n\t3:   \"SortType\",\n\t4:   \"PageNum\",\n\t5:   \"PageSize\",\n\t6:   \"Keyword\",\n\t7:   \"PublishMode\",\n\t8:   \"PublishPlatformIDs\",\n\t9:   \"Source\",\n\t10:  \"CurrentEntityType\",\n\t11:  \"CurrentEntityID\",\n\t12:  \"CurrentEntityVersion\",\n\t13:  \"TopicID\",\n\t14:  \"PreviewTopicID\",\n\t15:  \"IsOfficial\",\n\t16:  \"NeedExtra\",\n\t17:  \"EntityTypes\",\n\t18:  \"IsFree\",\n\t19:  \"PluginType\",\n\t101: \"ClientIP\",\n\t255: \"Base\",\n}\n\nfunc (p *GetProductListRequest) IsSetEntityType() bool {\n\treturn p.EntityType != nil\n}\n\nfunc (p *GetProductListRequest) IsSetCategoryID() bool {\n\treturn p.CategoryID != nil\n}\n\nfunc (p *GetProductListRequest) IsSetKeyword() bool {\n\treturn p.Keyword != nil\n}\n\nfunc (p *GetProductListRequest) IsSetPublishMode() bool {\n\treturn p.PublishMode != nil\n}\n\nfunc (p *GetProductListRequest) IsSetPublishPlatformIDs() bool {\n\treturn p.PublishPlatformIDs != nil\n}\n\nfunc (p *GetProductListRequest) IsSetSource() bool {\n\treturn p.Source != nil\n}\n\nfunc (p *GetProductListRequest) IsSetCurrentEntityType() bool {\n\treturn p.CurrentEntityType != nil\n}\n\nfunc (p *GetProductListRequest) IsSetCurrentEntityID() bool {\n\treturn p.CurrentEntityID != nil\n}\n\nfunc (p *GetProductListRequest) IsSetCurrentEntityVersion() bool {\n\treturn p.CurrentEntityVersion != nil\n}\n\nfunc (p *GetProductListRequest) IsSetTopicID() bool {\n\treturn p.TopicID != nil\n}\n\nfunc (p *GetProductListRequest) IsSetPreviewTopicID() bool {\n\treturn p.PreviewTopicID != nil\n}\n\nfunc (p *GetProductListRequest) IsSetIsOfficial() bool {\n\treturn p.IsOfficial != nil\n}\n\nfunc (p *GetProductListRequest) IsSetNeedExtra() bool {\n\treturn p.NeedExtra != nil\n}\n\nfunc (p *GetProductListRequest) IsSetEntityTypes() bool {\n\treturn p.EntityTypes != nil\n}\n\nfunc (p *GetProductListRequest) IsSetIsFree() bool {\n\treturn p.IsFree != nil\n}\n\nfunc (p *GetProductListRequest) IsSetPluginType() bool {\n\treturn p.PluginType != nil\n}\n\nfunc (p *GetProductListRequest) IsSetClientIP() bool {\n\treturn p.ClientIP != nil\n}\n\nfunc (p *GetProductListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetProductListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSortType bool = false\n\tvar issetPageNum bool = false\n\tvar issetPageSize bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSortType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPageNum = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPageSize = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 101:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField101(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSortType {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetPageNum {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetPageSize {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetProductListRequest[fieldId]))\n}\n\nfunc (p *GetProductListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.ProductEntityType(v)\n\t\t_field = &tmp\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CategoryID = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.SortType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.SortType(v)\n\t}\n\tp.SortType = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageNum = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageSize = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.ProductPublishMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.ProductPublishMode(v)\n\t\t_field = &tmp\n\t}\n\tp.PublishMode = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PublishPlatformIDs = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.ProductListSource\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.ProductListSource(v)\n\t\t_field = &tmp\n\t}\n\tp.Source = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.ProductEntityType(v)\n\t\t_field = &tmp\n\t}\n\tp.CurrentEntityType = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CurrentEntityID = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CurrentEntityVersion = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TopicID = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PreviewTopicID = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsOfficial = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NeedExtra = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField17(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]product_common.ProductEntityType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem product_common.ProductEntityType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = product_common.ProductEntityType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.EntityTypes = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsFree = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.PluginType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.PluginType(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginType = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField101(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ClientIP = _field\n\treturn nil\n}\nfunc (p *GetProductListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetProductListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField101(oprot); err != nil {\n\t\t\tfieldId = 101\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityType() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.EntityType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCategoryID() {\n\t\tif err = oprot.WriteFieldBegin(\"CategoryID\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CategoryID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SortType\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SortType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PageNum\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.PageNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PageSize\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.PageSize); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKeyword() {\n\t\tif err = oprot.WriteFieldBegin(\"Keyword\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Keyword); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishMode() {\n\t\tif err = oprot.WriteFieldBegin(\"PublishMode\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PublishMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishPlatformIDs() {\n\t\tif err = oprot.WriteFieldBegin(\"PublishPlatformIDs\", thrift.LIST, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I64, len(p.PublishPlatformIDs)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PublishPlatformIDs {\n\t\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSource() {\n\t\tif err = oprot.WriteFieldBegin(\"Source\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Source)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCurrentEntityType() {\n\t\tif err = oprot.WriteFieldBegin(\"CurrentEntityType\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.CurrentEntityType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCurrentEntityID() {\n\t\tif err = oprot.WriteFieldBegin(\"CurrentEntityID\", thrift.I64, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CurrentEntityID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCurrentEntityVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"CurrentEntityVersion\", thrift.I64, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CurrentEntityVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTopicID() {\n\t\tif err = oprot.WriteFieldBegin(\"TopicID\", thrift.I64, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.TopicID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPreviewTopicID() {\n\t\tif err = oprot.WriteFieldBegin(\"PreviewTopicID\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PreviewTopicID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsOfficial() {\n\t\tif err = oprot.WriteFieldBegin(\"IsOfficial\", thrift.BOOL, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsOfficial); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"NeedExtra\", thrift.BOOL, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NeedExtra); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityTypes() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityTypes\", thrift.LIST, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.EntityTypes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.EntityTypes {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsFree() {\n\t\tif err = oprot.WriteFieldBegin(\"IsFree\", thrift.BOOL, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsFree); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginType() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginType\", thrift.I32, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField101(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetClientIP() {\n\t\tif err = oprot.WriteFieldBegin(\"ClientIP\", thrift.STRING, 101); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ClientIP); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 101 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 101 end error: \", p), err)\n}\nfunc (p *GetProductListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProductListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductListRequest(%+v)\", *p)\n\n}\n\ntype GetProductListResponse struct {\n\tCode     int32               `thrift:\"Code,1,required\" form:\"code,required\" json:\"code,required\"`\n\tMessage  string              `thrift:\"Message,2,required\" form:\"message,required\" json:\"message,required\"`\n\tData     *GetProductListData `thrift:\"Data,3\" form:\"data\" json:\"data\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetProductListResponse() *GetProductListResponse {\n\treturn &GetProductListResponse{}\n}\n\nfunc (p *GetProductListResponse) InitDefault() {\n}\n\nfunc (p *GetProductListResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetProductListResponse) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar GetProductListResponse_Data_DEFAULT *GetProductListData\n\nfunc (p *GetProductListResponse) GetData() (v *GetProductListData) {\n\tif !p.IsSetData() {\n\t\treturn GetProductListResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetProductListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetProductListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetProductListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetProductListResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Message\",\n\t3:   \"Data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetProductListResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetProductListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetProductListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMessage bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessage = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMessage {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetProductListResponse[fieldId]))\n}\n\nfunc (p *GetProductListResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetProductListResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *GetProductListResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewGetProductListData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetProductListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetProductListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductListResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Message\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProductListResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProductListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProductListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductListResponse(%+v)\", *p)\n\n}\n\ntype GetProductListData struct {\n\tProducts []*ProductInfo `thrift:\"Products,1,optional\" form:\"products\" json:\"products,omitempty\"`\n\tHasMore  bool           `thrift:\"HasMore,2\" form:\"has_more\" json:\"has_more\"`\n\tTotal    int32          `thrift:\"Total,3\" form:\"total\" json:\"total\"`\n}\n\nfunc NewGetProductListData() *GetProductListData {\n\treturn &GetProductListData{}\n}\n\nfunc (p *GetProductListData) InitDefault() {\n}\n\nvar GetProductListData_Products_DEFAULT []*ProductInfo\n\nfunc (p *GetProductListData) GetProducts() (v []*ProductInfo) {\n\tif !p.IsSetProducts() {\n\t\treturn GetProductListData_Products_DEFAULT\n\t}\n\treturn p.Products\n}\n\nfunc (p *GetProductListData) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nfunc (p *GetProductListData) GetTotal() (v int32) {\n\treturn p.Total\n}\n\nvar fieldIDToName_GetProductListData = map[int16]string{\n\t1: \"Products\",\n\t2: \"HasMore\",\n\t3: \"Total\",\n}\n\nfunc (p *GetProductListData) IsSetProducts() bool {\n\treturn p.Products != nil\n}\n\nfunc (p *GetProductListData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductListData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetProductListData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProductInfo, 0, size)\n\tvalues := make([]ProductInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Products = _field\n\treturn nil\n}\nfunc (p *GetProductListData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *GetProductListData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\n\nfunc (p *GetProductListData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductListData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductListData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProducts() {\n\t\tif err = oprot.WriteFieldBegin(\"Products\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Products)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Products {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductListData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"HasMore\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProductListData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Total\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *GetProductListData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductListData(%+v)\", *p)\n\n}\n\ntype ProductInfo struct {\n\tMetaInfo          *ProductMetaInfo                  `thrift:\"MetaInfo,1,required\" form:\"meta_info,required\" json:\"meta_info,required\"`\n\tUserBehavior      *UserBehaviorInfo                 `thrift:\"UserBehavior,2,optional\" form:\"user_behavior\" json:\"user_behavior,omitempty\"`\n\tCommercialSetting *product_common.CommercialSetting `thrift:\"CommercialSetting,3,optional\" form:\"commercial_setting\" json:\"commercial_setting,omitempty\"`\n\tPluginExtra       *PluginExtraInfo                  `thrift:\"PluginExtra,20,optional\" form:\"plugin_extra\" json:\"plugin_extra,omitempty\"`\n\tBotExtra          *BotExtraInfo                     `thrift:\"BotExtra,21,optional\" form:\"bot_extra\" json:\"bot_extra,omitempty\"`\n\tWorkflowExtra     *WorkflowExtraInfo                `thrift:\"WorkflowExtra,22,optional\" form:\"workflow_extra\" json:\"workflow_extra,omitempty\"`\n\tSocialSceneExtra  *SocialSceneExtraInfo             `thrift:\"SocialSceneExtra,23,optional\" form:\"social_scene_extra\" json:\"social_scene_extra,omitempty\"`\n\tProjectExtra      *ProjectExtraInfo                 `thrift:\"ProjectExtra,24,optional\" form:\"project_extra\" json:\"project_extra,omitempty\"`\n}\n\nfunc NewProductInfo() *ProductInfo {\n\treturn &ProductInfo{}\n}\n\nfunc (p *ProductInfo) InitDefault() {\n}\n\nvar ProductInfo_MetaInfo_DEFAULT *ProductMetaInfo\n\nfunc (p *ProductInfo) GetMetaInfo() (v *ProductMetaInfo) {\n\tif !p.IsSetMetaInfo() {\n\t\treturn ProductInfo_MetaInfo_DEFAULT\n\t}\n\treturn p.MetaInfo\n}\n\nvar ProductInfo_UserBehavior_DEFAULT *UserBehaviorInfo\n\nfunc (p *ProductInfo) GetUserBehavior() (v *UserBehaviorInfo) {\n\tif !p.IsSetUserBehavior() {\n\t\treturn ProductInfo_UserBehavior_DEFAULT\n\t}\n\treturn p.UserBehavior\n}\n\nvar ProductInfo_CommercialSetting_DEFAULT *product_common.CommercialSetting\n\nfunc (p *ProductInfo) GetCommercialSetting() (v *product_common.CommercialSetting) {\n\tif !p.IsSetCommercialSetting() {\n\t\treturn ProductInfo_CommercialSetting_DEFAULT\n\t}\n\treturn p.CommercialSetting\n}\n\nvar ProductInfo_PluginExtra_DEFAULT *PluginExtraInfo\n\nfunc (p *ProductInfo) GetPluginExtra() (v *PluginExtraInfo) {\n\tif !p.IsSetPluginExtra() {\n\t\treturn ProductInfo_PluginExtra_DEFAULT\n\t}\n\treturn p.PluginExtra\n}\n\nvar ProductInfo_BotExtra_DEFAULT *BotExtraInfo\n\nfunc (p *ProductInfo) GetBotExtra() (v *BotExtraInfo) {\n\tif !p.IsSetBotExtra() {\n\t\treturn ProductInfo_BotExtra_DEFAULT\n\t}\n\treturn p.BotExtra\n}\n\nvar ProductInfo_WorkflowExtra_DEFAULT *WorkflowExtraInfo\n\nfunc (p *ProductInfo) GetWorkflowExtra() (v *WorkflowExtraInfo) {\n\tif !p.IsSetWorkflowExtra() {\n\t\treturn ProductInfo_WorkflowExtra_DEFAULT\n\t}\n\treturn p.WorkflowExtra\n}\n\nvar ProductInfo_SocialSceneExtra_DEFAULT *SocialSceneExtraInfo\n\nfunc (p *ProductInfo) GetSocialSceneExtra() (v *SocialSceneExtraInfo) {\n\tif !p.IsSetSocialSceneExtra() {\n\t\treturn ProductInfo_SocialSceneExtra_DEFAULT\n\t}\n\treturn p.SocialSceneExtra\n}\n\nvar ProductInfo_ProjectExtra_DEFAULT *ProjectExtraInfo\n\nfunc (p *ProductInfo) GetProjectExtra() (v *ProjectExtraInfo) {\n\tif !p.IsSetProjectExtra() {\n\t\treturn ProductInfo_ProjectExtra_DEFAULT\n\t}\n\treturn p.ProjectExtra\n}\n\nvar fieldIDToName_ProductInfo = map[int16]string{\n\t1:  \"MetaInfo\",\n\t2:  \"UserBehavior\",\n\t3:  \"CommercialSetting\",\n\t20: \"PluginExtra\",\n\t21: \"BotExtra\",\n\t22: \"WorkflowExtra\",\n\t23: \"SocialSceneExtra\",\n\t24: \"ProjectExtra\",\n}\n\nfunc (p *ProductInfo) IsSetMetaInfo() bool {\n\treturn p.MetaInfo != nil\n}\n\nfunc (p *ProductInfo) IsSetUserBehavior() bool {\n\treturn p.UserBehavior != nil\n}\n\nfunc (p *ProductInfo) IsSetCommercialSetting() bool {\n\treturn p.CommercialSetting != nil\n}\n\nfunc (p *ProductInfo) IsSetPluginExtra() bool {\n\treturn p.PluginExtra != nil\n}\n\nfunc (p *ProductInfo) IsSetBotExtra() bool {\n\treturn p.BotExtra != nil\n}\n\nfunc (p *ProductInfo) IsSetWorkflowExtra() bool {\n\treturn p.WorkflowExtra != nil\n}\n\nfunc (p *ProductInfo) IsSetSocialSceneExtra() bool {\n\treturn p.SocialSceneExtra != nil\n}\n\nfunc (p *ProductInfo) IsSetProjectExtra() bool {\n\treturn p.ProjectExtra != nil\n}\n\nfunc (p *ProductInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetMetaInfo bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMetaInfo = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetMetaInfo {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProductInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ProductInfo[fieldId]))\n}\n\nfunc (p *ProductInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewProductMetaInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.MetaInfo = _field\n\treturn nil\n}\nfunc (p *ProductInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewUserBehaviorInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserBehavior = _field\n\treturn nil\n}\nfunc (p *ProductInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_field := product_common.NewCommercialSetting()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CommercialSetting = _field\n\treturn nil\n}\nfunc (p *ProductInfo) ReadField20(iprot thrift.TProtocol) error {\n\t_field := NewPluginExtraInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PluginExtra = _field\n\treturn nil\n}\nfunc (p *ProductInfo) ReadField21(iprot thrift.TProtocol) error {\n\t_field := NewBotExtraInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotExtra = _field\n\treturn nil\n}\nfunc (p *ProductInfo) ReadField22(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowExtraInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowExtra = _field\n\treturn nil\n}\nfunc (p *ProductInfo) ReadField23(iprot thrift.TProtocol) error {\n\t_field := NewSocialSceneExtraInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SocialSceneExtra = _field\n\treturn nil\n}\nfunc (p *ProductInfo) ReadField24(iprot thrift.TProtocol) error {\n\t_field := NewProjectExtraInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ProjectExtra = _field\n\treturn nil\n}\n\nfunc (p *ProductInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProductInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProductInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"MetaInfo\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.MetaInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProductInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserBehavior() {\n\t\tif err = oprot.WriteFieldBegin(\"UserBehavior\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.UserBehavior.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ProductInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommercialSetting() {\n\t\tif err = oprot.WriteFieldBegin(\"CommercialSetting\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.CommercialSetting.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ProductInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginExtra\", thrift.STRUCT, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.PluginExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *ProductInfo) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"BotExtra\", thrift.STRUCT, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BotExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *ProductInfo) writeField22(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"WorkflowExtra\", thrift.STRUCT, 22); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.WorkflowExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *ProductInfo) writeField23(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSocialSceneExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"SocialSceneExtra\", thrift.STRUCT, 23); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SocialSceneExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *ProductInfo) writeField24(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"ProjectExtra\", thrift.STRUCT, 24); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ProjectExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\n\nfunc (p *ProductInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProductInfo(%+v)\", *p)\n\n}\n\ntype SellerInfo struct {\n\tID        int64  `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\tName      string `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\tAvatarURL string `thrift:\"AvatarURL,3\" form:\"avatar_url\" json:\"avatar_url\"`\n}\n\nfunc NewSellerInfo() *SellerInfo {\n\treturn &SellerInfo{}\n}\n\nfunc (p *SellerInfo) InitDefault() {\n}\n\nfunc (p *SellerInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *SellerInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *SellerInfo) GetAvatarURL() (v string) {\n\treturn p.AvatarURL\n}\n\nvar fieldIDToName_SellerInfo = map[int16]string{\n\t1: \"ID\",\n\t2: \"Name\",\n\t3: \"AvatarURL\",\n}\n\nfunc (p *SellerInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SellerInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SellerInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *SellerInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *SellerInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AvatarURL = _field\n\treturn nil\n}\n\nfunc (p *SellerInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SellerInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SellerInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SellerInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SellerInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AvatarURL\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AvatarURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *SellerInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SellerInfo(%+v)\", *p)\n\n}\n\ntype ProductCategory struct {\n\tID            int64  `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\tName          string `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\tIconURL       string `thrift:\"IconURL,3\" form:\"icon_url\" json:\"icon_url\"`\n\tActiveIconURL string `thrift:\"ActiveIconURL,4\" form:\"active_icon_url\" json:\"active_icon_url\"`\n\tIndex         int32  `thrift:\"Index,5\" form:\"index\" json:\"index\"`\n\tCount         int32  `thrift:\"Count,6\" form:\"count\" json:\"count\"`\n}\n\nfunc NewProductCategory() *ProductCategory {\n\treturn &ProductCategory{}\n}\n\nfunc (p *ProductCategory) InitDefault() {\n}\n\nfunc (p *ProductCategory) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *ProductCategory) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ProductCategory) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *ProductCategory) GetActiveIconURL() (v string) {\n\treturn p.ActiveIconURL\n}\n\nfunc (p *ProductCategory) GetIndex() (v int32) {\n\treturn p.Index\n}\n\nfunc (p *ProductCategory) GetCount() (v int32) {\n\treturn p.Count\n}\n\nvar fieldIDToName_ProductCategory = map[int16]string{\n\t1: \"ID\",\n\t2: \"Name\",\n\t3: \"IconURL\",\n\t4: \"ActiveIconURL\",\n\t5: \"Index\",\n\t6: \"Count\",\n}\n\nfunc (p *ProductCategory) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProductCategory[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProductCategory) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ProductCategory) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ProductCategory) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *ProductCategory) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ActiveIconURL = _field\n\treturn nil\n}\nfunc (p *ProductCategory) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Index = _field\n\treturn nil\n}\nfunc (p *ProductCategory) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Count = _field\n\treturn nil\n}\n\nfunc (p *ProductCategory) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProductCategory\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProductCategory) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProductCategory) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ProductCategory) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IconURL\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ProductCategory) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ActiveIconURL\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ActiveIconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ProductCategory) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Index\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Index); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ProductCategory) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Count\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Count); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *ProductCategory) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProductCategory(%+v)\", *p)\n\n}\n\ntype ProductLabel struct {\n\tName string `thrift:\"Name,1\" form:\"name\" json:\"name\"`\n}\n\nfunc NewProductLabel() *ProductLabel {\n\treturn &ProductLabel{}\n}\n\nfunc (p *ProductLabel) InitDefault() {\n}\n\nfunc (p *ProductLabel) GetName() (v string) {\n\treturn p.Name\n}\n\nvar fieldIDToName_ProductLabel = map[int16]string{\n\t1: \"Name\",\n}\n\nfunc (p *ProductLabel) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProductLabel[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProductLabel) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\n\nfunc (p *ProductLabel) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProductLabel\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProductLabel) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ProductLabel) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProductLabel(%+v)\", *p)\n\n}\n\ntype ProductMetaInfo struct {\n\tID int64 `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\t// Product/Template Name\n\tName string `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\t// Creature ID, determined by entity_type is the ID of the bot/plugin\n\tEntityID int64 `thrift:\"EntityID,3\" form:\"entity_id\" json:\"entity_id,string\"`\n\t// Product material type\n\tEntityType product_common.ProductEntityType `thrift:\"EntityType,4\" form:\"entity_type\" json:\"entity_type\"`\n\t// Product/template avatar\n\tIconURL string `thrift:\"IconURL,5\" form:\"icon_url\" json:\"icon_url\"`\n\t// Heat: Template heat = copy volume (used for card display/sorting); product heat = different products have independent calculation logic (only used for sorting) - the calculation of heat has a certain delay\n\tHeat          int32 `thrift:\"Heat,6\" form:\"heat\" json:\"heat\"`\n\tFavoriteCount int32 `thrift:\"FavoriteCount,7\" form:\"favorite_count\" json:\"favorite_count\"`\n\t// Obsolete, use UserInfo instead\n\tSeller *SellerInfo `thrift:\"Seller,8\" form:\"seller\" json:\"seller\"`\n\t// Product description\n\tDescription string                       `thrift:\"Description,9\" form:\"description\" json:\"description\"`\n\tListedAt    int64                        `thrift:\"ListedAt,10\" form:\"listed_at\" json:\"listed_at,string\"`\n\tStatus      product_common.ProductStatus `thrift:\"Status,11\" form:\"status\" json:\"status\"`\n\t// Product/template classification information\n\tCategory *ProductCategory `thrift:\"Category,12,optional\" form:\"category\" json:\"category,omitempty\"`\n\t// Whether to collect\n\tIsFavorited bool `thrift:\"IsFavorited,13\" form:\"is_favorited\" json:\"is_favorited\"`\n\tIsFree      bool `thrift:\"IsFree,14\" form:\"is_free\" json:\"is_free\"`\n\t// Template introduction/plugin introduction (currently in rich text format)\n\tReadme        string                   `thrift:\"Readme,15\" form:\"readme\" json:\"readme\"`\n\tEntityVersion *int64                   `thrift:\"EntityVersion,16,optional\" form:\"entity_version\" json:\"entity_version,string,omitempty\"`\n\tLabels        []*ProductLabel          `thrift:\"Labels,17,optional\" form:\"labels\" json:\"labels,omitempty\"`\n\tUserInfo      *product_common.UserInfo `thrift:\"UserInfo,18\" form:\"user_info\" json:\"user_info\"`\n\tMediumIconURL string                   `thrift:\"MediumIconURL,19\" form:\"medium_icon_url\" json:\"medium_icon_url\"`\n\tOriginIconURL string                   `thrift:\"OriginIconURL,20\" form:\"origin_icon_url\" json:\"origin_icon_url\"`\n\t// Template cover\n\tCovers []*product_common.ImageInfo `thrift:\"Covers,21,optional\" form:\"covers\" json:\"covers,omitempty\"`\n\t// Is the professional version specially available?\n\tIsProfessional *bool `thrift:\"IsProfessional,22,optional\" form:\"is_professional\" json:\"is_professional,omitempty\"`\n\t// Is it a template?\n\tIsTemplate bool `thrift:\"IsTemplate,23\" form:\"is_template\" json:\"is_template\"`\n\t// Is it an official product?\n\tIsOfficial bool `thrift:\"IsOfficial,24\" form:\"is_official\" json:\"is_official\"`\n\t// Price, currently only available in the template.\n\tPrice *marketplace_common.Price `thrift:\"Price,25,optional\" form:\"price\" json:\"price,omitempty\"`\n}\n\nfunc NewProductMetaInfo() *ProductMetaInfo {\n\treturn &ProductMetaInfo{}\n}\n\nfunc (p *ProductMetaInfo) InitDefault() {\n}\n\nfunc (p *ProductMetaInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *ProductMetaInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ProductMetaInfo) GetEntityID() (v int64) {\n\treturn p.EntityID\n}\n\nfunc (p *ProductMetaInfo) GetEntityType() (v product_common.ProductEntityType) {\n\treturn p.EntityType\n}\n\nfunc (p *ProductMetaInfo) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *ProductMetaInfo) GetHeat() (v int32) {\n\treturn p.Heat\n}\n\nfunc (p *ProductMetaInfo) GetFavoriteCount() (v int32) {\n\treturn p.FavoriteCount\n}\n\nvar ProductMetaInfo_Seller_DEFAULT *SellerInfo\n\nfunc (p *ProductMetaInfo) GetSeller() (v *SellerInfo) {\n\tif !p.IsSetSeller() {\n\t\treturn ProductMetaInfo_Seller_DEFAULT\n\t}\n\treturn p.Seller\n}\n\nfunc (p *ProductMetaInfo) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *ProductMetaInfo) GetListedAt() (v int64) {\n\treturn p.ListedAt\n}\n\nfunc (p *ProductMetaInfo) GetStatus() (v product_common.ProductStatus) {\n\treturn p.Status\n}\n\nvar ProductMetaInfo_Category_DEFAULT *ProductCategory\n\nfunc (p *ProductMetaInfo) GetCategory() (v *ProductCategory) {\n\tif !p.IsSetCategory() {\n\t\treturn ProductMetaInfo_Category_DEFAULT\n\t}\n\treturn p.Category\n}\n\nfunc (p *ProductMetaInfo) GetIsFavorited() (v bool) {\n\treturn p.IsFavorited\n}\n\nfunc (p *ProductMetaInfo) GetIsFree() (v bool) {\n\treturn p.IsFree\n}\n\nfunc (p *ProductMetaInfo) GetReadme() (v string) {\n\treturn p.Readme\n}\n\nvar ProductMetaInfo_EntityVersion_DEFAULT int64\n\nfunc (p *ProductMetaInfo) GetEntityVersion() (v int64) {\n\tif !p.IsSetEntityVersion() {\n\t\treturn ProductMetaInfo_EntityVersion_DEFAULT\n\t}\n\treturn *p.EntityVersion\n}\n\nvar ProductMetaInfo_Labels_DEFAULT []*ProductLabel\n\nfunc (p *ProductMetaInfo) GetLabels() (v []*ProductLabel) {\n\tif !p.IsSetLabels() {\n\t\treturn ProductMetaInfo_Labels_DEFAULT\n\t}\n\treturn p.Labels\n}\n\nvar ProductMetaInfo_UserInfo_DEFAULT *product_common.UserInfo\n\nfunc (p *ProductMetaInfo) GetUserInfo() (v *product_common.UserInfo) {\n\tif !p.IsSetUserInfo() {\n\t\treturn ProductMetaInfo_UserInfo_DEFAULT\n\t}\n\treturn p.UserInfo\n}\n\nfunc (p *ProductMetaInfo) GetMediumIconURL() (v string) {\n\treturn p.MediumIconURL\n}\n\nfunc (p *ProductMetaInfo) GetOriginIconURL() (v string) {\n\treturn p.OriginIconURL\n}\n\nvar ProductMetaInfo_Covers_DEFAULT []*product_common.ImageInfo\n\nfunc (p *ProductMetaInfo) GetCovers() (v []*product_common.ImageInfo) {\n\tif !p.IsSetCovers() {\n\t\treturn ProductMetaInfo_Covers_DEFAULT\n\t}\n\treturn p.Covers\n}\n\nvar ProductMetaInfo_IsProfessional_DEFAULT bool\n\nfunc (p *ProductMetaInfo) GetIsProfessional() (v bool) {\n\tif !p.IsSetIsProfessional() {\n\t\treturn ProductMetaInfo_IsProfessional_DEFAULT\n\t}\n\treturn *p.IsProfessional\n}\n\nfunc (p *ProductMetaInfo) GetIsTemplate() (v bool) {\n\treturn p.IsTemplate\n}\n\nfunc (p *ProductMetaInfo) GetIsOfficial() (v bool) {\n\treturn p.IsOfficial\n}\n\nvar ProductMetaInfo_Price_DEFAULT *marketplace_common.Price\n\nfunc (p *ProductMetaInfo) GetPrice() (v *marketplace_common.Price) {\n\tif !p.IsSetPrice() {\n\t\treturn ProductMetaInfo_Price_DEFAULT\n\t}\n\treturn p.Price\n}\n\nvar fieldIDToName_ProductMetaInfo = map[int16]string{\n\t1:  \"ID\",\n\t2:  \"Name\",\n\t3:  \"EntityID\",\n\t4:  \"EntityType\",\n\t5:  \"IconURL\",\n\t6:  \"Heat\",\n\t7:  \"FavoriteCount\",\n\t8:  \"Seller\",\n\t9:  \"Description\",\n\t10: \"ListedAt\",\n\t11: \"Status\",\n\t12: \"Category\",\n\t13: \"IsFavorited\",\n\t14: \"IsFree\",\n\t15: \"Readme\",\n\t16: \"EntityVersion\",\n\t17: \"Labels\",\n\t18: \"UserInfo\",\n\t19: \"MediumIconURL\",\n\t20: \"OriginIconURL\",\n\t21: \"Covers\",\n\t22: \"IsProfessional\",\n\t23: \"IsTemplate\",\n\t24: \"IsOfficial\",\n\t25: \"Price\",\n}\n\nfunc (p *ProductMetaInfo) IsSetSeller() bool {\n\treturn p.Seller != nil\n}\n\nfunc (p *ProductMetaInfo) IsSetCategory() bool {\n\treturn p.Category != nil\n}\n\nfunc (p *ProductMetaInfo) IsSetEntityVersion() bool {\n\treturn p.EntityVersion != nil\n}\n\nfunc (p *ProductMetaInfo) IsSetLabels() bool {\n\treturn p.Labels != nil\n}\n\nfunc (p *ProductMetaInfo) IsSetUserInfo() bool {\n\treturn p.UserInfo != nil\n}\n\nfunc (p *ProductMetaInfo) IsSetCovers() bool {\n\treturn p.Covers != nil\n}\n\nfunc (p *ProductMetaInfo) IsSetIsProfessional() bool {\n\treturn p.IsProfessional != nil\n}\n\nfunc (p *ProductMetaInfo) IsSetPrice() bool {\n\treturn p.Price != nil\n}\n\nfunc (p *ProductMetaInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 25:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField25(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProductMetaInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProductMetaInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EntityID = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.ProductEntityType(v)\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Heat = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FavoriteCount = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewSellerInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Seller = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ListedAt = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.ProductStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.ProductStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField12(iprot thrift.TProtocol) error {\n\t_field := NewProductCategory()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Category = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsFavorited = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsFree = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Readme = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EntityVersion = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField17(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProductLabel, 0, size)\n\tvalues := make([]ProductLabel, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Labels = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField18(iprot thrift.TProtocol) error {\n\t_field := product_common.NewUserInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserInfo = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MediumIconURL = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OriginIconURL = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField21(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*product_common.ImageInfo, 0, size)\n\tvalues := make([]product_common.ImageInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Covers = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsProfessional = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsTemplate = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField24(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsOfficial = _field\n\treturn nil\n}\nfunc (p *ProductMetaInfo) ReadField25(iprot thrift.TProtocol) error {\n\t_field := marketplace_common.NewPrice()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Price = _field\n\treturn nil\n}\n\nfunc (p *ProductMetaInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProductMetaInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField25(oprot); err != nil {\n\t\t\tfieldId = 25\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProductMetaInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityID\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.EntityID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.EntityType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IconURL\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Heat\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Heat); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"FavoriteCount\", thrift.I32, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.FavoriteCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Seller\", thrift.STRUCT, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Seller.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ListedAt\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ListedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Status\", thrift.I32, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCategory() {\n\t\tif err = oprot.WriteFieldBegin(\"Category\", thrift.STRUCT, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Category.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsFavorited\", thrift.BOOL, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsFavorited); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsFree\", thrift.BOOL, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsFree); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Readme\", thrift.STRING, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Readme); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityVersion\", thrift.I64, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EntityVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLabels() {\n\t\tif err = oprot.WriteFieldBegin(\"Labels\", thrift.LIST, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Labels)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Labels {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserInfo\", thrift.STRUCT, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.UserInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"MediumIconURL\", thrift.STRING, 19); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.MediumIconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"OriginIconURL\", thrift.STRING, 20); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.OriginIconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCovers() {\n\t\tif err = oprot.WriteFieldBegin(\"Covers\", thrift.LIST, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Covers)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Covers {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField22(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsProfessional() {\n\t\tif err = oprot.WriteFieldBegin(\"IsProfessional\", thrift.BOOL, 22); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsProfessional); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField23(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsTemplate\", thrift.BOOL, 23); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsTemplate); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField24(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsOfficial\", thrift.BOOL, 24); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsOfficial); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\nfunc (p *ProductMetaInfo) writeField25(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrice() {\n\t\tif err = oprot.WriteFieldBegin(\"Price\", thrift.STRUCT, 25); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Price.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 end error: \", p), err)\n}\n\nfunc (p *ProductMetaInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProductMetaInfo(%+v)\", *p)\n\n}\n\ntype UserBehaviorInfo struct {\n\t// The user homepage needs to return the most recently viewed/used product time.\n\tViewedAt *int64 `thrift:\"ViewedAt,1,optional\" form:\"viewed_at\" json:\"viewed_at,string,omitempty\"`\n\t// Recently used timestamp\n\tUsedAt *int64 `thrift:\"UsedAt,2,optional\" form:\"used_at\" json:\"used_at,string,omitempty\"`\n}\n\nfunc NewUserBehaviorInfo() *UserBehaviorInfo {\n\treturn &UserBehaviorInfo{}\n}\n\nfunc (p *UserBehaviorInfo) InitDefault() {\n}\n\nvar UserBehaviorInfo_ViewedAt_DEFAULT int64\n\nfunc (p *UserBehaviorInfo) GetViewedAt() (v int64) {\n\tif !p.IsSetViewedAt() {\n\t\treturn UserBehaviorInfo_ViewedAt_DEFAULT\n\t}\n\treturn *p.ViewedAt\n}\n\nvar UserBehaviorInfo_UsedAt_DEFAULT int64\n\nfunc (p *UserBehaviorInfo) GetUsedAt() (v int64) {\n\tif !p.IsSetUsedAt() {\n\t\treturn UserBehaviorInfo_UsedAt_DEFAULT\n\t}\n\treturn *p.UsedAt\n}\n\nvar fieldIDToName_UserBehaviorInfo = map[int16]string{\n\t1: \"ViewedAt\",\n\t2: \"UsedAt\",\n}\n\nfunc (p *UserBehaviorInfo) IsSetViewedAt() bool {\n\treturn p.ViewedAt != nil\n}\n\nfunc (p *UserBehaviorInfo) IsSetUsedAt() bool {\n\treturn p.UsedAt != nil\n}\n\nfunc (p *UserBehaviorInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserBehaviorInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserBehaviorInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ViewedAt = _field\n\treturn nil\n}\nfunc (p *UserBehaviorInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UsedAt = _field\n\treturn nil\n}\n\nfunc (p *UserBehaviorInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserBehaviorInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserBehaviorInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetViewedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"ViewedAt\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ViewedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserBehaviorInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUsedAt() {\n\t\tif err = oprot.WriteFieldBegin(\"UsedAt\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.UsedAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UserBehaviorInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserBehaviorInfo(%+v)\", *p)\n\n}\n\ntype PluginExtraInfo struct {\n\tTools         []*PluginToolInfo `thrift:\"Tools,1,optional\" form:\"tools\" json:\"tools,omitempty\"`\n\tTotalAPICount int32             `thrift:\"TotalAPICount,2\" form:\"total_api_count\" json:\"total_api_count\"`\n\tBotsUseCount  int32             `thrift:\"BotsUseCount,3\" form:\"bots_use_count\" json:\"bots_use_count\"`\n\t// Is there a privacy statement, currently only PublicGetProductDetail will take the data\n\tHasPrivacyStatement *bool `thrift:\"HasPrivacyStatement,4,optional\" form:\"has_private_statement\" json:\"has_private_statement,omitempty\"`\n\t// Privacy statement, currently only PublicGetProductDetail will access data\n\tPrivacyStatement       *string `thrift:\"PrivacyStatement,5,optional\" form:\"private_statement\" json:\"private_statement,omitempty\"`\n\tAssociatedBotsUseCount int32   `thrift:\"AssociatedBotsUseCount,6\" form:\"associated_bots_use_count\" json:\"associated_bots_use_count\"`\n\tIsPremium              bool    `thrift:\"IsPremium,7\" form:\"is_premium\" json:\"is_premium\"`\n\tIsOfficial             bool    `thrift:\"IsOfficial,8\" form:\"is_official\" json:\"is_official\"`\n\t// call amount\n\tCallAmount *int32 `thrift:\"CallAmount,9,optional\" form:\"call_amount\" json:\"call_amount,omitempty\"`\n\t// success rate\n\tSuccessRate *float64 `thrift:\"SuccessRate,10,optional\" form:\"success_rate\" json:\"success_rate,omitempty\"`\n\t// average execution time\n\tAvgExecTime   *float64                   `thrift:\"AvgExecTime,11,optional\" form:\"avg_exec_time\" json:\"avg_exec_time,omitempty\"`\n\tIsDefaultIcon *bool                      `thrift:\"IsDefaultIcon,12,optional\" form:\"is_default_icon\" json:\"is_default_icon,omitempty\"`\n\tSpaceID       *int64                     `thrift:\"SpaceID,13,optional\" form:\"space_id\" json:\"space_id,string,omitempty\"`\n\tMaterialID    *int64                     `thrift:\"MaterialID,14,optional\" form:\"material_id\" json:\"material_id,string,omitempty\"`\n\tConnectors    []*PluginConnectorInfo     `thrift:\"Connectors,15\" form:\"connectors\" json:\"connectors\"`\n\tPluginType    *product_common.PluginType `thrift:\"PluginType,16,optional\" form:\"plugin_type\" json:\"plugin_type,omitempty\"`\n\t// for opencoze\n\tAuthMode    *PluginAuthMode `thrift:\"AuthMode,50,optional\" form:\"auth_mode\" json:\"auth_mode,omitempty\"`\n\tJumpSaasURL *string         `thrift:\"JumpSaasURL,51,optional\" form:\"jump_saas_url\" json:\"jump_saas_url,omitempty\"`\n}\n\nfunc NewPluginExtraInfo() *PluginExtraInfo {\n\treturn &PluginExtraInfo{}\n}\n\nfunc (p *PluginExtraInfo) InitDefault() {\n}\n\nvar PluginExtraInfo_Tools_DEFAULT []*PluginToolInfo\n\nfunc (p *PluginExtraInfo) GetTools() (v []*PluginToolInfo) {\n\tif !p.IsSetTools() {\n\t\treturn PluginExtraInfo_Tools_DEFAULT\n\t}\n\treturn p.Tools\n}\n\nfunc (p *PluginExtraInfo) GetTotalAPICount() (v int32) {\n\treturn p.TotalAPICount\n}\n\nfunc (p *PluginExtraInfo) GetBotsUseCount() (v int32) {\n\treturn p.BotsUseCount\n}\n\nvar PluginExtraInfo_HasPrivacyStatement_DEFAULT bool\n\nfunc (p *PluginExtraInfo) GetHasPrivacyStatement() (v bool) {\n\tif !p.IsSetHasPrivacyStatement() {\n\t\treturn PluginExtraInfo_HasPrivacyStatement_DEFAULT\n\t}\n\treturn *p.HasPrivacyStatement\n}\n\nvar PluginExtraInfo_PrivacyStatement_DEFAULT string\n\nfunc (p *PluginExtraInfo) GetPrivacyStatement() (v string) {\n\tif !p.IsSetPrivacyStatement() {\n\t\treturn PluginExtraInfo_PrivacyStatement_DEFAULT\n\t}\n\treturn *p.PrivacyStatement\n}\n\nfunc (p *PluginExtraInfo) GetAssociatedBotsUseCount() (v int32) {\n\treturn p.AssociatedBotsUseCount\n}\n\nfunc (p *PluginExtraInfo) GetIsPremium() (v bool) {\n\treturn p.IsPremium\n}\n\nfunc (p *PluginExtraInfo) GetIsOfficial() (v bool) {\n\treturn p.IsOfficial\n}\n\nvar PluginExtraInfo_CallAmount_DEFAULT int32\n\nfunc (p *PluginExtraInfo) GetCallAmount() (v int32) {\n\tif !p.IsSetCallAmount() {\n\t\treturn PluginExtraInfo_CallAmount_DEFAULT\n\t}\n\treturn *p.CallAmount\n}\n\nvar PluginExtraInfo_SuccessRate_DEFAULT float64\n\nfunc (p *PluginExtraInfo) GetSuccessRate() (v float64) {\n\tif !p.IsSetSuccessRate() {\n\t\treturn PluginExtraInfo_SuccessRate_DEFAULT\n\t}\n\treturn *p.SuccessRate\n}\n\nvar PluginExtraInfo_AvgExecTime_DEFAULT float64\n\nfunc (p *PluginExtraInfo) GetAvgExecTime() (v float64) {\n\tif !p.IsSetAvgExecTime() {\n\t\treturn PluginExtraInfo_AvgExecTime_DEFAULT\n\t}\n\treturn *p.AvgExecTime\n}\n\nvar PluginExtraInfo_IsDefaultIcon_DEFAULT bool\n\nfunc (p *PluginExtraInfo) GetIsDefaultIcon() (v bool) {\n\tif !p.IsSetIsDefaultIcon() {\n\t\treturn PluginExtraInfo_IsDefaultIcon_DEFAULT\n\t}\n\treturn *p.IsDefaultIcon\n}\n\nvar PluginExtraInfo_SpaceID_DEFAULT int64\n\nfunc (p *PluginExtraInfo) GetSpaceID() (v int64) {\n\tif !p.IsSetSpaceID() {\n\t\treturn PluginExtraInfo_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar PluginExtraInfo_MaterialID_DEFAULT int64\n\nfunc (p *PluginExtraInfo) GetMaterialID() (v int64) {\n\tif !p.IsSetMaterialID() {\n\t\treturn PluginExtraInfo_MaterialID_DEFAULT\n\t}\n\treturn *p.MaterialID\n}\n\nfunc (p *PluginExtraInfo) GetConnectors() (v []*PluginConnectorInfo) {\n\treturn p.Connectors\n}\n\nvar PluginExtraInfo_PluginType_DEFAULT product_common.PluginType\n\nfunc (p *PluginExtraInfo) GetPluginType() (v product_common.PluginType) {\n\tif !p.IsSetPluginType() {\n\t\treturn PluginExtraInfo_PluginType_DEFAULT\n\t}\n\treturn *p.PluginType\n}\n\nvar PluginExtraInfo_AuthMode_DEFAULT PluginAuthMode\n\nfunc (p *PluginExtraInfo) GetAuthMode() (v PluginAuthMode) {\n\tif !p.IsSetAuthMode() {\n\t\treturn PluginExtraInfo_AuthMode_DEFAULT\n\t}\n\treturn *p.AuthMode\n}\n\nvar PluginExtraInfo_JumpSaasURL_DEFAULT string\n\nfunc (p *PluginExtraInfo) GetJumpSaasURL() (v string) {\n\tif !p.IsSetJumpSaasURL() {\n\t\treturn PluginExtraInfo_JumpSaasURL_DEFAULT\n\t}\n\treturn *p.JumpSaasURL\n}\n\nvar fieldIDToName_PluginExtraInfo = map[int16]string{\n\t1:  \"Tools\",\n\t2:  \"TotalAPICount\",\n\t3:  \"BotsUseCount\",\n\t4:  \"HasPrivacyStatement\",\n\t5:  \"PrivacyStatement\",\n\t6:  \"AssociatedBotsUseCount\",\n\t7:  \"IsPremium\",\n\t8:  \"IsOfficial\",\n\t9:  \"CallAmount\",\n\t10: \"SuccessRate\",\n\t11: \"AvgExecTime\",\n\t12: \"IsDefaultIcon\",\n\t13: \"SpaceID\",\n\t14: \"MaterialID\",\n\t15: \"Connectors\",\n\t16: \"PluginType\",\n\t50: \"AuthMode\",\n\t51: \"JumpSaasURL\",\n}\n\nfunc (p *PluginExtraInfo) IsSetTools() bool {\n\treturn p.Tools != nil\n}\n\nfunc (p *PluginExtraInfo) IsSetHasPrivacyStatement() bool {\n\treturn p.HasPrivacyStatement != nil\n}\n\nfunc (p *PluginExtraInfo) IsSetPrivacyStatement() bool {\n\treturn p.PrivacyStatement != nil\n}\n\nfunc (p *PluginExtraInfo) IsSetCallAmount() bool {\n\treturn p.CallAmount != nil\n}\n\nfunc (p *PluginExtraInfo) IsSetSuccessRate() bool {\n\treturn p.SuccessRate != nil\n}\n\nfunc (p *PluginExtraInfo) IsSetAvgExecTime() bool {\n\treturn p.AvgExecTime != nil\n}\n\nfunc (p *PluginExtraInfo) IsSetIsDefaultIcon() bool {\n\treturn p.IsDefaultIcon != nil\n}\n\nfunc (p *PluginExtraInfo) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *PluginExtraInfo) IsSetMaterialID() bool {\n\treturn p.MaterialID != nil\n}\n\nfunc (p *PluginExtraInfo) IsSetPluginType() bool {\n\treturn p.PluginType != nil\n}\n\nfunc (p *PluginExtraInfo) IsSetAuthMode() bool {\n\treturn p.AuthMode != nil\n}\n\nfunc (p *PluginExtraInfo) IsSetJumpSaasURL() bool {\n\treturn p.JumpSaasURL != nil\n}\n\nfunc (p *PluginExtraInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 50:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField50(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 51:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField51(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginExtraInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginExtraInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginToolInfo, 0, size)\n\tvalues := make([]PluginToolInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Tools = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TotalAPICount = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotsUseCount = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HasPrivacyStatement = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PrivacyStatement = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AssociatedBotsUseCount = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsPremium = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsOfficial = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CallAmount = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SuccessRate = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AvgExecTime = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsDefaultIcon = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.MaterialID = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField15(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginConnectorInfo, 0, size)\n\tvalues := make([]PluginConnectorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Connectors = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.PluginType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.PluginType(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginType = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField50(iprot thrift.TProtocol) error {\n\n\tvar _field *PluginAuthMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := PluginAuthMode(v)\n\t\t_field = &tmp\n\t}\n\tp.AuthMode = _field\n\treturn nil\n}\nfunc (p *PluginExtraInfo) ReadField51(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.JumpSaasURL = _field\n\treturn nil\n}\n\nfunc (p *PluginExtraInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginExtraInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField50(oprot); err != nil {\n\t\t\tfieldId = 50\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField51(oprot); err != nil {\n\t\t\tfieldId = 51\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginExtraInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTools() {\n\t\tif err = oprot.WriteFieldBegin(\"Tools\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Tools)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Tools {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TotalAPICount\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TotalAPICount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BotsUseCount\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.BotsUseCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHasPrivacyStatement() {\n\t\tif err = oprot.WriteFieldBegin(\"HasPrivacyStatement\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HasPrivacyStatement); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrivacyStatement() {\n\t\tif err = oprot.WriteFieldBegin(\"PrivacyStatement\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PrivacyStatement); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AssociatedBotsUseCount\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.AssociatedBotsUseCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsPremium\", thrift.BOOL, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsPremium); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsOfficial\", thrift.BOOL, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsOfficial); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCallAmount() {\n\t\tif err = oprot.WriteFieldBegin(\"CallAmount\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.CallAmount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccessRate() {\n\t\tif err = oprot.WriteFieldBegin(\"SuccessRate\", thrift.DOUBLE, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.SuccessRate); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAvgExecTime() {\n\t\tif err = oprot.WriteFieldBegin(\"AvgExecTime\", thrift.DOUBLE, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.AvgExecTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsDefaultIcon() {\n\t\tif err = oprot.WriteFieldBegin(\"IsDefaultIcon\", thrift.BOOL, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsDefaultIcon); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"SpaceID\", thrift.I64, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMaterialID() {\n\t\tif err = oprot.WriteFieldBegin(\"MaterialID\", thrift.I64, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.MaterialID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Connectors\", thrift.LIST, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Connectors)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Connectors {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginType() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginType\", thrift.I32, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField50(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuthMode() {\n\t\tif err = oprot.WriteFieldBegin(\"AuthMode\", thrift.I32, 50); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AuthMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 end error: \", p), err)\n}\nfunc (p *PluginExtraInfo) writeField51(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetJumpSaasURL() {\n\t\tif err = oprot.WriteFieldBegin(\"JumpSaasURL\", thrift.STRING, 51); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.JumpSaasURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 51 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 51 end error: \", p), err)\n}\n\nfunc (p *PluginExtraInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginExtraInfo(%+v)\", *p)\n\n}\n\ntype ToolParameter struct {\n\tName         string           `thrift:\"Name,1\" form:\"name\" json:\"name\"`\n\tIsRequired   bool             `thrift:\"IsRequired,2\" form:\"required\" json:\"required\"`\n\tDescription  string           `thrift:\"Description,3\" form:\"description\" json:\"description\"`\n\tType         string           `thrift:\"Type,4\" form:\"type\" json:\"type\"`\n\tSubParameter []*ToolParameter `thrift:\"SubParameter,5\" form:\"sub_params\" json:\"sub_params\"`\n}\n\nfunc NewToolParameter() *ToolParameter {\n\treturn &ToolParameter{}\n}\n\nfunc (p *ToolParameter) InitDefault() {\n}\n\nfunc (p *ToolParameter) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ToolParameter) GetIsRequired() (v bool) {\n\treturn p.IsRequired\n}\n\nfunc (p *ToolParameter) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *ToolParameter) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *ToolParameter) GetSubParameter() (v []*ToolParameter) {\n\treturn p.SubParameter\n}\n\nvar fieldIDToName_ToolParameter = map[int16]string{\n\t1: \"Name\",\n\t2: \"IsRequired\",\n\t3: \"Description\",\n\t4: \"Type\",\n\t5: \"SubParameter\",\n}\n\nfunc (p *ToolParameter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ToolParameter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ToolParameter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ToolParameter) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsRequired = _field\n\treturn nil\n}\nfunc (p *ToolParameter) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *ToolParameter) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ToolParameter) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ToolParameter, 0, size)\n\tvalues := make([]ToolParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubParameter = _field\n\treturn nil\n}\n\nfunc (p *ToolParameter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ToolParameter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ToolParameter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ToolParameter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsRequired\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsRequired); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ToolParameter) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ToolParameter) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ToolParameter) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SubParameter\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubParameter)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SubParameter {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *ToolParameter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ToolParameter(%+v)\", *p)\n\n}\n\ntype CardInfo struct {\n\tCardURL string `thrift:\"CardURL,1\" form:\"card_url\" json:\"card_url\"`\n\t// Only the details page returns\n\tCardID         int64  `thrift:\"CardID,2\" form:\"card_id\" json:\"card_id,string\"`\n\tMappingRule    string `thrift:\"MappingRule,3\" form:\"MappingRule\" json:\"MappingRule\" query:\"MappingRule\"`\n\tMaxDisplayRows int64  `thrift:\"MaxDisplayRows,4\" form:\"max_display_rows\" json:\"max_display_rows,string\"`\n\tCardVersion    int64  `thrift:\"CardVersion,5\" form:\"card_version\" json:\"card_version,string\"`\n}\n\nfunc NewCardInfo() *CardInfo {\n\treturn &CardInfo{}\n}\n\nfunc (p *CardInfo) InitDefault() {\n}\n\nfunc (p *CardInfo) GetCardURL() (v string) {\n\treturn p.CardURL\n}\n\nfunc (p *CardInfo) GetCardID() (v int64) {\n\treturn p.CardID\n}\n\nfunc (p *CardInfo) GetMappingRule() (v string) {\n\treturn p.MappingRule\n}\n\nfunc (p *CardInfo) GetMaxDisplayRows() (v int64) {\n\treturn p.MaxDisplayRows\n}\n\nfunc (p *CardInfo) GetCardVersion() (v int64) {\n\treturn p.CardVersion\n}\n\nvar fieldIDToName_CardInfo = map[int16]string{\n\t1: \"CardURL\",\n\t2: \"CardID\",\n\t3: \"MappingRule\",\n\t4: \"MaxDisplayRows\",\n\t5: \"CardVersion\",\n}\n\nfunc (p *CardInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CardInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CardInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CardURL = _field\n\treturn nil\n}\nfunc (p *CardInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CardID = _field\n\treturn nil\n}\nfunc (p *CardInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MappingRule = _field\n\treturn nil\n}\nfunc (p *CardInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MaxDisplayRows = _field\n\treturn nil\n}\nfunc (p *CardInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CardVersion = _field\n\treturn nil\n}\n\nfunc (p *CardInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CardInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CardInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CardURL\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CardURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CardInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CardID\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CardID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CardInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"MappingRule\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.MappingRule); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CardInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"MaxDisplayRows\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.MaxDisplayRows); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CardInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CardVersion\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CardVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *CardInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CardInfo(%+v)\", *p)\n\n}\n\ntype PluginToolExample struct {\n\tReqExample  string `thrift:\"ReqExample,1\" form:\"req_example\" json:\"req_example\"`\n\tRespExample string `thrift:\"RespExample,2\" form:\"resp_example\" json:\"resp_example\"`\n}\n\nfunc NewPluginToolExample() *PluginToolExample {\n\treturn &PluginToolExample{}\n}\n\nfunc (p *PluginToolExample) InitDefault() {\n}\n\nfunc (p *PluginToolExample) GetReqExample() (v string) {\n\treturn p.ReqExample\n}\n\nfunc (p *PluginToolExample) GetRespExample() (v string) {\n\treturn p.RespExample\n}\n\nvar fieldIDToName_PluginToolExample = map[int16]string{\n\t1: \"ReqExample\",\n\t2: \"RespExample\",\n}\n\nfunc (p *PluginToolExample) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginToolExample[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginToolExample) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReqExample = _field\n\treturn nil\n}\nfunc (p *PluginToolExample) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RespExample = _field\n\treturn nil\n}\n\nfunc (p *PluginToolExample) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginToolExample\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginToolExample) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ReqExample\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ReqExample); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginToolExample) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"RespExample\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.RespExample); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *PluginToolExample) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginToolExample(%+v)\", *p)\n\n}\n\ntype PluginToolInfo struct {\n\tID          int64              `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\tName        string             `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\tDescription string             `thrift:\"Description,3\" form:\"description\" json:\"description\"`\n\tParameters  []*ToolParameter   `thrift:\"Parameters,4,optional\" form:\"parameters\" json:\"parameters,omitempty\"`\n\tCardInfo    *CardInfo          `thrift:\"CardInfo,5,optional\" form:\"card_info\" json:\"card_info,omitempty\"`\n\tExample     *PluginToolExample `thrift:\"Example,6,optional\" form:\"example\" json:\"example,omitempty\"`\n\t// call amount\n\tCallAmount *int32 `thrift:\"CallAmount,7,optional\" form:\"call_amount\" json:\"call_amount,omitempty\"`\n\t// success rate\n\tSuccessRate *float64 `thrift:\"SuccessRate,8,optional\" form:\"success_rate\" json:\"success_rate,omitempty\"`\n\t// average execution time\n\tAvgExecTime *float64 `thrift:\"AvgExecTime,9,optional\" form:\"avg_exec_time\" json:\"avg_exec_time,omitempty\"`\n\t// Number of tool bot references\n\tBotsUseCount *int32 `thrift:\"BotsUseCount,10,optional\" form:\"bots_use_count\" json:\"bots_use_count,omitempty\"`\n\t// operating mode\n\tRunMode *PluginRunMode `thrift:\"RunMode,11,optional\" form:\"run_mode\" json:\"run_mode,omitempty\"`\n}\n\nfunc NewPluginToolInfo() *PluginToolInfo {\n\treturn &PluginToolInfo{}\n}\n\nfunc (p *PluginToolInfo) InitDefault() {\n}\n\nfunc (p *PluginToolInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *PluginToolInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PluginToolInfo) GetDescription() (v string) {\n\treturn p.Description\n}\n\nvar PluginToolInfo_Parameters_DEFAULT []*ToolParameter\n\nfunc (p *PluginToolInfo) GetParameters() (v []*ToolParameter) {\n\tif !p.IsSetParameters() {\n\t\treturn PluginToolInfo_Parameters_DEFAULT\n\t}\n\treturn p.Parameters\n}\n\nvar PluginToolInfo_CardInfo_DEFAULT *CardInfo\n\nfunc (p *PluginToolInfo) GetCardInfo() (v *CardInfo) {\n\tif !p.IsSetCardInfo() {\n\t\treturn PluginToolInfo_CardInfo_DEFAULT\n\t}\n\treturn p.CardInfo\n}\n\nvar PluginToolInfo_Example_DEFAULT *PluginToolExample\n\nfunc (p *PluginToolInfo) GetExample() (v *PluginToolExample) {\n\tif !p.IsSetExample() {\n\t\treturn PluginToolInfo_Example_DEFAULT\n\t}\n\treturn p.Example\n}\n\nvar PluginToolInfo_CallAmount_DEFAULT int32\n\nfunc (p *PluginToolInfo) GetCallAmount() (v int32) {\n\tif !p.IsSetCallAmount() {\n\t\treturn PluginToolInfo_CallAmount_DEFAULT\n\t}\n\treturn *p.CallAmount\n}\n\nvar PluginToolInfo_SuccessRate_DEFAULT float64\n\nfunc (p *PluginToolInfo) GetSuccessRate() (v float64) {\n\tif !p.IsSetSuccessRate() {\n\t\treturn PluginToolInfo_SuccessRate_DEFAULT\n\t}\n\treturn *p.SuccessRate\n}\n\nvar PluginToolInfo_AvgExecTime_DEFAULT float64\n\nfunc (p *PluginToolInfo) GetAvgExecTime() (v float64) {\n\tif !p.IsSetAvgExecTime() {\n\t\treturn PluginToolInfo_AvgExecTime_DEFAULT\n\t}\n\treturn *p.AvgExecTime\n}\n\nvar PluginToolInfo_BotsUseCount_DEFAULT int32\n\nfunc (p *PluginToolInfo) GetBotsUseCount() (v int32) {\n\tif !p.IsSetBotsUseCount() {\n\t\treturn PluginToolInfo_BotsUseCount_DEFAULT\n\t}\n\treturn *p.BotsUseCount\n}\n\nvar PluginToolInfo_RunMode_DEFAULT PluginRunMode\n\nfunc (p *PluginToolInfo) GetRunMode() (v PluginRunMode) {\n\tif !p.IsSetRunMode() {\n\t\treturn PluginToolInfo_RunMode_DEFAULT\n\t}\n\treturn *p.RunMode\n}\n\nvar fieldIDToName_PluginToolInfo = map[int16]string{\n\t1:  \"ID\",\n\t2:  \"Name\",\n\t3:  \"Description\",\n\t4:  \"Parameters\",\n\t5:  \"CardInfo\",\n\t6:  \"Example\",\n\t7:  \"CallAmount\",\n\t8:  \"SuccessRate\",\n\t9:  \"AvgExecTime\",\n\t10: \"BotsUseCount\",\n\t11: \"RunMode\",\n}\n\nfunc (p *PluginToolInfo) IsSetParameters() bool {\n\treturn p.Parameters != nil\n}\n\nfunc (p *PluginToolInfo) IsSetCardInfo() bool {\n\treturn p.CardInfo != nil\n}\n\nfunc (p *PluginToolInfo) IsSetExample() bool {\n\treturn p.Example != nil\n}\n\nfunc (p *PluginToolInfo) IsSetCallAmount() bool {\n\treturn p.CallAmount != nil\n}\n\nfunc (p *PluginToolInfo) IsSetSuccessRate() bool {\n\treturn p.SuccessRate != nil\n}\n\nfunc (p *PluginToolInfo) IsSetAvgExecTime() bool {\n\treturn p.AvgExecTime != nil\n}\n\nfunc (p *PluginToolInfo) IsSetBotsUseCount() bool {\n\treturn p.BotsUseCount != nil\n}\n\nfunc (p *PluginToolInfo) IsSetRunMode() bool {\n\treturn p.RunMode != nil\n}\n\nfunc (p *PluginToolInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginToolInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginToolInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PluginToolInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginToolInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *PluginToolInfo) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ToolParameter, 0, size)\n\tvalues := make([]ToolParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\nfunc (p *PluginToolInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewCardInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CardInfo = _field\n\treturn nil\n}\nfunc (p *PluginToolInfo) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewPluginToolExample()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Example = _field\n\treturn nil\n}\nfunc (p *PluginToolInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CallAmount = _field\n\treturn nil\n}\nfunc (p *PluginToolInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SuccessRate = _field\n\treturn nil\n}\nfunc (p *PluginToolInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AvgExecTime = _field\n\treturn nil\n}\nfunc (p *PluginToolInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotsUseCount = _field\n\treturn nil\n}\nfunc (p *PluginToolInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *PluginRunMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := PluginRunMode(v)\n\t\t_field = &tmp\n\t}\n\tp.RunMode = _field\n\treturn nil\n}\n\nfunc (p *PluginToolInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginToolInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginToolInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginToolInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginToolInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginToolInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"Parameters\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Parameters)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Parameters {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginToolInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCardInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"CardInfo\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.CardInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginToolInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExample() {\n\t\tif err = oprot.WriteFieldBegin(\"Example\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Example.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PluginToolInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCallAmount() {\n\t\tif err = oprot.WriteFieldBegin(\"CallAmount\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.CallAmount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PluginToolInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccessRate() {\n\t\tif err = oprot.WriteFieldBegin(\"SuccessRate\", thrift.DOUBLE, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.SuccessRate); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PluginToolInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAvgExecTime() {\n\t\tif err = oprot.WriteFieldBegin(\"AvgExecTime\", thrift.DOUBLE, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.AvgExecTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PluginToolInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotsUseCount() {\n\t\tif err = oprot.WriteFieldBegin(\"BotsUseCount\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.BotsUseCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *PluginToolInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRunMode() {\n\t\tif err = oprot.WriteFieldBegin(\"RunMode\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.RunMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\n\nfunc (p *PluginToolInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginToolInfo(%+v)\", *p)\n\n}\n\ntype PluginConnectorInfo struct {\n\tID   int64  `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\tName string `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\tIcon string `thrift:\"Icon,3\" form:\"icon\" json:\"icon\"`\n}\n\nfunc NewPluginConnectorInfo() *PluginConnectorInfo {\n\treturn &PluginConnectorInfo{}\n}\n\nfunc (p *PluginConnectorInfo) InitDefault() {\n}\n\nfunc (p *PluginConnectorInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *PluginConnectorInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PluginConnectorInfo) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nvar fieldIDToName_PluginConnectorInfo = map[int16]string{\n\t1: \"ID\",\n\t2: \"Name\",\n\t3: \"Icon\",\n}\n\nfunc (p *PluginConnectorInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginConnectorInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginConnectorInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PluginConnectorInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginConnectorInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\n\nfunc (p *PluginConnectorInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginConnectorInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginConnectorInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginConnectorInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginConnectorInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Icon\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *PluginConnectorInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginConnectorInfo(%+v)\", *p)\n\n}\n\ntype BotPublishPlatform struct {\n\tID          int64  `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\tIconURL     string `thrift:\"IconURL,2\" form:\"icon_url\" json:\"icon_url\"`\n\tPlatformURL string `thrift:\"PlatformURL,3\" form:\"url\" json:\"url\"`\n\tName        string `thrift:\"Name,4\" form:\"name\" json:\"name\"`\n}\n\nfunc NewBotPublishPlatform() *BotPublishPlatform {\n\treturn &BotPublishPlatform{}\n}\n\nfunc (p *BotPublishPlatform) InitDefault() {\n}\n\nfunc (p *BotPublishPlatform) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *BotPublishPlatform) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *BotPublishPlatform) GetPlatformURL() (v string) {\n\treturn p.PlatformURL\n}\n\nfunc (p *BotPublishPlatform) GetName() (v string) {\n\treturn p.Name\n}\n\nvar fieldIDToName_BotPublishPlatform = map[int16]string{\n\t1: \"ID\",\n\t2: \"IconURL\",\n\t3: \"PlatformURL\",\n\t4: \"Name\",\n}\n\nfunc (p *BotPublishPlatform) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotPublishPlatform[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotPublishPlatform) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *BotPublishPlatform) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *BotPublishPlatform) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PlatformURL = _field\n\treturn nil\n}\nfunc (p *BotPublishPlatform) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\n\nfunc (p *BotPublishPlatform) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotPublishPlatform\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotPublishPlatform) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotPublishPlatform) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IconURL\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotPublishPlatform) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PlatformURL\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PlatformURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotPublishPlatform) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *BotPublishPlatform) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotPublishPlatform(%+v)\", *p)\n\n}\n\ntype ProductMaterial struct {\n\tName    string `thrift:\"Name,1\" form:\"name\" json:\"name\"`\n\tIconURL string `thrift:\"IconURL,2\" form:\"icon_url\" json:\"icon_url\"`\n}\n\nfunc NewProductMaterial() *ProductMaterial {\n\treturn &ProductMaterial{}\n}\n\nfunc (p *ProductMaterial) InitDefault() {\n}\n\nfunc (p *ProductMaterial) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ProductMaterial) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nvar fieldIDToName_ProductMaterial = map[int16]string{\n\t1: \"Name\",\n\t2: \"IconURL\",\n}\n\nfunc (p *ProductMaterial) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProductMaterial[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProductMaterial) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ProductMaterial) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\n\nfunc (p *ProductMaterial) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProductMaterial\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProductMaterial) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProductMaterial) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IconURL\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ProductMaterial) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProductMaterial(%+v)\", *p)\n\n}\n\ntype BotVoiceInfo struct {\n\tVoiceID            int64  `thrift:\"VoiceID,1\" form:\"id\" json:\"id,string\"`\n\tLanguageCode       string `thrift:\"LanguageCode,2\" form:\"language_code\" json:\"language_code\"`\n\tLanguageName       string `thrift:\"LanguageName,3\" form:\"language_name\" json:\"language_name\"`\n\tName               string `thrift:\"Name,4\" form:\"name\" json:\"name\"`\n\tStyleID            string `thrift:\"StyleID,5\" form:\"style_id\" json:\"style_id\"`\n\tIsSupportVoiceCall bool   `thrift:\"IsSupportVoiceCall,6\" form:\"is_support_voice_call\" json:\"is_support_voice_call\"`\n}\n\nfunc NewBotVoiceInfo() *BotVoiceInfo {\n\treturn &BotVoiceInfo{}\n}\n\nfunc (p *BotVoiceInfo) InitDefault() {\n}\n\nfunc (p *BotVoiceInfo) GetVoiceID() (v int64) {\n\treturn p.VoiceID\n}\n\nfunc (p *BotVoiceInfo) GetLanguageCode() (v string) {\n\treturn p.LanguageCode\n}\n\nfunc (p *BotVoiceInfo) GetLanguageName() (v string) {\n\treturn p.LanguageName\n}\n\nfunc (p *BotVoiceInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *BotVoiceInfo) GetStyleID() (v string) {\n\treturn p.StyleID\n}\n\nfunc (p *BotVoiceInfo) GetIsSupportVoiceCall() (v bool) {\n\treturn p.IsSupportVoiceCall\n}\n\nvar fieldIDToName_BotVoiceInfo = map[int16]string{\n\t1: \"VoiceID\",\n\t2: \"LanguageCode\",\n\t3: \"LanguageName\",\n\t4: \"Name\",\n\t5: \"StyleID\",\n\t6: \"IsSupportVoiceCall\",\n}\n\nfunc (p *BotVoiceInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotVoiceInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotVoiceInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VoiceID = _field\n\treturn nil\n}\nfunc (p *BotVoiceInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LanguageCode = _field\n\treturn nil\n}\nfunc (p *BotVoiceInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LanguageName = _field\n\treturn nil\n}\nfunc (p *BotVoiceInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *BotVoiceInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StyleID = _field\n\treturn nil\n}\nfunc (p *BotVoiceInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsSupportVoiceCall = _field\n\treturn nil\n}\n\nfunc (p *BotVoiceInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotVoiceInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotVoiceInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VoiceID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.VoiceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotVoiceInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"LanguageCode\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LanguageCode); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotVoiceInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"LanguageName\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LanguageName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotVoiceInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BotVoiceInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StyleID\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.StyleID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BotVoiceInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsSupportVoiceCall\", thrift.BOOL, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsSupportVoiceCall); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *BotVoiceInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotVoiceInfo(%+v)\", *p)\n\n}\n\ntype UserQueryCollectConf struct {\n\t// Bot user query collection configuration\n\tIsCollected bool `thrift:\"IsCollected,1\" form:\"is_collected\" json:\"is_collected\"`\n\t// Privacy Policy Link\n\tPrivatePolicy string `thrift:\"PrivatePolicy,2\" form:\"private_policy\" json:\"private_policy\"`\n}\n\nfunc NewUserQueryCollectConf() *UserQueryCollectConf {\n\treturn &UserQueryCollectConf{}\n}\n\nfunc (p *UserQueryCollectConf) InitDefault() {\n}\n\nfunc (p *UserQueryCollectConf) GetIsCollected() (v bool) {\n\treturn p.IsCollected\n}\n\nfunc (p *UserQueryCollectConf) GetPrivatePolicy() (v string) {\n\treturn p.PrivatePolicy\n}\n\nvar fieldIDToName_UserQueryCollectConf = map[int16]string{\n\t1: \"IsCollected\",\n\t2: \"PrivatePolicy\",\n}\n\nfunc (p *UserQueryCollectConf) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserQueryCollectConf[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserQueryCollectConf) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsCollected = _field\n\treturn nil\n}\nfunc (p *UserQueryCollectConf) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PrivatePolicy = _field\n\treturn nil\n}\n\nfunc (p *UserQueryCollectConf) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserQueryCollectConf\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserQueryCollectConf) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsCollected\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsCollected); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserQueryCollectConf) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PrivatePolicy\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PrivatePolicy); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UserQueryCollectConf) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserQueryCollectConf(%+v)\", *p)\n\n}\n\ntype BotConfig struct {\n\t// model\n\tModels []*ProductMaterial `thrift:\"Models,1,optional\" form:\"models\" json:\"models,omitempty\"`\n\t// plugin\n\tPlugins []*ProductMaterial `thrift:\"Plugins,2,optional\" form:\"plugins\" json:\"plugins,omitempty\"`\n\t// Knowledge Base\n\tKnowledges []*ProductMaterial `thrift:\"Knowledges,3,optional\" form:\"knowledges\" json:\"knowledges,omitempty\"`\n\t// Workflow\n\tWorkflows []*ProductMaterial `thrift:\"Workflows,4,optional\" form:\"workflows\" json:\"workflows,omitempty\"`\n\t// number of private plugins\n\tPrivatePluginsCount *int32 `thrift:\"PrivatePluginsCount,5,optional\" form:\"private_plugins_count\" json:\"private_plugins_count,omitempty\"`\n\t// Number of private repositories\n\tPrivateKnowledgesCount *int32 `thrift:\"PrivateKnowledgesCount,6,optional\" form:\"private_knowledges_count\" json:\"private_knowledges_count,omitempty\"`\n\t// number of private workflows\n\tPrivateWorkflowsCount *int32 `thrift:\"PrivateWorkflowsCount,7,optional\" form:\"private_workflows_count\" json:\"private_workflows_count,omitempty\"`\n\t// Determine if the multiagent has a bot node\n\tHasBotAgent *bool `thrift:\"HasBotAgent,8,optional\" form:\"has_bot_agent\" json:\"has_bot_agent,omitempty\"`\n\t// List of sounds configured by bot\n\tBotVoices []*BotVoiceInfo `thrift:\"BotVoices,9,optional\" form:\"bot_voices\" json:\"bot_voices,omitempty\"`\n\t// Number of all plugins\n\tTotalPluginsCount *int32 `thrift:\"TotalPluginsCount,10,optional\" form:\"total_plugins_count\" json:\"total_plugins_count,omitempty\"`\n\t// Number of all knowledge bases\n\tTotalKnowledgesCount *int32 `thrift:\"TotalKnowledgesCount,11,optional\" form:\"total_knowledges_count\" json:\"total_knowledges_count,omitempty\"`\n\t// Number of all workflows\n\tTotalWorkflowsCount *int32 `thrift:\"TotalWorkflowsCount,12,optional\" form:\"total_workflows_count\" json:\"total_workflows_count,omitempty\"`\n\t// Time Capsule Mode\n\tTimeCapsuleMode *TimeCapsuleMode `thrift:\"TimeCapsuleMode,13,optional\" form:\"time_capsule_mode\" json:\"time_capsule_mode,omitempty\"`\n\t// File box mode\n\tFileboxMode *FileboxInfoMode `thrift:\"FileboxMode,14,optional\" form:\"filebox_mode\" json:\"filebox_mode,omitempty\"`\n\t// Number of private image workflows\n\tPrivateImageWorkflowCount *int32 `thrift:\"PrivateImageWorkflowCount,15,optional\" form:\"private_image_workflow_count\" json:\"private_image_workflow_count,omitempty\"`\n\t// User qeury collection configuration\n\tUserQueryCollectConf *UserQueryCollectConf `thrift:\"UserQueryCollectConf,16,optional\" form:\"user_query_collect_conf\" json:\"user_query_collect_conf,omitempty\"`\n\t// Whether to turn off voice calls (the default is on)\n\tIsCloseVoiceCall *bool `thrift:\"IsCloseVoiceCall,17,optional\" form:\"is_close_voice_call\" json:\"is_close_voice_call,omitempty\"`\n}\n\nfunc NewBotConfig() *BotConfig {\n\treturn &BotConfig{}\n}\n\nfunc (p *BotConfig) InitDefault() {\n}\n\nvar BotConfig_Models_DEFAULT []*ProductMaterial\n\nfunc (p *BotConfig) GetModels() (v []*ProductMaterial) {\n\tif !p.IsSetModels() {\n\t\treturn BotConfig_Models_DEFAULT\n\t}\n\treturn p.Models\n}\n\nvar BotConfig_Plugins_DEFAULT []*ProductMaterial\n\nfunc (p *BotConfig) GetPlugins() (v []*ProductMaterial) {\n\tif !p.IsSetPlugins() {\n\t\treturn BotConfig_Plugins_DEFAULT\n\t}\n\treturn p.Plugins\n}\n\nvar BotConfig_Knowledges_DEFAULT []*ProductMaterial\n\nfunc (p *BotConfig) GetKnowledges() (v []*ProductMaterial) {\n\tif !p.IsSetKnowledges() {\n\t\treturn BotConfig_Knowledges_DEFAULT\n\t}\n\treturn p.Knowledges\n}\n\nvar BotConfig_Workflows_DEFAULT []*ProductMaterial\n\nfunc (p *BotConfig) GetWorkflows() (v []*ProductMaterial) {\n\tif !p.IsSetWorkflows() {\n\t\treturn BotConfig_Workflows_DEFAULT\n\t}\n\treturn p.Workflows\n}\n\nvar BotConfig_PrivatePluginsCount_DEFAULT int32\n\nfunc (p *BotConfig) GetPrivatePluginsCount() (v int32) {\n\tif !p.IsSetPrivatePluginsCount() {\n\t\treturn BotConfig_PrivatePluginsCount_DEFAULT\n\t}\n\treturn *p.PrivatePluginsCount\n}\n\nvar BotConfig_PrivateKnowledgesCount_DEFAULT int32\n\nfunc (p *BotConfig) GetPrivateKnowledgesCount() (v int32) {\n\tif !p.IsSetPrivateKnowledgesCount() {\n\t\treturn BotConfig_PrivateKnowledgesCount_DEFAULT\n\t}\n\treturn *p.PrivateKnowledgesCount\n}\n\nvar BotConfig_PrivateWorkflowsCount_DEFAULT int32\n\nfunc (p *BotConfig) GetPrivateWorkflowsCount() (v int32) {\n\tif !p.IsSetPrivateWorkflowsCount() {\n\t\treturn BotConfig_PrivateWorkflowsCount_DEFAULT\n\t}\n\treturn *p.PrivateWorkflowsCount\n}\n\nvar BotConfig_HasBotAgent_DEFAULT bool\n\nfunc (p *BotConfig) GetHasBotAgent() (v bool) {\n\tif !p.IsSetHasBotAgent() {\n\t\treturn BotConfig_HasBotAgent_DEFAULT\n\t}\n\treturn *p.HasBotAgent\n}\n\nvar BotConfig_BotVoices_DEFAULT []*BotVoiceInfo\n\nfunc (p *BotConfig) GetBotVoices() (v []*BotVoiceInfo) {\n\tif !p.IsSetBotVoices() {\n\t\treturn BotConfig_BotVoices_DEFAULT\n\t}\n\treturn p.BotVoices\n}\n\nvar BotConfig_TotalPluginsCount_DEFAULT int32\n\nfunc (p *BotConfig) GetTotalPluginsCount() (v int32) {\n\tif !p.IsSetTotalPluginsCount() {\n\t\treturn BotConfig_TotalPluginsCount_DEFAULT\n\t}\n\treturn *p.TotalPluginsCount\n}\n\nvar BotConfig_TotalKnowledgesCount_DEFAULT int32\n\nfunc (p *BotConfig) GetTotalKnowledgesCount() (v int32) {\n\tif !p.IsSetTotalKnowledgesCount() {\n\t\treturn BotConfig_TotalKnowledgesCount_DEFAULT\n\t}\n\treturn *p.TotalKnowledgesCount\n}\n\nvar BotConfig_TotalWorkflowsCount_DEFAULT int32\n\nfunc (p *BotConfig) GetTotalWorkflowsCount() (v int32) {\n\tif !p.IsSetTotalWorkflowsCount() {\n\t\treturn BotConfig_TotalWorkflowsCount_DEFAULT\n\t}\n\treturn *p.TotalWorkflowsCount\n}\n\nvar BotConfig_TimeCapsuleMode_DEFAULT TimeCapsuleMode\n\nfunc (p *BotConfig) GetTimeCapsuleMode() (v TimeCapsuleMode) {\n\tif !p.IsSetTimeCapsuleMode() {\n\t\treturn BotConfig_TimeCapsuleMode_DEFAULT\n\t}\n\treturn *p.TimeCapsuleMode\n}\n\nvar BotConfig_FileboxMode_DEFAULT FileboxInfoMode\n\nfunc (p *BotConfig) GetFileboxMode() (v FileboxInfoMode) {\n\tif !p.IsSetFileboxMode() {\n\t\treturn BotConfig_FileboxMode_DEFAULT\n\t}\n\treturn *p.FileboxMode\n}\n\nvar BotConfig_PrivateImageWorkflowCount_DEFAULT int32\n\nfunc (p *BotConfig) GetPrivateImageWorkflowCount() (v int32) {\n\tif !p.IsSetPrivateImageWorkflowCount() {\n\t\treturn BotConfig_PrivateImageWorkflowCount_DEFAULT\n\t}\n\treturn *p.PrivateImageWorkflowCount\n}\n\nvar BotConfig_UserQueryCollectConf_DEFAULT *UserQueryCollectConf\n\nfunc (p *BotConfig) GetUserQueryCollectConf() (v *UserQueryCollectConf) {\n\tif !p.IsSetUserQueryCollectConf() {\n\t\treturn BotConfig_UserQueryCollectConf_DEFAULT\n\t}\n\treturn p.UserQueryCollectConf\n}\n\nvar BotConfig_IsCloseVoiceCall_DEFAULT bool\n\nfunc (p *BotConfig) GetIsCloseVoiceCall() (v bool) {\n\tif !p.IsSetIsCloseVoiceCall() {\n\t\treturn BotConfig_IsCloseVoiceCall_DEFAULT\n\t}\n\treturn *p.IsCloseVoiceCall\n}\n\nvar fieldIDToName_BotConfig = map[int16]string{\n\t1:  \"Models\",\n\t2:  \"Plugins\",\n\t3:  \"Knowledges\",\n\t4:  \"Workflows\",\n\t5:  \"PrivatePluginsCount\",\n\t6:  \"PrivateKnowledgesCount\",\n\t7:  \"PrivateWorkflowsCount\",\n\t8:  \"HasBotAgent\",\n\t9:  \"BotVoices\",\n\t10: \"TotalPluginsCount\",\n\t11: \"TotalKnowledgesCount\",\n\t12: \"TotalWorkflowsCount\",\n\t13: \"TimeCapsuleMode\",\n\t14: \"FileboxMode\",\n\t15: \"PrivateImageWorkflowCount\",\n\t16: \"UserQueryCollectConf\",\n\t17: \"IsCloseVoiceCall\",\n}\n\nfunc (p *BotConfig) IsSetModels() bool {\n\treturn p.Models != nil\n}\n\nfunc (p *BotConfig) IsSetPlugins() bool {\n\treturn p.Plugins != nil\n}\n\nfunc (p *BotConfig) IsSetKnowledges() bool {\n\treturn p.Knowledges != nil\n}\n\nfunc (p *BotConfig) IsSetWorkflows() bool {\n\treturn p.Workflows != nil\n}\n\nfunc (p *BotConfig) IsSetPrivatePluginsCount() bool {\n\treturn p.PrivatePluginsCount != nil\n}\n\nfunc (p *BotConfig) IsSetPrivateKnowledgesCount() bool {\n\treturn p.PrivateKnowledgesCount != nil\n}\n\nfunc (p *BotConfig) IsSetPrivateWorkflowsCount() bool {\n\treturn p.PrivateWorkflowsCount != nil\n}\n\nfunc (p *BotConfig) IsSetHasBotAgent() bool {\n\treturn p.HasBotAgent != nil\n}\n\nfunc (p *BotConfig) IsSetBotVoices() bool {\n\treturn p.BotVoices != nil\n}\n\nfunc (p *BotConfig) IsSetTotalPluginsCount() bool {\n\treturn p.TotalPluginsCount != nil\n}\n\nfunc (p *BotConfig) IsSetTotalKnowledgesCount() bool {\n\treturn p.TotalKnowledgesCount != nil\n}\n\nfunc (p *BotConfig) IsSetTotalWorkflowsCount() bool {\n\treturn p.TotalWorkflowsCount != nil\n}\n\nfunc (p *BotConfig) IsSetTimeCapsuleMode() bool {\n\treturn p.TimeCapsuleMode != nil\n}\n\nfunc (p *BotConfig) IsSetFileboxMode() bool {\n\treturn p.FileboxMode != nil\n}\n\nfunc (p *BotConfig) IsSetPrivateImageWorkflowCount() bool {\n\treturn p.PrivateImageWorkflowCount != nil\n}\n\nfunc (p *BotConfig) IsSetUserQueryCollectConf() bool {\n\treturn p.UserQueryCollectConf != nil\n}\n\nfunc (p *BotConfig) IsSetIsCloseVoiceCall() bool {\n\treturn p.IsCloseVoiceCall != nil\n}\n\nfunc (p *BotConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotConfig) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProductMaterial, 0, size)\n\tvalues := make([]ProductMaterial, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Models = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProductMaterial, 0, size)\n\tvalues := make([]ProductMaterial, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Plugins = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProductMaterial, 0, size)\n\tvalues := make([]ProductMaterial, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Knowledges = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProductMaterial, 0, size)\n\tvalues := make([]ProductMaterial, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Workflows = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PrivatePluginsCount = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PrivateKnowledgesCount = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PrivateWorkflowsCount = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HasBotAgent = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField9(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*BotVoiceInfo, 0, size)\n\tvalues := make([]BotVoiceInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BotVoices = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TotalPluginsCount = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TotalKnowledgesCount = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TotalWorkflowsCount = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *TimeCapsuleMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := TimeCapsuleMode(v)\n\t\t_field = &tmp\n\t}\n\tp.TimeCapsuleMode = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *FileboxInfoMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := FileboxInfoMode(v)\n\t\t_field = &tmp\n\t}\n\tp.FileboxMode = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PrivateImageWorkflowCount = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField16(iprot thrift.TProtocol) error {\n\t_field := NewUserQueryCollectConf()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserQueryCollectConf = _field\n\treturn nil\n}\nfunc (p *BotConfig) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsCloseVoiceCall = _field\n\treturn nil\n}\n\nfunc (p *BotConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModels() {\n\t\tif err = oprot.WriteFieldBegin(\"Models\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Models)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Models {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPlugins() {\n\t\tif err = oprot.WriteFieldBegin(\"Plugins\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Plugins)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Plugins {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKnowledges() {\n\t\tif err = oprot.WriteFieldBegin(\"Knowledges\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Knowledges)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Knowledges {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflows() {\n\t\tif err = oprot.WriteFieldBegin(\"Workflows\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Workflows)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Workflows {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrivatePluginsCount() {\n\t\tif err = oprot.WriteFieldBegin(\"PrivatePluginsCount\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PrivatePluginsCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrivateKnowledgesCount() {\n\t\tif err = oprot.WriteFieldBegin(\"PrivateKnowledgesCount\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PrivateKnowledgesCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrivateWorkflowsCount() {\n\t\tif err = oprot.WriteFieldBegin(\"PrivateWorkflowsCount\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PrivateWorkflowsCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHasBotAgent() {\n\t\tif err = oprot.WriteFieldBegin(\"HasBotAgent\", thrift.BOOL, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HasBotAgent); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotVoices() {\n\t\tif err = oprot.WriteFieldBegin(\"BotVoices\", thrift.LIST, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.BotVoices)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.BotVoices {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTotalPluginsCount() {\n\t\tif err = oprot.WriteFieldBegin(\"TotalPluginsCount\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.TotalPluginsCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTotalKnowledgesCount() {\n\t\tif err = oprot.WriteFieldBegin(\"TotalKnowledgesCount\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.TotalKnowledgesCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTotalWorkflowsCount() {\n\t\tif err = oprot.WriteFieldBegin(\"TotalWorkflowsCount\", thrift.I32, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.TotalWorkflowsCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTimeCapsuleMode() {\n\t\tif err = oprot.WriteFieldBegin(\"TimeCapsuleMode\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.TimeCapsuleMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFileboxMode() {\n\t\tif err = oprot.WriteFieldBegin(\"FileboxMode\", thrift.I32, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FileboxMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrivateImageWorkflowCount() {\n\t\tif err = oprot.WriteFieldBegin(\"PrivateImageWorkflowCount\", thrift.I32, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PrivateImageWorkflowCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserQueryCollectConf() {\n\t\tif err = oprot.WriteFieldBegin(\"UserQueryCollectConf\", thrift.STRUCT, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.UserQueryCollectConf.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *BotConfig) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsCloseVoiceCall() {\n\t\tif err = oprot.WriteFieldBegin(\"IsCloseVoiceCall\", thrift.BOOL, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsCloseVoiceCall); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\n\nfunc (p *BotConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotConfig(%+v)\", *p)\n\n}\n\n// The bot information involved in the message, sharing the scene in the home, the message belongs to multiple bots\ntype ConversationRelateBot struct {\n\tID          int64  `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\tName        string `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\tDescription string `thrift:\"Description,3\" form:\"description\" json:\"description\"`\n\tIconURL     string `thrift:\"IconURL,4\" form:\"icon_url\" json:\"icon_url\"`\n}\n\nfunc NewConversationRelateBot() *ConversationRelateBot {\n\treturn &ConversationRelateBot{}\n}\n\nfunc (p *ConversationRelateBot) InitDefault() {\n}\n\nfunc (p *ConversationRelateBot) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *ConversationRelateBot) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ConversationRelateBot) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *ConversationRelateBot) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nvar fieldIDToName_ConversationRelateBot = map[int16]string{\n\t1: \"ID\",\n\t2: \"Name\",\n\t3: \"Description\",\n\t4: \"IconURL\",\n}\n\nfunc (p *ConversationRelateBot) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationRelateBot[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationRelateBot) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ConversationRelateBot) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ConversationRelateBot) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *ConversationRelateBot) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\n\nfunc (p *ConversationRelateBot) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConversationRelateBot\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationRelateBot) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConversationRelateBot) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ConversationRelateBot) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ConversationRelateBot) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IconURL\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *ConversationRelateBot) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationRelateBot(%+v)\", *p)\n\n}\n\n// The user information involved in the message, sharing the scene in the home, the message belongs to multiple users\ntype ConversationRelateUser struct {\n\tUserInfo *product_common.UserInfo `thrift:\"UserInfo,1,optional\" form:\"user_info\" json:\"user_info,omitempty\"`\n}\n\nfunc NewConversationRelateUser() *ConversationRelateUser {\n\treturn &ConversationRelateUser{}\n}\n\nfunc (p *ConversationRelateUser) InitDefault() {\n}\n\nvar ConversationRelateUser_UserInfo_DEFAULT *product_common.UserInfo\n\nfunc (p *ConversationRelateUser) GetUserInfo() (v *product_common.UserInfo) {\n\tif !p.IsSetUserInfo() {\n\t\treturn ConversationRelateUser_UserInfo_DEFAULT\n\t}\n\treturn p.UserInfo\n}\n\nvar fieldIDToName_ConversationRelateUser = map[int16]string{\n\t1: \"UserInfo\",\n}\n\nfunc (p *ConversationRelateUser) IsSetUserInfo() bool {\n\treturn p.UserInfo != nil\n}\n\nfunc (p *ConversationRelateUser) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationRelateUser[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationRelateUser) ReadField1(iprot thrift.TProtocol) error {\n\t_field := product_common.NewUserInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserInfo = _field\n\treturn nil\n}\n\nfunc (p *ConversationRelateUser) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConversationRelateUser\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationRelateUser) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"UserInfo\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.UserInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ConversationRelateUser) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationRelateUser(%+v)\", *p)\n\n}\n\ntype Conversation struct {\n\t// conversation example\n\tSnippets []string `thrift:\"Snippets,1,optional\" form:\"snippets\" json:\"snippets,omitempty\"`\n\t// conversation title\n\tTitle *string `thrift:\"Title,2,optional\" form:\"title\" json:\"title,omitempty\"`\n\t// Conversation ID, generated by idGen\n\tID *int64 `thrift:\"ID,3,optional\" form:\"id\" json:\"id,string,omitempty\"`\n\t// Do you need to generate a conversation?\n\tGenTitle *bool `thrift:\"GenTitle,4,optional\" form:\"gen_title\" json:\"gen_title,omitempty\"`\n\t// conversation moderation status\n\tAuditStatus *product_common.AuditStatus `thrift:\"AuditStatus,5,optional\" form:\"audit_status\" json:\"audit_status,omitempty\"`\n\t// opening statement\n\tOpeningDialog *product_common.OpeningDialog `thrift:\"OpeningDialog,6,optional\" form:\"opening_dialog\" json:\"opening_dialog,omitempty\"`\n\t// The bot information involved in the message, key bot_id\n\tRelateBots map[string]*ConversationRelateBot `thrift:\"RelateBots,7,optional\" form:\"relate_bots\" json:\"relate_bots,omitempty\"`\n\t// The user information involved in the message, key user_id\n\tRelateUsers map[string]*ConversationRelateUser `thrift:\"RelateUsers,8,optional\" form:\"relate_users\" json:\"relate_users,omitempty\"`\n}\n\nfunc NewConversation() *Conversation {\n\treturn &Conversation{}\n}\n\nfunc (p *Conversation) InitDefault() {\n}\n\nvar Conversation_Snippets_DEFAULT []string\n\nfunc (p *Conversation) GetSnippets() (v []string) {\n\tif !p.IsSetSnippets() {\n\t\treturn Conversation_Snippets_DEFAULT\n\t}\n\treturn p.Snippets\n}\n\nvar Conversation_Title_DEFAULT string\n\nfunc (p *Conversation) GetTitle() (v string) {\n\tif !p.IsSetTitle() {\n\t\treturn Conversation_Title_DEFAULT\n\t}\n\treturn *p.Title\n}\n\nvar Conversation_ID_DEFAULT int64\n\nfunc (p *Conversation) GetID() (v int64) {\n\tif !p.IsSetID() {\n\t\treturn Conversation_ID_DEFAULT\n\t}\n\treturn *p.ID\n}\n\nvar Conversation_GenTitle_DEFAULT bool\n\nfunc (p *Conversation) GetGenTitle() (v bool) {\n\tif !p.IsSetGenTitle() {\n\t\treturn Conversation_GenTitle_DEFAULT\n\t}\n\treturn *p.GenTitle\n}\n\nvar Conversation_AuditStatus_DEFAULT product_common.AuditStatus\n\nfunc (p *Conversation) GetAuditStatus() (v product_common.AuditStatus) {\n\tif !p.IsSetAuditStatus() {\n\t\treturn Conversation_AuditStatus_DEFAULT\n\t}\n\treturn *p.AuditStatus\n}\n\nvar Conversation_OpeningDialog_DEFAULT *product_common.OpeningDialog\n\nfunc (p *Conversation) GetOpeningDialog() (v *product_common.OpeningDialog) {\n\tif !p.IsSetOpeningDialog() {\n\t\treturn Conversation_OpeningDialog_DEFAULT\n\t}\n\treturn p.OpeningDialog\n}\n\nvar Conversation_RelateBots_DEFAULT map[string]*ConversationRelateBot\n\nfunc (p *Conversation) GetRelateBots() (v map[string]*ConversationRelateBot) {\n\tif !p.IsSetRelateBots() {\n\t\treturn Conversation_RelateBots_DEFAULT\n\t}\n\treturn p.RelateBots\n}\n\nvar Conversation_RelateUsers_DEFAULT map[string]*ConversationRelateUser\n\nfunc (p *Conversation) GetRelateUsers() (v map[string]*ConversationRelateUser) {\n\tif !p.IsSetRelateUsers() {\n\t\treturn Conversation_RelateUsers_DEFAULT\n\t}\n\treturn p.RelateUsers\n}\n\nvar fieldIDToName_Conversation = map[int16]string{\n\t1: \"Snippets\",\n\t2: \"Title\",\n\t3: \"ID\",\n\t4: \"GenTitle\",\n\t5: \"AuditStatus\",\n\t6: \"OpeningDialog\",\n\t7: \"RelateBots\",\n\t8: \"RelateUsers\",\n}\n\nfunc (p *Conversation) IsSetSnippets() bool {\n\treturn p.Snippets != nil\n}\n\nfunc (p *Conversation) IsSetTitle() bool {\n\treturn p.Title != nil\n}\n\nfunc (p *Conversation) IsSetID() bool {\n\treturn p.ID != nil\n}\n\nfunc (p *Conversation) IsSetGenTitle() bool {\n\treturn p.GenTitle != nil\n}\n\nfunc (p *Conversation) IsSetAuditStatus() bool {\n\treturn p.AuditStatus != nil\n}\n\nfunc (p *Conversation) IsSetOpeningDialog() bool {\n\treturn p.OpeningDialog != nil\n}\n\nfunc (p *Conversation) IsSetRelateBots() bool {\n\treturn p.RelateBots != nil\n}\n\nfunc (p *Conversation) IsSetRelateUsers() bool {\n\treturn p.RelateUsers != nil\n}\n\nfunc (p *Conversation) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Conversation[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Conversation) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Snippets = _field\n\treturn nil\n}\nfunc (p *Conversation) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Title = _field\n\treturn nil\n}\nfunc (p *Conversation) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *Conversation) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.GenTitle = _field\n\treturn nil\n}\nfunc (p *Conversation) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.AuditStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.AuditStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.AuditStatus = _field\n\treturn nil\n}\nfunc (p *Conversation) ReadField6(iprot thrift.TProtocol) error {\n\t_field := product_common.NewOpeningDialog()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OpeningDialog = _field\n\treturn nil\n}\nfunc (p *Conversation) ReadField7(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*ConversationRelateBot, size)\n\tvalues := make([]ConversationRelateBot, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RelateBots = _field\n\treturn nil\n}\nfunc (p *Conversation) ReadField8(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*ConversationRelateUser, size)\n\tvalues := make([]ConversationRelateUser, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RelateUsers = _field\n\treturn nil\n}\n\nfunc (p *Conversation) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Conversation\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Conversation) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSnippets() {\n\t\tif err = oprot.WriteFieldBegin(\"Snippets\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Snippets)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Snippets {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Conversation) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTitle() {\n\t\tif err = oprot.WriteFieldBegin(\"Title\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Title); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Conversation) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetID() {\n\t\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Conversation) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetGenTitle() {\n\t\tif err = oprot.WriteFieldBegin(\"GenTitle\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.GenTitle); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Conversation) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuditStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"AuditStatus\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AuditStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Conversation) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOpeningDialog() {\n\t\tif err = oprot.WriteFieldBegin(\"OpeningDialog\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.OpeningDialog.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Conversation) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRelateBots() {\n\t\tif err = oprot.WriteFieldBegin(\"RelateBots\", thrift.MAP, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.RelateBots)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.RelateBots {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Conversation) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRelateUsers() {\n\t\tif err = oprot.WriteFieldBegin(\"RelateUsers\", thrift.MAP, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.RelateUsers)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.RelateUsers {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *Conversation) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Conversation(%+v)\", *p)\n\n}\n\ntype BotExtraInfo struct {\n\t// publish platforms\n\tPublishPlatforms []*BotPublishPlatform `thrift:\"PublishPlatforms,1\" form:\"publish_platforms\" json:\"publish_platforms\"`\n\t// user count\n\tUserCount int32 `thrift:\"UserCount,2\" form:\"user_count\" json:\"user_count\"`\n\t// public method\n\tPublishMode product_common.ProductPublishMode `thrift:\"PublishMode,3\" form:\"publish_mode\" json:\"publish_mode\"`\n\t// Details page unique\n\tConversationSnippets [][]string `thrift:\"ConversationSnippets,4,optional\" form:\"conversation_snippets\" json:\"conversation_snippets,omitempty\"`\n\t// configuration\n\tConfig *BotConfig `thrift:\"Config,5,optional\" form:\"config\" json:\"config,omitempty\"`\n\t// whitelist\n\tIsInhouseUser *bool `thrift:\"IsInhouseUser,6,optional\" form:\"is_inhouse_user\" json:\"is_inhouse_user,omitempty\"`\n\t// Number of copy-created bots\n\tDuplicateBotCount *int32 `thrift:\"DuplicateBotCount,7,optional\" form:\"duplicate_bot_count\" json:\"duplicate_bot_count,omitempty\"`\n\t// Share the conversation\n\tConversations []*Conversation `thrift:\"Conversations,8,optional\" form:\"conversations\" json:\"conversations,omitempty\"`\n\t// Number of conversations with Bot\n\tChatConversationCount *int64 `thrift:\"ChatConversationCount,9,optional\" form:\"chat_conversation_count\" json:\"chat_conversation_count,string,omitempty\"`\n\t// number of related products\n\tRelatedProductCount *int64 `thrift:\"RelatedProductCount,10,optional\" form:\"related_product_count\" json:\"related_product_count,string,omitempty\"`\n}\n\nfunc NewBotExtraInfo() *BotExtraInfo {\n\treturn &BotExtraInfo{}\n}\n\nfunc (p *BotExtraInfo) InitDefault() {\n}\n\nfunc (p *BotExtraInfo) GetPublishPlatforms() (v []*BotPublishPlatform) {\n\treturn p.PublishPlatforms\n}\n\nfunc (p *BotExtraInfo) GetUserCount() (v int32) {\n\treturn p.UserCount\n}\n\nfunc (p *BotExtraInfo) GetPublishMode() (v product_common.ProductPublishMode) {\n\treturn p.PublishMode\n}\n\nvar BotExtraInfo_ConversationSnippets_DEFAULT [][]string\n\nfunc (p *BotExtraInfo) GetConversationSnippets() (v [][]string) {\n\tif !p.IsSetConversationSnippets() {\n\t\treturn BotExtraInfo_ConversationSnippets_DEFAULT\n\t}\n\treturn p.ConversationSnippets\n}\n\nvar BotExtraInfo_Config_DEFAULT *BotConfig\n\nfunc (p *BotExtraInfo) GetConfig() (v *BotConfig) {\n\tif !p.IsSetConfig() {\n\t\treturn BotExtraInfo_Config_DEFAULT\n\t}\n\treturn p.Config\n}\n\nvar BotExtraInfo_IsInhouseUser_DEFAULT bool\n\nfunc (p *BotExtraInfo) GetIsInhouseUser() (v bool) {\n\tif !p.IsSetIsInhouseUser() {\n\t\treturn BotExtraInfo_IsInhouseUser_DEFAULT\n\t}\n\treturn *p.IsInhouseUser\n}\n\nvar BotExtraInfo_DuplicateBotCount_DEFAULT int32\n\nfunc (p *BotExtraInfo) GetDuplicateBotCount() (v int32) {\n\tif !p.IsSetDuplicateBotCount() {\n\t\treturn BotExtraInfo_DuplicateBotCount_DEFAULT\n\t}\n\treturn *p.DuplicateBotCount\n}\n\nvar BotExtraInfo_Conversations_DEFAULT []*Conversation\n\nfunc (p *BotExtraInfo) GetConversations() (v []*Conversation) {\n\tif !p.IsSetConversations() {\n\t\treturn BotExtraInfo_Conversations_DEFAULT\n\t}\n\treturn p.Conversations\n}\n\nvar BotExtraInfo_ChatConversationCount_DEFAULT int64\n\nfunc (p *BotExtraInfo) GetChatConversationCount() (v int64) {\n\tif !p.IsSetChatConversationCount() {\n\t\treturn BotExtraInfo_ChatConversationCount_DEFAULT\n\t}\n\treturn *p.ChatConversationCount\n}\n\nvar BotExtraInfo_RelatedProductCount_DEFAULT int64\n\nfunc (p *BotExtraInfo) GetRelatedProductCount() (v int64) {\n\tif !p.IsSetRelatedProductCount() {\n\t\treturn BotExtraInfo_RelatedProductCount_DEFAULT\n\t}\n\treturn *p.RelatedProductCount\n}\n\nvar fieldIDToName_BotExtraInfo = map[int16]string{\n\t1:  \"PublishPlatforms\",\n\t2:  \"UserCount\",\n\t3:  \"PublishMode\",\n\t4:  \"ConversationSnippets\",\n\t5:  \"Config\",\n\t6:  \"IsInhouseUser\",\n\t7:  \"DuplicateBotCount\",\n\t8:  \"Conversations\",\n\t9:  \"ChatConversationCount\",\n\t10: \"RelatedProductCount\",\n}\n\nfunc (p *BotExtraInfo) IsSetConversationSnippets() bool {\n\treturn p.ConversationSnippets != nil\n}\n\nfunc (p *BotExtraInfo) IsSetConfig() bool {\n\treturn p.Config != nil\n}\n\nfunc (p *BotExtraInfo) IsSetIsInhouseUser() bool {\n\treturn p.IsInhouseUser != nil\n}\n\nfunc (p *BotExtraInfo) IsSetDuplicateBotCount() bool {\n\treturn p.DuplicateBotCount != nil\n}\n\nfunc (p *BotExtraInfo) IsSetConversations() bool {\n\treturn p.Conversations != nil\n}\n\nfunc (p *BotExtraInfo) IsSetChatConversationCount() bool {\n\treturn p.ChatConversationCount != nil\n}\n\nfunc (p *BotExtraInfo) IsSetRelatedProductCount() bool {\n\treturn p.RelatedProductCount != nil\n}\n\nfunc (p *BotExtraInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotExtraInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotExtraInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*BotPublishPlatform, 0, size)\n\tvalues := make([]BotPublishPlatform, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PublishPlatforms = _field\n\treturn nil\n}\nfunc (p *BotExtraInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserCount = _field\n\treturn nil\n}\nfunc (p *BotExtraInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.ProductPublishMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.ProductPublishMode(v)\n\t}\n\tp.PublishMode = _field\n\treturn nil\n}\nfunc (p *BotExtraInfo) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([][]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\t\t_, size, err := iprot.ReadListBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_elem := make([]string, 0, size)\n\t\tfor i := 0; i < size; i++ {\n\n\t\t\tvar _elem1 string\n\t\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\t_elem1 = v\n\t\t\t}\n\n\t\t\t_elem = append(_elem, _elem1)\n\t\t}\n\t\tif err := iprot.ReadListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ConversationSnippets = _field\n\treturn nil\n}\nfunc (p *BotExtraInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewBotConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Config = _field\n\treturn nil\n}\nfunc (p *BotExtraInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsInhouseUser = _field\n\treturn nil\n}\nfunc (p *BotExtraInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DuplicateBotCount = _field\n\treturn nil\n}\nfunc (p *BotExtraInfo) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Conversation, 0, size)\n\tvalues := make([]Conversation, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Conversations = _field\n\treturn nil\n}\nfunc (p *BotExtraInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ChatConversationCount = _field\n\treturn nil\n}\nfunc (p *BotExtraInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RelatedProductCount = _field\n\treturn nil\n}\n\nfunc (p *BotExtraInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotExtraInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotExtraInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PublishPlatforms\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PublishPlatforms)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PublishPlatforms {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotExtraInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserCount\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.UserCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotExtraInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PublishMode\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PublishMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotExtraInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConversationSnippets() {\n\t\tif err = oprot.WriteFieldBegin(\"ConversationSnippets\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.LIST, len(p.ConversationSnippets)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ConversationSnippets {\n\t\t\tif err := oprot.WriteListBegin(thrift.STRING, len(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfor _, v := range v {\n\t\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BotExtraInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"Config\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Config.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BotExtraInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsInhouseUser() {\n\t\tif err = oprot.WriteFieldBegin(\"IsInhouseUser\", thrift.BOOL, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsInhouseUser); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *BotExtraInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDuplicateBotCount() {\n\t\tif err = oprot.WriteFieldBegin(\"DuplicateBotCount\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.DuplicateBotCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *BotExtraInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConversations() {\n\t\tif err = oprot.WriteFieldBegin(\"Conversations\", thrift.LIST, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Conversations)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Conversations {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *BotExtraInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChatConversationCount() {\n\t\tif err = oprot.WriteFieldBegin(\"ChatConversationCount\", thrift.I64, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ChatConversationCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *BotExtraInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRelatedProductCount() {\n\t\tif err = oprot.WriteFieldBegin(\"RelatedProductCount\", thrift.I64, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.RelatedProductCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\n\nfunc (p *BotExtraInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotExtraInfo(%+v)\", *p)\n\n}\n\ntype WorkflowParameter struct {\n\tName          string                   `thrift:\"Name,1\" form:\"name\" json:\"name\"`\n\tDesc          string                   `thrift:\"Desc,2\" form:\"desc\" json:\"desc\"`\n\tIsRequired    bool                     `thrift:\"IsRequired,3\" form:\"is_required\" json:\"is_required\"`\n\tInputType     product_common.InputType `thrift:\"InputType,4\" form:\"input_type\" json:\"input_type\"`\n\tSubParameters []*WorkflowParameter     `thrift:\"SubParameters,5\" form:\"sub_parameters\" json:\"sub_parameters\"`\n\t// If Type is an array, there is a subtype\n\tSubType product_common.InputType `thrift:\"SubType,6\" form:\"sub_type\" json:\"sub_type\"`\n\t// If the imported parameter is the user's hand input, put it here\n\tValue      *string                               `thrift:\"Value,7,optional\" form:\"value\" json:\"value,omitempty\"`\n\tFormat     *product_common.PluginParamTypeFormat `thrift:\"Format,8,optional\" form:\"format\" json:\"format,omitempty\"`\n\tFromNodeId *string                               `thrift:\"FromNodeId,9,optional\" form:\"from_node_id\" json:\"from_node_id,omitempty\"`\n\tFromOutput []string                              `thrift:\"FromOutput,10,optional\" form:\"from_output\" json:\"from_output,omitempty\"`\n\t// InputType (+ AssistType) defines the final type of a variable, which only needs to be passed through\n\tAssistType *int64 `thrift:\"AssistType,11,optional\" form:\"assist_type\" json:\"assist_type,omitempty\"`\n\t// Display name (unique to the store, used for details page GUI display parameters)\n\tShowName *string `thrift:\"ShowName,12,optional\" form:\"show_name\" json:\"show_name,omitempty\"`\n\t// If the InputType is an array, there is a subassistant type\n\tSubAssistType *int64 `thrift:\"SubAssistType,13,optional\" form:\"sub_assist_type\" json:\"sub_assist_type,omitempty\"`\n\t// Component configuration, parsed and rendered by the front end\n\tComponentConfig *string `thrift:\"ComponentConfig,14,optional\" form:\"component_config\" json:\"component_config,omitempty\"`\n\t// Component configuration type, required for front-end display\n\tComponentType *string `thrift:\"ComponentType,15,optional\" form:\"component_type\" json:\"component_type,omitempty\"`\n}\n\nfunc NewWorkflowParameter() *WorkflowParameter {\n\treturn &WorkflowParameter{}\n}\n\nfunc (p *WorkflowParameter) InitDefault() {\n}\n\nfunc (p *WorkflowParameter) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *WorkflowParameter) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *WorkflowParameter) GetIsRequired() (v bool) {\n\treturn p.IsRequired\n}\n\nfunc (p *WorkflowParameter) GetInputType() (v product_common.InputType) {\n\treturn p.InputType\n}\n\nfunc (p *WorkflowParameter) GetSubParameters() (v []*WorkflowParameter) {\n\treturn p.SubParameters\n}\n\nfunc (p *WorkflowParameter) GetSubType() (v product_common.InputType) {\n\treturn p.SubType\n}\n\nvar WorkflowParameter_Value_DEFAULT string\n\nfunc (p *WorkflowParameter) GetValue() (v string) {\n\tif !p.IsSetValue() {\n\t\treturn WorkflowParameter_Value_DEFAULT\n\t}\n\treturn *p.Value\n}\n\nvar WorkflowParameter_Format_DEFAULT product_common.PluginParamTypeFormat\n\nfunc (p *WorkflowParameter) GetFormat() (v product_common.PluginParamTypeFormat) {\n\tif !p.IsSetFormat() {\n\t\treturn WorkflowParameter_Format_DEFAULT\n\t}\n\treturn *p.Format\n}\n\nvar WorkflowParameter_FromNodeId_DEFAULT string\n\nfunc (p *WorkflowParameter) GetFromNodeId() (v string) {\n\tif !p.IsSetFromNodeId() {\n\t\treturn WorkflowParameter_FromNodeId_DEFAULT\n\t}\n\treturn *p.FromNodeId\n}\n\nvar WorkflowParameter_FromOutput_DEFAULT []string\n\nfunc (p *WorkflowParameter) GetFromOutput() (v []string) {\n\tif !p.IsSetFromOutput() {\n\t\treturn WorkflowParameter_FromOutput_DEFAULT\n\t}\n\treturn p.FromOutput\n}\n\nvar WorkflowParameter_AssistType_DEFAULT int64\n\nfunc (p *WorkflowParameter) GetAssistType() (v int64) {\n\tif !p.IsSetAssistType() {\n\t\treturn WorkflowParameter_AssistType_DEFAULT\n\t}\n\treturn *p.AssistType\n}\n\nvar WorkflowParameter_ShowName_DEFAULT string\n\nfunc (p *WorkflowParameter) GetShowName() (v string) {\n\tif !p.IsSetShowName() {\n\t\treturn WorkflowParameter_ShowName_DEFAULT\n\t}\n\treturn *p.ShowName\n}\n\nvar WorkflowParameter_SubAssistType_DEFAULT int64\n\nfunc (p *WorkflowParameter) GetSubAssistType() (v int64) {\n\tif !p.IsSetSubAssistType() {\n\t\treturn WorkflowParameter_SubAssistType_DEFAULT\n\t}\n\treturn *p.SubAssistType\n}\n\nvar WorkflowParameter_ComponentConfig_DEFAULT string\n\nfunc (p *WorkflowParameter) GetComponentConfig() (v string) {\n\tif !p.IsSetComponentConfig() {\n\t\treturn WorkflowParameter_ComponentConfig_DEFAULT\n\t}\n\treturn *p.ComponentConfig\n}\n\nvar WorkflowParameter_ComponentType_DEFAULT string\n\nfunc (p *WorkflowParameter) GetComponentType() (v string) {\n\tif !p.IsSetComponentType() {\n\t\treturn WorkflowParameter_ComponentType_DEFAULT\n\t}\n\treturn *p.ComponentType\n}\n\nvar fieldIDToName_WorkflowParameter = map[int16]string{\n\t1:  \"Name\",\n\t2:  \"Desc\",\n\t3:  \"IsRequired\",\n\t4:  \"InputType\",\n\t5:  \"SubParameters\",\n\t6:  \"SubType\",\n\t7:  \"Value\",\n\t8:  \"Format\",\n\t9:  \"FromNodeId\",\n\t10: \"FromOutput\",\n\t11: \"AssistType\",\n\t12: \"ShowName\",\n\t13: \"SubAssistType\",\n\t14: \"ComponentConfig\",\n\t15: \"ComponentType\",\n}\n\nfunc (p *WorkflowParameter) IsSetValue() bool {\n\treturn p.Value != nil\n}\n\nfunc (p *WorkflowParameter) IsSetFormat() bool {\n\treturn p.Format != nil\n}\n\nfunc (p *WorkflowParameter) IsSetFromNodeId() bool {\n\treturn p.FromNodeId != nil\n}\n\nfunc (p *WorkflowParameter) IsSetFromOutput() bool {\n\treturn p.FromOutput != nil\n}\n\nfunc (p *WorkflowParameter) IsSetAssistType() bool {\n\treturn p.AssistType != nil\n}\n\nfunc (p *WorkflowParameter) IsSetShowName() bool {\n\treturn p.ShowName != nil\n}\n\nfunc (p *WorkflowParameter) IsSetSubAssistType() bool {\n\treturn p.SubAssistType != nil\n}\n\nfunc (p *WorkflowParameter) IsSetComponentConfig() bool {\n\treturn p.ComponentConfig != nil\n}\n\nfunc (p *WorkflowParameter) IsSetComponentType() bool {\n\treturn p.ComponentType != nil\n}\n\nfunc (p *WorkflowParameter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowParameter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowParameter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsRequired = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.InputType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.InputType(v)\n\t}\n\tp.InputType = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowParameter, 0, size)\n\tvalues := make([]WorkflowParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubParameters = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.InputType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.InputType(v)\n\t}\n\tp.SubType = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.PluginParamTypeFormat\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.PluginParamTypeFormat(v)\n\t\t_field = &tmp\n\t}\n\tp.Format = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FromNodeId = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField10(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FromOutput = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AssistType = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ShowName = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubAssistType = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ComponentConfig = _field\n\treturn nil\n}\nfunc (p *WorkflowParameter) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ComponentType = _field\n\treturn nil\n}\n\nfunc (p *WorkflowParameter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowParameter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowParameter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Desc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsRequired\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsRequired); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"InputType\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.InputType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SubParameters\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubParameters)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SubParameters {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SubType\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SubType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetValue() {\n\t\tif err = oprot.WriteFieldBegin(\"Value\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFormat() {\n\t\tif err = oprot.WriteFieldBegin(\"Format\", thrift.I32, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Format)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFromNodeId() {\n\t\tif err = oprot.WriteFieldBegin(\"FromNodeId\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FromNodeId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFromOutput() {\n\t\tif err = oprot.WriteFieldBegin(\"FromOutput\", thrift.LIST, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.FromOutput)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FromOutput {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAssistType() {\n\t\tif err = oprot.WriteFieldBegin(\"AssistType\", thrift.I64, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.AssistType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShowName() {\n\t\tif err = oprot.WriteFieldBegin(\"ShowName\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ShowName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubAssistType() {\n\t\tif err = oprot.WriteFieldBegin(\"SubAssistType\", thrift.I64, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SubAssistType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetComponentConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"ComponentConfig\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ComponentConfig); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *WorkflowParameter) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetComponentType() {\n\t\tif err = oprot.WriteFieldBegin(\"ComponentType\", thrift.STRING, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ComponentType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\n\nfunc (p *WorkflowParameter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowParameter(%+v)\", *p)\n\n}\n\ntype WorkflowTerminatePlan struct {\n\t// The answer mode corresponding to the end node of the workflow: 1 - Return the variable, and the Bot generates the answer; 2 - Use the set content to answer directly\n\tTerminatePlanType int32 `thrift:\"TerminatePlanType,1\" form:\"terminate_plan_type\" json:\"terminate_plan_type\"`\n\t// Return content of scene configuration corresponding to terminate_plan_type = 2\n\tContent string `thrift:\"Content,2\" form:\"content\" json:\"content\"`\n}\n\nfunc NewWorkflowTerminatePlan() *WorkflowTerminatePlan {\n\treturn &WorkflowTerminatePlan{}\n}\n\nfunc (p *WorkflowTerminatePlan) InitDefault() {\n}\n\nfunc (p *WorkflowTerminatePlan) GetTerminatePlanType() (v int32) {\n\treturn p.TerminatePlanType\n}\n\nfunc (p *WorkflowTerminatePlan) GetContent() (v string) {\n\treturn p.Content\n}\n\nvar fieldIDToName_WorkflowTerminatePlan = map[int16]string{\n\t1: \"TerminatePlanType\",\n\t2: \"Content\",\n}\n\nfunc (p *WorkflowTerminatePlan) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowTerminatePlan[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowTerminatePlan) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TerminatePlanType = _field\n\treturn nil\n}\nfunc (p *WorkflowTerminatePlan) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\n\nfunc (p *WorkflowTerminatePlan) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowTerminatePlan\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowTerminatePlan) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TerminatePlanType\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TerminatePlanType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowTerminatePlan) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Content\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *WorkflowTerminatePlan) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowTerminatePlan(%+v)\", *p)\n\n}\n\ntype WorkflowNodeParam struct {\n\tInputParameters  []*WorkflowParameter   `thrift:\"InputParameters,1,optional\" form:\"input_parameters\" json:\"input_parameters,omitempty\"`\n\tTerminatePlan    *WorkflowTerminatePlan `thrift:\"TerminatePlan,2,optional\" form:\"terminate_plan\" json:\"terminate_plan,omitempty\"`\n\tOutpurParameters []*WorkflowParameter   `thrift:\"OutpurParameters,3,optional\" form:\"output_parameters\" json:\"output_parameters,omitempty\"`\n}\n\nfunc NewWorkflowNodeParam() *WorkflowNodeParam {\n\treturn &WorkflowNodeParam{}\n}\n\nfunc (p *WorkflowNodeParam) InitDefault() {\n}\n\nvar WorkflowNodeParam_InputParameters_DEFAULT []*WorkflowParameter\n\nfunc (p *WorkflowNodeParam) GetInputParameters() (v []*WorkflowParameter) {\n\tif !p.IsSetInputParameters() {\n\t\treturn WorkflowNodeParam_InputParameters_DEFAULT\n\t}\n\treturn p.InputParameters\n}\n\nvar WorkflowNodeParam_TerminatePlan_DEFAULT *WorkflowTerminatePlan\n\nfunc (p *WorkflowNodeParam) GetTerminatePlan() (v *WorkflowTerminatePlan) {\n\tif !p.IsSetTerminatePlan() {\n\t\treturn WorkflowNodeParam_TerminatePlan_DEFAULT\n\t}\n\treturn p.TerminatePlan\n}\n\nvar WorkflowNodeParam_OutpurParameters_DEFAULT []*WorkflowParameter\n\nfunc (p *WorkflowNodeParam) GetOutpurParameters() (v []*WorkflowParameter) {\n\tif !p.IsSetOutpurParameters() {\n\t\treturn WorkflowNodeParam_OutpurParameters_DEFAULT\n\t}\n\treturn p.OutpurParameters\n}\n\nvar fieldIDToName_WorkflowNodeParam = map[int16]string{\n\t1: \"InputParameters\",\n\t2: \"TerminatePlan\",\n\t3: \"OutpurParameters\",\n}\n\nfunc (p *WorkflowNodeParam) IsSetInputParameters() bool {\n\treturn p.InputParameters != nil\n}\n\nfunc (p *WorkflowNodeParam) IsSetTerminatePlan() bool {\n\treturn p.TerminatePlan != nil\n}\n\nfunc (p *WorkflowNodeParam) IsSetOutpurParameters() bool {\n\treturn p.OutpurParameters != nil\n}\n\nfunc (p *WorkflowNodeParam) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowNodeParam[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeParam) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowParameter, 0, size)\n\tvalues := make([]WorkflowParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.InputParameters = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeParam) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowTerminatePlan()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TerminatePlan = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeParam) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowParameter, 0, size)\n\tvalues := make([]WorkflowParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OutpurParameters = _field\n\treturn nil\n}\n\nfunc (p *WorkflowNodeParam) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowNodeParam\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeParam) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInputParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"InputParameters\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.InputParameters)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.InputParameters {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowNodeParam) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTerminatePlan() {\n\t\tif err = oprot.WriteFieldBegin(\"TerminatePlan\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TerminatePlan.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowNodeParam) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOutpurParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"OutpurParameters\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OutpurParameters)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.OutpurParameters {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeParam) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowNodeParam(%+v)\", *p)\n\n}\n\ntype WorkflowNodeInfo struct {\n\tNodeID    string                          `thrift:\"NodeID,1\" form:\"node_id\" json:\"node_id\"`\n\tNodeType  product_common.WorkflowNodeType `thrift:\"NodeType,2\" form:\"node_type\" json:\"node_type\"`\n\tNodeParam *WorkflowNodeParam              `thrift:\"NodeParam,3,optional\" form:\"node_param\" json:\"node_param,omitempty\"`\n\t// Node icon\n\tNodeIconURL string `thrift:\"NodeIconURL,4\" form:\"node_icon_url\" json:\"node_icon_url\"`\n\t// Presentation name (unique to the store, the name used for the details page GUI display message node)\n\tShowName *string `thrift:\"ShowName,5,optional\" form:\"show_name\" json:\"show_name,omitempty\"`\n}\n\nfunc NewWorkflowNodeInfo() *WorkflowNodeInfo {\n\treturn &WorkflowNodeInfo{}\n}\n\nfunc (p *WorkflowNodeInfo) InitDefault() {\n}\n\nfunc (p *WorkflowNodeInfo) GetNodeID() (v string) {\n\treturn p.NodeID\n}\n\nfunc (p *WorkflowNodeInfo) GetNodeType() (v product_common.WorkflowNodeType) {\n\treturn p.NodeType\n}\n\nvar WorkflowNodeInfo_NodeParam_DEFAULT *WorkflowNodeParam\n\nfunc (p *WorkflowNodeInfo) GetNodeParam() (v *WorkflowNodeParam) {\n\tif !p.IsSetNodeParam() {\n\t\treturn WorkflowNodeInfo_NodeParam_DEFAULT\n\t}\n\treturn p.NodeParam\n}\n\nfunc (p *WorkflowNodeInfo) GetNodeIconURL() (v string) {\n\treturn p.NodeIconURL\n}\n\nvar WorkflowNodeInfo_ShowName_DEFAULT string\n\nfunc (p *WorkflowNodeInfo) GetShowName() (v string) {\n\tif !p.IsSetShowName() {\n\t\treturn WorkflowNodeInfo_ShowName_DEFAULT\n\t}\n\treturn *p.ShowName\n}\n\nvar fieldIDToName_WorkflowNodeInfo = map[int16]string{\n\t1: \"NodeID\",\n\t2: \"NodeType\",\n\t3: \"NodeParam\",\n\t4: \"NodeIconURL\",\n\t5: \"ShowName\",\n}\n\nfunc (p *WorkflowNodeInfo) IsSetNodeParam() bool {\n\treturn p.NodeParam != nil\n}\n\nfunc (p *WorkflowNodeInfo) IsSetShowName() bool {\n\treturn p.ShowName != nil\n}\n\nfunc (p *WorkflowNodeInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowNodeInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeID = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.WorkflowNodeType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.WorkflowNodeType(v)\n\t}\n\tp.NodeType = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowNodeParam()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.NodeParam = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeIconURL = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ShowName = _field\n\treturn nil\n}\n\nfunc (p *WorkflowNodeInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowNodeInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"NodeID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowNodeInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"NodeType\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.NodeType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowNodeInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodeParam() {\n\t\tif err = oprot.WriteFieldBegin(\"NodeParam\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.NodeParam.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowNodeInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"NodeIconURL\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeIconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowNodeInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShowName() {\n\t\tif err = oprot.WriteFieldBegin(\"ShowName\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ShowName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowNodeInfo(%+v)\", *p)\n\n}\n\ntype WorkflowEntity struct {\n\t// Product ID\n\tProductID     int64                            `thrift:\"ProductID,1\" form:\"product_id\" json:\"product_id,string\"`\n\tName          string                           `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\tEntityID      int64                            `thrift:\"EntityID,3\" form:\"entity_id\" json:\"entity_id,string\"`\n\tEntityType    product_common.ProductEntityType `thrift:\"EntityType,4\" form:\"entity_type\" json:\"entity_type\"`\n\tEntityVersion int64                            `thrift:\"EntityVersion,5\" form:\"entity_version\" json:\"entity_version,string\"`\n\tIconURL       string                           `thrift:\"IconURL,6\" form:\"icon_url\" json:\"icon_url\"`\n\tEntityName    string                           `thrift:\"EntityName,7\" form:\"entity_name\" json:\"entity_name\"`\n\tReadme        string                           `thrift:\"Readme,8\" form:\"readme\" json:\"readme\"`\n\tCategory      *ProductCategory                 `thrift:\"Category,9\" form:\"category\" json:\"category\"`\n\t// Recommended categories,\n\tRecommendedCategory *ProductCategory    `thrift:\"RecommendedCategory,10,optional\" form:\"recommended_category\" json:\"recommended_category,omitempty\"`\n\tNodes               []*WorkflowNodeInfo `thrift:\"Nodes,11,optional\" form:\"nodes\" json:\"nodes,omitempty\"`\n\tDesc                string              `thrift:\"Desc,12\" form:\"desc\" json:\"desc\"`\n\t// Imported parameters Picture icon\n\tCaseInputIconURL *string `thrift:\"CaseInputIconURL,13,optional\" form:\"case_input_icon_url\" json:\"case_input_icon_url,omitempty\"`\n\t// Exported parameters Image icon\n\tCaseOutputIconURL     *string `thrift:\"CaseOutputIconURL,14,optional\" form:\"case_output_icon_url\" json:\"case_output_icon_url,omitempty\"`\n\tLatestPublishCommitID *string `thrift:\"LatestPublishCommitID,15,optional\" form:\"latest_publish_commit_id\" json:\"latest_publish_commit_id,omitempty\"`\n}\n\nfunc NewWorkflowEntity() *WorkflowEntity {\n\treturn &WorkflowEntity{}\n}\n\nfunc (p *WorkflowEntity) InitDefault() {\n}\n\nfunc (p *WorkflowEntity) GetProductID() (v int64) {\n\treturn p.ProductID\n}\n\nfunc (p *WorkflowEntity) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *WorkflowEntity) GetEntityID() (v int64) {\n\treturn p.EntityID\n}\n\nfunc (p *WorkflowEntity) GetEntityType() (v product_common.ProductEntityType) {\n\treturn p.EntityType\n}\n\nfunc (p *WorkflowEntity) GetEntityVersion() (v int64) {\n\treturn p.EntityVersion\n}\n\nfunc (p *WorkflowEntity) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *WorkflowEntity) GetEntityName() (v string) {\n\treturn p.EntityName\n}\n\nfunc (p *WorkflowEntity) GetReadme() (v string) {\n\treturn p.Readme\n}\n\nvar WorkflowEntity_Category_DEFAULT *ProductCategory\n\nfunc (p *WorkflowEntity) GetCategory() (v *ProductCategory) {\n\tif !p.IsSetCategory() {\n\t\treturn WorkflowEntity_Category_DEFAULT\n\t}\n\treturn p.Category\n}\n\nvar WorkflowEntity_RecommendedCategory_DEFAULT *ProductCategory\n\nfunc (p *WorkflowEntity) GetRecommendedCategory() (v *ProductCategory) {\n\tif !p.IsSetRecommendedCategory() {\n\t\treturn WorkflowEntity_RecommendedCategory_DEFAULT\n\t}\n\treturn p.RecommendedCategory\n}\n\nvar WorkflowEntity_Nodes_DEFAULT []*WorkflowNodeInfo\n\nfunc (p *WorkflowEntity) GetNodes() (v []*WorkflowNodeInfo) {\n\tif !p.IsSetNodes() {\n\t\treturn WorkflowEntity_Nodes_DEFAULT\n\t}\n\treturn p.Nodes\n}\n\nfunc (p *WorkflowEntity) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nvar WorkflowEntity_CaseInputIconURL_DEFAULT string\n\nfunc (p *WorkflowEntity) GetCaseInputIconURL() (v string) {\n\tif !p.IsSetCaseInputIconURL() {\n\t\treturn WorkflowEntity_CaseInputIconURL_DEFAULT\n\t}\n\treturn *p.CaseInputIconURL\n}\n\nvar WorkflowEntity_CaseOutputIconURL_DEFAULT string\n\nfunc (p *WorkflowEntity) GetCaseOutputIconURL() (v string) {\n\tif !p.IsSetCaseOutputIconURL() {\n\t\treturn WorkflowEntity_CaseOutputIconURL_DEFAULT\n\t}\n\treturn *p.CaseOutputIconURL\n}\n\nvar WorkflowEntity_LatestPublishCommitID_DEFAULT string\n\nfunc (p *WorkflowEntity) GetLatestPublishCommitID() (v string) {\n\tif !p.IsSetLatestPublishCommitID() {\n\t\treturn WorkflowEntity_LatestPublishCommitID_DEFAULT\n\t}\n\treturn *p.LatestPublishCommitID\n}\n\nvar fieldIDToName_WorkflowEntity = map[int16]string{\n\t1:  \"ProductID\",\n\t2:  \"Name\",\n\t3:  \"EntityID\",\n\t4:  \"EntityType\",\n\t5:  \"EntityVersion\",\n\t6:  \"IconURL\",\n\t7:  \"EntityName\",\n\t8:  \"Readme\",\n\t9:  \"Category\",\n\t10: \"RecommendedCategory\",\n\t11: \"Nodes\",\n\t12: \"Desc\",\n\t13: \"CaseInputIconURL\",\n\t14: \"CaseOutputIconURL\",\n\t15: \"LatestPublishCommitID\",\n}\n\nfunc (p *WorkflowEntity) IsSetCategory() bool {\n\treturn p.Category != nil\n}\n\nfunc (p *WorkflowEntity) IsSetRecommendedCategory() bool {\n\treturn p.RecommendedCategory != nil\n}\n\nfunc (p *WorkflowEntity) IsSetNodes() bool {\n\treturn p.Nodes != nil\n}\n\nfunc (p *WorkflowEntity) IsSetCaseInputIconURL() bool {\n\treturn p.CaseInputIconURL != nil\n}\n\nfunc (p *WorkflowEntity) IsSetCaseOutputIconURL() bool {\n\treturn p.CaseOutputIconURL != nil\n}\n\nfunc (p *WorkflowEntity) IsSetLatestPublishCommitID() bool {\n\treturn p.LatestPublishCommitID != nil\n}\n\nfunc (p *WorkflowEntity) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowEntity[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowEntity) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProductID = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EntityID = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.ProductEntityType(v)\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EntityVersion = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EntityName = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Readme = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField9(iprot thrift.TProtocol) error {\n\t_field := NewProductCategory()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Category = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewProductCategory()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RecommendedCategory = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField11(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowNodeInfo, 0, size)\n\tvalues := make([]WorkflowNodeInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Nodes = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CaseInputIconURL = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CaseOutputIconURL = _field\n\treturn nil\n}\nfunc (p *WorkflowEntity) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LatestPublishCommitID = _field\n\treturn nil\n}\n\nfunc (p *WorkflowEntity) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowEntity\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowEntity) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ProductID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProductID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityID\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.EntityID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.EntityType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityVersion\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.EntityVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IconURL\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityName\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.EntityName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Readme\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Readme); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Category\", thrift.STRUCT, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Category.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRecommendedCategory() {\n\t\tif err = oprot.WriteFieldBegin(\"RecommendedCategory\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RecommendedCategory.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodes() {\n\t\tif err = oprot.WriteFieldBegin(\"Nodes\", thrift.LIST, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Nodes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Nodes {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Desc\", thrift.STRING, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCaseInputIconURL() {\n\t\tif err = oprot.WriteFieldBegin(\"CaseInputIconURL\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CaseInputIconURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCaseOutputIconURL() {\n\t\tif err = oprot.WriteFieldBegin(\"CaseOutputIconURL\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CaseOutputIconURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *WorkflowEntity) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLatestPublishCommitID() {\n\t\tif err = oprot.WriteFieldBegin(\"LatestPublishCommitID\", thrift.STRING, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LatestPublishCommitID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\n\nfunc (p *WorkflowEntity) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowEntity(%+v)\", *p)\n\n}\n\ntype WorkflowGUIConfig struct {\n\t// Used to convert the input/output/intermediate message node of a workflow into a user visual configuration\n\tStartNode *WorkflowNodeInfo `thrift:\"StartNode,1\" form:\"start_node\" json:\"start_node\"`\n\tEndNode   *WorkflowNodeInfo `thrift:\"EndNode,2\" form:\"end_node\" json:\"end_node\"`\n\t// The message node will output the intermediate process, which also needs to be displayed.\n\tMessageNodes []*WorkflowNodeInfo `thrift:\"MessageNodes,3,optional\" form:\"message_nodes\" json:\"message_nodes,omitempty\"`\n}\n\nfunc NewWorkflowGUIConfig() *WorkflowGUIConfig {\n\treturn &WorkflowGUIConfig{}\n}\n\nfunc (p *WorkflowGUIConfig) InitDefault() {\n}\n\nvar WorkflowGUIConfig_StartNode_DEFAULT *WorkflowNodeInfo\n\nfunc (p *WorkflowGUIConfig) GetStartNode() (v *WorkflowNodeInfo) {\n\tif !p.IsSetStartNode() {\n\t\treturn WorkflowGUIConfig_StartNode_DEFAULT\n\t}\n\treturn p.StartNode\n}\n\nvar WorkflowGUIConfig_EndNode_DEFAULT *WorkflowNodeInfo\n\nfunc (p *WorkflowGUIConfig) GetEndNode() (v *WorkflowNodeInfo) {\n\tif !p.IsSetEndNode() {\n\t\treturn WorkflowGUIConfig_EndNode_DEFAULT\n\t}\n\treturn p.EndNode\n}\n\nvar WorkflowGUIConfig_MessageNodes_DEFAULT []*WorkflowNodeInfo\n\nfunc (p *WorkflowGUIConfig) GetMessageNodes() (v []*WorkflowNodeInfo) {\n\tif !p.IsSetMessageNodes() {\n\t\treturn WorkflowGUIConfig_MessageNodes_DEFAULT\n\t}\n\treturn p.MessageNodes\n}\n\nvar fieldIDToName_WorkflowGUIConfig = map[int16]string{\n\t1: \"StartNode\",\n\t2: \"EndNode\",\n\t3: \"MessageNodes\",\n}\n\nfunc (p *WorkflowGUIConfig) IsSetStartNode() bool {\n\treturn p.StartNode != nil\n}\n\nfunc (p *WorkflowGUIConfig) IsSetEndNode() bool {\n\treturn p.EndNode != nil\n}\n\nfunc (p *WorkflowGUIConfig) IsSetMessageNodes() bool {\n\treturn p.MessageNodes != nil\n}\n\nfunc (p *WorkflowGUIConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowGUIConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowGUIConfig) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowNodeInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.StartNode = _field\n\treturn nil\n}\nfunc (p *WorkflowGUIConfig) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowNodeInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.EndNode = _field\n\treturn nil\n}\nfunc (p *WorkflowGUIConfig) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowNodeInfo, 0, size)\n\tvalues := make([]WorkflowNodeInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MessageNodes = _field\n\treturn nil\n}\n\nfunc (p *WorkflowGUIConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowGUIConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowGUIConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StartNode\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.StartNode.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowGUIConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EndNode\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.EndNode.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowGUIConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMessageNodes() {\n\t\tif err = oprot.WriteFieldBegin(\"MessageNodes\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.MessageNodes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.MessageNodes {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *WorkflowGUIConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowGUIConfig(%+v)\", *p)\n\n}\n\ntype WorkflowExtraInfo struct {\n\tRelatedWorkflows []*WorkflowEntity `thrift:\"RelatedWorkflows,1\" form:\"related_workflows\" json:\"related_workflows\"`\n\tDuplicateCount   *int32            `thrift:\"DuplicateCount,2,optional\" form:\"duplicate_count\" json:\"duplicate_count,omitempty\"`\n\t// Workflow canvas information\n\tWorkflowSchema *string `thrift:\"WorkflowSchema,3,optional\" form:\"workflow_schema\" json:\"workflow_schema,omitempty\"`\n\t// /api/workflowV2/query  schema_json\n\tRecommendedCategory *ProductCategory    `thrift:\"RecommendedCategory,4,optional\" form:\"recommended_category\" json:\"recommended_category,omitempty\"`\n\tNodes               []*WorkflowNodeInfo `thrift:\"Nodes,5,optional\" form:\"nodes\" json:\"nodes,omitempty\"`\n\tStartNode           *WorkflowNodeInfo   `thrift:\"StartNode,6,optional\" form:\"start_node\" json:\"start_node,omitempty\"`\n\t// Entity name (for presentation)\n\tEntityName *string `thrift:\"EntityName,7,optional\" form:\"entity_name\" json:\"entity_name,omitempty\"`\n\t// Use case diagrams imported parameters\n\tCaseInputIconURL *string `thrift:\"CaseInputIconURL,8,optional\" form:\"case_input_icon_url\" json:\"case_input_icon_url,omitempty\"`\n\t// Use case diagram exported parameters\n\tCaseOutputIconURL *string `thrift:\"CaseOutputIconURL,9,optional\" form:\"case_output_icon_url\" json:\"case_output_icon_url,omitempty\"`\n\t// case execution ID\n\tCaseExecuteID         *int64  `thrift:\"CaseExecuteID,10,optional\" form:\"case_execute_id\" json:\"case_execute_id,string,omitempty\"`\n\tHoverText             *string `thrift:\"HoverText,11,optional\" form:\"hover_text\" json:\"hover_text,omitempty\"`\n\tLatestPublishCommitID *string `thrift:\"LatestPublishCommitID,12,optional\" form:\"latest_publish_commit_id\" json:\"latest_publish_commit_id,omitempty\"`\n\t// Practice running times, take from the number of warehouses\n\tUsedCount *int32 `thrift:\"UsedCount,13,optional\" form:\"used_count\" json:\"used_count,omitempty\"`\n\t// Used to convert the input/output/intermediate message node of a workflow into a user visual configuration\n\tGUIConfig *WorkflowGUIConfig `thrift:\"GUIConfig,14,optional\" form:\"gui_config\" json:\"gui_config,omitempty\"`\n}\n\nfunc NewWorkflowExtraInfo() *WorkflowExtraInfo {\n\treturn &WorkflowExtraInfo{}\n}\n\nfunc (p *WorkflowExtraInfo) InitDefault() {\n}\n\nfunc (p *WorkflowExtraInfo) GetRelatedWorkflows() (v []*WorkflowEntity) {\n\treturn p.RelatedWorkflows\n}\n\nvar WorkflowExtraInfo_DuplicateCount_DEFAULT int32\n\nfunc (p *WorkflowExtraInfo) GetDuplicateCount() (v int32) {\n\tif !p.IsSetDuplicateCount() {\n\t\treturn WorkflowExtraInfo_DuplicateCount_DEFAULT\n\t}\n\treturn *p.DuplicateCount\n}\n\nvar WorkflowExtraInfo_WorkflowSchema_DEFAULT string\n\nfunc (p *WorkflowExtraInfo) GetWorkflowSchema() (v string) {\n\tif !p.IsSetWorkflowSchema() {\n\t\treturn WorkflowExtraInfo_WorkflowSchema_DEFAULT\n\t}\n\treturn *p.WorkflowSchema\n}\n\nvar WorkflowExtraInfo_RecommendedCategory_DEFAULT *ProductCategory\n\nfunc (p *WorkflowExtraInfo) GetRecommendedCategory() (v *ProductCategory) {\n\tif !p.IsSetRecommendedCategory() {\n\t\treturn WorkflowExtraInfo_RecommendedCategory_DEFAULT\n\t}\n\treturn p.RecommendedCategory\n}\n\nvar WorkflowExtraInfo_Nodes_DEFAULT []*WorkflowNodeInfo\n\nfunc (p *WorkflowExtraInfo) GetNodes() (v []*WorkflowNodeInfo) {\n\tif !p.IsSetNodes() {\n\t\treturn WorkflowExtraInfo_Nodes_DEFAULT\n\t}\n\treturn p.Nodes\n}\n\nvar WorkflowExtraInfo_StartNode_DEFAULT *WorkflowNodeInfo\n\nfunc (p *WorkflowExtraInfo) GetStartNode() (v *WorkflowNodeInfo) {\n\tif !p.IsSetStartNode() {\n\t\treturn WorkflowExtraInfo_StartNode_DEFAULT\n\t}\n\treturn p.StartNode\n}\n\nvar WorkflowExtraInfo_EntityName_DEFAULT string\n\nfunc (p *WorkflowExtraInfo) GetEntityName() (v string) {\n\tif !p.IsSetEntityName() {\n\t\treturn WorkflowExtraInfo_EntityName_DEFAULT\n\t}\n\treturn *p.EntityName\n}\n\nvar WorkflowExtraInfo_CaseInputIconURL_DEFAULT string\n\nfunc (p *WorkflowExtraInfo) GetCaseInputIconURL() (v string) {\n\tif !p.IsSetCaseInputIconURL() {\n\t\treturn WorkflowExtraInfo_CaseInputIconURL_DEFAULT\n\t}\n\treturn *p.CaseInputIconURL\n}\n\nvar WorkflowExtraInfo_CaseOutputIconURL_DEFAULT string\n\nfunc (p *WorkflowExtraInfo) GetCaseOutputIconURL() (v string) {\n\tif !p.IsSetCaseOutputIconURL() {\n\t\treturn WorkflowExtraInfo_CaseOutputIconURL_DEFAULT\n\t}\n\treturn *p.CaseOutputIconURL\n}\n\nvar WorkflowExtraInfo_CaseExecuteID_DEFAULT int64\n\nfunc (p *WorkflowExtraInfo) GetCaseExecuteID() (v int64) {\n\tif !p.IsSetCaseExecuteID() {\n\t\treturn WorkflowExtraInfo_CaseExecuteID_DEFAULT\n\t}\n\treturn *p.CaseExecuteID\n}\n\nvar WorkflowExtraInfo_HoverText_DEFAULT string\n\nfunc (p *WorkflowExtraInfo) GetHoverText() (v string) {\n\tif !p.IsSetHoverText() {\n\t\treturn WorkflowExtraInfo_HoverText_DEFAULT\n\t}\n\treturn *p.HoverText\n}\n\nvar WorkflowExtraInfo_LatestPublishCommitID_DEFAULT string\n\nfunc (p *WorkflowExtraInfo) GetLatestPublishCommitID() (v string) {\n\tif !p.IsSetLatestPublishCommitID() {\n\t\treturn WorkflowExtraInfo_LatestPublishCommitID_DEFAULT\n\t}\n\treturn *p.LatestPublishCommitID\n}\n\nvar WorkflowExtraInfo_UsedCount_DEFAULT int32\n\nfunc (p *WorkflowExtraInfo) GetUsedCount() (v int32) {\n\tif !p.IsSetUsedCount() {\n\t\treturn WorkflowExtraInfo_UsedCount_DEFAULT\n\t}\n\treturn *p.UsedCount\n}\n\nvar WorkflowExtraInfo_GUIConfig_DEFAULT *WorkflowGUIConfig\n\nfunc (p *WorkflowExtraInfo) GetGUIConfig() (v *WorkflowGUIConfig) {\n\tif !p.IsSetGUIConfig() {\n\t\treturn WorkflowExtraInfo_GUIConfig_DEFAULT\n\t}\n\treturn p.GUIConfig\n}\n\nvar fieldIDToName_WorkflowExtraInfo = map[int16]string{\n\t1:  \"RelatedWorkflows\",\n\t2:  \"DuplicateCount\",\n\t3:  \"WorkflowSchema\",\n\t4:  \"RecommendedCategory\",\n\t5:  \"Nodes\",\n\t6:  \"StartNode\",\n\t7:  \"EntityName\",\n\t8:  \"CaseInputIconURL\",\n\t9:  \"CaseOutputIconURL\",\n\t10: \"CaseExecuteID\",\n\t11: \"HoverText\",\n\t12: \"LatestPublishCommitID\",\n\t13: \"UsedCount\",\n\t14: \"GUIConfig\",\n}\n\nfunc (p *WorkflowExtraInfo) IsSetDuplicateCount() bool {\n\treturn p.DuplicateCount != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetWorkflowSchema() bool {\n\treturn p.WorkflowSchema != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetRecommendedCategory() bool {\n\treturn p.RecommendedCategory != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetNodes() bool {\n\treturn p.Nodes != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetStartNode() bool {\n\treturn p.StartNode != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetEntityName() bool {\n\treturn p.EntityName != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetCaseInputIconURL() bool {\n\treturn p.CaseInputIconURL != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetCaseOutputIconURL() bool {\n\treturn p.CaseOutputIconURL != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetCaseExecuteID() bool {\n\treturn p.CaseExecuteID != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetHoverText() bool {\n\treturn p.HoverText != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetLatestPublishCommitID() bool {\n\treturn p.LatestPublishCommitID != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetUsedCount() bool {\n\treturn p.UsedCount != nil\n}\n\nfunc (p *WorkflowExtraInfo) IsSetGUIConfig() bool {\n\treturn p.GUIConfig != nil\n}\n\nfunc (p *WorkflowExtraInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowExtraInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowExtraInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowEntity, 0, size)\n\tvalues := make([]WorkflowEntity, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RelatedWorkflows = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DuplicateCount = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowSchema = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewProductCategory()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.RecommendedCategory = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowNodeInfo, 0, size)\n\tvalues := make([]WorkflowNodeInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Nodes = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowNodeInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.StartNode = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EntityName = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CaseInputIconURL = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CaseOutputIconURL = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CaseExecuteID = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HoverText = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LatestPublishCommitID = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UsedCount = _field\n\treturn nil\n}\nfunc (p *WorkflowExtraInfo) ReadField14(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowGUIConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.GUIConfig = _field\n\treturn nil\n}\n\nfunc (p *WorkflowExtraInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowExtraInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowExtraInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"RelatedWorkflows\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.RelatedWorkflows)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.RelatedWorkflows {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDuplicateCount() {\n\t\tif err = oprot.WriteFieldBegin(\"DuplicateCount\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.DuplicateCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowSchema() {\n\t\tif err = oprot.WriteFieldBegin(\"WorkflowSchema\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WorkflowSchema); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRecommendedCategory() {\n\t\tif err = oprot.WriteFieldBegin(\"RecommendedCategory\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.RecommendedCategory.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodes() {\n\t\tif err = oprot.WriteFieldBegin(\"Nodes\", thrift.LIST, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Nodes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Nodes {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStartNode() {\n\t\tif err = oprot.WriteFieldBegin(\"StartNode\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.StartNode.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityName() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityName\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.EntityName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCaseInputIconURL() {\n\t\tif err = oprot.WriteFieldBegin(\"CaseInputIconURL\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CaseInputIconURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCaseOutputIconURL() {\n\t\tif err = oprot.WriteFieldBegin(\"CaseOutputIconURL\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CaseOutputIconURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCaseExecuteID() {\n\t\tif err = oprot.WriteFieldBegin(\"CaseExecuteID\", thrift.I64, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CaseExecuteID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHoverText() {\n\t\tif err = oprot.WriteFieldBegin(\"HoverText\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.HoverText); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLatestPublishCommitID() {\n\t\tif err = oprot.WriteFieldBegin(\"LatestPublishCommitID\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LatestPublishCommitID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUsedCount() {\n\t\tif err = oprot.WriteFieldBegin(\"UsedCount\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.UsedCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *WorkflowExtraInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetGUIConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"GUIConfig\", thrift.STRUCT, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.GUIConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\n\nfunc (p *WorkflowExtraInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowExtraInfo(%+v)\", *p)\n\n}\n\ntype SocialScenePlayerInfo struct {\n\tID       int64                              `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\tName     string                             `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\tRoleType product_common.SocialSceneRoleType `thrift:\"RoleType,3\" form:\"role_type\" json:\"role_type\"`\n}\n\nfunc NewSocialScenePlayerInfo() *SocialScenePlayerInfo {\n\treturn &SocialScenePlayerInfo{}\n}\n\nfunc (p *SocialScenePlayerInfo) InitDefault() {\n}\n\nfunc (p *SocialScenePlayerInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *SocialScenePlayerInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *SocialScenePlayerInfo) GetRoleType() (v product_common.SocialSceneRoleType) {\n\treturn p.RoleType\n}\n\nvar fieldIDToName_SocialScenePlayerInfo = map[int16]string{\n\t1: \"ID\",\n\t2: \"Name\",\n\t3: \"RoleType\",\n}\n\nfunc (p *SocialScenePlayerInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SocialScenePlayerInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SocialScenePlayerInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *SocialScenePlayerInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *SocialScenePlayerInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.SocialSceneRoleType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.SocialSceneRoleType(v)\n\t}\n\tp.RoleType = _field\n\treturn nil\n}\n\nfunc (p *SocialScenePlayerInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SocialScenePlayerInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SocialScenePlayerInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SocialScenePlayerInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SocialScenePlayerInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"RoleType\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.RoleType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *SocialScenePlayerInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SocialScenePlayerInfo(%+v)\", *p)\n\n}\n\ntype SocialSceneExtraInfo struct {\n\t// role\n\tPlayers []*SocialScenePlayerInfo `thrift:\"Players,1,optional\" form:\"players\" json:\"players,omitempty\"`\n\t// Number of people used\n\tUsedCount int64 `thrift:\"UsedCount,2\" form:\"used_count\" json:\"used_count,string\"`\n\t// number of times started\n\tStartedCount int64 `thrift:\"StartedCount,3\" form:\"started_count\" json:\"started_count,string\"`\n\t// publish_mode\n\tPublishMode product_common.ProductPublishMode `thrift:\"PublishMode,4\" form:\"publish_mode\" json:\"publish_mode\"`\n}\n\nfunc NewSocialSceneExtraInfo() *SocialSceneExtraInfo {\n\treturn &SocialSceneExtraInfo{}\n}\n\nfunc (p *SocialSceneExtraInfo) InitDefault() {\n}\n\nvar SocialSceneExtraInfo_Players_DEFAULT []*SocialScenePlayerInfo\n\nfunc (p *SocialSceneExtraInfo) GetPlayers() (v []*SocialScenePlayerInfo) {\n\tif !p.IsSetPlayers() {\n\t\treturn SocialSceneExtraInfo_Players_DEFAULT\n\t}\n\treturn p.Players\n}\n\nfunc (p *SocialSceneExtraInfo) GetUsedCount() (v int64) {\n\treturn p.UsedCount\n}\n\nfunc (p *SocialSceneExtraInfo) GetStartedCount() (v int64) {\n\treturn p.StartedCount\n}\n\nfunc (p *SocialSceneExtraInfo) GetPublishMode() (v product_common.ProductPublishMode) {\n\treturn p.PublishMode\n}\n\nvar fieldIDToName_SocialSceneExtraInfo = map[int16]string{\n\t1: \"Players\",\n\t2: \"UsedCount\",\n\t3: \"StartedCount\",\n\t4: \"PublishMode\",\n}\n\nfunc (p *SocialSceneExtraInfo) IsSetPlayers() bool {\n\treturn p.Players != nil\n}\n\nfunc (p *SocialSceneExtraInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SocialSceneExtraInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SocialSceneExtraInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*SocialScenePlayerInfo, 0, size)\n\tvalues := make([]SocialScenePlayerInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Players = _field\n\treturn nil\n}\nfunc (p *SocialSceneExtraInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UsedCount = _field\n\treturn nil\n}\nfunc (p *SocialSceneExtraInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StartedCount = _field\n\treturn nil\n}\nfunc (p *SocialSceneExtraInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.ProductPublishMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.ProductPublishMode(v)\n\t}\n\tp.PublishMode = _field\n\treturn nil\n}\n\nfunc (p *SocialSceneExtraInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SocialSceneExtraInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SocialSceneExtraInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPlayers() {\n\t\tif err = oprot.WriteFieldBegin(\"Players\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Players)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Players {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SocialSceneExtraInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UsedCount\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UsedCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SocialSceneExtraInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StartedCount\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.StartedCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SocialSceneExtraInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PublishMode\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PublishMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *SocialSceneExtraInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SocialSceneExtraInfo(%+v)\", *p)\n\n}\n\ntype ProjectConfig struct {\n\t// number of plugins\n\tPluginCount int32 `thrift:\"PluginCount,1\" form:\"plugin_count\" json:\"plugin_count\"`\n\t// number of workflows\n\tWorkflowCount int32 `thrift:\"WorkflowCount,2\" form:\"workflow_count\" json:\"workflow_count\"`\n\t// Number of knowledge bases\n\tKnowledgeCount int32 `thrift:\"KnowledgeCount,3\" form:\"knowledge_count\" json:\"knowledge_count\"`\n\t// Number of databases\n\tDatabaseCount int32 `thrift:\"DatabaseCount,4\" form:\"database_count\" json:\"database_count\"`\n}\n\nfunc NewProjectConfig() *ProjectConfig {\n\treturn &ProjectConfig{}\n}\n\nfunc (p *ProjectConfig) InitDefault() {\n}\n\nfunc (p *ProjectConfig) GetPluginCount() (v int32) {\n\treturn p.PluginCount\n}\n\nfunc (p *ProjectConfig) GetWorkflowCount() (v int32) {\n\treturn p.WorkflowCount\n}\n\nfunc (p *ProjectConfig) GetKnowledgeCount() (v int32) {\n\treturn p.KnowledgeCount\n}\n\nfunc (p *ProjectConfig) GetDatabaseCount() (v int32) {\n\treturn p.DatabaseCount\n}\n\nvar fieldIDToName_ProjectConfig = map[int16]string{\n\t1: \"PluginCount\",\n\t2: \"WorkflowCount\",\n\t3: \"KnowledgeCount\",\n\t4: \"DatabaseCount\",\n}\n\nfunc (p *ProjectConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProjectConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProjectConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginCount = _field\n\treturn nil\n}\nfunc (p *ProjectConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowCount = _field\n\treturn nil\n}\nfunc (p *ProjectConfig) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.KnowledgeCount = _field\n\treturn nil\n}\nfunc (p *ProjectConfig) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatabaseCount = _field\n\treturn nil\n}\n\nfunc (p *ProjectConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProjectConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PluginCount\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.PluginCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProjectConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowCount\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.WorkflowCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ProjectConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"KnowledgeCount\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.KnowledgeCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ProjectConfig) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DatabaseCount\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.DatabaseCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *ProjectConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProjectConfig(%+v)\", *p)\n\n}\n\ntype ProjectExtraInfo struct {\n\t// Generate a copy of the template before Project is put on the shelves. To use or copy the template, you need to use TemplateProjectID and TemplateProjectVersion\n\tTemplateProjectID      int64 `thrift:\"TemplateProjectID,1\" form:\"template_project_id\" json:\"template_project_id,string\"`\n\tTemplateProjectVersion int64 `thrift:\"TemplateProjectVersion,2\" form:\"template_project_version\" json:\"template_project_version,string\"`\n\t// Project-bound UI supported preview types\n\tPreviewTypes []product_common.UIPreviewType `thrift:\"PreviewTypes,3\" form:\"preview_types\" json:\"preview_types\"`\n\t// user count\n\tUserCount int32 `thrift:\"UserCount,4\" form:\"user_count\" json:\"user_count\"`\n\t// number of runs\n\tExecuteCount int32 `thrift:\"ExecuteCount,5\" form:\"execute_count\" json:\"execute_count\"`\n\t// publish platforms\n\tPublishPlatforms []*BotPublishPlatform `thrift:\"PublishPlatforms,6\" form:\"publish_platforms\" json:\"publish_platforms\"`\n\t// Near real-time copy volume, obtained from the data warehouse interface (copy-report event tracking-data warehouse calculation drop library)\n\tDupliacateCount int32 `thrift:\"DupliacateCount,7\" form:\"duplicate_count\" json:\"duplicate_count\"`\n\t// configuration\n\tConfig *ProjectConfig `thrift:\"Config,8,optional\" form:\"config\" json:\"config,omitempty\"`\n}\n\nfunc NewProjectExtraInfo() *ProjectExtraInfo {\n\treturn &ProjectExtraInfo{}\n}\n\nfunc (p *ProjectExtraInfo) InitDefault() {\n}\n\nfunc (p *ProjectExtraInfo) GetTemplateProjectID() (v int64) {\n\treturn p.TemplateProjectID\n}\n\nfunc (p *ProjectExtraInfo) GetTemplateProjectVersion() (v int64) {\n\treturn p.TemplateProjectVersion\n}\n\nfunc (p *ProjectExtraInfo) GetPreviewTypes() (v []product_common.UIPreviewType) {\n\treturn p.PreviewTypes\n}\n\nfunc (p *ProjectExtraInfo) GetUserCount() (v int32) {\n\treturn p.UserCount\n}\n\nfunc (p *ProjectExtraInfo) GetExecuteCount() (v int32) {\n\treturn p.ExecuteCount\n}\n\nfunc (p *ProjectExtraInfo) GetPublishPlatforms() (v []*BotPublishPlatform) {\n\treturn p.PublishPlatforms\n}\n\nfunc (p *ProjectExtraInfo) GetDupliacateCount() (v int32) {\n\treturn p.DupliacateCount\n}\n\nvar ProjectExtraInfo_Config_DEFAULT *ProjectConfig\n\nfunc (p *ProjectExtraInfo) GetConfig() (v *ProjectConfig) {\n\tif !p.IsSetConfig() {\n\t\treturn ProjectExtraInfo_Config_DEFAULT\n\t}\n\treturn p.Config\n}\n\nvar fieldIDToName_ProjectExtraInfo = map[int16]string{\n\t1: \"TemplateProjectID\",\n\t2: \"TemplateProjectVersion\",\n\t3: \"PreviewTypes\",\n\t4: \"UserCount\",\n\t5: \"ExecuteCount\",\n\t6: \"PublishPlatforms\",\n\t7: \"DupliacateCount\",\n\t8: \"Config\",\n}\n\nfunc (p *ProjectExtraInfo) IsSetConfig() bool {\n\treturn p.Config != nil\n}\n\nfunc (p *ProjectExtraInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProjectExtraInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProjectExtraInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TemplateProjectID = _field\n\treturn nil\n}\nfunc (p *ProjectExtraInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TemplateProjectVersion = _field\n\treturn nil\n}\nfunc (p *ProjectExtraInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]product_common.UIPreviewType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem product_common.UIPreviewType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = product_common.UIPreviewType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PreviewTypes = _field\n\treturn nil\n}\nfunc (p *ProjectExtraInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserCount = _field\n\treturn nil\n}\nfunc (p *ProjectExtraInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExecuteCount = _field\n\treturn nil\n}\nfunc (p *ProjectExtraInfo) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*BotPublishPlatform, 0, size)\n\tvalues := make([]BotPublishPlatform, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PublishPlatforms = _field\n\treturn nil\n}\nfunc (p *ProjectExtraInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DupliacateCount = _field\n\treturn nil\n}\nfunc (p *ProjectExtraInfo) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewProjectConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Config = _field\n\treturn nil\n}\n\nfunc (p *ProjectExtraInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectExtraInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProjectExtraInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TemplateProjectID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TemplateProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProjectExtraInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TemplateProjectVersion\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TemplateProjectVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ProjectExtraInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PreviewTypes\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I32, len(p.PreviewTypes)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PreviewTypes {\n\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ProjectExtraInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserCount\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.UserCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ProjectExtraInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ExecuteCount\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.ExecuteCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ProjectExtraInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PublishPlatforms\", thrift.LIST, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PublishPlatforms)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PublishPlatforms {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ProjectExtraInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DupliacateCount\", thrift.I32, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.DupliacateCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ProjectExtraInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"Config\", thrift.STRUCT, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Config.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *ProjectExtraInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProjectExtraInfo(%+v)\", *p)\n\n}\n\ntype GetProductDetailRequest struct {\n\tProductID  *int64                            `thrift:\"ProductID,1,optional\" json:\"ProductID,string,omitempty\" query:\"product_id\"`\n\tEntityType *product_common.ProductEntityType `thrift:\"EntityType,2,optional\" form:\"entity_type\" json:\"entity_type,omitempty\"`\n\tEntityID   *int64                            `thrift:\"EntityID,3,optional\" json:\"EntityID,string,omitempty\" query:\"entity_id\"`\n\t// Whether to check the latest audit failure draft\n\tNeedAuditFailed *bool      `thrift:\"NeedAuditFailed,4,optional\" form:\"need_audit_failed\" json:\"need_audit_failed,omitempty\"`\n\tClientIP        *string    `thrift:\"ClientIP,101,optional\" header:\"Tt-Agw-Client-Ip\" json:\"ClientIP,omitempty\"`\n\tBase            *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetProductDetailRequest() *GetProductDetailRequest {\n\treturn &GetProductDetailRequest{}\n}\n\nfunc (p *GetProductDetailRequest) InitDefault() {\n}\n\nvar GetProductDetailRequest_ProductID_DEFAULT int64\n\nfunc (p *GetProductDetailRequest) GetProductID() (v int64) {\n\tif !p.IsSetProductID() {\n\t\treturn GetProductDetailRequest_ProductID_DEFAULT\n\t}\n\treturn *p.ProductID\n}\n\nvar GetProductDetailRequest_EntityType_DEFAULT product_common.ProductEntityType\n\nfunc (p *GetProductDetailRequest) GetEntityType() (v product_common.ProductEntityType) {\n\tif !p.IsSetEntityType() {\n\t\treturn GetProductDetailRequest_EntityType_DEFAULT\n\t}\n\treturn *p.EntityType\n}\n\nvar GetProductDetailRequest_EntityID_DEFAULT int64\n\nfunc (p *GetProductDetailRequest) GetEntityID() (v int64) {\n\tif !p.IsSetEntityID() {\n\t\treturn GetProductDetailRequest_EntityID_DEFAULT\n\t}\n\treturn *p.EntityID\n}\n\nvar GetProductDetailRequest_NeedAuditFailed_DEFAULT bool\n\nfunc (p *GetProductDetailRequest) GetNeedAuditFailed() (v bool) {\n\tif !p.IsSetNeedAuditFailed() {\n\t\treturn GetProductDetailRequest_NeedAuditFailed_DEFAULT\n\t}\n\treturn *p.NeedAuditFailed\n}\n\nvar GetProductDetailRequest_ClientIP_DEFAULT string\n\nfunc (p *GetProductDetailRequest) GetClientIP() (v string) {\n\tif !p.IsSetClientIP() {\n\t\treturn GetProductDetailRequest_ClientIP_DEFAULT\n\t}\n\treturn *p.ClientIP\n}\n\nvar GetProductDetailRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetProductDetailRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetProductDetailRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetProductDetailRequest = map[int16]string{\n\t1:   \"ProductID\",\n\t2:   \"EntityType\",\n\t3:   \"EntityID\",\n\t4:   \"NeedAuditFailed\",\n\t101: \"ClientIP\",\n\t255: \"Base\",\n}\n\nfunc (p *GetProductDetailRequest) IsSetProductID() bool {\n\treturn p.ProductID != nil\n}\n\nfunc (p *GetProductDetailRequest) IsSetEntityType() bool {\n\treturn p.EntityType != nil\n}\n\nfunc (p *GetProductDetailRequest) IsSetEntityID() bool {\n\treturn p.EntityID != nil\n}\n\nfunc (p *GetProductDetailRequest) IsSetNeedAuditFailed() bool {\n\treturn p.NeedAuditFailed != nil\n}\n\nfunc (p *GetProductDetailRequest) IsSetClientIP() bool {\n\treturn p.ClientIP != nil\n}\n\nfunc (p *GetProductDetailRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetProductDetailRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 101:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField101(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductDetailRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetProductDetailRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProductID = _field\n\treturn nil\n}\nfunc (p *GetProductDetailRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.ProductEntityType(v)\n\t\t_field = &tmp\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *GetProductDetailRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EntityID = _field\n\treturn nil\n}\nfunc (p *GetProductDetailRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NeedAuditFailed = _field\n\treturn nil\n}\nfunc (p *GetProductDetailRequest) ReadField101(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ClientIP = _field\n\treturn nil\n}\nfunc (p *GetProductDetailRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetProductDetailRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductDetailRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField101(oprot); err != nil {\n\t\t\tfieldId = 101\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductDetailRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProductID() {\n\t\tif err = oprot.WriteFieldBegin(\"ProductID\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ProductID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductDetailRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityType() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.EntityType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProductDetailRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityID() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityID\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EntityID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProductDetailRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedAuditFailed() {\n\t\tif err = oprot.WriteFieldBegin(\"NeedAuditFailed\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NeedAuditFailed); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetProductDetailRequest) writeField101(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetClientIP() {\n\t\tif err = oprot.WriteFieldBegin(\"ClientIP\", thrift.STRING, 101); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ClientIP); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 101 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 101 end error: \", p), err)\n}\nfunc (p *GetProductDetailRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProductDetailRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductDetailRequest(%+v)\", *p)\n\n}\n\ntype GetProductDetailResponse struct {\n\tCode     int32                 `thrift:\"Code,1,required\" form:\"code,required\" json:\"code,required\"`\n\tMessage  string                `thrift:\"Message,2,required\" form:\"message,required\" json:\"message,required\"`\n\tData     *GetProductDetailData `thrift:\"Data,3\" form:\"data\" json:\"data\"`\n\tBaseResp *base.BaseResp        `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetProductDetailResponse() *GetProductDetailResponse {\n\treturn &GetProductDetailResponse{}\n}\n\nfunc (p *GetProductDetailResponse) InitDefault() {\n}\n\nfunc (p *GetProductDetailResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetProductDetailResponse) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar GetProductDetailResponse_Data_DEFAULT *GetProductDetailData\n\nfunc (p *GetProductDetailResponse) GetData() (v *GetProductDetailData) {\n\tif !p.IsSetData() {\n\t\treturn GetProductDetailResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetProductDetailResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetProductDetailResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetProductDetailResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetProductDetailResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Message\",\n\t3:   \"Data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetProductDetailResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetProductDetailResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetProductDetailResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMessage bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessage = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMessage {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductDetailResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetProductDetailResponse[fieldId]))\n}\n\nfunc (p *GetProductDetailResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetProductDetailResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *GetProductDetailResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewGetProductDetailData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetProductDetailResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetProductDetailResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductDetailResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductDetailResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductDetailResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Message\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProductDetailResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProductDetailResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProductDetailResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductDetailResponse(%+v)\", *p)\n\n}\n\ntype Price struct {\n\tValue        int32  `thrift:\"Value,1\" form:\"value\" json:\"value\"`\n\tCurrency     string `thrift:\"Currency,2\" form:\"currency\" json:\"currency\"`\n\tDisplayPrice string `thrift:\"DisplayPrice,3\" form:\"display_price\" json:\"display_price\"`\n}\n\nfunc NewPrice() *Price {\n\treturn &Price{}\n}\n\nfunc (p *Price) InitDefault() {\n}\n\nfunc (p *Price) GetValue() (v int32) {\n\treturn p.Value\n}\n\nfunc (p *Price) GetCurrency() (v string) {\n\treturn p.Currency\n}\n\nfunc (p *Price) GetDisplayPrice() (v string) {\n\treturn p.DisplayPrice\n}\n\nvar fieldIDToName_Price = map[int16]string{\n\t1: \"Value\",\n\t2: \"Currency\",\n\t3: \"DisplayPrice\",\n}\n\nfunc (p *Price) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Price[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Price) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *Price) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Currency = _field\n\treturn nil\n}\nfunc (p *Price) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DisplayPrice = _field\n\treturn nil\n}\n\nfunc (p *Price) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Price\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Price) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Value\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Value); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Price) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Currency\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Currency); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Price) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DisplayPrice\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DisplayPrice); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *Price) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Price(%+v)\", *p)\n\n}\n\ntype SKUInfo struct {\n\tID int64 `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\t// to be abandoned\n\tPrice           []*Price                       `thrift:\"Price,2\" form:\"price\" json:\"price\"`\n\tDescription     string                         `thrift:\"Description,3\" form:\"description\" json:\"description\"`\n\tPriceV2         []*marketplace_common.Price    `thrift:\"PriceV2,4\" form:\"price_v2\" json:\"price_v2\"`\n\tChargeInfoExtra *product_common.ChargeSKUExtra `thrift:\"ChargeInfoExtra,5,optional\" form:\"charge_sku_info\" json:\"charge_sku_info,omitempty\"`\n}\n\nfunc NewSKUInfo() *SKUInfo {\n\treturn &SKUInfo{}\n}\n\nfunc (p *SKUInfo) InitDefault() {\n}\n\nfunc (p *SKUInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *SKUInfo) GetPrice() (v []*Price) {\n\treturn p.Price\n}\n\nfunc (p *SKUInfo) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *SKUInfo) GetPriceV2() (v []*marketplace_common.Price) {\n\treturn p.PriceV2\n}\n\nvar SKUInfo_ChargeInfoExtra_DEFAULT *product_common.ChargeSKUExtra\n\nfunc (p *SKUInfo) GetChargeInfoExtra() (v *product_common.ChargeSKUExtra) {\n\tif !p.IsSetChargeInfoExtra() {\n\t\treturn SKUInfo_ChargeInfoExtra_DEFAULT\n\t}\n\treturn p.ChargeInfoExtra\n}\n\nvar fieldIDToName_SKUInfo = map[int16]string{\n\t1: \"ID\",\n\t2: \"Price\",\n\t3: \"Description\",\n\t4: \"PriceV2\",\n\t5: \"ChargeInfoExtra\",\n}\n\nfunc (p *SKUInfo) IsSetChargeInfoExtra() bool {\n\treturn p.ChargeInfoExtra != nil\n}\n\nfunc (p *SKUInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SKUInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SKUInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *SKUInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Price, 0, size)\n\tvalues := make([]Price, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Price = _field\n\treturn nil\n}\nfunc (p *SKUInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *SKUInfo) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*marketplace_common.Price, 0, size)\n\tvalues := make([]marketplace_common.Price, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PriceV2 = _field\n\treturn nil\n}\nfunc (p *SKUInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_field := product_common.NewChargeSKUExtra()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ChargeInfoExtra = _field\n\treturn nil\n}\n\nfunc (p *SKUInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SKUInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SKUInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SKUInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Price\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Price)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Price {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SKUInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SKUInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PriceV2\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PriceV2)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PriceV2 {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SKUInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChargeInfoExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"ChargeInfoExtra\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ChargeInfoExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *SKUInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SKUInfo(%+v)\", *p)\n\n}\n\ntype SellAttrValue struct {\n\tID    int64  `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\tValue string `thrift:\"Value,2\" form:\"value\" json:\"value\"`\n}\n\nfunc NewSellAttrValue() *SellAttrValue {\n\treturn &SellAttrValue{}\n}\n\nfunc (p *SellAttrValue) InitDefault() {\n}\n\nfunc (p *SellAttrValue) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *SellAttrValue) GetValue() (v string) {\n\treturn p.Value\n}\n\nvar fieldIDToName_SellAttrValue = map[int16]string{\n\t1: \"ID\",\n\t2: \"Value\",\n}\n\nfunc (p *SellAttrValue) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SellAttrValue[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SellAttrValue) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *SellAttrValue) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Value = _field\n\treturn nil\n}\n\nfunc (p *SellAttrValue) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SellAttrValue\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SellAttrValue) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SellAttrValue) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Value\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Value); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *SellAttrValue) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SellAttrValue(%+v)\", *p)\n\n}\n\ntype SellAttr struct {\n\tDisplayName string           `thrift:\"DisplayName,1\" form:\"display_name\" json:\"display_name\"`\n\tKey         string           `thrift:\"Key,2\" form:\"key\" json:\"key\"`\n\tValues      []*SellAttrValue `thrift:\"Values,3\" form:\"values\" json:\"values\"`\n}\n\nfunc NewSellAttr() *SellAttr {\n\treturn &SellAttr{}\n}\n\nfunc (p *SellAttr) InitDefault() {\n}\n\nfunc (p *SellAttr) GetDisplayName() (v string) {\n\treturn p.DisplayName\n}\n\nfunc (p *SellAttr) GetKey() (v string) {\n\treturn p.Key\n}\n\nfunc (p *SellAttr) GetValues() (v []*SellAttrValue) {\n\treturn p.Values\n}\n\nvar fieldIDToName_SellAttr = map[int16]string{\n\t1: \"DisplayName\",\n\t2: \"Key\",\n\t3: \"Values\",\n}\n\nfunc (p *SellAttr) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SellAttr[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SellAttr) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DisplayName = _field\n\treturn nil\n}\nfunc (p *SellAttr) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *SellAttr) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*SellAttrValue, 0, size)\n\tvalues := make([]SellAttrValue, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Values = _field\n\treturn nil\n}\n\nfunc (p *SellAttr) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SellAttr\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SellAttr) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DisplayName\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DisplayName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SellAttr) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Key\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Key); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SellAttr) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Values\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Values)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Values {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *SellAttr) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SellAttr(%+v)\", *p)\n\n}\n\ntype SellInfo struct {\n\tSKUs map[int64]*SKUInfo `thrift:\"SKUs,1\" form:\"skus\" json:\"skus,string\"`\n\tAttr []*SellAttr        `thrift:\"Attr,2\" form:\"attr\" json:\"attr\"`\n\t// Key is attrkey: attrvalue path, value is skuID\n\tSKUAttrRef map[string]int64 `thrift:\"SKUAttrRef,3\" form:\"sku_attr_ref\" json:\"sku_attr_ref,string\"`\n}\n\nfunc NewSellInfo() *SellInfo {\n\treturn &SellInfo{}\n}\n\nfunc (p *SellInfo) InitDefault() {\n}\n\nfunc (p *SellInfo) GetSKUs() (v map[int64]*SKUInfo) {\n\treturn p.SKUs\n}\n\nfunc (p *SellInfo) GetAttr() (v []*SellAttr) {\n\treturn p.Attr\n}\n\nfunc (p *SellInfo) GetSKUAttrRef() (v map[string]int64) {\n\treturn p.SKUAttrRef\n}\n\nvar fieldIDToName_SellInfo = map[int16]string{\n\t1: \"SKUs\",\n\t2: \"Attr\",\n\t3: \"SKUAttrRef\",\n}\n\nfunc (p *SellInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SellInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SellInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]*SKUInfo, size)\n\tvalues := make([]SKUInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SKUs = _field\n\treturn nil\n}\nfunc (p *SellInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*SellAttr, 0, size)\n\tvalues := make([]SellAttr, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Attr = _field\n\treturn nil\n}\nfunc (p *SellInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]int64, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SKUAttrRef = _field\n\treturn nil\n}\n\nfunc (p *SellInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SellInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SellInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SKUs\", thrift.MAP, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.SKUs)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.SKUs {\n\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SellInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Attr\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Attr)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Attr {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SellInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SKUAttrRef\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.I64, len(p.SKUAttrRef)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.SKUAttrRef {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *SellInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SellInfo(%+v)\", *p)\n\n}\n\ntype Topic struct {\n\tID          int64  `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n\tName        string `thrift:\"Name,2\" form:\"name\" json:\"name\"`\n\tDescription string `thrift:\"Description,3\" form:\"description\" json:\"description\"`\n\tBannerURL   string `thrift:\"BannerURL,4\" form:\"banner_url\" json:\"banner_url\"`\n\t// Small background image, front-end priority loading\n\tBannerURLSmall string `thrift:\"BannerURLSmall,5\" form:\"banner_url_small\" json:\"banner_url_small\"`\n\tReason         string `thrift:\"Reason,6\" form:\"reason\" json:\"reason\"`\n\t// The presentation document provided by the operation is visible to users\n\tIntroductionURL string `thrift:\"IntroductionURL,7\" form:\"introduction_url\" json:\"introduction_url\"`\n\t// Does the user collect the topic?\n\tIsFavorite bool `thrift:\"IsFavorite,8\" form:\"is_favorite\" json:\"is_favorite\"`\n}\n\nfunc NewTopic() *Topic {\n\treturn &Topic{}\n}\n\nfunc (p *Topic) InitDefault() {\n}\n\nfunc (p *Topic) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *Topic) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *Topic) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *Topic) GetBannerURL() (v string) {\n\treturn p.BannerURL\n}\n\nfunc (p *Topic) GetBannerURLSmall() (v string) {\n\treturn p.BannerURLSmall\n}\n\nfunc (p *Topic) GetReason() (v string) {\n\treturn p.Reason\n}\n\nfunc (p *Topic) GetIntroductionURL() (v string) {\n\treturn p.IntroductionURL\n}\n\nfunc (p *Topic) GetIsFavorite() (v bool) {\n\treturn p.IsFavorite\n}\n\nvar fieldIDToName_Topic = map[int16]string{\n\t1: \"ID\",\n\t2: \"Name\",\n\t3: \"Description\",\n\t4: \"BannerURL\",\n\t5: \"BannerURLSmall\",\n\t6: \"Reason\",\n\t7: \"IntroductionURL\",\n\t8: \"IsFavorite\",\n}\n\nfunc (p *Topic) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Topic[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Topic) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *Topic) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Topic) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *Topic) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BannerURL = _field\n\treturn nil\n}\nfunc (p *Topic) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BannerURLSmall = _field\n\treturn nil\n}\nfunc (p *Topic) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Reason = _field\n\treturn nil\n}\nfunc (p *Topic) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IntroductionURL = _field\n\treturn nil\n}\nfunc (p *Topic) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsFavorite = _field\n\treturn nil\n}\n\nfunc (p *Topic) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Topic\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Topic) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Topic) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Topic) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Topic) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BannerURL\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BannerURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Topic) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BannerURLSmall\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BannerURLSmall); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Topic) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Reason\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Reason); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Topic) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IntroductionURL\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IntroductionURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Topic) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsFavorite\", thrift.BOOL, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsFavorite); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *Topic) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Topic(%+v)\", *p)\n\n}\n\ntype ProductDataIndicator struct {\n\t// Data analytics metrics, source number, such as template purchases, replicas, etc\n\tPurchaseCount *int32 `thrift:\"PurchaseCount,1,optional\" form:\"purchase_count\" json:\"purchase_count,omitempty\"`\n}\n\nfunc NewProductDataIndicator() *ProductDataIndicator {\n\treturn &ProductDataIndicator{}\n}\n\nfunc (p *ProductDataIndicator) InitDefault() {\n}\n\nvar ProductDataIndicator_PurchaseCount_DEFAULT int32\n\nfunc (p *ProductDataIndicator) GetPurchaseCount() (v int32) {\n\tif !p.IsSetPurchaseCount() {\n\t\treturn ProductDataIndicator_PurchaseCount_DEFAULT\n\t}\n\treturn *p.PurchaseCount\n}\n\nvar fieldIDToName_ProductDataIndicator = map[int16]string{\n\t1: \"PurchaseCount\",\n}\n\nfunc (p *ProductDataIndicator) IsSetPurchaseCount() bool {\n\treturn p.PurchaseCount != nil\n}\n\nfunc (p *ProductDataIndicator) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProductDataIndicator[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProductDataIndicator) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PurchaseCount = _field\n\treturn nil\n}\n\nfunc (p *ProductDataIndicator) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProductDataIndicator\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProductDataIndicator) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPurchaseCount() {\n\t\tif err = oprot.WriteFieldBegin(\"PurchaseCount\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.PurchaseCount); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ProductDataIndicator) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProductDataIndicator(%+v)\", *p)\n\n}\n\ntype GetProductDetailData struct {\n\t// Products removed from the shelves only return non-optional fields\n\tMetaInfo *ProductMetaInfo `thrift:\"MetaInfo,1,required\" form:\"meta_info,required\" json:\"meta_info,required\"`\n\t// To distinguish between host and guest states\n\tIsOwner bool `thrift:\"IsOwner,2,required\" form:\"is_owner,required\" json:\"is_owner,required\"`\n\t// Audit status, return in the main state, you need to pay attention. If the main state is under review, you need to show the status under review.\n\tAuditStatus product_common.ProductDraftStatus `thrift:\"AuditStatus,3\" form:\"audit_status\" json:\"audit_status\"`\n\tSellInfo    *SellInfo                         `thrift:\"SellInfo,4,optional\" form:\"sell_info\" json:\"sell_info,omitempty\"`\n\tSpaceID     *int64                            `thrift:\"SpaceID,5,optional\" form:\"space_id\" json:\"space_id,string,omitempty\"`\n\t// Details page Back\n\tTopic *Topic `thrift:\"Topic,6,optional\" form:\"topic\" json:\"topic,omitempty\"`\n\t// Details page Back\n\tCanDuplicate      *bool                             `thrift:\"CanDuplicate,7,optional\" form:\"can_duplicate\" json:\"can_duplicate,omitempty\"`\n\tCommercialSetting *product_common.CommercialSetting `thrift:\"CommercialSetting,8,optional\" form:\"commercial_setting\" json:\"commercial_setting,omitempty\"`\n\tPluginExtra       *PluginExtraInfo                  `thrift:\"PluginExtra,20,optional\" form:\"plugin_extra\" json:\"plugin_extra,omitempty\"`\n\tBotExtra          *BotExtraInfo                     `thrift:\"BotExtra,21,optional\" form:\"bot_extra\" json:\"bot_extra,omitempty\"`\n\tWorkflowExtra     *WorkflowExtraInfo                `thrift:\"WorkflowExtra,22,optional\" form:\"workflow_extra\" json:\"workflow_extra,omitempty\"`\n\tSocialSceneExtra  *SocialSceneExtraInfo             `thrift:\"SocialSceneExtra,23,optional\" form:\"social_scene_extra\" json:\"social_scene_extra,omitempty\"`\n\tProjectExtra      *ProjectExtraInfo                 `thrift:\"ProjectExtra,24,optional\" form:\"project_extra\" json:\"project_extra,omitempty\"`\n\tDataIndicator     *ProductDataIndicator             `thrift:\"DataIndicator,25,optional\" form:\"data_indicator\" json:\"data_indicator,omitempty\"`\n}\n\nfunc NewGetProductDetailData() *GetProductDetailData {\n\treturn &GetProductDetailData{}\n}\n\nfunc (p *GetProductDetailData) InitDefault() {\n}\n\nvar GetProductDetailData_MetaInfo_DEFAULT *ProductMetaInfo\n\nfunc (p *GetProductDetailData) GetMetaInfo() (v *ProductMetaInfo) {\n\tif !p.IsSetMetaInfo() {\n\t\treturn GetProductDetailData_MetaInfo_DEFAULT\n\t}\n\treturn p.MetaInfo\n}\n\nfunc (p *GetProductDetailData) GetIsOwner() (v bool) {\n\treturn p.IsOwner\n}\n\nfunc (p *GetProductDetailData) GetAuditStatus() (v product_common.ProductDraftStatus) {\n\treturn p.AuditStatus\n}\n\nvar GetProductDetailData_SellInfo_DEFAULT *SellInfo\n\nfunc (p *GetProductDetailData) GetSellInfo() (v *SellInfo) {\n\tif !p.IsSetSellInfo() {\n\t\treturn GetProductDetailData_SellInfo_DEFAULT\n\t}\n\treturn p.SellInfo\n}\n\nvar GetProductDetailData_SpaceID_DEFAULT int64\n\nfunc (p *GetProductDetailData) GetSpaceID() (v int64) {\n\tif !p.IsSetSpaceID() {\n\t\treturn GetProductDetailData_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar GetProductDetailData_Topic_DEFAULT *Topic\n\nfunc (p *GetProductDetailData) GetTopic() (v *Topic) {\n\tif !p.IsSetTopic() {\n\t\treturn GetProductDetailData_Topic_DEFAULT\n\t}\n\treturn p.Topic\n}\n\nvar GetProductDetailData_CanDuplicate_DEFAULT bool\n\nfunc (p *GetProductDetailData) GetCanDuplicate() (v bool) {\n\tif !p.IsSetCanDuplicate() {\n\t\treturn GetProductDetailData_CanDuplicate_DEFAULT\n\t}\n\treturn *p.CanDuplicate\n}\n\nvar GetProductDetailData_CommercialSetting_DEFAULT *product_common.CommercialSetting\n\nfunc (p *GetProductDetailData) GetCommercialSetting() (v *product_common.CommercialSetting) {\n\tif !p.IsSetCommercialSetting() {\n\t\treturn GetProductDetailData_CommercialSetting_DEFAULT\n\t}\n\treturn p.CommercialSetting\n}\n\nvar GetProductDetailData_PluginExtra_DEFAULT *PluginExtraInfo\n\nfunc (p *GetProductDetailData) GetPluginExtra() (v *PluginExtraInfo) {\n\tif !p.IsSetPluginExtra() {\n\t\treturn GetProductDetailData_PluginExtra_DEFAULT\n\t}\n\treturn p.PluginExtra\n}\n\nvar GetProductDetailData_BotExtra_DEFAULT *BotExtraInfo\n\nfunc (p *GetProductDetailData) GetBotExtra() (v *BotExtraInfo) {\n\tif !p.IsSetBotExtra() {\n\t\treturn GetProductDetailData_BotExtra_DEFAULT\n\t}\n\treturn p.BotExtra\n}\n\nvar GetProductDetailData_WorkflowExtra_DEFAULT *WorkflowExtraInfo\n\nfunc (p *GetProductDetailData) GetWorkflowExtra() (v *WorkflowExtraInfo) {\n\tif !p.IsSetWorkflowExtra() {\n\t\treturn GetProductDetailData_WorkflowExtra_DEFAULT\n\t}\n\treturn p.WorkflowExtra\n}\n\nvar GetProductDetailData_SocialSceneExtra_DEFAULT *SocialSceneExtraInfo\n\nfunc (p *GetProductDetailData) GetSocialSceneExtra() (v *SocialSceneExtraInfo) {\n\tif !p.IsSetSocialSceneExtra() {\n\t\treturn GetProductDetailData_SocialSceneExtra_DEFAULT\n\t}\n\treturn p.SocialSceneExtra\n}\n\nvar GetProductDetailData_ProjectExtra_DEFAULT *ProjectExtraInfo\n\nfunc (p *GetProductDetailData) GetProjectExtra() (v *ProjectExtraInfo) {\n\tif !p.IsSetProjectExtra() {\n\t\treturn GetProductDetailData_ProjectExtra_DEFAULT\n\t}\n\treturn p.ProjectExtra\n}\n\nvar GetProductDetailData_DataIndicator_DEFAULT *ProductDataIndicator\n\nfunc (p *GetProductDetailData) GetDataIndicator() (v *ProductDataIndicator) {\n\tif !p.IsSetDataIndicator() {\n\t\treturn GetProductDetailData_DataIndicator_DEFAULT\n\t}\n\treturn p.DataIndicator\n}\n\nvar fieldIDToName_GetProductDetailData = map[int16]string{\n\t1:  \"MetaInfo\",\n\t2:  \"IsOwner\",\n\t3:  \"AuditStatus\",\n\t4:  \"SellInfo\",\n\t5:  \"SpaceID\",\n\t6:  \"Topic\",\n\t7:  \"CanDuplicate\",\n\t8:  \"CommercialSetting\",\n\t20: \"PluginExtra\",\n\t21: \"BotExtra\",\n\t22: \"WorkflowExtra\",\n\t23: \"SocialSceneExtra\",\n\t24: \"ProjectExtra\",\n\t25: \"DataIndicator\",\n}\n\nfunc (p *GetProductDetailData) IsSetMetaInfo() bool {\n\treturn p.MetaInfo != nil\n}\n\nfunc (p *GetProductDetailData) IsSetSellInfo() bool {\n\treturn p.SellInfo != nil\n}\n\nfunc (p *GetProductDetailData) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *GetProductDetailData) IsSetTopic() bool {\n\treturn p.Topic != nil\n}\n\nfunc (p *GetProductDetailData) IsSetCanDuplicate() bool {\n\treturn p.CanDuplicate != nil\n}\n\nfunc (p *GetProductDetailData) IsSetCommercialSetting() bool {\n\treturn p.CommercialSetting != nil\n}\n\nfunc (p *GetProductDetailData) IsSetPluginExtra() bool {\n\treturn p.PluginExtra != nil\n}\n\nfunc (p *GetProductDetailData) IsSetBotExtra() bool {\n\treturn p.BotExtra != nil\n}\n\nfunc (p *GetProductDetailData) IsSetWorkflowExtra() bool {\n\treturn p.WorkflowExtra != nil\n}\n\nfunc (p *GetProductDetailData) IsSetSocialSceneExtra() bool {\n\treturn p.SocialSceneExtra != nil\n}\n\nfunc (p *GetProductDetailData) IsSetProjectExtra() bool {\n\treturn p.ProjectExtra != nil\n}\n\nfunc (p *GetProductDetailData) IsSetDataIndicator() bool {\n\treturn p.DataIndicator != nil\n}\n\nfunc (p *GetProductDetailData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetMetaInfo bool = false\n\tvar issetIsOwner bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMetaInfo = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetIsOwner = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 25:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField25(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetMetaInfo {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetIsOwner {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductDetailData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetProductDetailData[fieldId]))\n}\n\nfunc (p *GetProductDetailData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewProductMetaInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.MetaInfo = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsOwner = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.ProductDraftStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.ProductDraftStatus(v)\n\t}\n\tp.AuditStatus = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewSellInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SellInfo = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewTopic()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Topic = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CanDuplicate = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField8(iprot thrift.TProtocol) error {\n\t_field := product_common.NewCommercialSetting()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CommercialSetting = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField20(iprot thrift.TProtocol) error {\n\t_field := NewPluginExtraInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PluginExtra = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField21(iprot thrift.TProtocol) error {\n\t_field := NewBotExtraInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotExtra = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField22(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowExtraInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowExtra = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField23(iprot thrift.TProtocol) error {\n\t_field := NewSocialSceneExtraInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SocialSceneExtra = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField24(iprot thrift.TProtocol) error {\n\t_field := NewProjectExtraInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ProjectExtra = _field\n\treturn nil\n}\nfunc (p *GetProductDetailData) ReadField25(iprot thrift.TProtocol) error {\n\t_field := NewProductDataIndicator()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DataIndicator = _field\n\treturn nil\n}\n\nfunc (p *GetProductDetailData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductDetailData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField25(oprot); err != nil {\n\t\t\tfieldId = 25\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductDetailData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"MetaInfo\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.MetaInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsOwner\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsOwner); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AuditStatus\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.AuditStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSellInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"SellInfo\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SellInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"SpaceID\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTopic() {\n\t\tif err = oprot.WriteFieldBegin(\"Topic\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Topic.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCanDuplicate() {\n\t\tif err = oprot.WriteFieldBegin(\"CanDuplicate\", thrift.BOOL, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.CanDuplicate); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommercialSetting() {\n\t\tif err = oprot.WriteFieldBegin(\"CommercialSetting\", thrift.STRUCT, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.CommercialSetting.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"PluginExtra\", thrift.STRUCT, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.PluginExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"BotExtra\", thrift.STRUCT, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BotExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField22(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"WorkflowExtra\", thrift.STRUCT, 22); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.WorkflowExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField23(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSocialSceneExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"SocialSceneExtra\", thrift.STRUCT, 23); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SocialSceneExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField24(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectExtra() {\n\t\tif err = oprot.WriteFieldBegin(\"ProjectExtra\", thrift.STRUCT, 24); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ProjectExtra.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\nfunc (p *GetProductDetailData) writeField25(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDataIndicator() {\n\t\tif err = oprot.WriteFieldBegin(\"DataIndicator\", thrift.STRUCT, 25); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.DataIndicator.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 end error: \", p), err)\n}\n\nfunc (p *GetProductDetailData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductDetailData(%+v)\", *p)\n\n}\n\ntype GetUserFavoriteListV2Request struct {\n\t// The first page is not passed, and the last returned cursor_id is passed when subsequent calls are made\n\tCursorID   *string                           `thrift:\"CursorID,1,optional\" json:\"CursorID,omitempty\" query:\"cursor_id\"`\n\tPageSize   int32                             `thrift:\"PageSize,2,required\" json:\"PageSize,required\" query:\"page_size,required\"`\n\tEntityType *product_common.ProductEntityType `thrift:\"EntityType,3,optional\" json:\"EntityType,omitempty\" query:\"entity_type\"`\n\tSortType   product_common.SortType           `thrift:\"SortType,4,required\" json:\"SortType,required\" query:\"sort_type,required\"`\n\t// Search keyword,optional\n\tKeyword *string `thrift:\"Keyword,5,optional\" json:\"Keyword,omitempty\" query:\"keyword\"`\n\t// List page tab\n\tSource *product_common.FavoriteListSource `thrift:\"Source,6,optional\" json:\"Source,omitempty\" query:\"source\"`\n\t// Whether you need to query the user's trigger configuration for the Bot, when true, it will return EntityUserTriggerConfig\n\tNeedUserTriggerConfig *bool `thrift:\"NeedUserTriggerConfig,7,optional\" json:\"NeedUserTriggerConfig,omitempty\" query:\"need_user_trigger_config\"`\n\t// Filter collection time\n\tBeginAt *int64 `thrift:\"BeginAt,8,optional\" json:\"BeginAt,string,omitempty\" query:\"begin_at\"`\n\t// Filter collection time\n\tEndAt       *int64                             `thrift:\"EndAt,9,optional\" json:\"EndAt,string,omitempty\" query:\"end_at\"`\n\tEntityTypes []product_common.ProductEntityType `thrift:\"EntityTypes,10,optional\" json:\"EntityTypes,omitempty\" query:\"entity_types\"`\n\t// Organization ID, Enterprise Edition needs to be passed when you want to get all the content in the user's collection\n\tOrganizationID *int64     `thrift:\"OrganizationID,11,optional\" json:\"OrganizationID,omitempty\" query:\"organization_id\"`\n\tBase           *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetUserFavoriteListV2Request() *GetUserFavoriteListV2Request {\n\treturn &GetUserFavoriteListV2Request{}\n}\n\nfunc (p *GetUserFavoriteListV2Request) InitDefault() {\n}\n\nvar GetUserFavoriteListV2Request_CursorID_DEFAULT string\n\nfunc (p *GetUserFavoriteListV2Request) GetCursorID() (v string) {\n\tif !p.IsSetCursorID() {\n\t\treturn GetUserFavoriteListV2Request_CursorID_DEFAULT\n\t}\n\treturn *p.CursorID\n}\n\nfunc (p *GetUserFavoriteListV2Request) GetPageSize() (v int32) {\n\treturn p.PageSize\n}\n\nvar GetUserFavoriteListV2Request_EntityType_DEFAULT product_common.ProductEntityType\n\nfunc (p *GetUserFavoriteListV2Request) GetEntityType() (v product_common.ProductEntityType) {\n\tif !p.IsSetEntityType() {\n\t\treturn GetUserFavoriteListV2Request_EntityType_DEFAULT\n\t}\n\treturn *p.EntityType\n}\n\nfunc (p *GetUserFavoriteListV2Request) GetSortType() (v product_common.SortType) {\n\treturn p.SortType\n}\n\nvar GetUserFavoriteListV2Request_Keyword_DEFAULT string\n\nfunc (p *GetUserFavoriteListV2Request) GetKeyword() (v string) {\n\tif !p.IsSetKeyword() {\n\t\treturn GetUserFavoriteListV2Request_Keyword_DEFAULT\n\t}\n\treturn *p.Keyword\n}\n\nvar GetUserFavoriteListV2Request_Source_DEFAULT product_common.FavoriteListSource\n\nfunc (p *GetUserFavoriteListV2Request) GetSource() (v product_common.FavoriteListSource) {\n\tif !p.IsSetSource() {\n\t\treturn GetUserFavoriteListV2Request_Source_DEFAULT\n\t}\n\treturn *p.Source\n}\n\nvar GetUserFavoriteListV2Request_NeedUserTriggerConfig_DEFAULT bool\n\nfunc (p *GetUserFavoriteListV2Request) GetNeedUserTriggerConfig() (v bool) {\n\tif !p.IsSetNeedUserTriggerConfig() {\n\t\treturn GetUserFavoriteListV2Request_NeedUserTriggerConfig_DEFAULT\n\t}\n\treturn *p.NeedUserTriggerConfig\n}\n\nvar GetUserFavoriteListV2Request_BeginAt_DEFAULT int64\n\nfunc (p *GetUserFavoriteListV2Request) GetBeginAt() (v int64) {\n\tif !p.IsSetBeginAt() {\n\t\treturn GetUserFavoriteListV2Request_BeginAt_DEFAULT\n\t}\n\treturn *p.BeginAt\n}\n\nvar GetUserFavoriteListV2Request_EndAt_DEFAULT int64\n\nfunc (p *GetUserFavoriteListV2Request) GetEndAt() (v int64) {\n\tif !p.IsSetEndAt() {\n\t\treturn GetUserFavoriteListV2Request_EndAt_DEFAULT\n\t}\n\treturn *p.EndAt\n}\n\nvar GetUserFavoriteListV2Request_EntityTypes_DEFAULT []product_common.ProductEntityType\n\nfunc (p *GetUserFavoriteListV2Request) GetEntityTypes() (v []product_common.ProductEntityType) {\n\tif !p.IsSetEntityTypes() {\n\t\treturn GetUserFavoriteListV2Request_EntityTypes_DEFAULT\n\t}\n\treturn p.EntityTypes\n}\n\nvar GetUserFavoriteListV2Request_OrganizationID_DEFAULT int64\n\nfunc (p *GetUserFavoriteListV2Request) GetOrganizationID() (v int64) {\n\tif !p.IsSetOrganizationID() {\n\t\treturn GetUserFavoriteListV2Request_OrganizationID_DEFAULT\n\t}\n\treturn *p.OrganizationID\n}\n\nvar GetUserFavoriteListV2Request_Base_DEFAULT *base.Base\n\nfunc (p *GetUserFavoriteListV2Request) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetUserFavoriteListV2Request_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetUserFavoriteListV2Request = map[int16]string{\n\t1:   \"CursorID\",\n\t2:   \"PageSize\",\n\t3:   \"EntityType\",\n\t4:   \"SortType\",\n\t5:   \"Keyword\",\n\t6:   \"Source\",\n\t7:   \"NeedUserTriggerConfig\",\n\t8:   \"BeginAt\",\n\t9:   \"EndAt\",\n\t10:  \"EntityTypes\",\n\t11:  \"OrganizationID\",\n\t255: \"Base\",\n}\n\nfunc (p *GetUserFavoriteListV2Request) IsSetCursorID() bool {\n\treturn p.CursorID != nil\n}\n\nfunc (p *GetUserFavoriteListV2Request) IsSetEntityType() bool {\n\treturn p.EntityType != nil\n}\n\nfunc (p *GetUserFavoriteListV2Request) IsSetKeyword() bool {\n\treturn p.Keyword != nil\n}\n\nfunc (p *GetUserFavoriteListV2Request) IsSetSource() bool {\n\treturn p.Source != nil\n}\n\nfunc (p *GetUserFavoriteListV2Request) IsSetNeedUserTriggerConfig() bool {\n\treturn p.NeedUserTriggerConfig != nil\n}\n\nfunc (p *GetUserFavoriteListV2Request) IsSetBeginAt() bool {\n\treturn p.BeginAt != nil\n}\n\nfunc (p *GetUserFavoriteListV2Request) IsSetEndAt() bool {\n\treturn p.EndAt != nil\n}\n\nfunc (p *GetUserFavoriteListV2Request) IsSetEntityTypes() bool {\n\treturn p.EntityTypes != nil\n}\n\nfunc (p *GetUserFavoriteListV2Request) IsSetOrganizationID() bool {\n\treturn p.OrganizationID != nil\n}\n\nfunc (p *GetUserFavoriteListV2Request) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetUserFavoriteListV2Request) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPageSize bool = false\n\tvar issetSortType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPageSize = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSortType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPageSize {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSortType {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUserFavoriteListV2Request[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetUserFavoriteListV2Request[fieldId]))\n}\n\nfunc (p *GetUserFavoriteListV2Request) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CursorID = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Request) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageSize = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Request) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.ProductEntityType(v)\n\t\t_field = &tmp\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Request) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.SortType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.SortType(v)\n\t}\n\tp.SortType = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Request) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Request) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *product_common.FavoriteListSource\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := product_common.FavoriteListSource(v)\n\t\t_field = &tmp\n\t}\n\tp.Source = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Request) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NeedUserTriggerConfig = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Request) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BeginAt = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Request) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EndAt = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Request) ReadField10(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]product_common.ProductEntityType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem product_common.ProductEntityType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = product_common.ProductEntityType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.EntityTypes = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Request) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OrganizationID = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Request) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetUserFavoriteListV2Request) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserFavoriteListV2Request\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUserFavoriteListV2Request) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCursorID() {\n\t\tif err = oprot.WriteFieldBegin(\"CursorID\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CursorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Request) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PageSize\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.PageSize); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Request) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityType() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.EntityType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Request) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SortType\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SortType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Request) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKeyword() {\n\t\tif err = oprot.WriteFieldBegin(\"Keyword\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Keyword); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Request) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSource() {\n\t\tif err = oprot.WriteFieldBegin(\"Source\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Source)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Request) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedUserTriggerConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"NeedUserTriggerConfig\", thrift.BOOL, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NeedUserTriggerConfig); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Request) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBeginAt() {\n\t\tif err = oprot.WriteFieldBegin(\"BeginAt\", thrift.I64, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BeginAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Request) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEndAt() {\n\t\tif err = oprot.WriteFieldBegin(\"EndAt\", thrift.I64, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EndAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Request) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityTypes() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityTypes\", thrift.LIST, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.EntityTypes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.EntityTypes {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Request) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrganizationID() {\n\t\tif err = oprot.WriteFieldBegin(\"OrganizationID\", thrift.I64, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.OrganizationID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Request) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetUserFavoriteListV2Request) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUserFavoriteListV2Request(%+v)\", *p)\n\n}\n\ntype GetUserFavoriteListV2Response struct {\n\tCode     int32                      `thrift:\"Code,1,required\" form:\"Code,required\" json:\"Code,required\" query:\"Code,required\"`\n\tMessage  string                     `thrift:\"Message,2,required\" form:\"Message,required\" json:\"Message,required\" query:\"Message,required\"`\n\tData     *GetUserFavoriteListDataV2 `thrift:\"Data,3,optional\" form:\"Data\" json:\"Data,omitempty\" query:\"Data\"`\n\tBaseResp *base.BaseResp             `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetUserFavoriteListV2Response() *GetUserFavoriteListV2Response {\n\treturn &GetUserFavoriteListV2Response{}\n}\n\nfunc (p *GetUserFavoriteListV2Response) InitDefault() {\n}\n\nfunc (p *GetUserFavoriteListV2Response) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetUserFavoriteListV2Response) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar GetUserFavoriteListV2Response_Data_DEFAULT *GetUserFavoriteListDataV2\n\nfunc (p *GetUserFavoriteListV2Response) GetData() (v *GetUserFavoriteListDataV2) {\n\tif !p.IsSetData() {\n\t\treturn GetUserFavoriteListV2Response_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetUserFavoriteListV2Response_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetUserFavoriteListV2Response) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetUserFavoriteListV2Response_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetUserFavoriteListV2Response = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Message\",\n\t3:   \"Data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetUserFavoriteListV2Response) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetUserFavoriteListV2Response) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetUserFavoriteListV2Response) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMessage bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessage = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMessage {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUserFavoriteListV2Response[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetUserFavoriteListV2Response[fieldId]))\n}\n\nfunc (p *GetUserFavoriteListV2Response) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Response) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Response) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewGetUserFavoriteListDataV2()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListV2Response) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetUserFavoriteListV2Response) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserFavoriteListV2Response\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUserFavoriteListV2Response) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Response) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Message\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Response) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetData() {\n\t\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Data.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListV2Response) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetUserFavoriteListV2Response) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUserFavoriteListV2Response(%+v)\", *p)\n\n}\n\ntype GetUserFavoriteListDataV2 struct {\n\tFavoriteEntities []*product_common.FavoriteEntity `thrift:\"FavoriteEntities,1\" form:\"favorite_entities\" json:\"favorite_entities\"`\n\tCursorID         string                           `thrift:\"CursorID,2\" form:\"cursor_id\" json:\"cursor_id\"`\n\tHasMore          bool                             `thrift:\"HasMore,3\" form:\"has_more\" json:\"has_more\"`\n\t// User timed task configuration, corresponding to flow.bot TriggerEnabled of the task service\n\tEntityUserTriggerConfig map[int64]*UserTriggerConfig `thrift:\"EntityUserTriggerConfig,4\" form:\"entity_user_trigger_config\" json:\"entity_user_trigger_config\"`\n}\n\nfunc NewGetUserFavoriteListDataV2() *GetUserFavoriteListDataV2 {\n\treturn &GetUserFavoriteListDataV2{}\n}\n\nfunc (p *GetUserFavoriteListDataV2) InitDefault() {\n}\n\nfunc (p *GetUserFavoriteListDataV2) GetFavoriteEntities() (v []*product_common.FavoriteEntity) {\n\treturn p.FavoriteEntities\n}\n\nfunc (p *GetUserFavoriteListDataV2) GetCursorID() (v string) {\n\treturn p.CursorID\n}\n\nfunc (p *GetUserFavoriteListDataV2) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nfunc (p *GetUserFavoriteListDataV2) GetEntityUserTriggerConfig() (v map[int64]*UserTriggerConfig) {\n\treturn p.EntityUserTriggerConfig\n}\n\nvar fieldIDToName_GetUserFavoriteListDataV2 = map[int16]string{\n\t1: \"FavoriteEntities\",\n\t2: \"CursorID\",\n\t3: \"HasMore\",\n\t4: \"EntityUserTriggerConfig\",\n}\n\nfunc (p *GetUserFavoriteListDataV2) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUserFavoriteListDataV2[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetUserFavoriteListDataV2) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*product_common.FavoriteEntity, 0, size)\n\tvalues := make([]product_common.FavoriteEntity, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FavoriteEntities = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListDataV2) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CursorID = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListDataV2) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *GetUserFavoriteListDataV2) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]*UserTriggerConfig, size)\n\tvalues := make([]UserTriggerConfig, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.EntityUserTriggerConfig = _field\n\treturn nil\n}\n\nfunc (p *GetUserFavoriteListDataV2) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserFavoriteListDataV2\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUserFavoriteListDataV2) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"FavoriteEntities\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FavoriteEntities)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.FavoriteEntities {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListDataV2) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CursorID\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CursorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListDataV2) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"HasMore\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetUserFavoriteListDataV2) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityUserTriggerConfig\", thrift.MAP, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.EntityUserTriggerConfig)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.EntityUserTriggerConfig {\n\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *GetUserFavoriteListDataV2) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUserFavoriteListDataV2(%+v)\", *p)\n\n}\n\ntype UserTriggerConfig struct {\n\tTriggerEnabled TriggerEnable `thrift:\"TriggerEnabled,1\" form:\"TriggerEnabled\" json:\"TriggerEnabled\" query:\"TriggerEnabled\"`\n}\n\nfunc NewUserTriggerConfig() *UserTriggerConfig {\n\treturn &UserTriggerConfig{}\n}\n\nfunc (p *UserTriggerConfig) InitDefault() {\n}\n\nfunc (p *UserTriggerConfig) GetTriggerEnabled() (v TriggerEnable) {\n\treturn p.TriggerEnabled\n}\n\nvar fieldIDToName_UserTriggerConfig = map[int16]string{\n\t1: \"TriggerEnabled\",\n}\n\nfunc (p *UserTriggerConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserTriggerConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserTriggerConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field TriggerEnable\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TriggerEnable(v)\n\t}\n\tp.TriggerEnabled = _field\n\treturn nil\n}\n\nfunc (p *UserTriggerConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserTriggerConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserTriggerConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TriggerEnabled\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TriggerEnabled)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *UserTriggerConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserTriggerConfig(%+v)\", *p)\n\n}\n\ntype DuplicateProductRequest struct {\n\tProductID  int64                            `thrift:\"ProductID,1,required\" form:\"product_id,required\" json:\"product_id,string,required\"`\n\tEntityType product_common.ProductEntityType `thrift:\"EntityType,2,required\" form:\"entity_type,required\" json:\"entity_type,required\"`\n\tSpaceID    *int64                           `thrift:\"SpaceID,3,optional\" form:\"space_id\" json:\"space_id,string,omitempty\"`\n\tName       *string                          `thrift:\"Name,4,optional\" form:\"name\" json:\"name,omitempty\"`\n\tCookie     *string                          `thrift:\"Cookie,100,optional\" jsonlog:\"-\" json:\"-\" form:\"Cookie\" query:\"Cookie\"`\n\tBase       *base.Base                       `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDuplicateProductRequest() *DuplicateProductRequest {\n\treturn &DuplicateProductRequest{}\n}\n\nfunc (p *DuplicateProductRequest) InitDefault() {\n}\n\nfunc (p *DuplicateProductRequest) GetProductID() (v int64) {\n\treturn p.ProductID\n}\n\nfunc (p *DuplicateProductRequest) GetEntityType() (v product_common.ProductEntityType) {\n\treturn p.EntityType\n}\n\nvar DuplicateProductRequest_SpaceID_DEFAULT int64\n\nfunc (p *DuplicateProductRequest) GetSpaceID() (v int64) {\n\tif !p.IsSetSpaceID() {\n\t\treturn DuplicateProductRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar DuplicateProductRequest_Name_DEFAULT string\n\nfunc (p *DuplicateProductRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn DuplicateProductRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar DuplicateProductRequest_Cookie_DEFAULT string\n\nfunc (p *DuplicateProductRequest) GetCookie() (v string) {\n\tif !p.IsSetCookie() {\n\t\treturn DuplicateProductRequest_Cookie_DEFAULT\n\t}\n\treturn *p.Cookie\n}\n\nvar DuplicateProductRequest_Base_DEFAULT *base.Base\n\nfunc (p *DuplicateProductRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DuplicateProductRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DuplicateProductRequest = map[int16]string{\n\t1:   \"ProductID\",\n\t2:   \"EntityType\",\n\t3:   \"SpaceID\",\n\t4:   \"Name\",\n\t100: \"Cookie\",\n\t255: \"Base\",\n}\n\nfunc (p *DuplicateProductRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *DuplicateProductRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *DuplicateProductRequest) IsSetCookie() bool {\n\treturn p.Cookie != nil\n}\n\nfunc (p *DuplicateProductRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DuplicateProductRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProductID bool = false\n\tvar issetEntityType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProductID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetEntityType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 100:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField100(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProductID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetEntityType {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DuplicateProductRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DuplicateProductRequest[fieldId]))\n}\n\nfunc (p *DuplicateProductRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProductID = _field\n\treturn nil\n}\nfunc (p *DuplicateProductRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.ProductEntityType(v)\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *DuplicateProductRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *DuplicateProductRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DuplicateProductRequest) ReadField100(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Cookie = _field\n\treturn nil\n}\nfunc (p *DuplicateProductRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DuplicateProductRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DuplicateProductRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField100(oprot); err != nil {\n\t\t\tfieldId = 100\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DuplicateProductRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ProductID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProductID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DuplicateProductRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.EntityType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DuplicateProductRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"SpaceID\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DuplicateProductRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DuplicateProductRequest) writeField100(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCookie() {\n\t\tif err = oprot.WriteFieldBegin(\"Cookie\", thrift.STRING, 100); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Cookie); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 100 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 100 end error: \", p), err)\n}\nfunc (p *DuplicateProductRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DuplicateProductRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DuplicateProductRequest(%+v)\", *p)\n\n}\n\ntype DuplicateProductResponse struct {\n\tCode     int32                 `thrift:\"Code,1,required\" form:\"code,required\" json:\"code,required\"`\n\tMessage  string                `thrift:\"Message,2,required\" form:\"message,required\" json:\"message,required\"`\n\tData     *DuplicateProductData `thrift:\"Data,3\" form:\"data\" json:\"data\"`\n\tBaseResp *base.BaseResp        `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewDuplicateProductResponse() *DuplicateProductResponse {\n\treturn &DuplicateProductResponse{}\n}\n\nfunc (p *DuplicateProductResponse) InitDefault() {\n}\n\nfunc (p *DuplicateProductResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *DuplicateProductResponse) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar DuplicateProductResponse_Data_DEFAULT *DuplicateProductData\n\nfunc (p *DuplicateProductResponse) GetData() (v *DuplicateProductData) {\n\tif !p.IsSetData() {\n\t\treturn DuplicateProductResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar DuplicateProductResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DuplicateProductResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DuplicateProductResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DuplicateProductResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Message\",\n\t3:   \"Data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DuplicateProductResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *DuplicateProductResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DuplicateProductResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMessage bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessage = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMessage {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DuplicateProductResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DuplicateProductResponse[fieldId]))\n}\n\nfunc (p *DuplicateProductResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DuplicateProductResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *DuplicateProductResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewDuplicateProductData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *DuplicateProductResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DuplicateProductResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DuplicateProductResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DuplicateProductResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DuplicateProductResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Message\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DuplicateProductResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DuplicateProductResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DuplicateProductResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DuplicateProductResponse(%+v)\", *p)\n\n}\n\ntype DuplicateProductData struct {\n\t// New ID after copy\n\tNewEntityID int64 `thrift:\"NewEntityID,1\" form:\"new_entity_id\" json:\"new_entity_id,string\"`\n\t// Plugin ID for workflow\n\tNewPluginID *int64 `thrift:\"NewPluginID,2,optional\" form:\"new_plugin_id\" json:\"new_plugin_id,string,omitempty\"`\n}\n\nfunc NewDuplicateProductData() *DuplicateProductData {\n\treturn &DuplicateProductData{}\n}\n\nfunc (p *DuplicateProductData) InitDefault() {\n}\n\nfunc (p *DuplicateProductData) GetNewEntityID() (v int64) {\n\treturn p.NewEntityID\n}\n\nvar DuplicateProductData_NewPluginID_DEFAULT int64\n\nfunc (p *DuplicateProductData) GetNewPluginID() (v int64) {\n\tif !p.IsSetNewPluginID() {\n\t\treturn DuplicateProductData_NewPluginID_DEFAULT\n\t}\n\treturn *p.NewPluginID\n}\n\nvar fieldIDToName_DuplicateProductData = map[int16]string{\n\t1: \"NewEntityID\",\n\t2: \"NewPluginID\",\n}\n\nfunc (p *DuplicateProductData) IsSetNewPluginID() bool {\n\treturn p.NewPluginID != nil\n}\n\nfunc (p *DuplicateProductData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DuplicateProductData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DuplicateProductData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NewEntityID = _field\n\treturn nil\n}\nfunc (p *DuplicateProductData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NewPluginID = _field\n\treturn nil\n}\n\nfunc (p *DuplicateProductData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DuplicateProductData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DuplicateProductData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"NewEntityID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.NewEntityID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DuplicateProductData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNewPluginID() {\n\t\tif err = oprot.WriteFieldBegin(\"NewPluginID\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.NewPluginID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *DuplicateProductData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DuplicateProductData(%+v)\", *p)\n\n}\n\ntype GetProductCategoryListRequest struct {\n\tEntityType product_common.ProductEntityType `thrift:\"EntityType,1\" json:\"EntityType\" query:\"entity_type\"`\n\t// When listing, need to get the full category list to distinguish between listing and homepage scenarios\n\tNeedEmptyCategory *bool      `thrift:\"NeedEmptyCategory,2,optional\" json:\"NeedEmptyCategory,omitempty\" query:\"need_empty_category\"`\n\tLang              *string    `thrift:\"Lang,3,optional\" json:\"Lang,omitempty\" query:\"lang\"`\n\tBase              *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetProductCategoryListRequest() *GetProductCategoryListRequest {\n\treturn &GetProductCategoryListRequest{}\n}\n\nfunc (p *GetProductCategoryListRequest) InitDefault() {\n}\n\nfunc (p *GetProductCategoryListRequest) GetEntityType() (v product_common.ProductEntityType) {\n\treturn p.EntityType\n}\n\nvar GetProductCategoryListRequest_NeedEmptyCategory_DEFAULT bool\n\nfunc (p *GetProductCategoryListRequest) GetNeedEmptyCategory() (v bool) {\n\tif !p.IsSetNeedEmptyCategory() {\n\t\treturn GetProductCategoryListRequest_NeedEmptyCategory_DEFAULT\n\t}\n\treturn *p.NeedEmptyCategory\n}\n\nvar GetProductCategoryListRequest_Lang_DEFAULT string\n\nfunc (p *GetProductCategoryListRequest) GetLang() (v string) {\n\tif !p.IsSetLang() {\n\t\treturn GetProductCategoryListRequest_Lang_DEFAULT\n\t}\n\treturn *p.Lang\n}\n\nvar GetProductCategoryListRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetProductCategoryListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetProductCategoryListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetProductCategoryListRequest = map[int16]string{\n\t1:   \"EntityType\",\n\t2:   \"NeedEmptyCategory\",\n\t3:   \"Lang\",\n\t255: \"Base\",\n}\n\nfunc (p *GetProductCategoryListRequest) IsSetNeedEmptyCategory() bool {\n\treturn p.NeedEmptyCategory != nil\n}\n\nfunc (p *GetProductCategoryListRequest) IsSetLang() bool {\n\treturn p.Lang != nil\n}\n\nfunc (p *GetProductCategoryListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetProductCategoryListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductCategoryListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetProductCategoryListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.ProductEntityType(v)\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *GetProductCategoryListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NeedEmptyCategory = _field\n\treturn nil\n}\nfunc (p *GetProductCategoryListRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Lang = _field\n\treturn nil\n}\nfunc (p *GetProductCategoryListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetProductCategoryListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductCategoryListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductCategoryListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.EntityType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductCategoryListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedEmptyCategory() {\n\t\tif err = oprot.WriteFieldBegin(\"NeedEmptyCategory\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NeedEmptyCategory); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProductCategoryListRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLang() {\n\t\tif err = oprot.WriteFieldBegin(\"Lang\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Lang); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProductCategoryListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProductCategoryListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductCategoryListRequest(%+v)\", *p)\n\n}\n\ntype GetProductCategoryListData struct {\n\tEntityType product_common.ProductEntityType `thrift:\"EntityType,1,required\" form:\"entity_type,required\" json:\"entity_type,required\"`\n\tCategories []*ProductCategory               `thrift:\"Categories,2,optional\" form:\"categories\" json:\"categories,omitempty\"`\n}\n\nfunc NewGetProductCategoryListData() *GetProductCategoryListData {\n\treturn &GetProductCategoryListData{}\n}\n\nfunc (p *GetProductCategoryListData) InitDefault() {\n}\n\nfunc (p *GetProductCategoryListData) GetEntityType() (v product_common.ProductEntityType) {\n\treturn p.EntityType\n}\n\nvar GetProductCategoryListData_Categories_DEFAULT []*ProductCategory\n\nfunc (p *GetProductCategoryListData) GetCategories() (v []*ProductCategory) {\n\tif !p.IsSetCategories() {\n\t\treturn GetProductCategoryListData_Categories_DEFAULT\n\t}\n\treturn p.Categories\n}\n\nvar fieldIDToName_GetProductCategoryListData = map[int16]string{\n\t1: \"EntityType\",\n\t2: \"Categories\",\n}\n\nfunc (p *GetProductCategoryListData) IsSetCategories() bool {\n\treturn p.Categories != nil\n}\n\nfunc (p *GetProductCategoryListData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetEntityType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetEntityType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetEntityType {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductCategoryListData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetProductCategoryListData[fieldId]))\n}\n\nfunc (p *GetProductCategoryListData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.ProductEntityType(v)\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *GetProductCategoryListData) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProductCategory, 0, size)\n\tvalues := make([]ProductCategory, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Categories = _field\n\treturn nil\n}\n\nfunc (p *GetProductCategoryListData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductCategoryListData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductCategoryListData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.EntityType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductCategoryListData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCategories() {\n\t\tif err = oprot.WriteFieldBegin(\"Categories\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Categories)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Categories {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *GetProductCategoryListData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductCategoryListData(%+v)\", *p)\n\n}\n\ntype GetProductCategoryListResponse struct {\n\tCode     int32                       `thrift:\"Code,1,required\" form:\"code,required\" json:\"code,required\"`\n\tMessage  string                      `thrift:\"Message,2,required\" form:\"message,required\" json:\"message,required\"`\n\tData     *GetProductCategoryListData `thrift:\"Data,3\" form:\"data\" json:\"data\"`\n\tBaseResp *base.BaseResp              `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetProductCategoryListResponse() *GetProductCategoryListResponse {\n\treturn &GetProductCategoryListResponse{}\n}\n\nfunc (p *GetProductCategoryListResponse) InitDefault() {\n}\n\nfunc (p *GetProductCategoryListResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetProductCategoryListResponse) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar GetProductCategoryListResponse_Data_DEFAULT *GetProductCategoryListData\n\nfunc (p *GetProductCategoryListResponse) GetData() (v *GetProductCategoryListData) {\n\tif !p.IsSetData() {\n\t\treturn GetProductCategoryListResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetProductCategoryListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetProductCategoryListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetProductCategoryListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetProductCategoryListResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Message\",\n\t3:   \"Data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetProductCategoryListResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetProductCategoryListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetProductCategoryListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMessage bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessage = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMessage {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductCategoryListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetProductCategoryListResponse[fieldId]))\n}\n\nfunc (p *GetProductCategoryListResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetProductCategoryListResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *GetProductCategoryListResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewGetProductCategoryListData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetProductCategoryListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetProductCategoryListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductCategoryListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductCategoryListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductCategoryListResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Message\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProductCategoryListResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProductCategoryListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProductCategoryListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductCategoryListResponse(%+v)\", *p)\n\n}\n\ntype GetProductCallInfoRequest struct {\n\tEntityType   product_common.ProductEntityType `thrift:\"EntityType,1\" json:\"EntityType\" query:\"entity_type\"`\n\tEntityID     *int64                           `thrift:\"EntityID,2,optional\" json:\"EntityID,omitempty\" query:\"entity_id\"`\n\tEnterpriseID *string                          `thrift:\"EnterpriseID,3,optional\" json:\"EnterpriseID,omitempty\" query:\"enterprise_id\"`\n\tBase         *base.Base                       `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetProductCallInfoRequest() *GetProductCallInfoRequest {\n\treturn &GetProductCallInfoRequest{}\n}\n\nfunc (p *GetProductCallInfoRequest) InitDefault() {\n}\n\nfunc (p *GetProductCallInfoRequest) GetEntityType() (v product_common.ProductEntityType) {\n\treturn p.EntityType\n}\n\nvar GetProductCallInfoRequest_EntityID_DEFAULT int64\n\nfunc (p *GetProductCallInfoRequest) GetEntityID() (v int64) {\n\tif !p.IsSetEntityID() {\n\t\treturn GetProductCallInfoRequest_EntityID_DEFAULT\n\t}\n\treturn *p.EntityID\n}\n\nvar GetProductCallInfoRequest_EnterpriseID_DEFAULT string\n\nfunc (p *GetProductCallInfoRequest) GetEnterpriseID() (v string) {\n\tif !p.IsSetEnterpriseID() {\n\t\treturn GetProductCallInfoRequest_EnterpriseID_DEFAULT\n\t}\n\treturn *p.EnterpriseID\n}\n\nvar GetProductCallInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetProductCallInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetProductCallInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetProductCallInfoRequest = map[int16]string{\n\t1:   \"EntityType\",\n\t2:   \"EntityID\",\n\t3:   \"EnterpriseID\",\n\t255: \"Base\",\n}\n\nfunc (p *GetProductCallInfoRequest) IsSetEntityID() bool {\n\treturn p.EntityID != nil\n}\n\nfunc (p *GetProductCallInfoRequest) IsSetEnterpriseID() bool {\n\treturn p.EnterpriseID != nil\n}\n\nfunc (p *GetProductCallInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetProductCallInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductCallInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetProductCallInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field product_common.ProductEntityType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = product_common.ProductEntityType(v)\n\t}\n\tp.EntityType = _field\n\treturn nil\n}\nfunc (p *GetProductCallInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EntityID = _field\n\treturn nil\n}\nfunc (p *GetProductCallInfoRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EnterpriseID = _field\n\treturn nil\n}\nfunc (p *GetProductCallInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetProductCallInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductCallInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductCallInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EntityType\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.EntityType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductCallInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEntityID() {\n\t\tif err = oprot.WriteFieldBegin(\"EntityID\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EntityID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProductCallInfoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEnterpriseID() {\n\t\tif err = oprot.WriteFieldBegin(\"EnterpriseID\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.EnterpriseID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProductCallInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProductCallInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductCallInfoRequest(%+v)\", *p)\n\n}\n\ntype ProductCallCountLimit struct {\n\t// Whether plugin tool calls are unlimited\n\tIsUnlimited bool `thrift:\"is_unlimited,1\" form:\"is_unlimited\" json:\"is_unlimited\" query:\"is_unlimited\"`\n\t// Plugin tool calls used\n\tUsedCount int32 `thrift:\"used_count,2\" form:\"used_count\" json:\"used_count\" query:\"used_count\"`\n\t// Plugin total tool calls\n\tTotalCount int32 `thrift:\"total_count,3\" form:\"total_count\" json:\"total_count\" query:\"total_count\"`\n\t// Plugin tool call count reset time\n\tResetDatetime int64 `thrift:\"reset_datetime,4\" form:\"reset_datetime\" json:\"reset_datetime\" query:\"reset_datetime\"`\n\t// Plugin tool call count limit by user level\n\tCallCountLimitByUserLevel map[UserLevel]*ProductCallCountLimit `thrift:\"call_count_limit_by_user_level,5\" form:\"call_count_limit_by_user_level\" json:\"call_count_limit_by_user_level\" query:\"call_count_limit_by_user_level\"`\n}\n\nfunc NewProductCallCountLimit() *ProductCallCountLimit {\n\treturn &ProductCallCountLimit{}\n}\n\nfunc (p *ProductCallCountLimit) InitDefault() {\n}\n\nfunc (p *ProductCallCountLimit) GetIsUnlimited() (v bool) {\n\treturn p.IsUnlimited\n}\n\nfunc (p *ProductCallCountLimit) GetUsedCount() (v int32) {\n\treturn p.UsedCount\n}\n\nfunc (p *ProductCallCountLimit) GetTotalCount() (v int32) {\n\treturn p.TotalCount\n}\n\nfunc (p *ProductCallCountLimit) GetResetDatetime() (v int64) {\n\treturn p.ResetDatetime\n}\n\nfunc (p *ProductCallCountLimit) GetCallCountLimitByUserLevel() (v map[UserLevel]*ProductCallCountLimit) {\n\treturn p.CallCountLimitByUserLevel\n}\n\nvar fieldIDToName_ProductCallCountLimit = map[int16]string{\n\t1: \"is_unlimited\",\n\t2: \"used_count\",\n\t3: \"total_count\",\n\t4: \"reset_datetime\",\n\t5: \"call_count_limit_by_user_level\",\n}\n\nfunc (p *ProductCallCountLimit) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProductCallCountLimit[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProductCallCountLimit) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsUnlimited = _field\n\treturn nil\n}\nfunc (p *ProductCallCountLimit) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UsedCount = _field\n\treturn nil\n}\nfunc (p *ProductCallCountLimit) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TotalCount = _field\n\treturn nil\n}\nfunc (p *ProductCallCountLimit) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ResetDatetime = _field\n\treturn nil\n}\nfunc (p *ProductCallCountLimit) ReadField5(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[UserLevel]*ProductCallCountLimit, size)\n\tvalues := make([]ProductCallCountLimit, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key UserLevel\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = UserLevel(v)\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CallCountLimitByUserLevel = _field\n\treturn nil\n}\n\nfunc (p *ProductCallCountLimit) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProductCallCountLimit\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProductCallCountLimit) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_unlimited\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsUnlimited); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProductCallCountLimit) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"used_count\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.UsedCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ProductCallCountLimit) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total_count\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TotalCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ProductCallCountLimit) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"reset_datetime\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ResetDatetime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ProductCallCountLimit) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"call_count_limit_by_user_level\", thrift.MAP, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I32, thrift.STRUCT, len(p.CallCountLimitByUserLevel)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.CallCountLimitByUserLevel {\n\t\tif err := oprot.WriteI32(int32(k)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *ProductCallCountLimit) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProductCallCountLimit(%+v)\", *p)\n\n}\n\ntype ProductCallRateLimit struct {\n\t// qps\n\tQPS int32 `thrift:\"qps,1\" form:\"qps\" json:\"qps\" query:\"qps\"`\n\t// Plugin tool call rate limit by user level\n\tCallRateLimitByUserLevel map[UserLevel]*ProductCallRateLimit `thrift:\"call_rate_limit_by_user_level,2\" form:\"call_rate_limit_by_user_level\" json:\"call_rate_limit_by_user_level\" query:\"call_rate_limit_by_user_level\"`\n}\n\nfunc NewProductCallRateLimit() *ProductCallRateLimit {\n\treturn &ProductCallRateLimit{}\n}\n\nfunc (p *ProductCallRateLimit) InitDefault() {\n}\n\nfunc (p *ProductCallRateLimit) GetQPS() (v int32) {\n\treturn p.QPS\n}\n\nfunc (p *ProductCallRateLimit) GetCallRateLimitByUserLevel() (v map[UserLevel]*ProductCallRateLimit) {\n\treturn p.CallRateLimitByUserLevel\n}\n\nvar fieldIDToName_ProductCallRateLimit = map[int16]string{\n\t1: \"qps\",\n\t2: \"call_rate_limit_by_user_level\",\n}\n\nfunc (p *ProductCallRateLimit) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProductCallRateLimit[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProductCallRateLimit) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.QPS = _field\n\treturn nil\n}\nfunc (p *ProductCallRateLimit) ReadField2(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[UserLevel]*ProductCallRateLimit, size)\n\tvalues := make([]ProductCallRateLimit, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key UserLevel\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = UserLevel(v)\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CallRateLimitByUserLevel = _field\n\treturn nil\n}\n\nfunc (p *ProductCallRateLimit) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProductCallRateLimit\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProductCallRateLimit) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"qps\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.QPS); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProductCallRateLimit) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"call_rate_limit_by_user_level\", thrift.MAP, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I32, thrift.STRUCT, len(p.CallRateLimitByUserLevel)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.CallRateLimitByUserLevel {\n\t\tif err := oprot.WriteI32(int32(k)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ProductCallRateLimit) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProductCallRateLimit(%+v)\", *p)\n\n}\n\ntype UserInfo struct {\n\t// User name\n\tUserName *string `thrift:\"user_name,1,optional\" form:\"user_name\" json:\"user_name,omitempty\" query:\"user_name\"`\n\t// User nickname\n\tNickName *string `thrift:\"nick_name,2,optional\" form:\"nick_name\" json:\"nick_name,omitempty\" query:\"nick_name\"`\n\t// User avatar url\n\tAvatarURL *string `thrift:\"avatar_url,3,optional\" form:\"avatar_url\" json:\"avatar_url,omitempty\" query:\"avatar_url\"`\n}\n\nfunc NewUserInfo() *UserInfo {\n\treturn &UserInfo{}\n}\n\nfunc (p *UserInfo) InitDefault() {\n}\n\nvar UserInfo_UserName_DEFAULT string\n\nfunc (p *UserInfo) GetUserName() (v string) {\n\tif !p.IsSetUserName() {\n\t\treturn UserInfo_UserName_DEFAULT\n\t}\n\treturn *p.UserName\n}\n\nvar UserInfo_NickName_DEFAULT string\n\nfunc (p *UserInfo) GetNickName() (v string) {\n\tif !p.IsSetNickName() {\n\t\treturn UserInfo_NickName_DEFAULT\n\t}\n\treturn *p.NickName\n}\n\nvar UserInfo_AvatarURL_DEFAULT string\n\nfunc (p *UserInfo) GetAvatarURL() (v string) {\n\tif !p.IsSetAvatarURL() {\n\t\treturn UserInfo_AvatarURL_DEFAULT\n\t}\n\treturn *p.AvatarURL\n}\n\nvar fieldIDToName_UserInfo = map[int16]string{\n\t1: \"user_name\",\n\t2: \"nick_name\",\n\t3: \"avatar_url\",\n}\n\nfunc (p *UserInfo) IsSetUserName() bool {\n\treturn p.UserName != nil\n}\n\nfunc (p *UserInfo) IsSetNickName() bool {\n\treturn p.NickName != nil\n}\n\nfunc (p *UserInfo) IsSetAvatarURL() bool {\n\treturn p.AvatarURL != nil\n}\n\nfunc (p *UserInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserName = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NickName = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AvatarURL = _field\n\treturn nil\n}\n\nfunc (p *UserInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserName() {\n\t\tif err = oprot.WriteFieldBegin(\"user_name\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UserName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNickName() {\n\t\tif err = oprot.WriteFieldBegin(\"nick_name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.NickName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAvatarURL() {\n\t\tif err = oprot.WriteFieldBegin(\"avatar_url\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.AvatarURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *UserInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserInfo(%+v)\", *p)\n\n}\n\ntype GetProductCallInfoData struct {\n\t// mcp configuration json string\n\tMcpJSON string `thrift:\"mcp_json,1\" form:\"mcp_json\" json:\"mcp_json\" query:\"mcp_json\"`\n\t// Payment level\n\tUserLevel UserLevel `thrift:\"user_level,2\" form:\"user_level\" json:\"user_level\" query:\"user_level\"`\n\t// Plugin tool call count limit\n\tCallCountLimit *ProductCallCountLimit `thrift:\"call_count_limit,3\" form:\"call_count_limit\" json:\"call_count_limit\" query:\"call_count_limit\"`\n\t// Plugin tool call rate limit\n\tCallRateLimit *ProductCallRateLimit `thrift:\"call_rate_limit,4\" form:\"call_rate_limit\" json:\"call_rate_limit\" query:\"call_rate_limit\"`\n\t// User info\n\tUserInfo *UserInfo `thrift:\"user_info,5\" form:\"user_info\" json:\"user_info\" query:\"user_info\"`\n\t// Enterprise revert time\n\tRevertTime *string `thrift:\"revert_time,6,optional\" form:\"revert_time\" json:\"revert_time,omitempty\" query:\"revert_time\"`\n}\n\nfunc NewGetProductCallInfoData() *GetProductCallInfoData {\n\treturn &GetProductCallInfoData{}\n}\n\nfunc (p *GetProductCallInfoData) InitDefault() {\n}\n\nfunc (p *GetProductCallInfoData) GetMcpJSON() (v string) {\n\treturn p.McpJSON\n}\n\nfunc (p *GetProductCallInfoData) GetUserLevel() (v UserLevel) {\n\treturn p.UserLevel\n}\n\nvar GetProductCallInfoData_CallCountLimit_DEFAULT *ProductCallCountLimit\n\nfunc (p *GetProductCallInfoData) GetCallCountLimit() (v *ProductCallCountLimit) {\n\tif !p.IsSetCallCountLimit() {\n\t\treturn GetProductCallInfoData_CallCountLimit_DEFAULT\n\t}\n\treturn p.CallCountLimit\n}\n\nvar GetProductCallInfoData_CallRateLimit_DEFAULT *ProductCallRateLimit\n\nfunc (p *GetProductCallInfoData) GetCallRateLimit() (v *ProductCallRateLimit) {\n\tif !p.IsSetCallRateLimit() {\n\t\treturn GetProductCallInfoData_CallRateLimit_DEFAULT\n\t}\n\treturn p.CallRateLimit\n}\n\nvar GetProductCallInfoData_UserInfo_DEFAULT *UserInfo\n\nfunc (p *GetProductCallInfoData) GetUserInfo() (v *UserInfo) {\n\tif !p.IsSetUserInfo() {\n\t\treturn GetProductCallInfoData_UserInfo_DEFAULT\n\t}\n\treturn p.UserInfo\n}\n\nvar GetProductCallInfoData_RevertTime_DEFAULT string\n\nfunc (p *GetProductCallInfoData) GetRevertTime() (v string) {\n\tif !p.IsSetRevertTime() {\n\t\treturn GetProductCallInfoData_RevertTime_DEFAULT\n\t}\n\treturn *p.RevertTime\n}\n\nvar fieldIDToName_GetProductCallInfoData = map[int16]string{\n\t1: \"mcp_json\",\n\t2: \"user_level\",\n\t3: \"call_count_limit\",\n\t4: \"call_rate_limit\",\n\t5: \"user_info\",\n\t6: \"revert_time\",\n}\n\nfunc (p *GetProductCallInfoData) IsSetCallCountLimit() bool {\n\treturn p.CallCountLimit != nil\n}\n\nfunc (p *GetProductCallInfoData) IsSetCallRateLimit() bool {\n\treturn p.CallRateLimit != nil\n}\n\nfunc (p *GetProductCallInfoData) IsSetUserInfo() bool {\n\treturn p.UserInfo != nil\n}\n\nfunc (p *GetProductCallInfoData) IsSetRevertTime() bool {\n\treturn p.RevertTime != nil\n}\n\nfunc (p *GetProductCallInfoData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductCallInfoData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetProductCallInfoData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.McpJSON = _field\n\treturn nil\n}\nfunc (p *GetProductCallInfoData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field UserLevel\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = UserLevel(v)\n\t}\n\tp.UserLevel = _field\n\treturn nil\n}\nfunc (p *GetProductCallInfoData) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewProductCallCountLimit()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CallCountLimit = _field\n\treturn nil\n}\nfunc (p *GetProductCallInfoData) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewProductCallRateLimit()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CallRateLimit = _field\n\treturn nil\n}\nfunc (p *GetProductCallInfoData) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewUserInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserInfo = _field\n\treturn nil\n}\nfunc (p *GetProductCallInfoData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RevertTime = _field\n\treturn nil\n}\n\nfunc (p *GetProductCallInfoData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductCallInfoData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductCallInfoData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"mcp_json\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.McpJSON); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductCallInfoData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_level\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.UserLevel)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProductCallInfoData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"call_count_limit\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.CallCountLimit.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProductCallInfoData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"call_rate_limit\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.CallRateLimit.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetProductCallInfoData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_info\", thrift.STRUCT, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.UserInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetProductCallInfoData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRevertTime() {\n\t\tif err = oprot.WriteFieldBegin(\"revert_time\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.RevertTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *GetProductCallInfoData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductCallInfoData(%+v)\", *p)\n\n}\n\ntype GetProductCallInfoResponse struct {\n\tCode     int32                   `thrift:\"Code,1,required\" form:\"code,required\" json:\"code,required\"`\n\tMessage  string                  `thrift:\"Message,2,required\" form:\"message,required\" json:\"message,required\"`\n\tData     *GetProductCallInfoData `thrift:\"Data,3,optional\" form:\"data\" json:\"data,omitempty\"`\n\tBaseResp *base.BaseResp          `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetProductCallInfoResponse() *GetProductCallInfoResponse {\n\treturn &GetProductCallInfoResponse{}\n}\n\nfunc (p *GetProductCallInfoResponse) InitDefault() {\n}\n\nfunc (p *GetProductCallInfoResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetProductCallInfoResponse) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar GetProductCallInfoResponse_Data_DEFAULT *GetProductCallInfoData\n\nfunc (p *GetProductCallInfoResponse) GetData() (v *GetProductCallInfoData) {\n\tif !p.IsSetData() {\n\t\treturn GetProductCallInfoResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetProductCallInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetProductCallInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetProductCallInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetProductCallInfoResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Message\",\n\t3:   \"Data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetProductCallInfoResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetProductCallInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetProductCallInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMessage bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMessage = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMessage {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetProductCallInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetProductCallInfoResponse[fieldId]))\n}\n\nfunc (p *GetProductCallInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetProductCallInfoResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *GetProductCallInfoResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewGetProductCallInfoData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetProductCallInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetProductCallInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetProductCallInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetProductCallInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetProductCallInfoResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Message\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetProductCallInfoResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetData() {\n\t\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Data.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetProductCallInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetProductCallInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetProductCallInfoResponse(%+v)\", *p)\n\n}\n\ntype PublicProductService interface {\n\tPublicGetProductList(ctx context.Context, req *GetProductListRequest) (r *GetProductListResponse, err error)\n\n\tPublicGetProductDetail(ctx context.Context, req *GetProductDetailRequest) (r *GetProductDetailResponse, err error)\n\n\tPublicFavoriteProduct(ctx context.Context, req *FavoriteProductRequest) (r *FavoriteProductResponse, err error)\n\n\tPublicGetUserFavoriteListV2(ctx context.Context, req *GetUserFavoriteListV2Request) (r *GetUserFavoriteListV2Response, err error)\n\n\tPublicDuplicateProduct(ctx context.Context, req *DuplicateProductRequest) (r *DuplicateProductResponse, err error)\n\n\tPublicSearchProduct(ctx context.Context, req *SearchProductRequest) (r *SearchProductResponse, err error)\n\n\tPublicSearchSuggest(ctx context.Context, req *SearchSuggestRequest) (r *SearchSuggestResponse, err error)\n\n\tPublicGetProductCategoryList(ctx context.Context, req *GetProductCategoryListRequest) (r *GetProductCategoryListResponse, err error)\n\n\tPublicGetProductCallInfo(ctx context.Context, req *GetProductCallInfoRequest) (r *GetProductCallInfoResponse, err error)\n\n\tPublicGetMarketPluginConfig(ctx context.Context, req *GetMarketPluginConfigRequest) (r *GetMarketPluginConfigResponse, err error)\n}\n\ntype PublicProductServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewPublicProductServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *PublicProductServiceClient {\n\treturn &PublicProductServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewPublicProductServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *PublicProductServiceClient {\n\treturn &PublicProductServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewPublicProductServiceClient(c thrift.TClient) *PublicProductServiceClient {\n\treturn &PublicProductServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *PublicProductServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *PublicProductServiceClient) PublicGetProductList(ctx context.Context, req *GetProductListRequest) (r *GetProductListResponse, err error) {\n\tvar _args PublicProductServicePublicGetProductListArgs\n\t_args.Req = req\n\tvar _result PublicProductServicePublicGetProductListResult\n\tif err = p.Client_().Call(ctx, \"PublicGetProductList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PublicProductServiceClient) PublicGetProductDetail(ctx context.Context, req *GetProductDetailRequest) (r *GetProductDetailResponse, err error) {\n\tvar _args PublicProductServicePublicGetProductDetailArgs\n\t_args.Req = req\n\tvar _result PublicProductServicePublicGetProductDetailResult\n\tif err = p.Client_().Call(ctx, \"PublicGetProductDetail\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PublicProductServiceClient) PublicFavoriteProduct(ctx context.Context, req *FavoriteProductRequest) (r *FavoriteProductResponse, err error) {\n\tvar _args PublicProductServicePublicFavoriteProductArgs\n\t_args.Req = req\n\tvar _result PublicProductServicePublicFavoriteProductResult\n\tif err = p.Client_().Call(ctx, \"PublicFavoriteProduct\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PublicProductServiceClient) PublicGetUserFavoriteListV2(ctx context.Context, req *GetUserFavoriteListV2Request) (r *GetUserFavoriteListV2Response, err error) {\n\tvar _args PublicProductServicePublicGetUserFavoriteListV2Args\n\t_args.Req = req\n\tvar _result PublicProductServicePublicGetUserFavoriteListV2Result\n\tif err = p.Client_().Call(ctx, \"PublicGetUserFavoriteListV2\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PublicProductServiceClient) PublicDuplicateProduct(ctx context.Context, req *DuplicateProductRequest) (r *DuplicateProductResponse, err error) {\n\tvar _args PublicProductServicePublicDuplicateProductArgs\n\t_args.Req = req\n\tvar _result PublicProductServicePublicDuplicateProductResult\n\tif err = p.Client_().Call(ctx, \"PublicDuplicateProduct\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PublicProductServiceClient) PublicSearchProduct(ctx context.Context, req *SearchProductRequest) (r *SearchProductResponse, err error) {\n\tvar _args PublicProductServicePublicSearchProductArgs\n\t_args.Req = req\n\tvar _result PublicProductServicePublicSearchProductResult\n\tif err = p.Client_().Call(ctx, \"PublicSearchProduct\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PublicProductServiceClient) PublicSearchSuggest(ctx context.Context, req *SearchSuggestRequest) (r *SearchSuggestResponse, err error) {\n\tvar _args PublicProductServicePublicSearchSuggestArgs\n\t_args.Req = req\n\tvar _result PublicProductServicePublicSearchSuggestResult\n\tif err = p.Client_().Call(ctx, \"PublicSearchSuggest\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PublicProductServiceClient) PublicGetProductCategoryList(ctx context.Context, req *GetProductCategoryListRequest) (r *GetProductCategoryListResponse, err error) {\n\tvar _args PublicProductServicePublicGetProductCategoryListArgs\n\t_args.Req = req\n\tvar _result PublicProductServicePublicGetProductCategoryListResult\n\tif err = p.Client_().Call(ctx, \"PublicGetProductCategoryList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PublicProductServiceClient) PublicGetProductCallInfo(ctx context.Context, req *GetProductCallInfoRequest) (r *GetProductCallInfoResponse, err error) {\n\tvar _args PublicProductServicePublicGetProductCallInfoArgs\n\t_args.Req = req\n\tvar _result PublicProductServicePublicGetProductCallInfoResult\n\tif err = p.Client_().Call(ctx, \"PublicGetProductCallInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PublicProductServiceClient) PublicGetMarketPluginConfig(ctx context.Context, req *GetMarketPluginConfigRequest) (r *GetMarketPluginConfigResponse, err error) {\n\tvar _args PublicProductServicePublicGetMarketPluginConfigArgs\n\t_args.Req = req\n\tvar _result PublicProductServicePublicGetMarketPluginConfigResult\n\tif err = p.Client_().Call(ctx, \"PublicGetMarketPluginConfig\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype PublicProductServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      PublicProductService\n}\n\nfunc (p *PublicProductServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *PublicProductServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *PublicProductServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewPublicProductServiceProcessor(handler PublicProductService) *PublicProductServiceProcessor {\n\tself := &PublicProductServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"PublicGetProductList\", &publicProductServiceProcessorPublicGetProductList{handler: handler})\n\tself.AddToProcessorMap(\"PublicGetProductDetail\", &publicProductServiceProcessorPublicGetProductDetail{handler: handler})\n\tself.AddToProcessorMap(\"PublicFavoriteProduct\", &publicProductServiceProcessorPublicFavoriteProduct{handler: handler})\n\tself.AddToProcessorMap(\"PublicGetUserFavoriteListV2\", &publicProductServiceProcessorPublicGetUserFavoriteListV2{handler: handler})\n\tself.AddToProcessorMap(\"PublicDuplicateProduct\", &publicProductServiceProcessorPublicDuplicateProduct{handler: handler})\n\tself.AddToProcessorMap(\"PublicSearchProduct\", &publicProductServiceProcessorPublicSearchProduct{handler: handler})\n\tself.AddToProcessorMap(\"PublicSearchSuggest\", &publicProductServiceProcessorPublicSearchSuggest{handler: handler})\n\tself.AddToProcessorMap(\"PublicGetProductCategoryList\", &publicProductServiceProcessorPublicGetProductCategoryList{handler: handler})\n\tself.AddToProcessorMap(\"PublicGetProductCallInfo\", &publicProductServiceProcessorPublicGetProductCallInfo{handler: handler})\n\tself.AddToProcessorMap(\"PublicGetMarketPluginConfig\", &publicProductServiceProcessorPublicGetMarketPluginConfig{handler: handler})\n\treturn self\n}\nfunc (p *PublicProductServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype publicProductServiceProcessorPublicGetProductList struct {\n\thandler PublicProductService\n}\n\nfunc (p *publicProductServiceProcessorPublicGetProductList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PublicProductServicePublicGetProductListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetProductList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PublicProductServicePublicGetProductListResult{}\n\tvar retval *GetProductListResponse\n\tif retval, err2 = p.handler.PublicGetProductList(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublicGetProductList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetProductList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublicGetProductList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype publicProductServiceProcessorPublicGetProductDetail struct {\n\thandler PublicProductService\n}\n\nfunc (p *publicProductServiceProcessorPublicGetProductDetail) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PublicProductServicePublicGetProductDetailArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetProductDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PublicProductServicePublicGetProductDetailResult{}\n\tvar retval *GetProductDetailResponse\n\tif retval, err2 = p.handler.PublicGetProductDetail(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublicGetProductDetail: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetProductDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublicGetProductDetail\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype publicProductServiceProcessorPublicFavoriteProduct struct {\n\thandler PublicProductService\n}\n\nfunc (p *publicProductServiceProcessorPublicFavoriteProduct) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PublicProductServicePublicFavoriteProductArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublicFavoriteProduct\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PublicProductServicePublicFavoriteProductResult{}\n\tvar retval *FavoriteProductResponse\n\tif retval, err2 = p.handler.PublicFavoriteProduct(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublicFavoriteProduct: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublicFavoriteProduct\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublicFavoriteProduct\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype publicProductServiceProcessorPublicGetUserFavoriteListV2 struct {\n\thandler PublicProductService\n}\n\nfunc (p *publicProductServiceProcessorPublicGetUserFavoriteListV2) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PublicProductServicePublicGetUserFavoriteListV2Args{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetUserFavoriteListV2\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PublicProductServicePublicGetUserFavoriteListV2Result{}\n\tvar retval *GetUserFavoriteListV2Response\n\tif retval, err2 = p.handler.PublicGetUserFavoriteListV2(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublicGetUserFavoriteListV2: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetUserFavoriteListV2\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublicGetUserFavoriteListV2\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype publicProductServiceProcessorPublicDuplicateProduct struct {\n\thandler PublicProductService\n}\n\nfunc (p *publicProductServiceProcessorPublicDuplicateProduct) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PublicProductServicePublicDuplicateProductArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublicDuplicateProduct\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PublicProductServicePublicDuplicateProductResult{}\n\tvar retval *DuplicateProductResponse\n\tif retval, err2 = p.handler.PublicDuplicateProduct(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublicDuplicateProduct: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublicDuplicateProduct\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublicDuplicateProduct\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype publicProductServiceProcessorPublicSearchProduct struct {\n\thandler PublicProductService\n}\n\nfunc (p *publicProductServiceProcessorPublicSearchProduct) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PublicProductServicePublicSearchProductArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublicSearchProduct\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PublicProductServicePublicSearchProductResult{}\n\tvar retval *SearchProductResponse\n\tif retval, err2 = p.handler.PublicSearchProduct(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublicSearchProduct: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublicSearchProduct\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublicSearchProduct\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype publicProductServiceProcessorPublicSearchSuggest struct {\n\thandler PublicProductService\n}\n\nfunc (p *publicProductServiceProcessorPublicSearchSuggest) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PublicProductServicePublicSearchSuggestArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublicSearchSuggest\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PublicProductServicePublicSearchSuggestResult{}\n\tvar retval *SearchSuggestResponse\n\tif retval, err2 = p.handler.PublicSearchSuggest(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublicSearchSuggest: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublicSearchSuggest\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublicSearchSuggest\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype publicProductServiceProcessorPublicGetProductCategoryList struct {\n\thandler PublicProductService\n}\n\nfunc (p *publicProductServiceProcessorPublicGetProductCategoryList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PublicProductServicePublicGetProductCategoryListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetProductCategoryList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PublicProductServicePublicGetProductCategoryListResult{}\n\tvar retval *GetProductCategoryListResponse\n\tif retval, err2 = p.handler.PublicGetProductCategoryList(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublicGetProductCategoryList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetProductCategoryList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublicGetProductCategoryList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype publicProductServiceProcessorPublicGetProductCallInfo struct {\n\thandler PublicProductService\n}\n\nfunc (p *publicProductServiceProcessorPublicGetProductCallInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PublicProductServicePublicGetProductCallInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetProductCallInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PublicProductServicePublicGetProductCallInfoResult{}\n\tvar retval *GetProductCallInfoResponse\n\tif retval, err2 = p.handler.PublicGetProductCallInfo(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublicGetProductCallInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetProductCallInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublicGetProductCallInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype publicProductServiceProcessorPublicGetMarketPluginConfig struct {\n\thandler PublicProductService\n}\n\nfunc (p *publicProductServiceProcessorPublicGetMarketPluginConfig) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PublicProductServicePublicGetMarketPluginConfigArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetMarketPluginConfig\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PublicProductServicePublicGetMarketPluginConfigResult{}\n\tvar retval *GetMarketPluginConfigResponse\n\tif retval, err2 = p.handler.PublicGetMarketPluginConfig(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublicGetMarketPluginConfig: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublicGetMarketPluginConfig\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublicGetMarketPluginConfig\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype PublicProductServicePublicGetProductListArgs struct {\n\tReq *GetProductListRequest `thrift:\"req,1\"`\n}\n\nfunc NewPublicProductServicePublicGetProductListArgs() *PublicProductServicePublicGetProductListArgs {\n\treturn &PublicProductServicePublicGetProductListArgs{}\n}\n\nfunc (p *PublicProductServicePublicGetProductListArgs) InitDefault() {\n}\n\nvar PublicProductServicePublicGetProductListArgs_Req_DEFAULT *GetProductListRequest\n\nfunc (p *PublicProductServicePublicGetProductListArgs) GetReq() (v *GetProductListRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PublicProductServicePublicGetProductListArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PublicProductServicePublicGetProductListArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PublicProductServicePublicGetProductListArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PublicProductServicePublicGetProductListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetProductListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetProductListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetProductListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetProductList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetProductListArgs(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicGetProductListResult struct {\n\tSuccess *GetProductListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPublicProductServicePublicGetProductListResult() *PublicProductServicePublicGetProductListResult {\n\treturn &PublicProductServicePublicGetProductListResult{}\n}\n\nfunc (p *PublicProductServicePublicGetProductListResult) InitDefault() {\n}\n\nvar PublicProductServicePublicGetProductListResult_Success_DEFAULT *GetProductListResponse\n\nfunc (p *PublicProductServicePublicGetProductListResult) GetSuccess() (v *GetProductListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PublicProductServicePublicGetProductListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PublicProductServicePublicGetProductListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PublicProductServicePublicGetProductListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PublicProductServicePublicGetProductListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetProductListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetProductListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetProductListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetProductList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetProductListResult(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicGetProductDetailArgs struct {\n\tReq *GetProductDetailRequest `thrift:\"req,1\"`\n}\n\nfunc NewPublicProductServicePublicGetProductDetailArgs() *PublicProductServicePublicGetProductDetailArgs {\n\treturn &PublicProductServicePublicGetProductDetailArgs{}\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailArgs) InitDefault() {\n}\n\nvar PublicProductServicePublicGetProductDetailArgs_Req_DEFAULT *GetProductDetailRequest\n\nfunc (p *PublicProductServicePublicGetProductDetailArgs) GetReq() (v *GetProductDetailRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PublicProductServicePublicGetProductDetailArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PublicProductServicePublicGetProductDetailArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetProductDetailArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetProductDetailRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetProductDetail_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetProductDetailArgs(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicGetProductDetailResult struct {\n\tSuccess *GetProductDetailResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPublicProductServicePublicGetProductDetailResult() *PublicProductServicePublicGetProductDetailResult {\n\treturn &PublicProductServicePublicGetProductDetailResult{}\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailResult) InitDefault() {\n}\n\nvar PublicProductServicePublicGetProductDetailResult_Success_DEFAULT *GetProductDetailResponse\n\nfunc (p *PublicProductServicePublicGetProductDetailResult) GetSuccess() (v *GetProductDetailResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PublicProductServicePublicGetProductDetailResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PublicProductServicePublicGetProductDetailResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetProductDetailResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetProductDetailResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetProductDetail_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductDetailResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetProductDetailResult(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicFavoriteProductArgs struct {\n\tReq *FavoriteProductRequest `thrift:\"req,1\"`\n}\n\nfunc NewPublicProductServicePublicFavoriteProductArgs() *PublicProductServicePublicFavoriteProductArgs {\n\treturn &PublicProductServicePublicFavoriteProductArgs{}\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductArgs) InitDefault() {\n}\n\nvar PublicProductServicePublicFavoriteProductArgs_Req_DEFAULT *FavoriteProductRequest\n\nfunc (p *PublicProductServicePublicFavoriteProductArgs) GetReq() (v *FavoriteProductRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PublicProductServicePublicFavoriteProductArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PublicProductServicePublicFavoriteProductArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicFavoriteProductArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewFavoriteProductRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicFavoriteProduct_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicFavoriteProductArgs(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicFavoriteProductResult struct {\n\tSuccess *FavoriteProductResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPublicProductServicePublicFavoriteProductResult() *PublicProductServicePublicFavoriteProductResult {\n\treturn &PublicProductServicePublicFavoriteProductResult{}\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductResult) InitDefault() {\n}\n\nvar PublicProductServicePublicFavoriteProductResult_Success_DEFAULT *FavoriteProductResponse\n\nfunc (p *PublicProductServicePublicFavoriteProductResult) GetSuccess() (v *FavoriteProductResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PublicProductServicePublicFavoriteProductResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PublicProductServicePublicFavoriteProductResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicFavoriteProductResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewFavoriteProductResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicFavoriteProduct_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicFavoriteProductResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicFavoriteProductResult(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicGetUserFavoriteListV2Args struct {\n\tReq *GetUserFavoriteListV2Request `thrift:\"req,1\"`\n}\n\nfunc NewPublicProductServicePublicGetUserFavoriteListV2Args() *PublicProductServicePublicGetUserFavoriteListV2Args {\n\treturn &PublicProductServicePublicGetUserFavoriteListV2Args{}\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Args) InitDefault() {\n}\n\nvar PublicProductServicePublicGetUserFavoriteListV2Args_Req_DEFAULT *GetUserFavoriteListV2Request\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Args) GetReq() (v *GetUserFavoriteListV2Request) {\n\tif !p.IsSetReq() {\n\t\treturn PublicProductServicePublicGetUserFavoriteListV2Args_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PublicProductServicePublicGetUserFavoriteListV2Args = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Args) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Args) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetUserFavoriteListV2Args[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Args) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetUserFavoriteListV2Request()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Args) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetUserFavoriteListV2_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Args) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Args) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetUserFavoriteListV2Args(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicGetUserFavoriteListV2Result struct {\n\tSuccess *GetUserFavoriteListV2Response `thrift:\"success,0,optional\"`\n}\n\nfunc NewPublicProductServicePublicGetUserFavoriteListV2Result() *PublicProductServicePublicGetUserFavoriteListV2Result {\n\treturn &PublicProductServicePublicGetUserFavoriteListV2Result{}\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Result) InitDefault() {\n}\n\nvar PublicProductServicePublicGetUserFavoriteListV2Result_Success_DEFAULT *GetUserFavoriteListV2Response\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Result) GetSuccess() (v *GetUserFavoriteListV2Response) {\n\tif !p.IsSetSuccess() {\n\t\treturn PublicProductServicePublicGetUserFavoriteListV2Result_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PublicProductServicePublicGetUserFavoriteListV2Result = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Result) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Result) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetUserFavoriteListV2Result[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Result) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetUserFavoriteListV2Response()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Result) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetUserFavoriteListV2_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Result) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetUserFavoriteListV2Result) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetUserFavoriteListV2Result(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicDuplicateProductArgs struct {\n\tReq *DuplicateProductRequest `thrift:\"req,1\"`\n}\n\nfunc NewPublicProductServicePublicDuplicateProductArgs() *PublicProductServicePublicDuplicateProductArgs {\n\treturn &PublicProductServicePublicDuplicateProductArgs{}\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductArgs) InitDefault() {\n}\n\nvar PublicProductServicePublicDuplicateProductArgs_Req_DEFAULT *DuplicateProductRequest\n\nfunc (p *PublicProductServicePublicDuplicateProductArgs) GetReq() (v *DuplicateProductRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PublicProductServicePublicDuplicateProductArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PublicProductServicePublicDuplicateProductArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicDuplicateProductArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDuplicateProductRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicDuplicateProduct_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicDuplicateProductArgs(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicDuplicateProductResult struct {\n\tSuccess *DuplicateProductResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPublicProductServicePublicDuplicateProductResult() *PublicProductServicePublicDuplicateProductResult {\n\treturn &PublicProductServicePublicDuplicateProductResult{}\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductResult) InitDefault() {\n}\n\nvar PublicProductServicePublicDuplicateProductResult_Success_DEFAULT *DuplicateProductResponse\n\nfunc (p *PublicProductServicePublicDuplicateProductResult) GetSuccess() (v *DuplicateProductResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PublicProductServicePublicDuplicateProductResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PublicProductServicePublicDuplicateProductResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicDuplicateProductResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDuplicateProductResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicDuplicateProduct_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicDuplicateProductResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicDuplicateProductResult(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicSearchProductArgs struct {\n\tReq *SearchProductRequest `thrift:\"req,1\"`\n}\n\nfunc NewPublicProductServicePublicSearchProductArgs() *PublicProductServicePublicSearchProductArgs {\n\treturn &PublicProductServicePublicSearchProductArgs{}\n}\n\nfunc (p *PublicProductServicePublicSearchProductArgs) InitDefault() {\n}\n\nvar PublicProductServicePublicSearchProductArgs_Req_DEFAULT *SearchProductRequest\n\nfunc (p *PublicProductServicePublicSearchProductArgs) GetReq() (v *SearchProductRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PublicProductServicePublicSearchProductArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PublicProductServicePublicSearchProductArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PublicProductServicePublicSearchProductArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PublicProductServicePublicSearchProductArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicSearchProductArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchProductArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewSearchProductRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicSearchProductArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicSearchProduct_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchProductArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchProductArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicSearchProductArgs(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicSearchProductResult struct {\n\tSuccess *SearchProductResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPublicProductServicePublicSearchProductResult() *PublicProductServicePublicSearchProductResult {\n\treturn &PublicProductServicePublicSearchProductResult{}\n}\n\nfunc (p *PublicProductServicePublicSearchProductResult) InitDefault() {\n}\n\nvar PublicProductServicePublicSearchProductResult_Success_DEFAULT *SearchProductResponse\n\nfunc (p *PublicProductServicePublicSearchProductResult) GetSuccess() (v *SearchProductResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PublicProductServicePublicSearchProductResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PublicProductServicePublicSearchProductResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PublicProductServicePublicSearchProductResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PublicProductServicePublicSearchProductResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicSearchProductResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchProductResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewSearchProductResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicSearchProductResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicSearchProduct_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchProductResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchProductResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicSearchProductResult(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicSearchSuggestArgs struct {\n\tReq *SearchSuggestRequest `thrift:\"req,1\"`\n}\n\nfunc NewPublicProductServicePublicSearchSuggestArgs() *PublicProductServicePublicSearchSuggestArgs {\n\treturn &PublicProductServicePublicSearchSuggestArgs{}\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestArgs) InitDefault() {\n}\n\nvar PublicProductServicePublicSearchSuggestArgs_Req_DEFAULT *SearchSuggestRequest\n\nfunc (p *PublicProductServicePublicSearchSuggestArgs) GetReq() (v *SearchSuggestRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PublicProductServicePublicSearchSuggestArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PublicProductServicePublicSearchSuggestArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicSearchSuggestArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewSearchSuggestRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicSearchSuggest_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicSearchSuggestArgs(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicSearchSuggestResult struct {\n\tSuccess *SearchSuggestResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPublicProductServicePublicSearchSuggestResult() *PublicProductServicePublicSearchSuggestResult {\n\treturn &PublicProductServicePublicSearchSuggestResult{}\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestResult) InitDefault() {\n}\n\nvar PublicProductServicePublicSearchSuggestResult_Success_DEFAULT *SearchSuggestResponse\n\nfunc (p *PublicProductServicePublicSearchSuggestResult) GetSuccess() (v *SearchSuggestResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PublicProductServicePublicSearchSuggestResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PublicProductServicePublicSearchSuggestResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicSearchSuggestResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewSearchSuggestResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicSearchSuggest_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicSearchSuggestResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicSearchSuggestResult(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicGetProductCategoryListArgs struct {\n\tReq *GetProductCategoryListRequest `thrift:\"req,1\"`\n}\n\nfunc NewPublicProductServicePublicGetProductCategoryListArgs() *PublicProductServicePublicGetProductCategoryListArgs {\n\treturn &PublicProductServicePublicGetProductCategoryListArgs{}\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListArgs) InitDefault() {\n}\n\nvar PublicProductServicePublicGetProductCategoryListArgs_Req_DEFAULT *GetProductCategoryListRequest\n\nfunc (p *PublicProductServicePublicGetProductCategoryListArgs) GetReq() (v *GetProductCategoryListRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PublicProductServicePublicGetProductCategoryListArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PublicProductServicePublicGetProductCategoryListArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetProductCategoryListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetProductCategoryListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetProductCategoryList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetProductCategoryListArgs(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicGetProductCategoryListResult struct {\n\tSuccess *GetProductCategoryListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPublicProductServicePublicGetProductCategoryListResult() *PublicProductServicePublicGetProductCategoryListResult {\n\treturn &PublicProductServicePublicGetProductCategoryListResult{}\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListResult) InitDefault() {\n}\n\nvar PublicProductServicePublicGetProductCategoryListResult_Success_DEFAULT *GetProductCategoryListResponse\n\nfunc (p *PublicProductServicePublicGetProductCategoryListResult) GetSuccess() (v *GetProductCategoryListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PublicProductServicePublicGetProductCategoryListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PublicProductServicePublicGetProductCategoryListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetProductCategoryListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetProductCategoryListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetProductCategoryList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCategoryListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetProductCategoryListResult(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicGetProductCallInfoArgs struct {\n\tReq *GetProductCallInfoRequest `thrift:\"req,1\"`\n}\n\nfunc NewPublicProductServicePublicGetProductCallInfoArgs() *PublicProductServicePublicGetProductCallInfoArgs {\n\treturn &PublicProductServicePublicGetProductCallInfoArgs{}\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoArgs) InitDefault() {\n}\n\nvar PublicProductServicePublicGetProductCallInfoArgs_Req_DEFAULT *GetProductCallInfoRequest\n\nfunc (p *PublicProductServicePublicGetProductCallInfoArgs) GetReq() (v *GetProductCallInfoRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PublicProductServicePublicGetProductCallInfoArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PublicProductServicePublicGetProductCallInfoArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetProductCallInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetProductCallInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetProductCallInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetProductCallInfoArgs(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicGetProductCallInfoResult struct {\n\tSuccess *GetProductCallInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPublicProductServicePublicGetProductCallInfoResult() *PublicProductServicePublicGetProductCallInfoResult {\n\treturn &PublicProductServicePublicGetProductCallInfoResult{}\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoResult) InitDefault() {\n}\n\nvar PublicProductServicePublicGetProductCallInfoResult_Success_DEFAULT *GetProductCallInfoResponse\n\nfunc (p *PublicProductServicePublicGetProductCallInfoResult) GetSuccess() (v *GetProductCallInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PublicProductServicePublicGetProductCallInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PublicProductServicePublicGetProductCallInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetProductCallInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetProductCallInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetProductCallInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetProductCallInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetProductCallInfoResult(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicGetMarketPluginConfigArgs struct {\n\tReq *GetMarketPluginConfigRequest `thrift:\"req,1\"`\n}\n\nfunc NewPublicProductServicePublicGetMarketPluginConfigArgs() *PublicProductServicePublicGetMarketPluginConfigArgs {\n\treturn &PublicProductServicePublicGetMarketPluginConfigArgs{}\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigArgs) InitDefault() {\n}\n\nvar PublicProductServicePublicGetMarketPluginConfigArgs_Req_DEFAULT *GetMarketPluginConfigRequest\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigArgs) GetReq() (v *GetMarketPluginConfigRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PublicProductServicePublicGetMarketPluginConfigArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PublicProductServicePublicGetMarketPluginConfigArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetMarketPluginConfigArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetMarketPluginConfigRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetMarketPluginConfig_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetMarketPluginConfigArgs(%+v)\", *p)\n\n}\n\ntype PublicProductServicePublicGetMarketPluginConfigResult struct {\n\tSuccess *GetMarketPluginConfigResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPublicProductServicePublicGetMarketPluginConfigResult() *PublicProductServicePublicGetMarketPluginConfigResult {\n\treturn &PublicProductServicePublicGetMarketPluginConfigResult{}\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigResult) InitDefault() {\n}\n\nvar PublicProductServicePublicGetMarketPluginConfigResult_Success_DEFAULT *GetMarketPluginConfigResponse\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigResult) GetSuccess() (v *GetMarketPluginConfigResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PublicProductServicePublicGetMarketPluginConfigResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PublicProductServicePublicGetMarketPluginConfigResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublicProductServicePublicGetMarketPluginConfigResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetMarketPluginConfigResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublicGetMarketPluginConfig_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PublicProductServicePublicGetMarketPluginConfigResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublicProductServicePublicGetMarketPluginConfigResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/passport/passport.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage passport\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype AppUserInfo struct {\n\tUserUniqueName string `thrift:\"user_unique_name,1,required\" form:\"user_unique_name,required\" json:\"user_unique_name,required\" query:\"user_unique_name,required\"`\n}\n\nfunc NewAppUserInfo() *AppUserInfo {\n\treturn &AppUserInfo{}\n}\n\nfunc (p *AppUserInfo) InitDefault() {\n}\n\nfunc (p *AppUserInfo) GetUserUniqueName() (v string) {\n\treturn p.UserUniqueName\n}\n\nvar fieldIDToName_AppUserInfo = map[int16]string{\n\t1: \"user_unique_name\",\n}\n\nfunc (p *AppUserInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetUserUniqueName bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUserUniqueName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetUserUniqueName {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AppUserInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_AppUserInfo[fieldId]))\n}\n\nfunc (p *AppUserInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserUniqueName = _field\n\treturn nil\n}\n\nfunc (p *AppUserInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AppUserInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AppUserInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_unique_name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserUniqueName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *AppUserInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AppUserInfo(%+v)\", *p)\n\n}\n\ntype User struct {\n\t// Align with the original interface field name\n\tUserIDStr      int64        `thrift:\"user_id_str,1,required\" form:\"user_id_str,required\" json:\"user_id_str,string,required\" query:\"user_id_str,required\"`\n\tName           string       `thrift:\"name,2,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\tUserUniqueName string       `thrift:\"user_unique_name,3,required\" form:\"user_unique_name,required\" json:\"user_unique_name,required\" query:\"user_unique_name,required\"`\n\tEmail          string       `thrift:\"email,4,required\" form:\"email,required\" json:\"email,required\" query:\"email,required\"`\n\tDescription    string       `thrift:\"description,5,required\" form:\"description,required\" json:\"description,required\" query:\"description,required\"`\n\tAvatarURL      string       `thrift:\"avatar_url,6,required\" form:\"avatar_url,required\" json:\"avatar_url,required\" query:\"avatar_url,required\"`\n\tScreenName     *string      `thrift:\"screen_name,7,optional\" form:\"screen_name\" json:\"screen_name,omitempty\" query:\"screen_name\"`\n\tAppUserInfo    *AppUserInfo `thrift:\"app_user_info,8,optional\" form:\"app_user_info\" json:\"app_user_info,omitempty\" query:\"app_user_info\"`\n\tLocale         *string      `thrift:\"locale,9,optional\" form:\"locale\" json:\"locale,omitempty\" query:\"locale\"`\n\t// unix timestamp in seconds\n\tUserCreateTime int64 `thrift:\"user_create_time,10\" form:\"user_create_time\" json:\"user_create_time\" query:\"user_create_time\"`\n}\n\nfunc NewUser() *User {\n\treturn &User{}\n}\n\nfunc (p *User) InitDefault() {\n}\n\nfunc (p *User) GetUserIDStr() (v int64) {\n\treturn p.UserIDStr\n}\n\nfunc (p *User) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *User) GetUserUniqueName() (v string) {\n\treturn p.UserUniqueName\n}\n\nfunc (p *User) GetEmail() (v string) {\n\treturn p.Email\n}\n\nfunc (p *User) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *User) GetAvatarURL() (v string) {\n\treturn p.AvatarURL\n}\n\nvar User_ScreenName_DEFAULT string\n\nfunc (p *User) GetScreenName() (v string) {\n\tif !p.IsSetScreenName() {\n\t\treturn User_ScreenName_DEFAULT\n\t}\n\treturn *p.ScreenName\n}\n\nvar User_AppUserInfo_DEFAULT *AppUserInfo\n\nfunc (p *User) GetAppUserInfo() (v *AppUserInfo) {\n\tif !p.IsSetAppUserInfo() {\n\t\treturn User_AppUserInfo_DEFAULT\n\t}\n\treturn p.AppUserInfo\n}\n\nvar User_Locale_DEFAULT string\n\nfunc (p *User) GetLocale() (v string) {\n\tif !p.IsSetLocale() {\n\t\treturn User_Locale_DEFAULT\n\t}\n\treturn *p.Locale\n}\n\nfunc (p *User) GetUserCreateTime() (v int64) {\n\treturn p.UserCreateTime\n}\n\nvar fieldIDToName_User = map[int16]string{\n\t1:  \"user_id_str\",\n\t2:  \"name\",\n\t3:  \"user_unique_name\",\n\t4:  \"email\",\n\t5:  \"description\",\n\t6:  \"avatar_url\",\n\t7:  \"screen_name\",\n\t8:  \"app_user_info\",\n\t9:  \"locale\",\n\t10: \"user_create_time\",\n}\n\nfunc (p *User) IsSetScreenName() bool {\n\treturn p.ScreenName != nil\n}\n\nfunc (p *User) IsSetAppUserInfo() bool {\n\treturn p.AppUserInfo != nil\n}\n\nfunc (p *User) IsSetLocale() bool {\n\treturn p.Locale != nil\n}\n\nfunc (p *User) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetUserIDStr bool = false\n\tvar issetName bool = false\n\tvar issetUserUniqueName bool = false\n\tvar issetEmail bool = false\n\tvar issetDescription bool = false\n\tvar issetAvatarURL bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUserIDStr = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUserUniqueName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetEmail = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDescription = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetAvatarURL = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetUserIDStr {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUserUniqueName {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetEmail {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetDescription {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetAvatarURL {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_User[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_User[fieldId]))\n}\n\nfunc (p *User) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserIDStr = _field\n\treturn nil\n}\nfunc (p *User) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *User) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserUniqueName = _field\n\treturn nil\n}\nfunc (p *User) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Email = _field\n\treturn nil\n}\nfunc (p *User) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *User) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AvatarURL = _field\n\treturn nil\n}\nfunc (p *User) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ScreenName = _field\n\treturn nil\n}\nfunc (p *User) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewAppUserInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AppUserInfo = _field\n\treturn nil\n}\nfunc (p *User) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Locale = _field\n\treturn nil\n}\nfunc (p *User) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserCreateTime = _field\n\treturn nil\n}\n\nfunc (p *User) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"User\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *User) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id_str\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserIDStr); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *User) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *User) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_unique_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserUniqueName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *User) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"email\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Email); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *User) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *User) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"avatar_url\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AvatarURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *User) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScreenName() {\n\t\tif err = oprot.WriteFieldBegin(\"screen_name\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ScreenName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *User) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAppUserInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"app_user_info\", thrift.STRUCT, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.AppUserInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *User) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLocale() {\n\t\tif err = oprot.WriteFieldBegin(\"locale\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Locale); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *User) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_create_time\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserCreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\n\nfunc (p *User) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"User(%+v)\", *p)\n\n}\n\ntype PassportWebEmailRegisterV2PostRequest struct {\n\tPassword string `thrift:\"password,11,required\" form:\"password,required\" json:\"password,required\" query:\"password,required\"`\n\tEmail    string `thrift:\"email,23\" form:\"email\" json:\"email\" query:\"email\"`\n}\n\nfunc NewPassportWebEmailRegisterV2PostRequest() *PassportWebEmailRegisterV2PostRequest {\n\treturn &PassportWebEmailRegisterV2PostRequest{}\n}\n\nfunc (p *PassportWebEmailRegisterV2PostRequest) InitDefault() {\n}\n\nfunc (p *PassportWebEmailRegisterV2PostRequest) GetPassword() (v string) {\n\treturn p.Password\n}\n\nfunc (p *PassportWebEmailRegisterV2PostRequest) GetEmail() (v string) {\n\treturn p.Email\n}\n\nvar fieldIDToName_PassportWebEmailRegisterV2PostRequest = map[int16]string{\n\t11: \"password\",\n\t23: \"email\",\n}\n\nfunc (p *PassportWebEmailRegisterV2PostRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPassword bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPassword = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPassword {\n\t\tfieldId = 11\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportWebEmailRegisterV2PostRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PassportWebEmailRegisterV2PostRequest[fieldId]))\n}\n\nfunc (p *PassportWebEmailRegisterV2PostRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Password = _field\n\treturn nil\n}\nfunc (p *PassportWebEmailRegisterV2PostRequest) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Email = _field\n\treturn nil\n}\n\nfunc (p *PassportWebEmailRegisterV2PostRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailRegisterV2PostRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailRegisterV2PostRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"password\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Password); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *PassportWebEmailRegisterV2PostRequest) writeField23(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"email\", thrift.STRING, 23); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Email); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailRegisterV2PostRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportWebEmailRegisterV2PostRequest(%+v)\", *p)\n\n}\n\ntype PassportWebEmailRegisterV2PostResponse struct {\n\tData *User  `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode int32  `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewPassportWebEmailRegisterV2PostResponse() *PassportWebEmailRegisterV2PostResponse {\n\treturn &PassportWebEmailRegisterV2PostResponse{}\n}\n\nfunc (p *PassportWebEmailRegisterV2PostResponse) InitDefault() {\n}\n\nvar PassportWebEmailRegisterV2PostResponse_Data_DEFAULT *User\n\nfunc (p *PassportWebEmailRegisterV2PostResponse) GetData() (v *User) {\n\tif !p.IsSetData() {\n\t\treturn PassportWebEmailRegisterV2PostResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *PassportWebEmailRegisterV2PostResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *PassportWebEmailRegisterV2PostResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_PassportWebEmailRegisterV2PostResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n}\n\nfunc (p *PassportWebEmailRegisterV2PostResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *PassportWebEmailRegisterV2PostResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportWebEmailRegisterV2PostResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PassportWebEmailRegisterV2PostResponse[fieldId]))\n}\n\nfunc (p *PassportWebEmailRegisterV2PostResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUser()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *PassportWebEmailRegisterV2PostResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PassportWebEmailRegisterV2PostResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *PassportWebEmailRegisterV2PostResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailRegisterV2PostResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailRegisterV2PostResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PassportWebEmailRegisterV2PostResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *PassportWebEmailRegisterV2PostResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailRegisterV2PostResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportWebEmailRegisterV2PostResponse(%+v)\", *p)\n\n}\n\ntype PassportWebLogoutGetRequest struct {\n}\n\nfunc NewPassportWebLogoutGetRequest() *PassportWebLogoutGetRequest {\n\treturn &PassportWebLogoutGetRequest{}\n}\n\nfunc (p *PassportWebLogoutGetRequest) InitDefault() {\n}\n\nvar fieldIDToName_PassportWebLogoutGetRequest = map[int16]string{}\n\nfunc (p *PassportWebLogoutGetRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\tgoto SkipFieldTypeError\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nSkipFieldTypeError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T skip field type %d error\", p, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportWebLogoutGetRequest) Write(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteStructBegin(\"PassportWebLogoutGetRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportWebLogoutGetRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportWebLogoutGetRequest(%+v)\", *p)\n\n}\n\ntype PassportWebLogoutGetResponse struct {\n\tRedirectURL string `thrift:\"redirect_url,1,required\" form:\"redirect_url,required\" json:\"redirect_url,required\" query:\"redirect_url,required\"`\n\tCode        int32  `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg         string `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewPassportWebLogoutGetResponse() *PassportWebLogoutGetResponse {\n\treturn &PassportWebLogoutGetResponse{}\n}\n\nfunc (p *PassportWebLogoutGetResponse) InitDefault() {\n}\n\nfunc (p *PassportWebLogoutGetResponse) GetRedirectURL() (v string) {\n\treturn p.RedirectURL\n}\n\nfunc (p *PassportWebLogoutGetResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *PassportWebLogoutGetResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_PassportWebLogoutGetResponse = map[int16]string{\n\t1:   \"redirect_url\",\n\t253: \"code\",\n\t254: \"msg\",\n}\n\nfunc (p *PassportWebLogoutGetResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetRedirectURL bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetRedirectURL = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetRedirectURL {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportWebLogoutGetResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PassportWebLogoutGetResponse[fieldId]))\n}\n\nfunc (p *PassportWebLogoutGetResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RedirectURL = _field\n\treturn nil\n}\nfunc (p *PassportWebLogoutGetResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PassportWebLogoutGetResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *PassportWebLogoutGetResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebLogoutGetResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportWebLogoutGetResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"redirect_url\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.RedirectURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PassportWebLogoutGetResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *PassportWebLogoutGetResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\n\nfunc (p *PassportWebLogoutGetResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportWebLogoutGetResponse(%+v)\", *p)\n\n}\n\ntype PassportWebEmailLoginPostRequest struct {\n\tEmail    string `thrift:\"email,6,required\" form:\"email,required\" json:\"email,required\" query:\"email,required\"`\n\tPassword string `thrift:\"password,7,required\" form:\"password,required\" json:\"password,required\" query:\"password,required\"`\n}\n\nfunc NewPassportWebEmailLoginPostRequest() *PassportWebEmailLoginPostRequest {\n\treturn &PassportWebEmailLoginPostRequest{}\n}\n\nfunc (p *PassportWebEmailLoginPostRequest) InitDefault() {\n}\n\nfunc (p *PassportWebEmailLoginPostRequest) GetEmail() (v string) {\n\treturn p.Email\n}\n\nfunc (p *PassportWebEmailLoginPostRequest) GetPassword() (v string) {\n\treturn p.Password\n}\n\nvar fieldIDToName_PassportWebEmailLoginPostRequest = map[int16]string{\n\t6: \"email\",\n\t7: \"password\",\n}\n\nfunc (p *PassportWebEmailLoginPostRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetEmail bool = false\n\tvar issetPassword bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetEmail = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPassword = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetEmail {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetPassword {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportWebEmailLoginPostRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PassportWebEmailLoginPostRequest[fieldId]))\n}\n\nfunc (p *PassportWebEmailLoginPostRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Email = _field\n\treturn nil\n}\nfunc (p *PassportWebEmailLoginPostRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Password = _field\n\treturn nil\n}\n\nfunc (p *PassportWebEmailLoginPostRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailLoginPostRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailLoginPostRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"email\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Email); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PassportWebEmailLoginPostRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"password\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Password); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailLoginPostRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportWebEmailLoginPostRequest(%+v)\", *p)\n\n}\n\ntype PassportWebEmailLoginPostResponse struct {\n\tData *User  `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode int32  `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewPassportWebEmailLoginPostResponse() *PassportWebEmailLoginPostResponse {\n\treturn &PassportWebEmailLoginPostResponse{}\n}\n\nfunc (p *PassportWebEmailLoginPostResponse) InitDefault() {\n}\n\nvar PassportWebEmailLoginPostResponse_Data_DEFAULT *User\n\nfunc (p *PassportWebEmailLoginPostResponse) GetData() (v *User) {\n\tif !p.IsSetData() {\n\t\treturn PassportWebEmailLoginPostResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *PassportWebEmailLoginPostResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *PassportWebEmailLoginPostResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_PassportWebEmailLoginPostResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n}\n\nfunc (p *PassportWebEmailLoginPostResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *PassportWebEmailLoginPostResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportWebEmailLoginPostResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PassportWebEmailLoginPostResponse[fieldId]))\n}\n\nfunc (p *PassportWebEmailLoginPostResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUser()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *PassportWebEmailLoginPostResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PassportWebEmailLoginPostResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *PassportWebEmailLoginPostResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailLoginPostResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailLoginPostResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PassportWebEmailLoginPostResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *PassportWebEmailLoginPostResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailLoginPostResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportWebEmailLoginPostResponse(%+v)\", *p)\n\n}\n\ntype PassportWebEmailPasswordResetGetRequest struct {\n\tPassword string `thrift:\"password,1\" form:\"password\" json:\"password\" query:\"password\"`\n\tCode     string `thrift:\"code,2\" form:\"code\" json:\"code\" query:\"code\"`\n\tEmail    string `thrift:\"email,3\" form:\"email\" json:\"email\" query:\"email\"`\n}\n\nfunc NewPassportWebEmailPasswordResetGetRequest() *PassportWebEmailPasswordResetGetRequest {\n\treturn &PassportWebEmailPasswordResetGetRequest{}\n}\n\nfunc (p *PassportWebEmailPasswordResetGetRequest) InitDefault() {\n}\n\nfunc (p *PassportWebEmailPasswordResetGetRequest) GetPassword() (v string) {\n\treturn p.Password\n}\n\nfunc (p *PassportWebEmailPasswordResetGetRequest) GetCode() (v string) {\n\treturn p.Code\n}\n\nfunc (p *PassportWebEmailPasswordResetGetRequest) GetEmail() (v string) {\n\treturn p.Email\n}\n\nvar fieldIDToName_PassportWebEmailPasswordResetGetRequest = map[int16]string{\n\t1: \"password\",\n\t2: \"code\",\n\t3: \"email\",\n}\n\nfunc (p *PassportWebEmailPasswordResetGetRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportWebEmailPasswordResetGetRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailPasswordResetGetRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Password = _field\n\treturn nil\n}\nfunc (p *PassportWebEmailPasswordResetGetRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PassportWebEmailPasswordResetGetRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Email = _field\n\treturn nil\n}\n\nfunc (p *PassportWebEmailPasswordResetGetRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailPasswordResetGetRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailPasswordResetGetRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"password\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Password); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PassportWebEmailPasswordResetGetRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PassportWebEmailPasswordResetGetRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"email\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Email); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailPasswordResetGetRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportWebEmailPasswordResetGetRequest(%+v)\", *p)\n\n}\n\ntype PassportWebEmailPasswordResetGetResponse struct {\n\tCode int32  `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewPassportWebEmailPasswordResetGetResponse() *PassportWebEmailPasswordResetGetResponse {\n\treturn &PassportWebEmailPasswordResetGetResponse{}\n}\n\nfunc (p *PassportWebEmailPasswordResetGetResponse) InitDefault() {\n}\n\nfunc (p *PassportWebEmailPasswordResetGetResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *PassportWebEmailPasswordResetGetResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_PassportWebEmailPasswordResetGetResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n}\n\nfunc (p *PassportWebEmailPasswordResetGetResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportWebEmailPasswordResetGetResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PassportWebEmailPasswordResetGetResponse[fieldId]))\n}\n\nfunc (p *PassportWebEmailPasswordResetGetResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PassportWebEmailPasswordResetGetResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *PassportWebEmailPasswordResetGetResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailPasswordResetGetResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailPasswordResetGetResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *PassportWebEmailPasswordResetGetResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\n\nfunc (p *PassportWebEmailPasswordResetGetResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportWebEmailPasswordResetGetResponse(%+v)\", *p)\n\n}\n\ntype PassportAccountInfoV2Request struct {\n}\n\nfunc NewPassportAccountInfoV2Request() *PassportAccountInfoV2Request {\n\treturn &PassportAccountInfoV2Request{}\n}\n\nfunc (p *PassportAccountInfoV2Request) InitDefault() {\n}\n\nvar fieldIDToName_PassportAccountInfoV2Request = map[int16]string{}\n\nfunc (p *PassportAccountInfoV2Request) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\tgoto SkipFieldTypeError\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nSkipFieldTypeError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T skip field type %d error\", p, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportAccountInfoV2Request) Write(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteStructBegin(\"PassportAccountInfoV2Request\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportAccountInfoV2Request) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportAccountInfoV2Request(%+v)\", *p)\n\n}\n\ntype PassportAccountInfoV2Response struct {\n\tData *User  `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode int32  `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewPassportAccountInfoV2Response() *PassportAccountInfoV2Response {\n\treturn &PassportAccountInfoV2Response{}\n}\n\nfunc (p *PassportAccountInfoV2Response) InitDefault() {\n}\n\nvar PassportAccountInfoV2Response_Data_DEFAULT *User\n\nfunc (p *PassportAccountInfoV2Response) GetData() (v *User) {\n\tif !p.IsSetData() {\n\t\treturn PassportAccountInfoV2Response_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *PassportAccountInfoV2Response) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *PassportAccountInfoV2Response) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_PassportAccountInfoV2Response = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n}\n\nfunc (p *PassportAccountInfoV2Response) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *PassportAccountInfoV2Response) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportAccountInfoV2Response[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PassportAccountInfoV2Response[fieldId]))\n}\n\nfunc (p *PassportAccountInfoV2Response) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUser()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *PassportAccountInfoV2Response) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PassportAccountInfoV2Response) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *PassportAccountInfoV2Response) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportAccountInfoV2Response\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportAccountInfoV2Response) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PassportAccountInfoV2Response) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *PassportAccountInfoV2Response) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\n\nfunc (p *PassportAccountInfoV2Response) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportAccountInfoV2Response(%+v)\", *p)\n\n}\n\ntype UserUpdateAvatarRequest struct {\n\tAvatar []byte `thrift:\"avatar,3,required\" form:\"avatar,required\" json:\"avatar,required\"`\n}\n\nfunc NewUserUpdateAvatarRequest() *UserUpdateAvatarRequest {\n\treturn &UserUpdateAvatarRequest{}\n}\n\nfunc (p *UserUpdateAvatarRequest) InitDefault() {\n}\n\nfunc (p *UserUpdateAvatarRequest) GetAvatar() (v []byte) {\n\treturn p.Avatar\n}\n\nvar fieldIDToName_UserUpdateAvatarRequest = map[int16]string{\n\t3: \"avatar\",\n}\n\nfunc (p *UserUpdateAvatarRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetAvatar bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetAvatar = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetAvatar {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserUpdateAvatarRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UserUpdateAvatarRequest[fieldId]))\n}\n\nfunc (p *UserUpdateAvatarRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field []byte\n\tif v, err := iprot.ReadBinary(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = []byte(v)\n\t}\n\tp.Avatar = _field\n\treturn nil\n}\n\nfunc (p *UserUpdateAvatarRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserUpdateAvatarRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserUpdateAvatarRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"avatar\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBinary([]byte(p.Avatar)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *UserUpdateAvatarRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserUpdateAvatarRequest(%+v)\", *p)\n\n}\n\ntype UserUpdateAvatarResponseData struct {\n\tWebURI string `thrift:\"web_uri,1,required\" form:\"web_uri,required\" json:\"web_uri,required\" query:\"web_uri,required\"`\n}\n\nfunc NewUserUpdateAvatarResponseData() *UserUpdateAvatarResponseData {\n\treturn &UserUpdateAvatarResponseData{}\n}\n\nfunc (p *UserUpdateAvatarResponseData) InitDefault() {\n}\n\nfunc (p *UserUpdateAvatarResponseData) GetWebURI() (v string) {\n\treturn p.WebURI\n}\n\nvar fieldIDToName_UserUpdateAvatarResponseData = map[int16]string{\n\t1: \"web_uri\",\n}\n\nfunc (p *UserUpdateAvatarResponseData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWebURI bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWebURI = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWebURI {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserUpdateAvatarResponseData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UserUpdateAvatarResponseData[fieldId]))\n}\n\nfunc (p *UserUpdateAvatarResponseData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WebURI = _field\n\treturn nil\n}\n\nfunc (p *UserUpdateAvatarResponseData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserUpdateAvatarResponseData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserUpdateAvatarResponseData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"web_uri\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WebURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *UserUpdateAvatarResponseData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserUpdateAvatarResponseData(%+v)\", *p)\n\n}\n\ntype UserUpdateAvatarResponse struct {\n\tData *UserUpdateAvatarResponseData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode int32                         `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string                        `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewUserUpdateAvatarResponse() *UserUpdateAvatarResponse {\n\treturn &UserUpdateAvatarResponse{}\n}\n\nfunc (p *UserUpdateAvatarResponse) InitDefault() {\n}\n\nvar UserUpdateAvatarResponse_Data_DEFAULT *UserUpdateAvatarResponseData\n\nfunc (p *UserUpdateAvatarResponse) GetData() (v *UserUpdateAvatarResponseData) {\n\tif !p.IsSetData() {\n\t\treturn UserUpdateAvatarResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *UserUpdateAvatarResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *UserUpdateAvatarResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_UserUpdateAvatarResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n}\n\nfunc (p *UserUpdateAvatarResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *UserUpdateAvatarResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserUpdateAvatarResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UserUpdateAvatarResponse[fieldId]))\n}\n\nfunc (p *UserUpdateAvatarResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUserUpdateAvatarResponseData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *UserUpdateAvatarResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UserUpdateAvatarResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *UserUpdateAvatarResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserUpdateAvatarResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserUpdateAvatarResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserUpdateAvatarResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UserUpdateAvatarResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\n\nfunc (p *UserUpdateAvatarResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserUpdateAvatarResponse(%+v)\", *p)\n\n}\n\ntype UserUpdateProfileRequest struct {\n\tName           *string `thrift:\"name,2,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tUserUniqueName *string `thrift:\"user_unique_name,3,optional\" form:\"user_unique_name\" json:\"user_unique_name,omitempty\" query:\"user_unique_name\"`\n\tDescription    *string `thrift:\"description,5,optional\" form:\"description\" json:\"description,omitempty\" query:\"description\"`\n\tLocale         *string `thrift:\"locale,6,optional\" form:\"locale\" json:\"locale,omitempty\" query:\"locale\"`\n}\n\nfunc NewUserUpdateProfileRequest() *UserUpdateProfileRequest {\n\treturn &UserUpdateProfileRequest{}\n}\n\nfunc (p *UserUpdateProfileRequest) InitDefault() {\n}\n\nvar UserUpdateProfileRequest_Name_DEFAULT string\n\nfunc (p *UserUpdateProfileRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn UserUpdateProfileRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar UserUpdateProfileRequest_UserUniqueName_DEFAULT string\n\nfunc (p *UserUpdateProfileRequest) GetUserUniqueName() (v string) {\n\tif !p.IsSetUserUniqueName() {\n\t\treturn UserUpdateProfileRequest_UserUniqueName_DEFAULT\n\t}\n\treturn *p.UserUniqueName\n}\n\nvar UserUpdateProfileRequest_Description_DEFAULT string\n\nfunc (p *UserUpdateProfileRequest) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn UserUpdateProfileRequest_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar UserUpdateProfileRequest_Locale_DEFAULT string\n\nfunc (p *UserUpdateProfileRequest) GetLocale() (v string) {\n\tif !p.IsSetLocale() {\n\t\treturn UserUpdateProfileRequest_Locale_DEFAULT\n\t}\n\treturn *p.Locale\n}\n\nvar fieldIDToName_UserUpdateProfileRequest = map[int16]string{\n\t2: \"name\",\n\t3: \"user_unique_name\",\n\t5: \"description\",\n\t6: \"locale\",\n}\n\nfunc (p *UserUpdateProfileRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *UserUpdateProfileRequest) IsSetUserUniqueName() bool {\n\treturn p.UserUniqueName != nil\n}\n\nfunc (p *UserUpdateProfileRequest) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *UserUpdateProfileRequest) IsSetLocale() bool {\n\treturn p.Locale != nil\n}\n\nfunc (p *UserUpdateProfileRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserUpdateProfileRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserUpdateProfileRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *UserUpdateProfileRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserUniqueName = _field\n\treturn nil\n}\nfunc (p *UserUpdateProfileRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *UserUpdateProfileRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Locale = _field\n\treturn nil\n}\n\nfunc (p *UserUpdateProfileRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserUpdateProfileRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserUpdateProfileRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UserUpdateProfileRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserUniqueName() {\n\t\tif err = oprot.WriteFieldBegin(\"user_unique_name\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UserUniqueName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UserUpdateProfileRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UserUpdateProfileRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLocale() {\n\t\tif err = oprot.WriteFieldBegin(\"locale\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Locale); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *UserUpdateProfileRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserUpdateProfileRequest(%+v)\", *p)\n\n}\n\ntype UserUpdateProfileResponse struct {\n\tCode int32  `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewUserUpdateProfileResponse() *UserUpdateProfileResponse {\n\treturn &UserUpdateProfileResponse{}\n}\n\nfunc (p *UserUpdateProfileResponse) InitDefault() {\n}\n\nfunc (p *UserUpdateProfileResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *UserUpdateProfileResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_UserUpdateProfileResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n}\n\nfunc (p *UserUpdateProfileResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserUpdateProfileResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UserUpdateProfileResponse[fieldId]))\n}\n\nfunc (p *UserUpdateProfileResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UserUpdateProfileResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *UserUpdateProfileResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserUpdateProfileResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserUpdateProfileResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UserUpdateProfileResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\n\nfunc (p *UserUpdateProfileResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserUpdateProfileResponse(%+v)\", *p)\n\n}\n\ntype PassportService interface {\n\t// Email password registration\n\tPassportWebEmailRegisterV2Post(ctx context.Context, req *PassportWebEmailRegisterV2PostRequest) (r *PassportWebEmailRegisterV2PostResponse, err error)\n\t// log out\n\tPassportWebLogoutGet(ctx context.Context, req *PassportWebLogoutGetRequest) (r *PassportWebLogoutGetResponse, err error)\n\t// Email account password login\n\tPassportWebEmailLoginPost(ctx context.Context, req *PassportWebEmailLoginPostRequest) (r *PassportWebEmailLoginPostResponse, err error)\n\t// Reset password via email\n\tPassportWebEmailPasswordResetGet(ctx context.Context, req *PassportWebEmailPasswordResetGetRequest) (r *PassportWebEmailPasswordResetGetResponse, err error)\n\t// account information\n\tPassportAccountInfoV2(ctx context.Context, req *PassportAccountInfoV2Request) (r *PassportAccountInfoV2Response, err error)\n\n\tUserUpdateAvatar(ctx context.Context, req *UserUpdateAvatarRequest) (r *UserUpdateAvatarResponse, err error)\n\n\tUserUpdateProfile(ctx context.Context, req *UserUpdateProfileRequest) (r *UserUpdateProfileResponse, err error)\n}\n\ntype PassportServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewPassportServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *PassportServiceClient {\n\treturn &PassportServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewPassportServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *PassportServiceClient {\n\treturn &PassportServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewPassportServiceClient(c thrift.TClient) *PassportServiceClient {\n\treturn &PassportServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *PassportServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *PassportServiceClient) PassportWebEmailRegisterV2Post(ctx context.Context, req *PassportWebEmailRegisterV2PostRequest) (r *PassportWebEmailRegisterV2PostResponse, err error) {\n\tvar _args PassportServicePassportWebEmailRegisterV2PostArgs\n\t_args.Req = req\n\tvar _result PassportServicePassportWebEmailRegisterV2PostResult\n\tif err = p.Client_().Call(ctx, \"PassportWebEmailRegisterV2Post\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PassportServiceClient) PassportWebLogoutGet(ctx context.Context, req *PassportWebLogoutGetRequest) (r *PassportWebLogoutGetResponse, err error) {\n\tvar _args PassportServicePassportWebLogoutGetArgs\n\t_args.Req = req\n\tvar _result PassportServicePassportWebLogoutGetResult\n\tif err = p.Client_().Call(ctx, \"PassportWebLogoutGet\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PassportServiceClient) PassportWebEmailLoginPost(ctx context.Context, req *PassportWebEmailLoginPostRequest) (r *PassportWebEmailLoginPostResponse, err error) {\n\tvar _args PassportServicePassportWebEmailLoginPostArgs\n\t_args.Req = req\n\tvar _result PassportServicePassportWebEmailLoginPostResult\n\tif err = p.Client_().Call(ctx, \"PassportWebEmailLoginPost\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PassportServiceClient) PassportWebEmailPasswordResetGet(ctx context.Context, req *PassportWebEmailPasswordResetGetRequest) (r *PassportWebEmailPasswordResetGetResponse, err error) {\n\tvar _args PassportServicePassportWebEmailPasswordResetGetArgs\n\t_args.Req = req\n\tvar _result PassportServicePassportWebEmailPasswordResetGetResult\n\tif err = p.Client_().Call(ctx, \"PassportWebEmailPasswordResetGet\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PassportServiceClient) PassportAccountInfoV2(ctx context.Context, req *PassportAccountInfoV2Request) (r *PassportAccountInfoV2Response, err error) {\n\tvar _args PassportServicePassportAccountInfoV2Args\n\t_args.Req = req\n\tvar _result PassportServicePassportAccountInfoV2Result\n\tif err = p.Client_().Call(ctx, \"PassportAccountInfoV2\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PassportServiceClient) UserUpdateAvatar(ctx context.Context, req *UserUpdateAvatarRequest) (r *UserUpdateAvatarResponse, err error) {\n\tvar _args PassportServiceUserUpdateAvatarArgs\n\t_args.Req = req\n\tvar _result PassportServiceUserUpdateAvatarResult\n\tif err = p.Client_().Call(ctx, \"UserUpdateAvatar\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PassportServiceClient) UserUpdateProfile(ctx context.Context, req *UserUpdateProfileRequest) (r *UserUpdateProfileResponse, err error) {\n\tvar _args PassportServiceUserUpdateProfileArgs\n\t_args.Req = req\n\tvar _result PassportServiceUserUpdateProfileResult\n\tif err = p.Client_().Call(ctx, \"UserUpdateProfile\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype PassportServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      PassportService\n}\n\nfunc (p *PassportServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *PassportServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *PassportServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewPassportServiceProcessor(handler PassportService) *PassportServiceProcessor {\n\tself := &PassportServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"PassportWebEmailRegisterV2Post\", &passportServiceProcessorPassportWebEmailRegisterV2Post{handler: handler})\n\tself.AddToProcessorMap(\"PassportWebLogoutGet\", &passportServiceProcessorPassportWebLogoutGet{handler: handler})\n\tself.AddToProcessorMap(\"PassportWebEmailLoginPost\", &passportServiceProcessorPassportWebEmailLoginPost{handler: handler})\n\tself.AddToProcessorMap(\"PassportWebEmailPasswordResetGet\", &passportServiceProcessorPassportWebEmailPasswordResetGet{handler: handler})\n\tself.AddToProcessorMap(\"PassportAccountInfoV2\", &passportServiceProcessorPassportAccountInfoV2{handler: handler})\n\tself.AddToProcessorMap(\"UserUpdateAvatar\", &passportServiceProcessorUserUpdateAvatar{handler: handler})\n\tself.AddToProcessorMap(\"UserUpdateProfile\", &passportServiceProcessorUserUpdateProfile{handler: handler})\n\treturn self\n}\nfunc (p *PassportServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype passportServiceProcessorPassportWebEmailRegisterV2Post struct {\n\thandler PassportService\n}\n\nfunc (p *passportServiceProcessorPassportWebEmailRegisterV2Post) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PassportServicePassportWebEmailRegisterV2PostArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PassportWebEmailRegisterV2Post\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PassportServicePassportWebEmailRegisterV2PostResult{}\n\tvar retval *PassportWebEmailRegisterV2PostResponse\n\tif retval, err2 = p.handler.PassportWebEmailRegisterV2Post(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PassportWebEmailRegisterV2Post: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PassportWebEmailRegisterV2Post\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PassportWebEmailRegisterV2Post\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype passportServiceProcessorPassportWebLogoutGet struct {\n\thandler PassportService\n}\n\nfunc (p *passportServiceProcessorPassportWebLogoutGet) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PassportServicePassportWebLogoutGetArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PassportWebLogoutGet\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PassportServicePassportWebLogoutGetResult{}\n\tvar retval *PassportWebLogoutGetResponse\n\tif retval, err2 = p.handler.PassportWebLogoutGet(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PassportWebLogoutGet: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PassportWebLogoutGet\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PassportWebLogoutGet\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype passportServiceProcessorPassportWebEmailLoginPost struct {\n\thandler PassportService\n}\n\nfunc (p *passportServiceProcessorPassportWebEmailLoginPost) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PassportServicePassportWebEmailLoginPostArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PassportWebEmailLoginPost\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PassportServicePassportWebEmailLoginPostResult{}\n\tvar retval *PassportWebEmailLoginPostResponse\n\tif retval, err2 = p.handler.PassportWebEmailLoginPost(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PassportWebEmailLoginPost: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PassportWebEmailLoginPost\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PassportWebEmailLoginPost\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype passportServiceProcessorPassportWebEmailPasswordResetGet struct {\n\thandler PassportService\n}\n\nfunc (p *passportServiceProcessorPassportWebEmailPasswordResetGet) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PassportServicePassportWebEmailPasswordResetGetArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PassportWebEmailPasswordResetGet\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PassportServicePassportWebEmailPasswordResetGetResult{}\n\tvar retval *PassportWebEmailPasswordResetGetResponse\n\tif retval, err2 = p.handler.PassportWebEmailPasswordResetGet(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PassportWebEmailPasswordResetGet: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PassportWebEmailPasswordResetGet\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PassportWebEmailPasswordResetGet\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype passportServiceProcessorPassportAccountInfoV2 struct {\n\thandler PassportService\n}\n\nfunc (p *passportServiceProcessorPassportAccountInfoV2) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PassportServicePassportAccountInfoV2Args{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PassportAccountInfoV2\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PassportServicePassportAccountInfoV2Result{}\n\tvar retval *PassportAccountInfoV2Response\n\tif retval, err2 = p.handler.PassportAccountInfoV2(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PassportAccountInfoV2: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PassportAccountInfoV2\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PassportAccountInfoV2\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype passportServiceProcessorUserUpdateAvatar struct {\n\thandler PassportService\n}\n\nfunc (p *passportServiceProcessorUserUpdateAvatar) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PassportServiceUserUpdateAvatarArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UserUpdateAvatar\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PassportServiceUserUpdateAvatarResult{}\n\tvar retval *UserUpdateAvatarResponse\n\tif retval, err2 = p.handler.UserUpdateAvatar(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UserUpdateAvatar: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UserUpdateAvatar\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UserUpdateAvatar\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype passportServiceProcessorUserUpdateProfile struct {\n\thandler PassportService\n}\n\nfunc (p *passportServiceProcessorUserUpdateProfile) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PassportServiceUserUpdateProfileArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UserUpdateProfile\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PassportServiceUserUpdateProfileResult{}\n\tvar retval *UserUpdateProfileResponse\n\tif retval, err2 = p.handler.UserUpdateProfile(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UserUpdateProfile: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UserUpdateProfile\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UserUpdateProfile\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype PassportServicePassportWebEmailRegisterV2PostArgs struct {\n\tReq *PassportWebEmailRegisterV2PostRequest `thrift:\"req,1\"`\n}\n\nfunc NewPassportServicePassportWebEmailRegisterV2PostArgs() *PassportServicePassportWebEmailRegisterV2PostArgs {\n\treturn &PassportServicePassportWebEmailRegisterV2PostArgs{}\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostArgs) InitDefault() {\n}\n\nvar PassportServicePassportWebEmailRegisterV2PostArgs_Req_DEFAULT *PassportWebEmailRegisterV2PostRequest\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostArgs) GetReq() (v *PassportWebEmailRegisterV2PostRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PassportServicePassportWebEmailRegisterV2PostArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PassportServicePassportWebEmailRegisterV2PostArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServicePassportWebEmailRegisterV2PostArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPassportWebEmailRegisterV2PostRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailRegisterV2Post_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServicePassportWebEmailRegisterV2PostArgs(%+v)\", *p)\n\n}\n\ntype PassportServicePassportWebEmailRegisterV2PostResult struct {\n\tSuccess *PassportWebEmailRegisterV2PostResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPassportServicePassportWebEmailRegisterV2PostResult() *PassportServicePassportWebEmailRegisterV2PostResult {\n\treturn &PassportServicePassportWebEmailRegisterV2PostResult{}\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostResult) InitDefault() {\n}\n\nvar PassportServicePassportWebEmailRegisterV2PostResult_Success_DEFAULT *PassportWebEmailRegisterV2PostResponse\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostResult) GetSuccess() (v *PassportWebEmailRegisterV2PostResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PassportServicePassportWebEmailRegisterV2PostResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PassportServicePassportWebEmailRegisterV2PostResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServicePassportWebEmailRegisterV2PostResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewPassportWebEmailRegisterV2PostResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailRegisterV2Post_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailRegisterV2PostResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServicePassportWebEmailRegisterV2PostResult(%+v)\", *p)\n\n}\n\ntype PassportServicePassportWebLogoutGetArgs struct {\n\tReq *PassportWebLogoutGetRequest `thrift:\"req,1\"`\n}\n\nfunc NewPassportServicePassportWebLogoutGetArgs() *PassportServicePassportWebLogoutGetArgs {\n\treturn &PassportServicePassportWebLogoutGetArgs{}\n}\n\nfunc (p *PassportServicePassportWebLogoutGetArgs) InitDefault() {\n}\n\nvar PassportServicePassportWebLogoutGetArgs_Req_DEFAULT *PassportWebLogoutGetRequest\n\nfunc (p *PassportServicePassportWebLogoutGetArgs) GetReq() (v *PassportWebLogoutGetRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PassportServicePassportWebLogoutGetArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PassportServicePassportWebLogoutGetArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PassportServicePassportWebLogoutGetArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PassportServicePassportWebLogoutGetArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServicePassportWebLogoutGetArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebLogoutGetArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPassportWebLogoutGetRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PassportServicePassportWebLogoutGetArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebLogoutGet_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebLogoutGetArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebLogoutGetArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServicePassportWebLogoutGetArgs(%+v)\", *p)\n\n}\n\ntype PassportServicePassportWebLogoutGetResult struct {\n\tSuccess *PassportWebLogoutGetResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPassportServicePassportWebLogoutGetResult() *PassportServicePassportWebLogoutGetResult {\n\treturn &PassportServicePassportWebLogoutGetResult{}\n}\n\nfunc (p *PassportServicePassportWebLogoutGetResult) InitDefault() {\n}\n\nvar PassportServicePassportWebLogoutGetResult_Success_DEFAULT *PassportWebLogoutGetResponse\n\nfunc (p *PassportServicePassportWebLogoutGetResult) GetSuccess() (v *PassportWebLogoutGetResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PassportServicePassportWebLogoutGetResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PassportServicePassportWebLogoutGetResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PassportServicePassportWebLogoutGetResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PassportServicePassportWebLogoutGetResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServicePassportWebLogoutGetResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebLogoutGetResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewPassportWebLogoutGetResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PassportServicePassportWebLogoutGetResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebLogoutGet_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebLogoutGetResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebLogoutGetResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServicePassportWebLogoutGetResult(%+v)\", *p)\n\n}\n\ntype PassportServicePassportWebEmailLoginPostArgs struct {\n\tReq *PassportWebEmailLoginPostRequest `thrift:\"req,1\"`\n}\n\nfunc NewPassportServicePassportWebEmailLoginPostArgs() *PassportServicePassportWebEmailLoginPostArgs {\n\treturn &PassportServicePassportWebEmailLoginPostArgs{}\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostArgs) InitDefault() {\n}\n\nvar PassportServicePassportWebEmailLoginPostArgs_Req_DEFAULT *PassportWebEmailLoginPostRequest\n\nfunc (p *PassportServicePassportWebEmailLoginPostArgs) GetReq() (v *PassportWebEmailLoginPostRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PassportServicePassportWebEmailLoginPostArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PassportServicePassportWebEmailLoginPostArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServicePassportWebEmailLoginPostArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPassportWebEmailLoginPostRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailLoginPost_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServicePassportWebEmailLoginPostArgs(%+v)\", *p)\n\n}\n\ntype PassportServicePassportWebEmailLoginPostResult struct {\n\tSuccess *PassportWebEmailLoginPostResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPassportServicePassportWebEmailLoginPostResult() *PassportServicePassportWebEmailLoginPostResult {\n\treturn &PassportServicePassportWebEmailLoginPostResult{}\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostResult) InitDefault() {\n}\n\nvar PassportServicePassportWebEmailLoginPostResult_Success_DEFAULT *PassportWebEmailLoginPostResponse\n\nfunc (p *PassportServicePassportWebEmailLoginPostResult) GetSuccess() (v *PassportWebEmailLoginPostResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PassportServicePassportWebEmailLoginPostResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PassportServicePassportWebEmailLoginPostResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServicePassportWebEmailLoginPostResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewPassportWebEmailLoginPostResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailLoginPost_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailLoginPostResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServicePassportWebEmailLoginPostResult(%+v)\", *p)\n\n}\n\ntype PassportServicePassportWebEmailPasswordResetGetArgs struct {\n\tReq *PassportWebEmailPasswordResetGetRequest `thrift:\"req,1\"`\n}\n\nfunc NewPassportServicePassportWebEmailPasswordResetGetArgs() *PassportServicePassportWebEmailPasswordResetGetArgs {\n\treturn &PassportServicePassportWebEmailPasswordResetGetArgs{}\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetArgs) InitDefault() {\n}\n\nvar PassportServicePassportWebEmailPasswordResetGetArgs_Req_DEFAULT *PassportWebEmailPasswordResetGetRequest\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetArgs) GetReq() (v *PassportWebEmailPasswordResetGetRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PassportServicePassportWebEmailPasswordResetGetArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PassportServicePassportWebEmailPasswordResetGetArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServicePassportWebEmailPasswordResetGetArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPassportWebEmailPasswordResetGetRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailPasswordResetGet_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServicePassportWebEmailPasswordResetGetArgs(%+v)\", *p)\n\n}\n\ntype PassportServicePassportWebEmailPasswordResetGetResult struct {\n\tSuccess *PassportWebEmailPasswordResetGetResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPassportServicePassportWebEmailPasswordResetGetResult() *PassportServicePassportWebEmailPasswordResetGetResult {\n\treturn &PassportServicePassportWebEmailPasswordResetGetResult{}\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetResult) InitDefault() {\n}\n\nvar PassportServicePassportWebEmailPasswordResetGetResult_Success_DEFAULT *PassportWebEmailPasswordResetGetResponse\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetResult) GetSuccess() (v *PassportWebEmailPasswordResetGetResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PassportServicePassportWebEmailPasswordResetGetResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PassportServicePassportWebEmailPasswordResetGetResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServicePassportWebEmailPasswordResetGetResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewPassportWebEmailPasswordResetGetResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportWebEmailPasswordResetGet_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportWebEmailPasswordResetGetResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServicePassportWebEmailPasswordResetGetResult(%+v)\", *p)\n\n}\n\ntype PassportServicePassportAccountInfoV2Args struct {\n\tReq *PassportAccountInfoV2Request `thrift:\"req,1\"`\n}\n\nfunc NewPassportServicePassportAccountInfoV2Args() *PassportServicePassportAccountInfoV2Args {\n\treturn &PassportServicePassportAccountInfoV2Args{}\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Args) InitDefault() {\n}\n\nvar PassportServicePassportAccountInfoV2Args_Req_DEFAULT *PassportAccountInfoV2Request\n\nfunc (p *PassportServicePassportAccountInfoV2Args) GetReq() (v *PassportAccountInfoV2Request) {\n\tif !p.IsSetReq() {\n\t\treturn PassportServicePassportAccountInfoV2Args_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PassportServicePassportAccountInfoV2Args = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Args) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Args) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServicePassportAccountInfoV2Args[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Args) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPassportAccountInfoV2Request()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Args) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportAccountInfoV2_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Args) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Args) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServicePassportAccountInfoV2Args(%+v)\", *p)\n\n}\n\ntype PassportServicePassportAccountInfoV2Result struct {\n\tSuccess *PassportAccountInfoV2Response `thrift:\"success,0,optional\"`\n}\n\nfunc NewPassportServicePassportAccountInfoV2Result() *PassportServicePassportAccountInfoV2Result {\n\treturn &PassportServicePassportAccountInfoV2Result{}\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Result) InitDefault() {\n}\n\nvar PassportServicePassportAccountInfoV2Result_Success_DEFAULT *PassportAccountInfoV2Response\n\nfunc (p *PassportServicePassportAccountInfoV2Result) GetSuccess() (v *PassportAccountInfoV2Response) {\n\tif !p.IsSetSuccess() {\n\t\treturn PassportServicePassportAccountInfoV2Result_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PassportServicePassportAccountInfoV2Result = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Result) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Result) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServicePassportAccountInfoV2Result[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Result) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewPassportAccountInfoV2Response()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Result) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PassportAccountInfoV2_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Result) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PassportServicePassportAccountInfoV2Result) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServicePassportAccountInfoV2Result(%+v)\", *p)\n\n}\n\ntype PassportServiceUserUpdateAvatarArgs struct {\n\tReq *UserUpdateAvatarRequest `thrift:\"req,1\"`\n}\n\nfunc NewPassportServiceUserUpdateAvatarArgs() *PassportServiceUserUpdateAvatarArgs {\n\treturn &PassportServiceUserUpdateAvatarArgs{}\n}\n\nfunc (p *PassportServiceUserUpdateAvatarArgs) InitDefault() {\n}\n\nvar PassportServiceUserUpdateAvatarArgs_Req_DEFAULT *UserUpdateAvatarRequest\n\nfunc (p *PassportServiceUserUpdateAvatarArgs) GetReq() (v *UserUpdateAvatarRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PassportServiceUserUpdateAvatarArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PassportServiceUserUpdateAvatarArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PassportServiceUserUpdateAvatarArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PassportServiceUserUpdateAvatarArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServiceUserUpdateAvatarArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateAvatarArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUserUpdateAvatarRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PassportServiceUserUpdateAvatarArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserUpdateAvatar_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateAvatarArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateAvatarArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServiceUserUpdateAvatarArgs(%+v)\", *p)\n\n}\n\ntype PassportServiceUserUpdateAvatarResult struct {\n\tSuccess *UserUpdateAvatarResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPassportServiceUserUpdateAvatarResult() *PassportServiceUserUpdateAvatarResult {\n\treturn &PassportServiceUserUpdateAvatarResult{}\n}\n\nfunc (p *PassportServiceUserUpdateAvatarResult) InitDefault() {\n}\n\nvar PassportServiceUserUpdateAvatarResult_Success_DEFAULT *UserUpdateAvatarResponse\n\nfunc (p *PassportServiceUserUpdateAvatarResult) GetSuccess() (v *UserUpdateAvatarResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PassportServiceUserUpdateAvatarResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PassportServiceUserUpdateAvatarResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PassportServiceUserUpdateAvatarResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PassportServiceUserUpdateAvatarResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServiceUserUpdateAvatarResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateAvatarResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUserUpdateAvatarResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PassportServiceUserUpdateAvatarResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserUpdateAvatar_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateAvatarResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateAvatarResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServiceUserUpdateAvatarResult(%+v)\", *p)\n\n}\n\ntype PassportServiceUserUpdateProfileArgs struct {\n\tReq *UserUpdateProfileRequest `thrift:\"req,1\"`\n}\n\nfunc NewPassportServiceUserUpdateProfileArgs() *PassportServiceUserUpdateProfileArgs {\n\treturn &PassportServiceUserUpdateProfileArgs{}\n}\n\nfunc (p *PassportServiceUserUpdateProfileArgs) InitDefault() {\n}\n\nvar PassportServiceUserUpdateProfileArgs_Req_DEFAULT *UserUpdateProfileRequest\n\nfunc (p *PassportServiceUserUpdateProfileArgs) GetReq() (v *UserUpdateProfileRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PassportServiceUserUpdateProfileArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PassportServiceUserUpdateProfileArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PassportServiceUserUpdateProfileArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PassportServiceUserUpdateProfileArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServiceUserUpdateProfileArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateProfileArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUserUpdateProfileRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PassportServiceUserUpdateProfileArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserUpdateProfile_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateProfileArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateProfileArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServiceUserUpdateProfileArgs(%+v)\", *p)\n\n}\n\ntype PassportServiceUserUpdateProfileResult struct {\n\tSuccess *UserUpdateProfileResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPassportServiceUserUpdateProfileResult() *PassportServiceUserUpdateProfileResult {\n\treturn &PassportServiceUserUpdateProfileResult{}\n}\n\nfunc (p *PassportServiceUserUpdateProfileResult) InitDefault() {\n}\n\nvar PassportServiceUserUpdateProfileResult_Success_DEFAULT *UserUpdateProfileResponse\n\nfunc (p *PassportServiceUserUpdateProfileResult) GetSuccess() (v *UserUpdateProfileResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PassportServiceUserUpdateProfileResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PassportServiceUserUpdateProfileResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PassportServiceUserUpdateProfileResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PassportServiceUserUpdateProfileResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PassportServiceUserUpdateProfileResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateProfileResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUserUpdateProfileResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PassportServiceUserUpdateProfileResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserUpdateProfile_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateProfileResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PassportServiceUserUpdateProfileResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PassportServiceUserUpdateProfileResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/permission/openapiauth/openapiauth.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage openapiauth\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\nconst (\n\tAll = \"all\"\n\n\tOthers = \"others\"\n\n\tOwned = \"owned\"\n\n\tActive = \"active\"\n\n\tDeactivated = \"deactivated\"\n\n\tOffboarded = \"offboarded\"\n)\n\ntype PatSearchOption = string\n\ntype UserStatus = string\n\ntype CreatePersonalAccessTokenAndPermissionRequest struct {\n\t// PAT name\n\tName string `thrift:\"name,1,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\t// PAT custom expiration time\n\tExpireAt int64 `thrift:\"expire_at,2\" form:\"expire_at\" json:\"expire_at\" query:\"expire_at\"`\n\t// PAT user enumeration expiration time 1, 30, 60, 90, 180, 365, permanent\n\tDurationDay string `thrift:\"duration_day,3\" form:\"duration_day\" json:\"duration_day\" query:\"duration_day\"`\n\t// organization id\n\tOrganizationID string `thrift:\"organization_id,4\" form:\"organization_id\" json:\"organization_id\" query:\"organization_id\"`\n}\n\nfunc NewCreatePersonalAccessTokenAndPermissionRequest() *CreatePersonalAccessTokenAndPermissionRequest {\n\treturn &CreatePersonalAccessTokenAndPermissionRequest{}\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) InitDefault() {\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) GetExpireAt() (v int64) {\n\treturn p.ExpireAt\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) GetDurationDay() (v string) {\n\treturn p.DurationDay\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) GetOrganizationID() (v string) {\n\treturn p.OrganizationID\n}\n\nvar fieldIDToName_CreatePersonalAccessTokenAndPermissionRequest = map[int16]string{\n\t1: \"name\",\n\t2: \"expire_at\",\n\t3: \"duration_day\",\n\t4: \"organization_id\",\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetName bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreatePersonalAccessTokenAndPermissionRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreatePersonalAccessTokenAndPermissionRequest[fieldId]))\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExpireAt = _field\n\treturn nil\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DurationDay = _field\n\treturn nil\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OrganizationID = _field\n\treturn nil\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreatePersonalAccessTokenAndPermissionRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"expire_at\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ExpireAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"duration_day\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DurationDay); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"organization_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.OrganizationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreatePersonalAccessTokenAndPermissionRequest(%+v)\", *p)\n\n}\n\ntype PersonalAccessToken struct {\n\tID        int64  `thrift:\"id,1,required\" form:\"id,required\" json:\"id,string,required\" query:\"id,required\"`\n\tName      string `thrift:\"name,2,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\tCreatedAt int64  `thrift:\"created_at,3,required\" form:\"created_at,required\" json:\"created_at,required\" query:\"created_at,required\"`\n\tUpdatedAt int64  `thrift:\"updated_at,4,required\" form:\"updated_at,required\" json:\"updated_at,required\" query:\"updated_at,required\"`\n\t// -1 means unused\n\tLastUsedAt int64 `thrift:\"last_used_at,5,required\" form:\"last_used_at,required\" json:\"last_used_at,required\" query:\"last_used_at,required\"`\n\t// -1 means indefinite\n\tExpireAt int64 `thrift:\"expire_at,6,required\" form:\"expire_at,required\" json:\"expire_at,required\" query:\"expire_at,required\"`\n}\n\nfunc NewPersonalAccessToken() *PersonalAccessToken {\n\treturn &PersonalAccessToken{}\n}\n\nfunc (p *PersonalAccessToken) InitDefault() {\n}\n\nfunc (p *PersonalAccessToken) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *PersonalAccessToken) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PersonalAccessToken) GetCreatedAt() (v int64) {\n\treturn p.CreatedAt\n}\n\nfunc (p *PersonalAccessToken) GetUpdatedAt() (v int64) {\n\treturn p.UpdatedAt\n}\n\nfunc (p *PersonalAccessToken) GetLastUsedAt() (v int64) {\n\treturn p.LastUsedAt\n}\n\nfunc (p *PersonalAccessToken) GetExpireAt() (v int64) {\n\treturn p.ExpireAt\n}\n\nvar fieldIDToName_PersonalAccessToken = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"created_at\",\n\t4: \"updated_at\",\n\t5: \"last_used_at\",\n\t6: \"expire_at\",\n}\n\nfunc (p *PersonalAccessToken) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\tvar issetName bool = false\n\tvar issetCreatedAt bool = false\n\tvar issetUpdatedAt bool = false\n\tvar issetLastUsedAt bool = false\n\tvar issetExpireAt bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCreatedAt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUpdatedAt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetLastUsedAt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetExpireAt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCreatedAt {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUpdatedAt {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetLastUsedAt {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetExpireAt {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PersonalAccessToken[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PersonalAccessToken[fieldId]))\n}\n\nfunc (p *PersonalAccessToken) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PersonalAccessToken) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PersonalAccessToken) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatedAt = _field\n\treturn nil\n}\nfunc (p *PersonalAccessToken) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdatedAt = _field\n\treturn nil\n}\nfunc (p *PersonalAccessToken) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LastUsedAt = _field\n\treturn nil\n}\nfunc (p *PersonalAccessToken) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExpireAt = _field\n\treturn nil\n}\n\nfunc (p *PersonalAccessToken) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PersonalAccessToken\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PersonalAccessToken) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PersonalAccessToken) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PersonalAccessToken) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"created_at\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PersonalAccessToken) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"updated_at\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdatedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PersonalAccessToken) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"last_used_at\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.LastUsedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PersonalAccessToken) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"expire_at\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ExpireAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *PersonalAccessToken) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PersonalAccessToken(%+v)\", *p)\n\n}\n\ntype CreatePersonalAccessTokenAndPermissionResponseData struct {\n\tPersonalAccessToken *PersonalAccessToken `thrift:\"personal_access_token,1,required\" form:\"personal_access_token,required\" json:\"personal_access_token,required\" query:\"personal_access_token,required\"`\n\t// PAT token plaintext\n\tToken string `thrift:\"token,2,required\" form:\"token,required\" json:\"token,required\" query:\"token,required\"`\n}\n\nfunc NewCreatePersonalAccessTokenAndPermissionResponseData() *CreatePersonalAccessTokenAndPermissionResponseData {\n\treturn &CreatePersonalAccessTokenAndPermissionResponseData{}\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponseData) InitDefault() {\n}\n\nvar CreatePersonalAccessTokenAndPermissionResponseData_PersonalAccessToken_DEFAULT *PersonalAccessToken\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponseData) GetPersonalAccessToken() (v *PersonalAccessToken) {\n\tif !p.IsSetPersonalAccessToken() {\n\t\treturn CreatePersonalAccessTokenAndPermissionResponseData_PersonalAccessToken_DEFAULT\n\t}\n\treturn p.PersonalAccessToken\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponseData) GetToken() (v string) {\n\treturn p.Token\n}\n\nvar fieldIDToName_CreatePersonalAccessTokenAndPermissionResponseData = map[int16]string{\n\t1: \"personal_access_token\",\n\t2: \"token\",\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponseData) IsSetPersonalAccessToken() bool {\n\treturn p.PersonalAccessToken != nil\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponseData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPersonalAccessToken bool = false\n\tvar issetToken bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPersonalAccessToken = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetToken = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPersonalAccessToken {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetToken {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreatePersonalAccessTokenAndPermissionResponseData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreatePersonalAccessTokenAndPermissionResponseData[fieldId]))\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponseData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPersonalAccessToken()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PersonalAccessToken = _field\n\treturn nil\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionResponseData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Token = _field\n\treturn nil\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponseData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreatePersonalAccessTokenAndPermissionResponseData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponseData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"personal_access_token\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.PersonalAccessToken.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionResponseData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"token\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Token); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponseData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreatePersonalAccessTokenAndPermissionResponseData(%+v)\", *p)\n\n}\n\ntype CreatePersonalAccessTokenAndPermissionResponse struct {\n\tData *CreatePersonalAccessTokenAndPermissionResponseData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode int32                                               `thrift:\"code,2,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string                                              `thrift:\"msg,3,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewCreatePersonalAccessTokenAndPermissionResponse() *CreatePersonalAccessTokenAndPermissionResponse {\n\treturn &CreatePersonalAccessTokenAndPermissionResponse{}\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) InitDefault() {\n}\n\nvar CreatePersonalAccessTokenAndPermissionResponse_Data_DEFAULT *CreatePersonalAccessTokenAndPermissionResponseData\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) GetData() (v *CreatePersonalAccessTokenAndPermissionResponseData) {\n\tif !p.IsSetData() {\n\t\treturn CreatePersonalAccessTokenAndPermissionResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_CreatePersonalAccessTokenAndPermissionResponse = map[int16]string{\n\t1: \"data\",\n\t2: \"code\",\n\t3: \"msg\",\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreatePersonalAccessTokenAndPermissionResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreatePersonalAccessTokenAndPermissionResponse[fieldId]))\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreatePersonalAccessTokenAndPermissionResponseData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreatePersonalAccessTokenAndPermissionResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *CreatePersonalAccessTokenAndPermissionResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreatePersonalAccessTokenAndPermissionResponse(%+v)\", *p)\n\n}\n\ntype ListPersonalAccessTokensRequest struct {\n\t// organization id\n\tOrganizationID *string `thrift:\"organization_id,1,optional\" json:\"organization_id,omitempty\" query:\"organization_id\"`\n\t// zero-indexed\n\tPage *int64 `thrift:\"page,2,optional\" json:\"page,omitempty\" query:\"page\"`\n\t// page size\n\tSize *int64 `thrift:\"size,3,optional\" json:\"size,omitempty\" query:\"size\"`\n\t// search option\n\tSearchOption *PatSearchOption `thrift:\"search_option,4,optional\" json:\"search_option,omitempty\" query:\"search_option\"`\n}\n\nfunc NewListPersonalAccessTokensRequest() *ListPersonalAccessTokensRequest {\n\treturn &ListPersonalAccessTokensRequest{}\n}\n\nfunc (p *ListPersonalAccessTokensRequest) InitDefault() {\n}\n\nvar ListPersonalAccessTokensRequest_OrganizationID_DEFAULT string\n\nfunc (p *ListPersonalAccessTokensRequest) GetOrganizationID() (v string) {\n\tif !p.IsSetOrganizationID() {\n\t\treturn ListPersonalAccessTokensRequest_OrganizationID_DEFAULT\n\t}\n\treturn *p.OrganizationID\n}\n\nvar ListPersonalAccessTokensRequest_Page_DEFAULT int64\n\nfunc (p *ListPersonalAccessTokensRequest) GetPage() (v int64) {\n\tif !p.IsSetPage() {\n\t\treturn ListPersonalAccessTokensRequest_Page_DEFAULT\n\t}\n\treturn *p.Page\n}\n\nvar ListPersonalAccessTokensRequest_Size_DEFAULT int64\n\nfunc (p *ListPersonalAccessTokensRequest) GetSize() (v int64) {\n\tif !p.IsSetSize() {\n\t\treturn ListPersonalAccessTokensRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar ListPersonalAccessTokensRequest_SearchOption_DEFAULT PatSearchOption\n\nfunc (p *ListPersonalAccessTokensRequest) GetSearchOption() (v PatSearchOption) {\n\tif !p.IsSetSearchOption() {\n\t\treturn ListPersonalAccessTokensRequest_SearchOption_DEFAULT\n\t}\n\treturn *p.SearchOption\n}\n\nvar fieldIDToName_ListPersonalAccessTokensRequest = map[int16]string{\n\t1: \"organization_id\",\n\t2: \"page\",\n\t3: \"size\",\n\t4: \"search_option\",\n}\n\nfunc (p *ListPersonalAccessTokensRequest) IsSetOrganizationID() bool {\n\treturn p.OrganizationID != nil\n}\n\nfunc (p *ListPersonalAccessTokensRequest) IsSetPage() bool {\n\treturn p.Page != nil\n}\n\nfunc (p *ListPersonalAccessTokensRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *ListPersonalAccessTokensRequest) IsSetSearchOption() bool {\n\treturn p.SearchOption != nil\n}\n\nfunc (p *ListPersonalAccessTokensRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListPersonalAccessTokensRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListPersonalAccessTokensRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OrganizationID = _field\n\treturn nil\n}\nfunc (p *ListPersonalAccessTokensRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *ListPersonalAccessTokensRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *ListPersonalAccessTokensRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *PatSearchOption\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SearchOption = _field\n\treturn nil\n}\n\nfunc (p *ListPersonalAccessTokensRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPersonalAccessTokensRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListPersonalAccessTokensRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrganizationID() {\n\t\tif err = oprot.WriteFieldBegin(\"organization_id\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OrganizationID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListPersonalAccessTokensRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPage() {\n\t\tif err = oprot.WriteFieldBegin(\"page\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Page); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListPersonalAccessTokensRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListPersonalAccessTokensRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSearchOption() {\n\t\tif err = oprot.WriteFieldBegin(\"search_option\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SearchOption); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *ListPersonalAccessTokensRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListPersonalAccessTokensRequest(%+v)\", *p)\n\n}\n\ntype PersonalAccessTokenWithCreatorInfo struct {\n\tID        int64  `thrift:\"id,1,required\" form:\"id,required\" json:\"id,string,required\" query:\"id,required\"`\n\tName      string `thrift:\"name,2,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\tCreatedAt int64  `thrift:\"created_at,3,required\" form:\"created_at,required\" json:\"created_at,required\" query:\"created_at,required\"`\n\tUpdatedAt int64  `thrift:\"updated_at,4,required\" form:\"updated_at,required\" json:\"updated_at,required\" query:\"updated_at,required\"`\n\t// -1 means unused\n\tLastUsedAt int64 `thrift:\"last_used_at,5,required\" form:\"last_used_at,required\" json:\"last_used_at,required\" query:\"last_used_at,required\"`\n\t// -1 means indefinite\n\tExpireAt          int64      `thrift:\"expire_at,6,required\" form:\"expire_at,required\" json:\"expire_at,required\" query:\"expire_at,required\"`\n\tCreatorName       string     `thrift:\"creator_name,7\" form:\"creator_name\" json:\"creator_name\" query:\"creator_name\"`\n\tCreatorUniqueName string     `thrift:\"creator_unique_name,8\" form:\"creator_unique_name\" json:\"creator_unique_name\" query:\"creator_unique_name\"`\n\tCreatorAvatarURL  string     `thrift:\"creator_avatar_url,9\" form:\"creator_avatar_url\" json:\"creator_avatar_url\" query:\"creator_avatar_url\"`\n\tCreatorIconURL    string     `thrift:\"creator_icon_url,10\" form:\"creator_icon_url\" json:\"creator_icon_url\" query:\"creator_icon_url\"`\n\tLocked            bool       `thrift:\"locked,11\" form:\"locked\" json:\"locked\" query:\"locked\"`\n\tCreatorStatus     UserStatus `thrift:\"creator_status,12\" form:\"creator_status\" json:\"creator_status\" query:\"creator_status\"`\n}\n\nfunc NewPersonalAccessTokenWithCreatorInfo() *PersonalAccessTokenWithCreatorInfo {\n\treturn &PersonalAccessTokenWithCreatorInfo{}\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) InitDefault() {\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetCreatedAt() (v int64) {\n\treturn p.CreatedAt\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetUpdatedAt() (v int64) {\n\treturn p.UpdatedAt\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetLastUsedAt() (v int64) {\n\treturn p.LastUsedAt\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetExpireAt() (v int64) {\n\treturn p.ExpireAt\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetCreatorName() (v string) {\n\treturn p.CreatorName\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetCreatorUniqueName() (v string) {\n\treturn p.CreatorUniqueName\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetCreatorAvatarURL() (v string) {\n\treturn p.CreatorAvatarURL\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetCreatorIconURL() (v string) {\n\treturn p.CreatorIconURL\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetLocked() (v bool) {\n\treturn p.Locked\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) GetCreatorStatus() (v UserStatus) {\n\treturn p.CreatorStatus\n}\n\nvar fieldIDToName_PersonalAccessTokenWithCreatorInfo = map[int16]string{\n\t1:  \"id\",\n\t2:  \"name\",\n\t3:  \"created_at\",\n\t4:  \"updated_at\",\n\t5:  \"last_used_at\",\n\t6:  \"expire_at\",\n\t7:  \"creator_name\",\n\t8:  \"creator_unique_name\",\n\t9:  \"creator_avatar_url\",\n\t10: \"creator_icon_url\",\n\t11: \"locked\",\n\t12: \"creator_status\",\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\tvar issetName bool = false\n\tvar issetCreatedAt bool = false\n\tvar issetUpdatedAt bool = false\n\tvar issetLastUsedAt bool = false\n\tvar issetExpireAt bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCreatedAt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUpdatedAt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetLastUsedAt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetExpireAt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCreatedAt {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUpdatedAt {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetLastUsedAt {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetExpireAt {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PersonalAccessTokenWithCreatorInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PersonalAccessTokenWithCreatorInfo[fieldId]))\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatedAt = _field\n\treturn nil\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdatedAt = _field\n\treturn nil\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LastUsedAt = _field\n\treturn nil\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExpireAt = _field\n\treturn nil\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorName = _field\n\treturn nil\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorUniqueName = _field\n\treturn nil\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorAvatarURL = _field\n\treturn nil\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorIconURL = _field\n\treturn nil\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Locked = _field\n\treturn nil\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field UserStatus\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatorStatus = _field\n\treturn nil\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PersonalAccessTokenWithCreatorInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"created_at\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"updated_at\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdatedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"last_used_at\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.LastUsedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"expire_at\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ExpireAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator_name\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CreatorName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator_unique_name\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CreatorUniqueName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator_avatar_url\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CreatorAvatarURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator_icon_url\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CreatorIconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"locked\", thrift.BOOL, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Locked); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *PersonalAccessTokenWithCreatorInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator_status\", thrift.STRING, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CreatorStatus); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\n\nfunc (p *PersonalAccessTokenWithCreatorInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PersonalAccessTokenWithCreatorInfo(%+v)\", *p)\n\n}\n\ntype ListPersonalAccessTokensResponse struct {\n\tData *ListPersonalAccessTokensResponseData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode int32                                 `thrift:\"code,2,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string                                `thrift:\"msg,3,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewListPersonalAccessTokensResponse() *ListPersonalAccessTokensResponse {\n\treturn &ListPersonalAccessTokensResponse{}\n}\n\nfunc (p *ListPersonalAccessTokensResponse) InitDefault() {\n}\n\nvar ListPersonalAccessTokensResponse_Data_DEFAULT *ListPersonalAccessTokensResponseData\n\nfunc (p *ListPersonalAccessTokensResponse) GetData() (v *ListPersonalAccessTokensResponseData) {\n\tif !p.IsSetData() {\n\t\treturn ListPersonalAccessTokensResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *ListPersonalAccessTokensResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *ListPersonalAccessTokensResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_ListPersonalAccessTokensResponse = map[int16]string{\n\t1: \"data\",\n\t2: \"code\",\n\t3: \"msg\",\n}\n\nfunc (p *ListPersonalAccessTokensResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *ListPersonalAccessTokensResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListPersonalAccessTokensResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListPersonalAccessTokensResponse[fieldId]))\n}\n\nfunc (p *ListPersonalAccessTokensResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListPersonalAccessTokensResponseData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ListPersonalAccessTokensResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListPersonalAccessTokensResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *ListPersonalAccessTokensResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPersonalAccessTokensResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListPersonalAccessTokensResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListPersonalAccessTokensResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListPersonalAccessTokensResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ListPersonalAccessTokensResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListPersonalAccessTokensResponse(%+v)\", *p)\n\n}\n\ntype ListPersonalAccessTokensResponseData struct {\n\t// PAT list\n\tPersonalAccessTokens []*PersonalAccessTokenWithCreatorInfo `thrift:\"personal_access_tokens,1,required\" form:\"personal_access_tokens,required\" json:\"personal_access_tokens,required\" query:\"personal_access_tokens,required\"`\n\t// Is there any more data?\n\tHasMore bool `thrift:\"has_more,2\" form:\"has_more\" json:\"has_more\" query:\"has_more\"`\n}\n\nfunc NewListPersonalAccessTokensResponseData() *ListPersonalAccessTokensResponseData {\n\treturn &ListPersonalAccessTokensResponseData{}\n}\n\nfunc (p *ListPersonalAccessTokensResponseData) InitDefault() {\n}\n\nfunc (p *ListPersonalAccessTokensResponseData) GetPersonalAccessTokens() (v []*PersonalAccessTokenWithCreatorInfo) {\n\treturn p.PersonalAccessTokens\n}\n\nfunc (p *ListPersonalAccessTokensResponseData) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nvar fieldIDToName_ListPersonalAccessTokensResponseData = map[int16]string{\n\t1: \"personal_access_tokens\",\n\t2: \"has_more\",\n}\n\nfunc (p *ListPersonalAccessTokensResponseData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPersonalAccessTokens bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPersonalAccessTokens = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPersonalAccessTokens {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListPersonalAccessTokensResponseData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListPersonalAccessTokensResponseData[fieldId]))\n}\n\nfunc (p *ListPersonalAccessTokensResponseData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PersonalAccessTokenWithCreatorInfo, 0, size)\n\tvalues := make([]PersonalAccessTokenWithCreatorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PersonalAccessTokens = _field\n\treturn nil\n}\nfunc (p *ListPersonalAccessTokensResponseData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\n\nfunc (p *ListPersonalAccessTokensResponseData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPersonalAccessTokensResponseData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListPersonalAccessTokensResponseData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"personal_access_tokens\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PersonalAccessTokens)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PersonalAccessTokens {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListPersonalAccessTokensResponseData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_more\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ListPersonalAccessTokensResponseData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListPersonalAccessTokensResponseData(%+v)\", *p)\n\n}\n\ntype DeletePersonalAccessTokenAndPermissionRequest struct {\n\t// PAT Id\n\tID int64 `thrift:\"id,1,required\" form:\"id,required\" json:\"id,string,required\" query:\"id,required\"`\n}\n\nfunc NewDeletePersonalAccessTokenAndPermissionRequest() *DeletePersonalAccessTokenAndPermissionRequest {\n\treturn &DeletePersonalAccessTokenAndPermissionRequest{}\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionRequest) InitDefault() {\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionRequest) GetID() (v int64) {\n\treturn p.ID\n}\n\nvar fieldIDToName_DeletePersonalAccessTokenAndPermissionRequest = map[int16]string{\n\t1: \"id\",\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeletePersonalAccessTokenAndPermissionRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeletePersonalAccessTokenAndPermissionRequest[fieldId]))\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeletePersonalAccessTokenAndPermissionRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeletePersonalAccessTokenAndPermissionRequest(%+v)\", *p)\n\n}\n\ntype DeletePersonalAccessTokenAndPermissionResponse struct {\n\tCode int32  `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewDeletePersonalAccessTokenAndPermissionResponse() *DeletePersonalAccessTokenAndPermissionResponse {\n\treturn &DeletePersonalAccessTokenAndPermissionResponse{}\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionResponse) InitDefault() {\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_DeletePersonalAccessTokenAndPermissionResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeletePersonalAccessTokenAndPermissionResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeletePersonalAccessTokenAndPermissionResponse[fieldId]))\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeletePersonalAccessTokenAndPermissionResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeletePersonalAccessTokenAndPermissionResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeletePersonalAccessTokenAndPermissionResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *DeletePersonalAccessTokenAndPermissionResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeletePersonalAccessTokenAndPermissionResponse(%+v)\", *p)\n\n}\n\ntype GetPersonalAccessTokenAndPermissionRequest struct {\n\t// PAT Id\n\tID int64 `thrift:\"id,1,required\" json:\"id,string,required\" query:\"id,required\"`\n}\n\nfunc NewGetPersonalAccessTokenAndPermissionRequest() *GetPersonalAccessTokenAndPermissionRequest {\n\treturn &GetPersonalAccessTokenAndPermissionRequest{}\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionRequest) InitDefault() {\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionRequest) GetID() (v int64) {\n\treturn p.ID\n}\n\nvar fieldIDToName_GetPersonalAccessTokenAndPermissionRequest = map[int16]string{\n\t1: \"id\",\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPersonalAccessTokenAndPermissionRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPersonalAccessTokenAndPermissionRequest[fieldId]))\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPersonalAccessTokenAndPermissionRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPersonalAccessTokenAndPermissionRequest(%+v)\", *p)\n\n}\n\ntype GetPersonalAccessTokenAndPermissionResponseData struct {\n\tPersonalAccessToken *PersonalAccessToken `thrift:\"personal_access_token,1,required\" form:\"personal_access_token,required\" json:\"personal_access_token,required\" query:\"personal_access_token,required\"`\n}\n\nfunc NewGetPersonalAccessTokenAndPermissionResponseData() *GetPersonalAccessTokenAndPermissionResponseData {\n\treturn &GetPersonalAccessTokenAndPermissionResponseData{}\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponseData) InitDefault() {\n}\n\nvar GetPersonalAccessTokenAndPermissionResponseData_PersonalAccessToken_DEFAULT *PersonalAccessToken\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponseData) GetPersonalAccessToken() (v *PersonalAccessToken) {\n\tif !p.IsSetPersonalAccessToken() {\n\t\treturn GetPersonalAccessTokenAndPermissionResponseData_PersonalAccessToken_DEFAULT\n\t}\n\treturn p.PersonalAccessToken\n}\n\nvar fieldIDToName_GetPersonalAccessTokenAndPermissionResponseData = map[int16]string{\n\t1: \"personal_access_token\",\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponseData) IsSetPersonalAccessToken() bool {\n\treturn p.PersonalAccessToken != nil\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponseData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPersonalAccessToken bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPersonalAccessToken = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPersonalAccessToken {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPersonalAccessTokenAndPermissionResponseData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPersonalAccessTokenAndPermissionResponseData[fieldId]))\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponseData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPersonalAccessToken()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PersonalAccessToken = _field\n\treturn nil\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponseData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPersonalAccessTokenAndPermissionResponseData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponseData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"personal_access_token\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.PersonalAccessToken.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponseData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPersonalAccessTokenAndPermissionResponseData(%+v)\", *p)\n\n}\n\ntype GetPersonalAccessTokenAndPermissionResponse struct {\n\tData *GetPersonalAccessTokenAndPermissionResponseData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode int32                                            `thrift:\"code,2,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string                                           `thrift:\"msg,3,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewGetPersonalAccessTokenAndPermissionResponse() *GetPersonalAccessTokenAndPermissionResponse {\n\treturn &GetPersonalAccessTokenAndPermissionResponse{}\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) InitDefault() {\n}\n\nvar GetPersonalAccessTokenAndPermissionResponse_Data_DEFAULT *GetPersonalAccessTokenAndPermissionResponseData\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) GetData() (v *GetPersonalAccessTokenAndPermissionResponseData) {\n\tif !p.IsSetData() {\n\t\treturn GetPersonalAccessTokenAndPermissionResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_GetPersonalAccessTokenAndPermissionResponse = map[int16]string{\n\t1: \"data\",\n\t2: \"code\",\n\t3: \"msg\",\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPersonalAccessTokenAndPermissionResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPersonalAccessTokenAndPermissionResponse[fieldId]))\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetPersonalAccessTokenAndPermissionResponseData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPersonalAccessTokenAndPermissionResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *GetPersonalAccessTokenAndPermissionResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPersonalAccessTokenAndPermissionResponse(%+v)\", *p)\n\n}\n\ntype UpdatePersonalAccessTokenAndPermissionRequest struct {\n\t// PAT Id\n\tID int64 `thrift:\"id,1,required\" form:\"id,required\" json:\"id,string,required\" query:\"id,required\"`\n\t// PAT name\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n}\n\nfunc NewUpdatePersonalAccessTokenAndPermissionRequest() *UpdatePersonalAccessTokenAndPermissionRequest {\n\treturn &UpdatePersonalAccessTokenAndPermissionRequest{}\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionRequest) InitDefault() {\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionRequest) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nvar fieldIDToName_UpdatePersonalAccessTokenAndPermissionRequest = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdatePersonalAccessTokenAndPermissionRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdatePersonalAccessTokenAndPermissionRequest[fieldId]))\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *UpdatePersonalAccessTokenAndPermissionRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePersonalAccessTokenAndPermissionRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdatePersonalAccessTokenAndPermissionRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdatePersonalAccessTokenAndPermissionRequest(%+v)\", *p)\n\n}\n\ntype UpdatePersonalAccessTokenAndPermissionResponse struct {\n\tCode int32  `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg  string `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n}\n\nfunc NewUpdatePersonalAccessTokenAndPermissionResponse() *UpdatePersonalAccessTokenAndPermissionResponse {\n\treturn &UpdatePersonalAccessTokenAndPermissionResponse{}\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionResponse) InitDefault() {\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar fieldIDToName_UpdatePersonalAccessTokenAndPermissionResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdatePersonalAccessTokenAndPermissionResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdatePersonalAccessTokenAndPermissionResponse[fieldId]))\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdatePersonalAccessTokenAndPermissionResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePersonalAccessTokenAndPermissionResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdatePersonalAccessTokenAndPermissionResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UpdatePersonalAccessTokenAndPermissionResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdatePersonalAccessTokenAndPermissionResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/permission/openapiauth/openapiauth_service.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage openapiauth\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype OpenAPIAuthService interface {\n\tGetPersonalAccessTokenAndPermission(ctx context.Context, req *GetPersonalAccessTokenAndPermissionRequest) (r *GetPersonalAccessTokenAndPermissionResponse, err error)\n\n\tDeletePersonalAccessTokenAndPermission(ctx context.Context, req *DeletePersonalAccessTokenAndPermissionRequest) (r *DeletePersonalAccessTokenAndPermissionResponse, err error)\n\n\tListPersonalAccessTokens(ctx context.Context, req *ListPersonalAccessTokensRequest) (r *ListPersonalAccessTokensResponse, err error)\n\n\tCreatePersonalAccessTokenAndPermission(ctx context.Context, req *CreatePersonalAccessTokenAndPermissionRequest) (r *CreatePersonalAccessTokenAndPermissionResponse, err error)\n\n\tUpdatePersonalAccessTokenAndPermission(ctx context.Context, req *UpdatePersonalAccessTokenAndPermissionRequest) (r *UpdatePersonalAccessTokenAndPermissionResponse, err error)\n}\n\ntype OpenAPIAuthServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewOpenAPIAuthServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *OpenAPIAuthServiceClient {\n\treturn &OpenAPIAuthServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewOpenAPIAuthServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *OpenAPIAuthServiceClient {\n\treturn &OpenAPIAuthServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewOpenAPIAuthServiceClient(c thrift.TClient) *OpenAPIAuthServiceClient {\n\treturn &OpenAPIAuthServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *OpenAPIAuthServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *OpenAPIAuthServiceClient) GetPersonalAccessTokenAndPermission(ctx context.Context, req *GetPersonalAccessTokenAndPermissionRequest) (r *GetPersonalAccessTokenAndPermissionResponse, err error) {\n\tvar _args OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs\n\t_args.Req = req\n\tvar _result OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult\n\tif err = p.Client_().Call(ctx, \"GetPersonalAccessTokenAndPermission\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *OpenAPIAuthServiceClient) DeletePersonalAccessTokenAndPermission(ctx context.Context, req *DeletePersonalAccessTokenAndPermissionRequest) (r *DeletePersonalAccessTokenAndPermissionResponse, err error) {\n\tvar _args OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs\n\t_args.Req = req\n\tvar _result OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult\n\tif err = p.Client_().Call(ctx, \"DeletePersonalAccessTokenAndPermission\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *OpenAPIAuthServiceClient) ListPersonalAccessTokens(ctx context.Context, req *ListPersonalAccessTokensRequest) (r *ListPersonalAccessTokensResponse, err error) {\n\tvar _args OpenAPIAuthServiceListPersonalAccessTokensArgs\n\t_args.Req = req\n\tvar _result OpenAPIAuthServiceListPersonalAccessTokensResult\n\tif err = p.Client_().Call(ctx, \"ListPersonalAccessTokens\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *OpenAPIAuthServiceClient) CreatePersonalAccessTokenAndPermission(ctx context.Context, req *CreatePersonalAccessTokenAndPermissionRequest) (r *CreatePersonalAccessTokenAndPermissionResponse, err error) {\n\tvar _args OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs\n\t_args.Req = req\n\tvar _result OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult\n\tif err = p.Client_().Call(ctx, \"CreatePersonalAccessTokenAndPermission\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *OpenAPIAuthServiceClient) UpdatePersonalAccessTokenAndPermission(ctx context.Context, req *UpdatePersonalAccessTokenAndPermissionRequest) (r *UpdatePersonalAccessTokenAndPermissionResponse, err error) {\n\tvar _args OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs\n\t_args.Req = req\n\tvar _result OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult\n\tif err = p.Client_().Call(ctx, \"UpdatePersonalAccessTokenAndPermission\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype OpenAPIAuthServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      OpenAPIAuthService\n}\n\nfunc (p *OpenAPIAuthServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *OpenAPIAuthServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *OpenAPIAuthServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewOpenAPIAuthServiceProcessor(handler OpenAPIAuthService) *OpenAPIAuthServiceProcessor {\n\tself := &OpenAPIAuthServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"GetPersonalAccessTokenAndPermission\", &openAPIAuthServiceProcessorGetPersonalAccessTokenAndPermission{handler: handler})\n\tself.AddToProcessorMap(\"DeletePersonalAccessTokenAndPermission\", &openAPIAuthServiceProcessorDeletePersonalAccessTokenAndPermission{handler: handler})\n\tself.AddToProcessorMap(\"ListPersonalAccessTokens\", &openAPIAuthServiceProcessorListPersonalAccessTokens{handler: handler})\n\tself.AddToProcessorMap(\"CreatePersonalAccessTokenAndPermission\", &openAPIAuthServiceProcessorCreatePersonalAccessTokenAndPermission{handler: handler})\n\tself.AddToProcessorMap(\"UpdatePersonalAccessTokenAndPermission\", &openAPIAuthServiceProcessorUpdatePersonalAccessTokenAndPermission{handler: handler})\n\treturn self\n}\nfunc (p *OpenAPIAuthServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype openAPIAuthServiceProcessorGetPersonalAccessTokenAndPermission struct {\n\thandler OpenAPIAuthService\n}\n\nfunc (p *openAPIAuthServiceProcessorGetPersonalAccessTokenAndPermission) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetPersonalAccessTokenAndPermission\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult{}\n\tvar retval *GetPersonalAccessTokenAndPermissionResponse\n\tif retval, err2 = p.handler.GetPersonalAccessTokenAndPermission(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetPersonalAccessTokenAndPermission: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetPersonalAccessTokenAndPermission\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetPersonalAccessTokenAndPermission\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype openAPIAuthServiceProcessorDeletePersonalAccessTokenAndPermission struct {\n\thandler OpenAPIAuthService\n}\n\nfunc (p *openAPIAuthServiceProcessorDeletePersonalAccessTokenAndPermission) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeletePersonalAccessTokenAndPermission\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult{}\n\tvar retval *DeletePersonalAccessTokenAndPermissionResponse\n\tif retval, err2 = p.handler.DeletePersonalAccessTokenAndPermission(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeletePersonalAccessTokenAndPermission: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeletePersonalAccessTokenAndPermission\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeletePersonalAccessTokenAndPermission\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype openAPIAuthServiceProcessorListPersonalAccessTokens struct {\n\thandler OpenAPIAuthService\n}\n\nfunc (p *openAPIAuthServiceProcessorListPersonalAccessTokens) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := OpenAPIAuthServiceListPersonalAccessTokensArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListPersonalAccessTokens\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := OpenAPIAuthServiceListPersonalAccessTokensResult{}\n\tvar retval *ListPersonalAccessTokensResponse\n\tif retval, err2 = p.handler.ListPersonalAccessTokens(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListPersonalAccessTokens: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListPersonalAccessTokens\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListPersonalAccessTokens\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype openAPIAuthServiceProcessorCreatePersonalAccessTokenAndPermission struct {\n\thandler OpenAPIAuthService\n}\n\nfunc (p *openAPIAuthServiceProcessorCreatePersonalAccessTokenAndPermission) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreatePersonalAccessTokenAndPermission\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult{}\n\tvar retval *CreatePersonalAccessTokenAndPermissionResponse\n\tif retval, err2 = p.handler.CreatePersonalAccessTokenAndPermission(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreatePersonalAccessTokenAndPermission: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreatePersonalAccessTokenAndPermission\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreatePersonalAccessTokenAndPermission\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype openAPIAuthServiceProcessorUpdatePersonalAccessTokenAndPermission struct {\n\thandler OpenAPIAuthService\n}\n\nfunc (p *openAPIAuthServiceProcessorUpdatePersonalAccessTokenAndPermission) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdatePersonalAccessTokenAndPermission\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult{}\n\tvar retval *UpdatePersonalAccessTokenAndPermissionResponse\n\tif retval, err2 = p.handler.UpdatePersonalAccessTokenAndPermission(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdatePersonalAccessTokenAndPermission: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdatePersonalAccessTokenAndPermission\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdatePersonalAccessTokenAndPermission\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs struct {\n\tReq *GetPersonalAccessTokenAndPermissionRequest `thrift:\"req,1\"`\n}\n\nfunc NewOpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs() *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs {\n\treturn &OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs{}\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs) InitDefault() {\n}\n\nvar OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs_Req_DEFAULT *GetPersonalAccessTokenAndPermissionRequest\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs) GetReq() (v *GetPersonalAccessTokenAndPermissionRequest) {\n\tif !p.IsSetReq() {\n\t\treturn OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetPersonalAccessTokenAndPermissionRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPersonalAccessTokenAndPermission_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionArgs(%+v)\", *p)\n\n}\n\ntype OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult struct {\n\tSuccess *GetPersonalAccessTokenAndPermissionResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewOpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult() *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult {\n\treturn &OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult{}\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult) InitDefault() {\n}\n\nvar OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult_Success_DEFAULT *GetPersonalAccessTokenAndPermissionResponse\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult) GetSuccess() (v *GetPersonalAccessTokenAndPermissionResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetPersonalAccessTokenAndPermissionResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPersonalAccessTokenAndPermission_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIAuthServiceGetPersonalAccessTokenAndPermissionResult(%+v)\", *p)\n\n}\n\ntype OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs struct {\n\tReq *DeletePersonalAccessTokenAndPermissionRequest `thrift:\"req,1\"`\n}\n\nfunc NewOpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs() *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs {\n\treturn &OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs{}\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs) InitDefault() {\n}\n\nvar OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs_Req_DEFAULT *DeletePersonalAccessTokenAndPermissionRequest\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs) GetReq() (v *DeletePersonalAccessTokenAndPermissionRequest) {\n\tif !p.IsSetReq() {\n\t\treturn OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeletePersonalAccessTokenAndPermissionRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeletePersonalAccessTokenAndPermission_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionArgs(%+v)\", *p)\n\n}\n\ntype OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult struct {\n\tSuccess *DeletePersonalAccessTokenAndPermissionResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewOpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult() *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult {\n\treturn &OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult{}\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult) InitDefault() {\n}\n\nvar OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult_Success_DEFAULT *DeletePersonalAccessTokenAndPermissionResponse\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult) GetSuccess() (v *DeletePersonalAccessTokenAndPermissionResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeletePersonalAccessTokenAndPermissionResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeletePersonalAccessTokenAndPermission_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIAuthServiceDeletePersonalAccessTokenAndPermissionResult(%+v)\", *p)\n\n}\n\ntype OpenAPIAuthServiceListPersonalAccessTokensArgs struct {\n\tReq *ListPersonalAccessTokensRequest `thrift:\"req,1\"`\n}\n\nfunc NewOpenAPIAuthServiceListPersonalAccessTokensArgs() *OpenAPIAuthServiceListPersonalAccessTokensArgs {\n\treturn &OpenAPIAuthServiceListPersonalAccessTokensArgs{}\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensArgs) InitDefault() {\n}\n\nvar OpenAPIAuthServiceListPersonalAccessTokensArgs_Req_DEFAULT *ListPersonalAccessTokensRequest\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensArgs) GetReq() (v *ListPersonalAccessTokensRequest) {\n\tif !p.IsSetReq() {\n\t\treturn OpenAPIAuthServiceListPersonalAccessTokensArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_OpenAPIAuthServiceListPersonalAccessTokensArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIAuthServiceListPersonalAccessTokensArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListPersonalAccessTokensRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPersonalAccessTokens_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIAuthServiceListPersonalAccessTokensArgs(%+v)\", *p)\n\n}\n\ntype OpenAPIAuthServiceListPersonalAccessTokensResult struct {\n\tSuccess *ListPersonalAccessTokensResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewOpenAPIAuthServiceListPersonalAccessTokensResult() *OpenAPIAuthServiceListPersonalAccessTokensResult {\n\treturn &OpenAPIAuthServiceListPersonalAccessTokensResult{}\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensResult) InitDefault() {\n}\n\nvar OpenAPIAuthServiceListPersonalAccessTokensResult_Success_DEFAULT *ListPersonalAccessTokensResponse\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensResult) GetSuccess() (v *ListPersonalAccessTokensResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn OpenAPIAuthServiceListPersonalAccessTokensResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_OpenAPIAuthServiceListPersonalAccessTokensResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIAuthServiceListPersonalAccessTokensResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListPersonalAccessTokensResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPersonalAccessTokens_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceListPersonalAccessTokensResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIAuthServiceListPersonalAccessTokensResult(%+v)\", *p)\n\n}\n\ntype OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs struct {\n\tReq *CreatePersonalAccessTokenAndPermissionRequest `thrift:\"req,1\"`\n}\n\nfunc NewOpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs() *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs {\n\treturn &OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs{}\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs) InitDefault() {\n}\n\nvar OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs_Req_DEFAULT *CreatePersonalAccessTokenAndPermissionRequest\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs) GetReq() (v *CreatePersonalAccessTokenAndPermissionRequest) {\n\tif !p.IsSetReq() {\n\t\treturn OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreatePersonalAccessTokenAndPermissionRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreatePersonalAccessTokenAndPermission_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionArgs(%+v)\", *p)\n\n}\n\ntype OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult struct {\n\tSuccess *CreatePersonalAccessTokenAndPermissionResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewOpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult() *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult {\n\treturn &OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult{}\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult) InitDefault() {\n}\n\nvar OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult_Success_DEFAULT *CreatePersonalAccessTokenAndPermissionResponse\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult) GetSuccess() (v *CreatePersonalAccessTokenAndPermissionResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreatePersonalAccessTokenAndPermissionResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreatePersonalAccessTokenAndPermission_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIAuthServiceCreatePersonalAccessTokenAndPermissionResult(%+v)\", *p)\n\n}\n\ntype OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs struct {\n\tReq *UpdatePersonalAccessTokenAndPermissionRequest `thrift:\"req,1\"`\n}\n\nfunc NewOpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs() *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs {\n\treturn &OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs{}\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs) InitDefault() {\n}\n\nvar OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs_Req_DEFAULT *UpdatePersonalAccessTokenAndPermissionRequest\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs) GetReq() (v *UpdatePersonalAccessTokenAndPermissionRequest) {\n\tif !p.IsSetReq() {\n\t\treturn OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdatePersonalAccessTokenAndPermissionRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePersonalAccessTokenAndPermission_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionArgs(%+v)\", *p)\n\n}\n\ntype OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult struct {\n\tSuccess *UpdatePersonalAccessTokenAndPermissionResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewOpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult() *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult {\n\treturn &OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult{}\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult) InitDefault() {\n}\n\nvar OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult_Success_DEFAULT *UpdatePersonalAccessTokenAndPermissionResponse\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult) GetSuccess() (v *UpdatePersonalAccessTokenAndPermissionResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdatePersonalAccessTokenAndPermissionResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePersonalAccessTokenAndPermission_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIAuthServiceUpdatePersonalAccessTokenAndPermissionResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/playground/playground.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage playground\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\n// branch\ntype Branch int64\n\nconst (\n\tBranch_Undefined Branch = 0\n\t// draft\n\tBranch_PersonalDraft Branch = 1\n\t// Space draft\n\tBranch_Base Branch = 2\n\t// Online version, used in diff scenarios\n\tBranch_Publish Branch = 3\n)\n\nfunc (p Branch) String() string {\n\tswitch p {\n\tcase Branch_Undefined:\n\t\treturn \"Undefined\"\n\tcase Branch_PersonalDraft:\n\t\treturn \"PersonalDraft\"\n\tcase Branch_Base:\n\t\treturn \"Base\"\n\tcase Branch_Publish:\n\t\treturn \"Publish\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BranchFromString(s string) (Branch, error) {\n\tswitch s {\n\tcase \"Undefined\":\n\t\treturn Branch_Undefined, nil\n\tcase \"PersonalDraft\":\n\t\treturn Branch_PersonalDraft, nil\n\tcase \"Base\":\n\t\treturn Branch_Base, nil\n\tcase \"Publish\":\n\t\treturn Branch_Publish, nil\n\t}\n\treturn Branch(0), fmt.Errorf(\"not a valid Branch string\")\n}\n\nfunc BranchPtr(v Branch) *Branch { return &v }\nfunc (p *Branch) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = Branch(result.Int64)\n\treturn\n}\n\nfunc (p *Branch) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DataSetType int64\n\nconst (\n\t// Text\n\tDataSetType_Text DataSetType = 0\n\t// table\n\tDataSetType_Table DataSetType = 1\n\t// image\n\tDataSetType_Image DataSetType = 2\n)\n\nfunc (p DataSetType) String() string {\n\tswitch p {\n\tcase DataSetType_Text:\n\t\treturn \"Text\"\n\tcase DataSetType_Table:\n\t\treturn \"Table\"\n\tcase DataSetType_Image:\n\t\treturn \"Image\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DataSetTypeFromString(s string) (DataSetType, error) {\n\tswitch s {\n\tcase \"Text\":\n\t\treturn DataSetType_Text, nil\n\tcase \"Table\":\n\t\treturn DataSetType_Table, nil\n\tcase \"Image\":\n\t\treturn DataSetType_Image, nil\n\t}\n\treturn DataSetType(0), fmt.Errorf(\"not a valid DataSetType string\")\n}\n\nfunc DataSetTypePtr(v DataSetType) *DataSetType { return &v }\nfunc (p *DataSetType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DataSetType(result.Int64)\n\treturn\n}\n\nfunc (p *DataSetType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BotMarketStatus int64\n\nconst (\n\t// offline\n\tBotMarketStatus_Offline BotMarketStatus = 0\n\t// put on the shelves\n\tBotMarketStatus_Online BotMarketStatus = 1\n)\n\nfunc (p BotMarketStatus) String() string {\n\tswitch p {\n\tcase BotMarketStatus_Offline:\n\t\treturn \"Offline\"\n\tcase BotMarketStatus_Online:\n\t\treturn \"Online\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotMarketStatusFromString(s string) (BotMarketStatus, error) {\n\tswitch s {\n\tcase \"Offline\":\n\t\treturn BotMarketStatus_Offline, nil\n\tcase \"Online\":\n\t\treturn BotMarketStatus_Online, nil\n\t}\n\treturn BotMarketStatus(0), fmt.Errorf(\"not a valid BotMarketStatus string\")\n}\n\nfunc BotMarketStatusPtr(v BotMarketStatus) *BotMarketStatus { return &v }\nfunc (p *BotMarketStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotMarketStatus(result.Int64)\n\treturn\n}\n\nfunc (p *BotMarketStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ConnectorDynamicStatus int64\n\nconst (\n\tConnectorDynamicStatus_Normal          ConnectorDynamicStatus = 0\n\tConnectorDynamicStatus_Offline         ConnectorDynamicStatus = 1\n\tConnectorDynamicStatus_TokenDisconnect ConnectorDynamicStatus = 2\n)\n\nfunc (p ConnectorDynamicStatus) String() string {\n\tswitch p {\n\tcase ConnectorDynamicStatus_Normal:\n\t\treturn \"Normal\"\n\tcase ConnectorDynamicStatus_Offline:\n\t\treturn \"Offline\"\n\tcase ConnectorDynamicStatus_TokenDisconnect:\n\t\treturn \"TokenDisconnect\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ConnectorDynamicStatusFromString(s string) (ConnectorDynamicStatus, error) {\n\tswitch s {\n\tcase \"Normal\":\n\t\treturn ConnectorDynamicStatus_Normal, nil\n\tcase \"Offline\":\n\t\treturn ConnectorDynamicStatus_Offline, nil\n\tcase \"TokenDisconnect\":\n\t\treturn ConnectorDynamicStatus_TokenDisconnect, nil\n\t}\n\treturn ConnectorDynamicStatus(0), fmt.Errorf(\"not a valid ConnectorDynamicStatus string\")\n}\n\nfunc ConnectorDynamicStatusPtr(v ConnectorDynamicStatus) *ConnectorDynamicStatus { return &v }\nfunc (p *ConnectorDynamicStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ConnectorDynamicStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ConnectorDynamicStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype AuditStatus int64\n\nconst (\n\t// Under review.\n\tAuditStatus_Auditing AuditStatus = 0\n\t// approved\n\tAuditStatus_Success AuditStatus = 1\n\t// audit failed\n\tAuditStatus_Failed AuditStatus = 2\n)\n\nfunc (p AuditStatus) String() string {\n\tswitch p {\n\tcase AuditStatus_Auditing:\n\t\treturn \"Auditing\"\n\tcase AuditStatus_Success:\n\t\treturn \"Success\"\n\tcase AuditStatus_Failed:\n\t\treturn \"Failed\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AuditStatusFromString(s string) (AuditStatus, error) {\n\tswitch s {\n\tcase \"Auditing\":\n\t\treturn AuditStatus_Auditing, nil\n\tcase \"Success\":\n\t\treturn AuditStatus_Success, nil\n\tcase \"Failed\":\n\t\treturn AuditStatus_Failed, nil\n\t}\n\treturn AuditStatus(0), fmt.Errorf(\"not a valid AuditStatus string\")\n}\n\nfunc AuditStatusPtr(v AuditStatus) *AuditStatus { return &v }\nfunc (p *AuditStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AuditStatus(result.Int64)\n\treturn\n}\n\nfunc (p *AuditStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ScopeType int64\n\nconst (\n\t// All under the enterprise (effective under the enterprise)\n\tScopeType_All ScopeType = 0\n\t// I joined (both companies and individuals are valid, no default self is passed on)\n\tScopeType_Self ScopeType = 1\n)\n\nfunc (p ScopeType) String() string {\n\tswitch p {\n\tcase ScopeType_All:\n\t\treturn \"All\"\n\tcase ScopeType_Self:\n\t\treturn \"Self\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ScopeTypeFromString(s string) (ScopeType, error) {\n\tswitch s {\n\tcase \"All\":\n\t\treturn ScopeType_All, nil\n\tcase \"Self\":\n\t\treturn ScopeType_Self, nil\n\t}\n\treturn ScopeType(0), fmt.Errorf(\"not a valid ScopeType string\")\n}\n\nfunc ScopeTypePtr(v ScopeType) *ScopeType { return &v }\nfunc (p *ScopeType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ScopeType(result.Int64)\n\treturn\n}\n\nfunc (p *ScopeType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SpaceType int64\n\nconst (\n\t// individual\n\tSpaceType_Personal SpaceType = 1\n\t// group\n\tSpaceType_Team SpaceType = 2\n)\n\nfunc (p SpaceType) String() string {\n\tswitch p {\n\tcase SpaceType_Personal:\n\t\treturn \"Personal\"\n\tcase SpaceType_Team:\n\t\treturn \"Team\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SpaceTypeFromString(s string) (SpaceType, error) {\n\tswitch s {\n\tcase \"Personal\":\n\t\treturn SpaceType_Personal, nil\n\tcase \"Team\":\n\t\treturn SpaceType_Team, nil\n\t}\n\treturn SpaceType(0), fmt.Errorf(\"not a valid SpaceType string\")\n}\n\nfunc SpaceTypePtr(v SpaceType) *SpaceType { return &v }\nfunc (p *SpaceType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SpaceType(result.Int64)\n\treturn\n}\n\nfunc (p *SpaceType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SpaceMode int64\n\nconst (\n\tSpaceMode_Normal  SpaceMode = 0\n\tSpaceMode_DevMode SpaceMode = 1\n)\n\nfunc (p SpaceMode) String() string {\n\tswitch p {\n\tcase SpaceMode_Normal:\n\t\treturn \"Normal\"\n\tcase SpaceMode_DevMode:\n\t\treturn \"DevMode\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SpaceModeFromString(s string) (SpaceMode, error) {\n\tswitch s {\n\tcase \"Normal\":\n\t\treturn SpaceMode_Normal, nil\n\tcase \"DevMode\":\n\t\treturn SpaceMode_DevMode, nil\n\t}\n\treturn SpaceMode(0), fmt.Errorf(\"not a valid SpaceMode string\")\n}\n\nfunc SpaceModePtr(v SpaceMode) *SpaceMode { return &v }\nfunc (p *SpaceMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SpaceMode(result.Int64)\n\treturn\n}\n\nfunc (p *SpaceMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SpaceTag int64\n\nconst (\n\t// Professional Edition\n\tSpaceTag_Professional SpaceTag = 1\n)\n\nfunc (p SpaceTag) String() string {\n\tswitch p {\n\tcase SpaceTag_Professional:\n\t\treturn \"Professional\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SpaceTagFromString(s string) (SpaceTag, error) {\n\tswitch s {\n\tcase \"Professional\":\n\t\treturn SpaceTag_Professional, nil\n\t}\n\treturn SpaceTag(0), fmt.Errorf(\"not a valid SpaceTag string\")\n}\n\nfunc SpaceTagPtr(v SpaceTag) *SpaceTag { return &v }\nfunc (p *SpaceTag) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SpaceTag(result.Int64)\n\treturn\n}\n\nfunc (p *SpaceTag) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SpaceRoleType int64\n\nconst (\n\t// default\n\tSpaceRoleType_Default SpaceRoleType = 0\n\t// owner\n\tSpaceRoleType_Owner SpaceRoleType = 1\n\t// administrator\n\tSpaceRoleType_Admin SpaceRoleType = 2\n\t// ordinary member\n\tSpaceRoleType_Member SpaceRoleType = 3\n)\n\nfunc (p SpaceRoleType) String() string {\n\tswitch p {\n\tcase SpaceRoleType_Default:\n\t\treturn \"Default\"\n\tcase SpaceRoleType_Owner:\n\t\treturn \"Owner\"\n\tcase SpaceRoleType_Admin:\n\t\treturn \"Admin\"\n\tcase SpaceRoleType_Member:\n\t\treturn \"Member\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SpaceRoleTypeFromString(s string) (SpaceRoleType, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn SpaceRoleType_Default, nil\n\tcase \"Owner\":\n\t\treturn SpaceRoleType_Owner, nil\n\tcase \"Admin\":\n\t\treturn SpaceRoleType_Admin, nil\n\tcase \"Member\":\n\t\treturn SpaceRoleType_Member, nil\n\t}\n\treturn SpaceRoleType(0), fmt.Errorf(\"not a valid SpaceRoleType string\")\n}\n\nfunc SpaceRoleTypePtr(v SpaceRoleType) *SpaceRoleType { return &v }\nfunc (p *SpaceRoleType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SpaceRoleType(result.Int64)\n\treturn\n}\n\nfunc (p *SpaceRoleType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Application management list\ntype SpaceApplyStatus int64\n\nconst (\n\t// all\n\tSpaceApplyStatus_All SpaceApplyStatus = 0\n\t// Joined\n\tSpaceApplyStatus_Joined SpaceApplyStatus = 1\n\t// Confirming\n\tSpaceApplyStatus_Confirming SpaceApplyStatus = 2\n\t// Rejected\n\tSpaceApplyStatus_Rejected SpaceApplyStatus = 3\n)\n\nfunc (p SpaceApplyStatus) String() string {\n\tswitch p {\n\tcase SpaceApplyStatus_All:\n\t\treturn \"All\"\n\tcase SpaceApplyStatus_Joined:\n\t\treturn \"Joined\"\n\tcase SpaceApplyStatus_Confirming:\n\t\treturn \"Confirming\"\n\tcase SpaceApplyStatus_Rejected:\n\t\treturn \"Rejected\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SpaceApplyStatusFromString(s string) (SpaceApplyStatus, error) {\n\tswitch s {\n\tcase \"All\":\n\t\treturn SpaceApplyStatus_All, nil\n\tcase \"Joined\":\n\t\treturn SpaceApplyStatus_Joined, nil\n\tcase \"Confirming\":\n\t\treturn SpaceApplyStatus_Confirming, nil\n\tcase \"Rejected\":\n\t\treturn SpaceApplyStatus_Rejected, nil\n\t}\n\treturn SpaceApplyStatus(0), fmt.Errorf(\"not a valid SpaceApplyStatus string\")\n}\n\nfunc SpaceApplyStatusPtr(v SpaceApplyStatus) *SpaceApplyStatus { return &v }\nfunc (p *SpaceApplyStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SpaceApplyStatus(result.Int64)\n\treturn\n}\n\nfunc (p *SpaceApplyStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype GetImageScene int64\n\nconst (\n\tGetImageScene_Onboarding      GetImageScene = 0\n\tGetImageScene_BackgroundImage GetImageScene = 1\n)\n\nfunc (p GetImageScene) String() string {\n\tswitch p {\n\tcase GetImageScene_Onboarding:\n\t\treturn \"Onboarding\"\n\tcase GetImageScene_BackgroundImage:\n\t\treturn \"BackgroundImage\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc GetImageSceneFromString(s string) (GetImageScene, error) {\n\tswitch s {\n\tcase \"Onboarding\":\n\t\treturn GetImageScene_Onboarding, nil\n\tcase \"BackgroundImage\":\n\t\treturn GetImageScene_BackgroundImage, nil\n\t}\n\treturn GetImageScene(0), fmt.Errorf(\"not a valid GetImageScene string\")\n}\n\nfunc GetImageScenePtr(v GetImageScene) *GetImageScene { return &v }\nfunc (p *GetImageScene) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = GetImageScene(result.Int64)\n\treturn\n}\n\nfunc (p *GetImageScene) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BotPopupType int64\n\nconst (\n\tBotPopupType_AutoGenBeforePublish BotPopupType = 1\n)\n\nfunc (p BotPopupType) String() string {\n\tswitch p {\n\tcase BotPopupType_AutoGenBeforePublish:\n\t\treturn \"AutoGenBeforePublish\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BotPopupTypeFromString(s string) (BotPopupType, error) {\n\tswitch s {\n\tcase \"AutoGenBeforePublish\":\n\t\treturn BotPopupType_AutoGenBeforePublish, nil\n\t}\n\treturn BotPopupType(0), fmt.Errorf(\"not a valid BotPopupType string\")\n}\n\nfunc BotPopupTypePtr(v BotPopupType) *BotPopupType { return &v }\nfunc (p *BotPopupType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BotPopupType(result.Int64)\n\treturn\n}\n\nfunc (p *BotPopupType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SpaceResourceType int64\n\nconst (\n\tSpaceResourceType_DraftBot        SpaceResourceType = 1\n\tSpaceResourceType_Project         SpaceResourceType = 2\n\tSpaceResourceType_Space           SpaceResourceType = 3\n\tSpaceResourceType_DouyinAvatarBot SpaceResourceType = 4\n)\n\nfunc (p SpaceResourceType) String() string {\n\tswitch p {\n\tcase SpaceResourceType_DraftBot:\n\t\treturn \"DraftBot\"\n\tcase SpaceResourceType_Project:\n\t\treturn \"Project\"\n\tcase SpaceResourceType_Space:\n\t\treturn \"Space\"\n\tcase SpaceResourceType_DouyinAvatarBot:\n\t\treturn \"DouyinAvatarBot\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SpaceResourceTypeFromString(s string) (SpaceResourceType, error) {\n\tswitch s {\n\tcase \"DraftBot\":\n\t\treturn SpaceResourceType_DraftBot, nil\n\tcase \"Project\":\n\t\treturn SpaceResourceType_Project, nil\n\tcase \"Space\":\n\t\treturn SpaceResourceType_Space, nil\n\tcase \"DouyinAvatarBot\":\n\t\treturn SpaceResourceType_DouyinAvatarBot, nil\n\t}\n\treturn SpaceResourceType(0), fmt.Errorf(\"not a valid SpaceResourceType string\")\n}\n\nfunc SpaceResourceTypePtr(v SpaceResourceType) *SpaceResourceType { return &v }\nfunc (p *SpaceResourceType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SpaceResourceType(result.Int64)\n\treturn\n}\n\nfunc (p *SpaceResourceType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BehaviorType int64\n\nconst (\n\tBehaviorType_Visit BehaviorType = 1\n\tBehaviorType_Edit  BehaviorType = 2\n)\n\nfunc (p BehaviorType) String() string {\n\tswitch p {\n\tcase BehaviorType_Visit:\n\t\treturn \"Visit\"\n\tcase BehaviorType_Edit:\n\t\treturn \"Edit\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BehaviorTypeFromString(s string) (BehaviorType, error) {\n\tswitch s {\n\tcase \"Visit\":\n\t\treturn BehaviorType_Visit, nil\n\tcase \"Edit\":\n\t\treturn BehaviorType_Edit, nil\n\t}\n\treturn BehaviorType(0), fmt.Errorf(\"not a valid BehaviorType string\")\n}\n\nfunc BehaviorTypePtr(v BehaviorType) *BehaviorType { return &v }\nfunc (p *BehaviorType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BehaviorType(result.Int64)\n\treturn\n}\n\nfunc (p *BehaviorType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype GetFileUrlsScene int64\n\nconst (\n\tGetFileUrlsScene_shorcutIcon GetFileUrlsScene = 1\n)\n\nfunc (p GetFileUrlsScene) String() string {\n\tswitch p {\n\tcase GetFileUrlsScene_shorcutIcon:\n\t\treturn \"shorcutIcon\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc GetFileUrlsSceneFromString(s string) (GetFileUrlsScene, error) {\n\tswitch s {\n\tcase \"shorcutIcon\":\n\t\treturn GetFileUrlsScene_shorcutIcon, nil\n\t}\n\treturn GetFileUrlsScene(0), fmt.Errorf(\"not a valid GetFileUrlsScene string\")\n}\n\nfunc GetFileUrlsScenePtr(v GetFileUrlsScene) *GetFileUrlsScene { return &v }\nfunc (p *GetFileUrlsScene) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = GetFileUrlsScene(result.Int64)\n\treturn\n}\n\nfunc (p *GetFileUrlsScene) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype UpdateDraftBotInfoAgwResponse struct {\n\tData     *UpdateDraftBotInfoAgwData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64                      `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                     `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp             `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewUpdateDraftBotInfoAgwResponse() *UpdateDraftBotInfoAgwResponse {\n\treturn &UpdateDraftBotInfoAgwResponse{}\n}\n\nfunc (p *UpdateDraftBotInfoAgwResponse) InitDefault() {\n}\n\nvar UpdateDraftBotInfoAgwResponse_Data_DEFAULT *UpdateDraftBotInfoAgwData\n\nfunc (p *UpdateDraftBotInfoAgwResponse) GetData() (v *UpdateDraftBotInfoAgwData) {\n\tif !p.IsSetData() {\n\t\treturn UpdateDraftBotInfoAgwResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *UpdateDraftBotInfoAgwResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateDraftBotInfoAgwResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateDraftBotInfoAgwResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateDraftBotInfoAgwResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateDraftBotInfoAgwResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateDraftBotInfoAgwResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateDraftBotInfoAgwResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDraftBotInfoAgwResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateDraftBotInfoAgwResponse[fieldId]))\n}\n\nfunc (p *UpdateDraftBotInfoAgwResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDraftBotInfoAgwData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotInfoAgwResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotInfoAgwResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotInfoAgwResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDraftBotInfoAgwResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotInfoAgwResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotInfoAgwResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotInfoAgwResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotInfoAgwResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotInfoAgwResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDraftBotInfoAgwResponse(%+v)\", *p)\n\n}\n\ntype UpdateDraftBotInfoAgwData struct {\n\t// Is there any change?\n\tHasChange *bool `thrift:\"has_change,1,optional\" form:\"has_change\" json:\"has_change,omitempty\" query:\"has_change\"`\n\t// True: The machine audit verification failed\n\tCheckNotPass bool `thrift:\"check_not_pass,2\" form:\"check_not_pass\" json:\"check_not_pass\" query:\"check_not_pass\"`\n\t// Which branch is it currently on?\n\tBranch         *Branch `thrift:\"branch,3,optional\" form:\"branch\" json:\"branch,omitempty\" query:\"branch\"`\n\tSameWithOnline *bool   `thrift:\"same_with_online,4,optional\" form:\"same_with_online\" json:\"same_with_online,omitempty\" query:\"same_with_online\"`\n\t// The machine audit verification failed the copy.\n\tCheckNotPassMsg *string `thrift:\"check_not_pass_msg,5,optional\" form:\"check_not_pass_msg\" json:\"check_not_pass_msg,omitempty\" query:\"check_not_pass_msg\"`\n}\n\nfunc NewUpdateDraftBotInfoAgwData() *UpdateDraftBotInfoAgwData {\n\treturn &UpdateDraftBotInfoAgwData{}\n}\n\nfunc (p *UpdateDraftBotInfoAgwData) InitDefault() {\n}\n\nvar UpdateDraftBotInfoAgwData_HasChange_DEFAULT bool\n\nfunc (p *UpdateDraftBotInfoAgwData) GetHasChange() (v bool) {\n\tif !p.IsSetHasChange() {\n\t\treturn UpdateDraftBotInfoAgwData_HasChange_DEFAULT\n\t}\n\treturn *p.HasChange\n}\n\nfunc (p *UpdateDraftBotInfoAgwData) GetCheckNotPass() (v bool) {\n\treturn p.CheckNotPass\n}\n\nvar UpdateDraftBotInfoAgwData_Branch_DEFAULT Branch\n\nfunc (p *UpdateDraftBotInfoAgwData) GetBranch() (v Branch) {\n\tif !p.IsSetBranch() {\n\t\treturn UpdateDraftBotInfoAgwData_Branch_DEFAULT\n\t}\n\treturn *p.Branch\n}\n\nvar UpdateDraftBotInfoAgwData_SameWithOnline_DEFAULT bool\n\nfunc (p *UpdateDraftBotInfoAgwData) GetSameWithOnline() (v bool) {\n\tif !p.IsSetSameWithOnline() {\n\t\treturn UpdateDraftBotInfoAgwData_SameWithOnline_DEFAULT\n\t}\n\treturn *p.SameWithOnline\n}\n\nvar UpdateDraftBotInfoAgwData_CheckNotPassMsg_DEFAULT string\n\nfunc (p *UpdateDraftBotInfoAgwData) GetCheckNotPassMsg() (v string) {\n\tif !p.IsSetCheckNotPassMsg() {\n\t\treturn UpdateDraftBotInfoAgwData_CheckNotPassMsg_DEFAULT\n\t}\n\treturn *p.CheckNotPassMsg\n}\n\nvar fieldIDToName_UpdateDraftBotInfoAgwData = map[int16]string{\n\t1: \"has_change\",\n\t2: \"check_not_pass\",\n\t3: \"branch\",\n\t4: \"same_with_online\",\n\t5: \"check_not_pass_msg\",\n}\n\nfunc (p *UpdateDraftBotInfoAgwData) IsSetHasChange() bool {\n\treturn p.HasChange != nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwData) IsSetBranch() bool {\n\treturn p.Branch != nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwData) IsSetSameWithOnline() bool {\n\treturn p.SameWithOnline != nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwData) IsSetCheckNotPassMsg() bool {\n\treturn p.CheckNotPassMsg != nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDraftBotInfoAgwData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotInfoAgwData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HasChange = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotInfoAgwData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CheckNotPass = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotInfoAgwData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *Branch\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := Branch(v)\n\t\t_field = &tmp\n\t}\n\tp.Branch = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotInfoAgwData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SameWithOnline = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotInfoAgwData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CheckNotPassMsg = _field\n\treturn nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDraftBotInfoAgwData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotInfoAgwData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHasChange() {\n\t\tif err = oprot.WriteFieldBegin(\"has_change\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HasChange); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotInfoAgwData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"check_not_pass\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CheckNotPass); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotInfoAgwData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBranch() {\n\t\tif err = oprot.WriteFieldBegin(\"branch\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Branch)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotInfoAgwData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSameWithOnline() {\n\t\tif err = oprot.WriteFieldBegin(\"same_with_online\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SameWithOnline); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotInfoAgwData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCheckNotPassMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"check_not_pass_msg\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CheckNotPassMsg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotInfoAgwData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDraftBotInfoAgwData(%+v)\", *p)\n\n}\n\ntype UpdateDraftBotInfoAgwRequest struct {\n\tBotInfo           *bot_common.BotInfoForUpdate `thrift:\"bot_info,1,optional\" form:\"bot_info\" json:\"bot_info,omitempty\" query:\"bot_info\"`\n\tBaseCommitVersion *int64                       `thrift:\"base_commit_version,2,optional\" form:\"base_commit_version\" json:\"base_commit_version,string,omitempty\" query:\"base_commit_version\"`\n\tBase              *base.Base                   `thrift:\"Base,255\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewUpdateDraftBotInfoAgwRequest() *UpdateDraftBotInfoAgwRequest {\n\treturn &UpdateDraftBotInfoAgwRequest{}\n}\n\nfunc (p *UpdateDraftBotInfoAgwRequest) InitDefault() {\n}\n\nvar UpdateDraftBotInfoAgwRequest_BotInfo_DEFAULT *bot_common.BotInfoForUpdate\n\nfunc (p *UpdateDraftBotInfoAgwRequest) GetBotInfo() (v *bot_common.BotInfoForUpdate) {\n\tif !p.IsSetBotInfo() {\n\t\treturn UpdateDraftBotInfoAgwRequest_BotInfo_DEFAULT\n\t}\n\treturn p.BotInfo\n}\n\nvar UpdateDraftBotInfoAgwRequest_BaseCommitVersion_DEFAULT int64\n\nfunc (p *UpdateDraftBotInfoAgwRequest) GetBaseCommitVersion() (v int64) {\n\tif !p.IsSetBaseCommitVersion() {\n\t\treturn UpdateDraftBotInfoAgwRequest_BaseCommitVersion_DEFAULT\n\t}\n\treturn *p.BaseCommitVersion\n}\n\nvar UpdateDraftBotInfoAgwRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateDraftBotInfoAgwRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateDraftBotInfoAgwRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateDraftBotInfoAgwRequest = map[int16]string{\n\t1:   \"bot_info\",\n\t2:   \"base_commit_version\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateDraftBotInfoAgwRequest) IsSetBotInfo() bool {\n\treturn p.BotInfo != nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwRequest) IsSetBaseCommitVersion() bool {\n\treturn p.BaseCommitVersion != nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateDraftBotInfoAgwRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotInfoAgwRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_field := bot_common.NewBotInfoForUpdate()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotInfo = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotInfoAgwRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BaseCommitVersion = _field\n\treturn nil\n}\nfunc (p *UpdateDraftBotInfoAgwRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateDraftBotInfoAgwRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDraftBotInfoAgwRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotInfoAgwRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_info\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BotInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotInfoAgwRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"base_commit_version\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BaseCommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateDraftBotInfoAgwRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateDraftBotInfoAgwRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateDraftBotInfoAgwRequest(%+v)\", *p)\n\n}\n\ntype GetDraftBotInfoAgwRequest struct {\n\t// Draft bot_id\n\tBotID int64 `thrift:\"bot_id,1,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\t// Check the history, the id of the historical version, corresponding to the id of the bot_draft_history\n\tVersion *string `thrift:\"version,2,optional\" form:\"version\" json:\"version,omitempty\" query:\"version\"`\n\t// Query specifies commit_version version, pre-release use, seems to be the same thing as version, but the acquisition logic is different\n\tCommitVersion *string    `thrift:\"commit_version,3,optional\" form:\"commit_version\" json:\"commit_version,omitempty\" query:\"commit_version\"`\n\tBase          *base.Base `thrift:\"Base,255\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetDraftBotInfoAgwRequest() *GetDraftBotInfoAgwRequest {\n\treturn &GetDraftBotInfoAgwRequest{}\n}\n\nfunc (p *GetDraftBotInfoAgwRequest) InitDefault() {\n}\n\nfunc (p *GetDraftBotInfoAgwRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar GetDraftBotInfoAgwRequest_Version_DEFAULT string\n\nfunc (p *GetDraftBotInfoAgwRequest) GetVersion() (v string) {\n\tif !p.IsSetVersion() {\n\t\treturn GetDraftBotInfoAgwRequest_Version_DEFAULT\n\t}\n\treturn *p.Version\n}\n\nvar GetDraftBotInfoAgwRequest_CommitVersion_DEFAULT string\n\nfunc (p *GetDraftBotInfoAgwRequest) GetCommitVersion() (v string) {\n\tif !p.IsSetCommitVersion() {\n\t\treturn GetDraftBotInfoAgwRequest_CommitVersion_DEFAULT\n\t}\n\treturn *p.CommitVersion\n}\n\nvar GetDraftBotInfoAgwRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetDraftBotInfoAgwRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetDraftBotInfoAgwRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetDraftBotInfoAgwRequest = map[int16]string{\n\t1:   \"bot_id\",\n\t2:   \"version\",\n\t3:   \"commit_version\",\n\t255: \"Base\",\n}\n\nfunc (p *GetDraftBotInfoAgwRequest) IsSetVersion() bool {\n\treturn p.Version != nil\n}\n\nfunc (p *GetDraftBotInfoAgwRequest) IsSetCommitVersion() bool {\n\treturn p.CommitVersion != nil\n}\n\nfunc (p *GetDraftBotInfoAgwRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetDraftBotInfoAgwRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDraftBotInfoAgwRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDraftBotInfoAgwRequest[fieldId]))\n}\n\nfunc (p *GetDraftBotInfoAgwRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitVersion = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetDraftBotInfoAgwRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftBotInfoAgwRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDraftBotInfoAgwRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Version); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_version\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDraftBotInfoAgwRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDraftBotInfoAgwRequest(%+v)\", *p)\n\n}\n\ntype GetDraftBotInfoAgwResponse struct {\n\tData     *GetDraftBotInfoAgwData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64                   `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                  `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp          `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetDraftBotInfoAgwResponse() *GetDraftBotInfoAgwResponse {\n\treturn &GetDraftBotInfoAgwResponse{}\n}\n\nfunc (p *GetDraftBotInfoAgwResponse) InitDefault() {\n}\n\nvar GetDraftBotInfoAgwResponse_Data_DEFAULT *GetDraftBotInfoAgwData\n\nfunc (p *GetDraftBotInfoAgwResponse) GetData() (v *GetDraftBotInfoAgwData) {\n\tif !p.IsSetData() {\n\t\treturn GetDraftBotInfoAgwResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetDraftBotInfoAgwResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetDraftBotInfoAgwResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetDraftBotInfoAgwResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetDraftBotInfoAgwResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetDraftBotInfoAgwResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetDraftBotInfoAgwResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetDraftBotInfoAgwResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetDraftBotInfoAgwResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetDraftBotInfoAgwResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDraftBotInfoAgwResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDraftBotInfoAgwResponse[fieldId]))\n}\n\nfunc (p *GetDraftBotInfoAgwResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDraftBotInfoAgwData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetDraftBotInfoAgwResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftBotInfoAgwResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDraftBotInfoAgwResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDraftBotInfoAgwResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDraftBotInfoAgwResponse(%+v)\", *p)\n\n}\n\ntype GetDraftBotInfoAgwData struct {\n\t// core bot data\n\tBotInfo *bot_common.BotInfo `thrift:\"bot_info,1,required\" form:\"bot_info,required\" json:\"bot_info,required\" query:\"bot_info,required\"`\n\t// bot option information\n\tBotOptionData *BotOptionData `thrift:\"bot_option_data,2,optional\" form:\"bot_option_data\" json:\"bot_option_data,omitempty\" query:\"bot_option_data\"`\n\t// Are there any unpublished changes?\n\tHasUnpublishedChange *bool `thrift:\"has_unpublished_change,3,optional\" form:\"has_unpublished_change\" json:\"has_unpublished_change,omitempty\" query:\"has_unpublished_change\"`\n\t// The product status after the bot is put on the shelves\n\tBotMarketStatus *BotMarketStatus `thrift:\"bot_market_status,4,optional\" form:\"bot_market_status\" json:\"bot_market_status,omitempty\" query:\"bot_market_status\"`\n\t// Is the bot in multiplayer cooperative mode?\n\tInCollaboration *bool `thrift:\"in_collaboration,5,optional\" form:\"in_collaboration\" json:\"in_collaboration,omitempty\" query:\"in_collaboration\"`\n\t// Is the content committed consistent with the online content?\n\tSameWithOnline *bool `thrift:\"same_with_online,6,optional\" form:\"same_with_online\" json:\"same_with_online,omitempty\" query:\"same_with_online\"`\n\t// For frontend, permission related, can the current user edit this bot\n\tEditable *bool `thrift:\"editable,7,optional\" form:\"editable\" json:\"editable,omitempty\" query:\"editable\"`\n\t// For frontend, permission related, can the current user delete this bot\n\tDeletable *bool `thrift:\"deletable,8,optional\" form:\"deletable\" json:\"deletable,omitempty\" query:\"deletable\"`\n\t// Is the publisher of the latest release version\n\tPublisher *UserInfo `thrift:\"publisher,9,optional\" form:\"publisher\" json:\"publisher,omitempty\" query:\"publisher\"`\n\t// Has it been published?\n\tHasPublish bool `thrift:\"has_publish,10\" form:\"has_publish\" json:\"has_publish\" query:\"has_publish\"`\n\t// Space ID\n\tSpaceID int64 `thrift:\"space_id,11\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\t// Published business line details\n\tConnectors []*BotConnectorInfo `thrift:\"connectors,12\" form:\"connectors\" json:\"connectors\" query:\"connectors\"`\n\t// What branch did you get the content of?\n\tBranch *Branch `thrift:\"branch,13,optional\" form:\"branch\" json:\"branch,omitempty\" query:\"branch\"`\n\t// If branch=PersonalDraft, the version number of checkout/rebase; if branch = base, the committed version\n\tCommitVersion *string `thrift:\"commit_version,14,optional\" form:\"commit_version\" json:\"commit_version,omitempty\" query:\"commit_version\"`\n\t// For the front end, the most recent author\n\tCommitterName *string `thrift:\"committer_name,15,optional\" form:\"committer_name\" json:\"committer_name,omitempty\" query:\"committer_name\"`\n\t// For frontend, commit time\n\tCommitTime *string `thrift:\"commit_time,16,optional\" form:\"commit_time\" json:\"commit_time,omitempty\" query:\"commit_time\"`\n\t// For frontend, release time\n\tPublishTime *string `thrift:\"publish_time,17,optional\" form:\"publish_time\" json:\"publish_time,omitempty\" query:\"publish_time\"`\n\t// Multi-person collaboration related operation permissions\n\tCollaboratorStatus *BotCollaboratorStatus `thrift:\"collaborator_status,18,optional\" form:\"collaborator_status\" json:\"collaborator_status,omitempty\" query:\"collaborator_status\"`\n\t// Details of the most recent review\n\tLatestAuditInfo *AuditInfo `thrift:\"latest_audit_info,19,optional\" form:\"latest_audit_info\" json:\"latest_audit_info,omitempty\" query:\"latest_audit_info\"`\n\t// Douyin's doppelganger bot will have appId.\n\tAppID *string `thrift:\"app_id,20,optional\" form:\"app_id\" json:\"app_id,omitempty\" query:\"app_id\"`\n}\n\nfunc NewGetDraftBotInfoAgwData() *GetDraftBotInfoAgwData {\n\treturn &GetDraftBotInfoAgwData{}\n}\n\nfunc (p *GetDraftBotInfoAgwData) InitDefault() {\n}\n\nvar GetDraftBotInfoAgwData_BotInfo_DEFAULT *bot_common.BotInfo\n\nfunc (p *GetDraftBotInfoAgwData) GetBotInfo() (v *bot_common.BotInfo) {\n\tif !p.IsSetBotInfo() {\n\t\treturn GetDraftBotInfoAgwData_BotInfo_DEFAULT\n\t}\n\treturn p.BotInfo\n}\n\nvar GetDraftBotInfoAgwData_BotOptionData_DEFAULT *BotOptionData\n\nfunc (p *GetDraftBotInfoAgwData) GetBotOptionData() (v *BotOptionData) {\n\tif !p.IsSetBotOptionData() {\n\t\treturn GetDraftBotInfoAgwData_BotOptionData_DEFAULT\n\t}\n\treturn p.BotOptionData\n}\n\nvar GetDraftBotInfoAgwData_HasUnpublishedChange_DEFAULT bool\n\nfunc (p *GetDraftBotInfoAgwData) GetHasUnpublishedChange() (v bool) {\n\tif !p.IsSetHasUnpublishedChange() {\n\t\treturn GetDraftBotInfoAgwData_HasUnpublishedChange_DEFAULT\n\t}\n\treturn *p.HasUnpublishedChange\n}\n\nvar GetDraftBotInfoAgwData_BotMarketStatus_DEFAULT BotMarketStatus\n\nfunc (p *GetDraftBotInfoAgwData) GetBotMarketStatus() (v BotMarketStatus) {\n\tif !p.IsSetBotMarketStatus() {\n\t\treturn GetDraftBotInfoAgwData_BotMarketStatus_DEFAULT\n\t}\n\treturn *p.BotMarketStatus\n}\n\nvar GetDraftBotInfoAgwData_InCollaboration_DEFAULT bool\n\nfunc (p *GetDraftBotInfoAgwData) GetInCollaboration() (v bool) {\n\tif !p.IsSetInCollaboration() {\n\t\treturn GetDraftBotInfoAgwData_InCollaboration_DEFAULT\n\t}\n\treturn *p.InCollaboration\n}\n\nvar GetDraftBotInfoAgwData_SameWithOnline_DEFAULT bool\n\nfunc (p *GetDraftBotInfoAgwData) GetSameWithOnline() (v bool) {\n\tif !p.IsSetSameWithOnline() {\n\t\treturn GetDraftBotInfoAgwData_SameWithOnline_DEFAULT\n\t}\n\treturn *p.SameWithOnline\n}\n\nvar GetDraftBotInfoAgwData_Editable_DEFAULT bool\n\nfunc (p *GetDraftBotInfoAgwData) GetEditable() (v bool) {\n\tif !p.IsSetEditable() {\n\t\treturn GetDraftBotInfoAgwData_Editable_DEFAULT\n\t}\n\treturn *p.Editable\n}\n\nvar GetDraftBotInfoAgwData_Deletable_DEFAULT bool\n\nfunc (p *GetDraftBotInfoAgwData) GetDeletable() (v bool) {\n\tif !p.IsSetDeletable() {\n\t\treturn GetDraftBotInfoAgwData_Deletable_DEFAULT\n\t}\n\treturn *p.Deletable\n}\n\nvar GetDraftBotInfoAgwData_Publisher_DEFAULT *UserInfo\n\nfunc (p *GetDraftBotInfoAgwData) GetPublisher() (v *UserInfo) {\n\tif !p.IsSetPublisher() {\n\t\treturn GetDraftBotInfoAgwData_Publisher_DEFAULT\n\t}\n\treturn p.Publisher\n}\n\nfunc (p *GetDraftBotInfoAgwData) GetHasPublish() (v bool) {\n\treturn p.HasPublish\n}\n\nfunc (p *GetDraftBotInfoAgwData) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *GetDraftBotInfoAgwData) GetConnectors() (v []*BotConnectorInfo) {\n\treturn p.Connectors\n}\n\nvar GetDraftBotInfoAgwData_Branch_DEFAULT Branch\n\nfunc (p *GetDraftBotInfoAgwData) GetBranch() (v Branch) {\n\tif !p.IsSetBranch() {\n\t\treturn GetDraftBotInfoAgwData_Branch_DEFAULT\n\t}\n\treturn *p.Branch\n}\n\nvar GetDraftBotInfoAgwData_CommitVersion_DEFAULT string\n\nfunc (p *GetDraftBotInfoAgwData) GetCommitVersion() (v string) {\n\tif !p.IsSetCommitVersion() {\n\t\treturn GetDraftBotInfoAgwData_CommitVersion_DEFAULT\n\t}\n\treturn *p.CommitVersion\n}\n\nvar GetDraftBotInfoAgwData_CommitterName_DEFAULT string\n\nfunc (p *GetDraftBotInfoAgwData) GetCommitterName() (v string) {\n\tif !p.IsSetCommitterName() {\n\t\treturn GetDraftBotInfoAgwData_CommitterName_DEFAULT\n\t}\n\treturn *p.CommitterName\n}\n\nvar GetDraftBotInfoAgwData_CommitTime_DEFAULT string\n\nfunc (p *GetDraftBotInfoAgwData) GetCommitTime() (v string) {\n\tif !p.IsSetCommitTime() {\n\t\treturn GetDraftBotInfoAgwData_CommitTime_DEFAULT\n\t}\n\treturn *p.CommitTime\n}\n\nvar GetDraftBotInfoAgwData_PublishTime_DEFAULT string\n\nfunc (p *GetDraftBotInfoAgwData) GetPublishTime() (v string) {\n\tif !p.IsSetPublishTime() {\n\t\treturn GetDraftBotInfoAgwData_PublishTime_DEFAULT\n\t}\n\treturn *p.PublishTime\n}\n\nvar GetDraftBotInfoAgwData_CollaboratorStatus_DEFAULT *BotCollaboratorStatus\n\nfunc (p *GetDraftBotInfoAgwData) GetCollaboratorStatus() (v *BotCollaboratorStatus) {\n\tif !p.IsSetCollaboratorStatus() {\n\t\treturn GetDraftBotInfoAgwData_CollaboratorStatus_DEFAULT\n\t}\n\treturn p.CollaboratorStatus\n}\n\nvar GetDraftBotInfoAgwData_LatestAuditInfo_DEFAULT *AuditInfo\n\nfunc (p *GetDraftBotInfoAgwData) GetLatestAuditInfo() (v *AuditInfo) {\n\tif !p.IsSetLatestAuditInfo() {\n\t\treturn GetDraftBotInfoAgwData_LatestAuditInfo_DEFAULT\n\t}\n\treturn p.LatestAuditInfo\n}\n\nvar GetDraftBotInfoAgwData_AppID_DEFAULT string\n\nfunc (p *GetDraftBotInfoAgwData) GetAppID() (v string) {\n\tif !p.IsSetAppID() {\n\t\treturn GetDraftBotInfoAgwData_AppID_DEFAULT\n\t}\n\treturn *p.AppID\n}\n\nvar fieldIDToName_GetDraftBotInfoAgwData = map[int16]string{\n\t1:  \"bot_info\",\n\t2:  \"bot_option_data\",\n\t3:  \"has_unpublished_change\",\n\t4:  \"bot_market_status\",\n\t5:  \"in_collaboration\",\n\t6:  \"same_with_online\",\n\t7:  \"editable\",\n\t8:  \"deletable\",\n\t9:  \"publisher\",\n\t10: \"has_publish\",\n\t11: \"space_id\",\n\t12: \"connectors\",\n\t13: \"branch\",\n\t14: \"commit_version\",\n\t15: \"committer_name\",\n\t16: \"commit_time\",\n\t17: \"publish_time\",\n\t18: \"collaborator_status\",\n\t19: \"latest_audit_info\",\n\t20: \"app_id\",\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetBotInfo() bool {\n\treturn p.BotInfo != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetBotOptionData() bool {\n\treturn p.BotOptionData != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetHasUnpublishedChange() bool {\n\treturn p.HasUnpublishedChange != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetBotMarketStatus() bool {\n\treturn p.BotMarketStatus != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetInCollaboration() bool {\n\treturn p.InCollaboration != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetSameWithOnline() bool {\n\treturn p.SameWithOnline != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetEditable() bool {\n\treturn p.Editable != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetDeletable() bool {\n\treturn p.Deletable != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetPublisher() bool {\n\treturn p.Publisher != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetBranch() bool {\n\treturn p.Branch != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetCommitVersion() bool {\n\treturn p.CommitVersion != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetCommitterName() bool {\n\treturn p.CommitterName != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetCommitTime() bool {\n\treturn p.CommitTime != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetPublishTime() bool {\n\treturn p.PublishTime != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetCollaboratorStatus() bool {\n\treturn p.CollaboratorStatus != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetLatestAuditInfo() bool {\n\treturn p.LatestAuditInfo != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) IsSetAppID() bool {\n\treturn p.AppID != nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotInfo bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotInfo = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotInfo {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDraftBotInfoAgwData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDraftBotInfoAgwData[fieldId]))\n}\n\nfunc (p *GetDraftBotInfoAgwData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := bot_common.NewBotInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotInfo = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewBotOptionData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BotOptionData = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HasUnpublishedChange = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *BotMarketStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := BotMarketStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.BotMarketStatus = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.InCollaboration = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SameWithOnline = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Editable = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Deletable = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField9(iprot thrift.TProtocol) error {\n\t_field := NewUserInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Publisher = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasPublish = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField12(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*BotConnectorInfo, 0, size)\n\tvalues := make([]BotConnectorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Connectors = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *Branch\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := Branch(v)\n\t\t_field = &tmp\n\t}\n\tp.Branch = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitVersion = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitterName = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitTime = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishTime = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField18(iprot thrift.TProtocol) error {\n\t_field := NewBotCollaboratorStatus()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CollaboratorStatus = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField19(iprot thrift.TProtocol) error {\n\t_field := NewAuditInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.LatestAuditInfo = _field\n\treturn nil\n}\nfunc (p *GetDraftBotInfoAgwData) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AppID = _field\n\treturn nil\n}\n\nfunc (p *GetDraftBotInfoAgwData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftBotInfoAgwData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDraftBotInfoAgwData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_info\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BotInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotOptionData() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_option_data\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BotOptionData.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHasUnpublishedChange() {\n\t\tif err = oprot.WriteFieldBegin(\"has_unpublished_change\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HasUnpublishedChange); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotMarketStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_market_status\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.BotMarketStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInCollaboration() {\n\t\tif err = oprot.WriteFieldBegin(\"in_collaboration\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.InCollaboration); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSameWithOnline() {\n\t\tif err = oprot.WriteFieldBegin(\"same_with_online\", thrift.BOOL, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SameWithOnline); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditable() {\n\t\tif err = oprot.WriteFieldBegin(\"editable\", thrift.BOOL, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Editable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDeletable() {\n\t\tif err = oprot.WriteFieldBegin(\"deletable\", thrift.BOOL, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Deletable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublisher() {\n\t\tif err = oprot.WriteFieldBegin(\"publisher\", thrift.STRUCT, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Publisher.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_publish\", thrift.BOOL, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasPublish); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connectors\", thrift.LIST, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Connectors)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Connectors {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBranch() {\n\t\tif err = oprot.WriteFieldBegin(\"branch\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Branch)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_version\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitterName() {\n\t\tif err = oprot.WriteFieldBegin(\"committer_name\", thrift.STRING, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitterName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitTime() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_time\", thrift.STRING, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishTime() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_time\", thrift.STRING, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PublishTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCollaboratorStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"collaborator_status\", thrift.STRUCT, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.CollaboratorStatus.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLatestAuditInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"latest_audit_info\", thrift.STRUCT, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.LatestAuditInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *GetDraftBotInfoAgwData) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAppID() {\n\t\tif err = oprot.WriteFieldBegin(\"app_id\", thrift.STRING, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.AppID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\n\nfunc (p *GetDraftBotInfoAgwData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDraftBotInfoAgwData(%+v)\", *p)\n\n}\n\ntype BotOptionData struct {\n\t// model details\n\tModelDetailMap map[int64]*ModelDetail `thrift:\"model_detail_map,1,optional\" form:\"model_detail_map\" json:\"model_detail_map,omitempty\" query:\"model_detail_map\"`\n\t// plugin details\n\tPluginDetailMap map[int64]*PluginDetal `thrift:\"plugin_detail_map,2,optional\" form:\"plugin_detail_map\" json:\"plugin_detail_map,omitempty\" query:\"plugin_detail_map\"`\n\t// Plugin API Details\n\tPluginAPIDetailMap map[int64]*PluginAPIDetal `thrift:\"plugin_api_detail_map,3,optional\" form:\"plugin_api_detail_map\" json:\"plugin_api_detail_map,omitempty\" query:\"plugin_api_detail_map\"`\n\t// Workflow Details\n\tWorkflowDetailMap map[int64]*WorkflowDetail `thrift:\"workflow_detail_map,4,optional\" form:\"workflow_detail_map\" json:\"workflow_detail_map,omitempty\" query:\"workflow_detail_map\"`\n\t// Knowledge Details\n\tKnowledgeDetailMap map[string]*KnowledgeDetail `thrift:\"knowledge_detail_map,5,optional\" form:\"knowledge_detail_map\" json:\"knowledge_detail_map,omitempty\" query:\"knowledge_detail_map\"`\n\t// Quick command list\n\tShortcutCommandList []*ShortcutCommand `thrift:\"shortcut_command_list,6,optional\" form:\"shortcut_command_list\" json:\"shortcut_command_list,omitempty\" query:\"shortcut_command_list\"`\n}\n\nfunc NewBotOptionData() *BotOptionData {\n\treturn &BotOptionData{}\n}\n\nfunc (p *BotOptionData) InitDefault() {\n}\n\nvar BotOptionData_ModelDetailMap_DEFAULT map[int64]*ModelDetail\n\nfunc (p *BotOptionData) GetModelDetailMap() (v map[int64]*ModelDetail) {\n\tif !p.IsSetModelDetailMap() {\n\t\treturn BotOptionData_ModelDetailMap_DEFAULT\n\t}\n\treturn p.ModelDetailMap\n}\n\nvar BotOptionData_PluginDetailMap_DEFAULT map[int64]*PluginDetal\n\nfunc (p *BotOptionData) GetPluginDetailMap() (v map[int64]*PluginDetal) {\n\tif !p.IsSetPluginDetailMap() {\n\t\treturn BotOptionData_PluginDetailMap_DEFAULT\n\t}\n\treturn p.PluginDetailMap\n}\n\nvar BotOptionData_PluginAPIDetailMap_DEFAULT map[int64]*PluginAPIDetal\n\nfunc (p *BotOptionData) GetPluginAPIDetailMap() (v map[int64]*PluginAPIDetal) {\n\tif !p.IsSetPluginAPIDetailMap() {\n\t\treturn BotOptionData_PluginAPIDetailMap_DEFAULT\n\t}\n\treturn p.PluginAPIDetailMap\n}\n\nvar BotOptionData_WorkflowDetailMap_DEFAULT map[int64]*WorkflowDetail\n\nfunc (p *BotOptionData) GetWorkflowDetailMap() (v map[int64]*WorkflowDetail) {\n\tif !p.IsSetWorkflowDetailMap() {\n\t\treturn BotOptionData_WorkflowDetailMap_DEFAULT\n\t}\n\treturn p.WorkflowDetailMap\n}\n\nvar BotOptionData_KnowledgeDetailMap_DEFAULT map[string]*KnowledgeDetail\n\nfunc (p *BotOptionData) GetKnowledgeDetailMap() (v map[string]*KnowledgeDetail) {\n\tif !p.IsSetKnowledgeDetailMap() {\n\t\treturn BotOptionData_KnowledgeDetailMap_DEFAULT\n\t}\n\treturn p.KnowledgeDetailMap\n}\n\nvar BotOptionData_ShortcutCommandList_DEFAULT []*ShortcutCommand\n\nfunc (p *BotOptionData) GetShortcutCommandList() (v []*ShortcutCommand) {\n\tif !p.IsSetShortcutCommandList() {\n\t\treturn BotOptionData_ShortcutCommandList_DEFAULT\n\t}\n\treturn p.ShortcutCommandList\n}\n\nvar fieldIDToName_BotOptionData = map[int16]string{\n\t1: \"model_detail_map\",\n\t2: \"plugin_detail_map\",\n\t3: \"plugin_api_detail_map\",\n\t4: \"workflow_detail_map\",\n\t5: \"knowledge_detail_map\",\n\t6: \"shortcut_command_list\",\n}\n\nfunc (p *BotOptionData) IsSetModelDetailMap() bool {\n\treturn p.ModelDetailMap != nil\n}\n\nfunc (p *BotOptionData) IsSetPluginDetailMap() bool {\n\treturn p.PluginDetailMap != nil\n}\n\nfunc (p *BotOptionData) IsSetPluginAPIDetailMap() bool {\n\treturn p.PluginAPIDetailMap != nil\n}\n\nfunc (p *BotOptionData) IsSetWorkflowDetailMap() bool {\n\treturn p.WorkflowDetailMap != nil\n}\n\nfunc (p *BotOptionData) IsSetKnowledgeDetailMap() bool {\n\treturn p.KnowledgeDetailMap != nil\n}\n\nfunc (p *BotOptionData) IsSetShortcutCommandList() bool {\n\treturn p.ShortcutCommandList != nil\n}\n\nfunc (p *BotOptionData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotOptionData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotOptionData) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]*ModelDetail, size)\n\tvalues := make([]ModelDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ModelDetailMap = _field\n\treturn nil\n}\nfunc (p *BotOptionData) ReadField2(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]*PluginDetal, size)\n\tvalues := make([]PluginDetal, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginDetailMap = _field\n\treturn nil\n}\nfunc (p *BotOptionData) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]*PluginAPIDetal, size)\n\tvalues := make([]PluginAPIDetal, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginAPIDetailMap = _field\n\treturn nil\n}\nfunc (p *BotOptionData) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]*WorkflowDetail, size)\n\tvalues := make([]WorkflowDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowDetailMap = _field\n\treturn nil\n}\nfunc (p *BotOptionData) ReadField5(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*KnowledgeDetail, size)\n\tvalues := make([]KnowledgeDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.KnowledgeDetailMap = _field\n\treturn nil\n}\nfunc (p *BotOptionData) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ShortcutCommand, 0, size)\n\tvalues := make([]ShortcutCommand, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ShortcutCommandList = _field\n\treturn nil\n}\n\nfunc (p *BotOptionData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotOptionData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotOptionData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelDetailMap() {\n\t\tif err = oprot.WriteFieldBegin(\"model_detail_map\", thrift.MAP, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.ModelDetailMap)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.ModelDetailMap {\n\t\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotOptionData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginDetailMap() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_detail_map\", thrift.MAP, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.PluginDetailMap)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.PluginDetailMap {\n\t\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotOptionData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginAPIDetailMap() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_api_detail_map\", thrift.MAP, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.PluginAPIDetailMap)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.PluginAPIDetailMap {\n\t\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotOptionData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowDetailMap() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_detail_map\", thrift.MAP, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.WorkflowDetailMap)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.WorkflowDetailMap {\n\t\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BotOptionData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKnowledgeDetailMap() {\n\t\tif err = oprot.WriteFieldBegin(\"knowledge_detail_map\", thrift.MAP, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.KnowledgeDetailMap)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.KnowledgeDetailMap {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BotOptionData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShortcutCommandList() {\n\t\tif err = oprot.WriteFieldBegin(\"shortcut_command_list\", thrift.LIST, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ShortcutCommandList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ShortcutCommandList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *BotOptionData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotOptionData(%+v)\", *p)\n\n}\n\ntype ModelDetail struct {\n\t// Model display name (to the user)\n\tName *string `thrift:\"name,1,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\t// Model name (for internal)\n\tModelName *string `thrift:\"model_name,2,optional\" form:\"model_name\" json:\"model_name,omitempty\" query:\"model_name\"`\n\t// Model ID\n\tModelID *int64 `thrift:\"model_id,3,optional\" form:\"model_id\" json:\"model_id,string,omitempty\" query:\"model_id\"`\n\t// Model Category\n\tModelFamily *int64 `thrift:\"model_family,4,optional\" form:\"model_family\" json:\"model_family,omitempty\" query:\"model_family\"`\n\t// IconURL\n\tModelIconURL *string `thrift:\"model_icon_url,5,optional\" form:\"model_icon_url\" json:\"model_icon_url,omitempty\" query:\"model_icon_url\"`\n}\n\nfunc NewModelDetail() *ModelDetail {\n\treturn &ModelDetail{}\n}\n\nfunc (p *ModelDetail) InitDefault() {\n}\n\nvar ModelDetail_Name_DEFAULT string\n\nfunc (p *ModelDetail) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn ModelDetail_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar ModelDetail_ModelName_DEFAULT string\n\nfunc (p *ModelDetail) GetModelName() (v string) {\n\tif !p.IsSetModelName() {\n\t\treturn ModelDetail_ModelName_DEFAULT\n\t}\n\treturn *p.ModelName\n}\n\nvar ModelDetail_ModelID_DEFAULT int64\n\nfunc (p *ModelDetail) GetModelID() (v int64) {\n\tif !p.IsSetModelID() {\n\t\treturn ModelDetail_ModelID_DEFAULT\n\t}\n\treturn *p.ModelID\n}\n\nvar ModelDetail_ModelFamily_DEFAULT int64\n\nfunc (p *ModelDetail) GetModelFamily() (v int64) {\n\tif !p.IsSetModelFamily() {\n\t\treturn ModelDetail_ModelFamily_DEFAULT\n\t}\n\treturn *p.ModelFamily\n}\n\nvar ModelDetail_ModelIconURL_DEFAULT string\n\nfunc (p *ModelDetail) GetModelIconURL() (v string) {\n\tif !p.IsSetModelIconURL() {\n\t\treturn ModelDetail_ModelIconURL_DEFAULT\n\t}\n\treturn *p.ModelIconURL\n}\n\nvar fieldIDToName_ModelDetail = map[int16]string{\n\t1: \"name\",\n\t2: \"model_name\",\n\t3: \"model_id\",\n\t4: \"model_family\",\n\t5: \"model_icon_url\",\n}\n\nfunc (p *ModelDetail) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *ModelDetail) IsSetModelName() bool {\n\treturn p.ModelName != nil\n}\n\nfunc (p *ModelDetail) IsSetModelID() bool {\n\treturn p.ModelID != nil\n}\n\nfunc (p *ModelDetail) IsSetModelFamily() bool {\n\treturn p.ModelFamily != nil\n}\n\nfunc (p *ModelDetail) IsSetModelIconURL() bool {\n\treturn p.ModelIconURL != nil\n}\n\nfunc (p *ModelDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ModelDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ModelDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ModelDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ModelName = _field\n\treturn nil\n}\nfunc (p *ModelDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ModelID = _field\n\treturn nil\n}\nfunc (p *ModelDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ModelFamily = _field\n\treturn nil\n}\nfunc (p *ModelDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ModelIconURL = _field\n\treturn nil\n}\n\nfunc (p *ModelDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ModelDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ModelDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ModelDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelName() {\n\t\tif err = oprot.WriteFieldBegin(\"model_name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ModelName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ModelDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelID() {\n\t\tif err = oprot.WriteFieldBegin(\"model_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ModelID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ModelDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelFamily() {\n\t\tif err = oprot.WriteFieldBegin(\"model_family\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ModelFamily); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ModelDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetModelIconURL() {\n\t\tif err = oprot.WriteFieldBegin(\"model_icon_url\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ModelIconURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *ModelDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ModelDetail(%+v)\", *p)\n\n}\n\ntype PluginDetal struct {\n\tID           *int64  `thrift:\"id,1,optional\" form:\"id\" json:\"id,string,omitempty\" query:\"id\"`\n\tName         *string `thrift:\"name,2,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tDescription  *string `thrift:\"description,3,optional\" form:\"description\" json:\"description,omitempty\" query:\"description\"`\n\tIconURL      *string `thrift:\"icon_url,4,optional\" form:\"icon_url\" json:\"icon_url,omitempty\" query:\"icon_url\"`\n\tPluginType   *int64  `thrift:\"plugin_type,5,optional\" form:\"plugin_type\" json:\"plugin_type,string,omitempty\" query:\"plugin_type\"`\n\tPluginStatus *int64  `thrift:\"plugin_status,6,optional\" form:\"plugin_status\" json:\"plugin_status,string,omitempty\" query:\"plugin_status\"`\n\tIsOfficial   *bool   `thrift:\"is_official,7,optional\" form:\"is_official\" json:\"is_official,omitempty\" query:\"is_official\"`\n\t//\n\tPluginFrom *bot_common.PluginFrom `thrift:\"plugin_from,9,optional\" form:\"plugin_from\" json:\"plugin_from,omitempty\" query:\"plugin_from\"`\n}\n\nfunc NewPluginDetal() *PluginDetal {\n\treturn &PluginDetal{}\n}\n\nfunc (p *PluginDetal) InitDefault() {\n}\n\nvar PluginDetal_ID_DEFAULT int64\n\nfunc (p *PluginDetal) GetID() (v int64) {\n\tif !p.IsSetID() {\n\t\treturn PluginDetal_ID_DEFAULT\n\t}\n\treturn *p.ID\n}\n\nvar PluginDetal_Name_DEFAULT string\n\nfunc (p *PluginDetal) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn PluginDetal_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar PluginDetal_Description_DEFAULT string\n\nfunc (p *PluginDetal) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn PluginDetal_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar PluginDetal_IconURL_DEFAULT string\n\nfunc (p *PluginDetal) GetIconURL() (v string) {\n\tif !p.IsSetIconURL() {\n\t\treturn PluginDetal_IconURL_DEFAULT\n\t}\n\treturn *p.IconURL\n}\n\nvar PluginDetal_PluginType_DEFAULT int64\n\nfunc (p *PluginDetal) GetPluginType() (v int64) {\n\tif !p.IsSetPluginType() {\n\t\treturn PluginDetal_PluginType_DEFAULT\n\t}\n\treturn *p.PluginType\n}\n\nvar PluginDetal_PluginStatus_DEFAULT int64\n\nfunc (p *PluginDetal) GetPluginStatus() (v int64) {\n\tif !p.IsSetPluginStatus() {\n\t\treturn PluginDetal_PluginStatus_DEFAULT\n\t}\n\treturn *p.PluginStatus\n}\n\nvar PluginDetal_IsOfficial_DEFAULT bool\n\nfunc (p *PluginDetal) GetIsOfficial() (v bool) {\n\tif !p.IsSetIsOfficial() {\n\t\treturn PluginDetal_IsOfficial_DEFAULT\n\t}\n\treturn *p.IsOfficial\n}\n\nvar PluginDetal_PluginFrom_DEFAULT bot_common.PluginFrom\n\nfunc (p *PluginDetal) GetPluginFrom() (v bot_common.PluginFrom) {\n\tif !p.IsSetPluginFrom() {\n\t\treturn PluginDetal_PluginFrom_DEFAULT\n\t}\n\treturn *p.PluginFrom\n}\n\nvar fieldIDToName_PluginDetal = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"description\",\n\t4: \"icon_url\",\n\t5: \"plugin_type\",\n\t6: \"plugin_status\",\n\t7: \"is_official\",\n\t9: \"plugin_from\",\n}\n\nfunc (p *PluginDetal) IsSetID() bool {\n\treturn p.ID != nil\n}\n\nfunc (p *PluginDetal) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *PluginDetal) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *PluginDetal) IsSetIconURL() bool {\n\treturn p.IconURL != nil\n}\n\nfunc (p *PluginDetal) IsSetPluginType() bool {\n\treturn p.PluginType != nil\n}\n\nfunc (p *PluginDetal) IsSetPluginStatus() bool {\n\treturn p.PluginStatus != nil\n}\n\nfunc (p *PluginDetal) IsSetIsOfficial() bool {\n\treturn p.IsOfficial != nil\n}\n\nfunc (p *PluginDetal) IsSetPluginFrom() bool {\n\treturn p.PluginFrom != nil\n}\n\nfunc (p *PluginDetal) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDetal[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDetal) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PluginDetal) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginDetal) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *PluginDetal) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *PluginDetal) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginType = _field\n\treturn nil\n}\nfunc (p *PluginDetal) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginStatus = _field\n\treturn nil\n}\nfunc (p *PluginDetal) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsOfficial = _field\n\treturn nil\n}\nfunc (p *PluginDetal) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *bot_common.PluginFrom\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := bot_common.PluginFrom(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginFrom = _field\n\treturn nil\n}\n\nfunc (p *PluginDetal) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginDetal\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDetal) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetID() {\n\t\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginDetal) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginDetal) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginDetal) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIconURL() {\n\t\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IconURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginDetal) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginType() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_type\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.PluginType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginDetal) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_status\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.PluginStatus); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PluginDetal) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsOfficial() {\n\t\tif err = oprot.WriteFieldBegin(\"is_official\", thrift.BOOL, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsOfficial); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PluginDetal) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginFrom() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_from\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginFrom)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *PluginDetal) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDetal(%+v)\", *p)\n\n}\n\ntype PluginAPIDetal struct {\n\tID          *int64             `thrift:\"id,1,optional\" form:\"id\" json:\"id,string,omitempty\" query:\"id\"`\n\tName        *string            `thrift:\"name,2,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tDescription *string            `thrift:\"description,3,optional\" form:\"description\" json:\"description,omitempty\" query:\"description\"`\n\tParameters  []*PluginParameter `thrift:\"parameters,4,optional\" form:\"parameters\" json:\"parameters,omitempty\" query:\"parameters\"`\n\tPluginID    *int64             `thrift:\"plugin_id,5,optional\" form:\"plugin_id\" json:\"plugin_id,string,omitempty\" query:\"plugin_id\"`\n}\n\nfunc NewPluginAPIDetal() *PluginAPIDetal {\n\treturn &PluginAPIDetal{}\n}\n\nfunc (p *PluginAPIDetal) InitDefault() {\n}\n\nvar PluginAPIDetal_ID_DEFAULT int64\n\nfunc (p *PluginAPIDetal) GetID() (v int64) {\n\tif !p.IsSetID() {\n\t\treturn PluginAPIDetal_ID_DEFAULT\n\t}\n\treturn *p.ID\n}\n\nvar PluginAPIDetal_Name_DEFAULT string\n\nfunc (p *PluginAPIDetal) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn PluginAPIDetal_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar PluginAPIDetal_Description_DEFAULT string\n\nfunc (p *PluginAPIDetal) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn PluginAPIDetal_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar PluginAPIDetal_Parameters_DEFAULT []*PluginParameter\n\nfunc (p *PluginAPIDetal) GetParameters() (v []*PluginParameter) {\n\tif !p.IsSetParameters() {\n\t\treturn PluginAPIDetal_Parameters_DEFAULT\n\t}\n\treturn p.Parameters\n}\n\nvar PluginAPIDetal_PluginID_DEFAULT int64\n\nfunc (p *PluginAPIDetal) GetPluginID() (v int64) {\n\tif !p.IsSetPluginID() {\n\t\treturn PluginAPIDetal_PluginID_DEFAULT\n\t}\n\treturn *p.PluginID\n}\n\nvar fieldIDToName_PluginAPIDetal = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"description\",\n\t4: \"parameters\",\n\t5: \"plugin_id\",\n}\n\nfunc (p *PluginAPIDetal) IsSetID() bool {\n\treturn p.ID != nil\n}\n\nfunc (p *PluginAPIDetal) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *PluginAPIDetal) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *PluginAPIDetal) IsSetParameters() bool {\n\treturn p.Parameters != nil\n}\n\nfunc (p *PluginAPIDetal) IsSetPluginID() bool {\n\treturn p.PluginID != nil\n}\n\nfunc (p *PluginAPIDetal) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginAPIDetal[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginAPIDetal) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PluginAPIDetal) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginAPIDetal) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *PluginAPIDetal) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginParameter, 0, size)\n\tvalues := make([]PluginParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\nfunc (p *PluginAPIDetal) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\n\nfunc (p *PluginAPIDetal) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginAPIDetal\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginAPIDetal) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetID() {\n\t\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginAPIDetal) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginAPIDetal) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginAPIDetal) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"parameters\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Parameters)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Parameters {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginAPIDetal) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginID() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.PluginID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *PluginAPIDetal) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginAPIDetal(%+v)\", *p)\n\n}\n\ntype PluginParameter struct {\n\tName          *string            `thrift:\"name,1,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tDescription   *string            `thrift:\"description,2,optional\" form:\"description\" json:\"description,omitempty\" query:\"description\"`\n\tIsRequired    *bool              `thrift:\"is_required,3,optional\" form:\"is_required\" json:\"is_required,omitempty\" query:\"is_required\"`\n\tType          *string            `thrift:\"type,4,optional\" form:\"type\" json:\"type,omitempty\" query:\"type\"`\n\tSubParameters []*PluginParameter `thrift:\"sub_parameters,5,optional\" form:\"sub_parameters\" json:\"sub_parameters,omitempty\" query:\"sub_parameters\"`\n\t// If Type is an array, there is a subtype\n\tSubType    *string `thrift:\"sub_type,6,optional\" form:\"sub_type\" json:\"sub_type,omitempty\" query:\"sub_type\"`\n\tAssistType *int64  `thrift:\"assist_type,7,optional\" form:\"assist_type\" json:\"assist_type,omitempty\" query:\"assist_type\"`\n}\n\nfunc NewPluginParameter() *PluginParameter {\n\treturn &PluginParameter{}\n}\n\nfunc (p *PluginParameter) InitDefault() {\n}\n\nvar PluginParameter_Name_DEFAULT string\n\nfunc (p *PluginParameter) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn PluginParameter_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar PluginParameter_Description_DEFAULT string\n\nfunc (p *PluginParameter) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn PluginParameter_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar PluginParameter_IsRequired_DEFAULT bool\n\nfunc (p *PluginParameter) GetIsRequired() (v bool) {\n\tif !p.IsSetIsRequired() {\n\t\treturn PluginParameter_IsRequired_DEFAULT\n\t}\n\treturn *p.IsRequired\n}\n\nvar PluginParameter_Type_DEFAULT string\n\nfunc (p *PluginParameter) GetType() (v string) {\n\tif !p.IsSetType() {\n\t\treturn PluginParameter_Type_DEFAULT\n\t}\n\treturn *p.Type\n}\n\nvar PluginParameter_SubParameters_DEFAULT []*PluginParameter\n\nfunc (p *PluginParameter) GetSubParameters() (v []*PluginParameter) {\n\tif !p.IsSetSubParameters() {\n\t\treturn PluginParameter_SubParameters_DEFAULT\n\t}\n\treturn p.SubParameters\n}\n\nvar PluginParameter_SubType_DEFAULT string\n\nfunc (p *PluginParameter) GetSubType() (v string) {\n\tif !p.IsSetSubType() {\n\t\treturn PluginParameter_SubType_DEFAULT\n\t}\n\treturn *p.SubType\n}\n\nvar PluginParameter_AssistType_DEFAULT int64\n\nfunc (p *PluginParameter) GetAssistType() (v int64) {\n\tif !p.IsSetAssistType() {\n\t\treturn PluginParameter_AssistType_DEFAULT\n\t}\n\treturn *p.AssistType\n}\n\nvar fieldIDToName_PluginParameter = map[int16]string{\n\t1: \"name\",\n\t2: \"description\",\n\t3: \"is_required\",\n\t4: \"type\",\n\t5: \"sub_parameters\",\n\t6: \"sub_type\",\n\t7: \"assist_type\",\n}\n\nfunc (p *PluginParameter) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *PluginParameter) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *PluginParameter) IsSetIsRequired() bool {\n\treturn p.IsRequired != nil\n}\n\nfunc (p *PluginParameter) IsSetType() bool {\n\treturn p.Type != nil\n}\n\nfunc (p *PluginParameter) IsSetSubParameters() bool {\n\treturn p.SubParameters != nil\n}\n\nfunc (p *PluginParameter) IsSetSubType() bool {\n\treturn p.SubType != nil\n}\n\nfunc (p *PluginParameter) IsSetAssistType() bool {\n\treturn p.AssistType != nil\n}\n\nfunc (p *PluginParameter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginParameter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginParameter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsRequired = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginParameter, 0, size)\n\tvalues := make([]PluginParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubParameters = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubType = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AssistType = _field\n\treturn nil\n}\n\nfunc (p *PluginParameter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginParameter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginParameter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsRequired() {\n\t\tif err = oprot.WriteFieldBegin(\"is_required\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsRequired); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetType() {\n\t\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Type); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_parameters\", thrift.LIST, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubParameters)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SubParameters {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubType() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_type\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SubType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAssistType() {\n\t\tif err = oprot.WriteFieldBegin(\"assist_type\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.AssistType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *PluginParameter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginParameter(%+v)\", *p)\n\n}\n\ntype WorkflowDetail struct {\n\tID          *int64  `thrift:\"id,1,optional\" form:\"id\" json:\"id,string,omitempty\" query:\"id\"`\n\tName        *string `thrift:\"name,2,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tDescription *string `thrift:\"description,3,optional\" form:\"description\" json:\"description,omitempty\" query:\"description\"`\n\tIconURL     *string `thrift:\"icon_url,4,optional\" form:\"icon_url\" json:\"icon_url,omitempty\" query:\"icon_url\"`\n\tStatus      *int64  `thrift:\"status,5,optional\" form:\"status\" json:\"status,omitempty\" query:\"status\"`\n\t// Type 1: Official Template\n\tType *int64 `thrift:\"type,6,optional\" form:\"type\" json:\"type,omitempty\" query:\"type\"`\n\t// Plugin ID corresponding to workfklow\n\tPluginID   *int64          `thrift:\"plugin_id,7,optional\" form:\"plugin_id\" json:\"plugin_id,string,omitempty\" query:\"plugin_id\"`\n\tIsOfficial *bool           `thrift:\"is_official,8,optional\" form:\"is_official\" json:\"is_official,omitempty\" query:\"is_official\"`\n\tAPIDetail  *PluginAPIDetal `thrift:\"api_detail,9,optional\" form:\"api_detail\" json:\"api_detail,omitempty\" query:\"api_detail\"`\n}\n\nfunc NewWorkflowDetail() *WorkflowDetail {\n\treturn &WorkflowDetail{}\n}\n\nfunc (p *WorkflowDetail) InitDefault() {\n}\n\nvar WorkflowDetail_ID_DEFAULT int64\n\nfunc (p *WorkflowDetail) GetID() (v int64) {\n\tif !p.IsSetID() {\n\t\treturn WorkflowDetail_ID_DEFAULT\n\t}\n\treturn *p.ID\n}\n\nvar WorkflowDetail_Name_DEFAULT string\n\nfunc (p *WorkflowDetail) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn WorkflowDetail_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar WorkflowDetail_Description_DEFAULT string\n\nfunc (p *WorkflowDetail) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn WorkflowDetail_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar WorkflowDetail_IconURL_DEFAULT string\n\nfunc (p *WorkflowDetail) GetIconURL() (v string) {\n\tif !p.IsSetIconURL() {\n\t\treturn WorkflowDetail_IconURL_DEFAULT\n\t}\n\treturn *p.IconURL\n}\n\nvar WorkflowDetail_Status_DEFAULT int64\n\nfunc (p *WorkflowDetail) GetStatus() (v int64) {\n\tif !p.IsSetStatus() {\n\t\treturn WorkflowDetail_Status_DEFAULT\n\t}\n\treturn *p.Status\n}\n\nvar WorkflowDetail_Type_DEFAULT int64\n\nfunc (p *WorkflowDetail) GetType() (v int64) {\n\tif !p.IsSetType() {\n\t\treturn WorkflowDetail_Type_DEFAULT\n\t}\n\treturn *p.Type\n}\n\nvar WorkflowDetail_PluginID_DEFAULT int64\n\nfunc (p *WorkflowDetail) GetPluginID() (v int64) {\n\tif !p.IsSetPluginID() {\n\t\treturn WorkflowDetail_PluginID_DEFAULT\n\t}\n\treturn *p.PluginID\n}\n\nvar WorkflowDetail_IsOfficial_DEFAULT bool\n\nfunc (p *WorkflowDetail) GetIsOfficial() (v bool) {\n\tif !p.IsSetIsOfficial() {\n\t\treturn WorkflowDetail_IsOfficial_DEFAULT\n\t}\n\treturn *p.IsOfficial\n}\n\nvar WorkflowDetail_APIDetail_DEFAULT *PluginAPIDetal\n\nfunc (p *WorkflowDetail) GetAPIDetail() (v *PluginAPIDetal) {\n\tif !p.IsSetAPIDetail() {\n\t\treturn WorkflowDetail_APIDetail_DEFAULT\n\t}\n\treturn p.APIDetail\n}\n\nvar fieldIDToName_WorkflowDetail = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"description\",\n\t4: \"icon_url\",\n\t5: \"status\",\n\t6: \"type\",\n\t7: \"plugin_id\",\n\t8: \"is_official\",\n\t9: \"api_detail\",\n}\n\nfunc (p *WorkflowDetail) IsSetID() bool {\n\treturn p.ID != nil\n}\n\nfunc (p *WorkflowDetail) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *WorkflowDetail) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *WorkflowDetail) IsSetIconURL() bool {\n\treturn p.IconURL != nil\n}\n\nfunc (p *WorkflowDetail) IsSetStatus() bool {\n\treturn p.Status != nil\n}\n\nfunc (p *WorkflowDetail) IsSetType() bool {\n\treturn p.Type != nil\n}\n\nfunc (p *WorkflowDetail) IsSetPluginID() bool {\n\treturn p.PluginID != nil\n}\n\nfunc (p *WorkflowDetail) IsSetIsOfficial() bool {\n\treturn p.IsOfficial != nil\n}\n\nfunc (p *WorkflowDetail) IsSetAPIDetail() bool {\n\treturn p.APIDetail != nil\n}\n\nfunc (p *WorkflowDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsOfficial = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField9(iprot thrift.TProtocol) error {\n\t_field := NewPluginAPIDetal()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.APIDetail = _field\n\treturn nil\n}\n\nfunc (p *WorkflowDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetID() {\n\t\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIconURL() {\n\t\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IconURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"status\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Status); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetType() {\n\t\tif err = oprot.WriteFieldBegin(\"type\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Type); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginID() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.PluginID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsOfficial() {\n\t\tif err = oprot.WriteFieldBegin(\"is_official\", thrift.BOOL, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsOfficial); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAPIDetail() {\n\t\tif err = oprot.WriteFieldBegin(\"api_detail\", thrift.STRUCT, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.APIDetail.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *WorkflowDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowDetail(%+v)\", *p)\n\n}\n\ntype KnowledgeDetail struct {\n\tID         *string     `thrift:\"id,1,optional\" form:\"id\" json:\"id,omitempty\" query:\"id\"`\n\tName       *string     `thrift:\"name,2,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tIconURL    *string     `thrift:\"icon_url,3,optional\" form:\"icon_url\" json:\"icon_url,omitempty\" query:\"icon_url\"`\n\tFormatType DataSetType `thrift:\"format_type,4\" form:\"format_type\" json:\"format_type\" query:\"format_type\"`\n}\n\nfunc NewKnowledgeDetail() *KnowledgeDetail {\n\treturn &KnowledgeDetail{}\n}\n\nfunc (p *KnowledgeDetail) InitDefault() {\n}\n\nvar KnowledgeDetail_ID_DEFAULT string\n\nfunc (p *KnowledgeDetail) GetID() (v string) {\n\tif !p.IsSetID() {\n\t\treturn KnowledgeDetail_ID_DEFAULT\n\t}\n\treturn *p.ID\n}\n\nvar KnowledgeDetail_Name_DEFAULT string\n\nfunc (p *KnowledgeDetail) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn KnowledgeDetail_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar KnowledgeDetail_IconURL_DEFAULT string\n\nfunc (p *KnowledgeDetail) GetIconURL() (v string) {\n\tif !p.IsSetIconURL() {\n\t\treturn KnowledgeDetail_IconURL_DEFAULT\n\t}\n\treturn *p.IconURL\n}\n\nfunc (p *KnowledgeDetail) GetFormatType() (v DataSetType) {\n\treturn p.FormatType\n}\n\nvar fieldIDToName_KnowledgeDetail = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"icon_url\",\n\t4: \"format_type\",\n}\n\nfunc (p *KnowledgeDetail) IsSetID() bool {\n\treturn p.ID != nil\n}\n\nfunc (p *KnowledgeDetail) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *KnowledgeDetail) IsSetIconURL() bool {\n\treturn p.IconURL != nil\n}\n\nfunc (p *KnowledgeDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_KnowledgeDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *KnowledgeDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *KnowledgeDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *KnowledgeDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *KnowledgeDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field DataSetType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = DataSetType(v)\n\t}\n\tp.FormatType = _field\n\treturn nil\n}\n\nfunc (p *KnowledgeDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"KnowledgeDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *KnowledgeDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetID() {\n\t\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *KnowledgeDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *KnowledgeDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIconURL() {\n\t\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IconURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *KnowledgeDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"format_type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FormatType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *KnowledgeDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"KnowledgeDetail(%+v)\", *p)\n\n}\n\ntype UserInfo struct {\n\t// user id\n\tUserID int64 `thrift:\"user_id,1\" form:\"user_id\" json:\"user_id,string\" query:\"user_id\"`\n\t// user name\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\t// user icon\n\tIconURL string `thrift:\"icon_url,3\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n}\n\nfunc NewUserInfo() *UserInfo {\n\treturn &UserInfo{}\n}\n\nfunc (p *UserInfo) InitDefault() {\n}\n\nfunc (p *UserInfo) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *UserInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *UserInfo) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nvar fieldIDToName_UserInfo = map[int16]string{\n\t1: \"user_id\",\n\t2: \"name\",\n\t3: \"icon_url\",\n}\n\nfunc (p *UserInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\n\nfunc (p *UserInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *UserInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserInfo(%+v)\", *p)\n\n}\n\ntype BotConnectorInfo struct {\n\tID              string                 `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tName            string                 `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tIcon            string                 `thrift:\"icon,3\" form:\"icon\" json:\"icon\" query:\"icon\"`\n\tConnectorStatus ConnectorDynamicStatus `thrift:\"connector_status,4\" form:\"connector_status\" json:\"connector_status\" query:\"connector_status\"`\n\tShareLink       *string                `thrift:\"share_link,5,optional\" form:\"share_link\" json:\"share_link,omitempty\" query:\"share_link\"`\n}\n\nfunc NewBotConnectorInfo() *BotConnectorInfo {\n\treturn &BotConnectorInfo{}\n}\n\nfunc (p *BotConnectorInfo) InitDefault() {\n}\n\nfunc (p *BotConnectorInfo) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *BotConnectorInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *BotConnectorInfo) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nfunc (p *BotConnectorInfo) GetConnectorStatus() (v ConnectorDynamicStatus) {\n\treturn p.ConnectorStatus\n}\n\nvar BotConnectorInfo_ShareLink_DEFAULT string\n\nfunc (p *BotConnectorInfo) GetShareLink() (v string) {\n\tif !p.IsSetShareLink() {\n\t\treturn BotConnectorInfo_ShareLink_DEFAULT\n\t}\n\treturn *p.ShareLink\n}\n\nvar fieldIDToName_BotConnectorInfo = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"icon\",\n\t4: \"connector_status\",\n\t5: \"share_link\",\n}\n\nfunc (p *BotConnectorInfo) IsSetShareLink() bool {\n\treturn p.ShareLink != nil\n}\n\nfunc (p *BotConnectorInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotConnectorInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotConnectorInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *BotConnectorInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *BotConnectorInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *BotConnectorInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field ConnectorDynamicStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ConnectorDynamicStatus(v)\n\t}\n\tp.ConnectorStatus = _field\n\treturn nil\n}\nfunc (p *BotConnectorInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ShareLink = _field\n\treturn nil\n}\n\nfunc (p *BotConnectorInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotConnectorInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotConnectorInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotConnectorInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotConnectorInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotConnectorInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_status\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ConnectorStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BotConnectorInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShareLink() {\n\t\tif err = oprot.WriteFieldBegin(\"share_link\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ShareLink); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *BotConnectorInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotConnectorInfo(%+v)\", *p)\n\n}\n\ntype BotCollaboratorStatus struct {\n\t// Can the current user submit?\n\tCommitable bool `thrift:\"commitable,1\" form:\"commitable\" json:\"commitable\" query:\"commitable\"`\n\t// Is the current user operable?\n\tOperateable bool `thrift:\"operateable,2\" form:\"operateable\" json:\"operateable\" query:\"operateable\"`\n\t// Can the current user manage collaborators?\n\tManageable bool `thrift:\"manageable,3\" form:\"manageable\" json:\"manageable\" query:\"manageable\"`\n}\n\nfunc NewBotCollaboratorStatus() *BotCollaboratorStatus {\n\treturn &BotCollaboratorStatus{}\n}\n\nfunc (p *BotCollaboratorStatus) InitDefault() {\n}\n\nfunc (p *BotCollaboratorStatus) GetCommitable() (v bool) {\n\treturn p.Commitable\n}\n\nfunc (p *BotCollaboratorStatus) GetOperateable() (v bool) {\n\treturn p.Operateable\n}\n\nfunc (p *BotCollaboratorStatus) GetManageable() (v bool) {\n\treturn p.Manageable\n}\n\nvar fieldIDToName_BotCollaboratorStatus = map[int16]string{\n\t1: \"commitable\",\n\t2: \"operateable\",\n\t3: \"manageable\",\n}\n\nfunc (p *BotCollaboratorStatus) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotCollaboratorStatus[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotCollaboratorStatus) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Commitable = _field\n\treturn nil\n}\nfunc (p *BotCollaboratorStatus) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Operateable = _field\n\treturn nil\n}\nfunc (p *BotCollaboratorStatus) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Manageable = _field\n\treturn nil\n}\n\nfunc (p *BotCollaboratorStatus) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotCollaboratorStatus\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotCollaboratorStatus) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"commitable\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Commitable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotCollaboratorStatus) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"operateable\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Operateable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotCollaboratorStatus) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"manageable\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Manageable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *BotCollaboratorStatus) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotCollaboratorStatus(%+v)\", *p)\n\n}\n\ntype AuditInfo struct {\n\tAuditStatus   *AuditStatus `thrift:\"audit_status,1,optional\" form:\"audit_status\" json:\"audit_status,omitempty\" query:\"audit_status\"`\n\tPublishID     *string      `thrift:\"publish_id,2,optional\" form:\"publish_id\" json:\"publish_id,omitempty\" query:\"publish_id\"`\n\tCommitVersion *string      `thrift:\"commit_version,3,optional\" form:\"commit_version\" json:\"commit_version,omitempty\" query:\"commit_version\"`\n}\n\nfunc NewAuditInfo() *AuditInfo {\n\treturn &AuditInfo{}\n}\n\nfunc (p *AuditInfo) InitDefault() {\n}\n\nvar AuditInfo_AuditStatus_DEFAULT AuditStatus\n\nfunc (p *AuditInfo) GetAuditStatus() (v AuditStatus) {\n\tif !p.IsSetAuditStatus() {\n\t\treturn AuditInfo_AuditStatus_DEFAULT\n\t}\n\treturn *p.AuditStatus\n}\n\nvar AuditInfo_PublishID_DEFAULT string\n\nfunc (p *AuditInfo) GetPublishID() (v string) {\n\tif !p.IsSetPublishID() {\n\t\treturn AuditInfo_PublishID_DEFAULT\n\t}\n\treturn *p.PublishID\n}\n\nvar AuditInfo_CommitVersion_DEFAULT string\n\nfunc (p *AuditInfo) GetCommitVersion() (v string) {\n\tif !p.IsSetCommitVersion() {\n\t\treturn AuditInfo_CommitVersion_DEFAULT\n\t}\n\treturn *p.CommitVersion\n}\n\nvar fieldIDToName_AuditInfo = map[int16]string{\n\t1: \"audit_status\",\n\t2: \"publish_id\",\n\t3: \"commit_version\",\n}\n\nfunc (p *AuditInfo) IsSetAuditStatus() bool {\n\treturn p.AuditStatus != nil\n}\n\nfunc (p *AuditInfo) IsSetPublishID() bool {\n\treturn p.PublishID != nil\n}\n\nfunc (p *AuditInfo) IsSetCommitVersion() bool {\n\treturn p.CommitVersion != nil\n}\n\nfunc (p *AuditInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AuditInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AuditInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *AuditStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := AuditStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.AuditStatus = _field\n\treturn nil\n}\nfunc (p *AuditInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishID = _field\n\treturn nil\n}\nfunc (p *AuditInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitVersion = _field\n\treturn nil\n}\n\nfunc (p *AuditInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AuditInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AuditInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuditStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"audit_status\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AuditStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AuditInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishID() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_id\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PublishID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AuditInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_version\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *AuditInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AuditInfo(%+v)\", *p)\n\n}\n\ntype AuditResult struct {\n\tAuditStatus  AuditStatus `thrift:\"AuditStatus,1\" form:\"AuditStatus\" json:\"AuditStatus\" query:\"AuditStatus\"`\n\tAuditMessage string      `thrift:\"AuditMessage,2\" form:\"AuditMessage\" json:\"AuditMessage\" query:\"AuditMessage\"`\n}\n\nfunc NewAuditResult() *AuditResult {\n\treturn &AuditResult{}\n}\n\nfunc (p *AuditResult) InitDefault() {\n}\n\nfunc (p *AuditResult) GetAuditStatus() (v AuditStatus) {\n\treturn p.AuditStatus\n}\n\nfunc (p *AuditResult) GetAuditMessage() (v string) {\n\treturn p.AuditMessage\n}\n\nvar fieldIDToName_AuditResult = map[int16]string{\n\t1: \"AuditStatus\",\n\t2: \"AuditMessage\",\n}\n\nfunc (p *AuditResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AuditResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AuditResult) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field AuditStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = AuditStatus(v)\n\t}\n\tp.AuditStatus = _field\n\treturn nil\n}\nfunc (p *AuditResult) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AuditMessage = _field\n\treturn nil\n}\n\nfunc (p *AuditResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AuditResult\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AuditResult) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AuditStatus\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.AuditStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AuditResult) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AuditMessage\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AuditMessage); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *AuditResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AuditResult(%+v)\", *p)\n\n}\n\n// Onboarding json structure\ntype OnboardingContent struct {\n\t// Introductory remarks (C-end usage scenarios, only 1; background scenarios, possibly multiple)\n\tPrologue *string `thrift:\"prologue,1,optional\" form:\"prologue\" json:\"prologue,omitempty\" query:\"prologue\"`\n\t// suggestion question\n\tSuggestedQuestions         []string                               `thrift:\"suggested_questions,2,optional\" form:\"suggested_questions\" json:\"suggested_questions,omitempty\" query:\"suggested_questions\"`\n\tSuggestedQuestionsShowMode *bot_common.SuggestedQuestionsShowMode `thrift:\"suggested_questions_show_mode,3,optional\" form:\"suggested_questions_show_mode\" json:\"suggested_questions_show_mode,omitempty\" query:\"suggested_questions_show_mode\"`\n}\n\nfunc NewOnboardingContent() *OnboardingContent {\n\treturn &OnboardingContent{}\n}\n\nfunc (p *OnboardingContent) InitDefault() {\n}\n\nvar OnboardingContent_Prologue_DEFAULT string\n\nfunc (p *OnboardingContent) GetPrologue() (v string) {\n\tif !p.IsSetPrologue() {\n\t\treturn OnboardingContent_Prologue_DEFAULT\n\t}\n\treturn *p.Prologue\n}\n\nvar OnboardingContent_SuggestedQuestions_DEFAULT []string\n\nfunc (p *OnboardingContent) GetSuggestedQuestions() (v []string) {\n\tif !p.IsSetSuggestedQuestions() {\n\t\treturn OnboardingContent_SuggestedQuestions_DEFAULT\n\t}\n\treturn p.SuggestedQuestions\n}\n\nvar OnboardingContent_SuggestedQuestionsShowMode_DEFAULT bot_common.SuggestedQuestionsShowMode\n\nfunc (p *OnboardingContent) GetSuggestedQuestionsShowMode() (v bot_common.SuggestedQuestionsShowMode) {\n\tif !p.IsSetSuggestedQuestionsShowMode() {\n\t\treturn OnboardingContent_SuggestedQuestionsShowMode_DEFAULT\n\t}\n\treturn *p.SuggestedQuestionsShowMode\n}\n\nvar fieldIDToName_OnboardingContent = map[int16]string{\n\t1: \"prologue\",\n\t2: \"suggested_questions\",\n\t3: \"suggested_questions_show_mode\",\n}\n\nfunc (p *OnboardingContent) IsSetPrologue() bool {\n\treturn p.Prologue != nil\n}\n\nfunc (p *OnboardingContent) IsSetSuggestedQuestions() bool {\n\treturn p.SuggestedQuestions != nil\n}\n\nfunc (p *OnboardingContent) IsSetSuggestedQuestionsShowMode() bool {\n\treturn p.SuggestedQuestionsShowMode != nil\n}\n\nfunc (p *OnboardingContent) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OnboardingContent[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OnboardingContent) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Prologue = _field\n\treturn nil\n}\nfunc (p *OnboardingContent) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestedQuestions = _field\n\treturn nil\n}\nfunc (p *OnboardingContent) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bot_common.SuggestedQuestionsShowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := bot_common.SuggestedQuestionsShowMode(v)\n\t\t_field = &tmp\n\t}\n\tp.SuggestedQuestionsShowMode = _field\n\treturn nil\n}\n\nfunc (p *OnboardingContent) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OnboardingContent\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OnboardingContent) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPrologue() {\n\t\tif err = oprot.WriteFieldBegin(\"prologue\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Prologue); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OnboardingContent) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestedQuestions() {\n\t\tif err = oprot.WriteFieldBegin(\"suggested_questions\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.SuggestedQuestions)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SuggestedQuestions {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OnboardingContent) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestedQuestionsShowMode() {\n\t\tif err = oprot.WriteFieldBegin(\"suggested_questions_show_mode\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SuggestedQuestionsShowMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *OnboardingContent) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OnboardingContent(%+v)\", *p)\n\n}\n\ntype GetSpaceListV2Request struct {\n\t// Search term\n\tSearchWord *string `thrift:\"search_word,1,optional\" form:\"search_word\" json:\"search_word,omitempty\" query:\"search_word\"`\n\t// Enterprise ID\n\tEnterpriseID *int64 `thrift:\"enterprise_id,2,optional\" form:\"enterprise_id\" json:\"enterprise_id,string,omitempty\" query:\"enterprise_id\"`\n\t// organization id\n\tOrganizationID *int64 `thrift:\"organization_id,3,optional\" form:\"organization_id\" json:\"organization_id,string,omitempty\" query:\"organization_id\"`\n\t// range type\n\tScopeType *ScopeType `thrift:\"scope_type,4,optional\" form:\"scope_type\" json:\"scope_type,omitempty\" query:\"scope_type\"`\n\t// paging information\n\tPage *int32 `thrift:\"page,5,optional\" form:\"page\" json:\"page,omitempty\" query:\"page\"`\n\t// Paging size -- if page and size are not passed on, it is considered not paging\n\tSize *int32     `thrift:\"size,6,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetSpaceListV2Request() *GetSpaceListV2Request {\n\treturn &GetSpaceListV2Request{}\n}\n\nfunc (p *GetSpaceListV2Request) InitDefault() {\n}\n\nvar GetSpaceListV2Request_SearchWord_DEFAULT string\n\nfunc (p *GetSpaceListV2Request) GetSearchWord() (v string) {\n\tif !p.IsSetSearchWord() {\n\t\treturn GetSpaceListV2Request_SearchWord_DEFAULT\n\t}\n\treturn *p.SearchWord\n}\n\nvar GetSpaceListV2Request_EnterpriseID_DEFAULT int64\n\nfunc (p *GetSpaceListV2Request) GetEnterpriseID() (v int64) {\n\tif !p.IsSetEnterpriseID() {\n\t\treturn GetSpaceListV2Request_EnterpriseID_DEFAULT\n\t}\n\treturn *p.EnterpriseID\n}\n\nvar GetSpaceListV2Request_OrganizationID_DEFAULT int64\n\nfunc (p *GetSpaceListV2Request) GetOrganizationID() (v int64) {\n\tif !p.IsSetOrganizationID() {\n\t\treturn GetSpaceListV2Request_OrganizationID_DEFAULT\n\t}\n\treturn *p.OrganizationID\n}\n\nvar GetSpaceListV2Request_ScopeType_DEFAULT ScopeType\n\nfunc (p *GetSpaceListV2Request) GetScopeType() (v ScopeType) {\n\tif !p.IsSetScopeType() {\n\t\treturn GetSpaceListV2Request_ScopeType_DEFAULT\n\t}\n\treturn *p.ScopeType\n}\n\nvar GetSpaceListV2Request_Page_DEFAULT int32\n\nfunc (p *GetSpaceListV2Request) GetPage() (v int32) {\n\tif !p.IsSetPage() {\n\t\treturn GetSpaceListV2Request_Page_DEFAULT\n\t}\n\treturn *p.Page\n}\n\nvar GetSpaceListV2Request_Size_DEFAULT int32\n\nfunc (p *GetSpaceListV2Request) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn GetSpaceListV2Request_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar GetSpaceListV2Request_Base_DEFAULT *base.Base\n\nfunc (p *GetSpaceListV2Request) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetSpaceListV2Request_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetSpaceListV2Request = map[int16]string{\n\t1:   \"search_word\",\n\t2:   \"enterprise_id\",\n\t3:   \"organization_id\",\n\t4:   \"scope_type\",\n\t5:   \"page\",\n\t6:   \"size\",\n\t255: \"Base\",\n}\n\nfunc (p *GetSpaceListV2Request) IsSetSearchWord() bool {\n\treturn p.SearchWord != nil\n}\n\nfunc (p *GetSpaceListV2Request) IsSetEnterpriseID() bool {\n\treturn p.EnterpriseID != nil\n}\n\nfunc (p *GetSpaceListV2Request) IsSetOrganizationID() bool {\n\treturn p.OrganizationID != nil\n}\n\nfunc (p *GetSpaceListV2Request) IsSetScopeType() bool {\n\treturn p.ScopeType != nil\n}\n\nfunc (p *GetSpaceListV2Request) IsSetPage() bool {\n\treturn p.Page != nil\n}\n\nfunc (p *GetSpaceListV2Request) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *GetSpaceListV2Request) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetSpaceListV2Request) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetSpaceListV2Request[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetSpaceListV2Request) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SearchWord = _field\n\treturn nil\n}\nfunc (p *GetSpaceListV2Request) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EnterpriseID = _field\n\treturn nil\n}\nfunc (p *GetSpaceListV2Request) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OrganizationID = _field\n\treturn nil\n}\nfunc (p *GetSpaceListV2Request) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *ScopeType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ScopeType(v)\n\t\t_field = &tmp\n\t}\n\tp.ScopeType = _field\n\treturn nil\n}\nfunc (p *GetSpaceListV2Request) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *GetSpaceListV2Request) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *GetSpaceListV2Request) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetSpaceListV2Request) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetSpaceListV2Request\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetSpaceListV2Request) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSearchWord() {\n\t\tif err = oprot.WriteFieldBegin(\"search_word\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SearchWord); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetSpaceListV2Request) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEnterpriseID() {\n\t\tif err = oprot.WriteFieldBegin(\"enterprise_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EnterpriseID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetSpaceListV2Request) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrganizationID() {\n\t\tif err = oprot.WriteFieldBegin(\"organization_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.OrganizationID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetSpaceListV2Request) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScopeType() {\n\t\tif err = oprot.WriteFieldBegin(\"scope_type\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ScopeType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetSpaceListV2Request) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPage() {\n\t\tif err = oprot.WriteFieldBegin(\"page\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Page); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetSpaceListV2Request) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetSpaceListV2Request) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetSpaceListV2Request) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetSpaceListV2Request(%+v)\", *p)\n\n}\n\ntype AppIDInfo struct {\n\tID   string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tIcon string `thrift:\"icon,3\" form:\"icon\" json:\"icon\" query:\"icon\"`\n}\n\nfunc NewAppIDInfo() *AppIDInfo {\n\treturn &AppIDInfo{}\n}\n\nfunc (p *AppIDInfo) InitDefault() {\n}\n\nfunc (p *AppIDInfo) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *AppIDInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *AppIDInfo) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nvar fieldIDToName_AppIDInfo = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"icon\",\n}\n\nfunc (p *AppIDInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AppIDInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AppIDInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *AppIDInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *AppIDInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\n\nfunc (p *AppIDInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AppIDInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AppIDInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AppIDInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *AppIDInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *AppIDInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AppIDInfo(%+v)\", *p)\n\n}\n\ntype ConnectorInfo struct {\n\tID   string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tIcon string `thrift:\"icon,3\" form:\"icon\" json:\"icon\" query:\"icon\"`\n}\n\nfunc NewConnectorInfo() *ConnectorInfo {\n\treturn &ConnectorInfo{}\n}\n\nfunc (p *ConnectorInfo) InitDefault() {\n}\n\nfunc (p *ConnectorInfo) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *ConnectorInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ConnectorInfo) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nvar fieldIDToName_ConnectorInfo = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"icon\",\n}\n\nfunc (p *ConnectorInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConnectorInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\n\nfunc (p *ConnectorInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConnectorInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConnectorInfo(%+v)\", *p)\n\n}\n\ntype BotSpaceV2 struct {\n\t// Space id, newly created as 0\n\tID int64 `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\t// publishing platform\n\tAppIds []*AppIDInfo `thrift:\"app_ids,2\" form:\"app_ids\" json:\"app_ids\" query:\"app_ids\"`\n\t// space name\n\tName string `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\t// spatial description\n\tDescription string `thrift:\"description,4\" form:\"description\" json:\"description\" query:\"description\"`\n\t// icon url\n\tIconURL string `thrift:\"icon_url,5\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\t// space type\n\tSpaceType SpaceType `thrift:\"space_type,6\" form:\"space_type\" json:\"space_type\" query:\"space_type\"`\n\t// publishing platform\n\tConnectors []*ConnectorInfo `thrift:\"connectors,7\" form:\"connectors\" json:\"connectors\" query:\"connectors\"`\n\t// Whether to hide New, Copy Delete buttons\n\tHideOperation bool `thrift:\"hide_operation,8\" form:\"hide_operation\" json:\"hide_operation\" query:\"hide_operation\"`\n\t// Role in team 1-owner 2-admin 3-member\n\tRoleType int32 `thrift:\"role_type,9\" form:\"role_type\" json:\"role_type\" query:\"role_type\"`\n\t// Spatial Mode\n\tSpaceMode *SpaceMode `thrift:\"space_mode,10,optional\" form:\"space_mode\" json:\"space_mode,omitempty\" query:\"space_mode\"`\n\t// Whether to display the end-side plug-in creation entry\n\tDisplayLocalPlugin bool `thrift:\"display_local_plugin,11\" form:\"display_local_plugin\" json:\"display_local_plugin\" query:\"display_local_plugin\"`\n\t// Role type, enumeration\n\tSpaceRoleType SpaceRoleType `thrift:\"space_role_type,12\" form:\"space_role_type\" json:\"space_role_type\" query:\"space_role_type\"`\n\t// spatial label\n\tSpaceTag *SpaceTag `thrift:\"space_tag,13,optional\" form:\"space_tag\" json:\"space_tag,omitempty\" query:\"space_tag\"`\n\t// Enterprise ID\n\tEnterpriseID *int64 `thrift:\"enterprise_id,14,optional\" form:\"enterprise_id\" json:\"enterprise_id,string,omitempty\" query:\"enterprise_id\"`\n\t// organization id\n\tOrganizationID *int64 `thrift:\"organization_id,15,optional\" form:\"organization_id\" json:\"organization_id,string,omitempty\" query:\"organization_id\"`\n\t// Space owner uid\n\tOwnerUserID *int64 `thrift:\"owner_user_id,16,optional\" form:\"owner_user_id\" json:\"owner_user_id,string,omitempty\" query:\"owner_user_id\"`\n\t// Space owner nickname\n\tOwnerName *string `thrift:\"owner_name,17,optional\" form:\"owner_name\" json:\"owner_name,omitempty\" query:\"owner_name\"`\n\t// Space owner username\n\tOwnerUserName *string `thrift:\"owner_user_name,18,optional\" form:\"owner_user_name\" json:\"owner_user_name,omitempty\" query:\"owner_user_name\"`\n\t// Space owner image\n\tOwnerIconURL *string `thrift:\"owner_icon_url,19,optional\" form:\"owner_icon_url\" json:\"owner_icon_url,omitempty\" query:\"owner_icon_url\"`\n\t// The current visiting user joins the space status\n\tSpaceApplyStatus *SpaceApplyStatus `thrift:\"space_apply_status,20,optional\" form:\"space_apply_status\" json:\"space_apply_status,omitempty\" query:\"space_apply_status\"`\n\t// The total number of space members, only the organization space can be queried.\n\tTotalMemberNum *int64 `thrift:\"total_member_num,21,optional\" form:\"total_member_num\" json:\"total_member_num,omitempty\" query:\"total_member_num\"`\n}\n\nfunc NewBotSpaceV2() *BotSpaceV2 {\n\treturn &BotSpaceV2{}\n}\n\nfunc (p *BotSpaceV2) InitDefault() {\n}\n\nfunc (p *BotSpaceV2) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *BotSpaceV2) GetAppIds() (v []*AppIDInfo) {\n\treturn p.AppIds\n}\n\nfunc (p *BotSpaceV2) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *BotSpaceV2) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *BotSpaceV2) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *BotSpaceV2) GetSpaceType() (v SpaceType) {\n\treturn p.SpaceType\n}\n\nfunc (p *BotSpaceV2) GetConnectors() (v []*ConnectorInfo) {\n\treturn p.Connectors\n}\n\nfunc (p *BotSpaceV2) GetHideOperation() (v bool) {\n\treturn p.HideOperation\n}\n\nfunc (p *BotSpaceV2) GetRoleType() (v int32) {\n\treturn p.RoleType\n}\n\nvar BotSpaceV2_SpaceMode_DEFAULT SpaceMode\n\nfunc (p *BotSpaceV2) GetSpaceMode() (v SpaceMode) {\n\tif !p.IsSetSpaceMode() {\n\t\treturn BotSpaceV2_SpaceMode_DEFAULT\n\t}\n\treturn *p.SpaceMode\n}\n\nfunc (p *BotSpaceV2) GetDisplayLocalPlugin() (v bool) {\n\treturn p.DisplayLocalPlugin\n}\n\nfunc (p *BotSpaceV2) GetSpaceRoleType() (v SpaceRoleType) {\n\treturn p.SpaceRoleType\n}\n\nvar BotSpaceV2_SpaceTag_DEFAULT SpaceTag\n\nfunc (p *BotSpaceV2) GetSpaceTag() (v SpaceTag) {\n\tif !p.IsSetSpaceTag() {\n\t\treturn BotSpaceV2_SpaceTag_DEFAULT\n\t}\n\treturn *p.SpaceTag\n}\n\nvar BotSpaceV2_EnterpriseID_DEFAULT int64\n\nfunc (p *BotSpaceV2) GetEnterpriseID() (v int64) {\n\tif !p.IsSetEnterpriseID() {\n\t\treturn BotSpaceV2_EnterpriseID_DEFAULT\n\t}\n\treturn *p.EnterpriseID\n}\n\nvar BotSpaceV2_OrganizationID_DEFAULT int64\n\nfunc (p *BotSpaceV2) GetOrganizationID() (v int64) {\n\tif !p.IsSetOrganizationID() {\n\t\treturn BotSpaceV2_OrganizationID_DEFAULT\n\t}\n\treturn *p.OrganizationID\n}\n\nvar BotSpaceV2_OwnerUserID_DEFAULT int64\n\nfunc (p *BotSpaceV2) GetOwnerUserID() (v int64) {\n\tif !p.IsSetOwnerUserID() {\n\t\treturn BotSpaceV2_OwnerUserID_DEFAULT\n\t}\n\treturn *p.OwnerUserID\n}\n\nvar BotSpaceV2_OwnerName_DEFAULT string\n\nfunc (p *BotSpaceV2) GetOwnerName() (v string) {\n\tif !p.IsSetOwnerName() {\n\t\treturn BotSpaceV2_OwnerName_DEFAULT\n\t}\n\treturn *p.OwnerName\n}\n\nvar BotSpaceV2_OwnerUserName_DEFAULT string\n\nfunc (p *BotSpaceV2) GetOwnerUserName() (v string) {\n\tif !p.IsSetOwnerUserName() {\n\t\treturn BotSpaceV2_OwnerUserName_DEFAULT\n\t}\n\treturn *p.OwnerUserName\n}\n\nvar BotSpaceV2_OwnerIconURL_DEFAULT string\n\nfunc (p *BotSpaceV2) GetOwnerIconURL() (v string) {\n\tif !p.IsSetOwnerIconURL() {\n\t\treturn BotSpaceV2_OwnerIconURL_DEFAULT\n\t}\n\treturn *p.OwnerIconURL\n}\n\nvar BotSpaceV2_SpaceApplyStatus_DEFAULT SpaceApplyStatus\n\nfunc (p *BotSpaceV2) GetSpaceApplyStatus() (v SpaceApplyStatus) {\n\tif !p.IsSetSpaceApplyStatus() {\n\t\treturn BotSpaceV2_SpaceApplyStatus_DEFAULT\n\t}\n\treturn *p.SpaceApplyStatus\n}\n\nvar BotSpaceV2_TotalMemberNum_DEFAULT int64\n\nfunc (p *BotSpaceV2) GetTotalMemberNum() (v int64) {\n\tif !p.IsSetTotalMemberNum() {\n\t\treturn BotSpaceV2_TotalMemberNum_DEFAULT\n\t}\n\treturn *p.TotalMemberNum\n}\n\nvar fieldIDToName_BotSpaceV2 = map[int16]string{\n\t1:  \"id\",\n\t2:  \"app_ids\",\n\t3:  \"name\",\n\t4:  \"description\",\n\t5:  \"icon_url\",\n\t6:  \"space_type\",\n\t7:  \"connectors\",\n\t8:  \"hide_operation\",\n\t9:  \"role_type\",\n\t10: \"space_mode\",\n\t11: \"display_local_plugin\",\n\t12: \"space_role_type\",\n\t13: \"space_tag\",\n\t14: \"enterprise_id\",\n\t15: \"organization_id\",\n\t16: \"owner_user_id\",\n\t17: \"owner_name\",\n\t18: \"owner_user_name\",\n\t19: \"owner_icon_url\",\n\t20: \"space_apply_status\",\n\t21: \"total_member_num\",\n}\n\nfunc (p *BotSpaceV2) IsSetSpaceMode() bool {\n\treturn p.SpaceMode != nil\n}\n\nfunc (p *BotSpaceV2) IsSetSpaceTag() bool {\n\treturn p.SpaceTag != nil\n}\n\nfunc (p *BotSpaceV2) IsSetEnterpriseID() bool {\n\treturn p.EnterpriseID != nil\n}\n\nfunc (p *BotSpaceV2) IsSetOrganizationID() bool {\n\treturn p.OrganizationID != nil\n}\n\nfunc (p *BotSpaceV2) IsSetOwnerUserID() bool {\n\treturn p.OwnerUserID != nil\n}\n\nfunc (p *BotSpaceV2) IsSetOwnerName() bool {\n\treturn p.OwnerName != nil\n}\n\nfunc (p *BotSpaceV2) IsSetOwnerUserName() bool {\n\treturn p.OwnerUserName != nil\n}\n\nfunc (p *BotSpaceV2) IsSetOwnerIconURL() bool {\n\treturn p.OwnerIconURL != nil\n}\n\nfunc (p *BotSpaceV2) IsSetSpaceApplyStatus() bool {\n\treturn p.SpaceApplyStatus != nil\n}\n\nfunc (p *BotSpaceV2) IsSetTotalMemberNum() bool {\n\treturn p.TotalMemberNum != nil\n}\n\nfunc (p *BotSpaceV2) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotSpaceV2[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BotSpaceV2) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*AppIDInfo, 0, size)\n\tvalues := make([]AppIDInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.AppIds = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field SpaceType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SpaceType(v)\n\t}\n\tp.SpaceType = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ConnectorInfo, 0, size)\n\tvalues := make([]ConnectorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Connectors = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HideOperation = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RoleType = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *SpaceMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := SpaceMode(v)\n\t\t_field = &tmp\n\t}\n\tp.SpaceMode = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DisplayLocalPlugin = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field SpaceRoleType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SpaceRoleType(v)\n\t}\n\tp.SpaceRoleType = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *SpaceTag\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := SpaceTag(v)\n\t\t_field = &tmp\n\t}\n\tp.SpaceTag = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EnterpriseID = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OrganizationID = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OwnerUserID = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OwnerName = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OwnerUserName = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OwnerIconURL = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field *SpaceApplyStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := SpaceApplyStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.SpaceApplyStatus = _field\n\treturn nil\n}\nfunc (p *BotSpaceV2) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TotalMemberNum = _field\n\treturn nil\n}\n\nfunc (p *BotSpaceV2) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotSpaceV2\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotSpaceV2) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"app_ids\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.AppIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.AppIds {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_type\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SpaceType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connectors\", thrift.LIST, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Connectors)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Connectors {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"hide_operation\", thrift.BOOL, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HideOperation); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"role_type\", thrift.I32, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.RoleType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceMode() {\n\t\tif err = oprot.WriteFieldBegin(\"space_mode\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SpaceMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"display_local_plugin\", thrift.BOOL, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.DisplayLocalPlugin); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_role_type\", thrift.I32, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SpaceRoleType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceTag() {\n\t\tif err = oprot.WriteFieldBegin(\"space_tag\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SpaceTag)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEnterpriseID() {\n\t\tif err = oprot.WriteFieldBegin(\"enterprise_id\", thrift.I64, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EnterpriseID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrganizationID() {\n\t\tif err = oprot.WriteFieldBegin(\"organization_id\", thrift.I64, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.OrganizationID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOwnerUserID() {\n\t\tif err = oprot.WriteFieldBegin(\"owner_user_id\", thrift.I64, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.OwnerUserID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOwnerName() {\n\t\tif err = oprot.WriteFieldBegin(\"owner_name\", thrift.STRING, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OwnerName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOwnerUserName() {\n\t\tif err = oprot.WriteFieldBegin(\"owner_user_name\", thrift.STRING, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OwnerUserName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOwnerIconURL() {\n\t\tif err = oprot.WriteFieldBegin(\"owner_icon_url\", thrift.STRING, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OwnerIconURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceApplyStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"space_apply_status\", thrift.I32, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SpaceApplyStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *BotSpaceV2) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTotalMemberNum() {\n\t\tif err = oprot.WriteFieldBegin(\"total_member_num\", thrift.I64, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.TotalMemberNum); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\n\nfunc (p *BotSpaceV2) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotSpaceV2(%+v)\", *p)\n\n}\n\ntype SpaceInfo struct {\n\t// User joins space list\n\tBotSpaceList []*BotSpaceV2 `thrift:\"bot_space_list,1\" form:\"bot_space_list\" json:\"bot_space_list\" query:\"bot_space_list\"`\n\t// Is there any personal space available?\n\tHasPersonalSpace bool `thrift:\"has_personal_space,2\" form:\"has_personal_space\" json:\"has_personal_space\" query:\"has_personal_space\"`\n\t// Number of team spaces created by individuals\n\tTeamSpaceNum int32 `thrift:\"team_space_num,3\" form:\"team_space_num\" json:\"team_space_num\" query:\"team_space_num\"`\n\t// The maximum number of spaces an individual can create\n\tMaxTeamSpaceNum int32 `thrift:\"max_team_space_num,4\" form:\"max_team_space_num\" json:\"max_team_space_num\" query:\"max_team_space_num\"`\n\t// list of recently used spaces\n\tRecentlyUsedSpaceList []*BotSpaceV2 `thrift:\"recently_used_space_list,5\" form:\"recently_used_space_list\" json:\"recently_used_space_list\" query:\"recently_used_space_list\"`\n\t// Effective when paging\n\tTotal *int32 `thrift:\"total,6,optional\" form:\"total\" json:\"total,omitempty\" query:\"total\"`\n\t// Effective when paging\n\tHasMore *bool `thrift:\"has_more,7,optional\" form:\"has_more\" json:\"has_more,omitempty\" query:\"has_more\"`\n}\n\nfunc NewSpaceInfo() *SpaceInfo {\n\treturn &SpaceInfo{}\n}\n\nfunc (p *SpaceInfo) InitDefault() {\n}\n\nfunc (p *SpaceInfo) GetBotSpaceList() (v []*BotSpaceV2) {\n\treturn p.BotSpaceList\n}\n\nfunc (p *SpaceInfo) GetHasPersonalSpace() (v bool) {\n\treturn p.HasPersonalSpace\n}\n\nfunc (p *SpaceInfo) GetTeamSpaceNum() (v int32) {\n\treturn p.TeamSpaceNum\n}\n\nfunc (p *SpaceInfo) GetMaxTeamSpaceNum() (v int32) {\n\treturn p.MaxTeamSpaceNum\n}\n\nfunc (p *SpaceInfo) GetRecentlyUsedSpaceList() (v []*BotSpaceV2) {\n\treturn p.RecentlyUsedSpaceList\n}\n\nvar SpaceInfo_Total_DEFAULT int32\n\nfunc (p *SpaceInfo) GetTotal() (v int32) {\n\tif !p.IsSetTotal() {\n\t\treturn SpaceInfo_Total_DEFAULT\n\t}\n\treturn *p.Total\n}\n\nvar SpaceInfo_HasMore_DEFAULT bool\n\nfunc (p *SpaceInfo) GetHasMore() (v bool) {\n\tif !p.IsSetHasMore() {\n\t\treturn SpaceInfo_HasMore_DEFAULT\n\t}\n\treturn *p.HasMore\n}\n\nvar fieldIDToName_SpaceInfo = map[int16]string{\n\t1: \"bot_space_list\",\n\t2: \"has_personal_space\",\n\t3: \"team_space_num\",\n\t4: \"max_team_space_num\",\n\t5: \"recently_used_space_list\",\n\t6: \"total\",\n\t7: \"has_more\",\n}\n\nfunc (p *SpaceInfo) IsSetTotal() bool {\n\treturn p.Total != nil\n}\n\nfunc (p *SpaceInfo) IsSetHasMore() bool {\n\treturn p.HasMore != nil\n}\n\nfunc (p *SpaceInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SpaceInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SpaceInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*BotSpaceV2, 0, size)\n\tvalues := make([]BotSpaceV2, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BotSpaceList = _field\n\treturn nil\n}\nfunc (p *SpaceInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasPersonalSpace = _field\n\treturn nil\n}\nfunc (p *SpaceInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TeamSpaceNum = _field\n\treturn nil\n}\nfunc (p *SpaceInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MaxTeamSpaceNum = _field\n\treturn nil\n}\nfunc (p *SpaceInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*BotSpaceV2, 0, size)\n\tvalues := make([]BotSpaceV2, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RecentlyUsedSpaceList = _field\n\treturn nil\n}\nfunc (p *SpaceInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Total = _field\n\treturn nil\n}\nfunc (p *SpaceInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\n\nfunc (p *SpaceInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SpaceInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SpaceInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_space_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.BotSpaceList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.BotSpaceList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SpaceInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_personal_space\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasPersonalSpace); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SpaceInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"team_space_num\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.TeamSpaceNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SpaceInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"max_team_space_num\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.MaxTeamSpaceNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SpaceInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"recently_used_space_list\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.RecentlyUsedSpaceList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.RecentlyUsedSpaceList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *SpaceInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTotal() {\n\t\tif err = oprot.WriteFieldBegin(\"total\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Total); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *SpaceInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHasMore() {\n\t\tif err = oprot.WriteFieldBegin(\"has_more\", thrift.BOOL, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.HasMore); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *SpaceInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SpaceInfo(%+v)\", *p)\n\n}\n\ntype GetSpaceListV2Response struct {\n\tData     *SpaceInfo     `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetSpaceListV2Response() *GetSpaceListV2Response {\n\treturn &GetSpaceListV2Response{}\n}\n\nfunc (p *GetSpaceListV2Response) InitDefault() {\n}\n\nvar GetSpaceListV2Response_Data_DEFAULT *SpaceInfo\n\nfunc (p *GetSpaceListV2Response) GetData() (v *SpaceInfo) {\n\tif !p.IsSetData() {\n\t\treturn GetSpaceListV2Response_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetSpaceListV2Response) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetSpaceListV2Response) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetSpaceListV2Response_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetSpaceListV2Response) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetSpaceListV2Response_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetSpaceListV2Response = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetSpaceListV2Response) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetSpaceListV2Response) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetSpaceListV2Response) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetSpaceListV2Response[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetSpaceListV2Response[fieldId]))\n}\n\nfunc (p *GetSpaceListV2Response) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewSpaceInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetSpaceListV2Response) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetSpaceListV2Response) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetSpaceListV2Response) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetSpaceListV2Response) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetSpaceListV2Response\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetSpaceListV2Response) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetSpaceListV2Response) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetSpaceListV2Response) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetSpaceListV2Response) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetSpaceListV2Response) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetSpaceListV2Response(%+v)\", *p)\n\n}\n\ntype GetImagexShortUrlResponse struct {\n\tData     *GetImagexShortUrlData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                  `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                 `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp         `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetImagexShortUrlResponse() *GetImagexShortUrlResponse {\n\treturn &GetImagexShortUrlResponse{}\n}\n\nfunc (p *GetImagexShortUrlResponse) InitDefault() {\n}\n\nvar GetImagexShortUrlResponse_Data_DEFAULT *GetImagexShortUrlData\n\nfunc (p *GetImagexShortUrlResponse) GetData() (v *GetImagexShortUrlData) {\n\tif !p.IsSetData() {\n\t\treturn GetImagexShortUrlResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetImagexShortUrlResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetImagexShortUrlResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetImagexShortUrlResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetImagexShortUrlResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetImagexShortUrlResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetImagexShortUrlResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetImagexShortUrlResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetImagexShortUrlResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetImagexShortUrlResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetImagexShortUrlResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetImagexShortUrlResponse[fieldId]))\n}\n\nfunc (p *GetImagexShortUrlResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetImagexShortUrlData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetImagexShortUrlResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetImagexShortUrlResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetImagexShortUrlResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetImagexShortUrlResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetImagexShortUrlResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetImagexShortUrlResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetImagexShortUrlResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetImagexShortUrlResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetImagexShortUrlResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetImagexShortUrlResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetImagexShortUrlResponse(%+v)\", *p)\n\n}\n\ntype GetImagexShortUrlData struct {\n\t//Audit status, key uri, value url and, audit status\n\tURLInfo map[string]*UrlInfo `thrift:\"url_info,1\" form:\"url_info\" json:\"url_info\" query:\"url_info\"`\n}\n\nfunc NewGetImagexShortUrlData() *GetImagexShortUrlData {\n\treturn &GetImagexShortUrlData{}\n}\n\nfunc (p *GetImagexShortUrlData) InitDefault() {\n}\n\nfunc (p *GetImagexShortUrlData) GetURLInfo() (v map[string]*UrlInfo) {\n\treturn p.URLInfo\n}\n\nvar fieldIDToName_GetImagexShortUrlData = map[int16]string{\n\t1: \"url_info\",\n}\n\nfunc (p *GetImagexShortUrlData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetImagexShortUrlData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetImagexShortUrlData) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*UrlInfo, size)\n\tvalues := make([]UrlInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.URLInfo = _field\n\treturn nil\n}\n\nfunc (p *GetImagexShortUrlData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetImagexShortUrlData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetImagexShortUrlData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url_info\", thrift.MAP, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.URLInfo)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.URLInfo {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *GetImagexShortUrlData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetImagexShortUrlData(%+v)\", *p)\n\n}\n\ntype UrlInfo struct {\n\tURL          string `thrift:\"url,1\" form:\"url\" json:\"url\" query:\"url\"`\n\tReviewStatus bool   `thrift:\"review_status,2\" form:\"review_status\" json:\"review_status\" query:\"review_status\"`\n}\n\nfunc NewUrlInfo() *UrlInfo {\n\treturn &UrlInfo{}\n}\n\nfunc (p *UrlInfo) InitDefault() {\n}\n\nfunc (p *UrlInfo) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *UrlInfo) GetReviewStatus() (v bool) {\n\treturn p.ReviewStatus\n}\n\nvar fieldIDToName_UrlInfo = map[int16]string{\n\t1: \"url\",\n\t2: \"review_status\",\n}\n\nfunc (p *UrlInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UrlInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UrlInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *UrlInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReviewStatus = _field\n\treturn nil\n}\n\nfunc (p *UrlInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UrlInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UrlInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UrlInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"review_status\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.ReviewStatus); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UrlInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UrlInfo(%+v)\", *p)\n\n}\n\ntype GetImagexShortUrlRequest struct {\n\tUris  []string      `thrift:\"uris,1\" form:\"uris\" json:\"uris\" query:\"uris\"`\n\tScene GetImageScene `thrift:\"scene,2\" form:\"scene\" json:\"scene\" query:\"scene\"`\n\tBase  *base.Base    `thrift:\"Base,255\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetImagexShortUrlRequest() *GetImagexShortUrlRequest {\n\treturn &GetImagexShortUrlRequest{}\n}\n\nfunc (p *GetImagexShortUrlRequest) InitDefault() {\n}\n\nfunc (p *GetImagexShortUrlRequest) GetUris() (v []string) {\n\treturn p.Uris\n}\n\nfunc (p *GetImagexShortUrlRequest) GetScene() (v GetImageScene) {\n\treturn p.Scene\n}\n\nvar GetImagexShortUrlRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetImagexShortUrlRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetImagexShortUrlRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetImagexShortUrlRequest = map[int16]string{\n\t1:   \"uris\",\n\t2:   \"scene\",\n\t255: \"Base\",\n}\n\nfunc (p *GetImagexShortUrlRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetImagexShortUrlRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetImagexShortUrlRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetImagexShortUrlRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Uris = _field\n\treturn nil\n}\nfunc (p *GetImagexShortUrlRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field GetImageScene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = GetImageScene(v)\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *GetImagexShortUrlRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetImagexShortUrlRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetImagexShortUrlRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetImagexShortUrlRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"uris\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Uris)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Uris {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetImagexShortUrlRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"scene\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Scene)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetImagexShortUrlRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetImagexShortUrlRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetImagexShortUrlRequest(%+v)\", *p)\n\n}\n\ntype UserBasicInfo struct {\n\tUserId int64 `thrift:\"UserId,1,required\" form:\"user_id,required\" json:\"user_id,string,required\"`\n\t// nickname\n\tUsername string `thrift:\"Username,3,required\" form:\"user_name,required\" json:\"user_name,required\"`\n\t// avatar\n\tUserAvatar string `thrift:\"UserAvatar,4,required\" form:\"user_avatar,required\" json:\"user_avatar,required\"`\n\t// user name\n\tUserUniqueName *string `thrift:\"UserUniqueName,5,optional\" form:\"user_unique_name\" json:\"user_unique_name,omitempty\"`\n\t// user tag\n\tUserLabel *bot_common.UserLabel `thrift:\"UserLabel,6,optional\" form:\"user_label\" json:\"user_label,omitempty\"`\n\t// user creation time\n\tCreateTime *int64 `thrift:\"CreateTime,7,optional\" form:\"create_time\" json:\"create_time,omitempty\"`\n}\n\nfunc NewUserBasicInfo() *UserBasicInfo {\n\treturn &UserBasicInfo{}\n}\n\nfunc (p *UserBasicInfo) InitDefault() {\n}\n\nfunc (p *UserBasicInfo) GetUserId() (v int64) {\n\treturn p.UserId\n}\n\nfunc (p *UserBasicInfo) GetUsername() (v string) {\n\treturn p.Username\n}\n\nfunc (p *UserBasicInfo) GetUserAvatar() (v string) {\n\treturn p.UserAvatar\n}\n\nvar UserBasicInfo_UserUniqueName_DEFAULT string\n\nfunc (p *UserBasicInfo) GetUserUniqueName() (v string) {\n\tif !p.IsSetUserUniqueName() {\n\t\treturn UserBasicInfo_UserUniqueName_DEFAULT\n\t}\n\treturn *p.UserUniqueName\n}\n\nvar UserBasicInfo_UserLabel_DEFAULT *bot_common.UserLabel\n\nfunc (p *UserBasicInfo) GetUserLabel() (v *bot_common.UserLabel) {\n\tif !p.IsSetUserLabel() {\n\t\treturn UserBasicInfo_UserLabel_DEFAULT\n\t}\n\treturn p.UserLabel\n}\n\nvar UserBasicInfo_CreateTime_DEFAULT int64\n\nfunc (p *UserBasicInfo) GetCreateTime() (v int64) {\n\tif !p.IsSetCreateTime() {\n\t\treturn UserBasicInfo_CreateTime_DEFAULT\n\t}\n\treturn *p.CreateTime\n}\n\nvar fieldIDToName_UserBasicInfo = map[int16]string{\n\t1: \"UserId\",\n\t3: \"Username\",\n\t4: \"UserAvatar\",\n\t5: \"UserUniqueName\",\n\t6: \"UserLabel\",\n\t7: \"CreateTime\",\n}\n\nfunc (p *UserBasicInfo) IsSetUserUniqueName() bool {\n\treturn p.UserUniqueName != nil\n}\n\nfunc (p *UserBasicInfo) IsSetUserLabel() bool {\n\treturn p.UserLabel != nil\n}\n\nfunc (p *UserBasicInfo) IsSetCreateTime() bool {\n\treturn p.CreateTime != nil\n}\n\nfunc (p *UserBasicInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetUserId bool = false\n\tvar issetUsername bool = false\n\tvar issetUserAvatar bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUserId = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUsername = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUserAvatar = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetUserId {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUsername {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUserAvatar {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserBasicInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UserBasicInfo[fieldId]))\n}\n\nfunc (p *UserBasicInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserId = _field\n\treturn nil\n}\nfunc (p *UserBasicInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Username = _field\n\treturn nil\n}\nfunc (p *UserBasicInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserAvatar = _field\n\treturn nil\n}\nfunc (p *UserBasicInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserUniqueName = _field\n\treturn nil\n}\nfunc (p *UserBasicInfo) ReadField6(iprot thrift.TProtocol) error {\n\t_field := bot_common.NewUserLabel()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserLabel = _field\n\treturn nil\n}\nfunc (p *UserBasicInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\n\nfunc (p *UserBasicInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserBasicInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserBasicInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserId\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserBasicInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Username\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Username); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UserBasicInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserAvatar\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserAvatar); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UserBasicInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserUniqueName() {\n\t\tif err = oprot.WriteFieldBegin(\"UserUniqueName\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UserUniqueName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UserBasicInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserLabel() {\n\t\tif err = oprot.WriteFieldBegin(\"UserLabel\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.UserLabel.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *UserBasicInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreateTime() {\n\t\tif err = oprot.WriteFieldBegin(\"CreateTime\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreateTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *UserBasicInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserBasicInfo(%+v)\", *p)\n\n}\n\ntype MGetUserBasicInfoRequest struct {\n\tUserIds        []string `thrift:\"UserIds,1,required\" form:\"user_ids,required\" json:\"user_ids,string,required\"`\n\tNeedUserStatus *bool    `thrift:\"NeedUserStatus,2,optional\" form:\"need_user_status\" json:\"need_user_status,omitempty\"`\n\t// Whether enterprise authentication information is required, the default is true when the front end is called through AGW\n\tNeedEnterpriseIdentity *bool `thrift:\"NeedEnterpriseIdentity,3,optional\" form:\"need_enterprise_identity\" json:\"need_enterprise_identity,omitempty\"`\n\t// Do you need a volcano username?\n\tNeedVolcanoUserName *bool      `thrift:\"NeedVolcanoUserName,4,optional\" form:\"need_volcano_user_name\" json:\"need_volcano_user_name,omitempty\"`\n\tBase                *base.Base `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewMGetUserBasicInfoRequest() *MGetUserBasicInfoRequest {\n\treturn &MGetUserBasicInfoRequest{}\n}\n\nfunc (p *MGetUserBasicInfoRequest) InitDefault() {\n}\n\nfunc (p *MGetUserBasicInfoRequest) GetUserIds() (v []string) {\n\treturn p.UserIds\n}\n\nvar MGetUserBasicInfoRequest_NeedUserStatus_DEFAULT bool\n\nfunc (p *MGetUserBasicInfoRequest) GetNeedUserStatus() (v bool) {\n\tif !p.IsSetNeedUserStatus() {\n\t\treturn MGetUserBasicInfoRequest_NeedUserStatus_DEFAULT\n\t}\n\treturn *p.NeedUserStatus\n}\n\nvar MGetUserBasicInfoRequest_NeedEnterpriseIdentity_DEFAULT bool\n\nfunc (p *MGetUserBasicInfoRequest) GetNeedEnterpriseIdentity() (v bool) {\n\tif !p.IsSetNeedEnterpriseIdentity() {\n\t\treturn MGetUserBasicInfoRequest_NeedEnterpriseIdentity_DEFAULT\n\t}\n\treturn *p.NeedEnterpriseIdentity\n}\n\nvar MGetUserBasicInfoRequest_NeedVolcanoUserName_DEFAULT bool\n\nfunc (p *MGetUserBasicInfoRequest) GetNeedVolcanoUserName() (v bool) {\n\tif !p.IsSetNeedVolcanoUserName() {\n\t\treturn MGetUserBasicInfoRequest_NeedVolcanoUserName_DEFAULT\n\t}\n\treturn *p.NeedVolcanoUserName\n}\n\nvar MGetUserBasicInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *MGetUserBasicInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn MGetUserBasicInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_MGetUserBasicInfoRequest = map[int16]string{\n\t1:   \"UserIds\",\n\t2:   \"NeedUserStatus\",\n\t3:   \"NeedEnterpriseIdentity\",\n\t4:   \"NeedVolcanoUserName\",\n\t255: \"Base\",\n}\n\nfunc (p *MGetUserBasicInfoRequest) IsSetNeedUserStatus() bool {\n\treturn p.NeedUserStatus != nil\n}\n\nfunc (p *MGetUserBasicInfoRequest) IsSetNeedEnterpriseIdentity() bool {\n\treturn p.NeedEnterpriseIdentity != nil\n}\n\nfunc (p *MGetUserBasicInfoRequest) IsSetNeedVolcanoUserName() bool {\n\treturn p.NeedVolcanoUserName != nil\n}\n\nfunc (p *MGetUserBasicInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *MGetUserBasicInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetUserIds bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUserIds = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetUserIds {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MGetUserBasicInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_MGetUserBasicInfoRequest[fieldId]))\n}\n\nfunc (p *MGetUserBasicInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.UserIds = _field\n\treturn nil\n}\nfunc (p *MGetUserBasicInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NeedUserStatus = _field\n\treturn nil\n}\nfunc (p *MGetUserBasicInfoRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NeedEnterpriseIdentity = _field\n\treturn nil\n}\nfunc (p *MGetUserBasicInfoRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NeedVolcanoUserName = _field\n\treturn nil\n}\nfunc (p *MGetUserBasicInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *MGetUserBasicInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetUserBasicInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MGetUserBasicInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"UserIds\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.UserIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.UserIds {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MGetUserBasicInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedUserStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"NeedUserStatus\", thrift.BOOL, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NeedUserStatus); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MGetUserBasicInfoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedEnterpriseIdentity() {\n\t\tif err = oprot.WriteFieldBegin(\"NeedEnterpriseIdentity\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NeedEnterpriseIdentity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *MGetUserBasicInfoRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedVolcanoUserName() {\n\t\tif err = oprot.WriteFieldBegin(\"NeedVolcanoUserName\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NeedVolcanoUserName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *MGetUserBasicInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MGetUserBasicInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MGetUserBasicInfoRequest(%+v)\", *p)\n\n}\n\ntype MGetUserBasicInfoResponse struct {\n\tUserBasicInfoMap map[string]*UserBasicInfo `thrift:\"UserBasicInfoMap,1,optional\" form:\"id_user_info_map\" json:\"id_user_info_map,omitempty\"`\n\tCode             int64                     `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg              string                    `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp         *base.BaseResp            `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewMGetUserBasicInfoResponse() *MGetUserBasicInfoResponse {\n\treturn &MGetUserBasicInfoResponse{}\n}\n\nfunc (p *MGetUserBasicInfoResponse) InitDefault() {\n}\n\nvar MGetUserBasicInfoResponse_UserBasicInfoMap_DEFAULT map[string]*UserBasicInfo\n\nfunc (p *MGetUserBasicInfoResponse) GetUserBasicInfoMap() (v map[string]*UserBasicInfo) {\n\tif !p.IsSetUserBasicInfoMap() {\n\t\treturn MGetUserBasicInfoResponse_UserBasicInfoMap_DEFAULT\n\t}\n\treturn p.UserBasicInfoMap\n}\n\nfunc (p *MGetUserBasicInfoResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *MGetUserBasicInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar MGetUserBasicInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *MGetUserBasicInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn MGetUserBasicInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_MGetUserBasicInfoResponse = map[int16]string{\n\t1:   \"UserBasicInfoMap\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *MGetUserBasicInfoResponse) IsSetUserBasicInfoMap() bool {\n\treturn p.UserBasicInfoMap != nil\n}\n\nfunc (p *MGetUserBasicInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *MGetUserBasicInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MGetUserBasicInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MGetUserBasicInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*UserBasicInfo, size)\n\tvalues := make([]UserBasicInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.UserBasicInfoMap = _field\n\treturn nil\n}\nfunc (p *MGetUserBasicInfoResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *MGetUserBasicInfoResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *MGetUserBasicInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *MGetUserBasicInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetUserBasicInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MGetUserBasicInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserBasicInfoMap() {\n\t\tif err = oprot.WriteFieldBegin(\"UserBasicInfoMap\", thrift.MAP, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.UserBasicInfoMap)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.UserBasicInfoMap {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MGetUserBasicInfoResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *MGetUserBasicInfoResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *MGetUserBasicInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MGetUserBasicInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MGetUserBasicInfoResponse(%+v)\", *p)\n\n}\n\ntype GetBotPopupInfoRequest struct {\n\tBotPopupTypes []BotPopupType `thrift:\"bot_popup_types,1,required\" form:\"bot_popup_types,required\" json:\"bot_popup_types,required\" query:\"bot_popup_types,required\"`\n\tBotID         int64          `thrift:\"bot_id,2,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\tBase          *base.Base     `thrift:\"Base,255\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetBotPopupInfoRequest() *GetBotPopupInfoRequest {\n\treturn &GetBotPopupInfoRequest{}\n}\n\nfunc (p *GetBotPopupInfoRequest) InitDefault() {\n}\n\nfunc (p *GetBotPopupInfoRequest) GetBotPopupTypes() (v []BotPopupType) {\n\treturn p.BotPopupTypes\n}\n\nfunc (p *GetBotPopupInfoRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar GetBotPopupInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetBotPopupInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetBotPopupInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetBotPopupInfoRequest = map[int16]string{\n\t1:   \"bot_popup_types\",\n\t2:   \"bot_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetBotPopupInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetBotPopupInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotPopupTypes bool = false\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotPopupTypes = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotPopupTypes {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetBotPopupInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetBotPopupInfoRequest[fieldId]))\n}\n\nfunc (p *GetBotPopupInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]BotPopupType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem BotPopupType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = BotPopupType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BotPopupTypes = _field\n\treturn nil\n}\nfunc (p *GetBotPopupInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetBotPopupInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetBotPopupInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotPopupInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetBotPopupInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_popup_types\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I32, len(p.BotPopupTypes)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.BotPopupTypes {\n\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetBotPopupInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetBotPopupInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetBotPopupInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetBotPopupInfoRequest(%+v)\", *p)\n\n}\n\ntype GetBotPopupInfoResponse struct {\n\tData     *BotPopupInfoData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64             `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string            `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp    `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetBotPopupInfoResponse() *GetBotPopupInfoResponse {\n\treturn &GetBotPopupInfoResponse{}\n}\n\nfunc (p *GetBotPopupInfoResponse) InitDefault() {\n}\n\nvar GetBotPopupInfoResponse_Data_DEFAULT *BotPopupInfoData\n\nfunc (p *GetBotPopupInfoResponse) GetData() (v *BotPopupInfoData) {\n\tif !p.IsSetData() {\n\t\treturn GetBotPopupInfoResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetBotPopupInfoResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetBotPopupInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetBotPopupInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetBotPopupInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetBotPopupInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetBotPopupInfoResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetBotPopupInfoResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetBotPopupInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetBotPopupInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetBotPopupInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetBotPopupInfoResponse[fieldId]))\n}\n\nfunc (p *GetBotPopupInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBotPopupInfoData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetBotPopupInfoResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetBotPopupInfoResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetBotPopupInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetBotPopupInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotPopupInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetBotPopupInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetBotPopupInfoResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetBotPopupInfoResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetBotPopupInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetBotPopupInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetBotPopupInfoResponse(%+v)\", *p)\n\n}\n\ntype BotPopupInfoData struct {\n\tBotPopupCountInfo map[BotPopupType]int64 `thrift:\"bot_popup_count_info,1,required\" form:\"bot_popup_count_info,required\" json:\"bot_popup_count_info,required\" query:\"bot_popup_count_info,required\"`\n}\n\nfunc NewBotPopupInfoData() *BotPopupInfoData {\n\treturn &BotPopupInfoData{}\n}\n\nfunc (p *BotPopupInfoData) InitDefault() {\n}\n\nfunc (p *BotPopupInfoData) GetBotPopupCountInfo() (v map[BotPopupType]int64) {\n\treturn p.BotPopupCountInfo\n}\n\nvar fieldIDToName_BotPopupInfoData = map[int16]string{\n\t1: \"bot_popup_count_info\",\n}\n\nfunc (p *BotPopupInfoData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotPopupCountInfo bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotPopupCountInfo = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotPopupCountInfo {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BotPopupInfoData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_BotPopupInfoData[fieldId]))\n}\n\nfunc (p *BotPopupInfoData) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[BotPopupType]int64, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key BotPopupType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = BotPopupType(v)\n\t\t}\n\n\t\tvar _val int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BotPopupCountInfo = _field\n\treturn nil\n}\n\nfunc (p *BotPopupInfoData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BotPopupInfoData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BotPopupInfoData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_popup_count_info\", thrift.MAP, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I32, thrift.I64, len(p.BotPopupCountInfo)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.BotPopupCountInfo {\n\t\tif err := oprot.WriteI32(int32(k)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *BotPopupInfoData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BotPopupInfoData(%+v)\", *p)\n\n}\n\ntype UpdateBotPopupInfoResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewUpdateBotPopupInfoResponse() *UpdateBotPopupInfoResponse {\n\treturn &UpdateBotPopupInfoResponse{}\n}\n\nfunc (p *UpdateBotPopupInfoResponse) InitDefault() {\n}\n\nfunc (p *UpdateBotPopupInfoResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateBotPopupInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateBotPopupInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateBotPopupInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateBotPopupInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateBotPopupInfoResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateBotPopupInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateBotPopupInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateBotPopupInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateBotPopupInfoResponse[fieldId]))\n}\n\nfunc (p *UpdateBotPopupInfoResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateBotPopupInfoResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateBotPopupInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateBotPopupInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateBotPopupInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateBotPopupInfoResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateBotPopupInfoResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateBotPopupInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateBotPopupInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateBotPopupInfoResponse(%+v)\", *p)\n\n}\n\ntype UpdateBotPopupInfoRequest struct {\n\tBotPopupType BotPopupType `thrift:\"bot_popup_type,1,required\" form:\"bot_popup_type,required\" json:\"bot_popup_type,required\" query:\"bot_popup_type,required\"`\n\tBotID        int64        `thrift:\"bot_id,2,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\tBase         *base.Base   `thrift:\"Base,255\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewUpdateBotPopupInfoRequest() *UpdateBotPopupInfoRequest {\n\treturn &UpdateBotPopupInfoRequest{}\n}\n\nfunc (p *UpdateBotPopupInfoRequest) InitDefault() {\n}\n\nfunc (p *UpdateBotPopupInfoRequest) GetBotPopupType() (v BotPopupType) {\n\treturn p.BotPopupType\n}\n\nfunc (p *UpdateBotPopupInfoRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar UpdateBotPopupInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateBotPopupInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateBotPopupInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateBotPopupInfoRequest = map[int16]string{\n\t1:   \"bot_popup_type\",\n\t2:   \"bot_id\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateBotPopupInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateBotPopupInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotPopupType bool = false\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotPopupType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotPopupType {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateBotPopupInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateBotPopupInfoRequest[fieldId]))\n}\n\nfunc (p *UpdateBotPopupInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field BotPopupType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BotPopupType(v)\n\t}\n\tp.BotPopupType = _field\n\treturn nil\n}\nfunc (p *UpdateBotPopupInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *UpdateBotPopupInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateBotPopupInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateBotPopupInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateBotPopupInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_popup_type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BotPopupType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateBotPopupInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateBotPopupInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateBotPopupInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateBotPopupInfoRequest(%+v)\", *p)\n\n}\n\ntype ReportUserBehaviorRequest struct {\n\tResourceID   int64             `thrift:\"ResourceID,1,required\" form:\"resource_id,required\" json:\"resource_id,string,required\"`\n\tResourceType SpaceResourceType `thrift:\"ResourceType,2,required\" form:\"resource_type,required\" json:\"resource_type,required\"`\n\tBehaviorType BehaviorType      `thrift:\"BehaviorType,3,required\" form:\"behavior_type,required\" json:\"behavior_type,required\"`\n\t// This requirement must be passed on\n\tSpaceID *int64     `thrift:\"SpaceID,4,optional\" form:\"space_id\" json:\"space_id,string,omitempty\"`\n\tBase    *base.Base `thrift:\"Base,255\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewReportUserBehaviorRequest() *ReportUserBehaviorRequest {\n\treturn &ReportUserBehaviorRequest{}\n}\n\nfunc (p *ReportUserBehaviorRequest) InitDefault() {\n}\n\nfunc (p *ReportUserBehaviorRequest) GetResourceID() (v int64) {\n\treturn p.ResourceID\n}\n\nfunc (p *ReportUserBehaviorRequest) GetResourceType() (v SpaceResourceType) {\n\treturn p.ResourceType\n}\n\nfunc (p *ReportUserBehaviorRequest) GetBehaviorType() (v BehaviorType) {\n\treturn p.BehaviorType\n}\n\nvar ReportUserBehaviorRequest_SpaceID_DEFAULT int64\n\nfunc (p *ReportUserBehaviorRequest) GetSpaceID() (v int64) {\n\tif !p.IsSetSpaceID() {\n\t\treturn ReportUserBehaviorRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar ReportUserBehaviorRequest_Base_DEFAULT *base.Base\n\nfunc (p *ReportUserBehaviorRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ReportUserBehaviorRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ReportUserBehaviorRequest = map[int16]string{\n\t1:   \"ResourceID\",\n\t2:   \"ResourceType\",\n\t3:   \"BehaviorType\",\n\t4:   \"SpaceID\",\n\t255: \"Base\",\n}\n\nfunc (p *ReportUserBehaviorRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *ReportUserBehaviorRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ReportUserBehaviorRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetResourceID bool = false\n\tvar issetResourceType bool = false\n\tvar issetBehaviorType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetResourceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetResourceType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBehaviorType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetResourceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetResourceType {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBehaviorType {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ReportUserBehaviorRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ReportUserBehaviorRequest[fieldId]))\n}\n\nfunc (p *ReportUserBehaviorRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ResourceID = _field\n\treturn nil\n}\nfunc (p *ReportUserBehaviorRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field SpaceResourceType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SpaceResourceType(v)\n\t}\n\tp.ResourceType = _field\n\treturn nil\n}\nfunc (p *ReportUserBehaviorRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field BehaviorType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = BehaviorType(v)\n\t}\n\tp.BehaviorType = _field\n\treturn nil\n}\nfunc (p *ReportUserBehaviorRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ReportUserBehaviorRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ReportUserBehaviorRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ReportUserBehaviorRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ReportUserBehaviorRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResourceID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ResourceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ReportUserBehaviorRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResourceType\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ResourceType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ReportUserBehaviorRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BehaviorType\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.BehaviorType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ReportUserBehaviorRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"SpaceID\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ReportUserBehaviorRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ReportUserBehaviorRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ReportUserBehaviorRequest(%+v)\", *p)\n\n}\n\ntype ReportUserBehaviorResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewReportUserBehaviorResponse() *ReportUserBehaviorResponse {\n\treturn &ReportUserBehaviorResponse{}\n}\n\nfunc (p *ReportUserBehaviorResponse) InitDefault() {\n}\n\nfunc (p *ReportUserBehaviorResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ReportUserBehaviorResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ReportUserBehaviorResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ReportUserBehaviorResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ReportUserBehaviorResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ReportUserBehaviorResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ReportUserBehaviorResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ReportUserBehaviorResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ReportUserBehaviorResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ReportUserBehaviorResponse[fieldId]))\n}\n\nfunc (p *ReportUserBehaviorResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ReportUserBehaviorResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ReportUserBehaviorResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ReportUserBehaviorResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ReportUserBehaviorResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ReportUserBehaviorResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ReportUserBehaviorResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ReportUserBehaviorResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ReportUserBehaviorResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ReportUserBehaviorResponse(%+v)\", *p)\n\n}\n\ntype FileInfo struct {\n\tURL string `thrift:\"url,1\" form:\"url\" json:\"url\" query:\"url\"`\n\tURI string `thrift:\"uri,2\" form:\"uri\" json:\"uri\" query:\"uri\"`\n}\n\nfunc NewFileInfo() *FileInfo {\n\treturn &FileInfo{}\n}\n\nfunc (p *FileInfo) InitDefault() {\n}\n\nfunc (p *FileInfo) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *FileInfo) GetURI() (v string) {\n\treturn p.URI\n}\n\nvar fieldIDToName_FileInfo = map[int16]string{\n\t1: \"url\",\n\t2: \"uri\",\n}\n\nfunc (p *FileInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FileInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FileInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *FileInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URI = _field\n\treturn nil\n}\n\nfunc (p *FileInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FileInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FileInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FileInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"uri\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *FileInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FileInfo(%+v)\", *p)\n\n}\n\ntype GetFileUrlsRequest struct {\n\tScene GetFileUrlsScene `thrift:\"scene,1\" form:\"scene\" json:\"scene\" query:\"scene\"`\n\tBase  *base.Base       `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewGetFileUrlsRequest() *GetFileUrlsRequest {\n\treturn &GetFileUrlsRequest{}\n}\n\nfunc (p *GetFileUrlsRequest) InitDefault() {\n}\n\nfunc (p *GetFileUrlsRequest) GetScene() (v GetFileUrlsScene) {\n\treturn p.Scene\n}\n\nvar GetFileUrlsRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetFileUrlsRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetFileUrlsRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetFileUrlsRequest = map[int16]string{\n\t1:   \"scene\",\n\t255: \"Base\",\n}\n\nfunc (p *GetFileUrlsRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetFileUrlsRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetFileUrlsRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetFileUrlsRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field GetFileUrlsScene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = GetFileUrlsScene(v)\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *GetFileUrlsRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetFileUrlsRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetFileUrlsRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetFileUrlsRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"scene\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Scene)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetFileUrlsRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetFileUrlsRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetFileUrlsRequest(%+v)\", *p)\n\n}\n\ntype GetFileUrlsResponse struct {\n\tFileList []*FileInfo    `thrift:\"file_list,1\" form:\"file_list\" json:\"file_list\" query:\"file_list\"`\n\tCode     int64          `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string         `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewGetFileUrlsResponse() *GetFileUrlsResponse {\n\treturn &GetFileUrlsResponse{}\n}\n\nfunc (p *GetFileUrlsResponse) InitDefault() {\n}\n\nfunc (p *GetFileUrlsResponse) GetFileList() (v []*FileInfo) {\n\treturn p.FileList\n}\n\nfunc (p *GetFileUrlsResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetFileUrlsResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetFileUrlsResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetFileUrlsResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetFileUrlsResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetFileUrlsResponse = map[int16]string{\n\t1:   \"file_list\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetFileUrlsResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetFileUrlsResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetFileUrlsResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetFileUrlsResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*FileInfo, 0, size)\n\tvalues := make([]FileInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FileList = _field\n\treturn nil\n}\nfunc (p *GetFileUrlsResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetFileUrlsResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetFileUrlsResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetFileUrlsResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetFileUrlsResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetFileUrlsResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"file_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FileList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.FileList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetFileUrlsResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetFileUrlsResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetFileUrlsResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetFileUrlsResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetFileUrlsResponse(%+v)\", *p)\n\n}\n\ntype PlaygroundService interface {\n\tUpdateDraftBotInfoAgw(ctx context.Context, request *UpdateDraftBotInfoAgwRequest) (r *UpdateDraftBotInfoAgwResponse, err error)\n\n\tGetDraftBotInfoAgw(ctx context.Context, request *GetDraftBotInfoAgwRequest) (r *GetDraftBotInfoAgwResponse, err error)\n\n\tGetImagexShortUrl(ctx context.Context, request *GetImagexShortUrlRequest) (r *GetImagexShortUrlResponse, err error)\n\t// public popup_info\n\tGetBotPopupInfo(ctx context.Context, request *GetBotPopupInfoRequest) (r *GetBotPopupInfoResponse, err error)\n\n\tUpdateBotPopupInfo(ctx context.Context, request *UpdateBotPopupInfoRequest) (r *UpdateBotPopupInfoResponse, err error)\n\n\tReportUserBehavior(ctx context.Context, request *ReportUserBehaviorRequest) (r *ReportUserBehaviorResponse, err error)\n\t// Create shortcut instructions\n\tCreateUpdateShortcutCommand(ctx context.Context, req *CreateUpdateShortcutCommandRequest) (r *CreateUpdateShortcutCommandResponse, err error)\n\n\tGetFileUrls(ctx context.Context, req *GetFileUrlsRequest) (r *GetFileUrlsResponse, err error)\n\t// prompt resource\n\tGetOfficialPromptResourceList(ctx context.Context, request *GetOfficialPromptResourceListRequest) (r *GetOfficialPromptResourceListResponse, err error)\n\n\tGetPromptResourceInfo(ctx context.Context, request *GetPromptResourceInfoRequest) (r *GetPromptResourceInfoResponse, err error)\n\n\tUpsertPromptResource(ctx context.Context, request *UpsertPromptResourceRequest) (r *UpsertPromptResourceResponse, err error)\n\n\tDeletePromptResource(ctx context.Context, request *DeletePromptResourceRequest) (r *DeletePromptResourceResponse, err error)\n\n\tGetSpaceListV2(ctx context.Context, request *GetSpaceListV2Request) (r *GetSpaceListV2Response, err error)\n\n\tMGetUserBasicInfo(ctx context.Context, request *MGetUserBasicInfoRequest) (r *MGetUserBasicInfoResponse, err error)\n}\n\ntype PlaygroundServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewPlaygroundServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *PlaygroundServiceClient {\n\treturn &PlaygroundServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewPlaygroundServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *PlaygroundServiceClient {\n\treturn &PlaygroundServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewPlaygroundServiceClient(c thrift.TClient) *PlaygroundServiceClient {\n\treturn &PlaygroundServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *PlaygroundServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *PlaygroundServiceClient) UpdateDraftBotInfoAgw(ctx context.Context, request *UpdateDraftBotInfoAgwRequest) (r *UpdateDraftBotInfoAgwResponse, err error) {\n\tvar _args PlaygroundServiceUpdateDraftBotInfoAgwArgs\n\t_args.Request = request\n\tvar _result PlaygroundServiceUpdateDraftBotInfoAgwResult\n\tif err = p.Client_().Call(ctx, \"UpdateDraftBotInfoAgw\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) GetDraftBotInfoAgw(ctx context.Context, request *GetDraftBotInfoAgwRequest) (r *GetDraftBotInfoAgwResponse, err error) {\n\tvar _args PlaygroundServiceGetDraftBotInfoAgwArgs\n\t_args.Request = request\n\tvar _result PlaygroundServiceGetDraftBotInfoAgwResult\n\tif err = p.Client_().Call(ctx, \"GetDraftBotInfoAgw\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) GetImagexShortUrl(ctx context.Context, request *GetImagexShortUrlRequest) (r *GetImagexShortUrlResponse, err error) {\n\tvar _args PlaygroundServiceGetImagexShortUrlArgs\n\t_args.Request = request\n\tvar _result PlaygroundServiceGetImagexShortUrlResult\n\tif err = p.Client_().Call(ctx, \"GetImagexShortUrl\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) GetBotPopupInfo(ctx context.Context, request *GetBotPopupInfoRequest) (r *GetBotPopupInfoResponse, err error) {\n\tvar _args PlaygroundServiceGetBotPopupInfoArgs\n\t_args.Request = request\n\tvar _result PlaygroundServiceGetBotPopupInfoResult\n\tif err = p.Client_().Call(ctx, \"GetBotPopupInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) UpdateBotPopupInfo(ctx context.Context, request *UpdateBotPopupInfoRequest) (r *UpdateBotPopupInfoResponse, err error) {\n\tvar _args PlaygroundServiceUpdateBotPopupInfoArgs\n\t_args.Request = request\n\tvar _result PlaygroundServiceUpdateBotPopupInfoResult\n\tif err = p.Client_().Call(ctx, \"UpdateBotPopupInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) ReportUserBehavior(ctx context.Context, request *ReportUserBehaviorRequest) (r *ReportUserBehaviorResponse, err error) {\n\tvar _args PlaygroundServiceReportUserBehaviorArgs\n\t_args.Request = request\n\tvar _result PlaygroundServiceReportUserBehaviorResult\n\tif err = p.Client_().Call(ctx, \"ReportUserBehavior\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) CreateUpdateShortcutCommand(ctx context.Context, req *CreateUpdateShortcutCommandRequest) (r *CreateUpdateShortcutCommandResponse, err error) {\n\tvar _args PlaygroundServiceCreateUpdateShortcutCommandArgs\n\t_args.Req = req\n\tvar _result PlaygroundServiceCreateUpdateShortcutCommandResult\n\tif err = p.Client_().Call(ctx, \"CreateUpdateShortcutCommand\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) GetFileUrls(ctx context.Context, req *GetFileUrlsRequest) (r *GetFileUrlsResponse, err error) {\n\tvar _args PlaygroundServiceGetFileUrlsArgs\n\t_args.Req = req\n\tvar _result PlaygroundServiceGetFileUrlsResult\n\tif err = p.Client_().Call(ctx, \"GetFileUrls\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) GetOfficialPromptResourceList(ctx context.Context, request *GetOfficialPromptResourceListRequest) (r *GetOfficialPromptResourceListResponse, err error) {\n\tvar _args PlaygroundServiceGetOfficialPromptResourceListArgs\n\t_args.Request = request\n\tvar _result PlaygroundServiceGetOfficialPromptResourceListResult\n\tif err = p.Client_().Call(ctx, \"GetOfficialPromptResourceList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) GetPromptResourceInfo(ctx context.Context, request *GetPromptResourceInfoRequest) (r *GetPromptResourceInfoResponse, err error) {\n\tvar _args PlaygroundServiceGetPromptResourceInfoArgs\n\t_args.Request = request\n\tvar _result PlaygroundServiceGetPromptResourceInfoResult\n\tif err = p.Client_().Call(ctx, \"GetPromptResourceInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) UpsertPromptResource(ctx context.Context, request *UpsertPromptResourceRequest) (r *UpsertPromptResourceResponse, err error) {\n\tvar _args PlaygroundServiceUpsertPromptResourceArgs\n\t_args.Request = request\n\tvar _result PlaygroundServiceUpsertPromptResourceResult\n\tif err = p.Client_().Call(ctx, \"UpsertPromptResource\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) DeletePromptResource(ctx context.Context, request *DeletePromptResourceRequest) (r *DeletePromptResourceResponse, err error) {\n\tvar _args PlaygroundServiceDeletePromptResourceArgs\n\t_args.Request = request\n\tvar _result PlaygroundServiceDeletePromptResourceResult\n\tif err = p.Client_().Call(ctx, \"DeletePromptResource\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) GetSpaceListV2(ctx context.Context, request *GetSpaceListV2Request) (r *GetSpaceListV2Response, err error) {\n\tvar _args PlaygroundServiceGetSpaceListV2Args\n\t_args.Request = request\n\tvar _result PlaygroundServiceGetSpaceListV2Result\n\tif err = p.Client_().Call(ctx, \"GetSpaceListV2\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PlaygroundServiceClient) MGetUserBasicInfo(ctx context.Context, request *MGetUserBasicInfoRequest) (r *MGetUserBasicInfoResponse, err error) {\n\tvar _args PlaygroundServiceMGetUserBasicInfoArgs\n\t_args.Request = request\n\tvar _result PlaygroundServiceMGetUserBasicInfoResult\n\tif err = p.Client_().Call(ctx, \"MGetUserBasicInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype PlaygroundServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      PlaygroundService\n}\n\nfunc (p *PlaygroundServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *PlaygroundServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *PlaygroundServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewPlaygroundServiceProcessor(handler PlaygroundService) *PlaygroundServiceProcessor {\n\tself := &PlaygroundServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"UpdateDraftBotInfoAgw\", &playgroundServiceProcessorUpdateDraftBotInfoAgw{handler: handler})\n\tself.AddToProcessorMap(\"GetDraftBotInfoAgw\", &playgroundServiceProcessorGetDraftBotInfoAgw{handler: handler})\n\tself.AddToProcessorMap(\"GetImagexShortUrl\", &playgroundServiceProcessorGetImagexShortUrl{handler: handler})\n\tself.AddToProcessorMap(\"GetBotPopupInfo\", &playgroundServiceProcessorGetBotPopupInfo{handler: handler})\n\tself.AddToProcessorMap(\"UpdateBotPopupInfo\", &playgroundServiceProcessorUpdateBotPopupInfo{handler: handler})\n\tself.AddToProcessorMap(\"ReportUserBehavior\", &playgroundServiceProcessorReportUserBehavior{handler: handler})\n\tself.AddToProcessorMap(\"CreateUpdateShortcutCommand\", &playgroundServiceProcessorCreateUpdateShortcutCommand{handler: handler})\n\tself.AddToProcessorMap(\"GetFileUrls\", &playgroundServiceProcessorGetFileUrls{handler: handler})\n\tself.AddToProcessorMap(\"GetOfficialPromptResourceList\", &playgroundServiceProcessorGetOfficialPromptResourceList{handler: handler})\n\tself.AddToProcessorMap(\"GetPromptResourceInfo\", &playgroundServiceProcessorGetPromptResourceInfo{handler: handler})\n\tself.AddToProcessorMap(\"UpsertPromptResource\", &playgroundServiceProcessorUpsertPromptResource{handler: handler})\n\tself.AddToProcessorMap(\"DeletePromptResource\", &playgroundServiceProcessorDeletePromptResource{handler: handler})\n\tself.AddToProcessorMap(\"GetSpaceListV2\", &playgroundServiceProcessorGetSpaceListV2{handler: handler})\n\tself.AddToProcessorMap(\"MGetUserBasicInfo\", &playgroundServiceProcessorMGetUserBasicInfo{handler: handler})\n\treturn self\n}\nfunc (p *PlaygroundServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype playgroundServiceProcessorUpdateDraftBotInfoAgw struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorUpdateDraftBotInfoAgw) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceUpdateDraftBotInfoAgwArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDraftBotInfoAgw\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceUpdateDraftBotInfoAgwResult{}\n\tvar retval *UpdateDraftBotInfoAgwResponse\n\tif retval, err2 = p.handler.UpdateDraftBotInfoAgw(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateDraftBotInfoAgw: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateDraftBotInfoAgw\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateDraftBotInfoAgw\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorGetDraftBotInfoAgw struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorGetDraftBotInfoAgw) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceGetDraftBotInfoAgwArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDraftBotInfoAgw\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceGetDraftBotInfoAgwResult{}\n\tvar retval *GetDraftBotInfoAgwResponse\n\tif retval, err2 = p.handler.GetDraftBotInfoAgw(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDraftBotInfoAgw: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDraftBotInfoAgw\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDraftBotInfoAgw\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorGetImagexShortUrl struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorGetImagexShortUrl) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceGetImagexShortUrlArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetImagexShortUrl\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceGetImagexShortUrlResult{}\n\tvar retval *GetImagexShortUrlResponse\n\tif retval, err2 = p.handler.GetImagexShortUrl(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetImagexShortUrl: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetImagexShortUrl\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetImagexShortUrl\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorGetBotPopupInfo struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorGetBotPopupInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceGetBotPopupInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetBotPopupInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceGetBotPopupInfoResult{}\n\tvar retval *GetBotPopupInfoResponse\n\tif retval, err2 = p.handler.GetBotPopupInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetBotPopupInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetBotPopupInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetBotPopupInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorUpdateBotPopupInfo struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorUpdateBotPopupInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceUpdateBotPopupInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateBotPopupInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceUpdateBotPopupInfoResult{}\n\tvar retval *UpdateBotPopupInfoResponse\n\tif retval, err2 = p.handler.UpdateBotPopupInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateBotPopupInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateBotPopupInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateBotPopupInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorReportUserBehavior struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorReportUserBehavior) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceReportUserBehaviorArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ReportUserBehavior\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceReportUserBehaviorResult{}\n\tvar retval *ReportUserBehaviorResponse\n\tif retval, err2 = p.handler.ReportUserBehavior(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ReportUserBehavior: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ReportUserBehavior\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ReportUserBehavior\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorCreateUpdateShortcutCommand struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorCreateUpdateShortcutCommand) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceCreateUpdateShortcutCommandArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateUpdateShortcutCommand\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceCreateUpdateShortcutCommandResult{}\n\tvar retval *CreateUpdateShortcutCommandResponse\n\tif retval, err2 = p.handler.CreateUpdateShortcutCommand(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateUpdateShortcutCommand: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateUpdateShortcutCommand\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateUpdateShortcutCommand\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorGetFileUrls struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorGetFileUrls) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceGetFileUrlsArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetFileUrls\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceGetFileUrlsResult{}\n\tvar retval *GetFileUrlsResponse\n\tif retval, err2 = p.handler.GetFileUrls(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetFileUrls: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetFileUrls\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetFileUrls\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorGetOfficialPromptResourceList struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorGetOfficialPromptResourceList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceGetOfficialPromptResourceListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetOfficialPromptResourceList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceGetOfficialPromptResourceListResult{}\n\tvar retval *GetOfficialPromptResourceListResponse\n\tif retval, err2 = p.handler.GetOfficialPromptResourceList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetOfficialPromptResourceList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetOfficialPromptResourceList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetOfficialPromptResourceList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorGetPromptResourceInfo struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorGetPromptResourceInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceGetPromptResourceInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetPromptResourceInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceGetPromptResourceInfoResult{}\n\tvar retval *GetPromptResourceInfoResponse\n\tif retval, err2 = p.handler.GetPromptResourceInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetPromptResourceInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetPromptResourceInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetPromptResourceInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorUpsertPromptResource struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorUpsertPromptResource) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceUpsertPromptResourceArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpsertPromptResource\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceUpsertPromptResourceResult{}\n\tvar retval *UpsertPromptResourceResponse\n\tif retval, err2 = p.handler.UpsertPromptResource(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpsertPromptResource: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpsertPromptResource\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpsertPromptResource\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorDeletePromptResource struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorDeletePromptResource) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceDeletePromptResourceArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeletePromptResource\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceDeletePromptResourceResult{}\n\tvar retval *DeletePromptResourceResponse\n\tif retval, err2 = p.handler.DeletePromptResource(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeletePromptResource: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeletePromptResource\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeletePromptResource\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorGetSpaceListV2 struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorGetSpaceListV2) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceGetSpaceListV2Args{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetSpaceListV2\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceGetSpaceListV2Result{}\n\tvar retval *GetSpaceListV2Response\n\tif retval, err2 = p.handler.GetSpaceListV2(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetSpaceListV2: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetSpaceListV2\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetSpaceListV2\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype playgroundServiceProcessorMGetUserBasicInfo struct {\n\thandler PlaygroundService\n}\n\nfunc (p *playgroundServiceProcessorMGetUserBasicInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PlaygroundServiceMGetUserBasicInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"MGetUserBasicInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PlaygroundServiceMGetUserBasicInfoResult{}\n\tvar retval *MGetUserBasicInfoResponse\n\tif retval, err2 = p.handler.MGetUserBasicInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing MGetUserBasicInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"MGetUserBasicInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"MGetUserBasicInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype PlaygroundServiceUpdateDraftBotInfoAgwArgs struct {\n\tRequest *UpdateDraftBotInfoAgwRequest `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceUpdateDraftBotInfoAgwArgs() *PlaygroundServiceUpdateDraftBotInfoAgwArgs {\n\treturn &PlaygroundServiceUpdateDraftBotInfoAgwArgs{}\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwArgs) InitDefault() {\n}\n\nvar PlaygroundServiceUpdateDraftBotInfoAgwArgs_Request_DEFAULT *UpdateDraftBotInfoAgwRequest\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwArgs) GetRequest() (v *UpdateDraftBotInfoAgwRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceUpdateDraftBotInfoAgwArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceUpdateDraftBotInfoAgwArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceUpdateDraftBotInfoAgwArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDraftBotInfoAgwRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDraftBotInfoAgw_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceUpdateDraftBotInfoAgwArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceUpdateDraftBotInfoAgwResult struct {\n\tSuccess *UpdateDraftBotInfoAgwResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceUpdateDraftBotInfoAgwResult() *PlaygroundServiceUpdateDraftBotInfoAgwResult {\n\treturn &PlaygroundServiceUpdateDraftBotInfoAgwResult{}\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwResult) InitDefault() {\n}\n\nvar PlaygroundServiceUpdateDraftBotInfoAgwResult_Success_DEFAULT *UpdateDraftBotInfoAgwResponse\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwResult) GetSuccess() (v *UpdateDraftBotInfoAgwResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceUpdateDraftBotInfoAgwResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceUpdateDraftBotInfoAgwResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceUpdateDraftBotInfoAgwResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateDraftBotInfoAgwResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateDraftBotInfoAgw_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateDraftBotInfoAgwResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceUpdateDraftBotInfoAgwResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetDraftBotInfoAgwArgs struct {\n\tRequest *GetDraftBotInfoAgwRequest `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceGetDraftBotInfoAgwArgs() *PlaygroundServiceGetDraftBotInfoAgwArgs {\n\treturn &PlaygroundServiceGetDraftBotInfoAgwArgs{}\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwArgs) InitDefault() {\n}\n\nvar PlaygroundServiceGetDraftBotInfoAgwArgs_Request_DEFAULT *GetDraftBotInfoAgwRequest\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwArgs) GetRequest() (v *GetDraftBotInfoAgwRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceGetDraftBotInfoAgwArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceGetDraftBotInfoAgwArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetDraftBotInfoAgwArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDraftBotInfoAgwRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftBotInfoAgw_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetDraftBotInfoAgwArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetDraftBotInfoAgwResult struct {\n\tSuccess *GetDraftBotInfoAgwResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceGetDraftBotInfoAgwResult() *PlaygroundServiceGetDraftBotInfoAgwResult {\n\treturn &PlaygroundServiceGetDraftBotInfoAgwResult{}\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwResult) InitDefault() {\n}\n\nvar PlaygroundServiceGetDraftBotInfoAgwResult_Success_DEFAULT *GetDraftBotInfoAgwResponse\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwResult) GetSuccess() (v *GetDraftBotInfoAgwResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceGetDraftBotInfoAgwResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceGetDraftBotInfoAgwResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetDraftBotInfoAgwResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetDraftBotInfoAgwResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDraftBotInfoAgw_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetDraftBotInfoAgwResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetDraftBotInfoAgwResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetImagexShortUrlArgs struct {\n\tRequest *GetImagexShortUrlRequest `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceGetImagexShortUrlArgs() *PlaygroundServiceGetImagexShortUrlArgs {\n\treturn &PlaygroundServiceGetImagexShortUrlArgs{}\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlArgs) InitDefault() {\n}\n\nvar PlaygroundServiceGetImagexShortUrlArgs_Request_DEFAULT *GetImagexShortUrlRequest\n\nfunc (p *PlaygroundServiceGetImagexShortUrlArgs) GetRequest() (v *GetImagexShortUrlRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceGetImagexShortUrlArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceGetImagexShortUrlArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetImagexShortUrlArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetImagexShortUrlRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetImagexShortUrl_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetImagexShortUrlArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetImagexShortUrlResult struct {\n\tSuccess *GetImagexShortUrlResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceGetImagexShortUrlResult() *PlaygroundServiceGetImagexShortUrlResult {\n\treturn &PlaygroundServiceGetImagexShortUrlResult{}\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlResult) InitDefault() {\n}\n\nvar PlaygroundServiceGetImagexShortUrlResult_Success_DEFAULT *GetImagexShortUrlResponse\n\nfunc (p *PlaygroundServiceGetImagexShortUrlResult) GetSuccess() (v *GetImagexShortUrlResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceGetImagexShortUrlResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceGetImagexShortUrlResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetImagexShortUrlResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetImagexShortUrlResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetImagexShortUrl_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetImagexShortUrlResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetImagexShortUrlResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetBotPopupInfoArgs struct {\n\tRequest *GetBotPopupInfoRequest `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceGetBotPopupInfoArgs() *PlaygroundServiceGetBotPopupInfoArgs {\n\treturn &PlaygroundServiceGetBotPopupInfoArgs{}\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoArgs) InitDefault() {\n}\n\nvar PlaygroundServiceGetBotPopupInfoArgs_Request_DEFAULT *GetBotPopupInfoRequest\n\nfunc (p *PlaygroundServiceGetBotPopupInfoArgs) GetRequest() (v *GetBotPopupInfoRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceGetBotPopupInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceGetBotPopupInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetBotPopupInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetBotPopupInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotPopupInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetBotPopupInfoArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetBotPopupInfoResult struct {\n\tSuccess *GetBotPopupInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceGetBotPopupInfoResult() *PlaygroundServiceGetBotPopupInfoResult {\n\treturn &PlaygroundServiceGetBotPopupInfoResult{}\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoResult) InitDefault() {\n}\n\nvar PlaygroundServiceGetBotPopupInfoResult_Success_DEFAULT *GetBotPopupInfoResponse\n\nfunc (p *PlaygroundServiceGetBotPopupInfoResult) GetSuccess() (v *GetBotPopupInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceGetBotPopupInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceGetBotPopupInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetBotPopupInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetBotPopupInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotPopupInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetBotPopupInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetBotPopupInfoResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceUpdateBotPopupInfoArgs struct {\n\tRequest *UpdateBotPopupInfoRequest `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceUpdateBotPopupInfoArgs() *PlaygroundServiceUpdateBotPopupInfoArgs {\n\treturn &PlaygroundServiceUpdateBotPopupInfoArgs{}\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoArgs) InitDefault() {\n}\n\nvar PlaygroundServiceUpdateBotPopupInfoArgs_Request_DEFAULT *UpdateBotPopupInfoRequest\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoArgs) GetRequest() (v *UpdateBotPopupInfoRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceUpdateBotPopupInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceUpdateBotPopupInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceUpdateBotPopupInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateBotPopupInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateBotPopupInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceUpdateBotPopupInfoArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceUpdateBotPopupInfoResult struct {\n\tSuccess *UpdateBotPopupInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceUpdateBotPopupInfoResult() *PlaygroundServiceUpdateBotPopupInfoResult {\n\treturn &PlaygroundServiceUpdateBotPopupInfoResult{}\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoResult) InitDefault() {\n}\n\nvar PlaygroundServiceUpdateBotPopupInfoResult_Success_DEFAULT *UpdateBotPopupInfoResponse\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoResult) GetSuccess() (v *UpdateBotPopupInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceUpdateBotPopupInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceUpdateBotPopupInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceUpdateBotPopupInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateBotPopupInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateBotPopupInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpdateBotPopupInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceUpdateBotPopupInfoResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceReportUserBehaviorArgs struct {\n\tRequest *ReportUserBehaviorRequest `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceReportUserBehaviorArgs() *PlaygroundServiceReportUserBehaviorArgs {\n\treturn &PlaygroundServiceReportUserBehaviorArgs{}\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorArgs) InitDefault() {\n}\n\nvar PlaygroundServiceReportUserBehaviorArgs_Request_DEFAULT *ReportUserBehaviorRequest\n\nfunc (p *PlaygroundServiceReportUserBehaviorArgs) GetRequest() (v *ReportUserBehaviorRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceReportUserBehaviorArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceReportUserBehaviorArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceReportUserBehaviorArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewReportUserBehaviorRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ReportUserBehavior_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceReportUserBehaviorArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceReportUserBehaviorResult struct {\n\tSuccess *ReportUserBehaviorResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceReportUserBehaviorResult() *PlaygroundServiceReportUserBehaviorResult {\n\treturn &PlaygroundServiceReportUserBehaviorResult{}\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorResult) InitDefault() {\n}\n\nvar PlaygroundServiceReportUserBehaviorResult_Success_DEFAULT *ReportUserBehaviorResponse\n\nfunc (p *PlaygroundServiceReportUserBehaviorResult) GetSuccess() (v *ReportUserBehaviorResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceReportUserBehaviorResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceReportUserBehaviorResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceReportUserBehaviorResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewReportUserBehaviorResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ReportUserBehavior_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceReportUserBehaviorResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceReportUserBehaviorResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceCreateUpdateShortcutCommandArgs struct {\n\tReq *CreateUpdateShortcutCommandRequest `thrift:\"req,1\"`\n}\n\nfunc NewPlaygroundServiceCreateUpdateShortcutCommandArgs() *PlaygroundServiceCreateUpdateShortcutCommandArgs {\n\treturn &PlaygroundServiceCreateUpdateShortcutCommandArgs{}\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandArgs) InitDefault() {\n}\n\nvar PlaygroundServiceCreateUpdateShortcutCommandArgs_Req_DEFAULT *CreateUpdateShortcutCommandRequest\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandArgs) GetReq() (v *CreateUpdateShortcutCommandRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PlaygroundServiceCreateUpdateShortcutCommandArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PlaygroundServiceCreateUpdateShortcutCommandArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceCreateUpdateShortcutCommandArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateUpdateShortcutCommandRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateUpdateShortcutCommand_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceCreateUpdateShortcutCommandArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceCreateUpdateShortcutCommandResult struct {\n\tSuccess *CreateUpdateShortcutCommandResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceCreateUpdateShortcutCommandResult() *PlaygroundServiceCreateUpdateShortcutCommandResult {\n\treturn &PlaygroundServiceCreateUpdateShortcutCommandResult{}\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandResult) InitDefault() {\n}\n\nvar PlaygroundServiceCreateUpdateShortcutCommandResult_Success_DEFAULT *CreateUpdateShortcutCommandResponse\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandResult) GetSuccess() (v *CreateUpdateShortcutCommandResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceCreateUpdateShortcutCommandResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceCreateUpdateShortcutCommandResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceCreateUpdateShortcutCommandResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateUpdateShortcutCommandResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateUpdateShortcutCommand_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceCreateUpdateShortcutCommandResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceCreateUpdateShortcutCommandResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetFileUrlsArgs struct {\n\tReq *GetFileUrlsRequest `thrift:\"req,1\"`\n}\n\nfunc NewPlaygroundServiceGetFileUrlsArgs() *PlaygroundServiceGetFileUrlsArgs {\n\treturn &PlaygroundServiceGetFileUrlsArgs{}\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsArgs) InitDefault() {\n}\n\nvar PlaygroundServiceGetFileUrlsArgs_Req_DEFAULT *GetFileUrlsRequest\n\nfunc (p *PlaygroundServiceGetFileUrlsArgs) GetReq() (v *GetFileUrlsRequest) {\n\tif !p.IsSetReq() {\n\t\treturn PlaygroundServiceGetFileUrlsArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_PlaygroundServiceGetFileUrlsArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetFileUrlsArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetFileUrlsRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetFileUrls_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetFileUrlsArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetFileUrlsResult struct {\n\tSuccess *GetFileUrlsResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceGetFileUrlsResult() *PlaygroundServiceGetFileUrlsResult {\n\treturn &PlaygroundServiceGetFileUrlsResult{}\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsResult) InitDefault() {\n}\n\nvar PlaygroundServiceGetFileUrlsResult_Success_DEFAULT *GetFileUrlsResponse\n\nfunc (p *PlaygroundServiceGetFileUrlsResult) GetSuccess() (v *GetFileUrlsResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceGetFileUrlsResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceGetFileUrlsResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetFileUrlsResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetFileUrlsResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetFileUrls_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetFileUrlsResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetFileUrlsResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetOfficialPromptResourceListArgs struct {\n\tRequest *GetOfficialPromptResourceListRequest `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceGetOfficialPromptResourceListArgs() *PlaygroundServiceGetOfficialPromptResourceListArgs {\n\treturn &PlaygroundServiceGetOfficialPromptResourceListArgs{}\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListArgs) InitDefault() {\n}\n\nvar PlaygroundServiceGetOfficialPromptResourceListArgs_Request_DEFAULT *GetOfficialPromptResourceListRequest\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListArgs) GetRequest() (v *GetOfficialPromptResourceListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceGetOfficialPromptResourceListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceGetOfficialPromptResourceListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetOfficialPromptResourceListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetOfficialPromptResourceListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOfficialPromptResourceList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetOfficialPromptResourceListArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetOfficialPromptResourceListResult struct {\n\tSuccess *GetOfficialPromptResourceListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceGetOfficialPromptResourceListResult() *PlaygroundServiceGetOfficialPromptResourceListResult {\n\treturn &PlaygroundServiceGetOfficialPromptResourceListResult{}\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListResult) InitDefault() {\n}\n\nvar PlaygroundServiceGetOfficialPromptResourceListResult_Success_DEFAULT *GetOfficialPromptResourceListResponse\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListResult) GetSuccess() (v *GetOfficialPromptResourceListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceGetOfficialPromptResourceListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceGetOfficialPromptResourceListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetOfficialPromptResourceListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetOfficialPromptResourceListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOfficialPromptResourceList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetOfficialPromptResourceListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetOfficialPromptResourceListResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetPromptResourceInfoArgs struct {\n\tRequest *GetPromptResourceInfoRequest `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceGetPromptResourceInfoArgs() *PlaygroundServiceGetPromptResourceInfoArgs {\n\treturn &PlaygroundServiceGetPromptResourceInfoArgs{}\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoArgs) InitDefault() {\n}\n\nvar PlaygroundServiceGetPromptResourceInfoArgs_Request_DEFAULT *GetPromptResourceInfoRequest\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoArgs) GetRequest() (v *GetPromptResourceInfoRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceGetPromptResourceInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceGetPromptResourceInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetPromptResourceInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetPromptResourceInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPromptResourceInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetPromptResourceInfoArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetPromptResourceInfoResult struct {\n\tSuccess *GetPromptResourceInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceGetPromptResourceInfoResult() *PlaygroundServiceGetPromptResourceInfoResult {\n\treturn &PlaygroundServiceGetPromptResourceInfoResult{}\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoResult) InitDefault() {\n}\n\nvar PlaygroundServiceGetPromptResourceInfoResult_Success_DEFAULT *GetPromptResourceInfoResponse\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoResult) GetSuccess() (v *GetPromptResourceInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceGetPromptResourceInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceGetPromptResourceInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetPromptResourceInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetPromptResourceInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPromptResourceInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetPromptResourceInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetPromptResourceInfoResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceUpsertPromptResourceArgs struct {\n\tRequest *UpsertPromptResourceRequest `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceUpsertPromptResourceArgs() *PlaygroundServiceUpsertPromptResourceArgs {\n\treturn &PlaygroundServiceUpsertPromptResourceArgs{}\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceArgs) InitDefault() {\n}\n\nvar PlaygroundServiceUpsertPromptResourceArgs_Request_DEFAULT *UpsertPromptResourceRequest\n\nfunc (p *PlaygroundServiceUpsertPromptResourceArgs) GetRequest() (v *UpsertPromptResourceRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceUpsertPromptResourceArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceUpsertPromptResourceArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceUpsertPromptResourceArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpsertPromptResourceRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpsertPromptResource_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceUpsertPromptResourceArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceUpsertPromptResourceResult struct {\n\tSuccess *UpsertPromptResourceResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceUpsertPromptResourceResult() *PlaygroundServiceUpsertPromptResourceResult {\n\treturn &PlaygroundServiceUpsertPromptResourceResult{}\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceResult) InitDefault() {\n}\n\nvar PlaygroundServiceUpsertPromptResourceResult_Success_DEFAULT *UpsertPromptResourceResponse\n\nfunc (p *PlaygroundServiceUpsertPromptResourceResult) GetSuccess() (v *UpsertPromptResourceResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceUpsertPromptResourceResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceUpsertPromptResourceResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceUpsertPromptResourceResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpsertPromptResourceResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpsertPromptResource_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceUpsertPromptResourceResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceUpsertPromptResourceResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceDeletePromptResourceArgs struct {\n\tRequest *DeletePromptResourceRequest `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceDeletePromptResourceArgs() *PlaygroundServiceDeletePromptResourceArgs {\n\treturn &PlaygroundServiceDeletePromptResourceArgs{}\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceArgs) InitDefault() {\n}\n\nvar PlaygroundServiceDeletePromptResourceArgs_Request_DEFAULT *DeletePromptResourceRequest\n\nfunc (p *PlaygroundServiceDeletePromptResourceArgs) GetRequest() (v *DeletePromptResourceRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceDeletePromptResourceArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceDeletePromptResourceArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceDeletePromptResourceArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeletePromptResourceRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeletePromptResource_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceDeletePromptResourceArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceDeletePromptResourceResult struct {\n\tSuccess *DeletePromptResourceResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceDeletePromptResourceResult() *PlaygroundServiceDeletePromptResourceResult {\n\treturn &PlaygroundServiceDeletePromptResourceResult{}\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceResult) InitDefault() {\n}\n\nvar PlaygroundServiceDeletePromptResourceResult_Success_DEFAULT *DeletePromptResourceResponse\n\nfunc (p *PlaygroundServiceDeletePromptResourceResult) GetSuccess() (v *DeletePromptResourceResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceDeletePromptResourceResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceDeletePromptResourceResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceDeletePromptResourceResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeletePromptResourceResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeletePromptResource_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceDeletePromptResourceResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceDeletePromptResourceResult(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetSpaceListV2Args struct {\n\tRequest *GetSpaceListV2Request `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceGetSpaceListV2Args() *PlaygroundServiceGetSpaceListV2Args {\n\treturn &PlaygroundServiceGetSpaceListV2Args{}\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Args) InitDefault() {\n}\n\nvar PlaygroundServiceGetSpaceListV2Args_Request_DEFAULT *GetSpaceListV2Request\n\nfunc (p *PlaygroundServiceGetSpaceListV2Args) GetRequest() (v *GetSpaceListV2Request) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceGetSpaceListV2Args_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceGetSpaceListV2Args = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Args) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Args) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetSpaceListV2Args[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Args) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetSpaceListV2Request()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Args) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetSpaceListV2_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Args) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Args) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetSpaceListV2Args(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceGetSpaceListV2Result struct {\n\tSuccess *GetSpaceListV2Response `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceGetSpaceListV2Result() *PlaygroundServiceGetSpaceListV2Result {\n\treturn &PlaygroundServiceGetSpaceListV2Result{}\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Result) InitDefault() {\n}\n\nvar PlaygroundServiceGetSpaceListV2Result_Success_DEFAULT *GetSpaceListV2Response\n\nfunc (p *PlaygroundServiceGetSpaceListV2Result) GetSuccess() (v *GetSpaceListV2Response) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceGetSpaceListV2Result_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceGetSpaceListV2Result = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Result) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Result) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceGetSpaceListV2Result[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Result) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetSpaceListV2Response()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Result) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetSpaceListV2_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Result) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceGetSpaceListV2Result) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceGetSpaceListV2Result(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceMGetUserBasicInfoArgs struct {\n\tRequest *MGetUserBasicInfoRequest `thrift:\"request,1\"`\n}\n\nfunc NewPlaygroundServiceMGetUserBasicInfoArgs() *PlaygroundServiceMGetUserBasicInfoArgs {\n\treturn &PlaygroundServiceMGetUserBasicInfoArgs{}\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoArgs) InitDefault() {\n}\n\nvar PlaygroundServiceMGetUserBasicInfoArgs_Request_DEFAULT *MGetUserBasicInfoRequest\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoArgs) GetRequest() (v *MGetUserBasicInfoRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PlaygroundServiceMGetUserBasicInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PlaygroundServiceMGetUserBasicInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceMGetUserBasicInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewMGetUserBasicInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetUserBasicInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceMGetUserBasicInfoArgs(%+v)\", *p)\n\n}\n\ntype PlaygroundServiceMGetUserBasicInfoResult struct {\n\tSuccess *MGetUserBasicInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPlaygroundServiceMGetUserBasicInfoResult() *PlaygroundServiceMGetUserBasicInfoResult {\n\treturn &PlaygroundServiceMGetUserBasicInfoResult{}\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoResult) InitDefault() {\n}\n\nvar PlaygroundServiceMGetUserBasicInfoResult_Success_DEFAULT *MGetUserBasicInfoResponse\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoResult) GetSuccess() (v *MGetUserBasicInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PlaygroundServiceMGetUserBasicInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PlaygroundServiceMGetUserBasicInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PlaygroundServiceMGetUserBasicInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewMGetUserBasicInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetUserBasicInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PlaygroundServiceMGetUserBasicInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PlaygroundServiceMGetUserBasicInfoResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/playground/prompt_resource.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage playground\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype ActionKey int64\n\nconst (\n\t//copy\n\tActionKey_Copy ActionKey = 1\n\t//delete\n\tActionKey_Delete ActionKey = 2\n\t//enable/disable\n\tActionKey_EnableSwitch ActionKey = 3\n\t//edit\n\tActionKey_Edit ActionKey = 4\n\t//Cross-space copy\n\tActionKey_CrossSpaceCopy ActionKey = 10\n)\n\nfunc (p ActionKey) String() string {\n\tswitch p {\n\tcase ActionKey_Copy:\n\t\treturn \"Copy\"\n\tcase ActionKey_Delete:\n\t\treturn \"Delete\"\n\tcase ActionKey_EnableSwitch:\n\t\treturn \"EnableSwitch\"\n\tcase ActionKey_Edit:\n\t\treturn \"Edit\"\n\tcase ActionKey_CrossSpaceCopy:\n\t\treturn \"CrossSpaceCopy\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ActionKeyFromString(s string) (ActionKey, error) {\n\tswitch s {\n\tcase \"Copy\":\n\t\treturn ActionKey_Copy, nil\n\tcase \"Delete\":\n\t\treturn ActionKey_Delete, nil\n\tcase \"EnableSwitch\":\n\t\treturn ActionKey_EnableSwitch, nil\n\tcase \"Edit\":\n\t\treturn ActionKey_Edit, nil\n\tcase \"CrossSpaceCopy\":\n\t\treturn ActionKey_CrossSpaceCopy, nil\n\t}\n\treturn ActionKey(0), fmt.Errorf(\"not a valid ActionKey string\")\n}\n\nfunc ActionKeyPtr(v ActionKey) *ActionKey { return &v }\nfunc (p *ActionKey) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ActionKey(result.Int64)\n\treturn\n}\n\nfunc (p *ActionKey) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ResourcePublishStatus int64\n\nconst (\n\t//unpublished\n\tResourcePublishStatus_UnPublished ResourcePublishStatus = 1\n\t//Published\n\tResourcePublishStatus_Published ResourcePublishStatus = 2\n)\n\nfunc (p ResourcePublishStatus) String() string {\n\tswitch p {\n\tcase ResourcePublishStatus_UnPublished:\n\t\treturn \"UnPublished\"\n\tcase ResourcePublishStatus_Published:\n\t\treturn \"Published\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ResourcePublishStatusFromString(s string) (ResourcePublishStatus, error) {\n\tswitch s {\n\tcase \"UnPublished\":\n\t\treturn ResourcePublishStatus_UnPublished, nil\n\tcase \"Published\":\n\t\treturn ResourcePublishStatus_Published, nil\n\t}\n\treturn ResourcePublishStatus(0), fmt.Errorf(\"not a valid ResourcePublishStatus string\")\n}\n\nfunc ResourcePublishStatusPtr(v ResourcePublishStatus) *ResourcePublishStatus { return &v }\nfunc (p *ResourcePublishStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ResourcePublishStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ResourcePublishStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype GetOfficialPromptResourceListRequest struct {\n\tKeyword *string    `thrift:\"Keyword,1,optional\" form:\"keyword\" json:\"keyword,omitempty\"`\n\tBase    *base.Base `thrift:\"Base,255\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetOfficialPromptResourceListRequest() *GetOfficialPromptResourceListRequest {\n\treturn &GetOfficialPromptResourceListRequest{}\n}\n\nfunc (p *GetOfficialPromptResourceListRequest) InitDefault() {\n}\n\nvar GetOfficialPromptResourceListRequest_Keyword_DEFAULT string\n\nfunc (p *GetOfficialPromptResourceListRequest) GetKeyword() (v string) {\n\tif !p.IsSetKeyword() {\n\t\treturn GetOfficialPromptResourceListRequest_Keyword_DEFAULT\n\t}\n\treturn *p.Keyword\n}\n\nvar GetOfficialPromptResourceListRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetOfficialPromptResourceListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetOfficialPromptResourceListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetOfficialPromptResourceListRequest = map[int16]string{\n\t1:   \"Keyword\",\n\t255: \"Base\",\n}\n\nfunc (p *GetOfficialPromptResourceListRequest) IsSetKeyword() bool {\n\treturn p.Keyword != nil\n}\n\nfunc (p *GetOfficialPromptResourceListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetOfficialPromptResourceListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOfficialPromptResourceListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetOfficialPromptResourceListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Keyword = _field\n\treturn nil\n}\nfunc (p *GetOfficialPromptResourceListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetOfficialPromptResourceListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOfficialPromptResourceListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOfficialPromptResourceListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKeyword() {\n\t\tif err = oprot.WriteFieldBegin(\"Keyword\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Keyword); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetOfficialPromptResourceListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetOfficialPromptResourceListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOfficialPromptResourceListRequest(%+v)\", *p)\n\n}\n\ntype PromptResource struct {\n\tID          *int64  `thrift:\"ID,1,optional\" form:\"id\" json:\"id,string,omitempty\"`\n\tSpaceID     *int64  `thrift:\"SpaceID,2,optional\" form:\"space_id\" json:\"space_id,string,omitempty\"`\n\tName        *string `thrift:\"Name,3,optional\" form:\"name\" json:\"name,omitempty\"`\n\tDescription *string `thrift:\"Description,4,optional\" form:\"description\" json:\"description,omitempty\"`\n\tPromptText  *string `thrift:\"PromptText,5,optional\" form:\"prompt_text\" json:\"prompt_text,omitempty\"`\n}\n\nfunc NewPromptResource() *PromptResource {\n\treturn &PromptResource{}\n}\n\nfunc (p *PromptResource) InitDefault() {\n}\n\nvar PromptResource_ID_DEFAULT int64\n\nfunc (p *PromptResource) GetID() (v int64) {\n\tif !p.IsSetID() {\n\t\treturn PromptResource_ID_DEFAULT\n\t}\n\treturn *p.ID\n}\n\nvar PromptResource_SpaceID_DEFAULT int64\n\nfunc (p *PromptResource) GetSpaceID() (v int64) {\n\tif !p.IsSetSpaceID() {\n\t\treturn PromptResource_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar PromptResource_Name_DEFAULT string\n\nfunc (p *PromptResource) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn PromptResource_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar PromptResource_Description_DEFAULT string\n\nfunc (p *PromptResource) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn PromptResource_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar PromptResource_PromptText_DEFAULT string\n\nfunc (p *PromptResource) GetPromptText() (v string) {\n\tif !p.IsSetPromptText() {\n\t\treturn PromptResource_PromptText_DEFAULT\n\t}\n\treturn *p.PromptText\n}\n\nvar fieldIDToName_PromptResource = map[int16]string{\n\t1: \"ID\",\n\t2: \"SpaceID\",\n\t3: \"Name\",\n\t4: \"Description\",\n\t5: \"PromptText\",\n}\n\nfunc (p *PromptResource) IsSetID() bool {\n\treturn p.ID != nil\n}\n\nfunc (p *PromptResource) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *PromptResource) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *PromptResource) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *PromptResource) IsSetPromptText() bool {\n\treturn p.PromptText != nil\n}\n\nfunc (p *PromptResource) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PromptResource[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PromptResource) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PromptResource) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *PromptResource) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PromptResource) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *PromptResource) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PromptText = _field\n\treturn nil\n}\n\nfunc (p *PromptResource) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PromptResource\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PromptResource) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetID() {\n\t\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PromptResource) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"SpaceID\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PromptResource) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PromptResource) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PromptResource) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPromptText() {\n\t\tif err = oprot.WriteFieldBegin(\"PromptText\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PromptText); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *PromptResource) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PromptResource(%+v)\", *p)\n\n}\n\ntype GetOfficialPromptResourceListResponse struct {\n\tPromptResourceList []*PromptResource `thrift:\"PromptResourceList,1\" form:\"data\" json:\"data\"`\n\tCode               int64             `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg                string            `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp           *base.BaseResp    `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetOfficialPromptResourceListResponse() *GetOfficialPromptResourceListResponse {\n\treturn &GetOfficialPromptResourceListResponse{}\n}\n\nfunc (p *GetOfficialPromptResourceListResponse) InitDefault() {\n}\n\nfunc (p *GetOfficialPromptResourceListResponse) GetPromptResourceList() (v []*PromptResource) {\n\treturn p.PromptResourceList\n}\n\nfunc (p *GetOfficialPromptResourceListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetOfficialPromptResourceListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetOfficialPromptResourceListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetOfficialPromptResourceListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetOfficialPromptResourceListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetOfficialPromptResourceListResponse = map[int16]string{\n\t1:   \"PromptResourceList\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetOfficialPromptResourceListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetOfficialPromptResourceListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOfficialPromptResourceListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetOfficialPromptResourceListResponse[fieldId]))\n}\n\nfunc (p *GetOfficialPromptResourceListResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PromptResource, 0, size)\n\tvalues := make([]PromptResource, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PromptResourceList = _field\n\treturn nil\n}\nfunc (p *GetOfficialPromptResourceListResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetOfficialPromptResourceListResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetOfficialPromptResourceListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetOfficialPromptResourceListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOfficialPromptResourceListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOfficialPromptResourceListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PromptResourceList\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PromptResourceList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PromptResourceList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetOfficialPromptResourceListResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetOfficialPromptResourceListResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetOfficialPromptResourceListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetOfficialPromptResourceListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOfficialPromptResourceListResponse(%+v)\", *p)\n\n}\n\ntype GetPromptResourceInfoRequest struct {\n\tPromptResourceID int64      `thrift:\"PromptResourceID,1,required\" form:\"prompt_resource_id,required\" json:\"prompt_resource_id,string,required\"`\n\tBase             *base.Base `thrift:\"Base,255\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewGetPromptResourceInfoRequest() *GetPromptResourceInfoRequest {\n\treturn &GetPromptResourceInfoRequest{}\n}\n\nfunc (p *GetPromptResourceInfoRequest) InitDefault() {\n}\n\nfunc (p *GetPromptResourceInfoRequest) GetPromptResourceID() (v int64) {\n\treturn p.PromptResourceID\n}\n\nvar GetPromptResourceInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetPromptResourceInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetPromptResourceInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetPromptResourceInfoRequest = map[int16]string{\n\t1:   \"PromptResourceID\",\n\t255: \"Base\",\n}\n\nfunc (p *GetPromptResourceInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetPromptResourceInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPromptResourceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPromptResourceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPromptResourceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPromptResourceInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPromptResourceInfoRequest[fieldId]))\n}\n\nfunc (p *GetPromptResourceInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PromptResourceID = _field\n\treturn nil\n}\nfunc (p *GetPromptResourceInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetPromptResourceInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPromptResourceInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPromptResourceInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PromptResourceID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PromptResourceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPromptResourceInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPromptResourceInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPromptResourceInfoRequest(%+v)\", *p)\n\n}\n\ntype GetPromptResourceInfoResponse struct {\n\tData     *PromptResource `thrift:\"Data,1,optional\" form:\"data\" json:\"data,omitempty\"`\n\tCode     int64           `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string          `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp  `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetPromptResourceInfoResponse() *GetPromptResourceInfoResponse {\n\treturn &GetPromptResourceInfoResponse{}\n}\n\nfunc (p *GetPromptResourceInfoResponse) InitDefault() {\n}\n\nvar GetPromptResourceInfoResponse_Data_DEFAULT *PromptResource\n\nfunc (p *GetPromptResourceInfoResponse) GetData() (v *PromptResource) {\n\tif !p.IsSetData() {\n\t\treturn GetPromptResourceInfoResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetPromptResourceInfoResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetPromptResourceInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetPromptResourceInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetPromptResourceInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetPromptResourceInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetPromptResourceInfoResponse = map[int16]string{\n\t1:   \"Data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetPromptResourceInfoResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetPromptResourceInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetPromptResourceInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPromptResourceInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPromptResourceInfoResponse[fieldId]))\n}\n\nfunc (p *GetPromptResourceInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPromptResource()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetPromptResourceInfoResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetPromptResourceInfoResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetPromptResourceInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetPromptResourceInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPromptResourceInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPromptResourceInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetData() {\n\t\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Data.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPromptResourceInfoResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetPromptResourceInfoResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetPromptResourceInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPromptResourceInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPromptResourceInfoResponse(%+v)\", *p)\n\n}\n\ntype UpsertPromptResourceRequest struct {\n\tPrompt *PromptResource `thrift:\"Prompt,1,required\" form:\"prompt,required\" json:\"prompt,required\"`\n\tBase   *base.Base      `thrift:\"Base,255\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewUpsertPromptResourceRequest() *UpsertPromptResourceRequest {\n\treturn &UpsertPromptResourceRequest{}\n}\n\nfunc (p *UpsertPromptResourceRequest) InitDefault() {\n}\n\nvar UpsertPromptResourceRequest_Prompt_DEFAULT *PromptResource\n\nfunc (p *UpsertPromptResourceRequest) GetPrompt() (v *PromptResource) {\n\tif !p.IsSetPrompt() {\n\t\treturn UpsertPromptResourceRequest_Prompt_DEFAULT\n\t}\n\treturn p.Prompt\n}\n\nvar UpsertPromptResourceRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpsertPromptResourceRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpsertPromptResourceRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpsertPromptResourceRequest = map[int16]string{\n\t1:   \"Prompt\",\n\t255: \"Base\",\n}\n\nfunc (p *UpsertPromptResourceRequest) IsSetPrompt() bool {\n\treturn p.Prompt != nil\n}\n\nfunc (p *UpsertPromptResourceRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpsertPromptResourceRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPrompt bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPrompt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPrompt {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpsertPromptResourceRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpsertPromptResourceRequest[fieldId]))\n}\n\nfunc (p *UpsertPromptResourceRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPromptResource()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Prompt = _field\n\treturn nil\n}\nfunc (p *UpsertPromptResourceRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpsertPromptResourceRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpsertPromptResourceRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpsertPromptResourceRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Prompt\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Prompt.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpsertPromptResourceRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpsertPromptResourceRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpsertPromptResourceRequest(%+v)\", *p)\n\n}\n\ntype UpsertPromptResourceResponse struct {\n\tData     *ShowPromptResource `thrift:\"data,1,optional\" form:\"data\" json:\"data,omitempty\" query:\"data\"`\n\tCode     int64               `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string              `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewUpsertPromptResourceResponse() *UpsertPromptResourceResponse {\n\treturn &UpsertPromptResourceResponse{}\n}\n\nfunc (p *UpsertPromptResourceResponse) InitDefault() {\n}\n\nvar UpsertPromptResourceResponse_Data_DEFAULT *ShowPromptResource\n\nfunc (p *UpsertPromptResourceResponse) GetData() (v *ShowPromptResource) {\n\tif !p.IsSetData() {\n\t\treturn UpsertPromptResourceResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *UpsertPromptResourceResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpsertPromptResourceResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpsertPromptResourceResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpsertPromptResourceResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpsertPromptResourceResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpsertPromptResourceResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpsertPromptResourceResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *UpsertPromptResourceResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpsertPromptResourceResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpsertPromptResourceResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpsertPromptResourceResponse[fieldId]))\n}\n\nfunc (p *UpsertPromptResourceResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewShowPromptResource()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *UpsertPromptResourceResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpsertPromptResourceResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpsertPromptResourceResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpsertPromptResourceResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpsertPromptResourceResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpsertPromptResourceResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetData() {\n\t\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Data.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpsertPromptResourceResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpsertPromptResourceResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpsertPromptResourceResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpsertPromptResourceResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpsertPromptResourceResponse(%+v)\", *p)\n\n}\n\ntype ShowPromptResource struct {\n\tID int64 `thrift:\"ID,1\" form:\"id\" json:\"id,string\"`\n}\n\nfunc NewShowPromptResource() *ShowPromptResource {\n\treturn &ShowPromptResource{}\n}\n\nfunc (p *ShowPromptResource) InitDefault() {\n}\n\nfunc (p *ShowPromptResource) GetID() (v int64) {\n\treturn p.ID\n}\n\nvar fieldIDToName_ShowPromptResource = map[int16]string{\n\t1: \"ID\",\n}\n\nfunc (p *ShowPromptResource) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ShowPromptResource[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ShowPromptResource) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\n\nfunc (p *ShowPromptResource) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ShowPromptResource\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ShowPromptResource) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ShowPromptResource) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ShowPromptResource(%+v)\", *p)\n\n}\n\ntype DeletePromptResourceRequest struct {\n\tPromptResourceID int64      `thrift:\"PromptResourceID,1,required\" form:\"prompt_resource_id,required\" json:\"prompt_resource_id,string,required\"`\n\tBase             *base.Base `thrift:\"Base,255\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewDeletePromptResourceRequest() *DeletePromptResourceRequest {\n\treturn &DeletePromptResourceRequest{}\n}\n\nfunc (p *DeletePromptResourceRequest) InitDefault() {\n}\n\nfunc (p *DeletePromptResourceRequest) GetPromptResourceID() (v int64) {\n\treturn p.PromptResourceID\n}\n\nvar DeletePromptResourceRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeletePromptResourceRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeletePromptResourceRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeletePromptResourceRequest = map[int16]string{\n\t1:   \"PromptResourceID\",\n\t255: \"Base\",\n}\n\nfunc (p *DeletePromptResourceRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeletePromptResourceRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPromptResourceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPromptResourceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPromptResourceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeletePromptResourceRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeletePromptResourceRequest[fieldId]))\n}\n\nfunc (p *DeletePromptResourceRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PromptResourceID = _field\n\treturn nil\n}\nfunc (p *DeletePromptResourceRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeletePromptResourceRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeletePromptResourceRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeletePromptResourceRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PromptResourceID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PromptResourceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeletePromptResourceRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeletePromptResourceRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeletePromptResourceRequest(%+v)\", *p)\n\n}\n\ntype DeletePromptResourceResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewDeletePromptResourceResponse() *DeletePromptResourceResponse {\n\treturn &DeletePromptResourceResponse{}\n}\n\nfunc (p *DeletePromptResourceResponse) InitDefault() {\n}\n\nfunc (p *DeletePromptResourceResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DeletePromptResourceResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DeletePromptResourceResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeletePromptResourceResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeletePromptResourceResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeletePromptResourceResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeletePromptResourceResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeletePromptResourceResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeletePromptResourceResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeletePromptResourceResponse[fieldId]))\n}\n\nfunc (p *DeletePromptResourceResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeletePromptResourceResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeletePromptResourceResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeletePromptResourceResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeletePromptResourceResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeletePromptResourceResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DeletePromptResourceResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DeletePromptResourceResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeletePromptResourceResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeletePromptResourceResponse(%+v)\", *p)\n\n}\n\n// Parameter priority from top to bottom\ntype SyncPromptResourceToEsRequest struct {\n\tSyncAll              *bool      `thrift:\"SyncAll,1,optional\" form:\"SyncAll\" json:\"SyncAll,omitempty\" query:\"SyncAll\"`\n\tPromptResourceIDList []int64    `thrift:\"PromptResourceIDList,2,optional\" form:\"PromptResourceIDList\" json:\"PromptResourceIDList,omitempty\" query:\"PromptResourceIDList\"`\n\tSpaceIDList          []int64    `thrift:\"SpaceIDList,3,optional\" form:\"SpaceIDList\" json:\"SpaceIDList,omitempty\" query:\"SpaceIDList\"`\n\tBase                 *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewSyncPromptResourceToEsRequest() *SyncPromptResourceToEsRequest {\n\treturn &SyncPromptResourceToEsRequest{}\n}\n\nfunc (p *SyncPromptResourceToEsRequest) InitDefault() {\n}\n\nvar SyncPromptResourceToEsRequest_SyncAll_DEFAULT bool\n\nfunc (p *SyncPromptResourceToEsRequest) GetSyncAll() (v bool) {\n\tif !p.IsSetSyncAll() {\n\t\treturn SyncPromptResourceToEsRequest_SyncAll_DEFAULT\n\t}\n\treturn *p.SyncAll\n}\n\nvar SyncPromptResourceToEsRequest_PromptResourceIDList_DEFAULT []int64\n\nfunc (p *SyncPromptResourceToEsRequest) GetPromptResourceIDList() (v []int64) {\n\tif !p.IsSetPromptResourceIDList() {\n\t\treturn SyncPromptResourceToEsRequest_PromptResourceIDList_DEFAULT\n\t}\n\treturn p.PromptResourceIDList\n}\n\nvar SyncPromptResourceToEsRequest_SpaceIDList_DEFAULT []int64\n\nfunc (p *SyncPromptResourceToEsRequest) GetSpaceIDList() (v []int64) {\n\tif !p.IsSetSpaceIDList() {\n\t\treturn SyncPromptResourceToEsRequest_SpaceIDList_DEFAULT\n\t}\n\treturn p.SpaceIDList\n}\n\nvar SyncPromptResourceToEsRequest_Base_DEFAULT *base.Base\n\nfunc (p *SyncPromptResourceToEsRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SyncPromptResourceToEsRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SyncPromptResourceToEsRequest = map[int16]string{\n\t1:   \"SyncAll\",\n\t2:   \"PromptResourceIDList\",\n\t3:   \"SpaceIDList\",\n\t255: \"Base\",\n}\n\nfunc (p *SyncPromptResourceToEsRequest) IsSetSyncAll() bool {\n\treturn p.SyncAll != nil\n}\n\nfunc (p *SyncPromptResourceToEsRequest) IsSetPromptResourceIDList() bool {\n\treturn p.PromptResourceIDList != nil\n}\n\nfunc (p *SyncPromptResourceToEsRequest) IsSetSpaceIDList() bool {\n\treturn p.SpaceIDList != nil\n}\n\nfunc (p *SyncPromptResourceToEsRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SyncPromptResourceToEsRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SyncPromptResourceToEsRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SyncPromptResourceToEsRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SyncAll = _field\n\treturn nil\n}\nfunc (p *SyncPromptResourceToEsRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PromptResourceIDList = _field\n\treturn nil\n}\nfunc (p *SyncPromptResourceToEsRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SpaceIDList = _field\n\treturn nil\n}\nfunc (p *SyncPromptResourceToEsRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SyncPromptResourceToEsRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SyncPromptResourceToEsRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SyncPromptResourceToEsRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSyncAll() {\n\t\tif err = oprot.WriteFieldBegin(\"SyncAll\", thrift.BOOL, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SyncAll); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SyncPromptResourceToEsRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPromptResourceIDList() {\n\t\tif err = oprot.WriteFieldBegin(\"PromptResourceIDList\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I64, len(p.PromptResourceIDList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PromptResourceIDList {\n\t\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SyncPromptResourceToEsRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceIDList() {\n\t\tif err = oprot.WriteFieldBegin(\"SpaceIDList\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I64, len(p.SpaceIDList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SpaceIDList {\n\t\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SyncPromptResourceToEsRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SyncPromptResourceToEsRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SyncPromptResourceToEsRequest(%+v)\", *p)\n\n}\n\ntype SyncPromptResourceToEsResponse struct {\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewSyncPromptResourceToEsResponse() *SyncPromptResourceToEsResponse {\n\treturn &SyncPromptResourceToEsResponse{}\n}\n\nfunc (p *SyncPromptResourceToEsResponse) InitDefault() {\n}\n\nvar SyncPromptResourceToEsResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SyncPromptResourceToEsResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SyncPromptResourceToEsResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SyncPromptResourceToEsResponse = map[int16]string{\n\t255: \"BaseResp\",\n}\n\nfunc (p *SyncPromptResourceToEsResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SyncPromptResourceToEsResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SyncPromptResourceToEsResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SyncPromptResourceToEsResponse[fieldId]))\n}\n\nfunc (p *SyncPromptResourceToEsResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SyncPromptResourceToEsResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SyncPromptResourceToEsResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SyncPromptResourceToEsResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SyncPromptResourceToEsResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SyncPromptResourceToEsResponse(%+v)\", *p)\n\n}\n\ntype MGetDisplayResourceInfoRequest struct {\n\t// The maximum number of one page can be transferred, and the implementer can limit the maximum to 100.\n\tResIDs []int64 `thrift:\"ResIDs,1\" form:\"ResIDs\" json:\"ResIDs\" query:\"ResIDs\"`\n\t// The current user, the implementation is used to determine the authority\n\tCurrentUserID int64      `thrift:\"CurrentUserID,2\" form:\"CurrentUserID\" json:\"CurrentUserID\" query:\"CurrentUserID\"`\n\tBase          *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewMGetDisplayResourceInfoRequest() *MGetDisplayResourceInfoRequest {\n\treturn &MGetDisplayResourceInfoRequest{}\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) InitDefault() {\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) GetResIDs() (v []int64) {\n\treturn p.ResIDs\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) GetCurrentUserID() (v int64) {\n\treturn p.CurrentUserID\n}\n\nvar MGetDisplayResourceInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *MGetDisplayResourceInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn MGetDisplayResourceInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_MGetDisplayResourceInfoRequest = map[int16]string{\n\t1:   \"ResIDs\",\n\t2:   \"CurrentUserID\",\n\t255: \"Base\",\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MGetDisplayResourceInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResIDs = _field\n\treturn nil\n}\nfunc (p *MGetDisplayResourceInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CurrentUserID = _field\n\treturn nil\n}\nfunc (p *MGetDisplayResourceInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetDisplayResourceInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResIDs\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I64, len(p.ResIDs)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResIDs {\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MGetDisplayResourceInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CurrentUserID\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CurrentUserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MGetDisplayResourceInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MGetDisplayResourceInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MGetDisplayResourceInfoRequest(%+v)\", *p)\n\n}\n\ntype MGetDisplayResourceInfoResponse struct {\n\tResourceList []*DisplayResourceInfo `thrift:\"ResourceList,1\" form:\"ResourceList\" json:\"ResourceList\" query:\"ResourceList\"`\n\tBaseResp     *base.BaseResp         `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewMGetDisplayResourceInfoResponse() *MGetDisplayResourceInfoResponse {\n\treturn &MGetDisplayResourceInfoResponse{}\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) InitDefault() {\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) GetResourceList() (v []*DisplayResourceInfo) {\n\treturn p.ResourceList\n}\n\nvar MGetDisplayResourceInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *MGetDisplayResourceInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn MGetDisplayResourceInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_MGetDisplayResourceInfoResponse = map[int16]string{\n\t1:   \"ResourceList\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MGetDisplayResourceInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_MGetDisplayResourceInfoResponse[fieldId]))\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DisplayResourceInfo, 0, size)\n\tvalues := make([]DisplayResourceInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResourceList = _field\n\treturn nil\n}\nfunc (p *MGetDisplayResourceInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MGetDisplayResourceInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResourceList\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResourceList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResourceList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MGetDisplayResourceInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MGetDisplayResourceInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MGetDisplayResourceInfoResponse(%+v)\", *p)\n\n}\n\ntype ResourceAction struct {\n\t// An operation corresponds to a unique key, and the key is constrained by the resource side\n\tKey ActionKey `thrift:\"Key,1,required\" json:\"key\" form:\"Key,required\" query:\"Key,required\"`\n\t//ture = can operate this Action, false = grey out\n\tEnable bool `thrift:\"Enable,2,required\" json:\"enable\" form:\"Enable,required\" query:\"Enable,required\"`\n}\n\nfunc NewResourceAction() *ResourceAction {\n\treturn &ResourceAction{}\n}\n\nfunc (p *ResourceAction) InitDefault() {\n}\n\nfunc (p *ResourceAction) GetKey() (v ActionKey) {\n\treturn p.Key\n}\n\nfunc (p *ResourceAction) GetEnable() (v bool) {\n\treturn p.Enable\n}\n\nvar fieldIDToName_ResourceAction = map[int16]string{\n\t1: \"Key\",\n\t2: \"Enable\",\n}\n\nfunc (p *ResourceAction) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetKey bool = false\n\tvar issetEnable bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetKey = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetEnable = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetKey {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetEnable {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceAction[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ResourceAction[fieldId]))\n}\n\nfunc (p *ResourceAction) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field ActionKey\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ActionKey(v)\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *ResourceAction) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Enable = _field\n\treturn nil\n}\n\nfunc (p *ResourceAction) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceAction\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceAction) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Key\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Key)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceAction) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Enable\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Enable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ResourceAction) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceAction(%+v)\", *p)\n\n}\n\n// For display, the implementer provides display information\ntype DisplayResourceInfo struct {\n\t// Resource ID\n\tResID *int64 `thrift:\"ResID,1,optional\" form:\"ResID\" json:\"ResID,omitempty\" query:\"ResID\"`\n\t// resource description\n\tDesc *string `thrift:\"Desc,5,optional\" form:\"Desc\" json:\"Desc,omitempty\" query:\"Desc\"`\n\t// Resource Icon, full url\n\tIcon *string `thrift:\"Icon,6,optional\" form:\"Icon\" json:\"Icon,omitempty\" query:\"Icon\"`\n\t// Resource status, each type of resource defines itself\n\tBizResStatus *int32 `thrift:\"BizResStatus,12,optional\" form:\"BizResStatus\" json:\"BizResStatus,omitempty\" query:\"BizResStatus\"`\n\t// Whether to enable multi-person editing\n\tCollaborationEnable *bool `thrift:\"CollaborationEnable,13,optional\" form:\"CollaborationEnable\" json:\"CollaborationEnable,omitempty\" query:\"CollaborationEnable\"`\n\t// Business carry extended information to res_type distinguish, each res_type defined schema and meaning is not the same, need to judge before use res_type\n\tBizExtend map[string]string `thrift:\"BizExtend,16,optional\" form:\"BizExtend\" json:\"BizExtend,omitempty\" query:\"BizExtend\"`\n\t// Different types of different operation buttons are agreed upon by the resource implementer and the front end. Return is displayed, if you want to hide a button, do not return;\n\tActions []*ResourceAction `thrift:\"Actions,17,optional\" form:\"Actions\" json:\"Actions,omitempty\" query:\"Actions\"`\n\t// Whether to ban entering the details page\n\tDetailDisable *bool `thrift:\"DetailDisable,18,optional\" form:\"DetailDisable\" json:\"DetailDisable,omitempty\" query:\"DetailDisable\"`\n\t// resource name\n\tName *string `thrift:\"Name,19,optional\" form:\"Name\" json:\"Name,omitempty\" query:\"Name\"`\n\t// Resource release status, 1 - unpublished, 2 - published\n\tPublishStatus *ResourcePublishStatus `thrift:\"PublishStatus,20,optional\" form:\"PublishStatus\" json:\"PublishStatus,omitempty\" query:\"PublishStatus\"`\n\t// Last edited, unix timestamp\n\tEditTime *int64 `thrift:\"EditTime,21,optional\" form:\"EditTime\" json:\"EditTime,omitempty\" query:\"EditTime\"`\n}\n\nfunc NewDisplayResourceInfo() *DisplayResourceInfo {\n\treturn &DisplayResourceInfo{}\n}\n\nfunc (p *DisplayResourceInfo) InitDefault() {\n}\n\nvar DisplayResourceInfo_ResID_DEFAULT int64\n\nfunc (p *DisplayResourceInfo) GetResID() (v int64) {\n\tif !p.IsSetResID() {\n\t\treturn DisplayResourceInfo_ResID_DEFAULT\n\t}\n\treturn *p.ResID\n}\n\nvar DisplayResourceInfo_Desc_DEFAULT string\n\nfunc (p *DisplayResourceInfo) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn DisplayResourceInfo_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar DisplayResourceInfo_Icon_DEFAULT string\n\nfunc (p *DisplayResourceInfo) GetIcon() (v string) {\n\tif !p.IsSetIcon() {\n\t\treturn DisplayResourceInfo_Icon_DEFAULT\n\t}\n\treturn *p.Icon\n}\n\nvar DisplayResourceInfo_BizResStatus_DEFAULT int32\n\nfunc (p *DisplayResourceInfo) GetBizResStatus() (v int32) {\n\tif !p.IsSetBizResStatus() {\n\t\treturn DisplayResourceInfo_BizResStatus_DEFAULT\n\t}\n\treturn *p.BizResStatus\n}\n\nvar DisplayResourceInfo_CollaborationEnable_DEFAULT bool\n\nfunc (p *DisplayResourceInfo) GetCollaborationEnable() (v bool) {\n\tif !p.IsSetCollaborationEnable() {\n\t\treturn DisplayResourceInfo_CollaborationEnable_DEFAULT\n\t}\n\treturn *p.CollaborationEnable\n}\n\nvar DisplayResourceInfo_BizExtend_DEFAULT map[string]string\n\nfunc (p *DisplayResourceInfo) GetBizExtend() (v map[string]string) {\n\tif !p.IsSetBizExtend() {\n\t\treturn DisplayResourceInfo_BizExtend_DEFAULT\n\t}\n\treturn p.BizExtend\n}\n\nvar DisplayResourceInfo_Actions_DEFAULT []*ResourceAction\n\nfunc (p *DisplayResourceInfo) GetActions() (v []*ResourceAction) {\n\tif !p.IsSetActions() {\n\t\treturn DisplayResourceInfo_Actions_DEFAULT\n\t}\n\treturn p.Actions\n}\n\nvar DisplayResourceInfo_DetailDisable_DEFAULT bool\n\nfunc (p *DisplayResourceInfo) GetDetailDisable() (v bool) {\n\tif !p.IsSetDetailDisable() {\n\t\treturn DisplayResourceInfo_DetailDisable_DEFAULT\n\t}\n\treturn *p.DetailDisable\n}\n\nvar DisplayResourceInfo_Name_DEFAULT string\n\nfunc (p *DisplayResourceInfo) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn DisplayResourceInfo_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar DisplayResourceInfo_PublishStatus_DEFAULT ResourcePublishStatus\n\nfunc (p *DisplayResourceInfo) GetPublishStatus() (v ResourcePublishStatus) {\n\tif !p.IsSetPublishStatus() {\n\t\treturn DisplayResourceInfo_PublishStatus_DEFAULT\n\t}\n\treturn *p.PublishStatus\n}\n\nvar DisplayResourceInfo_EditTime_DEFAULT int64\n\nfunc (p *DisplayResourceInfo) GetEditTime() (v int64) {\n\tif !p.IsSetEditTime() {\n\t\treturn DisplayResourceInfo_EditTime_DEFAULT\n\t}\n\treturn *p.EditTime\n}\n\nvar fieldIDToName_DisplayResourceInfo = map[int16]string{\n\t1:  \"ResID\",\n\t5:  \"Desc\",\n\t6:  \"Icon\",\n\t12: \"BizResStatus\",\n\t13: \"CollaborationEnable\",\n\t16: \"BizExtend\",\n\t17: \"Actions\",\n\t18: \"DetailDisable\",\n\t19: \"Name\",\n\t20: \"PublishStatus\",\n\t21: \"EditTime\",\n}\n\nfunc (p *DisplayResourceInfo) IsSetResID() bool {\n\treturn p.ResID != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetIcon() bool {\n\treturn p.Icon != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetBizResStatus() bool {\n\treturn p.BizResStatus != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetCollaborationEnable() bool {\n\treturn p.CollaborationEnable != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetBizExtend() bool {\n\treturn p.BizExtend != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetActions() bool {\n\treturn p.Actions != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetDetailDisable() bool {\n\treturn p.DetailDisable != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetPublishStatus() bool {\n\treturn p.PublishStatus != nil\n}\n\nfunc (p *DisplayResourceInfo) IsSetEditTime() bool {\n\treturn p.EditTime != nil\n}\n\nfunc (p *DisplayResourceInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DisplayResourceInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DisplayResourceInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ResID = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BizResStatus = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CollaborationEnable = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField16(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BizExtend = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField17(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ResourceAction, 0, size)\n\tvalues := make([]ResourceAction, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Actions = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DetailDisable = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field *ResourcePublishStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ResourcePublishStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.PublishStatus = _field\n\treturn nil\n}\nfunc (p *DisplayResourceInfo) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EditTime = _field\n\treturn nil\n}\n\nfunc (p *DisplayResourceInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DisplayResourceInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DisplayResourceInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResID() {\n\t\tif err = oprot.WriteFieldBegin(\"ResID\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ResID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"Desc\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIcon() {\n\t\tif err = oprot.WriteFieldBegin(\"Icon\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Icon); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBizResStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"BizResStatus\", thrift.I32, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.BizResStatus); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCollaborationEnable() {\n\t\tif err = oprot.WriteFieldBegin(\"CollaborationEnable\", thrift.BOOL, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.CollaborationEnable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBizExtend() {\n\t\tif err = oprot.WriteFieldBegin(\"BizExtend\", thrift.MAP, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.BizExtend)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.BizExtend {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetActions() {\n\t\tif err = oprot.WriteFieldBegin(\"Actions\", thrift.LIST, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Actions)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Actions {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDetailDisable() {\n\t\tif err = oprot.WriteFieldBegin(\"DetailDisable\", thrift.BOOL, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.DetailDisable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"PublishStatus\", thrift.I32, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PublishStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *DisplayResourceInfo) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditTime() {\n\t\tif err = oprot.WriteFieldBegin(\"EditTime\", thrift.I64, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EditTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\n\nfunc (p *DisplayResourceInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DisplayResourceInfo(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/playground/shortcut_command.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage playground\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype SendType int64\n\nconst (\n\t// Send query directly\n\tSendType_SendTypeQuery SendType = 0\n\t// use panel\n\tSendType_SendTypePanel SendType = 1\n)\n\nfunc (p SendType) String() string {\n\tswitch p {\n\tcase SendType_SendTypeQuery:\n\t\treturn \"SendTypeQuery\"\n\tcase SendType_SendTypePanel:\n\t\treturn \"SendTypePanel\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SendTypeFromString(s string) (SendType, error) {\n\tswitch s {\n\tcase \"SendTypeQuery\":\n\t\treturn SendType_SendTypeQuery, nil\n\tcase \"SendTypePanel\":\n\t\treturn SendType_SendTypePanel, nil\n\t}\n\treturn SendType(0), fmt.Errorf(\"not a valid SendType string\")\n}\n\nfunc SendTypePtr(v SendType) *SendType { return &v }\nfunc (p *SendType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SendType(result.Int64)\n\treturn\n}\n\nfunc (p *SendType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ToolType int64\n\nconst (\n\t// Using WorkFlow\n\tToolType_ToolTypeWorkFlow ToolType = 1\n\t// use plug-ins\n\tToolType_ToolTypePlugin ToolType = 2\n)\n\nfunc (p ToolType) String() string {\n\tswitch p {\n\tcase ToolType_ToolTypeWorkFlow:\n\t\treturn \"ToolTypeWorkFlow\"\n\tcase ToolType_ToolTypePlugin:\n\t\treturn \"ToolTypePlugin\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ToolTypeFromString(s string) (ToolType, error) {\n\tswitch s {\n\tcase \"ToolTypeWorkFlow\":\n\t\treturn ToolType_ToolTypeWorkFlow, nil\n\tcase \"ToolTypePlugin\":\n\t\treturn ToolType_ToolTypePlugin, nil\n\t}\n\treturn ToolType(0), fmt.Errorf(\"not a valid ToolType string\")\n}\n\nfunc ToolTypePtr(v ToolType) *ToolType { return &v }\nfunc (p *ToolType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ToolType(result.Int64)\n\treturn\n}\n\nfunc (p *ToolType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype InputType int64\n\nconst (\n\tInputType_TextInput   InputType = 0\n\tInputType_Select      InputType = 1\n\tInputType_UploadImage InputType = 2\n\tInputType_UploadDoc   InputType = 3\n\tInputType_UploadTable InputType = 4\n\tInputType_UploadAudio InputType = 5\n\tInputType_MixUpload   InputType = 6\n\tInputType_VIDEO       InputType = 7\n\tInputType_ARCHIVE     InputType = 8\n\tInputType_CODE        InputType = 9\n\tInputType_TXT         InputType = 10\n\tInputType_PPT         InputType = 11\n)\n\nfunc (p InputType) String() string {\n\tswitch p {\n\tcase InputType_TextInput:\n\t\treturn \"TextInput\"\n\tcase InputType_Select:\n\t\treturn \"Select\"\n\tcase InputType_UploadImage:\n\t\treturn \"UploadImage\"\n\tcase InputType_UploadDoc:\n\t\treturn \"UploadDoc\"\n\tcase InputType_UploadTable:\n\t\treturn \"UploadTable\"\n\tcase InputType_UploadAudio:\n\t\treturn \"UploadAudio\"\n\tcase InputType_MixUpload:\n\t\treturn \"MixUpload\"\n\tcase InputType_VIDEO:\n\t\treturn \"VIDEO\"\n\tcase InputType_ARCHIVE:\n\t\treturn \"ARCHIVE\"\n\tcase InputType_CODE:\n\t\treturn \"CODE\"\n\tcase InputType_TXT:\n\t\treturn \"TXT\"\n\tcase InputType_PPT:\n\t\treturn \"PPT\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc InputTypeFromString(s string) (InputType, error) {\n\tswitch s {\n\tcase \"TextInput\":\n\t\treturn InputType_TextInput, nil\n\tcase \"Select\":\n\t\treturn InputType_Select, nil\n\tcase \"UploadImage\":\n\t\treturn InputType_UploadImage, nil\n\tcase \"UploadDoc\":\n\t\treturn InputType_UploadDoc, nil\n\tcase \"UploadTable\":\n\t\treturn InputType_UploadTable, nil\n\tcase \"UploadAudio\":\n\t\treturn InputType_UploadAudio, nil\n\tcase \"MixUpload\":\n\t\treturn InputType_MixUpload, nil\n\tcase \"VIDEO\":\n\t\treturn InputType_VIDEO, nil\n\tcase \"ARCHIVE\":\n\t\treturn InputType_ARCHIVE, nil\n\tcase \"CODE\":\n\t\treturn InputType_CODE, nil\n\tcase \"TXT\":\n\t\treturn InputType_TXT, nil\n\tcase \"PPT\":\n\t\treturn InputType_PPT, nil\n\t}\n\treturn InputType(0), fmt.Errorf(\"not a valid InputType string\")\n}\n\nfunc InputTypePtr(v InputType) *InputType { return &v }\nfunc (p *InputType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = InputType(result.Int64)\n\treturn\n}\n\nfunc (p *InputType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype CreateShortcutCommandRequest struct {\n\tObjectID  string           `thrift:\"object_id,1\" form:\"object_id\" json:\"object_id\" query:\"object_id\"`\n\tShortcuts *ShortcutCommand `thrift:\"shortcuts,2\" form:\"shortcuts\" json:\"shortcuts\" query:\"shortcuts\"`\n\tBase      *base.Base       `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewCreateShortcutCommandRequest() *CreateShortcutCommandRequest {\n\treturn &CreateShortcutCommandRequest{}\n}\n\nfunc (p *CreateShortcutCommandRequest) InitDefault() {\n}\n\nfunc (p *CreateShortcutCommandRequest) GetObjectID() (v string) {\n\treturn p.ObjectID\n}\n\nvar CreateShortcutCommandRequest_Shortcuts_DEFAULT *ShortcutCommand\n\nfunc (p *CreateShortcutCommandRequest) GetShortcuts() (v *ShortcutCommand) {\n\tif !p.IsSetShortcuts() {\n\t\treturn CreateShortcutCommandRequest_Shortcuts_DEFAULT\n\t}\n\treturn p.Shortcuts\n}\n\nvar CreateShortcutCommandRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateShortcutCommandRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateShortcutCommandRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateShortcutCommandRequest = map[int16]string{\n\t1:   \"object_id\",\n\t2:   \"shortcuts\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateShortcutCommandRequest) IsSetShortcuts() bool {\n\treturn p.Shortcuts != nil\n}\n\nfunc (p *CreateShortcutCommandRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateShortcutCommandRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateShortcutCommandRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateShortcutCommandRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ObjectID = _field\n\treturn nil\n}\nfunc (p *CreateShortcutCommandRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewShortcutCommand()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Shortcuts = _field\n\treturn nil\n}\nfunc (p *CreateShortcutCommandRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateShortcutCommandRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateShortcutCommandRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateShortcutCommandRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"object_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ObjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateShortcutCommandRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"shortcuts\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Shortcuts.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateShortcutCommandRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateShortcutCommandRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateShortcutCommandRequest(%+v)\", *p)\n\n}\n\ntype CreateShortcutCommandResponse struct {\n\tShortcuts *ShortcutCommand `thrift:\"shortcuts,1\" form:\"shortcuts\" json:\"shortcuts\" query:\"shortcuts\"`\n\tBaseResp  *base.BaseResp   `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCreateShortcutCommandResponse() *CreateShortcutCommandResponse {\n\treturn &CreateShortcutCommandResponse{}\n}\n\nfunc (p *CreateShortcutCommandResponse) InitDefault() {\n}\n\nvar CreateShortcutCommandResponse_Shortcuts_DEFAULT *ShortcutCommand\n\nfunc (p *CreateShortcutCommandResponse) GetShortcuts() (v *ShortcutCommand) {\n\tif !p.IsSetShortcuts() {\n\t\treturn CreateShortcutCommandResponse_Shortcuts_DEFAULT\n\t}\n\treturn p.Shortcuts\n}\n\nvar CreateShortcutCommandResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateShortcutCommandResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateShortcutCommandResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateShortcutCommandResponse = map[int16]string{\n\t1:   \"shortcuts\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateShortcutCommandResponse) IsSetShortcuts() bool {\n\treturn p.Shortcuts != nil\n}\n\nfunc (p *CreateShortcutCommandResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateShortcutCommandResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateShortcutCommandResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateShortcutCommandResponse[fieldId]))\n}\n\nfunc (p *CreateShortcutCommandResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewShortcutCommand()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Shortcuts = _field\n\treturn nil\n}\nfunc (p *CreateShortcutCommandResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateShortcutCommandResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateShortcutCommandResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateShortcutCommandResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"shortcuts\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Shortcuts.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateShortcutCommandResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateShortcutCommandResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateShortcutCommandResponse(%+v)\", *p)\n\n}\n\ntype ShortcutStruct struct {\n\t// Shortcut ID list, bound on the entity\n\tShortcutSort []string `thrift:\"shortcut_sort,16,optional\" form:\"shortcut_sort\" json:\"shortcut_sort,omitempty\" query:\"shortcut_sort\"`\n\t// Quick command content list\n\tShortcutList []*ShortcutCommand `thrift:\"shortcut_list,17,optional\" form:\"shortcut_list\" json:\"shortcut_list,omitempty\" query:\"shortcut_list\"`\n}\n\nfunc NewShortcutStruct() *ShortcutStruct {\n\treturn &ShortcutStruct{}\n}\n\nfunc (p *ShortcutStruct) InitDefault() {\n}\n\nvar ShortcutStruct_ShortcutSort_DEFAULT []string\n\nfunc (p *ShortcutStruct) GetShortcutSort() (v []string) {\n\tif !p.IsSetShortcutSort() {\n\t\treturn ShortcutStruct_ShortcutSort_DEFAULT\n\t}\n\treturn p.ShortcutSort\n}\n\nvar ShortcutStruct_ShortcutList_DEFAULT []*ShortcutCommand\n\nfunc (p *ShortcutStruct) GetShortcutList() (v []*ShortcutCommand) {\n\tif !p.IsSetShortcutList() {\n\t\treturn ShortcutStruct_ShortcutList_DEFAULT\n\t}\n\treturn p.ShortcutList\n}\n\nvar fieldIDToName_ShortcutStruct = map[int16]string{\n\t16: \"shortcut_sort\",\n\t17: \"shortcut_list\",\n}\n\nfunc (p *ShortcutStruct) IsSetShortcutSort() bool {\n\treturn p.ShortcutSort != nil\n}\n\nfunc (p *ShortcutStruct) IsSetShortcutList() bool {\n\treturn p.ShortcutList != nil\n}\n\nfunc (p *ShortcutStruct) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ShortcutStruct[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ShortcutStruct) ReadField16(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ShortcutSort = _field\n\treturn nil\n}\nfunc (p *ShortcutStruct) ReadField17(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ShortcutCommand, 0, size)\n\tvalues := make([]ShortcutCommand, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ShortcutList = _field\n\treturn nil\n}\n\nfunc (p *ShortcutStruct) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ShortcutStruct\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ShortcutStruct) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShortcutSort() {\n\t\tif err = oprot.WriteFieldBegin(\"shortcut_sort\", thrift.LIST, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.ShortcutSort)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ShortcutSort {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *ShortcutStruct) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetShortcutList() {\n\t\tif err = oprot.WriteFieldBegin(\"shortcut_list\", thrift.LIST, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ShortcutList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ShortcutList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\n\nfunc (p *ShortcutStruct) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ShortcutStruct(%+v)\", *p)\n\n}\n\ntype ShortcutCommand struct {\n\t// Binding Entity ID\n\tObjectID int64 `thrift:\"object_id,2\" form:\"object_id\" json:\"object_id,string\" query:\"object_id\"`\n\t// command name\n\tCommandName string `thrift:\"command_name,3\" form:\"command_name\" json:\"command_name\" query:\"command_name\"`\n\t// Quick Instruction\n\tShortcutCommand string `thrift:\"shortcut_command,4\" form:\"shortcut_command\" json:\"shortcut_command\" query:\"shortcut_command\"`\n\t// describe\n\tDescription string `thrift:\"description,5\" form:\"description\" json:\"description\" query:\"description\"`\n\t// Send type\n\tSendType SendType `thrift:\"send_type,6\" form:\"send_type\" json:\"send_type\" query:\"send_type\"`\n\t// Use tool type\n\tToolType      ToolType `thrift:\"tool_type,7\" form:\"tool_type\" json:\"tool_type\" query:\"tool_type\"`\n\tWorkFlowID    string   `thrift:\"work_flow_id,8\" form:\"work_flow_id\" json:\"work_flow_id\" query:\"work_flow_id\"`\n\tPluginID      string   `thrift:\"plugin_id,9\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tPluginAPIName string   `thrift:\"plugin_api_name,10\" form:\"plugin_api_name\" json:\"plugin_api_name\" query:\"plugin_api_name\"`\n\t// Template query\n\tTemplateQuery string `thrift:\"template_query,11\" form:\"template_query\" json:\"template_query\" query:\"template_query\"`\n\t// Panel parameters\n\tComponentsList []*Components `thrift:\"components_list,12\" form:\"components_list\" json:\"components_list\" query:\"components_list\"`\n\t// Form schema\n\tCardSchema string `thrift:\"card_schema,15\" form:\"card_schema\" json:\"card_schema\" query:\"card_schema\"`\n\t// Instruction ID\n\tCommandID int64 `thrift:\"command_id,16\" form:\"command_id\" json:\"command_id,string\" query:\"command_id\"`\n\t//Tool information, including name + variable list +...\n\tToolInfo *ToolInfo `thrift:\"tool_info,17\" form:\"tool_info\" json:\"tool_info\" query:\"tool_info\"`\n\t// command icon\n\tShortcutIcon *ShortcutFileInfo `thrift:\"shortcut_icon,18\" form:\"shortcut_icon\" json:\"shortcut_icon\" query:\"shortcut_icon\"`\n\t//Multi instruction, which node executes the instruction\n\tAgentID     *string                `thrift:\"agent_id,21,optional\" form:\"agent_id\" json:\"agent_id,omitempty\" query:\"agent_id\"`\n\tPluginAPIID int64                  `thrift:\"plugin_api_id,22\" form:\"plugin_api_id\" json:\"plugin_api_id,string\" query:\"plugin_api_id\"`\n\tPluginFrom  *bot_common.PluginFrom `thrift:\"plugin_from,23,optional\" form:\"plugin_from\" json:\"plugin_from,omitempty\" query:\"plugin_from\"`\n}\n\nfunc NewShortcutCommand() *ShortcutCommand {\n\treturn &ShortcutCommand{}\n}\n\nfunc (p *ShortcutCommand) InitDefault() {\n}\n\nfunc (p *ShortcutCommand) GetObjectID() (v int64) {\n\treturn p.ObjectID\n}\n\nfunc (p *ShortcutCommand) GetCommandName() (v string) {\n\treturn p.CommandName\n}\n\nfunc (p *ShortcutCommand) GetShortcutCommand() (v string) {\n\treturn p.ShortcutCommand\n}\n\nfunc (p *ShortcutCommand) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *ShortcutCommand) GetSendType() (v SendType) {\n\treturn p.SendType\n}\n\nfunc (p *ShortcutCommand) GetToolType() (v ToolType) {\n\treturn p.ToolType\n}\n\nfunc (p *ShortcutCommand) GetWorkFlowID() (v string) {\n\treturn p.WorkFlowID\n}\n\nfunc (p *ShortcutCommand) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *ShortcutCommand) GetPluginAPIName() (v string) {\n\treturn p.PluginAPIName\n}\n\nfunc (p *ShortcutCommand) GetTemplateQuery() (v string) {\n\treturn p.TemplateQuery\n}\n\nfunc (p *ShortcutCommand) GetComponentsList() (v []*Components) {\n\treturn p.ComponentsList\n}\n\nfunc (p *ShortcutCommand) GetCardSchema() (v string) {\n\treturn p.CardSchema\n}\n\nfunc (p *ShortcutCommand) GetCommandID() (v int64) {\n\treturn p.CommandID\n}\n\nvar ShortcutCommand_ToolInfo_DEFAULT *ToolInfo\n\nfunc (p *ShortcutCommand) GetToolInfo() (v *ToolInfo) {\n\tif !p.IsSetToolInfo() {\n\t\treturn ShortcutCommand_ToolInfo_DEFAULT\n\t}\n\treturn p.ToolInfo\n}\n\nvar ShortcutCommand_ShortcutIcon_DEFAULT *ShortcutFileInfo\n\nfunc (p *ShortcutCommand) GetShortcutIcon() (v *ShortcutFileInfo) {\n\tif !p.IsSetShortcutIcon() {\n\t\treturn ShortcutCommand_ShortcutIcon_DEFAULT\n\t}\n\treturn p.ShortcutIcon\n}\n\nvar ShortcutCommand_AgentID_DEFAULT string\n\nfunc (p *ShortcutCommand) GetAgentID() (v string) {\n\tif !p.IsSetAgentID() {\n\t\treturn ShortcutCommand_AgentID_DEFAULT\n\t}\n\treturn *p.AgentID\n}\n\nfunc (p *ShortcutCommand) GetPluginAPIID() (v int64) {\n\treturn p.PluginAPIID\n}\n\nvar ShortcutCommand_PluginFrom_DEFAULT bot_common.PluginFrom\n\nfunc (p *ShortcutCommand) GetPluginFrom() (v bot_common.PluginFrom) {\n\tif !p.IsSetPluginFrom() {\n\t\treturn ShortcutCommand_PluginFrom_DEFAULT\n\t}\n\treturn *p.PluginFrom\n}\n\nvar fieldIDToName_ShortcutCommand = map[int16]string{\n\t2:  \"object_id\",\n\t3:  \"command_name\",\n\t4:  \"shortcut_command\",\n\t5:  \"description\",\n\t6:  \"send_type\",\n\t7:  \"tool_type\",\n\t8:  \"work_flow_id\",\n\t9:  \"plugin_id\",\n\t10: \"plugin_api_name\",\n\t11: \"template_query\",\n\t12: \"components_list\",\n\t15: \"card_schema\",\n\t16: \"command_id\",\n\t17: \"tool_info\",\n\t18: \"shortcut_icon\",\n\t21: \"agent_id\",\n\t22: \"plugin_api_id\",\n\t23: \"plugin_from\",\n}\n\nfunc (p *ShortcutCommand) IsSetToolInfo() bool {\n\treturn p.ToolInfo != nil\n}\n\nfunc (p *ShortcutCommand) IsSetShortcutIcon() bool {\n\treturn p.ShortcutIcon != nil\n}\n\nfunc (p *ShortcutCommand) IsSetAgentID() bool {\n\treturn p.AgentID != nil\n}\n\nfunc (p *ShortcutCommand) IsSetPluginFrom() bool {\n\treturn p.PluginFrom != nil\n}\n\nfunc (p *ShortcutCommand) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ShortcutCommand[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ShortcutCommand) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ObjectID = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CommandName = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ShortcutCommand = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field SendType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SendType(v)\n\t}\n\tp.SendType = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field ToolType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ToolType(v)\n\t}\n\tp.ToolType = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkFlowID = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginAPIName = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TemplateQuery = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField12(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Components, 0, size)\n\tvalues := make([]Components, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ComponentsList = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CardSchema = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CommandID = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField17(iprot thrift.TProtocol) error {\n\t_field := NewToolInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ToolInfo = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField18(iprot thrift.TProtocol) error {\n\t_field := NewShortcutFileInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ShortcutIcon = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AgentID = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginAPIID = _field\n\treturn nil\n}\nfunc (p *ShortcutCommand) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field *bot_common.PluginFrom\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := bot_common.PluginFrom(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginFrom = _field\n\treturn nil\n}\n\nfunc (p *ShortcutCommand) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ShortcutCommand\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ShortcutCommand) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"object_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ObjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"command_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CommandName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"shortcut_command\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ShortcutCommand); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"send_type\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SendType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tool_type\", thrift.I32, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ToolType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"work_flow_id\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkFlowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_api_name\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginAPIName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"template_query\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TemplateQuery); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"components_list\", thrift.LIST, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ComponentsList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ComponentsList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"card_schema\", thrift.STRING, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CardSchema); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField16(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"command_id\", thrift.I64, 16); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CommandID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tool_info\", thrift.STRUCT, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ToolInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"shortcut_icon\", thrift.STRUCT, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ShortcutIcon.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAgentID() {\n\t\tif err = oprot.WriteFieldBegin(\"agent_id\", thrift.STRING, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.AgentID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField22(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_api_id\", thrift.I64, 22); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginAPIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *ShortcutCommand) writeField23(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginFrom() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_from\", thrift.I32, 23); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginFrom)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\n\nfunc (p *ShortcutCommand) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ShortcutCommand(%+v)\", *p)\n\n}\n\ntype ShortcutFileInfo struct {\n\tURL string `thrift:\"url,1\" form:\"url\" json:\"url\" query:\"url\"`\n\tURI string `thrift:\"uri,2\" form:\"uri\" json:\"uri\" query:\"uri\"`\n}\n\nfunc NewShortcutFileInfo() *ShortcutFileInfo {\n\treturn &ShortcutFileInfo{}\n}\n\nfunc (p *ShortcutFileInfo) InitDefault() {\n}\n\nfunc (p *ShortcutFileInfo) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *ShortcutFileInfo) GetURI() (v string) {\n\treturn p.URI\n}\n\nvar fieldIDToName_ShortcutFileInfo = map[int16]string{\n\t1: \"url\",\n\t2: \"uri\",\n}\n\nfunc (p *ShortcutFileInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ShortcutFileInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ShortcutFileInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *ShortcutFileInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URI = _field\n\treturn nil\n}\n\nfunc (p *ShortcutFileInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ShortcutFileInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ShortcutFileInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ShortcutFileInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"uri\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ShortcutFileInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ShortcutFileInfo(%+v)\", *p)\n\n}\n\ntype Components struct {\n\t// Panel parameters\n\tName        string    `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tDescription string    `thrift:\"description,2\" form:\"description\" json:\"description\" query:\"description\"`\n\tInputType   InputType `thrift:\"input_type,3\" form:\"input_type\" json:\"input_type\" query:\"input_type\"`\n\t// When requesting the tool, the key of the parameter\n\tParameter    string        `thrift:\"parameter,4\" form:\"parameter\" json:\"parameter\" query:\"parameter\"`\n\tOptions      []string      `thrift:\"options,5\" form:\"options\" json:\"options\" query:\"options\"`\n\tDefaultValue *DefaultValue `thrift:\"default_value,6\" form:\"default_value\" json:\"default_value\" query:\"default_value\"`\n\t// Whether to hide or not to show\n\tHide bool `thrift:\"hide,7\" form:\"hide\" json:\"hide\" query:\"hide\"`\n\t// What types are supported input_type MixUpload\n\tUploadOptions []InputType `thrift:\"upload_options,8\" form:\"upload_options\" json:\"upload_options\" query:\"upload_options\"`\n}\n\nfunc NewComponents() *Components {\n\treturn &Components{}\n}\n\nfunc (p *Components) InitDefault() {\n}\n\nfunc (p *Components) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *Components) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *Components) GetInputType() (v InputType) {\n\treturn p.InputType\n}\n\nfunc (p *Components) GetParameter() (v string) {\n\treturn p.Parameter\n}\n\nfunc (p *Components) GetOptions() (v []string) {\n\treturn p.Options\n}\n\nvar Components_DefaultValue_DEFAULT *DefaultValue\n\nfunc (p *Components) GetDefaultValue() (v *DefaultValue) {\n\tif !p.IsSetDefaultValue() {\n\t\treturn Components_DefaultValue_DEFAULT\n\t}\n\treturn p.DefaultValue\n}\n\nfunc (p *Components) GetHide() (v bool) {\n\treturn p.Hide\n}\n\nfunc (p *Components) GetUploadOptions() (v []InputType) {\n\treturn p.UploadOptions\n}\n\nvar fieldIDToName_Components = map[int16]string{\n\t1: \"name\",\n\t2: \"description\",\n\t3: \"input_type\",\n\t4: \"parameter\",\n\t5: \"options\",\n\t6: \"default_value\",\n\t7: \"hide\",\n\t8: \"upload_options\",\n}\n\nfunc (p *Components) IsSetDefaultValue() bool {\n\treturn p.DefaultValue != nil\n}\n\nfunc (p *Components) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Components[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Components) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Components) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *Components) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field InputType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = InputType(v)\n\t}\n\tp.InputType = _field\n\treturn nil\n}\nfunc (p *Components) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Parameter = _field\n\treturn nil\n}\nfunc (p *Components) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Options = _field\n\treturn nil\n}\nfunc (p *Components) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewDefaultValue()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DefaultValue = _field\n\treturn nil\n}\nfunc (p *Components) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Hide = _field\n\treturn nil\n}\nfunc (p *Components) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]InputType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem InputType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = InputType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.UploadOptions = _field\n\treturn nil\n}\n\nfunc (p *Components) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Components\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Components) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Components) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Components) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"input_type\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.InputType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Components) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"parameter\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Parameter); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Components) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"options\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Options)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Options {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Components) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"default_value\", thrift.STRUCT, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.DefaultValue.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Components) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"hide\", thrift.BOOL, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Hide); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Components) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"upload_options\", thrift.LIST, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I32, len(p.UploadOptions)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.UploadOptions {\n\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *Components) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Components(%+v)\", *p)\n\n}\n\ntype DefaultValue struct {\n\tValue string    `thrift:\"value,1\" form:\"value\" json:\"value\" query:\"value\"`\n\tType  InputType `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n}\n\nfunc NewDefaultValue() *DefaultValue {\n\treturn &DefaultValue{}\n}\n\nfunc (p *DefaultValue) InitDefault() {\n}\n\nfunc (p *DefaultValue) GetValue() (v string) {\n\treturn p.Value\n}\n\nfunc (p *DefaultValue) GetType() (v InputType) {\n\treturn p.Type\n}\n\nvar fieldIDToName_DefaultValue = map[int16]string{\n\t1: \"value\",\n\t2: \"type\",\n}\n\nfunc (p *DefaultValue) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DefaultValue[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DefaultValue) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *DefaultValue) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field InputType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = InputType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\n\nfunc (p *DefaultValue) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DefaultValue\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DefaultValue) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"value\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Value); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DefaultValue) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *DefaultValue) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DefaultValue(%+v)\", *p)\n\n}\n\ntype ToolInfo struct {\n\tToolName string `thrift:\"tool_name,1\" form:\"tool_name\" json:\"tool_name\" query:\"tool_name\"`\n\t// Variable lists, plugins & workFLow\n\tToolParamsList []*ToolParams `thrift:\"tool_params_list,2\" form:\"tool_params_list\" json:\"tool_params_list\" query:\"tool_params_list\"`\n}\n\nfunc NewToolInfo() *ToolInfo {\n\treturn &ToolInfo{}\n}\n\nfunc (p *ToolInfo) InitDefault() {\n}\n\nfunc (p *ToolInfo) GetToolName() (v string) {\n\treturn p.ToolName\n}\n\nfunc (p *ToolInfo) GetToolParamsList() (v []*ToolParams) {\n\treturn p.ToolParamsList\n}\n\nvar fieldIDToName_ToolInfo = map[int16]string{\n\t1: \"tool_name\",\n\t2: \"tool_params_list\",\n}\n\nfunc (p *ToolInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ToolInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ToolInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ToolName = _field\n\treturn nil\n}\nfunc (p *ToolInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ToolParams, 0, size)\n\tvalues := make([]ToolParams, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ToolParamsList = _field\n\treturn nil\n}\n\nfunc (p *ToolInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ToolInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ToolInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tool_name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ToolName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ToolInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tool_params_list\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ToolParamsList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ToolParamsList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ToolInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ToolInfo(%+v)\", *p)\n\n}\n\ntype ToolParams struct {\n\t// parameter list\n\tName     string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tRequired bool   `thrift:\"required,2\" form:\"required\" json:\"required\" query:\"required\"`\n\tDesc     string `thrift:\"desc,3\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tType     string `thrift:\"type,4\" form:\"type\" json:\"type\" query:\"type\"`\n\t// default value\n\tDefaultValue string `thrift:\"default_value,6\" form:\"default_value\" json:\"default_value\" query:\"default_value\"`\n\t// Is it a panel parameter?\n\tReferComponent bool `thrift:\"refer_component,8\" form:\"refer_component\" json:\"refer_component\" query:\"refer_component\"`\n}\n\nfunc NewToolParams() *ToolParams {\n\treturn &ToolParams{}\n}\n\nfunc (p *ToolParams) InitDefault() {\n}\n\nfunc (p *ToolParams) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ToolParams) GetRequired() (v bool) {\n\treturn p.Required\n}\n\nfunc (p *ToolParams) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *ToolParams) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *ToolParams) GetDefaultValue() (v string) {\n\treturn p.DefaultValue\n}\n\nfunc (p *ToolParams) GetReferComponent() (v bool) {\n\treturn p.ReferComponent\n}\n\nvar fieldIDToName_ToolParams = map[int16]string{\n\t1: \"name\",\n\t2: \"required\",\n\t3: \"desc\",\n\t4: \"type\",\n\t6: \"default_value\",\n\t8: \"refer_component\",\n}\n\nfunc (p *ToolParams) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ToolParams[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ToolParams) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ToolParams) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Required = _field\n\treturn nil\n}\nfunc (p *ToolParams) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *ToolParams) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ToolParams) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DefaultValue = _field\n\treturn nil\n}\nfunc (p *ToolParams) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReferComponent = _field\n\treturn nil\n}\n\nfunc (p *ToolParams) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ToolParams\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ToolParams) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ToolParams) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"required\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Required); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ToolParams) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ToolParams) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ToolParams) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"default_value\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DefaultValue); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ToolParams) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"refer_component\", thrift.BOOL, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.ReferComponent); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *ToolParams) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ToolParams(%+v)\", *p)\n\n}\n\ntype CreateUpdateShortcutCommandRequest struct {\n\tObjectID  int64            `thrift:\"object_id,1,required\" form:\"object_id,required\" json:\"object_id,string,required\" query:\"object_id,required\"`\n\tSpaceID   int64            `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\tShortcuts *ShortcutCommand `thrift:\"shortcuts,3,required\" form:\"shortcuts,required\" json:\"shortcuts,required\" query:\"shortcuts,required\"`\n\tBase      *base.Base       `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewCreateUpdateShortcutCommandRequest() *CreateUpdateShortcutCommandRequest {\n\treturn &CreateUpdateShortcutCommandRequest{}\n}\n\nfunc (p *CreateUpdateShortcutCommandRequest) InitDefault() {\n}\n\nfunc (p *CreateUpdateShortcutCommandRequest) GetObjectID() (v int64) {\n\treturn p.ObjectID\n}\n\nfunc (p *CreateUpdateShortcutCommandRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar CreateUpdateShortcutCommandRequest_Shortcuts_DEFAULT *ShortcutCommand\n\nfunc (p *CreateUpdateShortcutCommandRequest) GetShortcuts() (v *ShortcutCommand) {\n\tif !p.IsSetShortcuts() {\n\t\treturn CreateUpdateShortcutCommandRequest_Shortcuts_DEFAULT\n\t}\n\treturn p.Shortcuts\n}\n\nvar CreateUpdateShortcutCommandRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateUpdateShortcutCommandRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateUpdateShortcutCommandRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateUpdateShortcutCommandRequest = map[int16]string{\n\t1:   \"object_id\",\n\t2:   \"space_id\",\n\t3:   \"shortcuts\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateUpdateShortcutCommandRequest) IsSetShortcuts() bool {\n\treturn p.Shortcuts != nil\n}\n\nfunc (p *CreateUpdateShortcutCommandRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateUpdateShortcutCommandRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetObjectID bool = false\n\tvar issetSpaceID bool = false\n\tvar issetShortcuts bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetObjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetShortcuts = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetObjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetShortcuts {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateUpdateShortcutCommandRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateUpdateShortcutCommandRequest[fieldId]))\n}\n\nfunc (p *CreateUpdateShortcutCommandRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ObjectID = _field\n\treturn nil\n}\nfunc (p *CreateUpdateShortcutCommandRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *CreateUpdateShortcutCommandRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewShortcutCommand()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Shortcuts = _field\n\treturn nil\n}\nfunc (p *CreateUpdateShortcutCommandRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateUpdateShortcutCommandRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateUpdateShortcutCommandRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateUpdateShortcutCommandRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"object_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ObjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateUpdateShortcutCommandRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateUpdateShortcutCommandRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"shortcuts\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Shortcuts.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateUpdateShortcutCommandRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateUpdateShortcutCommandRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateUpdateShortcutCommandRequest(%+v)\", *p)\n\n}\n\ntype CreateUpdateShortcutCommandResponse struct {\n\tShortcuts *ShortcutCommand `thrift:\"shortcuts,1\" form:\"shortcuts\" json:\"shortcuts\" query:\"shortcuts\"`\n\tCode      int64            `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg       string           `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp  *base.BaseResp   `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCreateUpdateShortcutCommandResponse() *CreateUpdateShortcutCommandResponse {\n\treturn &CreateUpdateShortcutCommandResponse{}\n}\n\nfunc (p *CreateUpdateShortcutCommandResponse) InitDefault() {\n}\n\nvar CreateUpdateShortcutCommandResponse_Shortcuts_DEFAULT *ShortcutCommand\n\nfunc (p *CreateUpdateShortcutCommandResponse) GetShortcuts() (v *ShortcutCommand) {\n\tif !p.IsSetShortcuts() {\n\t\treturn CreateUpdateShortcutCommandResponse_Shortcuts_DEFAULT\n\t}\n\treturn p.Shortcuts\n}\n\nfunc (p *CreateUpdateShortcutCommandResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CreateUpdateShortcutCommandResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CreateUpdateShortcutCommandResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateUpdateShortcutCommandResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateUpdateShortcutCommandResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateUpdateShortcutCommandResponse = map[int16]string{\n\t1:   \"shortcuts\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateUpdateShortcutCommandResponse) IsSetShortcuts() bool {\n\treturn p.Shortcuts != nil\n}\n\nfunc (p *CreateUpdateShortcutCommandResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateUpdateShortcutCommandResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateUpdateShortcutCommandResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateUpdateShortcutCommandResponse[fieldId]))\n}\n\nfunc (p *CreateUpdateShortcutCommandResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewShortcutCommand()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Shortcuts = _field\n\treturn nil\n}\nfunc (p *CreateUpdateShortcutCommandResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateUpdateShortcutCommandResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateUpdateShortcutCommandResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateUpdateShortcutCommandResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateUpdateShortcutCommandResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateUpdateShortcutCommandResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"shortcuts\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Shortcuts.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateUpdateShortcutCommandResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CreateUpdateShortcutCommandResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CreateUpdateShortcutCommandResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateUpdateShortcutCommandResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateUpdateShortcutCommandResponse(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/plugin_develop/common/plugin_develop_common.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype OnlineStatus int64\n\nconst (\n\tOnlineStatus_OFFLINE OnlineStatus = 0\n\tOnlineStatus_ONLINE  OnlineStatus = 1\n)\n\nfunc (p OnlineStatus) String() string {\n\tswitch p {\n\tcase OnlineStatus_OFFLINE:\n\t\treturn \"OFFLINE\"\n\tcase OnlineStatus_ONLINE:\n\t\treturn \"ONLINE\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OnlineStatusFromString(s string) (OnlineStatus, error) {\n\tswitch s {\n\tcase \"OFFLINE\":\n\t\treturn OnlineStatus_OFFLINE, nil\n\tcase \"ONLINE\":\n\t\treturn OnlineStatus_ONLINE, nil\n\t}\n\treturn OnlineStatus(0), fmt.Errorf(\"not a valid OnlineStatus string\")\n}\n\nfunc OnlineStatusPtr(v OnlineStatus) *OnlineStatus { return &v }\nfunc (p *OnlineStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OnlineStatus(result.Int64)\n\treturn\n}\n\nfunc (p *OnlineStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DebugExampleStatus int64\n\nconst (\n\tDebugExampleStatus_Default DebugExampleStatus = 0\n\tDebugExampleStatus_Enable  DebugExampleStatus = 1\n\tDebugExampleStatus_Disable DebugExampleStatus = 2\n)\n\nfunc (p DebugExampleStatus) String() string {\n\tswitch p {\n\tcase DebugExampleStatus_Default:\n\t\treturn \"Default\"\n\tcase DebugExampleStatus_Enable:\n\t\treturn \"Enable\"\n\tcase DebugExampleStatus_Disable:\n\t\treturn \"Disable\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DebugExampleStatusFromString(s string) (DebugExampleStatus, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn DebugExampleStatus_Default, nil\n\tcase \"Enable\":\n\t\treturn DebugExampleStatus_Enable, nil\n\tcase \"Disable\":\n\t\treturn DebugExampleStatus_Disable, nil\n\t}\n\treturn DebugExampleStatus(0), fmt.Errorf(\"not a valid DebugExampleStatus string\")\n}\n\nfunc DebugExampleStatusPtr(v DebugExampleStatus) *DebugExampleStatus { return &v }\nfunc (p *DebugExampleStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DebugExampleStatus(result.Int64)\n\treturn\n}\n\nfunc (p *DebugExampleStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ParameterLocation int64\n\nconst (\n\tParameterLocation_Path   ParameterLocation = 1\n\tParameterLocation_Query  ParameterLocation = 2\n\tParameterLocation_Body   ParameterLocation = 3\n\tParameterLocation_Header ParameterLocation = 4\n)\n\nfunc (p ParameterLocation) String() string {\n\tswitch p {\n\tcase ParameterLocation_Path:\n\t\treturn \"Path\"\n\tcase ParameterLocation_Query:\n\t\treturn \"Query\"\n\tcase ParameterLocation_Body:\n\t\treturn \"Body\"\n\tcase ParameterLocation_Header:\n\t\treturn \"Header\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ParameterLocationFromString(s string) (ParameterLocation, error) {\n\tswitch s {\n\tcase \"Path\":\n\t\treturn ParameterLocation_Path, nil\n\tcase \"Query\":\n\t\treturn ParameterLocation_Query, nil\n\tcase \"Body\":\n\t\treturn ParameterLocation_Body, nil\n\tcase \"Header\":\n\t\treturn ParameterLocation_Header, nil\n\t}\n\treturn ParameterLocation(0), fmt.Errorf(\"not a valid ParameterLocation string\")\n}\n\nfunc ParameterLocationPtr(v ParameterLocation) *ParameterLocation { return &v }\nfunc (p *ParameterLocation) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ParameterLocation(result.Int64)\n\treturn\n}\n\nfunc (p *ParameterLocation) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// plugin enumeration value\ntype PluginParamTypeFormat int64\n\nconst (\n\tPluginParamTypeFormat_FileUrl  PluginParamTypeFormat = 0\n\tPluginParamTypeFormat_ImageUrl PluginParamTypeFormat = 1\n\tPluginParamTypeFormat_DocUrl   PluginParamTypeFormat = 2\n\tPluginParamTypeFormat_CodeUrl  PluginParamTypeFormat = 3\n\tPluginParamTypeFormat_PptUrl   PluginParamTypeFormat = 4\n\tPluginParamTypeFormat_TxtUrl   PluginParamTypeFormat = 5\n\tPluginParamTypeFormat_ExcelUrl PluginParamTypeFormat = 6\n\tPluginParamTypeFormat_AudioUrl PluginParamTypeFormat = 7\n\tPluginParamTypeFormat_ZipUrl   PluginParamTypeFormat = 8\n\tPluginParamTypeFormat_VideoUrl PluginParamTypeFormat = 9\n)\n\nfunc (p PluginParamTypeFormat) String() string {\n\tswitch p {\n\tcase PluginParamTypeFormat_FileUrl:\n\t\treturn \"FileUrl\"\n\tcase PluginParamTypeFormat_ImageUrl:\n\t\treturn \"ImageUrl\"\n\tcase PluginParamTypeFormat_DocUrl:\n\t\treturn \"DocUrl\"\n\tcase PluginParamTypeFormat_CodeUrl:\n\t\treturn \"CodeUrl\"\n\tcase PluginParamTypeFormat_PptUrl:\n\t\treturn \"PptUrl\"\n\tcase PluginParamTypeFormat_TxtUrl:\n\t\treturn \"TxtUrl\"\n\tcase PluginParamTypeFormat_ExcelUrl:\n\t\treturn \"ExcelUrl\"\n\tcase PluginParamTypeFormat_AudioUrl:\n\t\treturn \"AudioUrl\"\n\tcase PluginParamTypeFormat_ZipUrl:\n\t\treturn \"ZipUrl\"\n\tcase PluginParamTypeFormat_VideoUrl:\n\t\treturn \"VideoUrl\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginParamTypeFormatFromString(s string) (PluginParamTypeFormat, error) {\n\tswitch s {\n\tcase \"FileUrl\":\n\t\treturn PluginParamTypeFormat_FileUrl, nil\n\tcase \"ImageUrl\":\n\t\treturn PluginParamTypeFormat_ImageUrl, nil\n\tcase \"DocUrl\":\n\t\treturn PluginParamTypeFormat_DocUrl, nil\n\tcase \"CodeUrl\":\n\t\treturn PluginParamTypeFormat_CodeUrl, nil\n\tcase \"PptUrl\":\n\t\treturn PluginParamTypeFormat_PptUrl, nil\n\tcase \"TxtUrl\":\n\t\treturn PluginParamTypeFormat_TxtUrl, nil\n\tcase \"ExcelUrl\":\n\t\treturn PluginParamTypeFormat_ExcelUrl, nil\n\tcase \"AudioUrl\":\n\t\treturn PluginParamTypeFormat_AudioUrl, nil\n\tcase \"ZipUrl\":\n\t\treturn PluginParamTypeFormat_ZipUrl, nil\n\tcase \"VideoUrl\":\n\t\treturn PluginParamTypeFormat_VideoUrl, nil\n\t}\n\treturn PluginParamTypeFormat(0), fmt.Errorf(\"not a valid PluginParamTypeFormat string\")\n}\n\nfunc PluginParamTypeFormatPtr(v PluginParamTypeFormat) *PluginParamTypeFormat { return &v }\nfunc (p *PluginParamTypeFormat) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginParamTypeFormat(result.Int64)\n\treturn\n}\n\nfunc (p *PluginParamTypeFormat) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype APIMethod int64\n\nconst (\n\tAPIMethod_GET    APIMethod = 1\n\tAPIMethod_POST   APIMethod = 2\n\tAPIMethod_PUT    APIMethod = 3\n\tAPIMethod_DELETE APIMethod = 4\n\tAPIMethod_PATCH  APIMethod = 5\n)\n\nfunc (p APIMethod) String() string {\n\tswitch p {\n\tcase APIMethod_GET:\n\t\treturn \"GET\"\n\tcase APIMethod_POST:\n\t\treturn \"POST\"\n\tcase APIMethod_PUT:\n\t\treturn \"PUT\"\n\tcase APIMethod_DELETE:\n\t\treturn \"DELETE\"\n\tcase APIMethod_PATCH:\n\t\treturn \"PATCH\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc APIMethodFromString(s string) (APIMethod, error) {\n\tswitch s {\n\tcase \"GET\":\n\t\treturn APIMethod_GET, nil\n\tcase \"POST\":\n\t\treturn APIMethod_POST, nil\n\tcase \"PUT\":\n\t\treturn APIMethod_PUT, nil\n\tcase \"DELETE\":\n\t\treturn APIMethod_DELETE, nil\n\tcase \"PATCH\":\n\t\treturn APIMethod_PATCH, nil\n\t}\n\treturn APIMethod(0), fmt.Errorf(\"not a valid APIMethod string\")\n}\n\nfunc APIMethodPtr(v APIMethod) *APIMethod { return &v }\nfunc (p *APIMethod) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = APIMethod(result.Int64)\n\treturn\n}\n\nfunc (p *APIMethod) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype APIDebugStatus int64\n\nconst (\n\tAPIDebugStatus_DebugWaiting APIDebugStatus = 0\n\tAPIDebugStatus_DebugPassed  APIDebugStatus = 1\n)\n\nfunc (p APIDebugStatus) String() string {\n\tswitch p {\n\tcase APIDebugStatus_DebugWaiting:\n\t\treturn \"DebugWaiting\"\n\tcase APIDebugStatus_DebugPassed:\n\t\treturn \"DebugPassed\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc APIDebugStatusFromString(s string) (APIDebugStatus, error) {\n\tswitch s {\n\tcase \"DebugWaiting\":\n\t\treturn APIDebugStatus_DebugWaiting, nil\n\tcase \"DebugPassed\":\n\t\treturn APIDebugStatus_DebugPassed, nil\n\t}\n\treturn APIDebugStatus(0), fmt.Errorf(\"not a valid APIDebugStatus string\")\n}\n\nfunc APIDebugStatusPtr(v APIDebugStatus) *APIDebugStatus { return &v }\nfunc (p *APIDebugStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = APIDebugStatus(result.Int64)\n\treturn\n}\n\nfunc (p *APIDebugStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ParameterType int64\n\nconst (\n\tParameterType_String  ParameterType = 1\n\tParameterType_Integer ParameterType = 2\n\tParameterType_Number  ParameterType = 3\n\tParameterType_Object  ParameterType = 4\n\tParameterType_Array   ParameterType = 5\n\tParameterType_Bool    ParameterType = 6\n)\n\nfunc (p ParameterType) String() string {\n\tswitch p {\n\tcase ParameterType_String:\n\t\treturn \"String\"\n\tcase ParameterType_Integer:\n\t\treturn \"Integer\"\n\tcase ParameterType_Number:\n\t\treturn \"Number\"\n\tcase ParameterType_Object:\n\t\treturn \"Object\"\n\tcase ParameterType_Array:\n\t\treturn \"Array\"\n\tcase ParameterType_Bool:\n\t\treturn \"Bool\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ParameterTypeFromString(s string) (ParameterType, error) {\n\tswitch s {\n\tcase \"String\":\n\t\treturn ParameterType_String, nil\n\tcase \"Integer\":\n\t\treturn ParameterType_Integer, nil\n\tcase \"Number\":\n\t\treturn ParameterType_Number, nil\n\tcase \"Object\":\n\t\treturn ParameterType_Object, nil\n\tcase \"Array\":\n\t\treturn ParameterType_Array, nil\n\tcase \"Bool\":\n\t\treturn ParameterType_Bool, nil\n\t}\n\treturn ParameterType(0), fmt.Errorf(\"not a valid ParameterType string\")\n}\n\nfunc ParameterTypePtr(v ParameterType) *ParameterType { return &v }\nfunc (p *ParameterType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ParameterType(result.Int64)\n\treturn\n}\n\nfunc (p *ParameterType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Default imported parameter settings source\ntype DefaultParamSource int64\n\nconst (\n\t// default user input\n\tDefaultParamSource_Input DefaultParamSource = 0\n\t// reference variable\n\tDefaultParamSource_Variable DefaultParamSource = 1\n)\n\nfunc (p DefaultParamSource) String() string {\n\tswitch p {\n\tcase DefaultParamSource_Input:\n\t\treturn \"Input\"\n\tcase DefaultParamSource_Variable:\n\t\treturn \"Variable\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DefaultParamSourceFromString(s string) (DefaultParamSource, error) {\n\tswitch s {\n\tcase \"Input\":\n\t\treturn DefaultParamSource_Input, nil\n\tcase \"Variable\":\n\t\treturn DefaultParamSource_Variable, nil\n\t}\n\treturn DefaultParamSource(0), fmt.Errorf(\"not a valid DefaultParamSource string\")\n}\n\nfunc DefaultParamSourcePtr(v DefaultParamSource) *DefaultParamSource { return &v }\nfunc (p *DefaultParamSource) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DefaultParamSource(result.Int64)\n\treturn\n}\n\nfunc (p *DefaultParamSource) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Subdivision types for File type parameters\ntype AssistParameterType int64\n\nconst (\n\tAssistParameterType_DEFAULT AssistParameterType = 1\n\tAssistParameterType_IMAGE   AssistParameterType = 2\n\tAssistParameterType_DOC     AssistParameterType = 3\n\tAssistParameterType_CODE    AssistParameterType = 4\n\tAssistParameterType_PPT     AssistParameterType = 5\n\tAssistParameterType_TXT     AssistParameterType = 6\n\tAssistParameterType_EXCEL   AssistParameterType = 7\n\tAssistParameterType_AUDIO   AssistParameterType = 8\n\tAssistParameterType_ZIP     AssistParameterType = 9\n\tAssistParameterType_VIDEO   AssistParameterType = 10\n\t// voice\n\tAssistParameterType_VOICE AssistParameterType = 12\n)\n\nfunc (p AssistParameterType) String() string {\n\tswitch p {\n\tcase AssistParameterType_DEFAULT:\n\t\treturn \"DEFAULT\"\n\tcase AssistParameterType_IMAGE:\n\t\treturn \"IMAGE\"\n\tcase AssistParameterType_DOC:\n\t\treturn \"DOC\"\n\tcase AssistParameterType_CODE:\n\t\treturn \"CODE\"\n\tcase AssistParameterType_PPT:\n\t\treturn \"PPT\"\n\tcase AssistParameterType_TXT:\n\t\treturn \"TXT\"\n\tcase AssistParameterType_EXCEL:\n\t\treturn \"EXCEL\"\n\tcase AssistParameterType_AUDIO:\n\t\treturn \"AUDIO\"\n\tcase AssistParameterType_ZIP:\n\t\treturn \"ZIP\"\n\tcase AssistParameterType_VIDEO:\n\t\treturn \"VIDEO\"\n\tcase AssistParameterType_VOICE:\n\t\treturn \"VOICE\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AssistParameterTypeFromString(s string) (AssistParameterType, error) {\n\tswitch s {\n\tcase \"DEFAULT\":\n\t\treturn AssistParameterType_DEFAULT, nil\n\tcase \"IMAGE\":\n\t\treturn AssistParameterType_IMAGE, nil\n\tcase \"DOC\":\n\t\treturn AssistParameterType_DOC, nil\n\tcase \"CODE\":\n\t\treturn AssistParameterType_CODE, nil\n\tcase \"PPT\":\n\t\treturn AssistParameterType_PPT, nil\n\tcase \"TXT\":\n\t\treturn AssistParameterType_TXT, nil\n\tcase \"EXCEL\":\n\t\treturn AssistParameterType_EXCEL, nil\n\tcase \"AUDIO\":\n\t\treturn AssistParameterType_AUDIO, nil\n\tcase \"ZIP\":\n\t\treturn AssistParameterType_ZIP, nil\n\tcase \"VIDEO\":\n\t\treturn AssistParameterType_VIDEO, nil\n\tcase \"VOICE\":\n\t\treturn AssistParameterType_VOICE, nil\n\t}\n\treturn AssistParameterType(0), fmt.Errorf(\"not a valid AssistParameterType string\")\n}\n\nfunc AssistParameterTypePtr(v AssistParameterType) *AssistParameterType { return &v }\nfunc (p *AssistParameterType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AssistParameterType(result.Int64)\n\treturn\n}\n\nfunc (p *AssistParameterType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginToolAuthType int64\n\nconst (\n\t// strong authorization\n\tPluginToolAuthType_Required PluginToolAuthType = 0\n\t// semi-anonymous authorization\n\tPluginToolAuthType_Supported PluginToolAuthType = 1\n\t// not authorized\n\tPluginToolAuthType_Disable PluginToolAuthType = 2\n)\n\nfunc (p PluginToolAuthType) String() string {\n\tswitch p {\n\tcase PluginToolAuthType_Required:\n\t\treturn \"Required\"\n\tcase PluginToolAuthType_Supported:\n\t\treturn \"Supported\"\n\tcase PluginToolAuthType_Disable:\n\t\treturn \"Disable\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginToolAuthTypeFromString(s string) (PluginToolAuthType, error) {\n\tswitch s {\n\tcase \"Required\":\n\t\treturn PluginToolAuthType_Required, nil\n\tcase \"Supported\":\n\t\treturn PluginToolAuthType_Supported, nil\n\tcase \"Disable\":\n\t\treturn PluginToolAuthType_Disable, nil\n\t}\n\treturn PluginToolAuthType(0), fmt.Errorf(\"not a valid PluginToolAuthType string\")\n}\n\nfunc PluginToolAuthTypePtr(v PluginToolAuthType) *PluginToolAuthType { return &v }\nfunc (p *PluginToolAuthType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginToolAuthType(result.Int64)\n\treturn\n}\n\nfunc (p *PluginToolAuthType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginCardStatus int64\n\nconst (\n\tPluginCardStatus_Latest PluginCardStatus = 1\n\t// The main card version has been upgraded.\n\tPluginCardStatus_NeedUpdate PluginCardStatus = 2\n\t// Plugin tool exported parameters do not match\n\tPluginCardStatus_ParamMisMatch PluginCardStatus = 3\n)\n\nfunc (p PluginCardStatus) String() string {\n\tswitch p {\n\tcase PluginCardStatus_Latest:\n\t\treturn \"Latest\"\n\tcase PluginCardStatus_NeedUpdate:\n\t\treturn \"NeedUpdate\"\n\tcase PluginCardStatus_ParamMisMatch:\n\t\treturn \"ParamMisMatch\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginCardStatusFromString(s string) (PluginCardStatus, error) {\n\tswitch s {\n\tcase \"Latest\":\n\t\treturn PluginCardStatus_Latest, nil\n\tcase \"NeedUpdate\":\n\t\treturn PluginCardStatus_NeedUpdate, nil\n\tcase \"ParamMisMatch\":\n\t\treturn PluginCardStatus_ParamMisMatch, nil\n\t}\n\treturn PluginCardStatus(0), fmt.Errorf(\"not a valid PluginCardStatus string\")\n}\n\nfunc PluginCardStatusPtr(v PluginCardStatus) *PluginCardStatus { return &v }\nfunc (p *PluginCardStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginCardStatus(result.Int64)\n\treturn\n}\n\nfunc (p *PluginCardStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginType int64\n\nconst (\n\tPluginType_PLUGIN    PluginType = 1\n\tPluginType_APP       PluginType = 2\n\tPluginType_FUNC      PluginType = 3\n\tPluginType_WORKFLOW  PluginType = 4\n\tPluginType_IMAGEFLOW PluginType = 5\n\tPluginType_LOCAL     PluginType = 6\n)\n\nfunc (p PluginType) String() string {\n\tswitch p {\n\tcase PluginType_PLUGIN:\n\t\treturn \"PLUGIN\"\n\tcase PluginType_APP:\n\t\treturn \"APP\"\n\tcase PluginType_FUNC:\n\t\treturn \"FUNC\"\n\tcase PluginType_WORKFLOW:\n\t\treturn \"WORKFLOW\"\n\tcase PluginType_IMAGEFLOW:\n\t\treturn \"IMAGEFLOW\"\n\tcase PluginType_LOCAL:\n\t\treturn \"LOCAL\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginTypeFromString(s string) (PluginType, error) {\n\tswitch s {\n\tcase \"PLUGIN\":\n\t\treturn PluginType_PLUGIN, nil\n\tcase \"APP\":\n\t\treturn PluginType_APP, nil\n\tcase \"FUNC\":\n\t\treturn PluginType_FUNC, nil\n\tcase \"WORKFLOW\":\n\t\treturn PluginType_WORKFLOW, nil\n\tcase \"IMAGEFLOW\":\n\t\treturn PluginType_IMAGEFLOW, nil\n\tcase \"LOCAL\":\n\t\treturn PluginType_LOCAL, nil\n\t}\n\treturn PluginType(0), fmt.Errorf(\"not a valid PluginType string\")\n}\n\nfunc PluginTypePtr(v PluginType) *PluginType { return &v }\nfunc (p *PluginType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginType(result.Int64)\n\treturn\n}\n\nfunc (p *PluginType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginStatus int64\n\nconst (\n\tPluginStatus_SUBMITTED PluginStatus = 1\n\tPluginStatus_REVIEWING PluginStatus = 2\n\tPluginStatus_PREPARED  PluginStatus = 3\n\tPluginStatus_PUBLISHED PluginStatus = 4\n\tPluginStatus_OFFLINE   PluginStatus = 5\n\t// default value\n\tPluginStatus_Draft PluginStatus = 0\n\t// disable\n\tPluginStatus_BANNED PluginStatus = 6\n)\n\nfunc (p PluginStatus) String() string {\n\tswitch p {\n\tcase PluginStatus_SUBMITTED:\n\t\treturn \"SUBMITTED\"\n\tcase PluginStatus_REVIEWING:\n\t\treturn \"REVIEWING\"\n\tcase PluginStatus_PREPARED:\n\t\treturn \"PREPARED\"\n\tcase PluginStatus_PUBLISHED:\n\t\treturn \"PUBLISHED\"\n\tcase PluginStatus_OFFLINE:\n\t\treturn \"OFFLINE\"\n\tcase PluginStatus_Draft:\n\t\treturn \"Draft\"\n\tcase PluginStatus_BANNED:\n\t\treturn \"BANNED\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginStatusFromString(s string) (PluginStatus, error) {\n\tswitch s {\n\tcase \"SUBMITTED\":\n\t\treturn PluginStatus_SUBMITTED, nil\n\tcase \"REVIEWING\":\n\t\treturn PluginStatus_REVIEWING, nil\n\tcase \"PREPARED\":\n\t\treturn PluginStatus_PREPARED, nil\n\tcase \"PUBLISHED\":\n\t\treturn PluginStatus_PUBLISHED, nil\n\tcase \"OFFLINE\":\n\t\treturn PluginStatus_OFFLINE, nil\n\tcase \"Draft\":\n\t\treturn PluginStatus_Draft, nil\n\tcase \"BANNED\":\n\t\treturn PluginStatus_BANNED, nil\n\t}\n\treturn PluginStatus(0), fmt.Errorf(\"not a valid PluginStatus string\")\n}\n\nfunc PluginStatusPtr(v PluginStatus) *PluginStatus { return &v }\nfunc (p *PluginStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginStatus(result.Int64)\n\treturn\n}\n\nfunc (p *PluginStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ProductStatus int64\n\nconst (\n\tProductStatus_NeverListed ProductStatus = 0\n\tProductStatus_Listed      ProductStatus = 1\n\tProductStatus_Unlisted    ProductStatus = 2\n\tProductStatus_Banned      ProductStatus = 3\n)\n\nfunc (p ProductStatus) String() string {\n\tswitch p {\n\tcase ProductStatus_NeverListed:\n\t\treturn \"NeverListed\"\n\tcase ProductStatus_Listed:\n\t\treturn \"Listed\"\n\tcase ProductStatus_Unlisted:\n\t\treturn \"Unlisted\"\n\tcase ProductStatus_Banned:\n\t\treturn \"Banned\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ProductStatusFromString(s string) (ProductStatus, error) {\n\tswitch s {\n\tcase \"NeverListed\":\n\t\treturn ProductStatus_NeverListed, nil\n\tcase \"Listed\":\n\t\treturn ProductStatus_Listed, nil\n\tcase \"Unlisted\":\n\t\treturn ProductStatus_Unlisted, nil\n\tcase \"Banned\":\n\t\treturn ProductStatus_Banned, nil\n\t}\n\treturn ProductStatus(0), fmt.Errorf(\"not a valid ProductStatus string\")\n}\n\nfunc ProductStatusPtr(v ProductStatus) *ProductStatus { return &v }\nfunc (p *ProductStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ProductStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ProductStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ProductUnlistType int64\n\nconst (\n\tProductUnlistType_ByAdmin ProductUnlistType = 1\n\tProductUnlistType_ByUser  ProductUnlistType = 2\n)\n\nfunc (p ProductUnlistType) String() string {\n\tswitch p {\n\tcase ProductUnlistType_ByAdmin:\n\t\treturn \"ByAdmin\"\n\tcase ProductUnlistType_ByUser:\n\t\treturn \"ByUser\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ProductUnlistTypeFromString(s string) (ProductUnlistType, error) {\n\tswitch s {\n\tcase \"ByAdmin\":\n\t\treturn ProductUnlistType_ByAdmin, nil\n\tcase \"ByUser\":\n\t\treturn ProductUnlistType_ByUser, nil\n\t}\n\treturn ProductUnlistType(0), fmt.Errorf(\"not a valid ProductUnlistType string\")\n}\n\nfunc ProductUnlistTypePtr(v ProductUnlistType) *ProductUnlistType { return &v }\nfunc (p *ProductUnlistType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ProductUnlistType(result.Int64)\n\treturn\n}\n\nfunc (p *ProductUnlistType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype CreationMethod int64\n\nconst (\n\tCreationMethod_COZE CreationMethod = 0\n\tCreationMethod_IDE  CreationMethod = 1\n)\n\nfunc (p CreationMethod) String() string {\n\tswitch p {\n\tcase CreationMethod_COZE:\n\t\treturn \"COZE\"\n\tcase CreationMethod_IDE:\n\t\treturn \"IDE\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc CreationMethodFromString(s string) (CreationMethod, error) {\n\tswitch s {\n\tcase \"COZE\":\n\t\treturn CreationMethod_COZE, nil\n\tcase \"IDE\":\n\t\treturn CreationMethod_IDE, nil\n\t}\n\treturn CreationMethod(0), fmt.Errorf(\"not a valid CreationMethod string\")\n}\n\nfunc CreationMethodPtr(v CreationMethod) *CreationMethod { return &v }\nfunc (p *CreationMethod) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = CreationMethod(result.Int64)\n\treturn\n}\n\nfunc (p *CreationMethod) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype APIListOrderBy int64\n\nconst (\n\tAPIListOrderBy_CreateTime APIListOrderBy = 1\n)\n\nfunc (p APIListOrderBy) String() string {\n\tswitch p {\n\tcase APIListOrderBy_CreateTime:\n\t\treturn \"CreateTime\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc APIListOrderByFromString(s string) (APIListOrderBy, error) {\n\tswitch s {\n\tcase \"CreateTime\":\n\t\treturn APIListOrderBy_CreateTime, nil\n\t}\n\treturn APIListOrderBy(0), fmt.Errorf(\"not a valid APIListOrderBy string\")\n}\n\nfunc APIListOrderByPtr(v APIListOrderBy) *APIListOrderBy { return &v }\nfunc (p *APIListOrderBy) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = APIListOrderBy(result.Int64)\n\treturn\n}\n\nfunc (p *APIListOrderBy) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SpaceRoleType int64\n\nconst (\n\t// default\n\tSpaceRoleType_Default SpaceRoleType = 0\n\t// owner\n\tSpaceRoleType_Owner SpaceRoleType = 1\n\t// administrator\n\tSpaceRoleType_Admin SpaceRoleType = 2\n\t// ordinary member\n\tSpaceRoleType_Member SpaceRoleType = 3\n)\n\nfunc (p SpaceRoleType) String() string {\n\tswitch p {\n\tcase SpaceRoleType_Default:\n\t\treturn \"Default\"\n\tcase SpaceRoleType_Owner:\n\t\treturn \"Owner\"\n\tcase SpaceRoleType_Admin:\n\t\treturn \"Admin\"\n\tcase SpaceRoleType_Member:\n\t\treturn \"Member\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SpaceRoleTypeFromString(s string) (SpaceRoleType, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn SpaceRoleType_Default, nil\n\tcase \"Owner\":\n\t\treturn SpaceRoleType_Owner, nil\n\tcase \"Admin\":\n\t\treturn SpaceRoleType_Admin, nil\n\tcase \"Member\":\n\t\treturn SpaceRoleType_Member, nil\n\t}\n\treturn SpaceRoleType(0), fmt.Errorf(\"not a valid SpaceRoleType string\")\n}\n\nfunc SpaceRoleTypePtr(v SpaceRoleType) *SpaceRoleType { return &v }\nfunc (p *SpaceRoleType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SpaceRoleType(result.Int64)\n\treturn\n}\n\nfunc (p *SpaceRoleType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype RunMode int64\n\nconst (\n\tRunMode_DefaultToSync RunMode = 0\n\tRunMode_Sync          RunMode = 1\n\tRunMode_Async         RunMode = 2\n\tRunMode_Streaming     RunMode = 3\n)\n\nfunc (p RunMode) String() string {\n\tswitch p {\n\tcase RunMode_DefaultToSync:\n\t\treturn \"DefaultToSync\"\n\tcase RunMode_Sync:\n\t\treturn \"Sync\"\n\tcase RunMode_Async:\n\t\treturn \"Async\"\n\tcase RunMode_Streaming:\n\t\treturn \"Streaming\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc RunModeFromString(s string) (RunMode, error) {\n\tswitch s {\n\tcase \"DefaultToSync\":\n\t\treturn RunMode_DefaultToSync, nil\n\tcase \"Sync\":\n\t\treturn RunMode_Sync, nil\n\tcase \"Async\":\n\t\treturn RunMode_Async, nil\n\tcase \"Streaming\":\n\t\treturn RunMode_Streaming, nil\n\t}\n\treturn RunMode(0), fmt.Errorf(\"not a valid RunMode string\")\n}\n\nfunc RunModePtr(v RunMode) *RunMode { return &v }\nfunc (p *RunMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = RunMode(result.Int64)\n\treturn\n}\n\nfunc (p *RunMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype AuthorizationType int64\n\nconst (\n\tAuthorizationType_None    AuthorizationType = 0\n\tAuthorizationType_Service AuthorizationType = 1\n\tAuthorizationType_OAuth   AuthorizationType = 3\n\t// deprecated, the same as OAuth\n\tAuthorizationType_Standard AuthorizationType = 4\n)\n\nfunc (p AuthorizationType) String() string {\n\tswitch p {\n\tcase AuthorizationType_None:\n\t\treturn \"None\"\n\tcase AuthorizationType_Service:\n\t\treturn \"Service\"\n\tcase AuthorizationType_OAuth:\n\t\treturn \"OAuth\"\n\tcase AuthorizationType_Standard:\n\t\treturn \"Standard\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AuthorizationTypeFromString(s string) (AuthorizationType, error) {\n\tswitch s {\n\tcase \"None\":\n\t\treturn AuthorizationType_None, nil\n\tcase \"Service\":\n\t\treturn AuthorizationType_Service, nil\n\tcase \"OAuth\":\n\t\treturn AuthorizationType_OAuth, nil\n\tcase \"Standard\":\n\t\treturn AuthorizationType_Standard, nil\n\t}\n\treturn AuthorizationType(0), fmt.Errorf(\"not a valid AuthorizationType string\")\n}\n\nfunc AuthorizationTypePtr(v AuthorizationType) *AuthorizationType { return &v }\nfunc (p *AuthorizationType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AuthorizationType(result.Int64)\n\treturn\n}\n\nfunc (p *AuthorizationType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ServiceAuthSubType int64\n\nconst (\n\tServiceAuthSubType_ApiKey ServiceAuthSubType = 0\n\t// for opencoze\n\tServiceAuthSubType_OAuthAuthorizationCode ServiceAuthSubType = 4\n)\n\nfunc (p ServiceAuthSubType) String() string {\n\tswitch p {\n\tcase ServiceAuthSubType_ApiKey:\n\t\treturn \"ApiKey\"\n\tcase ServiceAuthSubType_OAuthAuthorizationCode:\n\t\treturn \"OAuthAuthorizationCode\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ServiceAuthSubTypeFromString(s string) (ServiceAuthSubType, error) {\n\tswitch s {\n\tcase \"ApiKey\":\n\t\treturn ServiceAuthSubType_ApiKey, nil\n\tcase \"OAuthAuthorizationCode\":\n\t\treturn ServiceAuthSubType_OAuthAuthorizationCode, nil\n\t}\n\treturn ServiceAuthSubType(0), fmt.Errorf(\"not a valid ServiceAuthSubType string\")\n}\n\nfunc ServiceAuthSubTypePtr(v ServiceAuthSubType) *ServiceAuthSubType { return &v }\nfunc (p *ServiceAuthSubType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ServiceAuthSubType(result.Int64)\n\treturn\n}\n\nfunc (p *ServiceAuthSubType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype AuthorizationServiceLocation int64\n\nconst (\n\tAuthorizationServiceLocation_Header AuthorizationServiceLocation = 1\n\tAuthorizationServiceLocation_Query  AuthorizationServiceLocation = 2\n)\n\nfunc (p AuthorizationServiceLocation) String() string {\n\tswitch p {\n\tcase AuthorizationServiceLocation_Header:\n\t\treturn \"Header\"\n\tcase AuthorizationServiceLocation_Query:\n\t\treturn \"Query\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AuthorizationServiceLocationFromString(s string) (AuthorizationServiceLocation, error) {\n\tswitch s {\n\tcase \"Header\":\n\t\treturn AuthorizationServiceLocation_Header, nil\n\tcase \"Query\":\n\t\treturn AuthorizationServiceLocation_Query, nil\n\t}\n\treturn AuthorizationServiceLocation(0), fmt.Errorf(\"not a valid AuthorizationServiceLocation string\")\n}\n\nfunc AuthorizationServiceLocationPtr(v AuthorizationServiceLocation) *AuthorizationServiceLocation {\n\treturn &v\n}\nfunc (p *AuthorizationServiceLocation) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AuthorizationServiceLocation(result.Int64)\n\treturn\n}\n\nfunc (p *AuthorizationServiceLocation) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginReferrerScene int64\n\nconst (\n\tPluginReferrerScene_SingleAgent     PluginReferrerScene = 0\n\tPluginReferrerScene_WorkflowLlmNode PluginReferrerScene = 1\n)\n\nfunc (p PluginReferrerScene) String() string {\n\tswitch p {\n\tcase PluginReferrerScene_SingleAgent:\n\t\treturn \"SingleAgent\"\n\tcase PluginReferrerScene_WorkflowLlmNode:\n\t\treturn \"WorkflowLlmNode\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginReferrerSceneFromString(s string) (PluginReferrerScene, error) {\n\tswitch s {\n\tcase \"SingleAgent\":\n\t\treturn PluginReferrerScene_SingleAgent, nil\n\tcase \"WorkflowLlmNode\":\n\t\treturn PluginReferrerScene_WorkflowLlmNode, nil\n\t}\n\treturn PluginReferrerScene(0), fmt.Errorf(\"not a valid PluginReferrerScene string\")\n}\n\nfunc PluginReferrerScenePtr(v PluginReferrerScene) *PluginReferrerScene { return &v }\nfunc (p *PluginReferrerScene) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginReferrerScene(result.Int64)\n\treturn\n}\n\nfunc (p *PluginReferrerScene) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype WorkflowResponseMode int64\n\nconst (\n\t// model summary\n\tWorkflowResponseMode_UseLLM WorkflowResponseMode = 0\n\t// Do not use model summaries\n\tWorkflowResponseMode_SkipLLM WorkflowResponseMode = 1\n)\n\nfunc (p WorkflowResponseMode) String() string {\n\tswitch p {\n\tcase WorkflowResponseMode_UseLLM:\n\t\treturn \"UseLLM\"\n\tcase WorkflowResponseMode_SkipLLM:\n\t\treturn \"SkipLLM\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc WorkflowResponseModeFromString(s string) (WorkflowResponseMode, error) {\n\tswitch s {\n\tcase \"UseLLM\":\n\t\treturn WorkflowResponseMode_UseLLM, nil\n\tcase \"SkipLLM\":\n\t\treturn WorkflowResponseMode_SkipLLM, nil\n\t}\n\treturn WorkflowResponseMode(0), fmt.Errorf(\"not a valid WorkflowResponseMode string\")\n}\n\nfunc WorkflowResponseModePtr(v WorkflowResponseMode) *WorkflowResponseMode { return &v }\nfunc (p *WorkflowResponseMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = WorkflowResponseMode(result.Int64)\n\treturn\n}\n\nfunc (p *WorkflowResponseMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// authorization status\ntype OAuthStatus int64\n\nconst (\n\tOAuthStatus_Authorized   OAuthStatus = 1\n\tOAuthStatus_Unauthorized OAuthStatus = 2\n)\n\nfunc (p OAuthStatus) String() string {\n\tswitch p {\n\tcase OAuthStatus_Authorized:\n\t\treturn \"Authorized\"\n\tcase OAuthStatus_Unauthorized:\n\t\treturn \"Unauthorized\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OAuthStatusFromString(s string) (OAuthStatus, error) {\n\tswitch s {\n\tcase \"Authorized\":\n\t\treturn OAuthStatus_Authorized, nil\n\tcase \"Unauthorized\":\n\t\treturn OAuthStatus_Unauthorized, nil\n\t}\n\treturn OAuthStatus(0), fmt.Errorf(\"not a valid OAuthStatus string\")\n}\n\nfunc OAuthStatusPtr(v OAuthStatus) *OAuthStatus { return &v }\nfunc (p *OAuthStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OAuthStatus(result.Int64)\n\treturn\n}\n\nfunc (p *OAuthStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DebugOperation int64\n\nconst (\n\t// Debugging, the debugging state will be saved, and the return value will be checked.\n\tDebugOperation_Debug DebugOperation = 1\n\t// Parse only the return value structure\n\tDebugOperation_Parse DebugOperation = 2\n)\n\nfunc (p DebugOperation) String() string {\n\tswitch p {\n\tcase DebugOperation_Debug:\n\t\treturn \"Debug\"\n\tcase DebugOperation_Parse:\n\t\treturn \"Parse\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DebugOperationFromString(s string) (DebugOperation, error) {\n\tswitch s {\n\tcase \"Debug\":\n\t\treturn DebugOperation_Debug, nil\n\tcase \"Parse\":\n\t\treturn DebugOperation_Parse, nil\n\t}\n\treturn DebugOperation(0), fmt.Errorf(\"not a valid DebugOperation string\")\n}\n\nfunc DebugOperationPtr(v DebugOperation) *DebugOperation { return &v }\nfunc (p *DebugOperation) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DebugOperation(result.Int64)\n\treturn\n}\n\nfunc (p *DebugOperation) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ScopeType int64\n\nconst (\n\t// all\n\tScopeType_All ScopeType = 0\n\t// self\n\tScopeType_Self ScopeType = 1\n)\n\nfunc (p ScopeType) String() string {\n\tswitch p {\n\tcase ScopeType_All:\n\t\treturn \"All\"\n\tcase ScopeType_Self:\n\t\treturn \"Self\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ScopeTypeFromString(s string) (ScopeType, error) {\n\tswitch s {\n\tcase \"All\":\n\t\treturn ScopeType_All, nil\n\tcase \"Self\":\n\t\treturn ScopeType_Self, nil\n\t}\n\treturn ScopeType(0), fmt.Errorf(\"not a valid ScopeType string\")\n}\n\nfunc ScopeTypePtr(v ScopeType) *ScopeType { return &v }\nfunc (p *ScopeType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ScopeType(result.Int64)\n\treturn\n}\n\nfunc (p *ScopeType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype OrderBy int64\n\nconst (\n\tOrderBy_CreateTime  OrderBy = 0\n\tOrderBy_UpdateTime  OrderBy = 1\n\tOrderBy_PublishTime OrderBy = 2\n\tOrderBy_Hot         OrderBy = 3\n)\n\nfunc (p OrderBy) String() string {\n\tswitch p {\n\tcase OrderBy_CreateTime:\n\t\treturn \"CreateTime\"\n\tcase OrderBy_UpdateTime:\n\t\treturn \"UpdateTime\"\n\tcase OrderBy_PublishTime:\n\t\treturn \"PublishTime\"\n\tcase OrderBy_Hot:\n\t\treturn \"Hot\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OrderByFromString(s string) (OrderBy, error) {\n\tswitch s {\n\tcase \"CreateTime\":\n\t\treturn OrderBy_CreateTime, nil\n\tcase \"UpdateTime\":\n\t\treturn OrderBy_UpdateTime, nil\n\tcase \"PublishTime\":\n\t\treturn OrderBy_PublishTime, nil\n\tcase \"Hot\":\n\t\treturn OrderBy_Hot, nil\n\t}\n\treturn OrderBy(0), fmt.Errorf(\"not a valid OrderBy string\")\n}\n\nfunc OrderByPtr(v OrderBy) *OrderBy { return &v }\nfunc (p *OrderBy) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OrderBy(result.Int64)\n\treturn\n}\n\nfunc (p *OrderBy) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginTypeForFilter int64\n\nconst (\n\t// Includes PLUGIN and APP.\n\tPluginTypeForFilter_CloudPlugin PluginTypeForFilter = 1\n\t// Include LOCAL\n\tPluginTypeForFilter_LocalPlugin PluginTypeForFilter = 2\n\t// Includes WORKFLOW and IMAGEFLOW\n\tPluginTypeForFilter_WorkflowPlugin PluginTypeForFilter = 3\n)\n\nfunc (p PluginTypeForFilter) String() string {\n\tswitch p {\n\tcase PluginTypeForFilter_CloudPlugin:\n\t\treturn \"CloudPlugin\"\n\tcase PluginTypeForFilter_LocalPlugin:\n\t\treturn \"LocalPlugin\"\n\tcase PluginTypeForFilter_WorkflowPlugin:\n\t\treturn \"WorkflowPlugin\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginTypeForFilterFromString(s string) (PluginTypeForFilter, error) {\n\tswitch s {\n\tcase \"CloudPlugin\":\n\t\treturn PluginTypeForFilter_CloudPlugin, nil\n\tcase \"LocalPlugin\":\n\t\treturn PluginTypeForFilter_LocalPlugin, nil\n\tcase \"WorkflowPlugin\":\n\t\treturn PluginTypeForFilter_WorkflowPlugin, nil\n\t}\n\treturn PluginTypeForFilter(0), fmt.Errorf(\"not a valid PluginTypeForFilter string\")\n}\n\nfunc PluginTypeForFilterPtr(v PluginTypeForFilter) *PluginTypeForFilter { return &v }\nfunc (p *PluginTypeForFilter) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginTypeForFilter(result.Int64)\n\treturn\n}\n\nfunc (p *PluginTypeForFilter) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginDataFormat int64\n\nconst (\n\tPluginDataFormat_OpenAPI PluginDataFormat = 1\n\tPluginDataFormat_Curl    PluginDataFormat = 2\n\tPluginDataFormat_Postman PluginDataFormat = 3\n\tPluginDataFormat_Swagger PluginDataFormat = 4\n)\n\nfunc (p PluginDataFormat) String() string {\n\tswitch p {\n\tcase PluginDataFormat_OpenAPI:\n\t\treturn \"OpenAPI\"\n\tcase PluginDataFormat_Curl:\n\t\treturn \"Curl\"\n\tcase PluginDataFormat_Postman:\n\t\treturn \"Postman\"\n\tcase PluginDataFormat_Swagger:\n\t\treturn \"Swagger\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginDataFormatFromString(s string) (PluginDataFormat, error) {\n\tswitch s {\n\tcase \"OpenAPI\":\n\t\treturn PluginDataFormat_OpenAPI, nil\n\tcase \"Curl\":\n\t\treturn PluginDataFormat_Curl, nil\n\tcase \"Postman\":\n\t\treturn PluginDataFormat_Postman, nil\n\tcase \"Swagger\":\n\t\treturn PluginDataFormat_Swagger, nil\n\t}\n\treturn PluginDataFormat(0), fmt.Errorf(\"not a valid PluginDataFormat string\")\n}\n\nfunc PluginDataFormatPtr(v PluginDataFormat) *PluginDataFormat { return &v }\nfunc (p *PluginDataFormat) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginDataFormat(result.Int64)\n\treturn\n}\n\nfunc (p *PluginDataFormat) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ResponseStyle struct {\n\tWorkflowResponseMode WorkflowResponseMode `thrift:\"workflow_response_mode,1\" form:\"workflow_response_mode\" json:\"workflow_response_mode\" query:\"workflow_response_mode\"`\n}\n\nfunc NewResponseStyle() *ResponseStyle {\n\treturn &ResponseStyle{}\n}\n\nfunc (p *ResponseStyle) InitDefault() {\n}\n\nfunc (p *ResponseStyle) GetWorkflowResponseMode() (v WorkflowResponseMode) {\n\treturn p.WorkflowResponseMode\n}\n\nvar fieldIDToName_ResponseStyle = map[int16]string{\n\t1: \"workflow_response_mode\",\n}\n\nfunc (p *ResponseStyle) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResponseStyle[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResponseStyle) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field WorkflowResponseMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkflowResponseMode(v)\n\t}\n\tp.WorkflowResponseMode = _field\n\treturn nil\n}\n\nfunc (p *ResponseStyle) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResponseStyle\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResponseStyle) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_response_mode\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.WorkflowResponseMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ResponseStyle) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResponseStyle(%+v)\", *p)\n\n}\n\ntype CodeInfo struct {\n\t// plugin manifest in json string\n\tPluginDesc string `thrift:\"plugin_desc,1\" form:\"plugin_desc\" json:\"plugin_desc\" query:\"plugin_desc\"`\n\t// plugin openapi3 document in yaml string\n\tOpenapiDesc  string `thrift:\"openapi_desc,2\" form:\"openapi_desc\" json:\"openapi_desc\" query:\"openapi_desc\"`\n\tClientID     string `thrift:\"client_id,3\" form:\"client_id\" json:\"client_id\" query:\"client_id\"`\n\tClientSecret string `thrift:\"client_secret,4\" form:\"client_secret\" json:\"client_secret\" query:\"client_secret\"`\n\tServiceToken string `thrift:\"service_token,5\" form:\"service_token\" json:\"service_token\" query:\"service_token\"`\n}\n\nfunc NewCodeInfo() *CodeInfo {\n\treturn &CodeInfo{}\n}\n\nfunc (p *CodeInfo) InitDefault() {\n}\n\nfunc (p *CodeInfo) GetPluginDesc() (v string) {\n\treturn p.PluginDesc\n}\n\nfunc (p *CodeInfo) GetOpenapiDesc() (v string) {\n\treturn p.OpenapiDesc\n}\n\nfunc (p *CodeInfo) GetClientID() (v string) {\n\treturn p.ClientID\n}\n\nfunc (p *CodeInfo) GetClientSecret() (v string) {\n\treturn p.ClientSecret\n}\n\nfunc (p *CodeInfo) GetServiceToken() (v string) {\n\treturn p.ServiceToken\n}\n\nvar fieldIDToName_CodeInfo = map[int16]string{\n\t1: \"plugin_desc\",\n\t2: \"openapi_desc\",\n\t3: \"client_id\",\n\t4: \"client_secret\",\n\t5: \"service_token\",\n}\n\nfunc (p *CodeInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CodeInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CodeInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginDesc = _field\n\treturn nil\n}\nfunc (p *CodeInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OpenapiDesc = _field\n\treturn nil\n}\nfunc (p *CodeInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ClientID = _field\n\treturn nil\n}\nfunc (p *CodeInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ClientSecret = _field\n\treturn nil\n}\nfunc (p *CodeInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ServiceToken = _field\n\treturn nil\n}\n\nfunc (p *CodeInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CodeInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CodeInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_desc\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CodeInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"openapi_desc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.OpenapiDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CodeInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"client_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ClientID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CodeInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"client_secret\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ClientSecret); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CodeInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"service_token\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ServiceToken); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *CodeInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CodeInfo(%+v)\", *p)\n\n}\n\ntype APIListOrder struct {\n\tOrderBy APIListOrderBy `thrift:\"order_by,1\" form:\"order_by\" json:\"order_by\" query:\"order_by\"`\n\tDesc    bool           `thrift:\"desc,2\" form:\"desc\" json:\"desc\" query:\"desc\"`\n}\n\nfunc NewAPIListOrder() *APIListOrder {\n\treturn &APIListOrder{}\n}\n\nfunc (p *APIListOrder) InitDefault() {\n}\n\nfunc (p *APIListOrder) GetOrderBy() (v APIListOrderBy) {\n\treturn p.OrderBy\n}\n\nfunc (p *APIListOrder) GetDesc() (v bool) {\n\treturn p.Desc\n}\n\nvar fieldIDToName_APIListOrder = map[int16]string{\n\t1: \"order_by\",\n\t2: \"desc\",\n}\n\nfunc (p *APIListOrder) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_APIListOrder[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *APIListOrder) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field APIListOrderBy\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = APIListOrderBy(v)\n\t}\n\tp.OrderBy = _field\n\treturn nil\n}\nfunc (p *APIListOrder) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\n\nfunc (p *APIListOrder) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"APIListOrder\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *APIListOrder) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"order_by\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.OrderBy)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *APIListOrder) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *APIListOrder) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"APIListOrder(%+v)\", *p)\n\n}\n\ntype UserLabel struct {\n\tLabelID   string `thrift:\"label_id,1\" form:\"label_id\" json:\"label_id\" query:\"label_id\"`\n\tLabelName string `thrift:\"label_name,2\" form:\"label_name\" json:\"label_name\" query:\"label_name\"`\n\tIconURI   string `thrift:\"icon_uri,3\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tIconURL   string `thrift:\"icon_url,4\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tJumpLink  string `thrift:\"jump_link,5\" form:\"jump_link\" json:\"jump_link\" query:\"jump_link\"`\n}\n\nfunc NewUserLabel() *UserLabel {\n\treturn &UserLabel{}\n}\n\nfunc (p *UserLabel) InitDefault() {\n}\n\nfunc (p *UserLabel) GetLabelID() (v string) {\n\treturn p.LabelID\n}\n\nfunc (p *UserLabel) GetLabelName() (v string) {\n\treturn p.LabelName\n}\n\nfunc (p *UserLabel) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *UserLabel) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *UserLabel) GetJumpLink() (v string) {\n\treturn p.JumpLink\n}\n\nvar fieldIDToName_UserLabel = map[int16]string{\n\t1: \"label_id\",\n\t2: \"label_name\",\n\t3: \"icon_uri\",\n\t4: \"icon_url\",\n\t5: \"jump_link\",\n}\n\nfunc (p *UserLabel) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserLabel[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserLabel) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LabelID = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LabelName = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *UserLabel) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.JumpLink = _field\n\treturn nil\n}\n\nfunc (p *UserLabel) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserLabel\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserLabel) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LabelID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"label_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LabelName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UserLabel) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"jump_link\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.JumpLink); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *UserLabel) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserLabel(%+v)\", *p)\n\n}\n\ntype PluginMetaInfo struct {\n\t// plugin name\n\tName string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\t// Plugin description\n\tDesc string `thrift:\"desc,2\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\t// Plugin service address prefix\n\tURL string `thrift:\"url,3\" form:\"url\" json:\"url\" query:\"url\"`\n\t// plugin icon\n\tIcon *PluginIcon `thrift:\"icon,4\" form:\"icon\" json:\"icon\" query:\"icon\"`\n\t// Plugin authorization type, 0: no authorization, 1: service, 3: oauth\n\tAuthType []AuthorizationType `thrift:\"auth_type,5\" form:\"auth_type\" json:\"auth_type\" query:\"auth_type\"`\n\t// When the sub-authorization type is api/token, the token parameter position\n\tLocation *AuthorizationServiceLocation `thrift:\"location,6,optional\" form:\"location\" json:\"location,omitempty\" query:\"location\"`\n\t// When the sub-authorization type is api/token, the token parameter key\n\tKey *string `thrift:\"key,7,optional\" form:\"key\" json:\"key,omitempty\" query:\"key\"`\n\t// When the sub-authorization type is api/token, the token parameter value\n\tServiceToken *string `thrift:\"service_token,8,optional\" form:\"service_token\" json:\"service_token,omitempty\" query:\"service_token\"`\n\t// When the sub-authorization type is oauth, the oauth information\n\tOauthInfo *string `thrift:\"oauth_info,9,optional\" form:\"oauth_info\" json:\"oauth_info,omitempty\" query:\"oauth_info\"`\n\t// Plugin public parameters, key is the parameter position, value is the parameter list\n\tCommonParams map[ParameterLocation][]*CommonParamSchema `thrift:\"common_params,10,optional\" form:\"common_params\" json:\"common_params,omitempty\" query:\"common_params\"`\n\t// Sub-authorization type, 0: api/token of service, 10: client credentials of oauth\n\tSubAuthType *int32 `thrift:\"sub_auth_type,11,optional\" form:\"sub_auth_type\" json:\"sub_auth_type,omitempty\" query:\"sub_auth_type\"`\n\t// negligible\n\tAuthPayload *string `thrift:\"auth_payload,12,optional\" form:\"auth_payload\" json:\"auth_payload,omitempty\" query:\"auth_payload\"`\n\t// negligible\n\tFixedExportIP bool `thrift:\"fixed_export_ip,13\" form:\"fixed_export_ip\" json:\"fixed_export_ip\" query:\"fixed_export_ip\"`\n}\n\nfunc NewPluginMetaInfo() *PluginMetaInfo {\n\treturn &PluginMetaInfo{}\n}\n\nfunc (p *PluginMetaInfo) InitDefault() {\n}\n\nfunc (p *PluginMetaInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PluginMetaInfo) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *PluginMetaInfo) GetURL() (v string) {\n\treturn p.URL\n}\n\nvar PluginMetaInfo_Icon_DEFAULT *PluginIcon\n\nfunc (p *PluginMetaInfo) GetIcon() (v *PluginIcon) {\n\tif !p.IsSetIcon() {\n\t\treturn PluginMetaInfo_Icon_DEFAULT\n\t}\n\treturn p.Icon\n}\n\nfunc (p *PluginMetaInfo) GetAuthType() (v []AuthorizationType) {\n\treturn p.AuthType\n}\n\nvar PluginMetaInfo_Location_DEFAULT AuthorizationServiceLocation\n\nfunc (p *PluginMetaInfo) GetLocation() (v AuthorizationServiceLocation) {\n\tif !p.IsSetLocation() {\n\t\treturn PluginMetaInfo_Location_DEFAULT\n\t}\n\treturn *p.Location\n}\n\nvar PluginMetaInfo_Key_DEFAULT string\n\nfunc (p *PluginMetaInfo) GetKey() (v string) {\n\tif !p.IsSetKey() {\n\t\treturn PluginMetaInfo_Key_DEFAULT\n\t}\n\treturn *p.Key\n}\n\nvar PluginMetaInfo_ServiceToken_DEFAULT string\n\nfunc (p *PluginMetaInfo) GetServiceToken() (v string) {\n\tif !p.IsSetServiceToken() {\n\t\treturn PluginMetaInfo_ServiceToken_DEFAULT\n\t}\n\treturn *p.ServiceToken\n}\n\nvar PluginMetaInfo_OauthInfo_DEFAULT string\n\nfunc (p *PluginMetaInfo) GetOauthInfo() (v string) {\n\tif !p.IsSetOauthInfo() {\n\t\treturn PluginMetaInfo_OauthInfo_DEFAULT\n\t}\n\treturn *p.OauthInfo\n}\n\nvar PluginMetaInfo_CommonParams_DEFAULT map[ParameterLocation][]*CommonParamSchema\n\nfunc (p *PluginMetaInfo) GetCommonParams() (v map[ParameterLocation][]*CommonParamSchema) {\n\tif !p.IsSetCommonParams() {\n\t\treturn PluginMetaInfo_CommonParams_DEFAULT\n\t}\n\treturn p.CommonParams\n}\n\nvar PluginMetaInfo_SubAuthType_DEFAULT int32\n\nfunc (p *PluginMetaInfo) GetSubAuthType() (v int32) {\n\tif !p.IsSetSubAuthType() {\n\t\treturn PluginMetaInfo_SubAuthType_DEFAULT\n\t}\n\treturn *p.SubAuthType\n}\n\nvar PluginMetaInfo_AuthPayload_DEFAULT string\n\nfunc (p *PluginMetaInfo) GetAuthPayload() (v string) {\n\tif !p.IsSetAuthPayload() {\n\t\treturn PluginMetaInfo_AuthPayload_DEFAULT\n\t}\n\treturn *p.AuthPayload\n}\n\nfunc (p *PluginMetaInfo) GetFixedExportIP() (v bool) {\n\treturn p.FixedExportIP\n}\n\nvar fieldIDToName_PluginMetaInfo = map[int16]string{\n\t1:  \"name\",\n\t2:  \"desc\",\n\t3:  \"url\",\n\t4:  \"icon\",\n\t5:  \"auth_type\",\n\t6:  \"location\",\n\t7:  \"key\",\n\t8:  \"service_token\",\n\t9:  \"oauth_info\",\n\t10: \"common_params\",\n\t11: \"sub_auth_type\",\n\t12: \"auth_payload\",\n\t13: \"fixed_export_ip\",\n}\n\nfunc (p *PluginMetaInfo) IsSetIcon() bool {\n\treturn p.Icon != nil\n}\n\nfunc (p *PluginMetaInfo) IsSetLocation() bool {\n\treturn p.Location != nil\n}\n\nfunc (p *PluginMetaInfo) IsSetKey() bool {\n\treturn p.Key != nil\n}\n\nfunc (p *PluginMetaInfo) IsSetServiceToken() bool {\n\treturn p.ServiceToken != nil\n}\n\nfunc (p *PluginMetaInfo) IsSetOauthInfo() bool {\n\treturn p.OauthInfo != nil\n}\n\nfunc (p *PluginMetaInfo) IsSetCommonParams() bool {\n\treturn p.CommonParams != nil\n}\n\nfunc (p *PluginMetaInfo) IsSetSubAuthType() bool {\n\treturn p.SubAuthType != nil\n}\n\nfunc (p *PluginMetaInfo) IsSetAuthPayload() bool {\n\treturn p.AuthPayload != nil\n}\n\nfunc (p *PluginMetaInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginMetaInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginMetaInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewPluginIcon()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]AuthorizationType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem AuthorizationType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = AuthorizationType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.AuthType = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *AuthorizationServiceLocation\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := AuthorizationServiceLocation(v)\n\t\t_field = &tmp\n\t}\n\tp.Location = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ServiceToken = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OauthInfo = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField10(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[ParameterLocation][]*CommonParamSchema, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key ParameterLocation\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = ParameterLocation(v)\n\t\t}\n\t\t_, size, err := iprot.ReadListBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_val := make([]*CommonParamSchema, 0, size)\n\t\tvalues := make([]CommonParamSchema, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\t_elem := &values[i]\n\t\t\t_elem.InitDefault()\n\n\t\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t_val = append(_val, _elem)\n\t\t}\n\t\tif err := iprot.ReadListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CommonParams = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubAuthType = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AuthPayload = _field\n\treturn nil\n}\nfunc (p *PluginMetaInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FixedExportIP = _field\n\treturn nil\n}\n\nfunc (p *PluginMetaInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginMetaInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginMetaInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Icon.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"auth_type\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I32, len(p.AuthType)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.AuthType {\n\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLocation() {\n\t\tif err = oprot.WriteFieldBegin(\"location\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Location)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKey() {\n\t\tif err = oprot.WriteFieldBegin(\"key\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Key); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetServiceToken() {\n\t\tif err = oprot.WriteFieldBegin(\"service_token\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ServiceToken); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOauthInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"oauth_info\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OauthInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommonParams() {\n\t\tif err = oprot.WriteFieldBegin(\"common_params\", thrift.MAP, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I32, thrift.LIST, len(p.CommonParams)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.CommonParams {\n\t\t\tif err := oprot.WriteI32(int32(k)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfor _, v := range v {\n\t\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubAuthType() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_auth_type\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.SubAuthType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuthPayload() {\n\t\tif err = oprot.WriteFieldBegin(\"auth_payload\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.AuthPayload); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *PluginMetaInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"fixed_export_ip\", thrift.BOOL, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.FixedExportIP); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *PluginMetaInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginMetaInfo(%+v)\", *p)\n\n}\n\ntype PluginIcon struct {\n\tURI string `thrift:\"uri,1\" form:\"uri\" json:\"uri\" query:\"uri\"`\n\tURL string `thrift:\"url,2\" form:\"url\" json:\"url\" query:\"url\"`\n}\n\nfunc NewPluginIcon() *PluginIcon {\n\treturn &PluginIcon{}\n}\n\nfunc (p *PluginIcon) InitDefault() {\n}\n\nfunc (p *PluginIcon) GetURI() (v string) {\n\treturn p.URI\n}\n\nfunc (p *PluginIcon) GetURL() (v string) {\n\treturn p.URL\n}\n\nvar fieldIDToName_PluginIcon = map[int16]string{\n\t1: \"uri\",\n\t2: \"url\",\n}\n\nfunc (p *PluginIcon) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginIcon[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginIcon) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URI = _field\n\treturn nil\n}\nfunc (p *PluginIcon) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\n\nfunc (p *PluginIcon) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginIcon\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginIcon) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"uri\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginIcon) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *PluginIcon) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginIcon(%+v)\", *p)\n\n}\n\ntype GetPlaygroundPluginListData struct {\n\tPluginList []*PluginInfoForPlayground `thrift:\"plugin_list,1\" form:\"plugin_list\" json:\"plugin_list\"`\n\tTotal      int32                      `thrift:\"total,2\" form:\"total\" json:\"total\"`\n}\n\nfunc NewGetPlaygroundPluginListData() *GetPlaygroundPluginListData {\n\treturn &GetPlaygroundPluginListData{}\n}\n\nfunc (p *GetPlaygroundPluginListData) InitDefault() {\n}\n\nfunc (p *GetPlaygroundPluginListData) GetPluginList() (v []*PluginInfoForPlayground) {\n\treturn p.PluginList\n}\n\nfunc (p *GetPlaygroundPluginListData) GetTotal() (v int32) {\n\treturn p.Total\n}\n\nvar fieldIDToName_GetPlaygroundPluginListData = map[int16]string{\n\t1: \"plugin_list\",\n\t2: \"total\",\n}\n\nfunc (p *GetPlaygroundPluginListData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPlaygroundPluginListData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetPlaygroundPluginListData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginInfoForPlayground, 0, size)\n\tvalues := make([]PluginInfoForPlayground, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginList = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\n\nfunc (p *GetPlaygroundPluginListData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPlaygroundPluginListData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPlaygroundPluginListData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *GetPlaygroundPluginListData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPlaygroundPluginListData(%+v)\", *p)\n\n}\n\ntype PluginInfoForPlayground struct {\n\tID string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\t// name_for_human\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\t// description_for_human\n\tDescForHuman string       `thrift:\"desc_for_human,3\" form:\"desc_for_human\" json:\"desc_for_human\" query:\"desc_for_human\"`\n\tPluginIcon   string       `thrift:\"plugin_icon,4\" form:\"plugin_icon\" json:\"plugin_icon\" query:\"plugin_icon\"`\n\tPluginType   PluginType   `thrift:\"plugin_type,5\" form:\"plugin_type\" json:\"plugin_type\" query:\"plugin_type\"`\n\tStatus       PluginStatus `thrift:\"status,6\" form:\"status\" json:\"status\" query:\"status\"`\n\tAuth         int32        `thrift:\"auth,9\" form:\"auth\" json:\"auth\" query:\"auth\"`\n\tClientID     string       `thrift:\"client_id,10\" form:\"client_id\" json:\"client_id\" query:\"client_id\"`\n\tClientSecret string       `thrift:\"client_secret,11\" form:\"client_secret\" json:\"client_secret\" query:\"client_secret\"`\n\tPluginApis   []*PluginApi `thrift:\"plugin_apis,15\" form:\"plugin_apis\" json:\"plugin_apis\" query:\"plugin_apis\"`\n\t// plugin tag\n\tTag        int64  `thrift:\"tag,16\" form:\"tag\" json:\"tag\" query:\"tag\"`\n\tCreateTime string `thrift:\"create_time,17\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\tUpdateTime string `thrift:\"update_time,18\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\t// creator information\n\tCreator *Creator `thrift:\"creator,22\" form:\"creator\" json:\"creator\" query:\"creator\"`\n\t// Space ID\n\tSpaceID string `thrift:\"space_id,23\" form:\"space_id\" json:\"space_id\" query:\"space_id\"`\n\t// plugin statistics\n\tStatisticData *PluginStatisticData                       `thrift:\"statistic_data,24\" form:\"statistic_data\" json:\"statistic_data\" query:\"statistic_data\"`\n\tCommonParams  map[ParameterLocation][]*CommonParamSchema `thrift:\"common_params,25,optional\" form:\"common_params\" json:\"common_params,omitempty\" query:\"common_params\"`\n\t// Product status of the plugin\n\tPluginProductStatus ProductStatus `thrift:\"plugin_product_status,26\" form:\"plugin_product_status\" json:\"plugin_product_status\" query:\"plugin_product_status\"`\n\t// Plugin product removal type\n\tPluginProductUnlistType ProductUnlistType `thrift:\"plugin_product_unlist_type,27\" form:\"plugin_product_unlist_type\" json:\"plugin_product_unlist_type\" query:\"plugin_product_unlist_type\"`\n\t// Material ID\n\tMaterialID string `thrift:\"material_id,28\" form:\"material_id\" json:\"material_id\" query:\"material_id\"`\n\t// Channel ID\n\tChannelID int32 `thrift:\"channel_id,29\" form:\"channel_id\" json:\"channel_id\" query:\"channel_id\"`\n\t// Plugin creation method\n\tCreationMethod CreationMethod `thrift:\"creation_method,30\" form:\"creation_method\" json:\"creation_method\" query:\"creation_method\"`\n\t// Is it an official plugin?\n\tIsOfficial bool `thrift:\"is_official,31\" form:\"is_official\" json:\"is_official\" query:\"is_official\"`\n\t// Project ID\n\tProjectID string `thrift:\"project_id,32\" form:\"project_id\" json:\"project_id\" query:\"project_id\"`\n\t// Version number, millisecond timestamp\n\tVersionTs string `thrift:\"version_ts,33\" form:\"version_ts\" json:\"version_ts\" query:\"version_ts\"`\n\t// version name\n\tVersionName string `thrift:\"version_name,34\" form:\"version_name\" json:\"version_name\" query:\"version_name\"`\n}\n\nfunc NewPluginInfoForPlayground() *PluginInfoForPlayground {\n\treturn &PluginInfoForPlayground{}\n}\n\nfunc (p *PluginInfoForPlayground) InitDefault() {\n}\n\nfunc (p *PluginInfoForPlayground) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *PluginInfoForPlayground) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PluginInfoForPlayground) GetDescForHuman() (v string) {\n\treturn p.DescForHuman\n}\n\nfunc (p *PluginInfoForPlayground) GetPluginIcon() (v string) {\n\treturn p.PluginIcon\n}\n\nfunc (p *PluginInfoForPlayground) GetPluginType() (v PluginType) {\n\treturn p.PluginType\n}\n\nfunc (p *PluginInfoForPlayground) GetStatus() (v PluginStatus) {\n\treturn p.Status\n}\n\nfunc (p *PluginInfoForPlayground) GetAuth() (v int32) {\n\treturn p.Auth\n}\n\nfunc (p *PluginInfoForPlayground) GetClientID() (v string) {\n\treturn p.ClientID\n}\n\nfunc (p *PluginInfoForPlayground) GetClientSecret() (v string) {\n\treturn p.ClientSecret\n}\n\nfunc (p *PluginInfoForPlayground) GetPluginApis() (v []*PluginApi) {\n\treturn p.PluginApis\n}\n\nfunc (p *PluginInfoForPlayground) GetTag() (v int64) {\n\treturn p.Tag\n}\n\nfunc (p *PluginInfoForPlayground) GetCreateTime() (v string) {\n\treturn p.CreateTime\n}\n\nfunc (p *PluginInfoForPlayground) GetUpdateTime() (v string) {\n\treturn p.UpdateTime\n}\n\nvar PluginInfoForPlayground_Creator_DEFAULT *Creator\n\nfunc (p *PluginInfoForPlayground) GetCreator() (v *Creator) {\n\tif !p.IsSetCreator() {\n\t\treturn PluginInfoForPlayground_Creator_DEFAULT\n\t}\n\treturn p.Creator\n}\n\nfunc (p *PluginInfoForPlayground) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar PluginInfoForPlayground_StatisticData_DEFAULT *PluginStatisticData\n\nfunc (p *PluginInfoForPlayground) GetStatisticData() (v *PluginStatisticData) {\n\tif !p.IsSetStatisticData() {\n\t\treturn PluginInfoForPlayground_StatisticData_DEFAULT\n\t}\n\treturn p.StatisticData\n}\n\nvar PluginInfoForPlayground_CommonParams_DEFAULT map[ParameterLocation][]*CommonParamSchema\n\nfunc (p *PluginInfoForPlayground) GetCommonParams() (v map[ParameterLocation][]*CommonParamSchema) {\n\tif !p.IsSetCommonParams() {\n\t\treturn PluginInfoForPlayground_CommonParams_DEFAULT\n\t}\n\treturn p.CommonParams\n}\n\nfunc (p *PluginInfoForPlayground) GetPluginProductStatus() (v ProductStatus) {\n\treturn p.PluginProductStatus\n}\n\nfunc (p *PluginInfoForPlayground) GetPluginProductUnlistType() (v ProductUnlistType) {\n\treturn p.PluginProductUnlistType\n}\n\nfunc (p *PluginInfoForPlayground) GetMaterialID() (v string) {\n\treturn p.MaterialID\n}\n\nfunc (p *PluginInfoForPlayground) GetChannelID() (v int32) {\n\treturn p.ChannelID\n}\n\nfunc (p *PluginInfoForPlayground) GetCreationMethod() (v CreationMethod) {\n\treturn p.CreationMethod\n}\n\nfunc (p *PluginInfoForPlayground) GetIsOfficial() (v bool) {\n\treturn p.IsOfficial\n}\n\nfunc (p *PluginInfoForPlayground) GetProjectID() (v string) {\n\treturn p.ProjectID\n}\n\nfunc (p *PluginInfoForPlayground) GetVersionTs() (v string) {\n\treturn p.VersionTs\n}\n\nfunc (p *PluginInfoForPlayground) GetVersionName() (v string) {\n\treturn p.VersionName\n}\n\nvar fieldIDToName_PluginInfoForPlayground = map[int16]string{\n\t1:  \"id\",\n\t2:  \"name\",\n\t3:  \"desc_for_human\",\n\t4:  \"plugin_icon\",\n\t5:  \"plugin_type\",\n\t6:  \"status\",\n\t9:  \"auth\",\n\t10: \"client_id\",\n\t11: \"client_secret\",\n\t15: \"plugin_apis\",\n\t16: \"tag\",\n\t17: \"create_time\",\n\t18: \"update_time\",\n\t22: \"creator\",\n\t23: \"space_id\",\n\t24: \"statistic_data\",\n\t25: \"common_params\",\n\t26: \"plugin_product_status\",\n\t27: \"plugin_product_unlist_type\",\n\t28: \"material_id\",\n\t29: \"channel_id\",\n\t30: \"creation_method\",\n\t31: \"is_official\",\n\t32: \"project_id\",\n\t33: \"version_ts\",\n\t34: \"version_name\",\n}\n\nfunc (p *PluginInfoForPlayground) IsSetCreator() bool {\n\treturn p.Creator != nil\n}\n\nfunc (p *PluginInfoForPlayground) IsSetStatisticData() bool {\n\treturn p.StatisticData != nil\n}\n\nfunc (p *PluginInfoForPlayground) IsSetCommonParams() bool {\n\treturn p.CommonParams != nil\n}\n\nfunc (p *PluginInfoForPlayground) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 25:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField25(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 26:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField26(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 27:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField27(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 28:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField28(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 29:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField29(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 30:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField30(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 31:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField31(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 32:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField32(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 33:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField33(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 34:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField34(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginInfoForPlayground[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginInfoForPlayground) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DescForHuman = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginIcon = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field PluginType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = PluginType(v)\n\t}\n\tp.PluginType = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field PluginStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = PluginStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Auth = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ClientID = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ClientSecret = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField15(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginApi, 0, size)\n\tvalues := make([]PluginApi, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginApis = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Tag = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField22(iprot thrift.TProtocol) error {\n\t_field := NewCreator()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Creator = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField24(iprot thrift.TProtocol) error {\n\t_field := NewPluginStatisticData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.StatisticData = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField25(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[ParameterLocation][]*CommonParamSchema, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key ParameterLocation\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = ParameterLocation(v)\n\t\t}\n\t\t_, size, err := iprot.ReadListBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_val := make([]*CommonParamSchema, 0, size)\n\t\tvalues := make([]CommonParamSchema, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\t_elem := &values[i]\n\t\t\t_elem.InitDefault()\n\n\t\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t_val = append(_val, _elem)\n\t\t}\n\t\tif err := iprot.ReadListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CommonParams = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField26(iprot thrift.TProtocol) error {\n\n\tvar _field ProductStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ProductStatus(v)\n\t}\n\tp.PluginProductStatus = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField27(iprot thrift.TProtocol) error {\n\n\tvar _field ProductUnlistType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ProductUnlistType(v)\n\t}\n\tp.PluginProductUnlistType = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField28(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.MaterialID = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField29(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ChannelID = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField30(iprot thrift.TProtocol) error {\n\n\tvar _field CreationMethod\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = CreationMethod(v)\n\t}\n\tp.CreationMethod = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField31(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsOfficial = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField32(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField33(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionTs = _field\n\treturn nil\n}\nfunc (p *PluginInfoForPlayground) ReadField34(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionName = _field\n\treturn nil\n}\n\nfunc (p *PluginInfoForPlayground) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginInfoForPlayground\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField25(oprot); err != nil {\n\t\t\tfieldId = 25\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField26(oprot); err != nil {\n\t\t\tfieldId = 26\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField27(oprot); err != nil {\n\t\t\tfieldId = 27\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField28(oprot); err != nil {\n\t\t\tfieldId = 28\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField29(oprot); err != nil {\n\t\t\tfieldId = 29\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField30(oprot); err != nil {\n\t\t\tfieldId = 30\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField31(oprot); err != nil {\n\t\t\tfieldId = 31\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField32(oprot); err != nil {\n\t\t\tfieldId = 32\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField33(oprot); err != nil {\n\t\t\tfieldId = 33\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField34(oprot); err != nil {\n\t\t\tfieldId = 34\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginInfoForPlayground) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc_for_human\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DescForHuman); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_icon\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginIcon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PluginType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"auth\", thrift.I32, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Auth); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"client_id\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ClientID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"client_secret\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ClientSecret); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_apis\", thrift.LIST, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginApis)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginApis {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField16(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tag\", thrift.I64, 16); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Tag); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.STRING, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.STRING, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField22(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator\", thrift.STRUCT, 22); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Creator.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField23(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 23); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField24(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"statistic_data\", thrift.STRUCT, 24); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.StatisticData.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField25(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommonParams() {\n\t\tif err = oprot.WriteFieldBegin(\"common_params\", thrift.MAP, 25); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I32, thrift.LIST, len(p.CommonParams)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.CommonParams {\n\t\t\tif err := oprot.WriteI32(int32(k)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfor _, v := range v {\n\t\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField26(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_product_status\", thrift.I32, 26); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PluginProductStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 26 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 26 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField27(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_product_unlist_type\", thrift.I32, 27); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PluginProductUnlistType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 27 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 27 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField28(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"material_id\", thrift.STRING, 28); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.MaterialID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 28 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 28 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField29(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"channel_id\", thrift.I32, 29); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.ChannelID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 29 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 29 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField30(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creation_method\", thrift.I32, 30); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.CreationMethod)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 30 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 30 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField31(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_official\", thrift.BOOL, 31); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsOfficial); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 31 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 31 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField32(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 32); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 32 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 32 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField33(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_ts\", thrift.STRING, 33); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionTs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 33 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 33 end error: \", p), err)\n}\nfunc (p *PluginInfoForPlayground) writeField34(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_name\", thrift.STRING, 34); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 34 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 34 end error: \", p), err)\n}\n\nfunc (p *PluginInfoForPlayground) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginInfoForPlayground(%+v)\", *p)\n\n}\n\ntype PluginApi struct {\n\t// operationId\n\tName string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\t// summary\n\tDesc       string             `thrift:\"desc,2\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tParameters []*PluginParameter `thrift:\"parameters,3\" form:\"parameters\" json:\"parameters\" query:\"parameters\"`\n\tPluginID   string             `thrift:\"plugin_id,4\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tPluginName string             `thrift:\"plugin_name,5\" form:\"plugin_name\" json:\"plugin_name\" query:\"plugin_name\"`\n\t// The serial number is the same as the playground\n\tAPIID    string `thrift:\"api_id,7\" form:\"api_id\" json:\"api_id\" query:\"api_id\"`\n\tRecordID string `thrift:\"record_id,8\" form:\"record_id\" json:\"record_id\" query:\"record_id\"`\n\t// Card binding information, nil if not bound.\n\tCardBindingInfo *PresetCardBindingInfo `thrift:\"card_binding_info,9,optional\" form:\"card_binding_info\" json:\"card_binding_info,omitempty\" query:\"card_binding_info\"`\n\t// Debug API example\n\tDebugExample *DebugExample `thrift:\"debug_example,10,optional\" form:\"debug_example\" json:\"debug_example,omitempty\" query:\"debug_example\"`\n\tFunctionName *string       `thrift:\"function_name,11,optional\" form:\"function_name\" json:\"function_name,omitempty\" query:\"function_name\"`\n\t// operating mode\n\tRunMode RunMode `thrift:\"run_mode,12\" form:\"run_mode\" json:\"run_mode\" query:\"run_mode\"`\n}\n\nfunc NewPluginApi() *PluginApi {\n\treturn &PluginApi{}\n}\n\nfunc (p *PluginApi) InitDefault() {\n}\n\nfunc (p *PluginApi) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PluginApi) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *PluginApi) GetParameters() (v []*PluginParameter) {\n\treturn p.Parameters\n}\n\nfunc (p *PluginApi) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *PluginApi) GetPluginName() (v string) {\n\treturn p.PluginName\n}\n\nfunc (p *PluginApi) GetAPIID() (v string) {\n\treturn p.APIID\n}\n\nfunc (p *PluginApi) GetRecordID() (v string) {\n\treturn p.RecordID\n}\n\nvar PluginApi_CardBindingInfo_DEFAULT *PresetCardBindingInfo\n\nfunc (p *PluginApi) GetCardBindingInfo() (v *PresetCardBindingInfo) {\n\tif !p.IsSetCardBindingInfo() {\n\t\treturn PluginApi_CardBindingInfo_DEFAULT\n\t}\n\treturn p.CardBindingInfo\n}\n\nvar PluginApi_DebugExample_DEFAULT *DebugExample\n\nfunc (p *PluginApi) GetDebugExample() (v *DebugExample) {\n\tif !p.IsSetDebugExample() {\n\t\treturn PluginApi_DebugExample_DEFAULT\n\t}\n\treturn p.DebugExample\n}\n\nvar PluginApi_FunctionName_DEFAULT string\n\nfunc (p *PluginApi) GetFunctionName() (v string) {\n\tif !p.IsSetFunctionName() {\n\t\treturn PluginApi_FunctionName_DEFAULT\n\t}\n\treturn *p.FunctionName\n}\n\nfunc (p *PluginApi) GetRunMode() (v RunMode) {\n\treturn p.RunMode\n}\n\nvar fieldIDToName_PluginApi = map[int16]string{\n\t1:  \"name\",\n\t2:  \"desc\",\n\t3:  \"parameters\",\n\t4:  \"plugin_id\",\n\t5:  \"plugin_name\",\n\t7:  \"api_id\",\n\t8:  \"record_id\",\n\t9:  \"card_binding_info\",\n\t10: \"debug_example\",\n\t11: \"function_name\",\n\t12: \"run_mode\",\n}\n\nfunc (p *PluginApi) IsSetCardBindingInfo() bool {\n\treturn p.CardBindingInfo != nil\n}\n\nfunc (p *PluginApi) IsSetDebugExample() bool {\n\treturn p.DebugExample != nil\n}\n\nfunc (p *PluginApi) IsSetFunctionName() bool {\n\treturn p.FunctionName != nil\n}\n\nfunc (p *PluginApi) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginApi[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginApi) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginApi) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *PluginApi) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginParameter, 0, size)\n\tvalues := make([]PluginParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\nfunc (p *PluginApi) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *PluginApi) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginName = _field\n\treturn nil\n}\nfunc (p *PluginApi) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *PluginApi) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RecordID = _field\n\treturn nil\n}\nfunc (p *PluginApi) ReadField9(iprot thrift.TProtocol) error {\n\t_field := NewPresetCardBindingInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CardBindingInfo = _field\n\treturn nil\n}\nfunc (p *PluginApi) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewDebugExample()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DebugExample = _field\n\treturn nil\n}\nfunc (p *PluginApi) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FunctionName = _field\n\treturn nil\n}\nfunc (p *PluginApi) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field RunMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = RunMode(v)\n\t}\n\tp.RunMode = _field\n\treturn nil\n}\n\nfunc (p *PluginApi) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginApi\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginApi) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginApi) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginApi) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"parameters\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Parameters)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Parameters {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginApi) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginApi) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_name\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginApi) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PluginApi) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"record_id\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.RecordID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PluginApi) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCardBindingInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"card_binding_info\", thrift.STRUCT, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.CardBindingInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PluginApi) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDebugExample() {\n\t\tif err = oprot.WriteFieldBegin(\"debug_example\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.DebugExample.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *PluginApi) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFunctionName() {\n\t\tif err = oprot.WriteFieldBegin(\"function_name\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FunctionName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *PluginApi) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"run_mode\", thrift.I32, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.RunMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\n\nfunc (p *PluginApi) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginApi(%+v)\", *p)\n\n}\n\ntype Creator struct {\n\tID        string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tName      string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tAvatarURL string `thrift:\"avatar_url,3\" form:\"avatar_url\" json:\"avatar_url\" query:\"avatar_url\"`\n\t// Did you create it yourself?\n\tSelf          bool          `thrift:\"self,4\" form:\"self\" json:\"self\" query:\"self\"`\n\tSpaceRolyType SpaceRoleType `thrift:\"space_roly_type,5\" form:\"space_roly_type\" json:\"space_roly_type\" query:\"space_roly_type\"`\n\t// user name\n\tUserUniqueName string `thrift:\"user_unique_name,6\" form:\"user_unique_name\" json:\"user_unique_name\" query:\"user_unique_name\"`\n\t// user tag\n\tUserLabel *UserLabel `thrift:\"user_label,7\" form:\"user_label\" json:\"user_label\" query:\"user_label\"`\n}\n\nfunc NewCreator() *Creator {\n\treturn &Creator{}\n}\n\nfunc (p *Creator) InitDefault() {\n}\n\nfunc (p *Creator) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *Creator) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *Creator) GetAvatarURL() (v string) {\n\treturn p.AvatarURL\n}\n\nfunc (p *Creator) GetSelf() (v bool) {\n\treturn p.Self\n}\n\nfunc (p *Creator) GetSpaceRolyType() (v SpaceRoleType) {\n\treturn p.SpaceRolyType\n}\n\nfunc (p *Creator) GetUserUniqueName() (v string) {\n\treturn p.UserUniqueName\n}\n\nvar Creator_UserLabel_DEFAULT *UserLabel\n\nfunc (p *Creator) GetUserLabel() (v *UserLabel) {\n\tif !p.IsSetUserLabel() {\n\t\treturn Creator_UserLabel_DEFAULT\n\t}\n\treturn p.UserLabel\n}\n\nvar fieldIDToName_Creator = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"avatar_url\",\n\t4: \"self\",\n\t5: \"space_roly_type\",\n\t6: \"user_unique_name\",\n\t7: \"user_label\",\n}\n\nfunc (p *Creator) IsSetUserLabel() bool {\n\treturn p.UserLabel != nil\n}\n\nfunc (p *Creator) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Creator[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Creator) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AvatarURL = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Self = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field SpaceRoleType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SpaceRoleType(v)\n\t}\n\tp.SpaceRolyType = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserUniqueName = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewUserLabel()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserLabel = _field\n\treturn nil\n}\n\nfunc (p *Creator) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Creator\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Creator) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Creator) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Creator) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"avatar_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AvatarURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Creator) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"self\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Self); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Creator) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_roly_type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SpaceRolyType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Creator) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_unique_name\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserUniqueName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Creator) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_label\", thrift.STRUCT, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.UserLabel.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *Creator) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Creator(%+v)\", *p)\n\n}\n\ntype CommonParamSchema struct {\n\tName  string `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tValue string `thrift:\"value,2\" form:\"value\" json:\"value\" query:\"value\"`\n}\n\nfunc NewCommonParamSchema() *CommonParamSchema {\n\treturn &CommonParamSchema{}\n}\n\nfunc (p *CommonParamSchema) InitDefault() {\n}\n\nfunc (p *CommonParamSchema) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *CommonParamSchema) GetValue() (v string) {\n\treturn p.Value\n}\n\nvar fieldIDToName_CommonParamSchema = map[int16]string{\n\t1: \"name\",\n\t2: \"value\",\n}\n\nfunc (p *CommonParamSchema) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CommonParamSchema[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CommonParamSchema) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *CommonParamSchema) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Value = _field\n\treturn nil\n}\n\nfunc (p *CommonParamSchema) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"commonParamSchema\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CommonParamSchema) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CommonParamSchema) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"value\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Value); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *CommonParamSchema) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CommonParamSchema(%+v)\", *p)\n\n}\n\ntype PluginParameter struct {\n\tName          string             `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc          string             `thrift:\"desc,2\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tRequired      bool               `thrift:\"required,3\" form:\"required\" json:\"required\" query:\"required\"`\n\tType          string             `thrift:\"type,4\" form:\"type\" json:\"type\" query:\"type\"`\n\tSubParameters []*PluginParameter `thrift:\"sub_parameters,5\" form:\"sub_parameters\" json:\"sub_parameters\" query:\"sub_parameters\"`\n\t// If Type is an array, there is a subtype\n\tSubType string `thrift:\"sub_type,6\" form:\"sub_type\" json:\"sub_type\" query:\"sub_type\"`\n\t// fromNodeId if the value of the imported parameter is a reference\n\tFromNodeID *string `thrift:\"from_node_id,7,optional\" form:\"from_node_id\" json:\"from_node_id,omitempty\" query:\"from_node_id\"`\n\t// Which node's key is specifically referenced?\n\tFromOutput []string `thrift:\"from_output,8,optional\" form:\"from_output\" json:\"from_output,omitempty\" query:\"from_output\"`\n\t// If the imported parameter is the user's hand input, put it here\n\tValue *string `thrift:\"value,9,optional\" form:\"value\" json:\"value,omitempty\" query:\"value\"`\n\t// Format parameter\n\tFormat *PluginParamTypeFormat `thrift:\"format,10,optional\" form:\"format\" json:\"format,omitempty\" query:\"format\"`\n}\n\nfunc NewPluginParameter() *PluginParameter {\n\treturn &PluginParameter{}\n}\n\nfunc (p *PluginParameter) InitDefault() {\n}\n\nfunc (p *PluginParameter) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PluginParameter) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *PluginParameter) GetRequired() (v bool) {\n\treturn p.Required\n}\n\nfunc (p *PluginParameter) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *PluginParameter) GetSubParameters() (v []*PluginParameter) {\n\treturn p.SubParameters\n}\n\nfunc (p *PluginParameter) GetSubType() (v string) {\n\treturn p.SubType\n}\n\nvar PluginParameter_FromNodeID_DEFAULT string\n\nfunc (p *PluginParameter) GetFromNodeID() (v string) {\n\tif !p.IsSetFromNodeID() {\n\t\treturn PluginParameter_FromNodeID_DEFAULT\n\t}\n\treturn *p.FromNodeID\n}\n\nvar PluginParameter_FromOutput_DEFAULT []string\n\nfunc (p *PluginParameter) GetFromOutput() (v []string) {\n\tif !p.IsSetFromOutput() {\n\t\treturn PluginParameter_FromOutput_DEFAULT\n\t}\n\treturn p.FromOutput\n}\n\nvar PluginParameter_Value_DEFAULT string\n\nfunc (p *PluginParameter) GetValue() (v string) {\n\tif !p.IsSetValue() {\n\t\treturn PluginParameter_Value_DEFAULT\n\t}\n\treturn *p.Value\n}\n\nvar PluginParameter_Format_DEFAULT PluginParamTypeFormat\n\nfunc (p *PluginParameter) GetFormat() (v PluginParamTypeFormat) {\n\tif !p.IsSetFormat() {\n\t\treturn PluginParameter_Format_DEFAULT\n\t}\n\treturn *p.Format\n}\n\nvar fieldIDToName_PluginParameter = map[int16]string{\n\t1:  \"name\",\n\t2:  \"desc\",\n\t3:  \"required\",\n\t4:  \"type\",\n\t5:  \"sub_parameters\",\n\t6:  \"sub_type\",\n\t7:  \"from_node_id\",\n\t8:  \"from_output\",\n\t9:  \"value\",\n\t10: \"format\",\n}\n\nfunc (p *PluginParameter) IsSetFromNodeID() bool {\n\treturn p.FromNodeID != nil\n}\n\nfunc (p *PluginParameter) IsSetFromOutput() bool {\n\treturn p.FromOutput != nil\n}\n\nfunc (p *PluginParameter) IsSetValue() bool {\n\treturn p.Value != nil\n}\n\nfunc (p *PluginParameter) IsSetFormat() bool {\n\treturn p.Format != nil\n}\n\nfunc (p *PluginParameter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginParameter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginParameter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Required = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginParameter, 0, size)\n\tvalues := make([]PluginParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubParameters = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SubType = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FromNodeID = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FromOutput = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *PluginParameter) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *PluginParamTypeFormat\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := PluginParamTypeFormat(v)\n\t\t_field = &tmp\n\t}\n\tp.Format = _field\n\treturn nil\n}\n\nfunc (p *PluginParameter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginParameter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginParameter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"required\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Required); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sub_parameters\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubParameters)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SubParameters {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sub_type\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SubType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFromNodeID() {\n\t\tif err = oprot.WriteFieldBegin(\"from_node_id\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FromNodeID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFromOutput() {\n\t\tif err = oprot.WriteFieldBegin(\"from_output\", thrift.LIST, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.FromOutput)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FromOutput {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetValue() {\n\t\tif err = oprot.WriteFieldBegin(\"value\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PluginParameter) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFormat() {\n\t\tif err = oprot.WriteFieldBegin(\"format\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Format)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\n\nfunc (p *PluginParameter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginParameter(%+v)\", *p)\n\n}\n\ntype PluginAPIInfo struct {\n\tPluginID       string          `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tAPIID          string          `thrift:\"api_id,2\" form:\"api_id\" json:\"api_id\" query:\"api_id\"`\n\tName           string          `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc           string          `thrift:\"desc,4\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tPath           string          `thrift:\"path,5\" form:\"path\" json:\"path\" query:\"path\"`\n\tMethod         APIMethod       `thrift:\"method,6\" form:\"method\" json:\"method\" query:\"method\"`\n\tRequestParams  []*APIParameter `thrift:\"request_params,7\" form:\"request_params\" json:\"request_params\" query:\"request_params\"`\n\tResponseParams []*APIParameter `thrift:\"response_params,8\" form:\"response_params\" json:\"response_params\" query:\"response_params\"`\n\tCreateTime     string          `thrift:\"create_time,9\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\tDebugStatus    APIDebugStatus  `thrift:\"debug_status,10\" form:\"debug_status\" json:\"debug_status\" query:\"debug_status\"`\n\t// ignore\n\tDisabled bool `thrift:\"disabled,11\" form:\"disabled\" json:\"disabled\" query:\"disabled\"`\n\t// ignore\n\tStatisticData *PluginStatisticData `thrift:\"statistic_data,12\" form:\"statistic_data\" json:\"statistic_data\" query:\"statistic_data\"`\n\t// if tool has been published, online_status is Online\n\tOnlineStatus OnlineStatus `thrift:\"online_status,13\" form:\"online_status\" json:\"online_status\" query:\"online_status\"`\n\t// ignore\n\tAPIExtend *APIExtend `thrift:\"api_extend,14\" form:\"api_extend\" json:\"api_extend\" query:\"api_extend\"`\n\t// ignore\n\tCardBindingInfo *PresetCardBindingInfo `thrift:\"card_binding_info,15,optional\" form:\"card_binding_info\" json:\"card_binding_info,omitempty\" query:\"card_binding_info\"`\n\t// Debugging example\n\tDebugExample *DebugExample `thrift:\"debug_example,16,optional\" form:\"debug_example\" json:\"debug_example,omitempty\" query:\"debug_example\"`\n\t// Debug sample state\n\tDebugExampleStatus DebugExampleStatus `thrift:\"debug_example_status,17\" form:\"debug_example_status\" json:\"debug_example_status\" query:\"debug_example_status\"`\n\t// ignore\n\tFunctionName string `thrift:\"function_name,18\" form:\"function_name\" json:\"function_name\" query:\"function_name\"`\n}\n\nfunc NewPluginAPIInfo() *PluginAPIInfo {\n\treturn &PluginAPIInfo{}\n}\n\nfunc (p *PluginAPIInfo) InitDefault() {\n}\n\nfunc (p *PluginAPIInfo) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *PluginAPIInfo) GetAPIID() (v string) {\n\treturn p.APIID\n}\n\nfunc (p *PluginAPIInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PluginAPIInfo) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *PluginAPIInfo) GetPath() (v string) {\n\treturn p.Path\n}\n\nfunc (p *PluginAPIInfo) GetMethod() (v APIMethod) {\n\treturn p.Method\n}\n\nfunc (p *PluginAPIInfo) GetRequestParams() (v []*APIParameter) {\n\treturn p.RequestParams\n}\n\nfunc (p *PluginAPIInfo) GetResponseParams() (v []*APIParameter) {\n\treturn p.ResponseParams\n}\n\nfunc (p *PluginAPIInfo) GetCreateTime() (v string) {\n\treturn p.CreateTime\n}\n\nfunc (p *PluginAPIInfo) GetDebugStatus() (v APIDebugStatus) {\n\treturn p.DebugStatus\n}\n\nfunc (p *PluginAPIInfo) GetDisabled() (v bool) {\n\treturn p.Disabled\n}\n\nvar PluginAPIInfo_StatisticData_DEFAULT *PluginStatisticData\n\nfunc (p *PluginAPIInfo) GetStatisticData() (v *PluginStatisticData) {\n\tif !p.IsSetStatisticData() {\n\t\treturn PluginAPIInfo_StatisticData_DEFAULT\n\t}\n\treturn p.StatisticData\n}\n\nfunc (p *PluginAPIInfo) GetOnlineStatus() (v OnlineStatus) {\n\treturn p.OnlineStatus\n}\n\nvar PluginAPIInfo_APIExtend_DEFAULT *APIExtend\n\nfunc (p *PluginAPIInfo) GetAPIExtend() (v *APIExtend) {\n\tif !p.IsSetAPIExtend() {\n\t\treturn PluginAPIInfo_APIExtend_DEFAULT\n\t}\n\treturn p.APIExtend\n}\n\nvar PluginAPIInfo_CardBindingInfo_DEFAULT *PresetCardBindingInfo\n\nfunc (p *PluginAPIInfo) GetCardBindingInfo() (v *PresetCardBindingInfo) {\n\tif !p.IsSetCardBindingInfo() {\n\t\treturn PluginAPIInfo_CardBindingInfo_DEFAULT\n\t}\n\treturn p.CardBindingInfo\n}\n\nvar PluginAPIInfo_DebugExample_DEFAULT *DebugExample\n\nfunc (p *PluginAPIInfo) GetDebugExample() (v *DebugExample) {\n\tif !p.IsSetDebugExample() {\n\t\treturn PluginAPIInfo_DebugExample_DEFAULT\n\t}\n\treturn p.DebugExample\n}\n\nfunc (p *PluginAPIInfo) GetDebugExampleStatus() (v DebugExampleStatus) {\n\treturn p.DebugExampleStatus\n}\n\nfunc (p *PluginAPIInfo) GetFunctionName() (v string) {\n\treturn p.FunctionName\n}\n\nvar fieldIDToName_PluginAPIInfo = map[int16]string{\n\t1:  \"plugin_id\",\n\t2:  \"api_id\",\n\t3:  \"name\",\n\t4:  \"desc\",\n\t5:  \"path\",\n\t6:  \"method\",\n\t7:  \"request_params\",\n\t8:  \"response_params\",\n\t9:  \"create_time\",\n\t10: \"debug_status\",\n\t11: \"disabled\",\n\t12: \"statistic_data\",\n\t13: \"online_status\",\n\t14: \"api_extend\",\n\t15: \"card_binding_info\",\n\t16: \"debug_example\",\n\t17: \"debug_example_status\",\n\t18: \"function_name\",\n}\n\nfunc (p *PluginAPIInfo) IsSetStatisticData() bool {\n\treturn p.StatisticData != nil\n}\n\nfunc (p *PluginAPIInfo) IsSetAPIExtend() bool {\n\treturn p.APIExtend != nil\n}\n\nfunc (p *PluginAPIInfo) IsSetCardBindingInfo() bool {\n\treturn p.CardBindingInfo != nil\n}\n\nfunc (p *PluginAPIInfo) IsSetDebugExample() bool {\n\treturn p.DebugExample != nil\n}\n\nfunc (p *PluginAPIInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginAPIInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginAPIInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Path = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field APIMethod\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = APIMethod(v)\n\t}\n\tp.Method = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*APIParameter, 0, size)\n\tvalues := make([]APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RequestParams = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*APIParameter, 0, size)\n\tvalues := make([]APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseParams = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field APIDebugStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = APIDebugStatus(v)\n\t}\n\tp.DebugStatus = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Disabled = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField12(iprot thrift.TProtocol) error {\n\t_field := NewPluginStatisticData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.StatisticData = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field OnlineStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = OnlineStatus(v)\n\t}\n\tp.OnlineStatus = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField14(iprot thrift.TProtocol) error {\n\t_field := NewAPIExtend()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.APIExtend = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField15(iprot thrift.TProtocol) error {\n\t_field := NewPresetCardBindingInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CardBindingInfo = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField16(iprot thrift.TProtocol) error {\n\t_field := NewDebugExample()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DebugExample = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field DebugExampleStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = DebugExampleStatus(v)\n\t}\n\tp.DebugExampleStatus = _field\n\treturn nil\n}\nfunc (p *PluginAPIInfo) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FunctionName = _field\n\treturn nil\n}\n\nfunc (p *PluginAPIInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginAPIInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginAPIInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"path\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Path); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"method\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Method)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request_params\", thrift.LIST, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.RequestParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.RequestParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_params\", thrift.LIST, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResponseParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResponseParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"debug_status\", thrift.I32, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.DebugStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"disabled\", thrift.BOOL, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Disabled); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"statistic_data\", thrift.STRUCT, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.StatisticData.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"online_status\", thrift.I32, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.OnlineStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_extend\", thrift.STRUCT, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.APIExtend.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCardBindingInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"card_binding_info\", thrift.STRUCT, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.CardBindingInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDebugExample() {\n\t\tif err = oprot.WriteFieldBegin(\"debug_example\", thrift.STRUCT, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.DebugExample.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"debug_example_status\", thrift.I32, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.DebugExampleStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *PluginAPIInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"function_name\", thrift.STRING, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FunctionName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\n\nfunc (p *PluginAPIInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginAPIInfo(%+v)\", *p)\n\n}\n\ntype APIParameter struct {\n\t// For the front end, no practical significance\n\tID string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\t// parameter name\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\t// parameter desc\n\tDesc string `thrift:\"desc,3\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\t// parameter type\n\tType ParameterType `thrift:\"type,4\" form:\"type\" json:\"type\" query:\"type\"`\n\t// negligible\n\tSubType *ParameterType `thrift:\"sub_type,5,optional\" form:\"sub_type\" json:\"sub_type,omitempty\" query:\"sub_type\"`\n\t// parameter location\n\tLocation ParameterLocation `thrift:\"location,6\" form:\"location\" json:\"location\" query:\"location\"`\n\t// Is it required?\n\tIsRequired bool `thrift:\"is_required,7\" form:\"is_required\" json:\"is_required\" query:\"is_required\"`\n\t// sub-parameter\n\tSubParameters []*APIParameter `thrift:\"sub_parameters,8\" form:\"sub_parameters\" json:\"sub_parameters\" query:\"sub_parameters\"`\n\t// global default\n\tGlobalDefault *string `thrift:\"global_default,9,optional\" form:\"global_default\" json:\"global_default,omitempty\" query:\"global_default\"`\n\t// Is it enabled globally?\n\tGlobalDisable bool `thrift:\"global_disable,10\" form:\"global_disable\" json:\"global_disable\" query:\"global_disable\"`\n\t// Default value set in the smart body\n\tLocalDefault *string `thrift:\"local_default,11,optional\" form:\"local_default\" json:\"local_default,omitempty\" query:\"local_default\"`\n\t// Is it enabled in the smart body?\n\tLocalDisable bool `thrift:\"local_disable,12\" form:\"local_disable\" json:\"local_disable\" query:\"local_disable\"`\n\t// negligible\n\tDefaultParamSource *DefaultParamSource `thrift:\"default_param_source,13,optional\" form:\"default_param_source\" json:\"default_param_source,omitempty\" query:\"default_param_source\"`\n\t// Reference variable key\n\tVariableRef *string `thrift:\"variable_ref,14,optional\" form:\"variable_ref\" json:\"variable_ref,omitempty\" query:\"variable_ref\"`\n\t// Multimodal auxiliary parameter types\n\tAssistType *AssistParameterType `thrift:\"assist_type,15,optional\" form:\"assist_type\" json:\"assist_type,omitempty\" query:\"assist_type\"`\n}\n\nfunc NewAPIParameter() *APIParameter {\n\treturn &APIParameter{}\n}\n\nfunc (p *APIParameter) InitDefault() {\n}\n\nfunc (p *APIParameter) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *APIParameter) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *APIParameter) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *APIParameter) GetType() (v ParameterType) {\n\treturn p.Type\n}\n\nvar APIParameter_SubType_DEFAULT ParameterType\n\nfunc (p *APIParameter) GetSubType() (v ParameterType) {\n\tif !p.IsSetSubType() {\n\t\treturn APIParameter_SubType_DEFAULT\n\t}\n\treturn *p.SubType\n}\n\nfunc (p *APIParameter) GetLocation() (v ParameterLocation) {\n\treturn p.Location\n}\n\nfunc (p *APIParameter) GetIsRequired() (v bool) {\n\treturn p.IsRequired\n}\n\nfunc (p *APIParameter) GetSubParameters() (v []*APIParameter) {\n\treturn p.SubParameters\n}\n\nvar APIParameter_GlobalDefault_DEFAULT string\n\nfunc (p *APIParameter) GetGlobalDefault() (v string) {\n\tif !p.IsSetGlobalDefault() {\n\t\treturn APIParameter_GlobalDefault_DEFAULT\n\t}\n\treturn *p.GlobalDefault\n}\n\nfunc (p *APIParameter) GetGlobalDisable() (v bool) {\n\treturn p.GlobalDisable\n}\n\nvar APIParameter_LocalDefault_DEFAULT string\n\nfunc (p *APIParameter) GetLocalDefault() (v string) {\n\tif !p.IsSetLocalDefault() {\n\t\treturn APIParameter_LocalDefault_DEFAULT\n\t}\n\treturn *p.LocalDefault\n}\n\nfunc (p *APIParameter) GetLocalDisable() (v bool) {\n\treturn p.LocalDisable\n}\n\nvar APIParameter_DefaultParamSource_DEFAULT DefaultParamSource\n\nfunc (p *APIParameter) GetDefaultParamSource() (v DefaultParamSource) {\n\tif !p.IsSetDefaultParamSource() {\n\t\treturn APIParameter_DefaultParamSource_DEFAULT\n\t}\n\treturn *p.DefaultParamSource\n}\n\nvar APIParameter_VariableRef_DEFAULT string\n\nfunc (p *APIParameter) GetVariableRef() (v string) {\n\tif !p.IsSetVariableRef() {\n\t\treturn APIParameter_VariableRef_DEFAULT\n\t}\n\treturn *p.VariableRef\n}\n\nvar APIParameter_AssistType_DEFAULT AssistParameterType\n\nfunc (p *APIParameter) GetAssistType() (v AssistParameterType) {\n\tif !p.IsSetAssistType() {\n\t\treturn APIParameter_AssistType_DEFAULT\n\t}\n\treturn *p.AssistType\n}\n\nvar fieldIDToName_APIParameter = map[int16]string{\n\t1:  \"id\",\n\t2:  \"name\",\n\t3:  \"desc\",\n\t4:  \"type\",\n\t5:  \"sub_type\",\n\t6:  \"location\",\n\t7:  \"is_required\",\n\t8:  \"sub_parameters\",\n\t9:  \"global_default\",\n\t10: \"global_disable\",\n\t11: \"local_default\",\n\t12: \"local_disable\",\n\t13: \"default_param_source\",\n\t14: \"variable_ref\",\n\t15: \"assist_type\",\n}\n\nfunc (p *APIParameter) IsSetSubType() bool {\n\treturn p.SubType != nil\n}\n\nfunc (p *APIParameter) IsSetGlobalDefault() bool {\n\treturn p.GlobalDefault != nil\n}\n\nfunc (p *APIParameter) IsSetLocalDefault() bool {\n\treturn p.LocalDefault != nil\n}\n\nfunc (p *APIParameter) IsSetDefaultParamSource() bool {\n\treturn p.DefaultParamSource != nil\n}\n\nfunc (p *APIParameter) IsSetVariableRef() bool {\n\treturn p.VariableRef != nil\n}\n\nfunc (p *APIParameter) IsSetAssistType() bool {\n\treturn p.AssistType != nil\n}\n\nfunc (p *APIParameter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_APIParameter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *APIParameter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field ParameterType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ParameterType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *ParameterType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ParameterType(v)\n\t\t_field = &tmp\n\t}\n\tp.SubType = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field ParameterLocation\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ParameterLocation(v)\n\t}\n\tp.Location = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsRequired = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*APIParameter, 0, size)\n\tvalues := make([]APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubParameters = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.GlobalDefault = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GlobalDisable = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LocalDefault = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LocalDisable = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *DefaultParamSource\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DefaultParamSource(v)\n\t\t_field = &tmp\n\t}\n\tp.DefaultParamSource = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.VariableRef = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *AssistParameterType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := AssistParameterType(v)\n\t\t_field = &tmp\n\t}\n\tp.AssistType = _field\n\treturn nil\n}\n\nfunc (p *APIParameter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"APIParameter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *APIParameter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubType() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_type\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SubType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"location\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Location)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_required\", thrift.BOOL, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsRequired); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sub_parameters\", thrift.LIST, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubParameters)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SubParameters {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetGlobalDefault() {\n\t\tif err = oprot.WriteFieldBegin(\"global_default\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.GlobalDefault); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"global_disable\", thrift.BOOL, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.GlobalDisable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLocalDefault() {\n\t\tif err = oprot.WriteFieldBegin(\"local_default\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LocalDefault); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"local_disable\", thrift.BOOL, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.LocalDisable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDefaultParamSource() {\n\t\tif err = oprot.WriteFieldBegin(\"default_param_source\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.DefaultParamSource)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVariableRef() {\n\t\tif err = oprot.WriteFieldBegin(\"variable_ref\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.VariableRef); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAssistType() {\n\t\tif err = oprot.WriteFieldBegin(\"assist_type\", thrift.I32, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AssistType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\n\nfunc (p *APIParameter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"APIParameter(%+v)\", *p)\n\n}\n\ntype PluginStatisticData struct {\n\t// If it is empty, it will not be displayed.\n\tBotQuote *int32 `thrift:\"bot_quote,1,optional\" form:\"bot_quote\" json:\"bot_quote,omitempty\" query:\"bot_quote\"`\n}\n\nfunc NewPluginStatisticData() *PluginStatisticData {\n\treturn &PluginStatisticData{}\n}\n\nfunc (p *PluginStatisticData) InitDefault() {\n}\n\nvar PluginStatisticData_BotQuote_DEFAULT int32\n\nfunc (p *PluginStatisticData) GetBotQuote() (v int32) {\n\tif !p.IsSetBotQuote() {\n\t\treturn PluginStatisticData_BotQuote_DEFAULT\n\t}\n\treturn *p.BotQuote\n}\n\nvar fieldIDToName_PluginStatisticData = map[int16]string{\n\t1: \"bot_quote\",\n}\n\nfunc (p *PluginStatisticData) IsSetBotQuote() bool {\n\treturn p.BotQuote != nil\n}\n\nfunc (p *PluginStatisticData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginStatisticData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginStatisticData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotQuote = _field\n\treturn nil\n}\n\nfunc (p *PluginStatisticData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginStatisticData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginStatisticData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotQuote() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_quote\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.BotQuote); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginStatisticData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginStatisticData(%+v)\", *p)\n\n}\n\ntype APIExtend struct {\n\t// Tool dimension authorization type\n\tAuthMode PluginToolAuthType `thrift:\"auth_mode,1\" form:\"auth_mode\" json:\"auth_mode\" query:\"auth_mode\"`\n}\n\nfunc NewAPIExtend() *APIExtend {\n\treturn &APIExtend{}\n}\n\nfunc (p *APIExtend) InitDefault() {\n}\n\nfunc (p *APIExtend) GetAuthMode() (v PluginToolAuthType) {\n\treturn p.AuthMode\n}\n\nvar fieldIDToName_APIExtend = map[int16]string{\n\t1: \"auth_mode\",\n}\n\nfunc (p *APIExtend) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_APIExtend[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *APIExtend) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field PluginToolAuthType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = PluginToolAuthType(v)\n\t}\n\tp.AuthMode = _field\n\treturn nil\n}\n\nfunc (p *APIExtend) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"APIExtend\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *APIExtend) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"auth_mode\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.AuthMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *APIExtend) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"APIExtend(%+v)\", *p)\n\n}\n\n// Plugin preset card binding information\ntype PresetCardBindingInfo struct {\n\tCardID         string           `thrift:\"card_id,1\" form:\"card_id\" json:\"card_id\" query:\"card_id\"`\n\tCardVersionNum string           `thrift:\"card_version_num,2\" form:\"card_version_num\" json:\"card_version_num\" query:\"card_version_num\"`\n\tStatus         PluginCardStatus `thrift:\"status,3\" form:\"status\" json:\"status\" query:\"status\"`\n\t// thumbnail\n\tThumbnail string `thrift:\"thumbnail,4\" form:\"thumbnail\" json:\"thumbnail\" query:\"thumbnail\"`\n}\n\nfunc NewPresetCardBindingInfo() *PresetCardBindingInfo {\n\treturn &PresetCardBindingInfo{}\n}\n\nfunc (p *PresetCardBindingInfo) InitDefault() {\n}\n\nfunc (p *PresetCardBindingInfo) GetCardID() (v string) {\n\treturn p.CardID\n}\n\nfunc (p *PresetCardBindingInfo) GetCardVersionNum() (v string) {\n\treturn p.CardVersionNum\n}\n\nfunc (p *PresetCardBindingInfo) GetStatus() (v PluginCardStatus) {\n\treturn p.Status\n}\n\nfunc (p *PresetCardBindingInfo) GetThumbnail() (v string) {\n\treturn p.Thumbnail\n}\n\nvar fieldIDToName_PresetCardBindingInfo = map[int16]string{\n\t1: \"card_id\",\n\t2: \"card_version_num\",\n\t3: \"status\",\n\t4: \"thumbnail\",\n}\n\nfunc (p *PresetCardBindingInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PresetCardBindingInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PresetCardBindingInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CardID = _field\n\treturn nil\n}\nfunc (p *PresetCardBindingInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CardVersionNum = _field\n\treturn nil\n}\nfunc (p *PresetCardBindingInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field PluginCardStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = PluginCardStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *PresetCardBindingInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Thumbnail = _field\n\treturn nil\n}\n\nfunc (p *PresetCardBindingInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PresetCardBindingInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PresetCardBindingInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"card_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CardID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PresetCardBindingInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"card_version_num\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CardVersionNum); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PresetCardBindingInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PresetCardBindingInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"thumbnail\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Thumbnail); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *PresetCardBindingInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PresetCardBindingInfo(%+v)\", *p)\n\n}\n\ntype DebugExample struct {\n\t// request example in json\n\tReqExample string `thrift:\"req_example,1\" form:\"req_example\" json:\"req_example\" query:\"req_example\"`\n\t// response example in json\n\tRespExample string `thrift:\"resp_example,2\" form:\"resp_example\" json:\"resp_example\" query:\"resp_example\"`\n}\n\nfunc NewDebugExample() *DebugExample {\n\treturn &DebugExample{}\n}\n\nfunc (p *DebugExample) InitDefault() {\n}\n\nfunc (p *DebugExample) GetReqExample() (v string) {\n\treturn p.ReqExample\n}\n\nfunc (p *DebugExample) GetRespExample() (v string) {\n\treturn p.RespExample\n}\n\nvar fieldIDToName_DebugExample = map[int16]string{\n\t1: \"req_example\",\n\t2: \"resp_example\",\n}\n\nfunc (p *DebugExample) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DebugExample[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DebugExample) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReqExample = _field\n\treturn nil\n}\nfunc (p *DebugExample) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RespExample = _field\n\treturn nil\n}\n\nfunc (p *DebugExample) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DebugExample\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DebugExample) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req_example\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ReqExample); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DebugExample) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"resp_example\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.RespExample); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *DebugExample) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DebugExample(%+v)\", *p)\n\n}\n\ntype UpdatePluginData struct {\n\tRes         bool  `thrift:\"res,1\" form:\"res\" json:\"res\" query:\"res\"`\n\tEditVersion int32 `thrift:\"edit_version,2\" form:\"edit_version\" json:\"edit_version\" query:\"edit_version\"`\n}\n\nfunc NewUpdatePluginData() *UpdatePluginData {\n\treturn &UpdatePluginData{}\n}\n\nfunc (p *UpdatePluginData) InitDefault() {\n}\n\nfunc (p *UpdatePluginData) GetRes() (v bool) {\n\treturn p.Res\n}\n\nfunc (p *UpdatePluginData) GetEditVersion() (v int32) {\n\treturn p.EditVersion\n}\n\nvar fieldIDToName_UpdatePluginData = map[int16]string{\n\t1: \"res\",\n\t2: \"edit_version\",\n}\n\nfunc (p *UpdatePluginData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdatePluginData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdatePluginData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Res = _field\n\treturn nil\n}\nfunc (p *UpdatePluginData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\n\nfunc (p *UpdatePluginData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePluginData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdatePluginData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"res\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Res); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdatePluginData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.EditVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UpdatePluginData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdatePluginData(%+v)\", *p)\n\n}\n\ntype GetUserAuthorityData struct {\n\tCanEdit          bool `thrift:\"can_edit,1\" form:\"can_edit\" json:\"can_edit\" query:\"can_edit\"`\n\tCanRead          bool `thrift:\"can_read,2\" form:\"can_read\" json:\"can_read\" query:\"can_read\"`\n\tCanDelete        bool `thrift:\"can_delete,3\" form:\"can_delete\" json:\"can_delete\" query:\"can_delete\"`\n\tCanDebug         bool `thrift:\"can_debug,4\" form:\"can_debug\" json:\"can_debug\" query:\"can_debug\"`\n\tCanPublish       bool `thrift:\"can_publish,5\" form:\"can_publish\" json:\"can_publish\" query:\"can_publish\"`\n\tCanReadChangelog bool `thrift:\"can_read_changelog,6\" form:\"can_read_changelog\" json:\"can_read_changelog\" query:\"can_read_changelog\"`\n}\n\nfunc NewGetUserAuthorityData() *GetUserAuthorityData {\n\treturn &GetUserAuthorityData{}\n}\n\nfunc (p *GetUserAuthorityData) InitDefault() {\n}\n\nfunc (p *GetUserAuthorityData) GetCanEdit() (v bool) {\n\treturn p.CanEdit\n}\n\nfunc (p *GetUserAuthorityData) GetCanRead() (v bool) {\n\treturn p.CanRead\n}\n\nfunc (p *GetUserAuthorityData) GetCanDelete() (v bool) {\n\treturn p.CanDelete\n}\n\nfunc (p *GetUserAuthorityData) GetCanDebug() (v bool) {\n\treturn p.CanDebug\n}\n\nfunc (p *GetUserAuthorityData) GetCanPublish() (v bool) {\n\treturn p.CanPublish\n}\n\nfunc (p *GetUserAuthorityData) GetCanReadChangelog() (v bool) {\n\treturn p.CanReadChangelog\n}\n\nvar fieldIDToName_GetUserAuthorityData = map[int16]string{\n\t1: \"can_edit\",\n\t2: \"can_read\",\n\t3: \"can_delete\",\n\t4: \"can_debug\",\n\t5: \"can_publish\",\n\t6: \"can_read_changelog\",\n}\n\nfunc (p *GetUserAuthorityData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUserAuthorityData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetUserAuthorityData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanEdit = _field\n\treturn nil\n}\nfunc (p *GetUserAuthorityData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanRead = _field\n\treturn nil\n}\nfunc (p *GetUserAuthorityData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanDelete = _field\n\treturn nil\n}\nfunc (p *GetUserAuthorityData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanDebug = _field\n\treturn nil\n}\nfunc (p *GetUserAuthorityData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanPublish = _field\n\treturn nil\n}\nfunc (p *GetUserAuthorityData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanReadChangelog = _field\n\treturn nil\n}\n\nfunc (p *GetUserAuthorityData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserAuthorityData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUserAuthorityData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_edit\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanEdit); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUserAuthorityData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_read\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanRead); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetUserAuthorityData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_delete\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanDelete); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetUserAuthorityData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_debug\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanDebug); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetUserAuthorityData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_publish\", thrift.BOOL, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanPublish); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetUserAuthorityData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_read_changelog\", thrift.BOOL, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanReadChangelog); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *GetUserAuthorityData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUserAuthorityData(%+v)\", *p)\n\n}\n\ntype CheckAndLockPluginEditData struct {\n\t// Is it occupied?\n\tOccupied bool `thrift:\"Occupied,1\" form:\"Occupied\" json:\"Occupied\" query:\"Occupied\"`\n\t// If it is already occupied, return the user ID.\n\tUser *Creator `thrift:\"user,2\" form:\"user\" json:\"user\" query:\"user\"`\n\t// Was it successful?\n\tSeized bool `thrift:\"Seized,3\" form:\"Seized\" json:\"Seized\" query:\"Seized\"`\n}\n\nfunc NewCheckAndLockPluginEditData() *CheckAndLockPluginEditData {\n\treturn &CheckAndLockPluginEditData{}\n}\n\nfunc (p *CheckAndLockPluginEditData) InitDefault() {\n}\n\nfunc (p *CheckAndLockPluginEditData) GetOccupied() (v bool) {\n\treturn p.Occupied\n}\n\nvar CheckAndLockPluginEditData_User_DEFAULT *Creator\n\nfunc (p *CheckAndLockPluginEditData) GetUser() (v *Creator) {\n\tif !p.IsSetUser() {\n\t\treturn CheckAndLockPluginEditData_User_DEFAULT\n\t}\n\treturn p.User\n}\n\nfunc (p *CheckAndLockPluginEditData) GetSeized() (v bool) {\n\treturn p.Seized\n}\n\nvar fieldIDToName_CheckAndLockPluginEditData = map[int16]string{\n\t1: \"Occupied\",\n\t2: \"user\",\n\t3: \"Seized\",\n}\n\nfunc (p *CheckAndLockPluginEditData) IsSetUser() bool {\n\treturn p.User != nil\n}\n\nfunc (p *CheckAndLockPluginEditData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CheckAndLockPluginEditData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CheckAndLockPluginEditData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Occupied = _field\n\treturn nil\n}\nfunc (p *CheckAndLockPluginEditData) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewCreator()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.User = _field\n\treturn nil\n}\nfunc (p *CheckAndLockPluginEditData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Seized = _field\n\treturn nil\n}\n\nfunc (p *CheckAndLockPluginEditData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckAndLockPluginEditData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CheckAndLockPluginEditData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Occupied\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Occupied); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CheckAndLockPluginEditData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.User.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CheckAndLockPluginEditData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Seized\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Seized); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *CheckAndLockPluginEditData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CheckAndLockPluginEditData(%+v)\", *p)\n\n}\n\ntype PluginPublishInfo struct {\n\t// publisher\n\tPublisherID int64 `thrift:\"publisher_id,1\" form:\"publisher_id\" json:\"publisher_id,string\" query:\"publisher_id\"`\n\t// Version, millisecond timestamp\n\tVersionTs int64 `thrift:\"version_ts,2\" form:\"version_ts\" json:\"version_ts\" query:\"version_ts\"`\n\t// version name\n\tVersionName string `thrift:\"version_name,3\" form:\"version_name\" json:\"version_name\" query:\"version_name\"`\n\t// version description\n\tVersionDesc string `thrift:\"version_desc,4\" form:\"version_desc\" json:\"version_desc\" query:\"version_desc\"`\n}\n\nfunc NewPluginPublishInfo() *PluginPublishInfo {\n\treturn &PluginPublishInfo{}\n}\n\nfunc (p *PluginPublishInfo) InitDefault() {\n}\n\nfunc (p *PluginPublishInfo) GetPublisherID() (v int64) {\n\treturn p.PublisherID\n}\n\nfunc (p *PluginPublishInfo) GetVersionTs() (v int64) {\n\treturn p.VersionTs\n}\n\nfunc (p *PluginPublishInfo) GetVersionName() (v string) {\n\treturn p.VersionName\n}\n\nfunc (p *PluginPublishInfo) GetVersionDesc() (v string) {\n\treturn p.VersionDesc\n}\n\nvar fieldIDToName_PluginPublishInfo = map[int16]string{\n\t1: \"publisher_id\",\n\t2: \"version_ts\",\n\t3: \"version_name\",\n\t4: \"version_desc\",\n}\n\nfunc (p *PluginPublishInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginPublishInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginPublishInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PublisherID = _field\n\treturn nil\n}\nfunc (p *PluginPublishInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionTs = _field\n\treturn nil\n}\nfunc (p *PluginPublishInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionName = _field\n\treturn nil\n}\nfunc (p *PluginPublishInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionDesc = _field\n\treturn nil\n}\n\nfunc (p *PluginPublishInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginPublishInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginPublishInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publisher_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PublisherID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginPublishInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_ts\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.VersionTs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginPublishInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginPublishInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_desc\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *PluginPublishInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginPublishInfo(%+v)\", *p)\n\n}\n\ntype RegisterPluginData struct {\n\tPluginID int64 `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id,string\" query:\"plugin_id\"`\n\t// the same as the request 'openapi'\n\tOpenapi string `thrift:\"openapi,2\" form:\"openapi\" json:\"openapi\" query:\"openapi\"`\n}\n\nfunc NewRegisterPluginData() *RegisterPluginData {\n\treturn &RegisterPluginData{}\n}\n\nfunc (p *RegisterPluginData) InitDefault() {\n}\n\nfunc (p *RegisterPluginData) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *RegisterPluginData) GetOpenapi() (v string) {\n\treturn p.Openapi\n}\n\nvar fieldIDToName_RegisterPluginData = map[int16]string{\n\t1: \"plugin_id\",\n\t2: \"openapi\",\n}\n\nfunc (p *RegisterPluginData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RegisterPluginData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *RegisterPluginData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *RegisterPluginData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Openapi = _field\n\treturn nil\n}\n\nfunc (p *RegisterPluginData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RegisterPluginData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RegisterPluginData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RegisterPluginData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"openapi\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Openapi); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *RegisterPluginData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RegisterPluginData(%+v)\", *p)\n\n}\n\ntype DuplicateAPIInfo struct {\n\tMethod string `thrift:\"method,1\" form:\"method\" json:\"method\" query:\"method\"`\n\tPath   string `thrift:\"path,2\" form:\"path\" json:\"path\" query:\"path\"`\n\tCount  int64  `thrift:\"count,3\" form:\"count\" json:\"count\" query:\"count\"`\n}\n\nfunc NewDuplicateAPIInfo() *DuplicateAPIInfo {\n\treturn &DuplicateAPIInfo{}\n}\n\nfunc (p *DuplicateAPIInfo) InitDefault() {\n}\n\nfunc (p *DuplicateAPIInfo) GetMethod() (v string) {\n\treturn p.Method\n}\n\nfunc (p *DuplicateAPIInfo) GetPath() (v string) {\n\treturn p.Path\n}\n\nfunc (p *DuplicateAPIInfo) GetCount() (v int64) {\n\treturn p.Count\n}\n\nvar fieldIDToName_DuplicateAPIInfo = map[int16]string{\n\t1: \"method\",\n\t2: \"path\",\n\t3: \"count\",\n}\n\nfunc (p *DuplicateAPIInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DuplicateAPIInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DuplicateAPIInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Method = _field\n\treturn nil\n}\nfunc (p *DuplicateAPIInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Path = _field\n\treturn nil\n}\nfunc (p *DuplicateAPIInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Count = _field\n\treturn nil\n}\n\nfunc (p *DuplicateAPIInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DuplicateAPIInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DuplicateAPIInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"method\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Method); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DuplicateAPIInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"path\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Path); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DuplicateAPIInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"count\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Count); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *DuplicateAPIInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DuplicateAPIInfo(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/plugin_develop/plugin_develop.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage plugin_develop\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n)\n\ntype GetPlaygroundPluginListRequest struct {\n\t// page number\n\tPage *int32 `thrift:\"page,1,optional\" form:\"page\" json:\"page,omitempty\"`\n\t// page size\n\tSize *int32 `thrift:\"size,2,optional\" form:\"size\" json:\"size,omitempty\"`\n\t// ignore\n\tName *string `thrift:\"name,4,optional\" form:\"name\" json:\"name,omitempty\"`\n\t// Space ID\n\tSpaceID *int64 `thrift:\"space_id,5,optional\" form:\"space_id\" json:\"space_id,string,omitempty\"`\n\t// If present, query according to plug-in id, no paging logic\n\tPluginIds []string `thrift:\"plugin_ids,6\" form:\"plugin_ids\" json:\"plugin_ids\"`\n\t// When the length is 1 and it is a workflow, return the list of published workflows, and return the list of published plugins by default\n\tPluginTypes []int32 `thrift:\"plugin_types,7\" form:\"plugin_types\" json:\"plugin_types\"`\n\t// ignore\n\tChannelID *int32 `thrift:\"channel_id,8,optional\" form:\"channel_id\" json:\"channel_id,omitempty\"`\n\t// ignore\n\tSelfCreated *bool `thrift:\"self_created,9,optional\" form:\"self_created\" json:\"self_created,omitempty\"`\n\t// sort\n\tOrderBy *int32 `thrift:\"order_by,10,optional\" form:\"order_by\" json:\"order_by,omitempty\"`\n\t// ignore\n\tIsGetOffline *bool `thrift:\"is_get_offline,11,optional\" form:\"is_get_offline\" json:\"is_get_offline,omitempty\"`\n\t// ignore\n\tReferer string     `thrift:\"referer,99\" header:\"Referer\" json:\"referer\"`\n\tBase    *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetPlaygroundPluginListRequest() *GetPlaygroundPluginListRequest {\n\treturn &GetPlaygroundPluginListRequest{}\n}\n\nfunc (p *GetPlaygroundPluginListRequest) InitDefault() {\n}\n\nvar GetPlaygroundPluginListRequest_Page_DEFAULT int32\n\nfunc (p *GetPlaygroundPluginListRequest) GetPage() (v int32) {\n\tif !p.IsSetPage() {\n\t\treturn GetPlaygroundPluginListRequest_Page_DEFAULT\n\t}\n\treturn *p.Page\n}\n\nvar GetPlaygroundPluginListRequest_Size_DEFAULT int32\n\nfunc (p *GetPlaygroundPluginListRequest) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn GetPlaygroundPluginListRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar GetPlaygroundPluginListRequest_Name_DEFAULT string\n\nfunc (p *GetPlaygroundPluginListRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn GetPlaygroundPluginListRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar GetPlaygroundPluginListRequest_SpaceID_DEFAULT int64\n\nfunc (p *GetPlaygroundPluginListRequest) GetSpaceID() (v int64) {\n\tif !p.IsSetSpaceID() {\n\t\treturn GetPlaygroundPluginListRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nfunc (p *GetPlaygroundPluginListRequest) GetPluginIds() (v []string) {\n\treturn p.PluginIds\n}\n\nfunc (p *GetPlaygroundPluginListRequest) GetPluginTypes() (v []int32) {\n\treturn p.PluginTypes\n}\n\nvar GetPlaygroundPluginListRequest_ChannelID_DEFAULT int32\n\nfunc (p *GetPlaygroundPluginListRequest) GetChannelID() (v int32) {\n\tif !p.IsSetChannelID() {\n\t\treturn GetPlaygroundPluginListRequest_ChannelID_DEFAULT\n\t}\n\treturn *p.ChannelID\n}\n\nvar GetPlaygroundPluginListRequest_SelfCreated_DEFAULT bool\n\nfunc (p *GetPlaygroundPluginListRequest) GetSelfCreated() (v bool) {\n\tif !p.IsSetSelfCreated() {\n\t\treturn GetPlaygroundPluginListRequest_SelfCreated_DEFAULT\n\t}\n\treturn *p.SelfCreated\n}\n\nvar GetPlaygroundPluginListRequest_OrderBy_DEFAULT int32\n\nfunc (p *GetPlaygroundPluginListRequest) GetOrderBy() (v int32) {\n\tif !p.IsSetOrderBy() {\n\t\treturn GetPlaygroundPluginListRequest_OrderBy_DEFAULT\n\t}\n\treturn *p.OrderBy\n}\n\nvar GetPlaygroundPluginListRequest_IsGetOffline_DEFAULT bool\n\nfunc (p *GetPlaygroundPluginListRequest) GetIsGetOffline() (v bool) {\n\tif !p.IsSetIsGetOffline() {\n\t\treturn GetPlaygroundPluginListRequest_IsGetOffline_DEFAULT\n\t}\n\treturn *p.IsGetOffline\n}\n\nfunc (p *GetPlaygroundPluginListRequest) GetReferer() (v string) {\n\treturn p.Referer\n}\n\nvar GetPlaygroundPluginListRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetPlaygroundPluginListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetPlaygroundPluginListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetPlaygroundPluginListRequest = map[int16]string{\n\t1:   \"page\",\n\t2:   \"size\",\n\t4:   \"name\",\n\t5:   \"space_id\",\n\t6:   \"plugin_ids\",\n\t7:   \"plugin_types\",\n\t8:   \"channel_id\",\n\t9:   \"self_created\",\n\t10:  \"order_by\",\n\t11:  \"is_get_offline\",\n\t99:  \"referer\",\n\t255: \"Base\",\n}\n\nfunc (p *GetPlaygroundPluginListRequest) IsSetPage() bool {\n\treturn p.Page != nil\n}\n\nfunc (p *GetPlaygroundPluginListRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *GetPlaygroundPluginListRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *GetPlaygroundPluginListRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *GetPlaygroundPluginListRequest) IsSetChannelID() bool {\n\treturn p.ChannelID != nil\n}\n\nfunc (p *GetPlaygroundPluginListRequest) IsSetSelfCreated() bool {\n\treturn p.SelfCreated != nil\n}\n\nfunc (p *GetPlaygroundPluginListRequest) IsSetOrderBy() bool {\n\treturn p.OrderBy != nil\n}\n\nfunc (p *GetPlaygroundPluginListRequest) IsSetIsGetOffline() bool {\n\treturn p.IsGetOffline != nil\n}\n\nfunc (p *GetPlaygroundPluginListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetPlaygroundPluginListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 99:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField99(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPlaygroundPluginListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetPlaygroundPluginListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListRequest) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginIds = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListRequest) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int32, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int32\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginTypes = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ChannelID = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SelfCreated = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OrderBy = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsGetOffline = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListRequest) ReadField99(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Referer = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetPlaygroundPluginListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPlaygroundPluginListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField99(oprot); err != nil {\n\t\t\tfieldId = 99\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPlaygroundPluginListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPage() {\n\t\tif err = oprot.WriteFieldBegin(\"page\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Page); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_ids\", thrift.LIST, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.PluginIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginIds {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_types\", thrift.LIST, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I32, len(p.PluginTypes)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginTypes {\n\t\tif err := oprot.WriteI32(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChannelID() {\n\t\tif err = oprot.WriteFieldBegin(\"channel_id\", thrift.I32, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.ChannelID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSelfCreated() {\n\t\tif err = oprot.WriteFieldBegin(\"self_created\", thrift.BOOL, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SelfCreated); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderBy() {\n\t\tif err = oprot.WriteFieldBegin(\"order_by\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.OrderBy); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsGetOffline() {\n\t\tif err = oprot.WriteFieldBegin(\"is_get_offline\", thrift.BOOL, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsGetOffline); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListRequest) writeField99(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"referer\", thrift.STRING, 99); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Referer); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 99 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 99 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPlaygroundPluginListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPlaygroundPluginListRequest(%+v)\", *p)\n\n}\n\ntype GetPlaygroundPluginListResponse struct {\n\tCode     int32                               `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                              `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tData     *common.GetPlaygroundPluginListData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n\tBaseResp *base.BaseResp                      `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetPlaygroundPluginListResponse() *GetPlaygroundPluginListResponse {\n\treturn &GetPlaygroundPluginListResponse{}\n}\n\nfunc (p *GetPlaygroundPluginListResponse) InitDefault() {\n}\n\nfunc (p *GetPlaygroundPluginListResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetPlaygroundPluginListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetPlaygroundPluginListResponse_Data_DEFAULT *common.GetPlaygroundPluginListData\n\nfunc (p *GetPlaygroundPluginListResponse) GetData() (v *common.GetPlaygroundPluginListData) {\n\tif !p.IsSetData() {\n\t\treturn GetPlaygroundPluginListResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetPlaygroundPluginListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetPlaygroundPluginListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetPlaygroundPluginListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetPlaygroundPluginListResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetPlaygroundPluginListResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetPlaygroundPluginListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetPlaygroundPluginListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPlaygroundPluginListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPlaygroundPluginListResponse[fieldId]))\n}\n\nfunc (p *GetPlaygroundPluginListResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := common.NewGetPlaygroundPluginListData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetPlaygroundPluginListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetPlaygroundPluginListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPlaygroundPluginListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPlaygroundPluginListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetPlaygroundPluginListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPlaygroundPluginListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPlaygroundPluginListResponse(%+v)\", *p)\n\n}\n\ntype GetPluginAPIsRequest struct {\n\t// Plugin ID\n\tPluginID int64 `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\t// If present, query according to tool id, no paging logic\n\tAPIIds []string `thrift:\"api_ids,2\" form:\"api_ids\" json:\"api_ids\" query:\"api_ids\"`\n\t// page number\n\tPage int32 `thrift:\"page,3\" form:\"page\" json:\"page\" query:\"page\"`\n\t// page size\n\tSize int32 `thrift:\"size,4\" form:\"size\" json:\"size\" query:\"size\"`\n\t// ignore\n\tOrder *common.APIListOrder `thrift:\"order,5\" form:\"order\" json:\"order\" query:\"order\"`\n\t// ignore\n\tPreviewVersionTs *string    `thrift:\"preview_version_ts,6,optional\" form:\"preview_version_ts\" json:\"preview_version_ts,omitempty\" query:\"preview_version_ts\"`\n\tBase             *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetPluginAPIsRequest() *GetPluginAPIsRequest {\n\treturn &GetPluginAPIsRequest{}\n}\n\nfunc (p *GetPluginAPIsRequest) InitDefault() {\n}\n\nfunc (p *GetPluginAPIsRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *GetPluginAPIsRequest) GetAPIIds() (v []string) {\n\treturn p.APIIds\n}\n\nfunc (p *GetPluginAPIsRequest) GetPage() (v int32) {\n\treturn p.Page\n}\n\nfunc (p *GetPluginAPIsRequest) GetSize() (v int32) {\n\treturn p.Size\n}\n\nvar GetPluginAPIsRequest_Order_DEFAULT *common.APIListOrder\n\nfunc (p *GetPluginAPIsRequest) GetOrder() (v *common.APIListOrder) {\n\tif !p.IsSetOrder() {\n\t\treturn GetPluginAPIsRequest_Order_DEFAULT\n\t}\n\treturn p.Order\n}\n\nvar GetPluginAPIsRequest_PreviewVersionTs_DEFAULT string\n\nfunc (p *GetPluginAPIsRequest) GetPreviewVersionTs() (v string) {\n\tif !p.IsSetPreviewVersionTs() {\n\t\treturn GetPluginAPIsRequest_PreviewVersionTs_DEFAULT\n\t}\n\treturn *p.PreviewVersionTs\n}\n\nvar GetPluginAPIsRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetPluginAPIsRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetPluginAPIsRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetPluginAPIsRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"api_ids\",\n\t3:   \"page\",\n\t4:   \"size\",\n\t5:   \"order\",\n\t6:   \"preview_version_ts\",\n\t255: \"Base\",\n}\n\nfunc (p *GetPluginAPIsRequest) IsSetOrder() bool {\n\treturn p.Order != nil\n}\n\nfunc (p *GetPluginAPIsRequest) IsSetPreviewVersionTs() bool {\n\treturn p.PreviewVersionTs != nil\n}\n\nfunc (p *GetPluginAPIsRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetPluginAPIsRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPluginAPIsRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPluginAPIsRequest[fieldId]))\n}\n\nfunc (p *GetPluginAPIsRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *GetPluginAPIsRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.APIIds = _field\n\treturn nil\n}\nfunc (p *GetPluginAPIsRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *GetPluginAPIsRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *GetPluginAPIsRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_field := common.NewAPIListOrder()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Order = _field\n\treturn nil\n}\nfunc (p *GetPluginAPIsRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PreviewVersionTs = _field\n\treturn nil\n}\nfunc (p *GetPluginAPIsRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetPluginAPIsRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginAPIsRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPluginAPIsRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPluginAPIsRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_ids\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.APIIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.APIIds {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPluginAPIsRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"page\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Page); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetPluginAPIsRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Size); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetPluginAPIsRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"order\", thrift.STRUCT, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Order.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetPluginAPIsRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPreviewVersionTs() {\n\t\tif err = oprot.WriteFieldBegin(\"preview_version_ts\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PreviewVersionTs); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetPluginAPIsRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPluginAPIsRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPluginAPIsRequest(%+v)\", *p)\n\n}\n\ntype GetPluginAPIsResponse struct {\n\tCode        int64                   `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg         string                  `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tAPIInfo     []*common.PluginAPIInfo `thrift:\"api_info,3\" form:\"api_info\" json:\"api_info\" query:\"api_info\"`\n\tTotal       int32                   `thrift:\"total,4\" form:\"total\" json:\"total\" query:\"total\"`\n\tEditVersion int32                   `thrift:\"edit_version,5\" form:\"edit_version\" json:\"edit_version\" query:\"edit_version\"`\n\tBaseResp    *base.BaseResp          `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetPluginAPIsResponse() *GetPluginAPIsResponse {\n\treturn &GetPluginAPIsResponse{}\n}\n\nfunc (p *GetPluginAPIsResponse) InitDefault() {\n}\n\nfunc (p *GetPluginAPIsResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetPluginAPIsResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetPluginAPIsResponse) GetAPIInfo() (v []*common.PluginAPIInfo) {\n\treturn p.APIInfo\n}\n\nfunc (p *GetPluginAPIsResponse) GetTotal() (v int32) {\n\treturn p.Total\n}\n\nfunc (p *GetPluginAPIsResponse) GetEditVersion() (v int32) {\n\treturn p.EditVersion\n}\n\nvar GetPluginAPIsResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetPluginAPIsResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetPluginAPIsResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetPluginAPIsResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"api_info\",\n\t4:   \"total\",\n\t5:   \"edit_version\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetPluginAPIsResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetPluginAPIsResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPluginAPIsResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetPluginAPIsResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetPluginAPIsResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetPluginAPIsResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.PluginAPIInfo, 0, size)\n\tvalues := make([]common.PluginAPIInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.APIInfo = _field\n\treturn nil\n}\nfunc (p *GetPluginAPIsResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\nfunc (p *GetPluginAPIsResponse) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *GetPluginAPIsResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetPluginAPIsResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginAPIsResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPluginAPIsResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPluginAPIsResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPluginAPIsResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_info\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.APIInfo)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.APIInfo {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetPluginAPIsResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetPluginAPIsResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.EditVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetPluginAPIsResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPluginAPIsResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPluginAPIsResponse(%+v)\", *p)\n\n}\n\ntype GetUpdatedAPIsRequest struct {\n\t// Plugin ID\n\tPluginID int64      `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\tBase     *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetUpdatedAPIsRequest() *GetUpdatedAPIsRequest {\n\treturn &GetUpdatedAPIsRequest{}\n}\n\nfunc (p *GetUpdatedAPIsRequest) InitDefault() {\n}\n\nfunc (p *GetUpdatedAPIsRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nvar GetUpdatedAPIsRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetUpdatedAPIsRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetUpdatedAPIsRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetUpdatedAPIsRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetUpdatedAPIsRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetUpdatedAPIsRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUpdatedAPIsRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetUpdatedAPIsRequest[fieldId]))\n}\n\nfunc (p *GetUpdatedAPIsRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *GetUpdatedAPIsRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetUpdatedAPIsRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUpdatedAPIsRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUpdatedAPIsRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUpdatedAPIsRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetUpdatedAPIsRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUpdatedAPIsRequest(%+v)\", *p)\n\n}\n\ntype GetUpdatedAPIsResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\t// Newly created tool name\n\tCreatedAPINames []string `thrift:\"created_api_names,3\" form:\"created_api_names\" json:\"created_api_names\" query:\"created_api_names\"`\n\t// Deleted tool name\n\tDeletedAPINames []string `thrift:\"deleted_api_names,4\" form:\"deleted_api_names\" json:\"deleted_api_names\" query:\"deleted_api_names\"`\n\t// updated tool name\n\tUpdatedAPINames []string       `thrift:\"updated_api_names,5\" form:\"updated_api_names\" json:\"updated_api_names\" query:\"updated_api_names\"`\n\tBaseResp        *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetUpdatedAPIsResponse() *GetUpdatedAPIsResponse {\n\treturn &GetUpdatedAPIsResponse{}\n}\n\nfunc (p *GetUpdatedAPIsResponse) InitDefault() {\n}\n\nfunc (p *GetUpdatedAPIsResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetUpdatedAPIsResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetUpdatedAPIsResponse) GetCreatedAPINames() (v []string) {\n\treturn p.CreatedAPINames\n}\n\nfunc (p *GetUpdatedAPIsResponse) GetDeletedAPINames() (v []string) {\n\treturn p.DeletedAPINames\n}\n\nfunc (p *GetUpdatedAPIsResponse) GetUpdatedAPINames() (v []string) {\n\treturn p.UpdatedAPINames\n}\n\nvar GetUpdatedAPIsResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetUpdatedAPIsResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetUpdatedAPIsResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetUpdatedAPIsResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"created_api_names\",\n\t4:   \"deleted_api_names\",\n\t5:   \"updated_api_names\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetUpdatedAPIsResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetUpdatedAPIsResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUpdatedAPIsResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetUpdatedAPIsResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetUpdatedAPIsResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetUpdatedAPIsResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CreatedAPINames = _field\n\treturn nil\n}\nfunc (p *GetUpdatedAPIsResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DeletedAPINames = _field\n\treturn nil\n}\nfunc (p *GetUpdatedAPIsResponse) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.UpdatedAPINames = _field\n\treturn nil\n}\nfunc (p *GetUpdatedAPIsResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetUpdatedAPIsResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUpdatedAPIsResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUpdatedAPIsResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUpdatedAPIsResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetUpdatedAPIsResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"created_api_names\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.CreatedAPINames)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.CreatedAPINames {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetUpdatedAPIsResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"deleted_api_names\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.DeletedAPINames)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DeletedAPINames {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetUpdatedAPIsResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"updated_api_names\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.UpdatedAPINames)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.UpdatedAPINames {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetUpdatedAPIsResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetUpdatedAPIsResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUpdatedAPIsResponse(%+v)\", *p)\n\n}\n\ntype GetPluginInfoRequest struct {\n\t// Currently only plugins are supported OpenAPI plugin information\n\tPluginID int64 `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\t// ignore\n\tPreviewVersionTsx *string    `thrift:\"preview_version_tsx,2,optional\" form:\"preview_version_tsx\" json:\"preview_version_tsx,omitempty\" query:\"preview_version_tsx\"`\n\tBase              *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetPluginInfoRequest() *GetPluginInfoRequest {\n\treturn &GetPluginInfoRequest{}\n}\n\nfunc (p *GetPluginInfoRequest) InitDefault() {\n}\n\nfunc (p *GetPluginInfoRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nvar GetPluginInfoRequest_PreviewVersionTsx_DEFAULT string\n\nfunc (p *GetPluginInfoRequest) GetPreviewVersionTsx() (v string) {\n\tif !p.IsSetPreviewVersionTsx() {\n\t\treturn GetPluginInfoRequest_PreviewVersionTsx_DEFAULT\n\t}\n\treturn *p.PreviewVersionTsx\n}\n\nvar GetPluginInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetPluginInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetPluginInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetPluginInfoRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"preview_version_tsx\",\n\t255: \"Base\",\n}\n\nfunc (p *GetPluginInfoRequest) IsSetPreviewVersionTsx() bool {\n\treturn p.PreviewVersionTsx != nil\n}\n\nfunc (p *GetPluginInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetPluginInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPluginInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPluginInfoRequest[fieldId]))\n}\n\nfunc (p *GetPluginInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PreviewVersionTsx = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetPluginInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPluginInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPluginInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPreviewVersionTsx() {\n\t\tif err = oprot.WriteFieldBegin(\"preview_version_tsx\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PreviewVersionTsx); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPluginInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPluginInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPluginInfoRequest(%+v)\", *p)\n\n}\n\ntype GetPluginInfoResponse struct {\n\tCode     int64                  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                 `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tMetaInfo *common.PluginMetaInfo `thrift:\"meta_info,3\" form:\"meta_info\" json:\"meta_info\" query:\"meta_info\"`\n\tCodeInfo *common.CodeInfo       `thrift:\"code_info,4\" form:\"code_info\" json:\"code_info\" query:\"code_info\"`\n\t// 0 No updates 1 Yes updates Not released\n\tStatus bool `thrift:\"status,5\" form:\"status\" json:\"status\" query:\"status\"`\n\t// Has it been published?\n\tPublished bool `thrift:\"published,6\" form:\"published\" json:\"published\" query:\"published\"`\n\t// creator information\n\tCreator *common.Creator `thrift:\"creator,7\" form:\"creator\" json:\"creator\" query:\"creator\"`\n\t// ignore\n\tStatisticData *common.PluginStatisticData `thrift:\"statistic_data,8\" form:\"statistic_data\" json:\"statistic_data\" query:\"statistic_data\"`\n\t// ignore\n\tPluginProductStatus common.ProductStatus `thrift:\"plugin_product_status,9\" form:\"plugin_product_status\" json:\"plugin_product_status\" query:\"plugin_product_status\"`\n\t// ignore\n\tPrivacyStatus bool `thrift:\"privacy_status,10\" form:\"privacy_status\" json:\"privacy_status\" query:\"privacy_status\"`\n\t// ignore\n\tPrivacyInfo string `thrift:\"privacy_info,11\" form:\"privacy_info\" json:\"privacy_info\" query:\"privacy_info\"`\n\t// ignore\n\tCreationMethod common.CreationMethod `thrift:\"creation_method,12\" form:\"creation_method\" json:\"creation_method\" query:\"creation_method\"`\n\t// ignore\n\tIdeCodeRuntime string `thrift:\"ide_code_runtime,13\" form:\"ide_code_runtime\" json:\"ide_code_runtime\" query:\"ide_code_runtime\"`\n\t// ignore\n\tEditVersion int32 `thrift:\"edit_version,14\" form:\"edit_version\" json:\"edit_version\" query:\"edit_version\"`\n\t// ignore\n\tPluginType common.PluginType `thrift:\"plugin_type,15\" form:\"plugin_type\" json:\"plugin_type\" query:\"plugin_type\"`\n\tBaseResp   *base.BaseResp    `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetPluginInfoResponse() *GetPluginInfoResponse {\n\treturn &GetPluginInfoResponse{}\n}\n\nfunc (p *GetPluginInfoResponse) InitDefault() {\n}\n\nfunc (p *GetPluginInfoResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetPluginInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetPluginInfoResponse_MetaInfo_DEFAULT *common.PluginMetaInfo\n\nfunc (p *GetPluginInfoResponse) GetMetaInfo() (v *common.PluginMetaInfo) {\n\tif !p.IsSetMetaInfo() {\n\t\treturn GetPluginInfoResponse_MetaInfo_DEFAULT\n\t}\n\treturn p.MetaInfo\n}\n\nvar GetPluginInfoResponse_CodeInfo_DEFAULT *common.CodeInfo\n\nfunc (p *GetPluginInfoResponse) GetCodeInfo() (v *common.CodeInfo) {\n\tif !p.IsSetCodeInfo() {\n\t\treturn GetPluginInfoResponse_CodeInfo_DEFAULT\n\t}\n\treturn p.CodeInfo\n}\n\nfunc (p *GetPluginInfoResponse) GetStatus() (v bool) {\n\treturn p.Status\n}\n\nfunc (p *GetPluginInfoResponse) GetPublished() (v bool) {\n\treturn p.Published\n}\n\nvar GetPluginInfoResponse_Creator_DEFAULT *common.Creator\n\nfunc (p *GetPluginInfoResponse) GetCreator() (v *common.Creator) {\n\tif !p.IsSetCreator() {\n\t\treturn GetPluginInfoResponse_Creator_DEFAULT\n\t}\n\treturn p.Creator\n}\n\nvar GetPluginInfoResponse_StatisticData_DEFAULT *common.PluginStatisticData\n\nfunc (p *GetPluginInfoResponse) GetStatisticData() (v *common.PluginStatisticData) {\n\tif !p.IsSetStatisticData() {\n\t\treturn GetPluginInfoResponse_StatisticData_DEFAULT\n\t}\n\treturn p.StatisticData\n}\n\nfunc (p *GetPluginInfoResponse) GetPluginProductStatus() (v common.ProductStatus) {\n\treturn p.PluginProductStatus\n}\n\nfunc (p *GetPluginInfoResponse) GetPrivacyStatus() (v bool) {\n\treturn p.PrivacyStatus\n}\n\nfunc (p *GetPluginInfoResponse) GetPrivacyInfo() (v string) {\n\treturn p.PrivacyInfo\n}\n\nfunc (p *GetPluginInfoResponse) GetCreationMethod() (v common.CreationMethod) {\n\treturn p.CreationMethod\n}\n\nfunc (p *GetPluginInfoResponse) GetIdeCodeRuntime() (v string) {\n\treturn p.IdeCodeRuntime\n}\n\nfunc (p *GetPluginInfoResponse) GetEditVersion() (v int32) {\n\treturn p.EditVersion\n}\n\nfunc (p *GetPluginInfoResponse) GetPluginType() (v common.PluginType) {\n\treturn p.PluginType\n}\n\nvar GetPluginInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetPluginInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetPluginInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetPluginInfoResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"meta_info\",\n\t4:   \"code_info\",\n\t5:   \"status\",\n\t6:   \"published\",\n\t7:   \"creator\",\n\t8:   \"statistic_data\",\n\t9:   \"plugin_product_status\",\n\t10:  \"privacy_status\",\n\t11:  \"privacy_info\",\n\t12:  \"creation_method\",\n\t13:  \"ide_code_runtime\",\n\t14:  \"edit_version\",\n\t15:  \"plugin_type\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetPluginInfoResponse) IsSetMetaInfo() bool {\n\treturn p.MetaInfo != nil\n}\n\nfunc (p *GetPluginInfoResponse) IsSetCodeInfo() bool {\n\treturn p.CodeInfo != nil\n}\n\nfunc (p *GetPluginInfoResponse) IsSetCreator() bool {\n\treturn p.Creator != nil\n}\n\nfunc (p *GetPluginInfoResponse) IsSetStatisticData() bool {\n\treturn p.StatisticData != nil\n}\n\nfunc (p *GetPluginInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetPluginInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPluginInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetPluginInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := common.NewPluginMetaInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.MetaInfo = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_field := common.NewCodeInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CodeInfo = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Published = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField7(iprot thrift.TProtocol) error {\n\t_field := common.NewCreator()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Creator = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField8(iprot thrift.TProtocol) error {\n\t_field := common.NewPluginStatisticData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.StatisticData = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field common.ProductStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.ProductStatus(v)\n\t}\n\tp.PluginProductStatus = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PrivacyStatus = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PrivacyInfo = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field common.CreationMethod\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.CreationMethod(v)\n\t}\n\tp.CreationMethod = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IdeCodeRuntime = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field common.PluginType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.PluginType(v)\n\t}\n\tp.PluginType = _field\n\treturn nil\n}\nfunc (p *GetPluginInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetPluginInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPluginInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"meta_info\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.MetaInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code_info\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.CodeInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.BOOL, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Status); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"published\", thrift.BOOL, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Published); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator\", thrift.STRUCT, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Creator.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"statistic_data\", thrift.STRUCT, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.StatisticData.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_product_status\", thrift.I32, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PluginProductStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"privacy_status\", thrift.BOOL, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.PrivacyStatus); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"privacy_info\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PrivacyInfo); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creation_method\", thrift.I32, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.CreationMethod)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ide_code_runtime\", thrift.STRING, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IdeCodeRuntime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.EditVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_type\", thrift.I32, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PluginType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *GetPluginInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPluginInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPluginInfoResponse(%+v)\", *p)\n\n}\n\ntype UpdatePluginRequest struct {\n\tPluginID int64 `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id,string\" query:\"plugin_id\"`\n\t// plugin manifest in json string\n\tAiPlugin string `thrift:\"ai_plugin,3\" form:\"ai_plugin\" json:\"ai_plugin\" query:\"ai_plugin\"`\n\t// plugin openapi3 document in yaml string\n\tOpenapi string `thrift:\"openapi,4\" form:\"openapi\" json:\"openapi\" query:\"openapi\"`\n\t// ignore\n\tClientID *string `thrift:\"client_id,5,optional\" form:\"client_id\" json:\"client_id,omitempty\" query:\"client_id\"`\n\t// ignore\n\tClientSecret *string `thrift:\"client_secret,6,optional\" form:\"client_secret\" json:\"client_secret,omitempty\" query:\"client_secret\"`\n\t// ignore\n\tServiceToken *string `thrift:\"service_token,7,optional\" form:\"service_token\" json:\"service_token,omitempty\" query:\"service_token\"`\n\t// ignore\n\tSourceCode *string `thrift:\"source_code,8,optional\" form:\"source_code\" json:\"source_code,omitempty\" query:\"source_code\"`\n\t// ignore\n\tEditVersion *int32 `thrift:\"edit_version,9,optional\" form:\"edit_version\" json:\"edit_version,omitempty\" query:\"edit_version\"`\n\t// ignore\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdatePluginRequest() *UpdatePluginRequest {\n\treturn &UpdatePluginRequest{}\n}\n\nfunc (p *UpdatePluginRequest) InitDefault() {\n}\n\nfunc (p *UpdatePluginRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *UpdatePluginRequest) GetAiPlugin() (v string) {\n\treturn p.AiPlugin\n}\n\nfunc (p *UpdatePluginRequest) GetOpenapi() (v string) {\n\treturn p.Openapi\n}\n\nvar UpdatePluginRequest_ClientID_DEFAULT string\n\nfunc (p *UpdatePluginRequest) GetClientID() (v string) {\n\tif !p.IsSetClientID() {\n\t\treturn UpdatePluginRequest_ClientID_DEFAULT\n\t}\n\treturn *p.ClientID\n}\n\nvar UpdatePluginRequest_ClientSecret_DEFAULT string\n\nfunc (p *UpdatePluginRequest) GetClientSecret() (v string) {\n\tif !p.IsSetClientSecret() {\n\t\treturn UpdatePluginRequest_ClientSecret_DEFAULT\n\t}\n\treturn *p.ClientSecret\n}\n\nvar UpdatePluginRequest_ServiceToken_DEFAULT string\n\nfunc (p *UpdatePluginRequest) GetServiceToken() (v string) {\n\tif !p.IsSetServiceToken() {\n\t\treturn UpdatePluginRequest_ServiceToken_DEFAULT\n\t}\n\treturn *p.ServiceToken\n}\n\nvar UpdatePluginRequest_SourceCode_DEFAULT string\n\nfunc (p *UpdatePluginRequest) GetSourceCode() (v string) {\n\tif !p.IsSetSourceCode() {\n\t\treturn UpdatePluginRequest_SourceCode_DEFAULT\n\t}\n\treturn *p.SourceCode\n}\n\nvar UpdatePluginRequest_EditVersion_DEFAULT int32\n\nfunc (p *UpdatePluginRequest) GetEditVersion() (v int32) {\n\tif !p.IsSetEditVersion() {\n\t\treturn UpdatePluginRequest_EditVersion_DEFAULT\n\t}\n\treturn *p.EditVersion\n}\n\nvar UpdatePluginRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdatePluginRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdatePluginRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdatePluginRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t3:   \"ai_plugin\",\n\t4:   \"openapi\",\n\t5:   \"client_id\",\n\t6:   \"client_secret\",\n\t7:   \"service_token\",\n\t8:   \"source_code\",\n\t9:   \"edit_version\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdatePluginRequest) IsSetClientID() bool {\n\treturn p.ClientID != nil\n}\n\nfunc (p *UpdatePluginRequest) IsSetClientSecret() bool {\n\treturn p.ClientSecret != nil\n}\n\nfunc (p *UpdatePluginRequest) IsSetServiceToken() bool {\n\treturn p.ServiceToken != nil\n}\n\nfunc (p *UpdatePluginRequest) IsSetSourceCode() bool {\n\treturn p.SourceCode != nil\n}\n\nfunc (p *UpdatePluginRequest) IsSetEditVersion() bool {\n\treturn p.EditVersion != nil\n}\n\nfunc (p *UpdatePluginRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdatePluginRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdatePluginRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdatePluginRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *UpdatePluginRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AiPlugin = _field\n\treturn nil\n}\nfunc (p *UpdatePluginRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Openapi = _field\n\treturn nil\n}\nfunc (p *UpdatePluginRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ClientID = _field\n\treturn nil\n}\nfunc (p *UpdatePluginRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ClientSecret = _field\n\treturn nil\n}\nfunc (p *UpdatePluginRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ServiceToken = _field\n\treturn nil\n}\nfunc (p *UpdatePluginRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SourceCode = _field\n\treturn nil\n}\nfunc (p *UpdatePluginRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *UpdatePluginRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdatePluginRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePluginRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdatePluginRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdatePluginRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ai_plugin\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AiPlugin); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdatePluginRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"openapi\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Openapi); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UpdatePluginRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetClientID() {\n\t\tif err = oprot.WriteFieldBegin(\"client_id\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ClientID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UpdatePluginRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetClientSecret() {\n\t\tif err = oprot.WriteFieldBegin(\"client_secret\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ClientSecret); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *UpdatePluginRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetServiceToken() {\n\t\tif err = oprot.WriteFieldBegin(\"service_token\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ServiceToken); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *UpdatePluginRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSourceCode() {\n\t\tif err = oprot.WriteFieldBegin(\"source_code\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SourceCode); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *UpdatePluginRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.EditVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *UpdatePluginRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdatePluginRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdatePluginRequest(%+v)\", *p)\n\n}\n\ntype UpdatePluginResponse struct {\n\tCode     int64                    `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                   `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData     *common.UpdatePluginData `thrift:\"data,3,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tBaseResp *base.BaseResp           `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewUpdatePluginResponse() *UpdatePluginResponse {\n\treturn &UpdatePluginResponse{}\n}\n\nfunc (p *UpdatePluginResponse) InitDefault() {\n}\n\nfunc (p *UpdatePluginResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdatePluginResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdatePluginResponse_Data_DEFAULT *common.UpdatePluginData\n\nfunc (p *UpdatePluginResponse) GetData() (v *common.UpdatePluginData) {\n\tif !p.IsSetData() {\n\t\treturn UpdatePluginResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar UpdatePluginResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdatePluginResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdatePluginResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdatePluginResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdatePluginResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *UpdatePluginResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdatePluginResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdatePluginResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdatePluginResponse[fieldId]))\n}\n\nfunc (p *UpdatePluginResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdatePluginResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdatePluginResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := common.NewUpdatePluginData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *UpdatePluginResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdatePluginResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePluginResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdatePluginResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdatePluginResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdatePluginResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdatePluginResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdatePluginResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdatePluginResponse(%+v)\", *p)\n\n}\n\ntype RegisterPluginMetaRequest struct {\n\t// plugin name\n\tName string `thrift:\"name,1,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\t// Plugin description\n\tDesc string `thrift:\"desc,2,required\" form:\"desc,required\" json:\"desc,required\" query:\"desc,required\"`\n\t// Plugin service address prefix\n\tURL *string `thrift:\"url,3,optional\" form:\"url\" json:\"url,omitempty\" query:\"url\"`\n\t// plugin icon\n\tIcon *common.PluginIcon `thrift:\"icon,4,required\" form:\"icon,required\" json:\"icon,required\" query:\"icon,required\"`\n\t// plug-in authorization type\n\tAuthType *common.AuthorizationType `thrift:\"auth_type,5,optional\" form:\"auth_type\" json:\"auth_type,omitempty\" query:\"auth_type\"`\n\t// When the sub-authorization type is api/token, the token parameter position\n\tLocation *common.AuthorizationServiceLocation `thrift:\"location,6,optional\" form:\"location\" json:\"location,omitempty\" query:\"location\"`\n\t// When the sub-authorization type is api/token, the token parameter key\n\tKey *string `thrift:\"key,7,optional\" form:\"key\" json:\"key,omitempty\" query:\"key\"`\n\t// When the sub-authorization type is api/token, the token parameter value\n\tServiceToken *string `thrift:\"service_token,8,optional\" form:\"service_token\" json:\"service_token,omitempty\" query:\"service_token\"`\n\t// The authorization type is oauth Yes, oauth information, see GetOAuthSchema return value\n\tOauthInfo *string `thrift:\"oauth_info,9,optional\" form:\"oauth_info\" json:\"oauth_info,omitempty\" query:\"oauth_info\"`\n\t// Space ID\n\tSpaceID int64 `thrift:\"space_id,10,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\t// Plugin public parameters, key is the parameter position, value is the parameter list\n\tCommonParams map[common.ParameterLocation][]*common.CommonParamSchema `thrift:\"common_params,11,optional\" form:\"common_params\" json:\"common_params,omitempty\" query:\"common_params\"`\n\t// ignore\n\tCreationMethod *common.CreationMethod `thrift:\"creation_method,12,optional\" form:\"creation_method\" json:\"creation_method,omitempty\" query:\"creation_method\"`\n\t// ignore\n\tIdeCodeRuntime *string `thrift:\"ide_code_runtime,13,optional\" form:\"ide_code_runtime\" json:\"ide_code_runtime,omitempty\" query:\"ide_code_runtime\"`\n\t// ignore\n\tPluginType *common.PluginType `thrift:\"plugin_type,14,optional\" form:\"plugin_type\" json:\"plugin_type,omitempty\" query:\"plugin_type\"`\n\t// App ID\n\tProjectID *int64 `thrift:\"project_id,15,optional\" form:\"project_id\" json:\"project_id,string,omitempty\" query:\"project_id\"`\n\t// Level 2 authorization type, 0: api/token of service, 10: client credentials of oauth\n\tSubAuthType *int32 `thrift:\"sub_auth_type,16,optional\" form:\"sub_auth_type\" json:\"sub_auth_type,omitempty\" query:\"sub_auth_type\"`\n\t// ignore\n\tAuthPayload *string `thrift:\"auth_payload,17,optional\" form:\"auth_payload\" json:\"auth_payload,omitempty\" query:\"auth_payload\"`\n\t// ignore\n\tFixedExportIP *bool      `thrift:\"fixed_export_ip,18,optional\" form:\"fixed_export_ip\" json:\"fixed_export_ip,omitempty\" query:\"fixed_export_ip\"`\n\tBase          *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewRegisterPluginMetaRequest() *RegisterPluginMetaRequest {\n\treturn &RegisterPluginMetaRequest{}\n}\n\nfunc (p *RegisterPluginMetaRequest) InitDefault() {\n}\n\nfunc (p *RegisterPluginMetaRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *RegisterPluginMetaRequest) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nvar RegisterPluginMetaRequest_URL_DEFAULT string\n\nfunc (p *RegisterPluginMetaRequest) GetURL() (v string) {\n\tif !p.IsSetURL() {\n\t\treturn RegisterPluginMetaRequest_URL_DEFAULT\n\t}\n\treturn *p.URL\n}\n\nvar RegisterPluginMetaRequest_Icon_DEFAULT *common.PluginIcon\n\nfunc (p *RegisterPluginMetaRequest) GetIcon() (v *common.PluginIcon) {\n\tif !p.IsSetIcon() {\n\t\treturn RegisterPluginMetaRequest_Icon_DEFAULT\n\t}\n\treturn p.Icon\n}\n\nvar RegisterPluginMetaRequest_AuthType_DEFAULT common.AuthorizationType\n\nfunc (p *RegisterPluginMetaRequest) GetAuthType() (v common.AuthorizationType) {\n\tif !p.IsSetAuthType() {\n\t\treturn RegisterPluginMetaRequest_AuthType_DEFAULT\n\t}\n\treturn *p.AuthType\n}\n\nvar RegisterPluginMetaRequest_Location_DEFAULT common.AuthorizationServiceLocation\n\nfunc (p *RegisterPluginMetaRequest) GetLocation() (v common.AuthorizationServiceLocation) {\n\tif !p.IsSetLocation() {\n\t\treturn RegisterPluginMetaRequest_Location_DEFAULT\n\t}\n\treturn *p.Location\n}\n\nvar RegisterPluginMetaRequest_Key_DEFAULT string\n\nfunc (p *RegisterPluginMetaRequest) GetKey() (v string) {\n\tif !p.IsSetKey() {\n\t\treturn RegisterPluginMetaRequest_Key_DEFAULT\n\t}\n\treturn *p.Key\n}\n\nvar RegisterPluginMetaRequest_ServiceToken_DEFAULT string\n\nfunc (p *RegisterPluginMetaRequest) GetServiceToken() (v string) {\n\tif !p.IsSetServiceToken() {\n\t\treturn RegisterPluginMetaRequest_ServiceToken_DEFAULT\n\t}\n\treturn *p.ServiceToken\n}\n\nvar RegisterPluginMetaRequest_OauthInfo_DEFAULT string\n\nfunc (p *RegisterPluginMetaRequest) GetOauthInfo() (v string) {\n\tif !p.IsSetOauthInfo() {\n\t\treturn RegisterPluginMetaRequest_OauthInfo_DEFAULT\n\t}\n\treturn *p.OauthInfo\n}\n\nfunc (p *RegisterPluginMetaRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar RegisterPluginMetaRequest_CommonParams_DEFAULT map[common.ParameterLocation][]*common.CommonParamSchema\n\nfunc (p *RegisterPluginMetaRequest) GetCommonParams() (v map[common.ParameterLocation][]*common.CommonParamSchema) {\n\tif !p.IsSetCommonParams() {\n\t\treturn RegisterPluginMetaRequest_CommonParams_DEFAULT\n\t}\n\treturn p.CommonParams\n}\n\nvar RegisterPluginMetaRequest_CreationMethod_DEFAULT common.CreationMethod\n\nfunc (p *RegisterPluginMetaRequest) GetCreationMethod() (v common.CreationMethod) {\n\tif !p.IsSetCreationMethod() {\n\t\treturn RegisterPluginMetaRequest_CreationMethod_DEFAULT\n\t}\n\treturn *p.CreationMethod\n}\n\nvar RegisterPluginMetaRequest_IdeCodeRuntime_DEFAULT string\n\nfunc (p *RegisterPluginMetaRequest) GetIdeCodeRuntime() (v string) {\n\tif !p.IsSetIdeCodeRuntime() {\n\t\treturn RegisterPluginMetaRequest_IdeCodeRuntime_DEFAULT\n\t}\n\treturn *p.IdeCodeRuntime\n}\n\nvar RegisterPluginMetaRequest_PluginType_DEFAULT common.PluginType\n\nfunc (p *RegisterPluginMetaRequest) GetPluginType() (v common.PluginType) {\n\tif !p.IsSetPluginType() {\n\t\treturn RegisterPluginMetaRequest_PluginType_DEFAULT\n\t}\n\treturn *p.PluginType\n}\n\nvar RegisterPluginMetaRequest_ProjectID_DEFAULT int64\n\nfunc (p *RegisterPluginMetaRequest) GetProjectID() (v int64) {\n\tif !p.IsSetProjectID() {\n\t\treturn RegisterPluginMetaRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar RegisterPluginMetaRequest_SubAuthType_DEFAULT int32\n\nfunc (p *RegisterPluginMetaRequest) GetSubAuthType() (v int32) {\n\tif !p.IsSetSubAuthType() {\n\t\treturn RegisterPluginMetaRequest_SubAuthType_DEFAULT\n\t}\n\treturn *p.SubAuthType\n}\n\nvar RegisterPluginMetaRequest_AuthPayload_DEFAULT string\n\nfunc (p *RegisterPluginMetaRequest) GetAuthPayload() (v string) {\n\tif !p.IsSetAuthPayload() {\n\t\treturn RegisterPluginMetaRequest_AuthPayload_DEFAULT\n\t}\n\treturn *p.AuthPayload\n}\n\nvar RegisterPluginMetaRequest_FixedExportIP_DEFAULT bool\n\nfunc (p *RegisterPluginMetaRequest) GetFixedExportIP() (v bool) {\n\tif !p.IsSetFixedExportIP() {\n\t\treturn RegisterPluginMetaRequest_FixedExportIP_DEFAULT\n\t}\n\treturn *p.FixedExportIP\n}\n\nvar RegisterPluginMetaRequest_Base_DEFAULT *base.Base\n\nfunc (p *RegisterPluginMetaRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn RegisterPluginMetaRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_RegisterPluginMetaRequest = map[int16]string{\n\t1:   \"name\",\n\t2:   \"desc\",\n\t3:   \"url\",\n\t4:   \"icon\",\n\t5:   \"auth_type\",\n\t6:   \"location\",\n\t7:   \"key\",\n\t8:   \"service_token\",\n\t9:   \"oauth_info\",\n\t10:  \"space_id\",\n\t11:  \"common_params\",\n\t12:  \"creation_method\",\n\t13:  \"ide_code_runtime\",\n\t14:  \"plugin_type\",\n\t15:  \"project_id\",\n\t16:  \"sub_auth_type\",\n\t17:  \"auth_payload\",\n\t18:  \"fixed_export_ip\",\n\t255: \"Base\",\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetURL() bool {\n\treturn p.URL != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetIcon() bool {\n\treturn p.Icon != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetAuthType() bool {\n\treturn p.AuthType != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetLocation() bool {\n\treturn p.Location != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetKey() bool {\n\treturn p.Key != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetServiceToken() bool {\n\treturn p.ServiceToken != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetOauthInfo() bool {\n\treturn p.OauthInfo != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetCommonParams() bool {\n\treturn p.CommonParams != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetCreationMethod() bool {\n\treturn p.CreationMethod != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetIdeCodeRuntime() bool {\n\treturn p.IdeCodeRuntime != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetPluginType() bool {\n\treturn p.PluginType != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetSubAuthType() bool {\n\treturn p.SubAuthType != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetAuthPayload() bool {\n\treturn p.AuthPayload != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetFixedExportIP() bool {\n\treturn p.FixedExportIP != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *RegisterPluginMetaRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetName bool = false\n\tvar issetDesc bool = false\n\tvar issetIcon bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDesc = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetIcon = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetDesc {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetIcon {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 10\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RegisterPluginMetaRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_RegisterPluginMetaRequest[fieldId]))\n}\n\nfunc (p *RegisterPluginMetaRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_field := common.NewPluginIcon()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *common.AuthorizationType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.AuthorizationType(v)\n\t\t_field = &tmp\n\t}\n\tp.AuthType = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *common.AuthorizationServiceLocation\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.AuthorizationServiceLocation(v)\n\t\t_field = &tmp\n\t}\n\tp.Location = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ServiceToken = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OauthInfo = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField11(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[common.ParameterLocation][]*common.CommonParamSchema, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key common.ParameterLocation\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = common.ParameterLocation(v)\n\t\t}\n\t\t_, size, err := iprot.ReadListBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_val := make([]*common.CommonParamSchema, 0, size)\n\t\tvalues := make([]common.CommonParamSchema, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\t_elem := &values[i]\n\t\t\t_elem.InitDefault()\n\n\t\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t_val = append(_val, _elem)\n\t\t}\n\t\tif err := iprot.ReadListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CommonParams = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *common.CreationMethod\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.CreationMethod(v)\n\t\t_field = &tmp\n\t}\n\tp.CreationMethod = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IdeCodeRuntime = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *common.PluginType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.PluginType(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginType = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubAuthType = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AuthPayload = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FixedExportIP = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *RegisterPluginMetaRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RegisterPluginMetaRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RegisterPluginMetaRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetURL() {\n\t\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.URL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Icon.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuthType() {\n\t\tif err = oprot.WriteFieldBegin(\"auth_type\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AuthType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLocation() {\n\t\tif err = oprot.WriteFieldBegin(\"location\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Location)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKey() {\n\t\tif err = oprot.WriteFieldBegin(\"key\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Key); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetServiceToken() {\n\t\tif err = oprot.WriteFieldBegin(\"service_token\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ServiceToken); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOauthInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"oauth_info\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OauthInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommonParams() {\n\t\tif err = oprot.WriteFieldBegin(\"common_params\", thrift.MAP, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I32, thrift.LIST, len(p.CommonParams)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.CommonParams {\n\t\t\tif err := oprot.WriteI32(int32(k)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfor _, v := range v {\n\t\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreationMethod() {\n\t\tif err = oprot.WriteFieldBegin(\"creation_method\", thrift.I32, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.CreationMethod)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIdeCodeRuntime() {\n\t\tif err = oprot.WriteFieldBegin(\"ide_code_runtime\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IdeCodeRuntime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginType() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_type\", thrift.I32, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubAuthType() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_auth_type\", thrift.I32, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.SubAuthType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuthPayload() {\n\t\tif err = oprot.WriteFieldBegin(\"auth_payload\", thrift.STRING, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.AuthPayload); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFixedExportIP() {\n\t\tif err = oprot.WriteFieldBegin(\"fixed_export_ip\", thrift.BOOL, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.FixedExportIP); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RegisterPluginMetaRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RegisterPluginMetaRequest(%+v)\", *p)\n\n}\n\ntype RegisterPluginMetaResponse struct {\n\tCode     int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tPluginID int64          `thrift:\"plugin_id,3\" form:\"plugin_id\" json:\"plugin_id,string\" query:\"plugin_id\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewRegisterPluginMetaResponse() *RegisterPluginMetaResponse {\n\treturn &RegisterPluginMetaResponse{}\n}\n\nfunc (p *RegisterPluginMetaResponse) InitDefault() {\n}\n\nfunc (p *RegisterPluginMetaResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *RegisterPluginMetaResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *RegisterPluginMetaResponse) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nvar RegisterPluginMetaResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *RegisterPluginMetaResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn RegisterPluginMetaResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_RegisterPluginMetaResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"plugin_id\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *RegisterPluginMetaResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *RegisterPluginMetaResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RegisterPluginMetaResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *RegisterPluginMetaResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *RegisterPluginMetaResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *RegisterPluginMetaResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RegisterPluginMetaResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RegisterPluginMetaResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *RegisterPluginMetaResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RegisterPluginMetaResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RegisterPluginMetaResponse(%+v)\", *p)\n\n}\n\ntype UpdatePluginMetaRequest struct {\n\tPluginID int64   `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\tName     *string `thrift:\"name,2,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tDesc     *string `thrift:\"desc,3,optional\" form:\"desc\" json:\"desc,omitempty\" query:\"desc\"`\n\t// plugin service url\n\tURL      *string                   `thrift:\"url,4,optional\" form:\"url\" json:\"url,omitempty\" query:\"url\"`\n\tIcon     *common.PluginIcon        `thrift:\"icon,5,optional\" form:\"icon\" json:\"icon,omitempty\" query:\"icon\"`\n\tAuthType *common.AuthorizationType `thrift:\"auth_type,6,optional\" form:\"auth_type\" json:\"auth_type,omitempty\" query:\"auth_type\"`\n\t// When the sub-authorization type is api/token, the token parameter position\n\tLocation *common.AuthorizationServiceLocation `thrift:\"location,7,optional\" form:\"location\" json:\"location,omitempty\" query:\"location\"`\n\t// When the sub-authorization type is api/token, the token parameter key\n\tKey *string `thrift:\"key,8,optional\" form:\"key\" json:\"key,omitempty\" query:\"key\"`\n\t// When the sub-authorization type is api/token, the token parameter value\n\tServiceToken *string `thrift:\"service_token,9,optional\" form:\"service_token\" json:\"service_token,omitempty\" query:\"service_token\"`\n\t// When the sub-authorization type is oauth, for oauth information, see GetOAuthSchema return value\n\tOauthInfo *string `thrift:\"oauth_info,10,optional\" form:\"oauth_info\" json:\"oauth_info,omitempty\" query:\"oauth_info\"`\n\t// JSON serialization\n\tCommonParams map[common.ParameterLocation][]*common.CommonParamSchema `thrift:\"common_params,11,optional\" form:\"common_params\" json:\"common_params,omitempty\" query:\"common_params\"`\n\t// ignore\n\tCreationMethod *common.CreationMethod `thrift:\"creation_method,12,optional\" form:\"creation_method\" json:\"creation_method,omitempty\" query:\"creation_method\"`\n\t// ignore\n\tEditVersion *int32             `thrift:\"edit_version,13,optional\" form:\"edit_version\" json:\"edit_version,omitempty\" query:\"edit_version\"`\n\tPluginType  *common.PluginType `thrift:\"plugin_type,14,optional\" form:\"plugin_type\" json:\"plugin_type,omitempty\" query:\"plugin_type\"`\n\t// Level 2 authorization type\n\tSubAuthType *int32 `thrift:\"sub_auth_type,15,optional\" form:\"sub_auth_type\" json:\"sub_auth_type,omitempty\" query:\"sub_auth_type\"`\n\t// ignore\n\tAuthPayload *string `thrift:\"auth_payload,16,optional\" form:\"auth_payload\" json:\"auth_payload,omitempty\" query:\"auth_payload\"`\n\t// ignore\n\tFixedExportIP *bool      `thrift:\"fixed_export_ip,17,optional\" form:\"fixed_export_ip\" json:\"fixed_export_ip,omitempty\" query:\"fixed_export_ip\"`\n\tBase          *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdatePluginMetaRequest() *UpdatePluginMetaRequest {\n\treturn &UpdatePluginMetaRequest{}\n}\n\nfunc (p *UpdatePluginMetaRequest) InitDefault() {\n}\n\nfunc (p *UpdatePluginMetaRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nvar UpdatePluginMetaRequest_Name_DEFAULT string\n\nfunc (p *UpdatePluginMetaRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn UpdatePluginMetaRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar UpdatePluginMetaRequest_Desc_DEFAULT string\n\nfunc (p *UpdatePluginMetaRequest) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn UpdatePluginMetaRequest_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar UpdatePluginMetaRequest_URL_DEFAULT string\n\nfunc (p *UpdatePluginMetaRequest) GetURL() (v string) {\n\tif !p.IsSetURL() {\n\t\treturn UpdatePluginMetaRequest_URL_DEFAULT\n\t}\n\treturn *p.URL\n}\n\nvar UpdatePluginMetaRequest_Icon_DEFAULT *common.PluginIcon\n\nfunc (p *UpdatePluginMetaRequest) GetIcon() (v *common.PluginIcon) {\n\tif !p.IsSetIcon() {\n\t\treturn UpdatePluginMetaRequest_Icon_DEFAULT\n\t}\n\treturn p.Icon\n}\n\nvar UpdatePluginMetaRequest_AuthType_DEFAULT common.AuthorizationType\n\nfunc (p *UpdatePluginMetaRequest) GetAuthType() (v common.AuthorizationType) {\n\tif !p.IsSetAuthType() {\n\t\treturn UpdatePluginMetaRequest_AuthType_DEFAULT\n\t}\n\treturn *p.AuthType\n}\n\nvar UpdatePluginMetaRequest_Location_DEFAULT common.AuthorizationServiceLocation\n\nfunc (p *UpdatePluginMetaRequest) GetLocation() (v common.AuthorizationServiceLocation) {\n\tif !p.IsSetLocation() {\n\t\treturn UpdatePluginMetaRequest_Location_DEFAULT\n\t}\n\treturn *p.Location\n}\n\nvar UpdatePluginMetaRequest_Key_DEFAULT string\n\nfunc (p *UpdatePluginMetaRequest) GetKey() (v string) {\n\tif !p.IsSetKey() {\n\t\treturn UpdatePluginMetaRequest_Key_DEFAULT\n\t}\n\treturn *p.Key\n}\n\nvar UpdatePluginMetaRequest_ServiceToken_DEFAULT string\n\nfunc (p *UpdatePluginMetaRequest) GetServiceToken() (v string) {\n\tif !p.IsSetServiceToken() {\n\t\treturn UpdatePluginMetaRequest_ServiceToken_DEFAULT\n\t}\n\treturn *p.ServiceToken\n}\n\nvar UpdatePluginMetaRequest_OauthInfo_DEFAULT string\n\nfunc (p *UpdatePluginMetaRequest) GetOauthInfo() (v string) {\n\tif !p.IsSetOauthInfo() {\n\t\treturn UpdatePluginMetaRequest_OauthInfo_DEFAULT\n\t}\n\treturn *p.OauthInfo\n}\n\nvar UpdatePluginMetaRequest_CommonParams_DEFAULT map[common.ParameterLocation][]*common.CommonParamSchema\n\nfunc (p *UpdatePluginMetaRequest) GetCommonParams() (v map[common.ParameterLocation][]*common.CommonParamSchema) {\n\tif !p.IsSetCommonParams() {\n\t\treturn UpdatePluginMetaRequest_CommonParams_DEFAULT\n\t}\n\treturn p.CommonParams\n}\n\nvar UpdatePluginMetaRequest_CreationMethod_DEFAULT common.CreationMethod\n\nfunc (p *UpdatePluginMetaRequest) GetCreationMethod() (v common.CreationMethod) {\n\tif !p.IsSetCreationMethod() {\n\t\treturn UpdatePluginMetaRequest_CreationMethod_DEFAULT\n\t}\n\treturn *p.CreationMethod\n}\n\nvar UpdatePluginMetaRequest_EditVersion_DEFAULT int32\n\nfunc (p *UpdatePluginMetaRequest) GetEditVersion() (v int32) {\n\tif !p.IsSetEditVersion() {\n\t\treturn UpdatePluginMetaRequest_EditVersion_DEFAULT\n\t}\n\treturn *p.EditVersion\n}\n\nvar UpdatePluginMetaRequest_PluginType_DEFAULT common.PluginType\n\nfunc (p *UpdatePluginMetaRequest) GetPluginType() (v common.PluginType) {\n\tif !p.IsSetPluginType() {\n\t\treturn UpdatePluginMetaRequest_PluginType_DEFAULT\n\t}\n\treturn *p.PluginType\n}\n\nvar UpdatePluginMetaRequest_SubAuthType_DEFAULT int32\n\nfunc (p *UpdatePluginMetaRequest) GetSubAuthType() (v int32) {\n\tif !p.IsSetSubAuthType() {\n\t\treturn UpdatePluginMetaRequest_SubAuthType_DEFAULT\n\t}\n\treturn *p.SubAuthType\n}\n\nvar UpdatePluginMetaRequest_AuthPayload_DEFAULT string\n\nfunc (p *UpdatePluginMetaRequest) GetAuthPayload() (v string) {\n\tif !p.IsSetAuthPayload() {\n\t\treturn UpdatePluginMetaRequest_AuthPayload_DEFAULT\n\t}\n\treturn *p.AuthPayload\n}\n\nvar UpdatePluginMetaRequest_FixedExportIP_DEFAULT bool\n\nfunc (p *UpdatePluginMetaRequest) GetFixedExportIP() (v bool) {\n\tif !p.IsSetFixedExportIP() {\n\t\treturn UpdatePluginMetaRequest_FixedExportIP_DEFAULT\n\t}\n\treturn *p.FixedExportIP\n}\n\nvar UpdatePluginMetaRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdatePluginMetaRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdatePluginMetaRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdatePluginMetaRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"name\",\n\t3:   \"desc\",\n\t4:   \"url\",\n\t5:   \"icon\",\n\t6:   \"auth_type\",\n\t7:   \"location\",\n\t8:   \"key\",\n\t9:   \"service_token\",\n\t10:  \"oauth_info\",\n\t11:  \"common_params\",\n\t12:  \"creation_method\",\n\t13:  \"edit_version\",\n\t14:  \"plugin_type\",\n\t15:  \"sub_auth_type\",\n\t16:  \"auth_payload\",\n\t17:  \"fixed_export_ip\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetURL() bool {\n\treturn p.URL != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetIcon() bool {\n\treturn p.Icon != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetAuthType() bool {\n\treturn p.AuthType != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetLocation() bool {\n\treturn p.Location != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetKey() bool {\n\treturn p.Key != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetServiceToken() bool {\n\treturn p.ServiceToken != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetOauthInfo() bool {\n\treturn p.OauthInfo != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetCommonParams() bool {\n\treturn p.CommonParams != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetCreationMethod() bool {\n\treturn p.CreationMethod != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetEditVersion() bool {\n\treturn p.EditVersion != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetPluginType() bool {\n\treturn p.PluginType != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetSubAuthType() bool {\n\treturn p.SubAuthType != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetAuthPayload() bool {\n\treturn p.AuthPayload != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetFixedExportIP() bool {\n\treturn p.FixedExportIP != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdatePluginMetaRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdatePluginMetaRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdatePluginMetaRequest[fieldId]))\n}\n\nfunc (p *UpdatePluginMetaRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_field := common.NewPluginIcon()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *common.AuthorizationType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.AuthorizationType(v)\n\t\t_field = &tmp\n\t}\n\tp.AuthType = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *common.AuthorizationServiceLocation\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.AuthorizationServiceLocation(v)\n\t\t_field = &tmp\n\t}\n\tp.Location = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ServiceToken = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OauthInfo = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField11(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[common.ParameterLocation][]*common.CommonParamSchema, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key common.ParameterLocation\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = common.ParameterLocation(v)\n\t\t}\n\t\t_, size, err := iprot.ReadListBegin()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_val := make([]*common.CommonParamSchema, 0, size)\n\t\tvalues := make([]common.CommonParamSchema, size)\n\t\tfor i := 0; i < size; i++ {\n\t\t\t_elem := &values[i]\n\t\t\t_elem.InitDefault()\n\n\t\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t_val = append(_val, _elem)\n\t\t}\n\t\tif err := iprot.ReadListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CommonParams = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *common.CreationMethod\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.CreationMethod(v)\n\t\t_field = &tmp\n\t}\n\tp.CreationMethod = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *common.PluginType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.PluginType(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginType = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubAuthType = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AuthPayload = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FixedExportIP = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdatePluginMetaRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePluginMetaRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdatePluginMetaRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetURL() {\n\t\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.URL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIcon() {\n\t\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Icon.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuthType() {\n\t\tif err = oprot.WriteFieldBegin(\"auth_type\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AuthType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLocation() {\n\t\tif err = oprot.WriteFieldBegin(\"location\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Location)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKey() {\n\t\tif err = oprot.WriteFieldBegin(\"key\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Key); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetServiceToken() {\n\t\tif err = oprot.WriteFieldBegin(\"service_token\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ServiceToken); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOauthInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"oauth_info\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OauthInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommonParams() {\n\t\tif err = oprot.WriteFieldBegin(\"common_params\", thrift.MAP, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.I32, thrift.LIST, len(p.CommonParams)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.CommonParams {\n\t\t\tif err := oprot.WriteI32(int32(k)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfor _, v := range v {\n\t\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreationMethod() {\n\t\tif err = oprot.WriteFieldBegin(\"creation_method\", thrift.I32, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.CreationMethod)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.EditVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginType() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_type\", thrift.I32, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubAuthType() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_auth_type\", thrift.I32, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.SubAuthType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAuthPayload() {\n\t\tif err = oprot.WriteFieldBegin(\"auth_payload\", thrift.STRING, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.AuthPayload); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFixedExportIP() {\n\t\tif err = oprot.WriteFieldBegin(\"fixed_export_ip\", thrift.BOOL, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.FixedExportIP); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdatePluginMetaRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdatePluginMetaRequest(%+v)\", *p)\n\n}\n\ntype UpdatePluginMetaResponse struct {\n\tCode        int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg         string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tEditVersion int32          `thrift:\"edit_version,3\" form:\"edit_version\" json:\"edit_version\" query:\"edit_version\"`\n\tBaseResp    *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewUpdatePluginMetaResponse() *UpdatePluginMetaResponse {\n\treturn &UpdatePluginMetaResponse{}\n}\n\nfunc (p *UpdatePluginMetaResponse) InitDefault() {\n}\n\nfunc (p *UpdatePluginMetaResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdatePluginMetaResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *UpdatePluginMetaResponse) GetEditVersion() (v int32) {\n\treturn p.EditVersion\n}\n\nvar UpdatePluginMetaResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdatePluginMetaResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdatePluginMetaResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdatePluginMetaResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"edit_version\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdatePluginMetaResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdatePluginMetaResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdatePluginMetaResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdatePluginMetaResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *UpdatePluginMetaResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdatePluginMetaResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePluginMetaResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdatePluginMetaResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.EditVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdatePluginMetaResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdatePluginMetaResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdatePluginMetaResponse(%+v)\", *p)\n\n}\n\ntype PublishPluginRequest struct {\n\tPluginID int64 `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\t// Privacy Statement Status\n\tPrivacyStatus bool `thrift:\"privacy_status,2\" form:\"privacy_status\" json:\"privacy_status\" query:\"privacy_status\"`\n\t// Privacy Statement Content\n\tPrivacyInfo string     `thrift:\"privacy_info,3\" form:\"privacy_info\" json:\"privacy_info\" query:\"privacy_info\"`\n\tVersionName string     `thrift:\"version_name,4\" form:\"version_name\" json:\"version_name\" query:\"version_name\"`\n\tVersionDesc string     `thrift:\"version_desc,5\" form:\"version_desc\" json:\"version_desc\" query:\"version_desc\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewPublishPluginRequest() *PublishPluginRequest {\n\treturn &PublishPluginRequest{}\n}\n\nfunc (p *PublishPluginRequest) InitDefault() {\n}\n\nfunc (p *PublishPluginRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *PublishPluginRequest) GetPrivacyStatus() (v bool) {\n\treturn p.PrivacyStatus\n}\n\nfunc (p *PublishPluginRequest) GetPrivacyInfo() (v string) {\n\treturn p.PrivacyInfo\n}\n\nfunc (p *PublishPluginRequest) GetVersionName() (v string) {\n\treturn p.VersionName\n}\n\nfunc (p *PublishPluginRequest) GetVersionDesc() (v string) {\n\treturn p.VersionDesc\n}\n\nvar PublishPluginRequest_Base_DEFAULT *base.Base\n\nfunc (p *PublishPluginRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn PublishPluginRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_PublishPluginRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"privacy_status\",\n\t3:   \"privacy_info\",\n\t4:   \"version_name\",\n\t5:   \"version_desc\",\n\t255: \"Base\",\n}\n\nfunc (p *PublishPluginRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *PublishPluginRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishPluginRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PublishPluginRequest[fieldId]))\n}\n\nfunc (p *PublishPluginRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *PublishPluginRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PrivacyStatus = _field\n\treturn nil\n}\nfunc (p *PublishPluginRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PrivacyInfo = _field\n\treturn nil\n}\nfunc (p *PublishPluginRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionName = _field\n\treturn nil\n}\nfunc (p *PublishPluginRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionDesc = _field\n\treturn nil\n}\nfunc (p *PublishPluginRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *PublishPluginRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishPluginRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishPluginRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishPluginRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"privacy_status\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.PrivacyStatus); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishPluginRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"privacy_info\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PrivacyInfo); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishPluginRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PublishPluginRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_desc\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PublishPluginRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *PublishPluginRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishPluginRequest(%+v)\", *p)\n\n}\n\ntype PublishPluginResponse struct {\n\tCode      int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg       string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tVersionTs string         `thrift:\"version_ts,3\" form:\"version_ts\" json:\"version_ts\" query:\"version_ts\"`\n\tBaseResp  *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewPublishPluginResponse() *PublishPluginResponse {\n\treturn &PublishPluginResponse{}\n}\n\nfunc (p *PublishPluginResponse) InitDefault() {\n}\n\nfunc (p *PublishPluginResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *PublishPluginResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *PublishPluginResponse) GetVersionTs() (v string) {\n\treturn p.VersionTs\n}\n\nvar PublishPluginResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *PublishPluginResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn PublishPluginResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_PublishPluginResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"version_ts\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *PublishPluginResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *PublishPluginResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishPluginResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishPluginResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PublishPluginResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *PublishPluginResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionTs = _field\n\treturn nil\n}\nfunc (p *PublishPluginResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *PublishPluginResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishPluginResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishPluginResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishPluginResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishPluginResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_ts\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionTs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishPluginResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *PublishPluginResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishPluginResponse(%+v)\", *p)\n\n}\n\n// Bot reference plugin\ntype GetBotDefaultParamsRequest struct {\n\tSpaceID                int64                      `thrift:\"space_id,1\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\tBotID                  int64                      `thrift:\"bot_id,2\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\tDevID                  string                     `thrift:\"dev_id,3\" form:\"dev_id\" json:\"dev_id\" query:\"dev_id\"`\n\tPluginID               int64                      `thrift:\"plugin_id,4\" form:\"plugin_id\" json:\"plugin_id,string\" query:\"plugin_id\"`\n\tAPIName                string                     `thrift:\"api_name,5\" form:\"api_name\" json:\"api_name\" query:\"api_name\"`\n\tPluginReferrerID       string                     `thrift:\"plugin_referrer_id,6\" form:\"plugin_referrer_id\" json:\"plugin_referrer_id\" query:\"plugin_referrer_id\"`\n\tPluginReferrerScene    common.PluginReferrerScene `thrift:\"plugin_referrer_scene,7\" form:\"plugin_referrer_scene\" json:\"plugin_referrer_scene\" query:\"plugin_referrer_scene\"`\n\tPluginIsDebug          bool                       `thrift:\"plugin_is_debug,8\" form:\"plugin_is_debug\" json:\"plugin_is_debug\" query:\"plugin_is_debug\"`\n\tWorkflowID             string                     `thrift:\"workflow_id,9\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tPluginPublishVersionTs *string                    `thrift:\"plugin_publish_version_ts,10,optional\" form:\"plugin_publish_version_ts\" json:\"plugin_publish_version_ts,omitempty\" query:\"plugin_publish_version_ts\"`\n\tBase                   *base.Base                 `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetBotDefaultParamsRequest() *GetBotDefaultParamsRequest {\n\treturn &GetBotDefaultParamsRequest{}\n}\n\nfunc (p *GetBotDefaultParamsRequest) InitDefault() {\n}\n\nfunc (p *GetBotDefaultParamsRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *GetBotDefaultParamsRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *GetBotDefaultParamsRequest) GetDevID() (v string) {\n\treturn p.DevID\n}\n\nfunc (p *GetBotDefaultParamsRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *GetBotDefaultParamsRequest) GetAPIName() (v string) {\n\treturn p.APIName\n}\n\nfunc (p *GetBotDefaultParamsRequest) GetPluginReferrerID() (v string) {\n\treturn p.PluginReferrerID\n}\n\nfunc (p *GetBotDefaultParamsRequest) GetPluginReferrerScene() (v common.PluginReferrerScene) {\n\treturn p.PluginReferrerScene\n}\n\nfunc (p *GetBotDefaultParamsRequest) GetPluginIsDebug() (v bool) {\n\treturn p.PluginIsDebug\n}\n\nfunc (p *GetBotDefaultParamsRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar GetBotDefaultParamsRequest_PluginPublishVersionTs_DEFAULT string\n\nfunc (p *GetBotDefaultParamsRequest) GetPluginPublishVersionTs() (v string) {\n\tif !p.IsSetPluginPublishVersionTs() {\n\t\treturn GetBotDefaultParamsRequest_PluginPublishVersionTs_DEFAULT\n\t}\n\treturn *p.PluginPublishVersionTs\n}\n\nvar GetBotDefaultParamsRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetBotDefaultParamsRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetBotDefaultParamsRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetBotDefaultParamsRequest = map[int16]string{\n\t1:   \"space_id\",\n\t2:   \"bot_id\",\n\t3:   \"dev_id\",\n\t4:   \"plugin_id\",\n\t5:   \"api_name\",\n\t6:   \"plugin_referrer_id\",\n\t7:   \"plugin_referrer_scene\",\n\t8:   \"plugin_is_debug\",\n\t9:   \"workflow_id\",\n\t10:  \"plugin_publish_version_ts\",\n\t255: \"Base\",\n}\n\nfunc (p *GetBotDefaultParamsRequest) IsSetPluginPublishVersionTs() bool {\n\treturn p.PluginPublishVersionTs != nil\n}\n\nfunc (p *GetBotDefaultParamsRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetBotDefaultParamsRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetBotDefaultParamsRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetBotDefaultParamsRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DevID = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIName = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginReferrerID = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field common.PluginReferrerScene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.PluginReferrerScene(v)\n\t}\n\tp.PluginReferrerScene = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginIsDebug = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginPublishVersionTs = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetBotDefaultParamsRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotDefaultParamsRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetBotDefaultParamsRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dev_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DevID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_name\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_referrer_id\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginReferrerID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_referrer_scene\", thrift.I32, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PluginReferrerScene)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_is_debug\", thrift.BOOL, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.PluginIsDebug); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginPublishVersionTs() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_publish_version_ts\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PluginPublishVersionTs); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetBotDefaultParamsRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetBotDefaultParamsRequest(%+v)\", *p)\n\n}\n\ntype GetBotDefaultParamsResponse struct {\n\tCode           int64                  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg            string                 `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tRequestParams  []*common.APIParameter `thrift:\"request_params,3\" form:\"request_params\" json:\"request_params\" query:\"request_params\"`\n\tResponseParams []*common.APIParameter `thrift:\"response_params,4\" form:\"response_params\" json:\"response_params\" query:\"response_params\"`\n\tResponseStyle  *common.ResponseStyle  `thrift:\"response_style,5\" form:\"response_style\" json:\"response_style\" query:\"response_style\"`\n\tBaseResp       *base.BaseResp         `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetBotDefaultParamsResponse() *GetBotDefaultParamsResponse {\n\treturn &GetBotDefaultParamsResponse{}\n}\n\nfunc (p *GetBotDefaultParamsResponse) InitDefault() {\n}\n\nfunc (p *GetBotDefaultParamsResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetBotDefaultParamsResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetBotDefaultParamsResponse) GetRequestParams() (v []*common.APIParameter) {\n\treturn p.RequestParams\n}\n\nfunc (p *GetBotDefaultParamsResponse) GetResponseParams() (v []*common.APIParameter) {\n\treturn p.ResponseParams\n}\n\nvar GetBotDefaultParamsResponse_ResponseStyle_DEFAULT *common.ResponseStyle\n\nfunc (p *GetBotDefaultParamsResponse) GetResponseStyle() (v *common.ResponseStyle) {\n\tif !p.IsSetResponseStyle() {\n\t\treturn GetBotDefaultParamsResponse_ResponseStyle_DEFAULT\n\t}\n\treturn p.ResponseStyle\n}\n\nvar GetBotDefaultParamsResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetBotDefaultParamsResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetBotDefaultParamsResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetBotDefaultParamsResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"request_params\",\n\t4:   \"response_params\",\n\t5:   \"response_style\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetBotDefaultParamsResponse) IsSetResponseStyle() bool {\n\treturn p.ResponseStyle != nil\n}\n\nfunc (p *GetBotDefaultParamsResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetBotDefaultParamsResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetBotDefaultParamsResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetBotDefaultParamsResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.APIParameter, 0, size)\n\tvalues := make([]common.APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RequestParams = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.APIParameter, 0, size)\n\tvalues := make([]common.APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseParams = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsResponse) ReadField5(iprot thrift.TProtocol) error {\n\t_field := common.NewResponseStyle()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseStyle = _field\n\treturn nil\n}\nfunc (p *GetBotDefaultParamsResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetBotDefaultParamsResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotDefaultParamsResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetBotDefaultParamsResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request_params\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.RequestParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.RequestParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_params\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResponseParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResponseParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_style\", thrift.STRUCT, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ResponseStyle.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetBotDefaultParamsResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetBotDefaultParamsResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetBotDefaultParamsResponse(%+v)\", *p)\n\n}\n\ntype UpdateBotDefaultParamsRequest struct {\n\tSpaceID             int64                      `thrift:\"space_id,1\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\tBotID               int64                      `thrift:\"bot_id,2\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\tDevID               string                     `thrift:\"dev_id,3\" form:\"dev_id\" json:\"dev_id\" query:\"dev_id\"`\n\tPluginID            int64                      `thrift:\"plugin_id,4\" form:\"plugin_id\" json:\"plugin_id,string\" query:\"plugin_id\"`\n\tAPIName             string                     `thrift:\"api_name,5\" form:\"api_name\" json:\"api_name\" query:\"api_name\"`\n\tRequestParams       []*common.APIParameter     `thrift:\"request_params,6\" form:\"request_params\" json:\"request_params\" query:\"request_params\"`\n\tResponseParams      []*common.APIParameter     `thrift:\"response_params,7\" form:\"response_params\" json:\"response_params\" query:\"response_params\"`\n\tPluginReferrerID    string                     `thrift:\"plugin_referrer_id,8\" form:\"plugin_referrer_id\" json:\"plugin_referrer_id\" query:\"plugin_referrer_id\"`\n\tPluginReferrerScene common.PluginReferrerScene `thrift:\"plugin_referrer_scene,9\" form:\"plugin_referrer_scene\" json:\"plugin_referrer_scene\" query:\"plugin_referrer_scene\"`\n\tResponseStyle       *common.ResponseStyle      `thrift:\"response_style,10\" form:\"response_style\" json:\"response_style\" query:\"response_style\"`\n\tWorkflowID          string                     `thrift:\"workflow_id,11\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tBase                *base.Base                 `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateBotDefaultParamsRequest() *UpdateBotDefaultParamsRequest {\n\treturn &UpdateBotDefaultParamsRequest{}\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) InitDefault() {\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) GetDevID() (v string) {\n\treturn p.DevID\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) GetAPIName() (v string) {\n\treturn p.APIName\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) GetRequestParams() (v []*common.APIParameter) {\n\treturn p.RequestParams\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) GetResponseParams() (v []*common.APIParameter) {\n\treturn p.ResponseParams\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) GetPluginReferrerID() (v string) {\n\treturn p.PluginReferrerID\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) GetPluginReferrerScene() (v common.PluginReferrerScene) {\n\treturn p.PluginReferrerScene\n}\n\nvar UpdateBotDefaultParamsRequest_ResponseStyle_DEFAULT *common.ResponseStyle\n\nfunc (p *UpdateBotDefaultParamsRequest) GetResponseStyle() (v *common.ResponseStyle) {\n\tif !p.IsSetResponseStyle() {\n\t\treturn UpdateBotDefaultParamsRequest_ResponseStyle_DEFAULT\n\t}\n\treturn p.ResponseStyle\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar UpdateBotDefaultParamsRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateBotDefaultParamsRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateBotDefaultParamsRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateBotDefaultParamsRequest = map[int16]string{\n\t1:   \"space_id\",\n\t2:   \"bot_id\",\n\t3:   \"dev_id\",\n\t4:   \"plugin_id\",\n\t5:   \"api_name\",\n\t6:   \"request_params\",\n\t7:   \"response_params\",\n\t8:   \"plugin_referrer_id\",\n\t9:   \"plugin_referrer_scene\",\n\t10:  \"response_style\",\n\t11:  \"workflow_id\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) IsSetResponseStyle() bool {\n\treturn p.ResponseStyle != nil\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateBotDefaultParamsRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DevID = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIName = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsRequest) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.APIParameter, 0, size)\n\tvalues := make([]common.APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RequestParams = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsRequest) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.APIParameter, 0, size)\n\tvalues := make([]common.APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseParams = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginReferrerID = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field common.PluginReferrerScene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.PluginReferrerScene(v)\n\t}\n\tp.PluginReferrerScene = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsRequest) ReadField10(iprot thrift.TProtocol) error {\n\t_field := common.NewResponseStyle()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseStyle = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateBotDefaultParamsRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dev_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DevID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_name\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request_params\", thrift.LIST, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.RequestParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.RequestParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_params\", thrift.LIST, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResponseParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResponseParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_referrer_id\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginReferrerID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_referrer_scene\", thrift.I32, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PluginReferrerScene)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_style\", thrift.STRUCT, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ResponseStyle.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateBotDefaultParamsRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateBotDefaultParamsRequest(%+v)\", *p)\n\n}\n\ntype UpdateBotDefaultParamsResponse struct {\n\tCode     int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewUpdateBotDefaultParamsResponse() *UpdateBotDefaultParamsResponse {\n\treturn &UpdateBotDefaultParamsResponse{}\n}\n\nfunc (p *UpdateBotDefaultParamsResponse) InitDefault() {\n}\n\nfunc (p *UpdateBotDefaultParamsResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateBotDefaultParamsResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateBotDefaultParamsResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateBotDefaultParamsResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateBotDefaultParamsResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateBotDefaultParamsResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateBotDefaultParamsResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateBotDefaultParamsResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateBotDefaultParamsResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateBotDefaultParamsResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateBotDefaultParamsResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateBotDefaultParamsResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateBotDefaultParamsResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateBotDefaultParamsResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateBotDefaultParamsResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateBotDefaultParamsResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateBotDefaultParamsResponse(%+v)\", *p)\n\n}\n\ntype DeleteBotDefaultParamsRequest struct {\n\tBotID    int64  `thrift:\"bot_id,1\" form:\"bot_id\" json:\"bot_id,string\" query:\"bot_id\"`\n\tDevID    string `thrift:\"dev_id,2\" form:\"dev_id\" json:\"dev_id\" query:\"dev_id\"`\n\tPluginID int64  `thrift:\"plugin_id,3\" form:\"plugin_id\" json:\"plugin_id,string\" query:\"plugin_id\"`\n\tAPIName  string `thrift:\"api_name,4\" form:\"api_name\" json:\"api_name\" query:\"api_name\"`\n\t// Bot removal tool when: DeleteBot = false, APIName to set\n\t// Delete bot: DeleteBot = true, APIName is empty\n\tDeleteBot           bool                       `thrift:\"delete_bot,5\" form:\"delete_bot\" json:\"delete_bot\" query:\"delete_bot\"`\n\tSpaceID             int64                      `thrift:\"space_id,6\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\tPluginReferrerID    string                     `thrift:\"plugin_referrer_id,7\" form:\"plugin_referrer_id\" json:\"plugin_referrer_id\" query:\"plugin_referrer_id\"`\n\tPluginReferrerScene common.PluginReferrerScene `thrift:\"plugin_referrer_scene,8\" form:\"plugin_referrer_scene\" json:\"plugin_referrer_scene\" query:\"plugin_referrer_scene\"`\n\tWorkflowID          string                     `thrift:\"workflow_id,9\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tAPIID               int64                      `thrift:\"api_id,10\" form:\"api_id\" json:\"api_id,string\" query:\"api_id\"`\n\tBase                *base.Base                 `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteBotDefaultParamsRequest() *DeleteBotDefaultParamsRequest {\n\treturn &DeleteBotDefaultParamsRequest{}\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) InitDefault() {\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) GetDevID() (v string) {\n\treturn p.DevID\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) GetAPIName() (v string) {\n\treturn p.APIName\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) GetDeleteBot() (v bool) {\n\treturn p.DeleteBot\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) GetPluginReferrerID() (v string) {\n\treturn p.PluginReferrerID\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) GetPluginReferrerScene() (v common.PluginReferrerScene) {\n\treturn p.PluginReferrerScene\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) GetAPIID() (v int64) {\n\treturn p.APIID\n}\n\nvar DeleteBotDefaultParamsRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteBotDefaultParamsRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteBotDefaultParamsRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteBotDefaultParamsRequest = map[int16]string{\n\t1:   \"bot_id\",\n\t2:   \"dev_id\",\n\t3:   \"plugin_id\",\n\t4:   \"api_name\",\n\t5:   \"delete_bot\",\n\t6:   \"space_id\",\n\t7:   \"plugin_referrer_id\",\n\t8:   \"plugin_referrer_scene\",\n\t9:   \"workflow_id\",\n\t10:  \"api_id\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteBotDefaultParamsRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *DeleteBotDefaultParamsRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DevID = _field\n\treturn nil\n}\nfunc (p *DeleteBotDefaultParamsRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *DeleteBotDefaultParamsRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIName = _field\n\treturn nil\n}\nfunc (p *DeleteBotDefaultParamsRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DeleteBot = _field\n\treturn nil\n}\nfunc (p *DeleteBotDefaultParamsRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *DeleteBotDefaultParamsRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginReferrerID = _field\n\treturn nil\n}\nfunc (p *DeleteBotDefaultParamsRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field common.PluginReferrerScene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.PluginReferrerScene(v)\n\t}\n\tp.PluginReferrerScene = _field\n\treturn nil\n}\nfunc (p *DeleteBotDefaultParamsRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *DeleteBotDefaultParamsRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *DeleteBotDefaultParamsRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteBotDefaultParamsRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteBotDefaultParamsRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dev_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DevID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteBotDefaultParamsRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DeleteBotDefaultParamsRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DeleteBotDefaultParamsRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"delete_bot\", thrift.BOOL, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.DeleteBot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DeleteBotDefaultParamsRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DeleteBotDefaultParamsRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_referrer_id\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginReferrerID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *DeleteBotDefaultParamsRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_referrer_scene\", thrift.I32, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PluginReferrerScene)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *DeleteBotDefaultParamsRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *DeleteBotDefaultParamsRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *DeleteBotDefaultParamsRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteBotDefaultParamsRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteBotDefaultParamsRequest(%+v)\", *p)\n\n}\n\ntype DeleteBotDefaultParamsResponse struct {\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewDeleteBotDefaultParamsResponse() *DeleteBotDefaultParamsResponse {\n\treturn &DeleteBotDefaultParamsResponse{}\n}\n\nfunc (p *DeleteBotDefaultParamsResponse) InitDefault() {\n}\n\nvar DeleteBotDefaultParamsResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteBotDefaultParamsResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteBotDefaultParamsResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteBotDefaultParamsResponse = map[int16]string{\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteBotDefaultParamsResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteBotDefaultParamsResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteBotDefaultParamsResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteBotDefaultParamsResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteBotDefaultParamsResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteBotDefaultParamsResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteBotDefaultParamsResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteBotDefaultParamsResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteBotDefaultParamsResponse(%+v)\", *p)\n\n}\n\ntype UpdateAPIRequest struct {\n\tPluginID int64   `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\tAPIID    int64   `thrift:\"api_id,2,required\" form:\"api_id,required\" json:\"api_id,string,required\" query:\"api_id,required\"`\n\tName     *string `thrift:\"name,3,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tDesc     *string `thrift:\"desc,4,optional\" form:\"desc\" json:\"desc,omitempty\" query:\"desc\"`\n\t// http subURL of tool\n\tPath *string `thrift:\"path,5,optional\" form:\"path\" json:\"path,omitempty\" query:\"path\"`\n\t// http method of tool\n\tMethod *common.APIMethod `thrift:\"method,6,optional\" form:\"method\" json:\"method,omitempty\" query:\"method\"`\n\t// request parameters of tool\n\tRequestParams []*common.APIParameter `thrift:\"request_params,7,optional\" form:\"request_params\" json:\"request_params,omitempty\" query:\"request_params\"`\n\t// response parameters of tool\n\tResponseParams []*common.APIParameter `thrift:\"response_params,8,optional\" form:\"response_params\" json:\"response_params,omitempty\" query:\"response_params\"`\n\t// whether disable tool\n\tDisabled *bool `thrift:\"disabled,9,optional\" form:\"disabled\" json:\"disabled,omitempty\" query:\"disabled\"`\n\t// ignore\n\tAPIExtend *common.APIExtend `thrift:\"api_extend,10,optional\" form:\"api_extend\" json:\"api_extend,omitempty\" query:\"api_extend\"`\n\t// ignore\n\tEditVersion *int32 `thrift:\"edit_version,11,optional\" form:\"edit_version\" json:\"edit_version,omitempty\" query:\"edit_version\"`\n\t// whether save example\n\tSaveExample  *bool                `thrift:\"save_example,12,optional\" form:\"save_example\" json:\"save_example,omitempty\" query:\"save_example\"`\n\tDebugExample *common.DebugExample `thrift:\"debug_example,13,optional\" form:\"debug_example\" json:\"debug_example,omitempty\" query:\"debug_example\"`\n\t// ignore\n\tFunctionName *string    `thrift:\"function_name,14,optional\" form:\"function_name\" json:\"function_name,omitempty\" query:\"function_name\"`\n\tBase         *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateAPIRequest() *UpdateAPIRequest {\n\treturn &UpdateAPIRequest{}\n}\n\nfunc (p *UpdateAPIRequest) InitDefault() {\n}\n\nfunc (p *UpdateAPIRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *UpdateAPIRequest) GetAPIID() (v int64) {\n\treturn p.APIID\n}\n\nvar UpdateAPIRequest_Name_DEFAULT string\n\nfunc (p *UpdateAPIRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn UpdateAPIRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar UpdateAPIRequest_Desc_DEFAULT string\n\nfunc (p *UpdateAPIRequest) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn UpdateAPIRequest_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar UpdateAPIRequest_Path_DEFAULT string\n\nfunc (p *UpdateAPIRequest) GetPath() (v string) {\n\tif !p.IsSetPath() {\n\t\treturn UpdateAPIRequest_Path_DEFAULT\n\t}\n\treturn *p.Path\n}\n\nvar UpdateAPIRequest_Method_DEFAULT common.APIMethod\n\nfunc (p *UpdateAPIRequest) GetMethod() (v common.APIMethod) {\n\tif !p.IsSetMethod() {\n\t\treturn UpdateAPIRequest_Method_DEFAULT\n\t}\n\treturn *p.Method\n}\n\nvar UpdateAPIRequest_RequestParams_DEFAULT []*common.APIParameter\n\nfunc (p *UpdateAPIRequest) GetRequestParams() (v []*common.APIParameter) {\n\tif !p.IsSetRequestParams() {\n\t\treturn UpdateAPIRequest_RequestParams_DEFAULT\n\t}\n\treturn p.RequestParams\n}\n\nvar UpdateAPIRequest_ResponseParams_DEFAULT []*common.APIParameter\n\nfunc (p *UpdateAPIRequest) GetResponseParams() (v []*common.APIParameter) {\n\tif !p.IsSetResponseParams() {\n\t\treturn UpdateAPIRequest_ResponseParams_DEFAULT\n\t}\n\treturn p.ResponseParams\n}\n\nvar UpdateAPIRequest_Disabled_DEFAULT bool\n\nfunc (p *UpdateAPIRequest) GetDisabled() (v bool) {\n\tif !p.IsSetDisabled() {\n\t\treturn UpdateAPIRequest_Disabled_DEFAULT\n\t}\n\treturn *p.Disabled\n}\n\nvar UpdateAPIRequest_APIExtend_DEFAULT *common.APIExtend\n\nfunc (p *UpdateAPIRequest) GetAPIExtend() (v *common.APIExtend) {\n\tif !p.IsSetAPIExtend() {\n\t\treturn UpdateAPIRequest_APIExtend_DEFAULT\n\t}\n\treturn p.APIExtend\n}\n\nvar UpdateAPIRequest_EditVersion_DEFAULT int32\n\nfunc (p *UpdateAPIRequest) GetEditVersion() (v int32) {\n\tif !p.IsSetEditVersion() {\n\t\treturn UpdateAPIRequest_EditVersion_DEFAULT\n\t}\n\treturn *p.EditVersion\n}\n\nvar UpdateAPIRequest_SaveExample_DEFAULT bool\n\nfunc (p *UpdateAPIRequest) GetSaveExample() (v bool) {\n\tif !p.IsSetSaveExample() {\n\t\treturn UpdateAPIRequest_SaveExample_DEFAULT\n\t}\n\treturn *p.SaveExample\n}\n\nvar UpdateAPIRequest_DebugExample_DEFAULT *common.DebugExample\n\nfunc (p *UpdateAPIRequest) GetDebugExample() (v *common.DebugExample) {\n\tif !p.IsSetDebugExample() {\n\t\treturn UpdateAPIRequest_DebugExample_DEFAULT\n\t}\n\treturn p.DebugExample\n}\n\nvar UpdateAPIRequest_FunctionName_DEFAULT string\n\nfunc (p *UpdateAPIRequest) GetFunctionName() (v string) {\n\tif !p.IsSetFunctionName() {\n\t\treturn UpdateAPIRequest_FunctionName_DEFAULT\n\t}\n\treturn *p.FunctionName\n}\n\nvar UpdateAPIRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateAPIRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateAPIRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateAPIRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"api_id\",\n\t3:   \"name\",\n\t4:   \"desc\",\n\t5:   \"path\",\n\t6:   \"method\",\n\t7:   \"request_params\",\n\t8:   \"response_params\",\n\t9:   \"disabled\",\n\t10:  \"api_extend\",\n\t11:  \"edit_version\",\n\t12:  \"save_example\",\n\t13:  \"debug_example\",\n\t14:  \"function_name\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateAPIRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetPath() bool {\n\treturn p.Path != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetMethod() bool {\n\treturn p.Method != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetRequestParams() bool {\n\treturn p.RequestParams != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetResponseParams() bool {\n\treturn p.ResponseParams != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetDisabled() bool {\n\treturn p.Disabled != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetAPIExtend() bool {\n\treturn p.APIExtend != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetEditVersion() bool {\n\treturn p.EditVersion != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetSaveExample() bool {\n\treturn p.SaveExample != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetDebugExample() bool {\n\treturn p.DebugExample != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetFunctionName() bool {\n\treturn p.FunctionName != nil\n}\n\nfunc (p *UpdateAPIRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateAPIRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\tvar issetAPIID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetAPIID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetAPIID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateAPIRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateAPIRequest[fieldId]))\n}\n\nfunc (p *UpdateAPIRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Path = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *common.APIMethod\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.APIMethod(v)\n\t\t_field = &tmp\n\t}\n\tp.Method = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.APIParameter, 0, size)\n\tvalues := make([]common.APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RequestParams = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.APIParameter, 0, size)\n\tvalues := make([]common.APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseParams = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Disabled = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField10(iprot thrift.TProtocol) error {\n\t_field := common.NewAPIExtend()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.APIExtend = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SaveExample = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField13(iprot thrift.TProtocol) error {\n\t_field := common.NewDebugExample()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DebugExample = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FunctionName = _field\n\treturn nil\n}\nfunc (p *UpdateAPIRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateAPIRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateAPIRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateAPIRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPath() {\n\t\tif err = oprot.WriteFieldBegin(\"path\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Path); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMethod() {\n\t\tif err = oprot.WriteFieldBegin(\"method\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Method)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRequestParams() {\n\t\tif err = oprot.WriteFieldBegin(\"request_params\", thrift.LIST, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.RequestParams)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.RequestParams {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResponseParams() {\n\t\tif err = oprot.WriteFieldBegin(\"response_params\", thrift.LIST, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResponseParams)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ResponseParams {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDisabled() {\n\t\tif err = oprot.WriteFieldBegin(\"disabled\", thrift.BOOL, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Disabled); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAPIExtend() {\n\t\tif err = oprot.WriteFieldBegin(\"api_extend\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.APIExtend.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.EditVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSaveExample() {\n\t\tif err = oprot.WriteFieldBegin(\"save_example\", thrift.BOOL, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.SaveExample); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDebugExample() {\n\t\tif err = oprot.WriteFieldBegin(\"debug_example\", thrift.STRUCT, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.DebugExample.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFunctionName() {\n\t\tif err = oprot.WriteFieldBegin(\"function_name\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FunctionName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *UpdateAPIRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateAPIRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateAPIRequest(%+v)\", *p)\n\n}\n\ntype UpdateAPIResponse struct {\n\tCode        int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg         string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tEditVersion int32          `thrift:\"edit_version,3\" form:\"edit_version\" json:\"edit_version\" query:\"edit_version\"`\n\tBaseResp    *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewUpdateAPIResponse() *UpdateAPIResponse {\n\treturn &UpdateAPIResponse{}\n}\n\nfunc (p *UpdateAPIResponse) InitDefault() {\n}\n\nfunc (p *UpdateAPIResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateAPIResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *UpdateAPIResponse) GetEditVersion() (v int32) {\n\treturn p.EditVersion\n}\n\nvar UpdateAPIResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateAPIResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateAPIResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateAPIResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"edit_version\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateAPIResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateAPIResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateAPIResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UpdateAPIResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateAPIResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateAPIResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *UpdateAPIResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateAPIResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateAPIResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateAPIResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateAPIResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateAPIResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.EditVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateAPIResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateAPIResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateAPIResponse(%+v)\", *p)\n\n}\n\ntype DelPluginRequest struct {\n\tPluginID int64      `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id,string\" query:\"plugin_id\"`\n\tBase     *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDelPluginRequest() *DelPluginRequest {\n\treturn &DelPluginRequest{}\n}\n\nfunc (p *DelPluginRequest) InitDefault() {\n}\n\nfunc (p *DelPluginRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nvar DelPluginRequest_Base_DEFAULT *base.Base\n\nfunc (p *DelPluginRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DelPluginRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DelPluginRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t255: \"Base\",\n}\n\nfunc (p *DelPluginRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DelPluginRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DelPluginRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DelPluginRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *DelPluginRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DelPluginRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DelPluginRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DelPluginRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DelPluginRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DelPluginRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DelPluginRequest(%+v)\", *p)\n\n}\n\ntype DelPluginResponse struct {\n\tCode     int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewDelPluginResponse() *DelPluginResponse {\n\treturn &DelPluginResponse{}\n}\n\nfunc (p *DelPluginResponse) InitDefault() {\n}\n\nfunc (p *DelPluginResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DelPluginResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DelPluginResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DelPluginResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DelPluginResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DelPluginResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DelPluginResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DelPluginResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DelPluginResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DelPluginResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DelPluginResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DelPluginResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DelPluginResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DelPluginResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DelPluginResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DelPluginResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DelPluginResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DelPluginResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DelPluginResponse(%+v)\", *p)\n\n}\n\ntype CreateAPIRequest struct {\n\tPluginID int64 `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\t// tool name\n\tName string `thrift:\"name,2,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\t// tool description\n\tDesc string `thrift:\"desc,3,required\" form:\"desc,required\" json:\"desc,required\" query:\"desc,required\"`\n\t// http subURL of tool\n\tPath *string `thrift:\"path,4,optional\" form:\"path\" json:\"path,omitempty\" query:\"path\"`\n\t// http method of tool\n\tMethod *common.APIMethod `thrift:\"method,5,optional\" form:\"method\" json:\"method,omitempty\" query:\"method\"`\n\t// ignore\n\tAPIExtend *common.APIExtend `thrift:\"api_extend,6,optional\" form:\"api_extend\" json:\"api_extend,omitempty\" query:\"api_extend\"`\n\t// ignore\n\tRequestParams []*common.APIParameter `thrift:\"request_params,7,optional\" form:\"request_params\" json:\"request_params,omitempty\" query:\"request_params\"`\n\t// ignore\n\tResponseParams []*common.APIParameter `thrift:\"response_params,8,optional\" form:\"response_params\" json:\"response_params,omitempty\" query:\"response_params\"`\n\t// ignore\n\tDisabled *bool `thrift:\"disabled,9,optional\" form:\"disabled\" json:\"disabled,omitempty\" query:\"disabled\"`\n\t// ignore\n\tEditVersion *int32 `thrift:\"edit_version,10,optional\" form:\"edit_version\" json:\"edit_version,omitempty\" query:\"edit_version\"`\n\t// ignore\n\tFunctionName *string    `thrift:\"function_name,11,optional\" form:\"function_name\" json:\"function_name,omitempty\" query:\"function_name\"`\n\tBase         *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCreateAPIRequest() *CreateAPIRequest {\n\treturn &CreateAPIRequest{}\n}\n\nfunc (p *CreateAPIRequest) InitDefault() {\n}\n\nfunc (p *CreateAPIRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *CreateAPIRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *CreateAPIRequest) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nvar CreateAPIRequest_Path_DEFAULT string\n\nfunc (p *CreateAPIRequest) GetPath() (v string) {\n\tif !p.IsSetPath() {\n\t\treturn CreateAPIRequest_Path_DEFAULT\n\t}\n\treturn *p.Path\n}\n\nvar CreateAPIRequest_Method_DEFAULT common.APIMethod\n\nfunc (p *CreateAPIRequest) GetMethod() (v common.APIMethod) {\n\tif !p.IsSetMethod() {\n\t\treturn CreateAPIRequest_Method_DEFAULT\n\t}\n\treturn *p.Method\n}\n\nvar CreateAPIRequest_APIExtend_DEFAULT *common.APIExtend\n\nfunc (p *CreateAPIRequest) GetAPIExtend() (v *common.APIExtend) {\n\tif !p.IsSetAPIExtend() {\n\t\treturn CreateAPIRequest_APIExtend_DEFAULT\n\t}\n\treturn p.APIExtend\n}\n\nvar CreateAPIRequest_RequestParams_DEFAULT []*common.APIParameter\n\nfunc (p *CreateAPIRequest) GetRequestParams() (v []*common.APIParameter) {\n\tif !p.IsSetRequestParams() {\n\t\treturn CreateAPIRequest_RequestParams_DEFAULT\n\t}\n\treturn p.RequestParams\n}\n\nvar CreateAPIRequest_ResponseParams_DEFAULT []*common.APIParameter\n\nfunc (p *CreateAPIRequest) GetResponseParams() (v []*common.APIParameter) {\n\tif !p.IsSetResponseParams() {\n\t\treturn CreateAPIRequest_ResponseParams_DEFAULT\n\t}\n\treturn p.ResponseParams\n}\n\nvar CreateAPIRequest_Disabled_DEFAULT bool\n\nfunc (p *CreateAPIRequest) GetDisabled() (v bool) {\n\tif !p.IsSetDisabled() {\n\t\treturn CreateAPIRequest_Disabled_DEFAULT\n\t}\n\treturn *p.Disabled\n}\n\nvar CreateAPIRequest_EditVersion_DEFAULT int32\n\nfunc (p *CreateAPIRequest) GetEditVersion() (v int32) {\n\tif !p.IsSetEditVersion() {\n\t\treturn CreateAPIRequest_EditVersion_DEFAULT\n\t}\n\treturn *p.EditVersion\n}\n\nvar CreateAPIRequest_FunctionName_DEFAULT string\n\nfunc (p *CreateAPIRequest) GetFunctionName() (v string) {\n\tif !p.IsSetFunctionName() {\n\t\treturn CreateAPIRequest_FunctionName_DEFAULT\n\t}\n\treturn *p.FunctionName\n}\n\nvar CreateAPIRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateAPIRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateAPIRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateAPIRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"name\",\n\t3:   \"desc\",\n\t4:   \"path\",\n\t5:   \"method\",\n\t6:   \"api_extend\",\n\t7:   \"request_params\",\n\t8:   \"response_params\",\n\t9:   \"disabled\",\n\t10:  \"edit_version\",\n\t11:  \"function_name\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateAPIRequest) IsSetPath() bool {\n\treturn p.Path != nil\n}\n\nfunc (p *CreateAPIRequest) IsSetMethod() bool {\n\treturn p.Method != nil\n}\n\nfunc (p *CreateAPIRequest) IsSetAPIExtend() bool {\n\treturn p.APIExtend != nil\n}\n\nfunc (p *CreateAPIRequest) IsSetRequestParams() bool {\n\treturn p.RequestParams != nil\n}\n\nfunc (p *CreateAPIRequest) IsSetResponseParams() bool {\n\treturn p.ResponseParams != nil\n}\n\nfunc (p *CreateAPIRequest) IsSetDisabled() bool {\n\treturn p.Disabled != nil\n}\n\nfunc (p *CreateAPIRequest) IsSetEditVersion() bool {\n\treturn p.EditVersion != nil\n}\n\nfunc (p *CreateAPIRequest) IsSetFunctionName() bool {\n\treturn p.FunctionName != nil\n}\n\nfunc (p *CreateAPIRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateAPIRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\tvar issetName bool = false\n\tvar issetDesc bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDesc = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetDesc {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateAPIRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateAPIRequest[fieldId]))\n}\n\nfunc (p *CreateAPIRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *CreateAPIRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *CreateAPIRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *CreateAPIRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Path = _field\n\treturn nil\n}\nfunc (p *CreateAPIRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *common.APIMethod\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.APIMethod(v)\n\t\t_field = &tmp\n\t}\n\tp.Method = _field\n\treturn nil\n}\nfunc (p *CreateAPIRequest) ReadField6(iprot thrift.TProtocol) error {\n\t_field := common.NewAPIExtend()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.APIExtend = _field\n\treturn nil\n}\nfunc (p *CreateAPIRequest) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.APIParameter, 0, size)\n\tvalues := make([]common.APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RequestParams = _field\n\treturn nil\n}\nfunc (p *CreateAPIRequest) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.APIParameter, 0, size)\n\tvalues := make([]common.APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseParams = _field\n\treturn nil\n}\nfunc (p *CreateAPIRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Disabled = _field\n\treturn nil\n}\nfunc (p *CreateAPIRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *CreateAPIRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FunctionName = _field\n\treturn nil\n}\nfunc (p *CreateAPIRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateAPIRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateAPIRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateAPIRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateAPIRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateAPIRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateAPIRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPath() {\n\t\tif err = oprot.WriteFieldBegin(\"path\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Path); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CreateAPIRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMethod() {\n\t\tif err = oprot.WriteFieldBegin(\"method\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Method)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *CreateAPIRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAPIExtend() {\n\t\tif err = oprot.WriteFieldBegin(\"api_extend\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.APIExtend.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *CreateAPIRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRequestParams() {\n\t\tif err = oprot.WriteFieldBegin(\"request_params\", thrift.LIST, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.RequestParams)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.RequestParams {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *CreateAPIRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResponseParams() {\n\t\tif err = oprot.WriteFieldBegin(\"response_params\", thrift.LIST, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResponseParams)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ResponseParams {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *CreateAPIRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDisabled() {\n\t\tif err = oprot.WriteFieldBegin(\"disabled\", thrift.BOOL, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Disabled); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *CreateAPIRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.EditVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *CreateAPIRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFunctionName() {\n\t\tif err = oprot.WriteFieldBegin(\"function_name\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FunctionName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *CreateAPIRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateAPIRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateAPIRequest(%+v)\", *p)\n\n}\n\ntype CreateAPIResponse struct {\n\tCode        int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg         string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tAPIID       string         `thrift:\"api_id,3\" form:\"api_id\" json:\"api_id\" query:\"api_id\"`\n\tEditVersion int32          `thrift:\"edit_version,4\" form:\"edit_version\" json:\"edit_version\" query:\"edit_version\"`\n\tBaseResp    *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewCreateAPIResponse() *CreateAPIResponse {\n\treturn &CreateAPIResponse{}\n}\n\nfunc (p *CreateAPIResponse) InitDefault() {\n}\n\nfunc (p *CreateAPIResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CreateAPIResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *CreateAPIResponse) GetAPIID() (v string) {\n\treturn p.APIID\n}\n\nfunc (p *CreateAPIResponse) GetEditVersion() (v int32) {\n\treturn p.EditVersion\n}\n\nvar CreateAPIResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateAPIResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateAPIResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateAPIResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"api_id\",\n\t4:   \"edit_version\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateAPIResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateAPIResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateAPIResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateAPIResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateAPIResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateAPIResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *CreateAPIResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *CreateAPIResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateAPIResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateAPIResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateAPIResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateAPIResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateAPIResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateAPIResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.EditVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CreateAPIResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateAPIResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateAPIResponse(%+v)\", *p)\n\n}\n\ntype DeleteAPIRequest struct {\n\tPluginID int64 `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\tAPIID    int64 `thrift:\"api_id,2,required\" form:\"api_id,required\" json:\"api_id,string,required\" query:\"api_id,required\"`\n\t// ignore\n\tEditVersion *int32     `thrift:\"edit_version,3,optional\" form:\"edit_version\" json:\"edit_version,omitempty\" query:\"edit_version\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteAPIRequest() *DeleteAPIRequest {\n\treturn &DeleteAPIRequest{}\n}\n\nfunc (p *DeleteAPIRequest) InitDefault() {\n}\n\nfunc (p *DeleteAPIRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *DeleteAPIRequest) GetAPIID() (v int64) {\n\treturn p.APIID\n}\n\nvar DeleteAPIRequest_EditVersion_DEFAULT int32\n\nfunc (p *DeleteAPIRequest) GetEditVersion() (v int32) {\n\tif !p.IsSetEditVersion() {\n\t\treturn DeleteAPIRequest_EditVersion_DEFAULT\n\t}\n\treturn *p.EditVersion\n}\n\nvar DeleteAPIRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteAPIRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteAPIRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteAPIRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"api_id\",\n\t3:   \"edit_version\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteAPIRequest) IsSetEditVersion() bool {\n\treturn p.EditVersion != nil\n}\n\nfunc (p *DeleteAPIRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteAPIRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\tvar issetAPIID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetAPIID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetAPIID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteAPIRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteAPIRequest[fieldId]))\n}\n\nfunc (p *DeleteAPIRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *DeleteAPIRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *DeleteAPIRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *DeleteAPIRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteAPIRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteAPIRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteAPIRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteAPIRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteAPIRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.EditVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DeleteAPIRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteAPIRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteAPIRequest(%+v)\", *p)\n\n}\n\ntype DeleteAPIResponse struct {\n\tCode        int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg         string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tEditVersion int32          `thrift:\"edit_version,3\" form:\"edit_version\" json:\"edit_version\" query:\"edit_version\"`\n\tBaseResp    *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewDeleteAPIResponse() *DeleteAPIResponse {\n\treturn &DeleteAPIResponse{}\n}\n\nfunc (p *DeleteAPIResponse) InitDefault() {\n}\n\nfunc (p *DeleteAPIResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DeleteAPIResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *DeleteAPIResponse) GetEditVersion() (v int32) {\n\treturn p.EditVersion\n}\n\nvar DeleteAPIResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteAPIResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteAPIResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteAPIResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"edit_version\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteAPIResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteAPIResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteAPIResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteAPIResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteAPIResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeleteAPIResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *DeleteAPIResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteAPIResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteAPIResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteAPIResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteAPIResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteAPIResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.EditVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DeleteAPIResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteAPIResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteAPIResponse(%+v)\", *p)\n\n}\n\ntype GetOAuthSchemaRequest struct {\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetOAuthSchemaRequest() *GetOAuthSchemaRequest {\n\treturn &GetOAuthSchemaRequest{}\n}\n\nfunc (p *GetOAuthSchemaRequest) InitDefault() {\n}\n\nvar GetOAuthSchemaRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetOAuthSchemaRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetOAuthSchemaRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetOAuthSchemaRequest = map[int16]string{\n\t255: \"Base\",\n}\n\nfunc (p *GetOAuthSchemaRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetOAuthSchemaRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOAuthSchemaRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetOAuthSchemaRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetOAuthSchemaRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOAuthSchemaRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOAuthSchemaRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetOAuthSchemaRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOAuthSchemaRequest(%+v)\", *p)\n\n}\n\ntype GetOAuthSchemaResponse struct {\n\tCode        int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg         string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tOauthSchema string `thrift:\"oauth_schema,3\" form:\"oauth_schema\" json:\"oauth_schema\" query:\"oauth_schema\"`\n\tIdeConf     string `thrift:\"ide_conf,4\" form:\"ide_conf\" json:\"ide_conf\" query:\"ide_conf\"`\n\t// The agreed json\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetOAuthSchemaResponse() *GetOAuthSchemaResponse {\n\treturn &GetOAuthSchemaResponse{}\n}\n\nfunc (p *GetOAuthSchemaResponse) InitDefault() {\n}\n\nfunc (p *GetOAuthSchemaResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetOAuthSchemaResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetOAuthSchemaResponse) GetOauthSchema() (v string) {\n\treturn p.OauthSchema\n}\n\nfunc (p *GetOAuthSchemaResponse) GetIdeConf() (v string) {\n\treturn p.IdeConf\n}\n\nvar GetOAuthSchemaResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetOAuthSchemaResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetOAuthSchemaResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetOAuthSchemaResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"oauth_schema\",\n\t4:   \"ide_conf\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetOAuthSchemaResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetOAuthSchemaResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOAuthSchemaResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetOAuthSchemaResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetOAuthSchemaResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetOAuthSchemaResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OauthSchema = _field\n\treturn nil\n}\nfunc (p *GetOAuthSchemaResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IdeConf = _field\n\treturn nil\n}\nfunc (p *GetOAuthSchemaResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetOAuthSchemaResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOAuthSchemaResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOAuthSchemaResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetOAuthSchemaResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetOAuthSchemaResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"oauth_schema\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.OauthSchema); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetOAuthSchemaResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ide_conf\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IdeConf); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetOAuthSchemaResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetOAuthSchemaResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOAuthSchemaResponse(%+v)\", *p)\n\n}\n\ntype GetUserAuthorityRequest struct {\n\tPluginID       int64                 `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\"`\n\tCreationMethod common.CreationMethod `thrift:\"creation_method,2,required\" form:\"creation_method,required\" json:\"creation_method,required\"`\n\tProjectID      int64                 `thrift:\"project_id,3\" form:\"project_id\" json:\"project_id,string\"`\n\tBase           *base.Base            `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetUserAuthorityRequest() *GetUserAuthorityRequest {\n\treturn &GetUserAuthorityRequest{}\n}\n\nfunc (p *GetUserAuthorityRequest) InitDefault() {\n}\n\nfunc (p *GetUserAuthorityRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *GetUserAuthorityRequest) GetCreationMethod() (v common.CreationMethod) {\n\treturn p.CreationMethod\n}\n\nfunc (p *GetUserAuthorityRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nvar GetUserAuthorityRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetUserAuthorityRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetUserAuthorityRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetUserAuthorityRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"creation_method\",\n\t3:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetUserAuthorityRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetUserAuthorityRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\tvar issetCreationMethod bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCreationMethod = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCreationMethod {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUserAuthorityRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetUserAuthorityRequest[fieldId]))\n}\n\nfunc (p *GetUserAuthorityRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *GetUserAuthorityRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field common.CreationMethod\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.CreationMethod(v)\n\t}\n\tp.CreationMethod = _field\n\treturn nil\n}\nfunc (p *GetUserAuthorityRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *GetUserAuthorityRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetUserAuthorityRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserAuthorityRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUserAuthorityRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUserAuthorityRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creation_method\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.CreationMethod)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetUserAuthorityRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetUserAuthorityRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetUserAuthorityRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUserAuthorityRequest(%+v)\", *p)\n\n}\n\ntype GetUserAuthorityResponse struct {\n\tCode     int32                        `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                       `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tData     *common.GetUserAuthorityData `thrift:\"data,3\" form:\"data\" json:\"data\"`\n\tBaseResp *base.BaseResp               `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetUserAuthorityResponse() *GetUserAuthorityResponse {\n\treturn &GetUserAuthorityResponse{}\n}\n\nfunc (p *GetUserAuthorityResponse) InitDefault() {\n}\n\nfunc (p *GetUserAuthorityResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetUserAuthorityResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetUserAuthorityResponse_Data_DEFAULT *common.GetUserAuthorityData\n\nfunc (p *GetUserAuthorityResponse) GetData() (v *common.GetUserAuthorityData) {\n\tif !p.IsSetData() {\n\t\treturn GetUserAuthorityResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetUserAuthorityResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetUserAuthorityResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetUserAuthorityResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetUserAuthorityResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetUserAuthorityResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetUserAuthorityResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetUserAuthorityResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUserAuthorityResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetUserAuthorityResponse[fieldId]))\n}\n\nfunc (p *GetUserAuthorityResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetUserAuthorityResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetUserAuthorityResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := common.NewGetUserAuthorityData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetUserAuthorityResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetUserAuthorityResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserAuthorityResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUserAuthorityResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUserAuthorityResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetUserAuthorityResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetUserAuthorityResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetUserAuthorityResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUserAuthorityResponse(%+v)\", *p)\n\n}\n\n// Get authorization status--plugin debug area\ntype GetOAuthStatusRequest struct {\n\tPluginID int64      `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\tBase     *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewGetOAuthStatusRequest() *GetOAuthStatusRequest {\n\treturn &GetOAuthStatusRequest{}\n}\n\nfunc (p *GetOAuthStatusRequest) InitDefault() {\n}\n\nfunc (p *GetOAuthStatusRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nvar GetOAuthStatusRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetOAuthStatusRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetOAuthStatusRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetOAuthStatusRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetOAuthStatusRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetOAuthStatusRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOAuthStatusRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetOAuthStatusRequest[fieldId]))\n}\n\nfunc (p *GetOAuthStatusRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *GetOAuthStatusRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetOAuthStatusRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOAuthStatusRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOAuthStatusRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetOAuthStatusRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetOAuthStatusRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOAuthStatusRequest(%+v)\", *p)\n\n}\n\ntype GetOAuthStatusResponse struct {\n\t// Is it an authorized plugin?\n\tIsOauth bool `thrift:\"is_oauth,1\" form:\"is_oauth\" json:\"is_oauth\" query:\"is_oauth\"`\n\t// user authorization status\n\tStatus common.OAuthStatus `thrift:\"status,2\" form:\"status\" json:\"status\" query:\"status\"`\n\t// Unauthorized, return the authorized url.\n\tContent  string         `thrift:\"content,3\" form:\"content\" json:\"content\" query:\"content\"`\n\tCode     int64          `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string         `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetOAuthStatusResponse() *GetOAuthStatusResponse {\n\treturn &GetOAuthStatusResponse{}\n}\n\nfunc (p *GetOAuthStatusResponse) InitDefault() {\n}\n\nfunc (p *GetOAuthStatusResponse) GetIsOauth() (v bool) {\n\treturn p.IsOauth\n}\n\nfunc (p *GetOAuthStatusResponse) GetStatus() (v common.OAuthStatus) {\n\treturn p.Status\n}\n\nfunc (p *GetOAuthStatusResponse) GetContent() (v string) {\n\treturn p.Content\n}\n\nfunc (p *GetOAuthStatusResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetOAuthStatusResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetOAuthStatusResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetOAuthStatusResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetOAuthStatusResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetOAuthStatusResponse = map[int16]string{\n\t1:   \"is_oauth\",\n\t2:   \"status\",\n\t3:   \"content\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetOAuthStatusResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetOAuthStatusResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetOAuthStatusResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetOAuthStatusResponse[fieldId]))\n}\n\nfunc (p *GetOAuthStatusResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsOauth = _field\n\treturn nil\n}\nfunc (p *GetOAuthStatusResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field common.OAuthStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.OAuthStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *GetOAuthStatusResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\nfunc (p *GetOAuthStatusResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetOAuthStatusResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetOAuthStatusResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetOAuthStatusResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOAuthStatusResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetOAuthStatusResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_oauth\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsOauth); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetOAuthStatusResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetOAuthStatusResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"content\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetOAuthStatusResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetOAuthStatusResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetOAuthStatusResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetOAuthStatusResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetOAuthStatusResponse(%+v)\", *p)\n\n}\n\ntype CheckAndLockPluginEditRequest struct {\n\tPluginID int64      `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\"`\n\tBase     *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCheckAndLockPluginEditRequest() *CheckAndLockPluginEditRequest {\n\treturn &CheckAndLockPluginEditRequest{}\n}\n\nfunc (p *CheckAndLockPluginEditRequest) InitDefault() {\n}\n\nfunc (p *CheckAndLockPluginEditRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nvar CheckAndLockPluginEditRequest_Base_DEFAULT *base.Base\n\nfunc (p *CheckAndLockPluginEditRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CheckAndLockPluginEditRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CheckAndLockPluginEditRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t255: \"Base\",\n}\n\nfunc (p *CheckAndLockPluginEditRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CheckAndLockPluginEditRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CheckAndLockPluginEditRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CheckAndLockPluginEditRequest[fieldId]))\n}\n\nfunc (p *CheckAndLockPluginEditRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *CheckAndLockPluginEditRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CheckAndLockPluginEditRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckAndLockPluginEditRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CheckAndLockPluginEditRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CheckAndLockPluginEditRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CheckAndLockPluginEditRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CheckAndLockPluginEditRequest(%+v)\", *p)\n\n}\n\ntype CheckAndLockPluginEditResponse struct {\n\tCode     int32                              `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                             `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tData     *common.CheckAndLockPluginEditData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n\tBaseResp *base.BaseResp                     `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewCheckAndLockPluginEditResponse() *CheckAndLockPluginEditResponse {\n\treturn &CheckAndLockPluginEditResponse{}\n}\n\nfunc (p *CheckAndLockPluginEditResponse) InitDefault() {\n}\n\nfunc (p *CheckAndLockPluginEditResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *CheckAndLockPluginEditResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CheckAndLockPluginEditResponse_Data_DEFAULT *common.CheckAndLockPluginEditData\n\nfunc (p *CheckAndLockPluginEditResponse) GetData() (v *common.CheckAndLockPluginEditData) {\n\tif !p.IsSetData() {\n\t\treturn CheckAndLockPluginEditResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar CheckAndLockPluginEditResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CheckAndLockPluginEditResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CheckAndLockPluginEditResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CheckAndLockPluginEditResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CheckAndLockPluginEditResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *CheckAndLockPluginEditResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CheckAndLockPluginEditResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CheckAndLockPluginEditResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CheckAndLockPluginEditResponse[fieldId]))\n}\n\nfunc (p *CheckAndLockPluginEditResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CheckAndLockPluginEditResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CheckAndLockPluginEditResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := common.NewCheckAndLockPluginEditData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *CheckAndLockPluginEditResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CheckAndLockPluginEditResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckAndLockPluginEditResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CheckAndLockPluginEditResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CheckAndLockPluginEditResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CheckAndLockPluginEditResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CheckAndLockPluginEditResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CheckAndLockPluginEditResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CheckAndLockPluginEditResponse(%+v)\", *p)\n\n}\n\ntype GetPluginPublishHistoryRequest struct {\n\tPluginID int64 `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\tSpaceID  int64 `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\t// Turn the page, what page?\n\tPage *int32 `thrift:\"page,3,optional\" form:\"page\" json:\"page,omitempty\" query:\"page\"`\n\t// Flip pages, a few entries per page\n\tSize *int32     `thrift:\"size,4,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetPluginPublishHistoryRequest() *GetPluginPublishHistoryRequest {\n\treturn &GetPluginPublishHistoryRequest{}\n}\n\nfunc (p *GetPluginPublishHistoryRequest) InitDefault() {\n}\n\nfunc (p *GetPluginPublishHistoryRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *GetPluginPublishHistoryRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar GetPluginPublishHistoryRequest_Page_DEFAULT int32\n\nfunc (p *GetPluginPublishHistoryRequest) GetPage() (v int32) {\n\tif !p.IsSetPage() {\n\t\treturn GetPluginPublishHistoryRequest_Page_DEFAULT\n\t}\n\treturn *p.Page\n}\n\nvar GetPluginPublishHistoryRequest_Size_DEFAULT int32\n\nfunc (p *GetPluginPublishHistoryRequest) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn GetPluginPublishHistoryRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar GetPluginPublishHistoryRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetPluginPublishHistoryRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetPluginPublishHistoryRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetPluginPublishHistoryRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"space_id\",\n\t3:   \"page\",\n\t4:   \"size\",\n\t255: \"Base\",\n}\n\nfunc (p *GetPluginPublishHistoryRequest) IsSetPage() bool {\n\treturn p.Page != nil\n}\n\nfunc (p *GetPluginPublishHistoryRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *GetPluginPublishHistoryRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetPluginPublishHistoryRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPluginPublishHistoryRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPluginPublishHistoryRequest[fieldId]))\n}\n\nfunc (p *GetPluginPublishHistoryRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *GetPluginPublishHistoryRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetPluginPublishHistoryRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *GetPluginPublishHistoryRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *GetPluginPublishHistoryRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetPluginPublishHistoryRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginPublishHistoryRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPluginPublishHistoryRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPluginPublishHistoryRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPluginPublishHistoryRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPage() {\n\t\tif err = oprot.WriteFieldBegin(\"page\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Page); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetPluginPublishHistoryRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetPluginPublishHistoryRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPluginPublishHistoryRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPluginPublishHistoryRequest(%+v)\", *p)\n\n}\n\ntype GetPluginPublishHistoryResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\t// reverse time\n\tPluginPublishInfoList []*common.PluginPublishInfo `thrift:\"plugin_publish_info_list,3\" form:\"plugin_publish_info_list\" json:\"plugin_publish_info_list\" query:\"plugin_publish_info_list\"`\n\t// How many in total, greater than page x size description and next page\n\tTotal    int32          `thrift:\"total,4\" form:\"total\" json:\"total\" query:\"total\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewGetPluginPublishHistoryResponse() *GetPluginPublishHistoryResponse {\n\treturn &GetPluginPublishHistoryResponse{}\n}\n\nfunc (p *GetPluginPublishHistoryResponse) InitDefault() {\n}\n\nfunc (p *GetPluginPublishHistoryResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetPluginPublishHistoryResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetPluginPublishHistoryResponse) GetPluginPublishInfoList() (v []*common.PluginPublishInfo) {\n\treturn p.PluginPublishInfoList\n}\n\nfunc (p *GetPluginPublishHistoryResponse) GetTotal() (v int32) {\n\treturn p.Total\n}\n\nvar GetPluginPublishHistoryResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetPluginPublishHistoryResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetPluginPublishHistoryResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetPluginPublishHistoryResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"plugin_publish_info_list\",\n\t4:   \"total\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetPluginPublishHistoryResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetPluginPublishHistoryResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPluginPublishHistoryResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetPluginPublishHistoryResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetPluginPublishHistoryResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetPluginPublishHistoryResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.PluginPublishInfo, 0, size)\n\tvalues := make([]common.PluginPublishInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginPublishInfoList = _field\n\treturn nil\n}\nfunc (p *GetPluginPublishHistoryResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\nfunc (p *GetPluginPublishHistoryResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetPluginPublishHistoryResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginPublishHistoryResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPluginPublishHistoryResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPluginPublishHistoryResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPluginPublishHistoryResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_publish_info_list\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginPublishInfoList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginPublishInfoList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetPluginPublishHistoryResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetPluginPublishHistoryResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPluginPublishHistoryResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPluginPublishHistoryResponse(%+v)\", *p)\n\n}\n\ntype DebugAPIRequest struct {\n\tPluginID int64 `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\tAPIID    int64 `thrift:\"api_id,2,required\" form:\"api_id,required\" json:\"api_id,string,required\" query:\"api_id,required\"`\n\t// request parameters in json string\n\tParameters string `thrift:\"parameters,3,required\" form:\"parameters,required\" json:\"parameters,required\" query:\"parameters,required\"`\n\t// ignore\n\tOperation common.DebugOperation `thrift:\"operation,4,required\" form:\"operation,required\" json:\"operation,required\" query:\"operation,required\"`\n\t// ignore\n\tEditVersion *int32     `thrift:\"edit_version,5,optional\" form:\"edit_version\" json:\"edit_version,omitempty\" query:\"edit_version\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDebugAPIRequest() *DebugAPIRequest {\n\treturn &DebugAPIRequest{}\n}\n\nfunc (p *DebugAPIRequest) InitDefault() {\n}\n\nfunc (p *DebugAPIRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *DebugAPIRequest) GetAPIID() (v int64) {\n\treturn p.APIID\n}\n\nfunc (p *DebugAPIRequest) GetParameters() (v string) {\n\treturn p.Parameters\n}\n\nfunc (p *DebugAPIRequest) GetOperation() (v common.DebugOperation) {\n\treturn p.Operation\n}\n\nvar DebugAPIRequest_EditVersion_DEFAULT int32\n\nfunc (p *DebugAPIRequest) GetEditVersion() (v int32) {\n\tif !p.IsSetEditVersion() {\n\t\treturn DebugAPIRequest_EditVersion_DEFAULT\n\t}\n\treturn *p.EditVersion\n}\n\nvar DebugAPIRequest_Base_DEFAULT *base.Base\n\nfunc (p *DebugAPIRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DebugAPIRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DebugAPIRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"api_id\",\n\t3:   \"parameters\",\n\t4:   \"operation\",\n\t5:   \"edit_version\",\n\t255: \"Base\",\n}\n\nfunc (p *DebugAPIRequest) IsSetEditVersion() bool {\n\treturn p.EditVersion != nil\n}\n\nfunc (p *DebugAPIRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DebugAPIRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\tvar issetAPIID bool = false\n\tvar issetParameters bool = false\n\tvar issetOperation bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetAPIID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetParameters = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetOperation = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetAPIID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetParameters {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetOperation {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DebugAPIRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DebugAPIRequest[fieldId]))\n}\n\nfunc (p *DebugAPIRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *DebugAPIRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *DebugAPIRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\nfunc (p *DebugAPIRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field common.DebugOperation\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.DebugOperation(v)\n\t}\n\tp.Operation = _field\n\treturn nil\n}\nfunc (p *DebugAPIRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *DebugAPIRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DebugAPIRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DebugAPIRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DebugAPIRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DebugAPIRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DebugAPIRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"parameters\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Parameters); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DebugAPIRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"operation\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Operation)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DebugAPIRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.EditVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DebugAPIRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DebugAPIRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DebugAPIRequest(%+v)\", *p)\n\n}\n\ntype DebugAPIResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\t// response parameters\n\tResponseParams []*common.APIParameter `thrift:\"response_params,3\" form:\"response_params\" json:\"response_params\" query:\"response_params\"`\n\t// invoke success or not\n\tSuccess bool `thrift:\"success,4\" form:\"success\" json:\"success\" query:\"success\"`\n\t// trimmed response in json string\n\tResp string `thrift:\"resp,5\" form:\"resp\" json:\"resp\" query:\"resp\"`\n\t// invoke failed reason\n\tReason string `thrift:\"reason,6\" form:\"reason\" json:\"reason\" query:\"reason\"`\n\t// raw response in json string\n\tRawResp string `thrift:\"raw_resp,7\" form:\"raw_resp\" json:\"raw_resp\" query:\"raw_resp\"`\n\t// raw request in json string\n\tRawReq   string         `thrift:\"raw_req,8\" form:\"raw_req\" json:\"raw_req\" query:\"raw_req\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewDebugAPIResponse() *DebugAPIResponse {\n\treturn &DebugAPIResponse{}\n}\n\nfunc (p *DebugAPIResponse) InitDefault() {\n}\n\nfunc (p *DebugAPIResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DebugAPIResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *DebugAPIResponse) GetResponseParams() (v []*common.APIParameter) {\n\treturn p.ResponseParams\n}\n\nfunc (p *DebugAPIResponse) GetSuccess() (v bool) {\n\treturn p.Success\n}\n\nfunc (p *DebugAPIResponse) GetResp() (v string) {\n\treturn p.Resp\n}\n\nfunc (p *DebugAPIResponse) GetReason() (v string) {\n\treturn p.Reason\n}\n\nfunc (p *DebugAPIResponse) GetRawResp() (v string) {\n\treturn p.RawResp\n}\n\nfunc (p *DebugAPIResponse) GetRawReq() (v string) {\n\treturn p.RawReq\n}\n\nvar DebugAPIResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DebugAPIResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DebugAPIResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DebugAPIResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"response_params\",\n\t4:   \"success\",\n\t5:   \"resp\",\n\t6:   \"reason\",\n\t7:   \"raw_resp\",\n\t8:   \"raw_req\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DebugAPIResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DebugAPIResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DebugAPIResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DebugAPIResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DebugAPIResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DebugAPIResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.APIParameter, 0, size)\n\tvalues := make([]common.APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseParams = _field\n\treturn nil\n}\nfunc (p *DebugAPIResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Success = _field\n\treturn nil\n}\nfunc (p *DebugAPIResponse) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Resp = _field\n\treturn nil\n}\nfunc (p *DebugAPIResponse) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Reason = _field\n\treturn nil\n}\nfunc (p *DebugAPIResponse) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RawResp = _field\n\treturn nil\n}\nfunc (p *DebugAPIResponse) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RawReq = _field\n\treturn nil\n}\nfunc (p *DebugAPIResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DebugAPIResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DebugAPIResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DebugAPIResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DebugAPIResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DebugAPIResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_params\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResponseParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResponseParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DebugAPIResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"success\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Success); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DebugAPIResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"resp\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Resp); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DebugAPIResponse) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"reason\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Reason); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *DebugAPIResponse) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"raw_resp\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.RawResp); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *DebugAPIResponse) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"raw_req\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.RawReq); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *DebugAPIResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DebugAPIResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DebugAPIResponse(%+v)\", *p)\n\n}\n\ntype UnlockPluginEditRequest struct {\n\tPluginID int64      `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\"`\n\tBase     *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUnlockPluginEditRequest() *UnlockPluginEditRequest {\n\treturn &UnlockPluginEditRequest{}\n}\n\nfunc (p *UnlockPluginEditRequest) InitDefault() {\n}\n\nfunc (p *UnlockPluginEditRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nvar UnlockPluginEditRequest_Base_DEFAULT *base.Base\n\nfunc (p *UnlockPluginEditRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UnlockPluginEditRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UnlockPluginEditRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t255: \"Base\",\n}\n\nfunc (p *UnlockPluginEditRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UnlockPluginEditRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UnlockPluginEditRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UnlockPluginEditRequest[fieldId]))\n}\n\nfunc (p *UnlockPluginEditRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *UnlockPluginEditRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UnlockPluginEditRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UnlockPluginEditRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UnlockPluginEditRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UnlockPluginEditRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UnlockPluginEditRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UnlockPluginEditRequest(%+v)\", *p)\n\n}\n\ntype UnlockPluginEditResponse struct {\n\tCode     int32          `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tReleased bool           `thrift:\"released,3,required\" form:\"released,required\" json:\"released,required\" query:\"released,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewUnlockPluginEditResponse() *UnlockPluginEditResponse {\n\treturn &UnlockPluginEditResponse{}\n}\n\nfunc (p *UnlockPluginEditResponse) InitDefault() {\n}\n\nfunc (p *UnlockPluginEditResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *UnlockPluginEditResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *UnlockPluginEditResponse) GetReleased() (v bool) {\n\treturn p.Released\n}\n\nvar UnlockPluginEditResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UnlockPluginEditResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UnlockPluginEditResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UnlockPluginEditResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"released\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UnlockPluginEditResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UnlockPluginEditResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetReleased bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetReleased = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetReleased {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UnlockPluginEditResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UnlockPluginEditResponse[fieldId]))\n}\n\nfunc (p *UnlockPluginEditResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UnlockPluginEditResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UnlockPluginEditResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Released = _field\n\treturn nil\n}\nfunc (p *UnlockPluginEditResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UnlockPluginEditResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UnlockPluginEditResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UnlockPluginEditResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UnlockPluginEditResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UnlockPluginEditResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"released\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Released); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UnlockPluginEditResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UnlockPluginEditResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UnlockPluginEditResponse(%+v)\", *p)\n\n}\n\ntype GetPluginNextVersionRequest struct {\n\tPluginID int64      `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\" query:\"plugin_id,required\"`\n\tSpaceID  int64      `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\tBase     *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetPluginNextVersionRequest() *GetPluginNextVersionRequest {\n\treturn &GetPluginNextVersionRequest{}\n}\n\nfunc (p *GetPluginNextVersionRequest) InitDefault() {\n}\n\nfunc (p *GetPluginNextVersionRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *GetPluginNextVersionRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar GetPluginNextVersionRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetPluginNextVersionRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetPluginNextVersionRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetPluginNextVersionRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetPluginNextVersionRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetPluginNextVersionRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPluginNextVersionRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetPluginNextVersionRequest[fieldId]))\n}\n\nfunc (p *GetPluginNextVersionRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *GetPluginNextVersionRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetPluginNextVersionRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetPluginNextVersionRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginNextVersionRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPluginNextVersionRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPluginNextVersionRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPluginNextVersionRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPluginNextVersionRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPluginNextVersionRequest(%+v)\", *p)\n\n}\n\ntype GetPluginNextVersionResponse struct {\n\tCode            int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg             string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tNextVersionName string         `thrift:\"next_version_name,3\" form:\"next_version_name\" json:\"next_version_name\" query:\"next_version_name\"`\n\tBaseResp        *base.BaseResp `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewGetPluginNextVersionResponse() *GetPluginNextVersionResponse {\n\treturn &GetPluginNextVersionResponse{}\n}\n\nfunc (p *GetPluginNextVersionResponse) InitDefault() {\n}\n\nfunc (p *GetPluginNextVersionResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetPluginNextVersionResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetPluginNextVersionResponse) GetNextVersionName() (v string) {\n\treturn p.NextVersionName\n}\n\nvar GetPluginNextVersionResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetPluginNextVersionResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetPluginNextVersionResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetPluginNextVersionResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"next_version_name\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetPluginNextVersionResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetPluginNextVersionResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetPluginNextVersionResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetPluginNextVersionResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetPluginNextVersionResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetPluginNextVersionResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NextVersionName = _field\n\treturn nil\n}\nfunc (p *GetPluginNextVersionResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetPluginNextVersionResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginNextVersionResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetPluginNextVersionResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetPluginNextVersionResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetPluginNextVersionResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"next_version_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NextVersionName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetPluginNextVersionResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetPluginNextVersionResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetPluginNextVersionResponse(%+v)\", *p)\n\n}\n\ntype RegisterPluginRequest struct {\n\t// plugin manifest in json string\n\tAiPlugin string `thrift:\"ai_plugin,1\" form:\"ai_plugin\" json:\"ai_plugin\" query:\"ai_plugin\"`\n\t// plugin openapi3 document in yaml string\n\tOpenapi string `thrift:\"openapi,2\" form:\"openapi\" json:\"openapi\" query:\"openapi\"`\n\t// ignore\n\tClientID *string `thrift:\"client_id,4,optional\" form:\"client_id\" json:\"client_id,omitempty\" query:\"client_id\"`\n\t// ignore\n\tClientSecret *string `thrift:\"client_secret,5,optional\" form:\"client_secret\" json:\"client_secret,omitempty\" query:\"client_secret\"`\n\t// ignore\n\tServiceToken *string `thrift:\"service_token,6,optional\" form:\"service_token\" json:\"service_token,omitempty\" query:\"service_token\"`\n\t// ignore\n\tPluginType *common.PluginType `thrift:\"plugin_type,7,optional\" form:\"plugin_type\" json:\"plugin_type,omitempty\" query:\"plugin_type\"`\n\tSpaceID    int64              `thrift:\"space_id,8\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\t// ignore\n\tImportFromFile bool       `thrift:\"import_from_file,9\" form:\"import_from_file\" json:\"import_from_file\" query:\"import_from_file\"`\n\tProjectID      *int64     `thrift:\"project_id,10,optional\" form:\"project_id\" json:\"project_id,string,omitempty\" query:\"project_id\"`\n\tBase           *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewRegisterPluginRequest() *RegisterPluginRequest {\n\treturn &RegisterPluginRequest{}\n}\n\nfunc (p *RegisterPluginRequest) InitDefault() {\n}\n\nfunc (p *RegisterPluginRequest) GetAiPlugin() (v string) {\n\treturn p.AiPlugin\n}\n\nfunc (p *RegisterPluginRequest) GetOpenapi() (v string) {\n\treturn p.Openapi\n}\n\nvar RegisterPluginRequest_ClientID_DEFAULT string\n\nfunc (p *RegisterPluginRequest) GetClientID() (v string) {\n\tif !p.IsSetClientID() {\n\t\treturn RegisterPluginRequest_ClientID_DEFAULT\n\t}\n\treturn *p.ClientID\n}\n\nvar RegisterPluginRequest_ClientSecret_DEFAULT string\n\nfunc (p *RegisterPluginRequest) GetClientSecret() (v string) {\n\tif !p.IsSetClientSecret() {\n\t\treturn RegisterPluginRequest_ClientSecret_DEFAULT\n\t}\n\treturn *p.ClientSecret\n}\n\nvar RegisterPluginRequest_ServiceToken_DEFAULT string\n\nfunc (p *RegisterPluginRequest) GetServiceToken() (v string) {\n\tif !p.IsSetServiceToken() {\n\t\treturn RegisterPluginRequest_ServiceToken_DEFAULT\n\t}\n\treturn *p.ServiceToken\n}\n\nvar RegisterPluginRequest_PluginType_DEFAULT common.PluginType\n\nfunc (p *RegisterPluginRequest) GetPluginType() (v common.PluginType) {\n\tif !p.IsSetPluginType() {\n\t\treturn RegisterPluginRequest_PluginType_DEFAULT\n\t}\n\treturn *p.PluginType\n}\n\nfunc (p *RegisterPluginRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *RegisterPluginRequest) GetImportFromFile() (v bool) {\n\treturn p.ImportFromFile\n}\n\nvar RegisterPluginRequest_ProjectID_DEFAULT int64\n\nfunc (p *RegisterPluginRequest) GetProjectID() (v int64) {\n\tif !p.IsSetProjectID() {\n\t\treturn RegisterPluginRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar RegisterPluginRequest_Base_DEFAULT *base.Base\n\nfunc (p *RegisterPluginRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn RegisterPluginRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_RegisterPluginRequest = map[int16]string{\n\t1:   \"ai_plugin\",\n\t2:   \"openapi\",\n\t4:   \"client_id\",\n\t5:   \"client_secret\",\n\t6:   \"service_token\",\n\t7:   \"plugin_type\",\n\t8:   \"space_id\",\n\t9:   \"import_from_file\",\n\t10:  \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *RegisterPluginRequest) IsSetClientID() bool {\n\treturn p.ClientID != nil\n}\n\nfunc (p *RegisterPluginRequest) IsSetClientSecret() bool {\n\treturn p.ClientSecret != nil\n}\n\nfunc (p *RegisterPluginRequest) IsSetServiceToken() bool {\n\treturn p.ServiceToken != nil\n}\n\nfunc (p *RegisterPluginRequest) IsSetPluginType() bool {\n\treturn p.PluginType != nil\n}\n\nfunc (p *RegisterPluginRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *RegisterPluginRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *RegisterPluginRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RegisterPluginRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *RegisterPluginRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AiPlugin = _field\n\treturn nil\n}\nfunc (p *RegisterPluginRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Openapi = _field\n\treturn nil\n}\nfunc (p *RegisterPluginRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ClientID = _field\n\treturn nil\n}\nfunc (p *RegisterPluginRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ClientSecret = _field\n\treturn nil\n}\nfunc (p *RegisterPluginRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ServiceToken = _field\n\treturn nil\n}\nfunc (p *RegisterPluginRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *common.PluginType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.PluginType(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginType = _field\n\treturn nil\n}\nfunc (p *RegisterPluginRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *RegisterPluginRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ImportFromFile = _field\n\treturn nil\n}\nfunc (p *RegisterPluginRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *RegisterPluginRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *RegisterPluginRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RegisterPluginRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RegisterPluginRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ai_plugin\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AiPlugin); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RegisterPluginRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"openapi\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Openapi); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *RegisterPluginRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetClientID() {\n\t\tif err = oprot.WriteFieldBegin(\"client_id\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ClientID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *RegisterPluginRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetClientSecret() {\n\t\tif err = oprot.WriteFieldBegin(\"client_secret\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ClientSecret); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *RegisterPluginRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetServiceToken() {\n\t\tif err = oprot.WriteFieldBegin(\"service_token\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ServiceToken); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *RegisterPluginRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginType() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_type\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *RegisterPluginRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *RegisterPluginRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"import_from_file\", thrift.BOOL, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.ImportFromFile); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *RegisterPluginRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *RegisterPluginRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RegisterPluginRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RegisterPluginRequest(%+v)\", *p)\n\n}\n\ntype RegisterPluginResponse struct {\n\tCode     int64                      `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                     `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData     *common.RegisterPluginData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n\tBaseResp *base.BaseResp             `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewRegisterPluginResponse() *RegisterPluginResponse {\n\treturn &RegisterPluginResponse{}\n}\n\nfunc (p *RegisterPluginResponse) InitDefault() {\n}\n\nfunc (p *RegisterPluginResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *RegisterPluginResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar RegisterPluginResponse_Data_DEFAULT *common.RegisterPluginData\n\nfunc (p *RegisterPluginResponse) GetData() (v *common.RegisterPluginData) {\n\tif !p.IsSetData() {\n\t\treturn RegisterPluginResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar RegisterPluginResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *RegisterPluginResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn RegisterPluginResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_RegisterPluginResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *RegisterPluginResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *RegisterPluginResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *RegisterPluginResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RegisterPluginResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *RegisterPluginResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *RegisterPluginResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *RegisterPluginResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := common.NewRegisterPluginData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *RegisterPluginResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *RegisterPluginResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RegisterPluginResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RegisterPluginResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RegisterPluginResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *RegisterPluginResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *RegisterPluginResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RegisterPluginResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RegisterPluginResponse(%+v)\", *p)\n\n}\n\ntype GetDevPluginListRequest struct {\n\tStatus    []common.PluginStatus `thrift:\"status,1,optional\" form:\"status\" json:\"status,omitempty\" query:\"status\"`\n\tPage      *int32                `thrift:\"page,2,optional\" form:\"page\" json:\"page,omitempty\" query:\"page\"`\n\tSize      *int32                `thrift:\"size,3,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\tDevID     int64                 `thrift:\"dev_id,4,required\" form:\"dev_id,required\" json:\"dev_id,string,required\"`\n\tSpaceID   int64                 `thrift:\"space_id,5\" form:\"space_id\" json:\"space_id,string\"`\n\tScopeType *common.ScopeType     `thrift:\"scope_type,6,optional\" form:\"scope_type\" json:\"scope_type,omitempty\" query:\"scope_type\"`\n\tOrderBy   *common.OrderBy       `thrift:\"order_by,7,optional\" form:\"order_by\" json:\"order_by,omitempty\" query:\"order_by\"`\n\t// Release status filter: true: published, false: not published\n\tPublishStatus *bool `thrift:\"publish_status,8,optional\" form:\"publish_status\" json:\"publish_status,omitempty\" query:\"publish_status\"`\n\t// Plugin name or tool name\n\tName *string `thrift:\"name,9,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\t// Plugin Type Filter, End/Cloud\n\tPluginTypeForFilter *common.PluginTypeForFilter `thrift:\"plugin_type_for_filter,10,optional\" form:\"plugin_type_for_filter\" json:\"plugin_type_for_filter,omitempty\" query:\"plugin_type_for_filter\"`\n\tProjectID           int64                       `thrift:\"project_id,11\" form:\"project_id\" json:\"project_id,string\"`\n\t// plugin id list\n\tPluginIds []int64    `thrift:\"plugin_ids,12\" form:\"plugin_ids\" json:\"plugin_ids\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetDevPluginListRequest() *GetDevPluginListRequest {\n\treturn &GetDevPluginListRequest{}\n}\n\nfunc (p *GetDevPluginListRequest) InitDefault() {\n}\n\nvar GetDevPluginListRequest_Status_DEFAULT []common.PluginStatus\n\nfunc (p *GetDevPluginListRequest) GetStatus() (v []common.PluginStatus) {\n\tif !p.IsSetStatus() {\n\t\treturn GetDevPluginListRequest_Status_DEFAULT\n\t}\n\treturn p.Status\n}\n\nvar GetDevPluginListRequest_Page_DEFAULT int32\n\nfunc (p *GetDevPluginListRequest) GetPage() (v int32) {\n\tif !p.IsSetPage() {\n\t\treturn GetDevPluginListRequest_Page_DEFAULT\n\t}\n\treturn *p.Page\n}\n\nvar GetDevPluginListRequest_Size_DEFAULT int32\n\nfunc (p *GetDevPluginListRequest) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn GetDevPluginListRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nfunc (p *GetDevPluginListRequest) GetDevID() (v int64) {\n\treturn p.DevID\n}\n\nfunc (p *GetDevPluginListRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar GetDevPluginListRequest_ScopeType_DEFAULT common.ScopeType\n\nfunc (p *GetDevPluginListRequest) GetScopeType() (v common.ScopeType) {\n\tif !p.IsSetScopeType() {\n\t\treturn GetDevPluginListRequest_ScopeType_DEFAULT\n\t}\n\treturn *p.ScopeType\n}\n\nvar GetDevPluginListRequest_OrderBy_DEFAULT common.OrderBy\n\nfunc (p *GetDevPluginListRequest) GetOrderBy() (v common.OrderBy) {\n\tif !p.IsSetOrderBy() {\n\t\treturn GetDevPluginListRequest_OrderBy_DEFAULT\n\t}\n\treturn *p.OrderBy\n}\n\nvar GetDevPluginListRequest_PublishStatus_DEFAULT bool\n\nfunc (p *GetDevPluginListRequest) GetPublishStatus() (v bool) {\n\tif !p.IsSetPublishStatus() {\n\t\treturn GetDevPluginListRequest_PublishStatus_DEFAULT\n\t}\n\treturn *p.PublishStatus\n}\n\nvar GetDevPluginListRequest_Name_DEFAULT string\n\nfunc (p *GetDevPluginListRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn GetDevPluginListRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar GetDevPluginListRequest_PluginTypeForFilter_DEFAULT common.PluginTypeForFilter\n\nfunc (p *GetDevPluginListRequest) GetPluginTypeForFilter() (v common.PluginTypeForFilter) {\n\tif !p.IsSetPluginTypeForFilter() {\n\t\treturn GetDevPluginListRequest_PluginTypeForFilter_DEFAULT\n\t}\n\treturn *p.PluginTypeForFilter\n}\n\nfunc (p *GetDevPluginListRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nfunc (p *GetDevPluginListRequest) GetPluginIds() (v []int64) {\n\treturn p.PluginIds\n}\n\nvar GetDevPluginListRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetDevPluginListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetDevPluginListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetDevPluginListRequest = map[int16]string{\n\t1:   \"status\",\n\t2:   \"page\",\n\t3:   \"size\",\n\t4:   \"dev_id\",\n\t5:   \"space_id\",\n\t6:   \"scope_type\",\n\t7:   \"order_by\",\n\t8:   \"publish_status\",\n\t9:   \"name\",\n\t10:  \"plugin_type_for_filter\",\n\t11:  \"project_id\",\n\t12:  \"plugin_ids\",\n\t255: \"Base\",\n}\n\nfunc (p *GetDevPluginListRequest) IsSetStatus() bool {\n\treturn p.Status != nil\n}\n\nfunc (p *GetDevPluginListRequest) IsSetPage() bool {\n\treturn p.Page != nil\n}\n\nfunc (p *GetDevPluginListRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *GetDevPluginListRequest) IsSetScopeType() bool {\n\treturn p.ScopeType != nil\n}\n\nfunc (p *GetDevPluginListRequest) IsSetOrderBy() bool {\n\treturn p.OrderBy != nil\n}\n\nfunc (p *GetDevPluginListRequest) IsSetPublishStatus() bool {\n\treturn p.PublishStatus != nil\n}\n\nfunc (p *GetDevPluginListRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *GetDevPluginListRequest) IsSetPluginTypeForFilter() bool {\n\treturn p.PluginTypeForFilter != nil\n}\n\nfunc (p *GetDevPluginListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetDevPluginListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetDevID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDevID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetDevID {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDevPluginListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDevPluginListRequest[fieldId]))\n}\n\nfunc (p *GetDevPluginListRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]common.PluginStatus, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem common.PluginStatus\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = common.PluginStatus(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DevID = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *common.ScopeType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.ScopeType(v)\n\t\t_field = &tmp\n\t}\n\tp.ScopeType = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *common.OrderBy\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.OrderBy(v)\n\t\t_field = &tmp\n\t}\n\tp.OrderBy = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishStatus = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *common.PluginTypeForFilter\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.PluginTypeForFilter(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginTypeForFilter = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField12(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginIds = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetDevPluginListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDevPluginListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDevPluginListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"status\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.Status)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Status {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPage() {\n\t\tif err = oprot.WriteFieldBegin(\"page\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Page); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dev_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DevID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScopeType() {\n\t\tif err = oprot.WriteFieldBegin(\"scope_type\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ScopeType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderBy() {\n\t\tif err = oprot.WriteFieldBegin(\"order_by\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.OrderBy)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_status\", thrift.BOOL, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.PublishStatus); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginTypeForFilter() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_type_for_filter\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginTypeForFilter)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_ids\", thrift.LIST, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I64, len(p.PluginIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginIds {\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *GetDevPluginListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDevPluginListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDevPluginListRequest(%+v)\", *p)\n\n}\n\ntype GetDevPluginListResponse struct {\n\tCode       int32                             `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg        string                            `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tPluginList []*common.PluginInfoForPlayground `thrift:\"plugin_list,3\" form:\"plugin_list\" json:\"plugin_list\" query:\"plugin_list\"`\n\tTotal      int64                             `thrift:\"total,4\" form:\"total\" json:\"total,string\"`\n\tBaseResp   *base.BaseResp                    `thrift:\"baseResp,255\" form:\"baseResp\" json:\"baseResp\" query:\"baseResp\"`\n}\n\nfunc NewGetDevPluginListResponse() *GetDevPluginListResponse {\n\treturn &GetDevPluginListResponse{}\n}\n\nfunc (p *GetDevPluginListResponse) InitDefault() {\n}\n\nfunc (p *GetDevPluginListResponse) GetCode() (v int32) {\n\treturn p.Code\n}\n\nfunc (p *GetDevPluginListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *GetDevPluginListResponse) GetPluginList() (v []*common.PluginInfoForPlayground) {\n\treturn p.PluginList\n}\n\nfunc (p *GetDevPluginListResponse) GetTotal() (v int64) {\n\treturn p.Total\n}\n\nvar GetDevPluginListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetDevPluginListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetDevPluginListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetDevPluginListResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"plugin_list\",\n\t4:   \"total\",\n\t255: \"baseResp\",\n}\n\nfunc (p *GetDevPluginListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetDevPluginListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDevPluginListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetDevPluginListResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.PluginInfoForPlayground, 0, size)\n\tvalues := make([]common.PluginInfoForPlayground, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginList = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\nfunc (p *GetDevPluginListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetDevPluginListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDevPluginListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDevPluginListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDevPluginListResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDevPluginListResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_list\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetDevPluginListResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetDevPluginListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"baseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDevPluginListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDevPluginListResponse(%+v)\", *p)\n\n}\n\ntype Convert2OpenAPIRequest struct {\n\tPluginName *string `thrift:\"plugin_name,1,optional\" form:\"plugin_name\" json:\"plugin_name,omitempty\"`\n\tPluginURL  *string `thrift:\"plugin_url,2,optional\" form:\"plugin_url\" json:\"plugin_url,omitempty\"`\n\t// import content, e.g. curl, postman, swagger\n\tData string `thrift:\"data,3,required\" form:\"data,required\" json:\"data,required\"`\n\t// ignore\n\tMergeSamePaths *bool `thrift:\"merge_same_paths,4,optional\" form:\"merge_same_paths\" json:\"merge_same_paths,omitempty\"`\n\tSpaceID        int64 `thrift:\"space_id,5\" form:\"space_id\" json:\"space_id,string\"`\n\t// ignore\n\tPluginDescription *string    `thrift:\"plugin_description,6,optional\" form:\"plugin_description\" json:\"plugin_description,omitempty\"`\n\tBase              *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewConvert2OpenAPIRequest() *Convert2OpenAPIRequest {\n\treturn &Convert2OpenAPIRequest{}\n}\n\nfunc (p *Convert2OpenAPIRequest) InitDefault() {\n}\n\nvar Convert2OpenAPIRequest_PluginName_DEFAULT string\n\nfunc (p *Convert2OpenAPIRequest) GetPluginName() (v string) {\n\tif !p.IsSetPluginName() {\n\t\treturn Convert2OpenAPIRequest_PluginName_DEFAULT\n\t}\n\treturn *p.PluginName\n}\n\nvar Convert2OpenAPIRequest_PluginURL_DEFAULT string\n\nfunc (p *Convert2OpenAPIRequest) GetPluginURL() (v string) {\n\tif !p.IsSetPluginURL() {\n\t\treturn Convert2OpenAPIRequest_PluginURL_DEFAULT\n\t}\n\treturn *p.PluginURL\n}\n\nfunc (p *Convert2OpenAPIRequest) GetData() (v string) {\n\treturn p.Data\n}\n\nvar Convert2OpenAPIRequest_MergeSamePaths_DEFAULT bool\n\nfunc (p *Convert2OpenAPIRequest) GetMergeSamePaths() (v bool) {\n\tif !p.IsSetMergeSamePaths() {\n\t\treturn Convert2OpenAPIRequest_MergeSamePaths_DEFAULT\n\t}\n\treturn *p.MergeSamePaths\n}\n\nfunc (p *Convert2OpenAPIRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar Convert2OpenAPIRequest_PluginDescription_DEFAULT string\n\nfunc (p *Convert2OpenAPIRequest) GetPluginDescription() (v string) {\n\tif !p.IsSetPluginDescription() {\n\t\treturn Convert2OpenAPIRequest_PluginDescription_DEFAULT\n\t}\n\treturn *p.PluginDescription\n}\n\nvar Convert2OpenAPIRequest_Base_DEFAULT *base.Base\n\nfunc (p *Convert2OpenAPIRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn Convert2OpenAPIRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_Convert2OpenAPIRequest = map[int16]string{\n\t1:   \"plugin_name\",\n\t2:   \"plugin_url\",\n\t3:   \"data\",\n\t4:   \"merge_same_paths\",\n\t5:   \"space_id\",\n\t6:   \"plugin_description\",\n\t255: \"Base\",\n}\n\nfunc (p *Convert2OpenAPIRequest) IsSetPluginName() bool {\n\treturn p.PluginName != nil\n}\n\nfunc (p *Convert2OpenAPIRequest) IsSetPluginURL() bool {\n\treturn p.PluginURL != nil\n}\n\nfunc (p *Convert2OpenAPIRequest) IsSetMergeSamePaths() bool {\n\treturn p.MergeSamePaths != nil\n}\n\nfunc (p *Convert2OpenAPIRequest) IsSetPluginDescription() bool {\n\treturn p.PluginDescription != nil\n}\n\nfunc (p *Convert2OpenAPIRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *Convert2OpenAPIRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Convert2OpenAPIRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_Convert2OpenAPIRequest[fieldId]))\n}\n\nfunc (p *Convert2OpenAPIRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginName = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginURL = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.MergeSamePaths = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginDescription = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *Convert2OpenAPIRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Convert2OpenAPIRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Convert2OpenAPIRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginName() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_name\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PluginName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginURL() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_url\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PluginURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Data); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMergeSamePaths() {\n\t\tif err = oprot.WriteFieldBegin(\"merge_same_paths\", thrift.BOOL, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.MergeSamePaths); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_description\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PluginDescription); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *Convert2OpenAPIRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Convert2OpenAPIRequest(%+v)\", *p)\n\n}\n\ntype Convert2OpenAPIResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\t// openapi3 document in yaml string\n\tOpenapi *string `thrift:\"openapi,3,optional\" form:\"openapi\" json:\"openapi,omitempty\" query:\"openapi\"`\n\t// plugin manifest in json string\n\tAiPlugin *string `thrift:\"ai_plugin,4,optional\" form:\"ai_plugin\" json:\"ai_plugin,omitempty\" query:\"ai_plugin\"`\n\t// protocol type\n\tPluginDataFormat *common.PluginDataFormat `thrift:\"plugin_data_format,5,optional\" form:\"plugin_data_format\" json:\"plugin_data_format,omitempty\" query:\"plugin_data_format\"`\n\t// ignore\n\tDuplicateAPIInfos []*common.DuplicateAPIInfo `thrift:\"duplicate_api_infos,6\" form:\"duplicate_api_infos\" json:\"duplicate_api_infos\" query:\"duplicate_api_infos\"`\n\t// BaseResp.StatusCode\n\t//     DuplicateAPIPath: Duplicate API Path in imported file with request. MergeSamePaths = false\n\t//     InvalidParam: Other errors\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewConvert2OpenAPIResponse() *Convert2OpenAPIResponse {\n\treturn &Convert2OpenAPIResponse{}\n}\n\nfunc (p *Convert2OpenAPIResponse) InitDefault() {\n}\n\nfunc (p *Convert2OpenAPIResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *Convert2OpenAPIResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar Convert2OpenAPIResponse_Openapi_DEFAULT string\n\nfunc (p *Convert2OpenAPIResponse) GetOpenapi() (v string) {\n\tif !p.IsSetOpenapi() {\n\t\treturn Convert2OpenAPIResponse_Openapi_DEFAULT\n\t}\n\treturn *p.Openapi\n}\n\nvar Convert2OpenAPIResponse_AiPlugin_DEFAULT string\n\nfunc (p *Convert2OpenAPIResponse) GetAiPlugin() (v string) {\n\tif !p.IsSetAiPlugin() {\n\t\treturn Convert2OpenAPIResponse_AiPlugin_DEFAULT\n\t}\n\treturn *p.AiPlugin\n}\n\nvar Convert2OpenAPIResponse_PluginDataFormat_DEFAULT common.PluginDataFormat\n\nfunc (p *Convert2OpenAPIResponse) GetPluginDataFormat() (v common.PluginDataFormat) {\n\tif !p.IsSetPluginDataFormat() {\n\t\treturn Convert2OpenAPIResponse_PluginDataFormat_DEFAULT\n\t}\n\treturn *p.PluginDataFormat\n}\n\nfunc (p *Convert2OpenAPIResponse) GetDuplicateAPIInfos() (v []*common.DuplicateAPIInfo) {\n\treturn p.DuplicateAPIInfos\n}\n\nvar Convert2OpenAPIResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *Convert2OpenAPIResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn Convert2OpenAPIResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_Convert2OpenAPIResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"openapi\",\n\t4:   \"ai_plugin\",\n\t5:   \"plugin_data_format\",\n\t6:   \"duplicate_api_infos\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *Convert2OpenAPIResponse) IsSetOpenapi() bool {\n\treturn p.Openapi != nil\n}\n\nfunc (p *Convert2OpenAPIResponse) IsSetAiPlugin() bool {\n\treturn p.AiPlugin != nil\n}\n\nfunc (p *Convert2OpenAPIResponse) IsSetPluginDataFormat() bool {\n\treturn p.PluginDataFormat != nil\n}\n\nfunc (p *Convert2OpenAPIResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *Convert2OpenAPIResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Convert2OpenAPIResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Convert2OpenAPIResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Openapi = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AiPlugin = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIResponse) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *common.PluginDataFormat\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.PluginDataFormat(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginDataFormat = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIResponse) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.DuplicateAPIInfo, 0, size)\n\tvalues := make([]common.DuplicateAPIInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DuplicateAPIInfos = _field\n\treturn nil\n}\nfunc (p *Convert2OpenAPIResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *Convert2OpenAPIResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Convert2OpenAPIResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Convert2OpenAPIResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOpenapi() {\n\t\tif err = oprot.WriteFieldBegin(\"openapi\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Openapi); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAiPlugin() {\n\t\tif err = oprot.WriteFieldBegin(\"ai_plugin\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.AiPlugin); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginDataFormat() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_data_format\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginDataFormat)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIResponse) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"duplicate_api_infos\", thrift.LIST, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.DuplicateAPIInfos)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DuplicateAPIInfos {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Convert2OpenAPIResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *Convert2OpenAPIResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Convert2OpenAPIResponse(%+v)\", *p)\n\n}\n\ntype BatchCreateAPIRequest struct {\n\tPluginID int64 `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id,string\"`\n\t// plugin manifest in json string\n\tAiPlugin string `thrift:\"ai_plugin,2\" form:\"ai_plugin\" json:\"ai_plugin\"`\n\t// plugin openapi3 document in yaml string\n\tOpenapi string `thrift:\"openapi,3\" form:\"openapi\" json:\"openapi\"`\n\tSpaceID int64  `thrift:\"space_id,4\" form:\"space_id\" json:\"space_id,string\"`\n\t// ignore\n\tDevID int64 `thrift:\"dev_id,5\" form:\"dev_id\" json:\"dev_id,string\"`\n\t// whether to replace the same tool, method:subURL is unique\n\tReplaceSamePaths bool `thrift:\"replace_same_paths,6\" form:\"replace_same_paths\" json:\"replace_same_paths\"`\n\t// ignore\n\tPathsToReplace []*common.PluginAPIInfo `thrift:\"paths_to_replace,7,optional\" form:\"paths_to_replace\" json:\"paths_to_replace,omitempty\"`\n\t// ignore\n\tEditVersion *int32     `thrift:\"edit_version,8,optional\" form:\"edit_version\" json:\"edit_version,omitempty\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewBatchCreateAPIRequest() *BatchCreateAPIRequest {\n\treturn &BatchCreateAPIRequest{}\n}\n\nfunc (p *BatchCreateAPIRequest) InitDefault() {\n}\n\nfunc (p *BatchCreateAPIRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *BatchCreateAPIRequest) GetAiPlugin() (v string) {\n\treturn p.AiPlugin\n}\n\nfunc (p *BatchCreateAPIRequest) GetOpenapi() (v string) {\n\treturn p.Openapi\n}\n\nfunc (p *BatchCreateAPIRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *BatchCreateAPIRequest) GetDevID() (v int64) {\n\treturn p.DevID\n}\n\nfunc (p *BatchCreateAPIRequest) GetReplaceSamePaths() (v bool) {\n\treturn p.ReplaceSamePaths\n}\n\nvar BatchCreateAPIRequest_PathsToReplace_DEFAULT []*common.PluginAPIInfo\n\nfunc (p *BatchCreateAPIRequest) GetPathsToReplace() (v []*common.PluginAPIInfo) {\n\tif !p.IsSetPathsToReplace() {\n\t\treturn BatchCreateAPIRequest_PathsToReplace_DEFAULT\n\t}\n\treturn p.PathsToReplace\n}\n\nvar BatchCreateAPIRequest_EditVersion_DEFAULT int32\n\nfunc (p *BatchCreateAPIRequest) GetEditVersion() (v int32) {\n\tif !p.IsSetEditVersion() {\n\t\treturn BatchCreateAPIRequest_EditVersion_DEFAULT\n\t}\n\treturn *p.EditVersion\n}\n\nvar BatchCreateAPIRequest_Base_DEFAULT *base.Base\n\nfunc (p *BatchCreateAPIRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn BatchCreateAPIRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_BatchCreateAPIRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"ai_plugin\",\n\t3:   \"openapi\",\n\t4:   \"space_id\",\n\t5:   \"dev_id\",\n\t6:   \"replace_same_paths\",\n\t7:   \"paths_to_replace\",\n\t8:   \"edit_version\",\n\t255: \"Base\",\n}\n\nfunc (p *BatchCreateAPIRequest) IsSetPathsToReplace() bool {\n\treturn p.PathsToReplace != nil\n}\n\nfunc (p *BatchCreateAPIRequest) IsSetEditVersion() bool {\n\treturn p.EditVersion != nil\n}\n\nfunc (p *BatchCreateAPIRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *BatchCreateAPIRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BatchCreateAPIRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BatchCreateAPIRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AiPlugin = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Openapi = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DevID = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReplaceSamePaths = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIRequest) ReadField7(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.PluginAPIInfo, 0, size)\n\tvalues := make([]common.PluginAPIInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PathsToReplace = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *BatchCreateAPIRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchCreateAPIRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BatchCreateAPIRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ai_plugin\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AiPlugin); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"openapi\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Openapi); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dev_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.DevID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"replace_same_paths\", thrift.BOOL, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.ReplaceSamePaths); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPathsToReplace() {\n\t\tif err = oprot.WriteFieldBegin(\"paths_to_replace\", thrift.LIST, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PathsToReplace)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PathsToReplace {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.EditVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BatchCreateAPIRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BatchCreateAPIRequest(%+v)\", *p)\n\n}\n\ntype BatchCreateAPIResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\t// PathsToReplace represents the tools to override,\n\t// If BaseResp. StatusCode = DuplicateAPIPath, then PathsToReplace is not empty\n\tPathsDuplicated []*common.PluginAPIInfo `thrift:\"paths_duplicated,3,optional\" form:\"paths_duplicated\" json:\"paths_duplicated,omitempty\" query:\"paths_duplicated\"`\n\tPathsCreated    []*common.PluginAPIInfo `thrift:\"paths_created,4,optional\" form:\"paths_created\" json:\"paths_created,omitempty\" query:\"paths_created\"`\n\tEditVersion     int32                   `thrift:\"edit_version,5\" form:\"edit_version\" json:\"edit_version\" query:\"edit_version\"`\n\t// BaseResp.StatusCode\n\t//     DuplicateAPIPath: There is a duplicate API Path with request. ReplaceDupPath = false\n\t//     InvalidParam: Other errors\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewBatchCreateAPIResponse() *BatchCreateAPIResponse {\n\treturn &BatchCreateAPIResponse{}\n}\n\nfunc (p *BatchCreateAPIResponse) InitDefault() {\n}\n\nfunc (p *BatchCreateAPIResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *BatchCreateAPIResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar BatchCreateAPIResponse_PathsDuplicated_DEFAULT []*common.PluginAPIInfo\n\nfunc (p *BatchCreateAPIResponse) GetPathsDuplicated() (v []*common.PluginAPIInfo) {\n\tif !p.IsSetPathsDuplicated() {\n\t\treturn BatchCreateAPIResponse_PathsDuplicated_DEFAULT\n\t}\n\treturn p.PathsDuplicated\n}\n\nvar BatchCreateAPIResponse_PathsCreated_DEFAULT []*common.PluginAPIInfo\n\nfunc (p *BatchCreateAPIResponse) GetPathsCreated() (v []*common.PluginAPIInfo) {\n\tif !p.IsSetPathsCreated() {\n\t\treturn BatchCreateAPIResponse_PathsCreated_DEFAULT\n\t}\n\treturn p.PathsCreated\n}\n\nfunc (p *BatchCreateAPIResponse) GetEditVersion() (v int32) {\n\treturn p.EditVersion\n}\n\nvar BatchCreateAPIResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *BatchCreateAPIResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn BatchCreateAPIResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_BatchCreateAPIResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"paths_duplicated\",\n\t4:   \"paths_created\",\n\t5:   \"edit_version\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *BatchCreateAPIResponse) IsSetPathsDuplicated() bool {\n\treturn p.PathsDuplicated != nil\n}\n\nfunc (p *BatchCreateAPIResponse) IsSetPathsCreated() bool {\n\treturn p.PathsCreated != nil\n}\n\nfunc (p *BatchCreateAPIResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *BatchCreateAPIResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BatchCreateAPIResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_BatchCreateAPIResponse[fieldId]))\n}\n\nfunc (p *BatchCreateAPIResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.PluginAPIInfo, 0, size)\n\tvalues := make([]common.PluginAPIInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PathsDuplicated = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.PluginAPIInfo, 0, size)\n\tvalues := make([]common.PluginAPIInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PathsCreated = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIResponse) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EditVersion = _field\n\treturn nil\n}\nfunc (p *BatchCreateAPIResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *BatchCreateAPIResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchCreateAPIResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BatchCreateAPIResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPathsDuplicated() {\n\t\tif err = oprot.WriteFieldBegin(\"paths_duplicated\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PathsDuplicated)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PathsDuplicated {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPathsCreated() {\n\t\tif err = oprot.WriteFieldBegin(\"paths_created\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PathsCreated)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PathsCreated {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"edit_version\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.EditVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BatchCreateAPIResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BatchCreateAPIResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BatchCreateAPIResponse(%+v)\", *p)\n\n}\n\ntype RevokeAuthTokenRequest struct {\n\tPluginID int64 `thrift:\"plugin_id,1,required\" form:\"plugin_id,required\" json:\"plugin_id,string,required\"`\n\t// If not passed using uid assignment bot_id = connector_uid\n\tBotID       *int64     `thrift:\"bot_id,2,optional\" form:\"bot_id\" json:\"bot_id,string,omitempty\"`\n\tContextType *int32     `thrift:\"context_type,3,optional\" form:\"context_type\" json:\"context_type,omitempty\"`\n\tBase        *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewRevokeAuthTokenRequest() *RevokeAuthTokenRequest {\n\treturn &RevokeAuthTokenRequest{}\n}\n\nfunc (p *RevokeAuthTokenRequest) InitDefault() {\n}\n\nfunc (p *RevokeAuthTokenRequest) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nvar RevokeAuthTokenRequest_BotID_DEFAULT int64\n\nfunc (p *RevokeAuthTokenRequest) GetBotID() (v int64) {\n\tif !p.IsSetBotID() {\n\t\treturn RevokeAuthTokenRequest_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar RevokeAuthTokenRequest_ContextType_DEFAULT int32\n\nfunc (p *RevokeAuthTokenRequest) GetContextType() (v int32) {\n\tif !p.IsSetContextType() {\n\t\treturn RevokeAuthTokenRequest_ContextType_DEFAULT\n\t}\n\treturn *p.ContextType\n}\n\nvar RevokeAuthTokenRequest_Base_DEFAULT *base.Base\n\nfunc (p *RevokeAuthTokenRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn RevokeAuthTokenRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_RevokeAuthTokenRequest = map[int16]string{\n\t1:   \"plugin_id\",\n\t2:   \"bot_id\",\n\t3:   \"context_type\",\n\t255: \"Base\",\n}\n\nfunc (p *RevokeAuthTokenRequest) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *RevokeAuthTokenRequest) IsSetContextType() bool {\n\treturn p.ContextType != nil\n}\n\nfunc (p *RevokeAuthTokenRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *RevokeAuthTokenRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetPluginID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetPluginID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetPluginID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RevokeAuthTokenRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_RevokeAuthTokenRequest[fieldId]))\n}\n\nfunc (p *RevokeAuthTokenRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *RevokeAuthTokenRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *RevokeAuthTokenRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ContextType = _field\n\treturn nil\n}\nfunc (p *RevokeAuthTokenRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *RevokeAuthTokenRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RevokeAuthTokenRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RevokeAuthTokenRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *RevokeAuthTokenRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *RevokeAuthTokenRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContextType() {\n\t\tif err = oprot.WriteFieldBegin(\"context_type\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.ContextType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *RevokeAuthTokenRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RevokeAuthTokenRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RevokeAuthTokenRequest(%+v)\", *p)\n\n}\n\ntype RevokeAuthTokenResponse struct {\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewRevokeAuthTokenResponse() *RevokeAuthTokenResponse {\n\treturn &RevokeAuthTokenResponse{}\n}\n\nfunc (p *RevokeAuthTokenResponse) InitDefault() {\n}\n\nvar RevokeAuthTokenResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *RevokeAuthTokenResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn RevokeAuthTokenResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_RevokeAuthTokenResponse = map[int16]string{\n\t255: \"BaseResp\",\n}\n\nfunc (p *RevokeAuthTokenResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *RevokeAuthTokenResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_RevokeAuthTokenResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_RevokeAuthTokenResponse[fieldId]))\n}\n\nfunc (p *RevokeAuthTokenResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *RevokeAuthTokenResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RevokeAuthTokenResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *RevokeAuthTokenResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *RevokeAuthTokenResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"RevokeAuthTokenResponse(%+v)\", *p)\n\n}\n\ntype OAuthPluginInfo struct {\n\tPluginID int64 `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id,string\" query:\"plugin_id\"`\n\t// user authorization status\n\tStatus common.OAuthStatus `thrift:\"status,2\" form:\"status\" json:\"status\" query:\"status\"`\n\t// Plugin name\n\tName string `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\t// plugin avatar\n\tPluginIcon string `thrift:\"plugin_icon,4\" form:\"plugin_icon\" json:\"plugin_icon\" query:\"plugin_icon\"`\n}\n\nfunc NewOAuthPluginInfo() *OAuthPluginInfo {\n\treturn &OAuthPluginInfo{}\n}\n\nfunc (p *OAuthPluginInfo) InitDefault() {\n}\n\nfunc (p *OAuthPluginInfo) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *OAuthPluginInfo) GetStatus() (v common.OAuthStatus) {\n\treturn p.Status\n}\n\nfunc (p *OAuthPluginInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *OAuthPluginInfo) GetPluginIcon() (v string) {\n\treturn p.PluginIcon\n}\n\nvar fieldIDToName_OAuthPluginInfo = map[int16]string{\n\t1: \"plugin_id\",\n\t2: \"status\",\n\t3: \"name\",\n\t4: \"plugin_icon\",\n}\n\nfunc (p *OAuthPluginInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OAuthPluginInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OAuthPluginInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *OAuthPluginInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field common.OAuthStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.OAuthStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *OAuthPluginInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *OAuthPluginInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginIcon = _field\n\treturn nil\n}\n\nfunc (p *OAuthPluginInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OAuthPluginInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OAuthPluginInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OAuthPluginInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OAuthPluginInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *OAuthPluginInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_icon\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginIcon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *OAuthPluginInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OAuthPluginInfo(%+v)\", *p)\n\n}\n\ntype GetQueriedOAuthPluginListRequest struct {\n\tBotID int64      `thrift:\"bot_id,1,required\" form:\"bot_id,required\" json:\"bot_id,string,required\" query:\"bot_id,required\"`\n\tBase  *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewGetQueriedOAuthPluginListRequest() *GetQueriedOAuthPluginListRequest {\n\treturn &GetQueriedOAuthPluginListRequest{}\n}\n\nfunc (p *GetQueriedOAuthPluginListRequest) InitDefault() {\n}\n\nfunc (p *GetQueriedOAuthPluginListRequest) GetBotID() (v int64) {\n\treturn p.BotID\n}\n\nvar GetQueriedOAuthPluginListRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetQueriedOAuthPluginListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetQueriedOAuthPluginListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetQueriedOAuthPluginListRequest = map[int16]string{\n\t1:   \"bot_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetQueriedOAuthPluginListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetQueriedOAuthPluginListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBotID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBotID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBotID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetQueriedOAuthPluginListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetQueriedOAuthPluginListRequest[fieldId]))\n}\n\nfunc (p *GetQueriedOAuthPluginListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *GetQueriedOAuthPluginListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetQueriedOAuthPluginListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetQueriedOAuthPluginListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetQueriedOAuthPluginListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.BotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetQueriedOAuthPluginListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetQueriedOAuthPluginListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetQueriedOAuthPluginListRequest(%+v)\", *p)\n\n}\n\ntype GetQueriedOAuthPluginListResponse struct {\n\tOauthPluginList []*OAuthPluginInfo `thrift:\"oauth_plugin_list,1\" form:\"oauth_plugin_list\" json:\"oauth_plugin_list\" query:\"oauth_plugin_list\"`\n\tCode            int64              `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg             string             `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp        *base.BaseResp     `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetQueriedOAuthPluginListResponse() *GetQueriedOAuthPluginListResponse {\n\treturn &GetQueriedOAuthPluginListResponse{}\n}\n\nfunc (p *GetQueriedOAuthPluginListResponse) InitDefault() {\n}\n\nfunc (p *GetQueriedOAuthPluginListResponse) GetOauthPluginList() (v []*OAuthPluginInfo) {\n\treturn p.OauthPluginList\n}\n\nfunc (p *GetQueriedOAuthPluginListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetQueriedOAuthPluginListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetQueriedOAuthPluginListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetQueriedOAuthPluginListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetQueriedOAuthPluginListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetQueriedOAuthPluginListResponse = map[int16]string{\n\t1:   \"oauth_plugin_list\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetQueriedOAuthPluginListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetQueriedOAuthPluginListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetQueriedOAuthPluginListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetQueriedOAuthPluginListResponse[fieldId]))\n}\n\nfunc (p *GetQueriedOAuthPluginListResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*OAuthPluginInfo, 0, size)\n\tvalues := make([]OAuthPluginInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OauthPluginList = _field\n\treturn nil\n}\nfunc (p *GetQueriedOAuthPluginListResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetQueriedOAuthPluginListResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetQueriedOAuthPluginListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetQueriedOAuthPluginListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetQueriedOAuthPluginListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetQueriedOAuthPluginListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"oauth_plugin_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OauthPluginList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.OauthPluginList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetQueriedOAuthPluginListResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetQueriedOAuthPluginListResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetQueriedOAuthPluginListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetQueriedOAuthPluginListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetQueriedOAuthPluginListResponse(%+v)\", *p)\n\n}\n\ntype PluginDevelopService interface {\n\tGetOAuthSchema(ctx context.Context, request *GetOAuthSchemaRequest) (r *GetOAuthSchemaResponse, err error)\n\n\tGetOAuthSchemaAPI(ctx context.Context, request *GetOAuthSchemaRequest) (r *GetOAuthSchemaResponse, err error)\n\t// Get a list of published workflows, plugins, or details of multiple plugins\n\tGetPlaygroundPluginList(ctx context.Context, request *GetPlaygroundPluginListRequest) (r *GetPlaygroundPluginListResponse, err error)\n\t// Creating plugins with code\n\tRegisterPlugin(ctx context.Context, request *RegisterPluginRequest) (r *RegisterPluginResponse, err error)\n\t// Create plugins through UI\n\tRegisterPluginMeta(ctx context.Context, request *RegisterPluginMetaRequest) (r *RegisterPluginMetaResponse, err error)\n\t// Get a list of plug-in tools, or multiple tool details\n\tGetPluginAPIs(ctx context.Context, request *GetPluginAPIsRequest) (r *GetPluginAPIsResponse, err error)\n\t// Get plugin details\n\tGetPluginInfo(ctx context.Context, request *GetPluginInfoRequest) (r *GetPluginInfoResponse, err error)\n\t// Updated list of tools compared to the most recent release\n\tGetUpdatedAPIs(ctx context.Context, request *GetUpdatedAPIsRequest) (r *GetUpdatedAPIsResponse, err error)\n\n\tGetOAuthStatus(ctx context.Context, request *GetOAuthStatusRequest) (r *GetOAuthStatusResponse, err error)\n\n\tCheckAndLockPluginEdit(ctx context.Context, request *CheckAndLockPluginEditRequest) (r *CheckAndLockPluginEditResponse, err error)\n\n\tUnlockPluginEdit(ctx context.Context, request *UnlockPluginEditRequest) (r *UnlockPluginEditResponse, err error)\n\t// Update plugins via code\n\tUpdatePlugin(ctx context.Context, request *UpdatePluginRequest) (r *UpdatePluginResponse, err error)\n\t// removal tool\n\tDeleteAPI(ctx context.Context, request *DeleteAPIRequest) (r *DeleteAPIResponse, err error)\n\t// Remove plugin\n\tDelPlugin(ctx context.Context, request *DelPluginRequest) (r *DelPluginResponse, err error)\n\t// publishing plugin\n\tPublishPlugin(ctx context.Context, request *PublishPluginRequest) (r *PublishPluginResponse, err error)\n\t// Update plugins via UI\n\tUpdatePluginMeta(ctx context.Context, request *UpdatePluginMetaRequest) (r *UpdatePluginMetaResponse, err error)\n\n\tGetBotDefaultParams(ctx context.Context, request *GetBotDefaultParamsRequest) (r *GetBotDefaultParamsResponse, err error)\n\n\tUpdateBotDefaultParams(ctx context.Context, request *UpdateBotDefaultParamsRequest) (r *UpdateBotDefaultParamsResponse, err error)\n\t// creation tool\n\tCreateAPI(ctx context.Context, request *CreateAPIRequest) (r *CreateAPIResponse, err error)\n\t// update tool\n\tUpdateAPI(ctx context.Context, request *UpdateAPIRequest) (r *UpdateAPIResponse, err error)\n\n\tGetUserAuthority(ctx context.Context, request *GetUserAuthorityRequest) (r *GetUserAuthorityResponse, err error)\n\n\tDebugAPI(ctx context.Context, request *DebugAPIRequest) (r *DebugAPIResponse, err error)\n\n\tGetPluginNextVersion(ctx context.Context, request *GetPluginNextVersionRequest) (r *GetPluginNextVersionResponse, err error)\n\n\tGetDevPluginList(ctx context.Context, request *GetDevPluginListRequest) (r *GetDevPluginListResponse, err error)\n\t// Protocol conversion, such as converting curl and mail carrier collection protocols to openapi3 protocols\n\tConvert2OpenAPI(ctx context.Context, request *Convert2OpenAPIRequest) (r *Convert2OpenAPIResponse, err error)\n\t// Batch creation tool, currently used with the Convert2 OpenAPI interface\n\tBatchCreateAPI(ctx context.Context, request *BatchCreateAPIRequest) (r *BatchCreateAPIResponse, err error)\n\n\tRevokeAuthToken(ctx context.Context, request *RevokeAuthTokenRequest) (r *RevokeAuthTokenResponse, err error)\n\n\tGetQueriedOAuthPluginList(ctx context.Context, request *GetQueriedOAuthPluginListRequest) (r *GetQueriedOAuthPluginListResponse, err error)\n}\n\ntype PluginDevelopServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewPluginDevelopServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *PluginDevelopServiceClient {\n\treturn &PluginDevelopServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewPluginDevelopServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *PluginDevelopServiceClient {\n\treturn &PluginDevelopServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewPluginDevelopServiceClient(c thrift.TClient) *PluginDevelopServiceClient {\n\treturn &PluginDevelopServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *PluginDevelopServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *PluginDevelopServiceClient) GetOAuthSchema(ctx context.Context, request *GetOAuthSchemaRequest) (r *GetOAuthSchemaResponse, err error) {\n\tvar _args PluginDevelopServiceGetOAuthSchemaArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetOAuthSchemaResult\n\tif err = p.Client_().Call(ctx, \"GetOAuthSchema\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) GetOAuthSchemaAPI(ctx context.Context, request *GetOAuthSchemaRequest) (r *GetOAuthSchemaResponse, err error) {\n\tvar _args PluginDevelopServiceGetOAuthSchemaAPIArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetOAuthSchemaAPIResult\n\tif err = p.Client_().Call(ctx, \"GetOAuthSchemaAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) GetPlaygroundPluginList(ctx context.Context, request *GetPlaygroundPluginListRequest) (r *GetPlaygroundPluginListResponse, err error) {\n\tvar _args PluginDevelopServiceGetPlaygroundPluginListArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetPlaygroundPluginListResult\n\tif err = p.Client_().Call(ctx, \"GetPlaygroundPluginList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) RegisterPlugin(ctx context.Context, request *RegisterPluginRequest) (r *RegisterPluginResponse, err error) {\n\tvar _args PluginDevelopServiceRegisterPluginArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceRegisterPluginResult\n\tif err = p.Client_().Call(ctx, \"RegisterPlugin\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) RegisterPluginMeta(ctx context.Context, request *RegisterPluginMetaRequest) (r *RegisterPluginMetaResponse, err error) {\n\tvar _args PluginDevelopServiceRegisterPluginMetaArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceRegisterPluginMetaResult\n\tif err = p.Client_().Call(ctx, \"RegisterPluginMeta\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) GetPluginAPIs(ctx context.Context, request *GetPluginAPIsRequest) (r *GetPluginAPIsResponse, err error) {\n\tvar _args PluginDevelopServiceGetPluginAPIsArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetPluginAPIsResult\n\tif err = p.Client_().Call(ctx, \"GetPluginAPIs\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) GetPluginInfo(ctx context.Context, request *GetPluginInfoRequest) (r *GetPluginInfoResponse, err error) {\n\tvar _args PluginDevelopServiceGetPluginInfoArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetPluginInfoResult\n\tif err = p.Client_().Call(ctx, \"GetPluginInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) GetUpdatedAPIs(ctx context.Context, request *GetUpdatedAPIsRequest) (r *GetUpdatedAPIsResponse, err error) {\n\tvar _args PluginDevelopServiceGetUpdatedAPIsArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetUpdatedAPIsResult\n\tif err = p.Client_().Call(ctx, \"GetUpdatedAPIs\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) GetOAuthStatus(ctx context.Context, request *GetOAuthStatusRequest) (r *GetOAuthStatusResponse, err error) {\n\tvar _args PluginDevelopServiceGetOAuthStatusArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetOAuthStatusResult\n\tif err = p.Client_().Call(ctx, \"GetOAuthStatus\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) CheckAndLockPluginEdit(ctx context.Context, request *CheckAndLockPluginEditRequest) (r *CheckAndLockPluginEditResponse, err error) {\n\tvar _args PluginDevelopServiceCheckAndLockPluginEditArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceCheckAndLockPluginEditResult\n\tif err = p.Client_().Call(ctx, \"CheckAndLockPluginEdit\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) UnlockPluginEdit(ctx context.Context, request *UnlockPluginEditRequest) (r *UnlockPluginEditResponse, err error) {\n\tvar _args PluginDevelopServiceUnlockPluginEditArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceUnlockPluginEditResult\n\tif err = p.Client_().Call(ctx, \"UnlockPluginEdit\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) UpdatePlugin(ctx context.Context, request *UpdatePluginRequest) (r *UpdatePluginResponse, err error) {\n\tvar _args PluginDevelopServiceUpdatePluginArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceUpdatePluginResult\n\tif err = p.Client_().Call(ctx, \"UpdatePlugin\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) DeleteAPI(ctx context.Context, request *DeleteAPIRequest) (r *DeleteAPIResponse, err error) {\n\tvar _args PluginDevelopServiceDeleteAPIArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceDeleteAPIResult\n\tif err = p.Client_().Call(ctx, \"DeleteAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) DelPlugin(ctx context.Context, request *DelPluginRequest) (r *DelPluginResponse, err error) {\n\tvar _args PluginDevelopServiceDelPluginArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceDelPluginResult\n\tif err = p.Client_().Call(ctx, \"DelPlugin\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) PublishPlugin(ctx context.Context, request *PublishPluginRequest) (r *PublishPluginResponse, err error) {\n\tvar _args PluginDevelopServicePublishPluginArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServicePublishPluginResult\n\tif err = p.Client_().Call(ctx, \"PublishPlugin\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) UpdatePluginMeta(ctx context.Context, request *UpdatePluginMetaRequest) (r *UpdatePluginMetaResponse, err error) {\n\tvar _args PluginDevelopServiceUpdatePluginMetaArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceUpdatePluginMetaResult\n\tif err = p.Client_().Call(ctx, \"UpdatePluginMeta\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) GetBotDefaultParams(ctx context.Context, request *GetBotDefaultParamsRequest) (r *GetBotDefaultParamsResponse, err error) {\n\tvar _args PluginDevelopServiceGetBotDefaultParamsArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetBotDefaultParamsResult\n\tif err = p.Client_().Call(ctx, \"GetBotDefaultParams\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) UpdateBotDefaultParams(ctx context.Context, request *UpdateBotDefaultParamsRequest) (r *UpdateBotDefaultParamsResponse, err error) {\n\tvar _args PluginDevelopServiceUpdateBotDefaultParamsArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceUpdateBotDefaultParamsResult\n\tif err = p.Client_().Call(ctx, \"UpdateBotDefaultParams\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) CreateAPI(ctx context.Context, request *CreateAPIRequest) (r *CreateAPIResponse, err error) {\n\tvar _args PluginDevelopServiceCreateAPIArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceCreateAPIResult\n\tif err = p.Client_().Call(ctx, \"CreateAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) UpdateAPI(ctx context.Context, request *UpdateAPIRequest) (r *UpdateAPIResponse, err error) {\n\tvar _args PluginDevelopServiceUpdateAPIArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceUpdateAPIResult\n\tif err = p.Client_().Call(ctx, \"UpdateAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) GetUserAuthority(ctx context.Context, request *GetUserAuthorityRequest) (r *GetUserAuthorityResponse, err error) {\n\tvar _args PluginDevelopServiceGetUserAuthorityArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetUserAuthorityResult\n\tif err = p.Client_().Call(ctx, \"GetUserAuthority\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) DebugAPI(ctx context.Context, request *DebugAPIRequest) (r *DebugAPIResponse, err error) {\n\tvar _args PluginDevelopServiceDebugAPIArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceDebugAPIResult\n\tif err = p.Client_().Call(ctx, \"DebugAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) GetPluginNextVersion(ctx context.Context, request *GetPluginNextVersionRequest) (r *GetPluginNextVersionResponse, err error) {\n\tvar _args PluginDevelopServiceGetPluginNextVersionArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetPluginNextVersionResult\n\tif err = p.Client_().Call(ctx, \"GetPluginNextVersion\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) GetDevPluginList(ctx context.Context, request *GetDevPluginListRequest) (r *GetDevPluginListResponse, err error) {\n\tvar _args PluginDevelopServiceGetDevPluginListArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetDevPluginListResult\n\tif err = p.Client_().Call(ctx, \"GetDevPluginList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) Convert2OpenAPI(ctx context.Context, request *Convert2OpenAPIRequest) (r *Convert2OpenAPIResponse, err error) {\n\tvar _args PluginDevelopServiceConvert2OpenAPIArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceConvert2OpenAPIResult\n\tif err = p.Client_().Call(ctx, \"Convert2OpenAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) BatchCreateAPI(ctx context.Context, request *BatchCreateAPIRequest) (r *BatchCreateAPIResponse, err error) {\n\tvar _args PluginDevelopServiceBatchCreateAPIArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceBatchCreateAPIResult\n\tif err = p.Client_().Call(ctx, \"BatchCreateAPI\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) RevokeAuthToken(ctx context.Context, request *RevokeAuthTokenRequest) (r *RevokeAuthTokenResponse, err error) {\n\tvar _args PluginDevelopServiceRevokeAuthTokenArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceRevokeAuthTokenResult\n\tif err = p.Client_().Call(ctx, \"RevokeAuthToken\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *PluginDevelopServiceClient) GetQueriedOAuthPluginList(ctx context.Context, request *GetQueriedOAuthPluginListRequest) (r *GetQueriedOAuthPluginListResponse, err error) {\n\tvar _args PluginDevelopServiceGetQueriedOAuthPluginListArgs\n\t_args.Request = request\n\tvar _result PluginDevelopServiceGetQueriedOAuthPluginListResult\n\tif err = p.Client_().Call(ctx, \"GetQueriedOAuthPluginList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype PluginDevelopServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      PluginDevelopService\n}\n\nfunc (p *PluginDevelopServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *PluginDevelopServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *PluginDevelopServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewPluginDevelopServiceProcessor(handler PluginDevelopService) *PluginDevelopServiceProcessor {\n\tself := &PluginDevelopServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"GetOAuthSchema\", &pluginDevelopServiceProcessorGetOAuthSchema{handler: handler})\n\tself.AddToProcessorMap(\"GetOAuthSchemaAPI\", &pluginDevelopServiceProcessorGetOAuthSchemaAPI{handler: handler})\n\tself.AddToProcessorMap(\"GetPlaygroundPluginList\", &pluginDevelopServiceProcessorGetPlaygroundPluginList{handler: handler})\n\tself.AddToProcessorMap(\"RegisterPlugin\", &pluginDevelopServiceProcessorRegisterPlugin{handler: handler})\n\tself.AddToProcessorMap(\"RegisterPluginMeta\", &pluginDevelopServiceProcessorRegisterPluginMeta{handler: handler})\n\tself.AddToProcessorMap(\"GetPluginAPIs\", &pluginDevelopServiceProcessorGetPluginAPIs{handler: handler})\n\tself.AddToProcessorMap(\"GetPluginInfo\", &pluginDevelopServiceProcessorGetPluginInfo{handler: handler})\n\tself.AddToProcessorMap(\"GetUpdatedAPIs\", &pluginDevelopServiceProcessorGetUpdatedAPIs{handler: handler})\n\tself.AddToProcessorMap(\"GetOAuthStatus\", &pluginDevelopServiceProcessorGetOAuthStatus{handler: handler})\n\tself.AddToProcessorMap(\"CheckAndLockPluginEdit\", &pluginDevelopServiceProcessorCheckAndLockPluginEdit{handler: handler})\n\tself.AddToProcessorMap(\"UnlockPluginEdit\", &pluginDevelopServiceProcessorUnlockPluginEdit{handler: handler})\n\tself.AddToProcessorMap(\"UpdatePlugin\", &pluginDevelopServiceProcessorUpdatePlugin{handler: handler})\n\tself.AddToProcessorMap(\"DeleteAPI\", &pluginDevelopServiceProcessorDeleteAPI{handler: handler})\n\tself.AddToProcessorMap(\"DelPlugin\", &pluginDevelopServiceProcessorDelPlugin{handler: handler})\n\tself.AddToProcessorMap(\"PublishPlugin\", &pluginDevelopServiceProcessorPublishPlugin{handler: handler})\n\tself.AddToProcessorMap(\"UpdatePluginMeta\", &pluginDevelopServiceProcessorUpdatePluginMeta{handler: handler})\n\tself.AddToProcessorMap(\"GetBotDefaultParams\", &pluginDevelopServiceProcessorGetBotDefaultParams{handler: handler})\n\tself.AddToProcessorMap(\"UpdateBotDefaultParams\", &pluginDevelopServiceProcessorUpdateBotDefaultParams{handler: handler})\n\tself.AddToProcessorMap(\"CreateAPI\", &pluginDevelopServiceProcessorCreateAPI{handler: handler})\n\tself.AddToProcessorMap(\"UpdateAPI\", &pluginDevelopServiceProcessorUpdateAPI{handler: handler})\n\tself.AddToProcessorMap(\"GetUserAuthority\", &pluginDevelopServiceProcessorGetUserAuthority{handler: handler})\n\tself.AddToProcessorMap(\"DebugAPI\", &pluginDevelopServiceProcessorDebugAPI{handler: handler})\n\tself.AddToProcessorMap(\"GetPluginNextVersion\", &pluginDevelopServiceProcessorGetPluginNextVersion{handler: handler})\n\tself.AddToProcessorMap(\"GetDevPluginList\", &pluginDevelopServiceProcessorGetDevPluginList{handler: handler})\n\tself.AddToProcessorMap(\"Convert2OpenAPI\", &pluginDevelopServiceProcessorConvert2OpenAPI{handler: handler})\n\tself.AddToProcessorMap(\"BatchCreateAPI\", &pluginDevelopServiceProcessorBatchCreateAPI{handler: handler})\n\tself.AddToProcessorMap(\"RevokeAuthToken\", &pluginDevelopServiceProcessorRevokeAuthToken{handler: handler})\n\tself.AddToProcessorMap(\"GetQueriedOAuthPluginList\", &pluginDevelopServiceProcessorGetQueriedOAuthPluginList{handler: handler})\n\treturn self\n}\nfunc (p *PluginDevelopServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype pluginDevelopServiceProcessorGetOAuthSchema struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetOAuthSchema) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetOAuthSchemaArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetOAuthSchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetOAuthSchemaResult{}\n\tvar retval *GetOAuthSchemaResponse\n\tif retval, err2 = p.handler.GetOAuthSchema(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetOAuthSchema: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetOAuthSchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetOAuthSchema\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorGetOAuthSchemaAPI struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetOAuthSchemaAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetOAuthSchemaAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetOAuthSchemaAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetOAuthSchemaAPIResult{}\n\tvar retval *GetOAuthSchemaResponse\n\tif retval, err2 = p.handler.GetOAuthSchemaAPI(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetOAuthSchemaAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetOAuthSchemaAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetOAuthSchemaAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorGetPlaygroundPluginList struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetPlaygroundPluginList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetPlaygroundPluginListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetPlaygroundPluginList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetPlaygroundPluginListResult{}\n\tvar retval *GetPlaygroundPluginListResponse\n\tif retval, err2 = p.handler.GetPlaygroundPluginList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetPlaygroundPluginList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetPlaygroundPluginList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetPlaygroundPluginList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorRegisterPlugin struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorRegisterPlugin) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceRegisterPluginArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"RegisterPlugin\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceRegisterPluginResult{}\n\tvar retval *RegisterPluginResponse\n\tif retval, err2 = p.handler.RegisterPlugin(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing RegisterPlugin: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"RegisterPlugin\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"RegisterPlugin\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorRegisterPluginMeta struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorRegisterPluginMeta) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceRegisterPluginMetaArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"RegisterPluginMeta\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceRegisterPluginMetaResult{}\n\tvar retval *RegisterPluginMetaResponse\n\tif retval, err2 = p.handler.RegisterPluginMeta(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing RegisterPluginMeta: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"RegisterPluginMeta\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"RegisterPluginMeta\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorGetPluginAPIs struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetPluginAPIs) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetPluginAPIsArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetPluginAPIs\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetPluginAPIsResult{}\n\tvar retval *GetPluginAPIsResponse\n\tif retval, err2 = p.handler.GetPluginAPIs(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetPluginAPIs: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetPluginAPIs\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetPluginAPIs\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorGetPluginInfo struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetPluginInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetPluginInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetPluginInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetPluginInfoResult{}\n\tvar retval *GetPluginInfoResponse\n\tif retval, err2 = p.handler.GetPluginInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetPluginInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetPluginInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetPluginInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorGetUpdatedAPIs struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetUpdatedAPIs) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetUpdatedAPIsArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetUpdatedAPIs\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetUpdatedAPIsResult{}\n\tvar retval *GetUpdatedAPIsResponse\n\tif retval, err2 = p.handler.GetUpdatedAPIs(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetUpdatedAPIs: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetUpdatedAPIs\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetUpdatedAPIs\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorGetOAuthStatus struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetOAuthStatus) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetOAuthStatusArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetOAuthStatus\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetOAuthStatusResult{}\n\tvar retval *GetOAuthStatusResponse\n\tif retval, err2 = p.handler.GetOAuthStatus(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetOAuthStatus: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetOAuthStatus\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetOAuthStatus\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorCheckAndLockPluginEdit struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorCheckAndLockPluginEdit) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceCheckAndLockPluginEditArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CheckAndLockPluginEdit\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceCheckAndLockPluginEditResult{}\n\tvar retval *CheckAndLockPluginEditResponse\n\tif retval, err2 = p.handler.CheckAndLockPluginEdit(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CheckAndLockPluginEdit: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CheckAndLockPluginEdit\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CheckAndLockPluginEdit\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorUnlockPluginEdit struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorUnlockPluginEdit) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceUnlockPluginEditArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UnlockPluginEdit\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceUnlockPluginEditResult{}\n\tvar retval *UnlockPluginEditResponse\n\tif retval, err2 = p.handler.UnlockPluginEdit(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UnlockPluginEdit: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UnlockPluginEdit\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UnlockPluginEdit\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorUpdatePlugin struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorUpdatePlugin) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceUpdatePluginArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdatePlugin\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceUpdatePluginResult{}\n\tvar retval *UpdatePluginResponse\n\tif retval, err2 = p.handler.UpdatePlugin(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdatePlugin: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdatePlugin\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdatePlugin\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorDeleteAPI struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorDeleteAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceDeleteAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceDeleteAPIResult{}\n\tvar retval *DeleteAPIResponse\n\tif retval, err2 = p.handler.DeleteAPI(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorDelPlugin struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorDelPlugin) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceDelPluginArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DelPlugin\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceDelPluginResult{}\n\tvar retval *DelPluginResponse\n\tif retval, err2 = p.handler.DelPlugin(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DelPlugin: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DelPlugin\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DelPlugin\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorPublishPlugin struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorPublishPlugin) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServicePublishPluginArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublishPlugin\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServicePublishPluginResult{}\n\tvar retval *PublishPluginResponse\n\tif retval, err2 = p.handler.PublishPlugin(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublishPlugin: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublishPlugin\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublishPlugin\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorUpdatePluginMeta struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorUpdatePluginMeta) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceUpdatePluginMetaArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdatePluginMeta\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceUpdatePluginMetaResult{}\n\tvar retval *UpdatePluginMetaResponse\n\tif retval, err2 = p.handler.UpdatePluginMeta(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdatePluginMeta: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdatePluginMeta\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdatePluginMeta\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorGetBotDefaultParams struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetBotDefaultParams) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetBotDefaultParamsArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetBotDefaultParams\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetBotDefaultParamsResult{}\n\tvar retval *GetBotDefaultParamsResponse\n\tif retval, err2 = p.handler.GetBotDefaultParams(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetBotDefaultParams: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetBotDefaultParams\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetBotDefaultParams\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorUpdateBotDefaultParams struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorUpdateBotDefaultParams) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceUpdateBotDefaultParamsArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateBotDefaultParams\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceUpdateBotDefaultParamsResult{}\n\tvar retval *UpdateBotDefaultParamsResponse\n\tif retval, err2 = p.handler.UpdateBotDefaultParams(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateBotDefaultParams: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateBotDefaultParams\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateBotDefaultParams\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorCreateAPI struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorCreateAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceCreateAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceCreateAPIResult{}\n\tvar retval *CreateAPIResponse\n\tif retval, err2 = p.handler.CreateAPI(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorUpdateAPI struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorUpdateAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceUpdateAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceUpdateAPIResult{}\n\tvar retval *UpdateAPIResponse\n\tif retval, err2 = p.handler.UpdateAPI(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorGetUserAuthority struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetUserAuthority) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetUserAuthorityArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetUserAuthority\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetUserAuthorityResult{}\n\tvar retval *GetUserAuthorityResponse\n\tif retval, err2 = p.handler.GetUserAuthority(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetUserAuthority: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetUserAuthority\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetUserAuthority\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorDebugAPI struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorDebugAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceDebugAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DebugAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceDebugAPIResult{}\n\tvar retval *DebugAPIResponse\n\tif retval, err2 = p.handler.DebugAPI(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DebugAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DebugAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DebugAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorGetPluginNextVersion struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetPluginNextVersion) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetPluginNextVersionArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetPluginNextVersion\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetPluginNextVersionResult{}\n\tvar retval *GetPluginNextVersionResponse\n\tif retval, err2 = p.handler.GetPluginNextVersion(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetPluginNextVersion: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetPluginNextVersion\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetPluginNextVersion\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorGetDevPluginList struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetDevPluginList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetDevPluginListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDevPluginList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetDevPluginListResult{}\n\tvar retval *GetDevPluginListResponse\n\tif retval, err2 = p.handler.GetDevPluginList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDevPluginList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDevPluginList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDevPluginList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorConvert2OpenAPI struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorConvert2OpenAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceConvert2OpenAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"Convert2OpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceConvert2OpenAPIResult{}\n\tvar retval *Convert2OpenAPIResponse\n\tif retval, err2 = p.handler.Convert2OpenAPI(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing Convert2OpenAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"Convert2OpenAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"Convert2OpenAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorBatchCreateAPI struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorBatchCreateAPI) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceBatchCreateAPIArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"BatchCreateAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceBatchCreateAPIResult{}\n\tvar retval *BatchCreateAPIResponse\n\tif retval, err2 = p.handler.BatchCreateAPI(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing BatchCreateAPI: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"BatchCreateAPI\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"BatchCreateAPI\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorRevokeAuthToken struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorRevokeAuthToken) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceRevokeAuthTokenArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"RevokeAuthToken\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceRevokeAuthTokenResult{}\n\tvar retval *RevokeAuthTokenResponse\n\tif retval, err2 = p.handler.RevokeAuthToken(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing RevokeAuthToken: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"RevokeAuthToken\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"RevokeAuthToken\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype pluginDevelopServiceProcessorGetQueriedOAuthPluginList struct {\n\thandler PluginDevelopService\n}\n\nfunc (p *pluginDevelopServiceProcessorGetQueriedOAuthPluginList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := PluginDevelopServiceGetQueriedOAuthPluginListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetQueriedOAuthPluginList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := PluginDevelopServiceGetQueriedOAuthPluginListResult{}\n\tvar retval *GetQueriedOAuthPluginListResponse\n\tif retval, err2 = p.handler.GetQueriedOAuthPluginList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetQueriedOAuthPluginList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetQueriedOAuthPluginList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetQueriedOAuthPluginList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype PluginDevelopServiceGetOAuthSchemaArgs struct {\n\tRequest *GetOAuthSchemaRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetOAuthSchemaArgs() *PluginDevelopServiceGetOAuthSchemaArgs {\n\treturn &PluginDevelopServiceGetOAuthSchemaArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetOAuthSchemaArgs_Request_DEFAULT *GetOAuthSchemaRequest\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaArgs) GetRequest() (v *GetOAuthSchemaRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetOAuthSchemaArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetOAuthSchemaArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetOAuthSchemaArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetOAuthSchemaRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOAuthSchema_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetOAuthSchemaArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetOAuthSchemaResult struct {\n\tSuccess *GetOAuthSchemaResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetOAuthSchemaResult() *PluginDevelopServiceGetOAuthSchemaResult {\n\treturn &PluginDevelopServiceGetOAuthSchemaResult{}\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetOAuthSchemaResult_Success_DEFAULT *GetOAuthSchemaResponse\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaResult) GetSuccess() (v *GetOAuthSchemaResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetOAuthSchemaResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetOAuthSchemaResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetOAuthSchemaResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetOAuthSchemaResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOAuthSchema_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetOAuthSchemaResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetOAuthSchemaAPIArgs struct {\n\tRequest *GetOAuthSchemaRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetOAuthSchemaAPIArgs() *PluginDevelopServiceGetOAuthSchemaAPIArgs {\n\treturn &PluginDevelopServiceGetOAuthSchemaAPIArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetOAuthSchemaAPIArgs_Request_DEFAULT *GetOAuthSchemaRequest\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIArgs) GetRequest() (v *GetOAuthSchemaRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetOAuthSchemaAPIArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetOAuthSchemaAPIArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetOAuthSchemaAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetOAuthSchemaRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOAuthSchemaAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetOAuthSchemaAPIArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetOAuthSchemaAPIResult struct {\n\tSuccess *GetOAuthSchemaResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetOAuthSchemaAPIResult() *PluginDevelopServiceGetOAuthSchemaAPIResult {\n\treturn &PluginDevelopServiceGetOAuthSchemaAPIResult{}\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetOAuthSchemaAPIResult_Success_DEFAULT *GetOAuthSchemaResponse\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIResult) GetSuccess() (v *GetOAuthSchemaResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetOAuthSchemaAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetOAuthSchemaAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetOAuthSchemaAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetOAuthSchemaResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOAuthSchemaAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthSchemaAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetOAuthSchemaAPIResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetPlaygroundPluginListArgs struct {\n\tRequest *GetPlaygroundPluginListRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetPlaygroundPluginListArgs() *PluginDevelopServiceGetPlaygroundPluginListArgs {\n\treturn &PluginDevelopServiceGetPlaygroundPluginListArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetPlaygroundPluginListArgs_Request_DEFAULT *GetPlaygroundPluginListRequest\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListArgs) GetRequest() (v *GetPlaygroundPluginListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetPlaygroundPluginListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetPlaygroundPluginListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetPlaygroundPluginListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetPlaygroundPluginListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPlaygroundPluginList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetPlaygroundPluginListArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetPlaygroundPluginListResult struct {\n\tSuccess *GetPlaygroundPluginListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetPlaygroundPluginListResult() *PluginDevelopServiceGetPlaygroundPluginListResult {\n\treturn &PluginDevelopServiceGetPlaygroundPluginListResult{}\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetPlaygroundPluginListResult_Success_DEFAULT *GetPlaygroundPluginListResponse\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListResult) GetSuccess() (v *GetPlaygroundPluginListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetPlaygroundPluginListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetPlaygroundPluginListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetPlaygroundPluginListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetPlaygroundPluginListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPlaygroundPluginList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPlaygroundPluginListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetPlaygroundPluginListResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceRegisterPluginArgs struct {\n\tRequest *RegisterPluginRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceRegisterPluginArgs() *PluginDevelopServiceRegisterPluginArgs {\n\treturn &PluginDevelopServiceRegisterPluginArgs{}\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceRegisterPluginArgs_Request_DEFAULT *RegisterPluginRequest\n\nfunc (p *PluginDevelopServiceRegisterPluginArgs) GetRequest() (v *RegisterPluginRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceRegisterPluginArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceRegisterPluginArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceRegisterPluginArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewRegisterPluginRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RegisterPlugin_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceRegisterPluginArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceRegisterPluginResult struct {\n\tSuccess *RegisterPluginResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceRegisterPluginResult() *PluginDevelopServiceRegisterPluginResult {\n\treturn &PluginDevelopServiceRegisterPluginResult{}\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginResult) InitDefault() {\n}\n\nvar PluginDevelopServiceRegisterPluginResult_Success_DEFAULT *RegisterPluginResponse\n\nfunc (p *PluginDevelopServiceRegisterPluginResult) GetSuccess() (v *RegisterPluginResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceRegisterPluginResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceRegisterPluginResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceRegisterPluginResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewRegisterPluginResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RegisterPlugin_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceRegisterPluginResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceRegisterPluginMetaArgs struct {\n\tRequest *RegisterPluginMetaRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceRegisterPluginMetaArgs() *PluginDevelopServiceRegisterPluginMetaArgs {\n\treturn &PluginDevelopServiceRegisterPluginMetaArgs{}\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceRegisterPluginMetaArgs_Request_DEFAULT *RegisterPluginMetaRequest\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaArgs) GetRequest() (v *RegisterPluginMetaRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceRegisterPluginMetaArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceRegisterPluginMetaArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceRegisterPluginMetaArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewRegisterPluginMetaRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RegisterPluginMeta_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceRegisterPluginMetaArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceRegisterPluginMetaResult struct {\n\tSuccess *RegisterPluginMetaResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceRegisterPluginMetaResult() *PluginDevelopServiceRegisterPluginMetaResult {\n\treturn &PluginDevelopServiceRegisterPluginMetaResult{}\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaResult) InitDefault() {\n}\n\nvar PluginDevelopServiceRegisterPluginMetaResult_Success_DEFAULT *RegisterPluginMetaResponse\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaResult) GetSuccess() (v *RegisterPluginMetaResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceRegisterPluginMetaResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceRegisterPluginMetaResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceRegisterPluginMetaResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewRegisterPluginMetaResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RegisterPluginMeta_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRegisterPluginMetaResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceRegisterPluginMetaResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetPluginAPIsArgs struct {\n\tRequest *GetPluginAPIsRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetPluginAPIsArgs() *PluginDevelopServiceGetPluginAPIsArgs {\n\treturn &PluginDevelopServiceGetPluginAPIsArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetPluginAPIsArgs_Request_DEFAULT *GetPluginAPIsRequest\n\nfunc (p *PluginDevelopServiceGetPluginAPIsArgs) GetRequest() (v *GetPluginAPIsRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetPluginAPIsArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetPluginAPIsArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetPluginAPIsArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetPluginAPIsRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginAPIs_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetPluginAPIsArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetPluginAPIsResult struct {\n\tSuccess *GetPluginAPIsResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetPluginAPIsResult() *PluginDevelopServiceGetPluginAPIsResult {\n\treturn &PluginDevelopServiceGetPluginAPIsResult{}\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetPluginAPIsResult_Success_DEFAULT *GetPluginAPIsResponse\n\nfunc (p *PluginDevelopServiceGetPluginAPIsResult) GetSuccess() (v *GetPluginAPIsResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetPluginAPIsResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetPluginAPIsResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetPluginAPIsResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetPluginAPIsResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginAPIs_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginAPIsResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetPluginAPIsResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetPluginInfoArgs struct {\n\tRequest *GetPluginInfoRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetPluginInfoArgs() *PluginDevelopServiceGetPluginInfoArgs {\n\treturn &PluginDevelopServiceGetPluginInfoArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetPluginInfoArgs_Request_DEFAULT *GetPluginInfoRequest\n\nfunc (p *PluginDevelopServiceGetPluginInfoArgs) GetRequest() (v *GetPluginInfoRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetPluginInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetPluginInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetPluginInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetPluginInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetPluginInfoArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetPluginInfoResult struct {\n\tSuccess *GetPluginInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetPluginInfoResult() *PluginDevelopServiceGetPluginInfoResult {\n\treturn &PluginDevelopServiceGetPluginInfoResult{}\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetPluginInfoResult_Success_DEFAULT *GetPluginInfoResponse\n\nfunc (p *PluginDevelopServiceGetPluginInfoResult) GetSuccess() (v *GetPluginInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetPluginInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetPluginInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetPluginInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetPluginInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetPluginInfoResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetUpdatedAPIsArgs struct {\n\tRequest *GetUpdatedAPIsRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetUpdatedAPIsArgs() *PluginDevelopServiceGetUpdatedAPIsArgs {\n\treturn &PluginDevelopServiceGetUpdatedAPIsArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetUpdatedAPIsArgs_Request_DEFAULT *GetUpdatedAPIsRequest\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsArgs) GetRequest() (v *GetUpdatedAPIsRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetUpdatedAPIsArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetUpdatedAPIsArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetUpdatedAPIsArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetUpdatedAPIsRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUpdatedAPIs_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetUpdatedAPIsArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetUpdatedAPIsResult struct {\n\tSuccess *GetUpdatedAPIsResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetUpdatedAPIsResult() *PluginDevelopServiceGetUpdatedAPIsResult {\n\treturn &PluginDevelopServiceGetUpdatedAPIsResult{}\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetUpdatedAPIsResult_Success_DEFAULT *GetUpdatedAPIsResponse\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsResult) GetSuccess() (v *GetUpdatedAPIsResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetUpdatedAPIsResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetUpdatedAPIsResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetUpdatedAPIsResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetUpdatedAPIsResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUpdatedAPIs_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUpdatedAPIsResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetUpdatedAPIsResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetOAuthStatusArgs struct {\n\tRequest *GetOAuthStatusRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetOAuthStatusArgs() *PluginDevelopServiceGetOAuthStatusArgs {\n\treturn &PluginDevelopServiceGetOAuthStatusArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetOAuthStatusArgs_Request_DEFAULT *GetOAuthStatusRequest\n\nfunc (p *PluginDevelopServiceGetOAuthStatusArgs) GetRequest() (v *GetOAuthStatusRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetOAuthStatusArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetOAuthStatusArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetOAuthStatusArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetOAuthStatusRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOAuthStatus_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetOAuthStatusArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetOAuthStatusResult struct {\n\tSuccess *GetOAuthStatusResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetOAuthStatusResult() *PluginDevelopServiceGetOAuthStatusResult {\n\treturn &PluginDevelopServiceGetOAuthStatusResult{}\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetOAuthStatusResult_Success_DEFAULT *GetOAuthStatusResponse\n\nfunc (p *PluginDevelopServiceGetOAuthStatusResult) GetSuccess() (v *GetOAuthStatusResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetOAuthStatusResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetOAuthStatusResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetOAuthStatusResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetOAuthStatusResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetOAuthStatus_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetOAuthStatusResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetOAuthStatusResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceCheckAndLockPluginEditArgs struct {\n\tRequest *CheckAndLockPluginEditRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceCheckAndLockPluginEditArgs() *PluginDevelopServiceCheckAndLockPluginEditArgs {\n\treturn &PluginDevelopServiceCheckAndLockPluginEditArgs{}\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceCheckAndLockPluginEditArgs_Request_DEFAULT *CheckAndLockPluginEditRequest\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditArgs) GetRequest() (v *CheckAndLockPluginEditRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceCheckAndLockPluginEditArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceCheckAndLockPluginEditArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceCheckAndLockPluginEditArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCheckAndLockPluginEditRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckAndLockPluginEdit_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceCheckAndLockPluginEditArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceCheckAndLockPluginEditResult struct {\n\tSuccess *CheckAndLockPluginEditResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceCheckAndLockPluginEditResult() *PluginDevelopServiceCheckAndLockPluginEditResult {\n\treturn &PluginDevelopServiceCheckAndLockPluginEditResult{}\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditResult) InitDefault() {\n}\n\nvar PluginDevelopServiceCheckAndLockPluginEditResult_Success_DEFAULT *CheckAndLockPluginEditResponse\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditResult) GetSuccess() (v *CheckAndLockPluginEditResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceCheckAndLockPluginEditResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceCheckAndLockPluginEditResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceCheckAndLockPluginEditResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCheckAndLockPluginEditResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckAndLockPluginEdit_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCheckAndLockPluginEditResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceCheckAndLockPluginEditResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceUnlockPluginEditArgs struct {\n\tRequest *UnlockPluginEditRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceUnlockPluginEditArgs() *PluginDevelopServiceUnlockPluginEditArgs {\n\treturn &PluginDevelopServiceUnlockPluginEditArgs{}\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceUnlockPluginEditArgs_Request_DEFAULT *UnlockPluginEditRequest\n\nfunc (p *PluginDevelopServiceUnlockPluginEditArgs) GetRequest() (v *UnlockPluginEditRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceUnlockPluginEditArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceUnlockPluginEditArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceUnlockPluginEditArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUnlockPluginEditRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UnlockPluginEdit_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceUnlockPluginEditArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceUnlockPluginEditResult struct {\n\tSuccess *UnlockPluginEditResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceUnlockPluginEditResult() *PluginDevelopServiceUnlockPluginEditResult {\n\treturn &PluginDevelopServiceUnlockPluginEditResult{}\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditResult) InitDefault() {\n}\n\nvar PluginDevelopServiceUnlockPluginEditResult_Success_DEFAULT *UnlockPluginEditResponse\n\nfunc (p *PluginDevelopServiceUnlockPluginEditResult) GetSuccess() (v *UnlockPluginEditResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceUnlockPluginEditResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceUnlockPluginEditResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceUnlockPluginEditResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUnlockPluginEditResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UnlockPluginEdit_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUnlockPluginEditResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceUnlockPluginEditResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceUpdatePluginArgs struct {\n\tRequest *UpdatePluginRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceUpdatePluginArgs() *PluginDevelopServiceUpdatePluginArgs {\n\treturn &PluginDevelopServiceUpdatePluginArgs{}\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceUpdatePluginArgs_Request_DEFAULT *UpdatePluginRequest\n\nfunc (p *PluginDevelopServiceUpdatePluginArgs) GetRequest() (v *UpdatePluginRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceUpdatePluginArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceUpdatePluginArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceUpdatePluginArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdatePluginRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePlugin_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceUpdatePluginArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceUpdatePluginResult struct {\n\tSuccess *UpdatePluginResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceUpdatePluginResult() *PluginDevelopServiceUpdatePluginResult {\n\treturn &PluginDevelopServiceUpdatePluginResult{}\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginResult) InitDefault() {\n}\n\nvar PluginDevelopServiceUpdatePluginResult_Success_DEFAULT *UpdatePluginResponse\n\nfunc (p *PluginDevelopServiceUpdatePluginResult) GetSuccess() (v *UpdatePluginResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceUpdatePluginResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceUpdatePluginResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceUpdatePluginResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdatePluginResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePlugin_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceUpdatePluginResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceDeleteAPIArgs struct {\n\tRequest *DeleteAPIRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceDeleteAPIArgs() *PluginDevelopServiceDeleteAPIArgs {\n\treturn &PluginDevelopServiceDeleteAPIArgs{}\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceDeleteAPIArgs_Request_DEFAULT *DeleteAPIRequest\n\nfunc (p *PluginDevelopServiceDeleteAPIArgs) GetRequest() (v *DeleteAPIRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceDeleteAPIArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceDeleteAPIArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceDeleteAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteAPIRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceDeleteAPIArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceDeleteAPIResult struct {\n\tSuccess *DeleteAPIResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceDeleteAPIResult() *PluginDevelopServiceDeleteAPIResult {\n\treturn &PluginDevelopServiceDeleteAPIResult{}\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIResult) InitDefault() {\n}\n\nvar PluginDevelopServiceDeleteAPIResult_Success_DEFAULT *DeleteAPIResponse\n\nfunc (p *PluginDevelopServiceDeleteAPIResult) GetSuccess() (v *DeleteAPIResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceDeleteAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceDeleteAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceDeleteAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteAPIResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDeleteAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceDeleteAPIResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceDelPluginArgs struct {\n\tRequest *DelPluginRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceDelPluginArgs() *PluginDevelopServiceDelPluginArgs {\n\treturn &PluginDevelopServiceDelPluginArgs{}\n}\n\nfunc (p *PluginDevelopServiceDelPluginArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceDelPluginArgs_Request_DEFAULT *DelPluginRequest\n\nfunc (p *PluginDevelopServiceDelPluginArgs) GetRequest() (v *DelPluginRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceDelPluginArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceDelPluginArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceDelPluginArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceDelPluginArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceDelPluginArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDelPluginArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDelPluginRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceDelPluginArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DelPlugin_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDelPluginArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDelPluginArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceDelPluginArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceDelPluginResult struct {\n\tSuccess *DelPluginResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceDelPluginResult() *PluginDevelopServiceDelPluginResult {\n\treturn &PluginDevelopServiceDelPluginResult{}\n}\n\nfunc (p *PluginDevelopServiceDelPluginResult) InitDefault() {\n}\n\nvar PluginDevelopServiceDelPluginResult_Success_DEFAULT *DelPluginResponse\n\nfunc (p *PluginDevelopServiceDelPluginResult) GetSuccess() (v *DelPluginResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceDelPluginResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceDelPluginResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceDelPluginResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceDelPluginResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceDelPluginResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDelPluginResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDelPluginResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceDelPluginResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DelPlugin_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDelPluginResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDelPluginResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceDelPluginResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServicePublishPluginArgs struct {\n\tRequest *PublishPluginRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServicePublishPluginArgs() *PluginDevelopServicePublishPluginArgs {\n\treturn &PluginDevelopServicePublishPluginArgs{}\n}\n\nfunc (p *PluginDevelopServicePublishPluginArgs) InitDefault() {\n}\n\nvar PluginDevelopServicePublishPluginArgs_Request_DEFAULT *PublishPluginRequest\n\nfunc (p *PluginDevelopServicePublishPluginArgs) GetRequest() (v *PublishPluginRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServicePublishPluginArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServicePublishPluginArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServicePublishPluginArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServicePublishPluginArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServicePublishPluginArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServicePublishPluginArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPublishPluginRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServicePublishPluginArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishPlugin_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServicePublishPluginArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServicePublishPluginArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServicePublishPluginArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServicePublishPluginResult struct {\n\tSuccess *PublishPluginResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServicePublishPluginResult() *PluginDevelopServicePublishPluginResult {\n\treturn &PluginDevelopServicePublishPluginResult{}\n}\n\nfunc (p *PluginDevelopServicePublishPluginResult) InitDefault() {\n}\n\nvar PluginDevelopServicePublishPluginResult_Success_DEFAULT *PublishPluginResponse\n\nfunc (p *PluginDevelopServicePublishPluginResult) GetSuccess() (v *PublishPluginResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServicePublishPluginResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServicePublishPluginResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServicePublishPluginResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServicePublishPluginResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServicePublishPluginResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServicePublishPluginResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewPublishPluginResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServicePublishPluginResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishPlugin_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServicePublishPluginResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServicePublishPluginResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServicePublishPluginResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceUpdatePluginMetaArgs struct {\n\tRequest *UpdatePluginMetaRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceUpdatePluginMetaArgs() *PluginDevelopServiceUpdatePluginMetaArgs {\n\treturn &PluginDevelopServiceUpdatePluginMetaArgs{}\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceUpdatePluginMetaArgs_Request_DEFAULT *UpdatePluginMetaRequest\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaArgs) GetRequest() (v *UpdatePluginMetaRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceUpdatePluginMetaArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceUpdatePluginMetaArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceUpdatePluginMetaArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdatePluginMetaRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePluginMeta_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceUpdatePluginMetaArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceUpdatePluginMetaResult struct {\n\tSuccess *UpdatePluginMetaResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceUpdatePluginMetaResult() *PluginDevelopServiceUpdatePluginMetaResult {\n\treturn &PluginDevelopServiceUpdatePluginMetaResult{}\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaResult) InitDefault() {\n}\n\nvar PluginDevelopServiceUpdatePluginMetaResult_Success_DEFAULT *UpdatePluginMetaResponse\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaResult) GetSuccess() (v *UpdatePluginMetaResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceUpdatePluginMetaResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceUpdatePluginMetaResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceUpdatePluginMetaResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdatePluginMetaResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdatePluginMeta_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdatePluginMetaResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceUpdatePluginMetaResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetBotDefaultParamsArgs struct {\n\tRequest *GetBotDefaultParamsRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetBotDefaultParamsArgs() *PluginDevelopServiceGetBotDefaultParamsArgs {\n\treturn &PluginDevelopServiceGetBotDefaultParamsArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetBotDefaultParamsArgs_Request_DEFAULT *GetBotDefaultParamsRequest\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsArgs) GetRequest() (v *GetBotDefaultParamsRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetBotDefaultParamsArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetBotDefaultParamsArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetBotDefaultParamsArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetBotDefaultParamsRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotDefaultParams_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetBotDefaultParamsArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetBotDefaultParamsResult struct {\n\tSuccess *GetBotDefaultParamsResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetBotDefaultParamsResult() *PluginDevelopServiceGetBotDefaultParamsResult {\n\treturn &PluginDevelopServiceGetBotDefaultParamsResult{}\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetBotDefaultParamsResult_Success_DEFAULT *GetBotDefaultParamsResponse\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsResult) GetSuccess() (v *GetBotDefaultParamsResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetBotDefaultParamsResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetBotDefaultParamsResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetBotDefaultParamsResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetBotDefaultParamsResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetBotDefaultParams_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetBotDefaultParamsResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetBotDefaultParamsResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceUpdateBotDefaultParamsArgs struct {\n\tRequest *UpdateBotDefaultParamsRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceUpdateBotDefaultParamsArgs() *PluginDevelopServiceUpdateBotDefaultParamsArgs {\n\treturn &PluginDevelopServiceUpdateBotDefaultParamsArgs{}\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceUpdateBotDefaultParamsArgs_Request_DEFAULT *UpdateBotDefaultParamsRequest\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsArgs) GetRequest() (v *UpdateBotDefaultParamsRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceUpdateBotDefaultParamsArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceUpdateBotDefaultParamsArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceUpdateBotDefaultParamsArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateBotDefaultParamsRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateBotDefaultParams_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceUpdateBotDefaultParamsArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceUpdateBotDefaultParamsResult struct {\n\tSuccess *UpdateBotDefaultParamsResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceUpdateBotDefaultParamsResult() *PluginDevelopServiceUpdateBotDefaultParamsResult {\n\treturn &PluginDevelopServiceUpdateBotDefaultParamsResult{}\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsResult) InitDefault() {\n}\n\nvar PluginDevelopServiceUpdateBotDefaultParamsResult_Success_DEFAULT *UpdateBotDefaultParamsResponse\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsResult) GetSuccess() (v *UpdateBotDefaultParamsResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceUpdateBotDefaultParamsResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceUpdateBotDefaultParamsResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceUpdateBotDefaultParamsResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateBotDefaultParamsResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateBotDefaultParams_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateBotDefaultParamsResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceUpdateBotDefaultParamsResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceCreateAPIArgs struct {\n\tRequest *CreateAPIRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceCreateAPIArgs() *PluginDevelopServiceCreateAPIArgs {\n\treturn &PluginDevelopServiceCreateAPIArgs{}\n}\n\nfunc (p *PluginDevelopServiceCreateAPIArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceCreateAPIArgs_Request_DEFAULT *CreateAPIRequest\n\nfunc (p *PluginDevelopServiceCreateAPIArgs) GetRequest() (v *CreateAPIRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceCreateAPIArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceCreateAPIArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceCreateAPIArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceCreateAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceCreateAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCreateAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateAPIRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceCreateAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCreateAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCreateAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceCreateAPIArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceCreateAPIResult struct {\n\tSuccess *CreateAPIResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceCreateAPIResult() *PluginDevelopServiceCreateAPIResult {\n\treturn &PluginDevelopServiceCreateAPIResult{}\n}\n\nfunc (p *PluginDevelopServiceCreateAPIResult) InitDefault() {\n}\n\nvar PluginDevelopServiceCreateAPIResult_Success_DEFAULT *CreateAPIResponse\n\nfunc (p *PluginDevelopServiceCreateAPIResult) GetSuccess() (v *CreateAPIResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceCreateAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceCreateAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceCreateAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceCreateAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceCreateAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCreateAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateAPIResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceCreateAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCreateAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceCreateAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceCreateAPIResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceUpdateAPIArgs struct {\n\tRequest *UpdateAPIRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceUpdateAPIArgs() *PluginDevelopServiceUpdateAPIArgs {\n\treturn &PluginDevelopServiceUpdateAPIArgs{}\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceUpdateAPIArgs_Request_DEFAULT *UpdateAPIRequest\n\nfunc (p *PluginDevelopServiceUpdateAPIArgs) GetRequest() (v *UpdateAPIRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceUpdateAPIArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceUpdateAPIArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceUpdateAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateAPIRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceUpdateAPIArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceUpdateAPIResult struct {\n\tSuccess *UpdateAPIResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceUpdateAPIResult() *PluginDevelopServiceUpdateAPIResult {\n\treturn &PluginDevelopServiceUpdateAPIResult{}\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIResult) InitDefault() {\n}\n\nvar PluginDevelopServiceUpdateAPIResult_Success_DEFAULT *UpdateAPIResponse\n\nfunc (p *PluginDevelopServiceUpdateAPIResult) GetSuccess() (v *UpdateAPIResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceUpdateAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceUpdateAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceUpdateAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateAPIResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceUpdateAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceUpdateAPIResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetUserAuthorityArgs struct {\n\tRequest *GetUserAuthorityRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetUserAuthorityArgs() *PluginDevelopServiceGetUserAuthorityArgs {\n\treturn &PluginDevelopServiceGetUserAuthorityArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetUserAuthorityArgs_Request_DEFAULT *GetUserAuthorityRequest\n\nfunc (p *PluginDevelopServiceGetUserAuthorityArgs) GetRequest() (v *GetUserAuthorityRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetUserAuthorityArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetUserAuthorityArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetUserAuthorityArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetUserAuthorityRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserAuthority_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetUserAuthorityArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetUserAuthorityResult struct {\n\tSuccess *GetUserAuthorityResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetUserAuthorityResult() *PluginDevelopServiceGetUserAuthorityResult {\n\treturn &PluginDevelopServiceGetUserAuthorityResult{}\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetUserAuthorityResult_Success_DEFAULT *GetUserAuthorityResponse\n\nfunc (p *PluginDevelopServiceGetUserAuthorityResult) GetSuccess() (v *GetUserAuthorityResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetUserAuthorityResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetUserAuthorityResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetUserAuthorityResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetUserAuthorityResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUserAuthority_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetUserAuthorityResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetUserAuthorityResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceDebugAPIArgs struct {\n\tRequest *DebugAPIRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceDebugAPIArgs() *PluginDevelopServiceDebugAPIArgs {\n\treturn &PluginDevelopServiceDebugAPIArgs{}\n}\n\nfunc (p *PluginDevelopServiceDebugAPIArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceDebugAPIArgs_Request_DEFAULT *DebugAPIRequest\n\nfunc (p *PluginDevelopServiceDebugAPIArgs) GetRequest() (v *DebugAPIRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceDebugAPIArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceDebugAPIArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceDebugAPIArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceDebugAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceDebugAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDebugAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDebugAPIRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceDebugAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DebugAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDebugAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDebugAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceDebugAPIArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceDebugAPIResult struct {\n\tSuccess *DebugAPIResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceDebugAPIResult() *PluginDevelopServiceDebugAPIResult {\n\treturn &PluginDevelopServiceDebugAPIResult{}\n}\n\nfunc (p *PluginDevelopServiceDebugAPIResult) InitDefault() {\n}\n\nvar PluginDevelopServiceDebugAPIResult_Success_DEFAULT *DebugAPIResponse\n\nfunc (p *PluginDevelopServiceDebugAPIResult) GetSuccess() (v *DebugAPIResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceDebugAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceDebugAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceDebugAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceDebugAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceDebugAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDebugAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDebugAPIResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceDebugAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DebugAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDebugAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceDebugAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceDebugAPIResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetPluginNextVersionArgs struct {\n\tRequest *GetPluginNextVersionRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetPluginNextVersionArgs() *PluginDevelopServiceGetPluginNextVersionArgs {\n\treturn &PluginDevelopServiceGetPluginNextVersionArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetPluginNextVersionArgs_Request_DEFAULT *GetPluginNextVersionRequest\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionArgs) GetRequest() (v *GetPluginNextVersionRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetPluginNextVersionArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetPluginNextVersionArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetPluginNextVersionArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetPluginNextVersionRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginNextVersion_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetPluginNextVersionArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetPluginNextVersionResult struct {\n\tSuccess *GetPluginNextVersionResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetPluginNextVersionResult() *PluginDevelopServiceGetPluginNextVersionResult {\n\treturn &PluginDevelopServiceGetPluginNextVersionResult{}\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetPluginNextVersionResult_Success_DEFAULT *GetPluginNextVersionResponse\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionResult) GetSuccess() (v *GetPluginNextVersionResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetPluginNextVersionResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetPluginNextVersionResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetPluginNextVersionResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetPluginNextVersionResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetPluginNextVersion_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetPluginNextVersionResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetPluginNextVersionResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetDevPluginListArgs struct {\n\tRequest *GetDevPluginListRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetDevPluginListArgs() *PluginDevelopServiceGetDevPluginListArgs {\n\treturn &PluginDevelopServiceGetDevPluginListArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetDevPluginListArgs_Request_DEFAULT *GetDevPluginListRequest\n\nfunc (p *PluginDevelopServiceGetDevPluginListArgs) GetRequest() (v *GetDevPluginListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetDevPluginListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetDevPluginListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetDevPluginListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDevPluginListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDevPluginList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetDevPluginListArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetDevPluginListResult struct {\n\tSuccess *GetDevPluginListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetDevPluginListResult() *PluginDevelopServiceGetDevPluginListResult {\n\treturn &PluginDevelopServiceGetDevPluginListResult{}\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetDevPluginListResult_Success_DEFAULT *GetDevPluginListResponse\n\nfunc (p *PluginDevelopServiceGetDevPluginListResult) GetSuccess() (v *GetDevPluginListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetDevPluginListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetDevPluginListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetDevPluginListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetDevPluginListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDevPluginList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetDevPluginListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetDevPluginListResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceConvert2OpenAPIArgs struct {\n\tRequest *Convert2OpenAPIRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceConvert2OpenAPIArgs() *PluginDevelopServiceConvert2OpenAPIArgs {\n\treturn &PluginDevelopServiceConvert2OpenAPIArgs{}\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceConvert2OpenAPIArgs_Request_DEFAULT *Convert2OpenAPIRequest\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIArgs) GetRequest() (v *Convert2OpenAPIRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceConvert2OpenAPIArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceConvert2OpenAPIArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceConvert2OpenAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewConvert2OpenAPIRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Convert2OpenAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceConvert2OpenAPIArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceConvert2OpenAPIResult struct {\n\tSuccess *Convert2OpenAPIResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceConvert2OpenAPIResult() *PluginDevelopServiceConvert2OpenAPIResult {\n\treturn &PluginDevelopServiceConvert2OpenAPIResult{}\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIResult) InitDefault() {\n}\n\nvar PluginDevelopServiceConvert2OpenAPIResult_Success_DEFAULT *Convert2OpenAPIResponse\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIResult) GetSuccess() (v *Convert2OpenAPIResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceConvert2OpenAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceConvert2OpenAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceConvert2OpenAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewConvert2OpenAPIResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Convert2OpenAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceConvert2OpenAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceConvert2OpenAPIResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceBatchCreateAPIArgs struct {\n\tRequest *BatchCreateAPIRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceBatchCreateAPIArgs() *PluginDevelopServiceBatchCreateAPIArgs {\n\treturn &PluginDevelopServiceBatchCreateAPIArgs{}\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceBatchCreateAPIArgs_Request_DEFAULT *BatchCreateAPIRequest\n\nfunc (p *PluginDevelopServiceBatchCreateAPIArgs) GetRequest() (v *BatchCreateAPIRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceBatchCreateAPIArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceBatchCreateAPIArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceBatchCreateAPIArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBatchCreateAPIRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchCreateAPI_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceBatchCreateAPIArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceBatchCreateAPIResult struct {\n\tSuccess *BatchCreateAPIResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceBatchCreateAPIResult() *PluginDevelopServiceBatchCreateAPIResult {\n\treturn &PluginDevelopServiceBatchCreateAPIResult{}\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIResult) InitDefault() {\n}\n\nvar PluginDevelopServiceBatchCreateAPIResult_Success_DEFAULT *BatchCreateAPIResponse\n\nfunc (p *PluginDevelopServiceBatchCreateAPIResult) GetSuccess() (v *BatchCreateAPIResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceBatchCreateAPIResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceBatchCreateAPIResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceBatchCreateAPIResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewBatchCreateAPIResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchCreateAPI_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceBatchCreateAPIResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceBatchCreateAPIResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceRevokeAuthTokenArgs struct {\n\tRequest *RevokeAuthTokenRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceRevokeAuthTokenArgs() *PluginDevelopServiceRevokeAuthTokenArgs {\n\treturn &PluginDevelopServiceRevokeAuthTokenArgs{}\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceRevokeAuthTokenArgs_Request_DEFAULT *RevokeAuthTokenRequest\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenArgs) GetRequest() (v *RevokeAuthTokenRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceRevokeAuthTokenArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceRevokeAuthTokenArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceRevokeAuthTokenArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewRevokeAuthTokenRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RevokeAuthToken_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceRevokeAuthTokenArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceRevokeAuthTokenResult struct {\n\tSuccess *RevokeAuthTokenResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceRevokeAuthTokenResult() *PluginDevelopServiceRevokeAuthTokenResult {\n\treturn &PluginDevelopServiceRevokeAuthTokenResult{}\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenResult) InitDefault() {\n}\n\nvar PluginDevelopServiceRevokeAuthTokenResult_Success_DEFAULT *RevokeAuthTokenResponse\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenResult) GetSuccess() (v *RevokeAuthTokenResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceRevokeAuthTokenResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceRevokeAuthTokenResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceRevokeAuthTokenResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewRevokeAuthTokenResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"RevokeAuthToken_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceRevokeAuthTokenResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceRevokeAuthTokenResult(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetQueriedOAuthPluginListArgs struct {\n\tRequest *GetQueriedOAuthPluginListRequest `thrift:\"request,1\"`\n}\n\nfunc NewPluginDevelopServiceGetQueriedOAuthPluginListArgs() *PluginDevelopServiceGetQueriedOAuthPluginListArgs {\n\treturn &PluginDevelopServiceGetQueriedOAuthPluginListArgs{}\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListArgs) InitDefault() {\n}\n\nvar PluginDevelopServiceGetQueriedOAuthPluginListArgs_Request_DEFAULT *GetQueriedOAuthPluginListRequest\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListArgs) GetRequest() (v *GetQueriedOAuthPluginListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn PluginDevelopServiceGetQueriedOAuthPluginListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_PluginDevelopServiceGetQueriedOAuthPluginListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetQueriedOAuthPluginListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetQueriedOAuthPluginListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetQueriedOAuthPluginList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetQueriedOAuthPluginListArgs(%+v)\", *p)\n\n}\n\ntype PluginDevelopServiceGetQueriedOAuthPluginListResult struct {\n\tSuccess *GetQueriedOAuthPluginListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewPluginDevelopServiceGetQueriedOAuthPluginListResult() *PluginDevelopServiceGetQueriedOAuthPluginListResult {\n\treturn &PluginDevelopServiceGetQueriedOAuthPluginListResult{}\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListResult) InitDefault() {\n}\n\nvar PluginDevelopServiceGetQueriedOAuthPluginListResult_Success_DEFAULT *GetQueriedOAuthPluginListResponse\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListResult) GetSuccess() (v *GetQueriedOAuthPluginListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn PluginDevelopServiceGetQueriedOAuthPluginListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_PluginDevelopServiceGetQueriedOAuthPluginListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDevelopServiceGetQueriedOAuthPluginListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetQueriedOAuthPluginListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetQueriedOAuthPluginList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *PluginDevelopServiceGetQueriedOAuthPluginListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDevelopServiceGetQueriedOAuthPluginListResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/resource/common/resource_common.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype ResType int64\n\nconst (\n\tResType_Plugin    ResType = 1\n\tResType_Workflow  ResType = 2\n\tResType_Imageflow ResType = 3\n\tResType_Knowledge ResType = 4\n\tResType_UI        ResType = 5\n\tResType_Prompt    ResType = 6\n\tResType_Database  ResType = 7\n\tResType_Variable  ResType = 8\n\tResType_Voice     ResType = 9\n)\n\nfunc (p ResType) String() string {\n\tswitch p {\n\tcase ResType_Plugin:\n\t\treturn \"Plugin\"\n\tcase ResType_Workflow:\n\t\treturn \"Workflow\"\n\tcase ResType_Imageflow:\n\t\treturn \"Imageflow\"\n\tcase ResType_Knowledge:\n\t\treturn \"Knowledge\"\n\tcase ResType_UI:\n\t\treturn \"UI\"\n\tcase ResType_Prompt:\n\t\treturn \"Prompt\"\n\tcase ResType_Database:\n\t\treturn \"Database\"\n\tcase ResType_Variable:\n\t\treturn \"Variable\"\n\tcase ResType_Voice:\n\t\treturn \"Voice\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ResTypeFromString(s string) (ResType, error) {\n\tswitch s {\n\tcase \"Plugin\":\n\t\treturn ResType_Plugin, nil\n\tcase \"Workflow\":\n\t\treturn ResType_Workflow, nil\n\tcase \"Imageflow\":\n\t\treturn ResType_Imageflow, nil\n\tcase \"Knowledge\":\n\t\treturn ResType_Knowledge, nil\n\tcase \"UI\":\n\t\treturn ResType_UI, nil\n\tcase \"Prompt\":\n\t\treturn ResType_Prompt, nil\n\tcase \"Database\":\n\t\treturn ResType_Database, nil\n\tcase \"Variable\":\n\t\treturn ResType_Variable, nil\n\tcase \"Voice\":\n\t\treturn ResType_Voice, nil\n\t}\n\treturn ResType(0), fmt.Errorf(\"not a valid ResType string\")\n}\n\nfunc ResTypePtr(v ResType) *ResType { return &v }\nfunc (p *ResType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ResType(result.Int64)\n\treturn\n}\n\nfunc (p *ResType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PublishStatus int64\n\nconst (\n\t// unpublished\n\tPublishStatus_UnPublished PublishStatus = 1\n\t// Published\n\tPublishStatus_Published PublishStatus = 2\n)\n\nfunc (p PublishStatus) String() string {\n\tswitch p {\n\tcase PublishStatus_UnPublished:\n\t\treturn \"UnPublished\"\n\tcase PublishStatus_Published:\n\t\treturn \"Published\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PublishStatusFromString(s string) (PublishStatus, error) {\n\tswitch s {\n\tcase \"UnPublished\":\n\t\treturn PublishStatus_UnPublished, nil\n\tcase \"Published\":\n\t\treturn PublishStatus_Published, nil\n\t}\n\treturn PublishStatus(0), fmt.Errorf(\"not a valid PublishStatus string\")\n}\n\nfunc PublishStatusPtr(v PublishStatus) *PublishStatus { return &v }\nfunc (p *PublishStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PublishStatus(result.Int64)\n\treturn\n}\n\nfunc (p *PublishStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ActionKey int64\n\nconst (\n\t// copy\n\tActionKey_Copy ActionKey = 1\n\t// delete\n\tActionKey_Delete ActionKey = 2\n\t// enable/disable\n\tActionKey_EnableSwitch ActionKey = 3\n\t// edit\n\tActionKey_Edit ActionKey = 4\n\t// Switch to funcflow\n\tActionKey_SwitchToFuncflow ActionKey = 8\n\t// Switch to chatflow\n\tActionKey_SwitchToChatflow ActionKey = 9\n\t// Cross-space copy\n\tActionKey_CrossSpaceCopy ActionKey = 10\n)\n\nfunc (p ActionKey) String() string {\n\tswitch p {\n\tcase ActionKey_Copy:\n\t\treturn \"Copy\"\n\tcase ActionKey_Delete:\n\t\treturn \"Delete\"\n\tcase ActionKey_EnableSwitch:\n\t\treturn \"EnableSwitch\"\n\tcase ActionKey_Edit:\n\t\treturn \"Edit\"\n\tcase ActionKey_SwitchToFuncflow:\n\t\treturn \"SwitchToFuncflow\"\n\tcase ActionKey_SwitchToChatflow:\n\t\treturn \"SwitchToChatflow\"\n\tcase ActionKey_CrossSpaceCopy:\n\t\treturn \"CrossSpaceCopy\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ActionKeyFromString(s string) (ActionKey, error) {\n\tswitch s {\n\tcase \"Copy\":\n\t\treturn ActionKey_Copy, nil\n\tcase \"Delete\":\n\t\treturn ActionKey_Delete, nil\n\tcase \"EnableSwitch\":\n\t\treturn ActionKey_EnableSwitch, nil\n\tcase \"Edit\":\n\t\treturn ActionKey_Edit, nil\n\tcase \"SwitchToFuncflow\":\n\t\treturn ActionKey_SwitchToFuncflow, nil\n\tcase \"SwitchToChatflow\":\n\t\treturn ActionKey_SwitchToChatflow, nil\n\tcase \"CrossSpaceCopy\":\n\t\treturn ActionKey_CrossSpaceCopy, nil\n\t}\n\treturn ActionKey(0), fmt.Errorf(\"not a valid ActionKey string\")\n}\n\nfunc ActionKeyPtr(v ActionKey) *ActionKey { return &v }\nfunc (p *ActionKey) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ActionKey(result.Int64)\n\treturn\n}\n\nfunc (p *ActionKey) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ProjectResourceActionKey int64\n\nconst (\n\t//rename\n\tProjectResourceActionKey_Rename ProjectResourceActionKey = 1\n\t//Create a copy/copy to the current project\n\tProjectResourceActionKey_Copy ProjectResourceActionKey = 2\n\t//Copy to Library\n\tProjectResourceActionKey_CopyToLibrary ProjectResourceActionKey = 3\n\t//Move to Library\n\tProjectResourceActionKey_MoveToLibrary ProjectResourceActionKey = 4\n\t//delete\n\tProjectResourceActionKey_Delete ProjectResourceActionKey = 5\n\t//enable\n\tProjectResourceActionKey_Enable ProjectResourceActionKey = 6\n\t//disable\n\tProjectResourceActionKey_Disable ProjectResourceActionKey = 7\n\t// Switch to funcflow\n\tProjectResourceActionKey_SwitchToFuncflow ProjectResourceActionKey = 8\n\t// Switch to chatflow\n\tProjectResourceActionKey_SwitchToChatflow ProjectResourceActionKey = 9\n\t// Modify description\n\tProjectResourceActionKey_UpdateDesc ProjectResourceActionKey = 10\n)\n\nfunc (p ProjectResourceActionKey) String() string {\n\tswitch p {\n\tcase ProjectResourceActionKey_Rename:\n\t\treturn \"Rename\"\n\tcase ProjectResourceActionKey_Copy:\n\t\treturn \"Copy\"\n\tcase ProjectResourceActionKey_CopyToLibrary:\n\t\treturn \"CopyToLibrary\"\n\tcase ProjectResourceActionKey_MoveToLibrary:\n\t\treturn \"MoveToLibrary\"\n\tcase ProjectResourceActionKey_Delete:\n\t\treturn \"Delete\"\n\tcase ProjectResourceActionKey_Enable:\n\t\treturn \"Enable\"\n\tcase ProjectResourceActionKey_Disable:\n\t\treturn \"Disable\"\n\tcase ProjectResourceActionKey_SwitchToFuncflow:\n\t\treturn \"SwitchToFuncflow\"\n\tcase ProjectResourceActionKey_SwitchToChatflow:\n\t\treturn \"SwitchToChatflow\"\n\tcase ProjectResourceActionKey_UpdateDesc:\n\t\treturn \"UpdateDesc\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ProjectResourceActionKeyFromString(s string) (ProjectResourceActionKey, error) {\n\tswitch s {\n\tcase \"Rename\":\n\t\treturn ProjectResourceActionKey_Rename, nil\n\tcase \"Copy\":\n\t\treturn ProjectResourceActionKey_Copy, nil\n\tcase \"CopyToLibrary\":\n\t\treturn ProjectResourceActionKey_CopyToLibrary, nil\n\tcase \"MoveToLibrary\":\n\t\treturn ProjectResourceActionKey_MoveToLibrary, nil\n\tcase \"Delete\":\n\t\treturn ProjectResourceActionKey_Delete, nil\n\tcase \"Enable\":\n\t\treturn ProjectResourceActionKey_Enable, nil\n\tcase \"Disable\":\n\t\treturn ProjectResourceActionKey_Disable, nil\n\tcase \"SwitchToFuncflow\":\n\t\treturn ProjectResourceActionKey_SwitchToFuncflow, nil\n\tcase \"SwitchToChatflow\":\n\t\treturn ProjectResourceActionKey_SwitchToChatflow, nil\n\tcase \"UpdateDesc\":\n\t\treturn ProjectResourceActionKey_UpdateDesc, nil\n\t}\n\treturn ProjectResourceActionKey(0), fmt.Errorf(\"not a valid ProjectResourceActionKey string\")\n}\n\nfunc ProjectResourceActionKeyPtr(v ProjectResourceActionKey) *ProjectResourceActionKey { return &v }\nfunc (p *ProjectResourceActionKey) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ProjectResourceActionKey(result.Int64)\n\treturn\n}\n\nfunc (p *ProjectResourceActionKey) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ProjectResourceGroupType int64\n\nconst (\n\tProjectResourceGroupType_Workflow ProjectResourceGroupType = 1\n\tProjectResourceGroupType_Plugin   ProjectResourceGroupType = 2\n\tProjectResourceGroupType_Data     ProjectResourceGroupType = 3\n)\n\nfunc (p ProjectResourceGroupType) String() string {\n\tswitch p {\n\tcase ProjectResourceGroupType_Workflow:\n\t\treturn \"Workflow\"\n\tcase ProjectResourceGroupType_Plugin:\n\t\treturn \"Plugin\"\n\tcase ProjectResourceGroupType_Data:\n\t\treturn \"Data\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ProjectResourceGroupTypeFromString(s string) (ProjectResourceGroupType, error) {\n\tswitch s {\n\tcase \"Workflow\":\n\t\treturn ProjectResourceGroupType_Workflow, nil\n\tcase \"Plugin\":\n\t\treturn ProjectResourceGroupType_Plugin, nil\n\tcase \"Data\":\n\t\treturn ProjectResourceGroupType_Data, nil\n\t}\n\treturn ProjectResourceGroupType(0), fmt.Errorf(\"not a valid ProjectResourceGroupType string\")\n}\n\nfunc ProjectResourceGroupTypePtr(v ProjectResourceGroupType) *ProjectResourceGroupType { return &v }\nfunc (p *ProjectResourceGroupType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ProjectResourceGroupType(result.Int64)\n\treturn\n}\n\nfunc (p *ProjectResourceGroupType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ResourceCopyScene int64\n\nconst (\n\t//Copy resources within the project, shallow copy\n\tResourceCopyScene_CopyProjectResource ResourceCopyScene = 1\n\t//Copy the project resources to the Library, and publish after copying\n\tResourceCopyScene_CopyResourceToLibrary ResourceCopyScene = 2\n\t//Move project resources to Library, copy to publish, and delete project resources later\n\tResourceCopyScene_MoveResourceToLibrary ResourceCopyScene = 3\n\t//Copy Library Resources to Project\n\tResourceCopyScene_CopyResourceFromLibrary ResourceCopyScene = 4\n\t//Copy the project, along with the resources. Copy the current draft.\n\tResourceCopyScene_CopyProject ResourceCopyScene = 5\n\t//The project is published to the channel, and the associated resources need to be published (including the store). Publish with the current draft.\n\tResourceCopyScene_PublishProject ResourceCopyScene = 6\n\t// Copy the project template.\n\tResourceCopyScene_CopyProjectTemplate ResourceCopyScene = 7\n\t// The project is published to a template, and the specified version of the project is published as a temporary template.\n\tResourceCopyScene_PublishProjectTemplate ResourceCopyScene = 8\n\t// The template is approved, put on the shelves, and the official template is copied according to the temporary template.\n\tResourceCopyScene_LaunchTemplate ResourceCopyScene = 9\n\t//    Draft version archive\n\tResourceCopyScene_ArchiveProject ResourceCopyScene = 10\n\t// Online version loaded into draft, draft version loaded into draft\n\tResourceCopyScene_RollbackProject ResourceCopyScene = 11\n\t// Cross-space copy of a single resource\n\tResourceCopyScene_CrossSpaceCopy ResourceCopyScene = 12\n\t// item cross-space copy\n\tResourceCopyScene_CrossSpaceCopyProject ResourceCopyScene = 13\n)\n\nfunc (p ResourceCopyScene) String() string {\n\tswitch p {\n\tcase ResourceCopyScene_CopyProjectResource:\n\t\treturn \"CopyProjectResource\"\n\tcase ResourceCopyScene_CopyResourceToLibrary:\n\t\treturn \"CopyResourceToLibrary\"\n\tcase ResourceCopyScene_MoveResourceToLibrary:\n\t\treturn \"MoveResourceToLibrary\"\n\tcase ResourceCopyScene_CopyResourceFromLibrary:\n\t\treturn \"CopyResourceFromLibrary\"\n\tcase ResourceCopyScene_CopyProject:\n\t\treturn \"CopyProject\"\n\tcase ResourceCopyScene_PublishProject:\n\t\treturn \"PublishProject\"\n\tcase ResourceCopyScene_CopyProjectTemplate:\n\t\treturn \"CopyProjectTemplate\"\n\tcase ResourceCopyScene_PublishProjectTemplate:\n\t\treturn \"PublishProjectTemplate\"\n\tcase ResourceCopyScene_LaunchTemplate:\n\t\treturn \"LaunchTemplate\"\n\tcase ResourceCopyScene_ArchiveProject:\n\t\treturn \"ArchiveProject\"\n\tcase ResourceCopyScene_RollbackProject:\n\t\treturn \"RollbackProject\"\n\tcase ResourceCopyScene_CrossSpaceCopy:\n\t\treturn \"CrossSpaceCopy\"\n\tcase ResourceCopyScene_CrossSpaceCopyProject:\n\t\treturn \"CrossSpaceCopyProject\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ResourceCopySceneFromString(s string) (ResourceCopyScene, error) {\n\tswitch s {\n\tcase \"CopyProjectResource\":\n\t\treturn ResourceCopyScene_CopyProjectResource, nil\n\tcase \"CopyResourceToLibrary\":\n\t\treturn ResourceCopyScene_CopyResourceToLibrary, nil\n\tcase \"MoveResourceToLibrary\":\n\t\treturn ResourceCopyScene_MoveResourceToLibrary, nil\n\tcase \"CopyResourceFromLibrary\":\n\t\treturn ResourceCopyScene_CopyResourceFromLibrary, nil\n\tcase \"CopyProject\":\n\t\treturn ResourceCopyScene_CopyProject, nil\n\tcase \"PublishProject\":\n\t\treturn ResourceCopyScene_PublishProject, nil\n\tcase \"CopyProjectTemplate\":\n\t\treturn ResourceCopyScene_CopyProjectTemplate, nil\n\tcase \"PublishProjectTemplate\":\n\t\treturn ResourceCopyScene_PublishProjectTemplate, nil\n\tcase \"LaunchTemplate\":\n\t\treturn ResourceCopyScene_LaunchTemplate, nil\n\tcase \"ArchiveProject\":\n\t\treturn ResourceCopyScene_ArchiveProject, nil\n\tcase \"RollbackProject\":\n\t\treturn ResourceCopyScene_RollbackProject, nil\n\tcase \"CrossSpaceCopy\":\n\t\treturn ResourceCopyScene_CrossSpaceCopy, nil\n\tcase \"CrossSpaceCopyProject\":\n\t\treturn ResourceCopyScene_CrossSpaceCopyProject, nil\n\t}\n\treturn ResourceCopyScene(0), fmt.Errorf(\"not a valid ResourceCopyScene string\")\n}\n\nfunc ResourceCopyScenePtr(v ResourceCopyScene) *ResourceCopyScene { return &v }\nfunc (p *ResourceCopyScene) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ResourceCopyScene(result.Int64)\n\treturn\n}\n\nfunc (p *ResourceCopyScene) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype TaskStatus int64\n\nconst (\n\tTaskStatus_Successed  TaskStatus = 1\n\tTaskStatus_Processing TaskStatus = 2\n\tTaskStatus_Failed     TaskStatus = 3\n\tTaskStatus_Canceled   TaskStatus = 4\n)\n\nfunc (p TaskStatus) String() string {\n\tswitch p {\n\tcase TaskStatus_Successed:\n\t\treturn \"Successed\"\n\tcase TaskStatus_Processing:\n\t\treturn \"Processing\"\n\tcase TaskStatus_Failed:\n\t\treturn \"Failed\"\n\tcase TaskStatus_Canceled:\n\t\treturn \"Canceled\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TaskStatusFromString(s string) (TaskStatus, error) {\n\tswitch s {\n\tcase \"Successed\":\n\t\treturn TaskStatus_Successed, nil\n\tcase \"Processing\":\n\t\treturn TaskStatus_Processing, nil\n\tcase \"Failed\":\n\t\treturn TaskStatus_Failed, nil\n\tcase \"Canceled\":\n\t\treturn TaskStatus_Canceled, nil\n\t}\n\treturn TaskStatus(0), fmt.Errorf(\"not a valid TaskStatus string\")\n}\n\nfunc TaskStatusPtr(v TaskStatus) *TaskStatus { return &v }\nfunc (p *TaskStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = TaskStatus(result.Int64)\n\treturn\n}\n\nfunc (p *TaskStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Library Resource Operations\ntype ResourceAction struct {\n\t// An operation corresponds to a unique key, and the key is constrained by the resource side\n\tKey ActionKey `thrift:\"Key,1,required\" json:\"key\" form:\"Key,required\" query:\"Key,required\"`\n\t//ture = can operate this Action, false = grey out\n\tEnable bool `thrift:\"Enable,2,required\" json:\"enable\" form:\"Enable,required\" query:\"Enable,required\"`\n}\n\nfunc NewResourceAction() *ResourceAction {\n\treturn &ResourceAction{}\n}\n\nfunc (p *ResourceAction) InitDefault() {\n}\n\nfunc (p *ResourceAction) GetKey() (v ActionKey) {\n\treturn p.Key\n}\n\nfunc (p *ResourceAction) GetEnable() (v bool) {\n\treturn p.Enable\n}\n\nvar fieldIDToName_ResourceAction = map[int16]string{\n\t1: \"Key\",\n\t2: \"Enable\",\n}\n\nfunc (p *ResourceAction) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetKey bool = false\n\tvar issetEnable bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetKey = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetEnable = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetKey {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetEnable {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceAction[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ResourceAction[fieldId]))\n}\n\nfunc (p *ResourceAction) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field ActionKey\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ActionKey(v)\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *ResourceAction) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Enable = _field\n\treturn nil\n}\n\nfunc (p *ResourceAction) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceAction\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceAction) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Key\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Key)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceAction) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Enable\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Enable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ResourceAction) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceAction(%+v)\", *p)\n\n}\n\n// front end\ntype ResourceInfo struct {\n\t// Resource ID\n\tResID *int64 `thrift:\"ResID,1,optional\" form:\"res_id\" json:\"res_id,string,omitempty\"`\n\t// resource type\n\tResType *ResType `thrift:\"ResType,2,optional\" json:\"res_type\" form:\"ResType\" query:\"ResType\"`\n\t// Resource subtype, defined by the resource implementer.\n\t// Plugin：1-Http; 2-App; 6-Local；Knowledge：0-text; 1-table; 2-image；UI：1-Card\n\tResSubType *int32 `thrift:\"ResSubType,3,optional\" json:\"res_sub_type\" form:\"ResSubType\" query:\"ResSubType\"`\n\t// resource name\n\tName *string `thrift:\"Name,4,optional\" json:\"name\" form:\"Name\" query:\"Name\"`\n\t// resource description\n\tDesc *string `thrift:\"Desc,5,optional\" json:\"desc\" form:\"Desc\" query:\"Desc\"`\n\t// Resource Icon, full url\n\tIcon *string `thrift:\"Icon,6,optional\" json:\"icon\" form:\"Icon\" query:\"Icon\"`\n\t// Resource creator\n\tCreatorID *int64 `thrift:\"CreatorID,7,optional\" form:\"creator_id\" json:\"creator_id,string,omitempty\"`\n\t// Resource creator\n\tCreatorAvatar *string `thrift:\"CreatorAvatar,8,optional\" json:\"creator_avatar\" form:\"CreatorAvatar\" query:\"CreatorAvatar\"`\n\t// Resource creator\n\tCreatorName *string `thrift:\"CreatorName,9,optional\" json:\"creator_name\" form:\"CreatorName\" query:\"CreatorName\"`\n\t// Resource creator\n\tUserName *string `thrift:\"UserName,10,optional\" json:\"user_name\" form:\"UserName\" query:\"UserName\"`\n\t// Resource release status, 1 - unpublished, 2 - published\n\tPublishStatus *PublishStatus `thrift:\"PublishStatus,11,optional\" json:\"publish_status\" form:\"PublishStatus\" query:\"PublishStatus\"`\n\t// Resource status, each type of resource defines itself\n\tBizResStatus *int32 `thrift:\"BizResStatus,12,optional\" json:\"biz_res_status\" form:\"BizResStatus\" query:\"BizResStatus\"`\n\t// Whether to enable multi-person editing\n\tCollaborationEnable *bool `thrift:\"CollaborationEnable,13,optional\" json:\"collaboration_enable\" form:\"CollaborationEnable\" query:\"CollaborationEnable\"`\n\t// Last edited, unix timestamp\n\tEditTime *int64 `thrift:\"EditTime,14,optional\" form:\"edit_time\" json:\"edit_time,string,omitempty\"`\n\t// Resource Ownership Space ID\n\tSpaceID *int64 `thrift:\"SpaceID,15,optional\" form:\"space_id\" json:\"space_id,string,omitempty\"`\n\t// Business carry extended information to res_type distinguish, each res_type defined schema and meaning is not the same, need to judge before use res_type\n\tBizExtend map[string]string `thrift:\"BizExtend,16,optional\" json:\"biz_extend\" form:\"BizExtend\" query:\"BizExtend\"`\n\t// Different types of different operation buttons are agreed upon by the resource implementer and the front end. Return is displayed, if you want to hide a button, do not return;\n\tActions []*ResourceAction `thrift:\"Actions,17,optional\" json:\"actions\" form:\"Actions\" query:\"Actions\"`\n\t// Whether to ban entering the details page\n\tDetailDisable *bool `thrift:\"DetailDisable,18,optional\" json:\"detail_disable\" form:\"DetailDisable\" query:\"DetailDisable\"`\n\t// [Data delay optimization] Delete identifier, true-deleted-frontend hides the item, false-normal\n\tDelFlag *bool `thrift:\"DelFlag,19,optional\" json:\"del_flag\" form:\"DelFlag\" query:\"DelFlag\"`\n}\n\nfunc NewResourceInfo() *ResourceInfo {\n\treturn &ResourceInfo{}\n}\n\nfunc (p *ResourceInfo) InitDefault() {\n}\n\nvar ResourceInfo_ResID_DEFAULT int64\n\nfunc (p *ResourceInfo) GetResID() (v int64) {\n\tif !p.IsSetResID() {\n\t\treturn ResourceInfo_ResID_DEFAULT\n\t}\n\treturn *p.ResID\n}\n\nvar ResourceInfo_ResType_DEFAULT ResType\n\nfunc (p *ResourceInfo) GetResType() (v ResType) {\n\tif !p.IsSetResType() {\n\t\treturn ResourceInfo_ResType_DEFAULT\n\t}\n\treturn *p.ResType\n}\n\nvar ResourceInfo_ResSubType_DEFAULT int32\n\nfunc (p *ResourceInfo) GetResSubType() (v int32) {\n\tif !p.IsSetResSubType() {\n\t\treturn ResourceInfo_ResSubType_DEFAULT\n\t}\n\treturn *p.ResSubType\n}\n\nvar ResourceInfo_Name_DEFAULT string\n\nfunc (p *ResourceInfo) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn ResourceInfo_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar ResourceInfo_Desc_DEFAULT string\n\nfunc (p *ResourceInfo) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn ResourceInfo_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar ResourceInfo_Icon_DEFAULT string\n\nfunc (p *ResourceInfo) GetIcon() (v string) {\n\tif !p.IsSetIcon() {\n\t\treturn ResourceInfo_Icon_DEFAULT\n\t}\n\treturn *p.Icon\n}\n\nvar ResourceInfo_CreatorID_DEFAULT int64\n\nfunc (p *ResourceInfo) GetCreatorID() (v int64) {\n\tif !p.IsSetCreatorID() {\n\t\treturn ResourceInfo_CreatorID_DEFAULT\n\t}\n\treturn *p.CreatorID\n}\n\nvar ResourceInfo_CreatorAvatar_DEFAULT string\n\nfunc (p *ResourceInfo) GetCreatorAvatar() (v string) {\n\tif !p.IsSetCreatorAvatar() {\n\t\treturn ResourceInfo_CreatorAvatar_DEFAULT\n\t}\n\treturn *p.CreatorAvatar\n}\n\nvar ResourceInfo_CreatorName_DEFAULT string\n\nfunc (p *ResourceInfo) GetCreatorName() (v string) {\n\tif !p.IsSetCreatorName() {\n\t\treturn ResourceInfo_CreatorName_DEFAULT\n\t}\n\treturn *p.CreatorName\n}\n\nvar ResourceInfo_UserName_DEFAULT string\n\nfunc (p *ResourceInfo) GetUserName() (v string) {\n\tif !p.IsSetUserName() {\n\t\treturn ResourceInfo_UserName_DEFAULT\n\t}\n\treturn *p.UserName\n}\n\nvar ResourceInfo_PublishStatus_DEFAULT PublishStatus\n\nfunc (p *ResourceInfo) GetPublishStatus() (v PublishStatus) {\n\tif !p.IsSetPublishStatus() {\n\t\treturn ResourceInfo_PublishStatus_DEFAULT\n\t}\n\treturn *p.PublishStatus\n}\n\nvar ResourceInfo_BizResStatus_DEFAULT int32\n\nfunc (p *ResourceInfo) GetBizResStatus() (v int32) {\n\tif !p.IsSetBizResStatus() {\n\t\treturn ResourceInfo_BizResStatus_DEFAULT\n\t}\n\treturn *p.BizResStatus\n}\n\nvar ResourceInfo_CollaborationEnable_DEFAULT bool\n\nfunc (p *ResourceInfo) GetCollaborationEnable() (v bool) {\n\tif !p.IsSetCollaborationEnable() {\n\t\treturn ResourceInfo_CollaborationEnable_DEFAULT\n\t}\n\treturn *p.CollaborationEnable\n}\n\nvar ResourceInfo_EditTime_DEFAULT int64\n\nfunc (p *ResourceInfo) GetEditTime() (v int64) {\n\tif !p.IsSetEditTime() {\n\t\treturn ResourceInfo_EditTime_DEFAULT\n\t}\n\treturn *p.EditTime\n}\n\nvar ResourceInfo_SpaceID_DEFAULT int64\n\nfunc (p *ResourceInfo) GetSpaceID() (v int64) {\n\tif !p.IsSetSpaceID() {\n\t\treturn ResourceInfo_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar ResourceInfo_BizExtend_DEFAULT map[string]string\n\nfunc (p *ResourceInfo) GetBizExtend() (v map[string]string) {\n\tif !p.IsSetBizExtend() {\n\t\treturn ResourceInfo_BizExtend_DEFAULT\n\t}\n\treturn p.BizExtend\n}\n\nvar ResourceInfo_Actions_DEFAULT []*ResourceAction\n\nfunc (p *ResourceInfo) GetActions() (v []*ResourceAction) {\n\tif !p.IsSetActions() {\n\t\treturn ResourceInfo_Actions_DEFAULT\n\t}\n\treturn p.Actions\n}\n\nvar ResourceInfo_DetailDisable_DEFAULT bool\n\nfunc (p *ResourceInfo) GetDetailDisable() (v bool) {\n\tif !p.IsSetDetailDisable() {\n\t\treturn ResourceInfo_DetailDisable_DEFAULT\n\t}\n\treturn *p.DetailDisable\n}\n\nvar ResourceInfo_DelFlag_DEFAULT bool\n\nfunc (p *ResourceInfo) GetDelFlag() (v bool) {\n\tif !p.IsSetDelFlag() {\n\t\treturn ResourceInfo_DelFlag_DEFAULT\n\t}\n\treturn *p.DelFlag\n}\n\nvar fieldIDToName_ResourceInfo = map[int16]string{\n\t1:  \"ResID\",\n\t2:  \"ResType\",\n\t3:  \"ResSubType\",\n\t4:  \"Name\",\n\t5:  \"Desc\",\n\t6:  \"Icon\",\n\t7:  \"CreatorID\",\n\t8:  \"CreatorAvatar\",\n\t9:  \"CreatorName\",\n\t10: \"UserName\",\n\t11: \"PublishStatus\",\n\t12: \"BizResStatus\",\n\t13: \"CollaborationEnable\",\n\t14: \"EditTime\",\n\t15: \"SpaceID\",\n\t16: \"BizExtend\",\n\t17: \"Actions\",\n\t18: \"DetailDisable\",\n\t19: \"DelFlag\",\n}\n\nfunc (p *ResourceInfo) IsSetResID() bool {\n\treturn p.ResID != nil\n}\n\nfunc (p *ResourceInfo) IsSetResType() bool {\n\treturn p.ResType != nil\n}\n\nfunc (p *ResourceInfo) IsSetResSubType() bool {\n\treturn p.ResSubType != nil\n}\n\nfunc (p *ResourceInfo) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *ResourceInfo) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *ResourceInfo) IsSetIcon() bool {\n\treturn p.Icon != nil\n}\n\nfunc (p *ResourceInfo) IsSetCreatorID() bool {\n\treturn p.CreatorID != nil\n}\n\nfunc (p *ResourceInfo) IsSetCreatorAvatar() bool {\n\treturn p.CreatorAvatar != nil\n}\n\nfunc (p *ResourceInfo) IsSetCreatorName() bool {\n\treturn p.CreatorName != nil\n}\n\nfunc (p *ResourceInfo) IsSetUserName() bool {\n\treturn p.UserName != nil\n}\n\nfunc (p *ResourceInfo) IsSetPublishStatus() bool {\n\treturn p.PublishStatus != nil\n}\n\nfunc (p *ResourceInfo) IsSetBizResStatus() bool {\n\treturn p.BizResStatus != nil\n}\n\nfunc (p *ResourceInfo) IsSetCollaborationEnable() bool {\n\treturn p.CollaborationEnable != nil\n}\n\nfunc (p *ResourceInfo) IsSetEditTime() bool {\n\treturn p.EditTime != nil\n}\n\nfunc (p *ResourceInfo) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *ResourceInfo) IsSetBizExtend() bool {\n\treturn p.BizExtend != nil\n}\n\nfunc (p *ResourceInfo) IsSetActions() bool {\n\treturn p.Actions != nil\n}\n\nfunc (p *ResourceInfo) IsSetDetailDisable() bool {\n\treturn p.DetailDisable != nil\n}\n\nfunc (p *ResourceInfo) IsSetDelFlag() bool {\n\treturn p.DelFlag != nil\n}\n\nfunc (p *ResourceInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ResID = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *ResType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ResType(v)\n\t\t_field = &tmp\n\t}\n\tp.ResType = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ResSubType = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatorAvatar = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatorName = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserName = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *PublishStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := PublishStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.PublishStatus = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BizResStatus = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CollaborationEnable = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EditTime = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField16(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BizExtend = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField17(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ResourceAction, 0, size)\n\tvalues := make([]ResourceAction, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Actions = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DetailDisable = _field\n\treturn nil\n}\nfunc (p *ResourceInfo) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DelFlag = _field\n\treturn nil\n}\n\nfunc (p *ResourceInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResID() {\n\t\tif err = oprot.WriteFieldBegin(\"ResID\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ResID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResType() {\n\t\tif err = oprot.WriteFieldBegin(\"ResType\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.ResType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResSubType() {\n\t\tif err = oprot.WriteFieldBegin(\"ResSubType\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.ResSubType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"Desc\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIcon() {\n\t\tif err = oprot.WriteFieldBegin(\"Icon\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Icon); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatorID() {\n\t\tif err = oprot.WriteFieldBegin(\"CreatorID\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreatorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatorAvatar() {\n\t\tif err = oprot.WriteFieldBegin(\"CreatorAvatar\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CreatorAvatar); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatorName() {\n\t\tif err = oprot.WriteFieldBegin(\"CreatorName\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CreatorName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserName() {\n\t\tif err = oprot.WriteFieldBegin(\"UserName\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UserName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"PublishStatus\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PublishStatus)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBizResStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"BizResStatus\", thrift.I32, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.BizResStatus); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCollaborationEnable() {\n\t\tif err = oprot.WriteFieldBegin(\"CollaborationEnable\", thrift.BOOL, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.CollaborationEnable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEditTime() {\n\t\tif err = oprot.WriteFieldBegin(\"EditTime\", thrift.I64, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EditTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"SpaceID\", thrift.I64, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBizExtend() {\n\t\tif err = oprot.WriteFieldBegin(\"BizExtend\", thrift.MAP, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.BizExtend)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.BizExtend {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetActions() {\n\t\tif err = oprot.WriteFieldBegin(\"Actions\", thrift.LIST, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Actions)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Actions {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDetailDisable() {\n\t\tif err = oprot.WriteFieldBegin(\"DetailDisable\", thrift.BOOL, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.DetailDisable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *ResourceInfo) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDelFlag() {\n\t\tif err = oprot.WriteFieldBegin(\"DelFlag\", thrift.BOOL, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.DelFlag); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\n\nfunc (p *ResourceInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceInfo(%+v)\", *p)\n\n}\n\ntype ProjectResourceAction struct {\n\t// An operation corresponds to a unique key, and the key is constrained by the resource side\n\tKey ProjectResourceActionKey `thrift:\"Key,1,required\" json:\"key\" form:\"Key,required\" query:\"Key,required\"`\n\t//ture = can operate this Action, false = grey out\n\tEnable bool `thrift:\"Enable,2,required\" json:\"enable\" form:\"Enable,required\" query:\"Enable,required\"`\n\t// When enable = false, prompt the copywriter. The backend returns the Starling Key, be careful to put it under the same space.\n\tHint *string `thrift:\"Hint,3,optional\" json:\"hint\" form:\"Hint\" query:\"Hint\"`\n}\n\nfunc NewProjectResourceAction() *ProjectResourceAction {\n\treturn &ProjectResourceAction{}\n}\n\nfunc (p *ProjectResourceAction) InitDefault() {\n}\n\nfunc (p *ProjectResourceAction) GetKey() (v ProjectResourceActionKey) {\n\treturn p.Key\n}\n\nfunc (p *ProjectResourceAction) GetEnable() (v bool) {\n\treturn p.Enable\n}\n\nvar ProjectResourceAction_Hint_DEFAULT string\n\nfunc (p *ProjectResourceAction) GetHint() (v string) {\n\tif !p.IsSetHint() {\n\t\treturn ProjectResourceAction_Hint_DEFAULT\n\t}\n\treturn *p.Hint\n}\n\nvar fieldIDToName_ProjectResourceAction = map[int16]string{\n\t1: \"Key\",\n\t2: \"Enable\",\n\t3: \"Hint\",\n}\n\nfunc (p *ProjectResourceAction) IsSetHint() bool {\n\treturn p.Hint != nil\n}\n\nfunc (p *ProjectResourceAction) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetKey bool = false\n\tvar issetEnable bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetKey = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetEnable = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetKey {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetEnable {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProjectResourceAction[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ProjectResourceAction[fieldId]))\n}\n\nfunc (p *ProjectResourceAction) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field ProjectResourceActionKey\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ProjectResourceActionKey(v)\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *ProjectResourceAction) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Enable = _field\n\treturn nil\n}\nfunc (p *ProjectResourceAction) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Hint = _field\n\treturn nil\n}\n\nfunc (p *ProjectResourceAction) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectResourceAction\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProjectResourceAction) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Key\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Key)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProjectResourceAction) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Enable\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Enable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ProjectResourceAction) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHint() {\n\t\tif err = oprot.WriteFieldBegin(\"Hint\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Hint); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ProjectResourceAction) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProjectResourceAction(%+v)\", *p)\n\n}\n\n// The implementer provides display information\ntype ProjectResourceInfo struct {\n\t// Resource ID\n\tResID int64 `thrift:\"ResID,1\" form:\"res_id\" json:\"res_id,string\"`\n\t// resource name\n\tName string `thrift:\"Name,2\" json:\"name\" form:\"Name\" query:\"Name\"`\n\t// Different types of different operation buttons are agreed upon by the resource implementer and the front end. Return is displayed, if you want to hide a button, do not return;\n\tActions []*ProjectResourceAction `thrift:\"Actions,3\" json:\"actions\" form:\"Actions\" query:\"Actions\"`\n\t// Is the user read-only to the resource?\n\t//    4: bool ReadOnly (go.tag = \"json:\\\"read_only\\\"\", agw.key = \"read_only\")\n\t// resource type\n\tResType ResType `thrift:\"ResType,5\" json:\"res_type\" form:\"ResType\" query:\"ResType\"`\n\t// Resource subtype, defined by the resource implementer. Plugin: 1-Http; 2-App; 6-Local; Knowledge: 0-text; 1-table; 2-image; UI: 1-Card\n\tResSubType *int32 `thrift:\"ResSubType,6,optional\" json:\"res_sub_type\" form:\"ResSubType\" query:\"ResSubType\"`\n\t// Business carry extended information to res_type distinguish, each res_type defined schema and meaning is not the same, need to judge before use res_type\n\tBizExtend map[string]string `thrift:\"BizExtend,7,optional\" json:\"biz_extend\" form:\"BizExtend\" query:\"BizExtend\"`\n\t// Resource status, each type of resource defines itself. The front end agrees with each resource party.\n\tBizResStatus *int32 `thrift:\"BizResStatus,8,optional\" json:\"biz_res_status\" form:\"BizResStatus\" query:\"BizResStatus\"`\n\t// The edited version of the current resource\n\tVersionStr *string `thrift:\"VersionStr,9,optional\" json:\"version_str\" form:\"VersionStr\" query:\"VersionStr\"`\n}\n\nfunc NewProjectResourceInfo() *ProjectResourceInfo {\n\treturn &ProjectResourceInfo{}\n}\n\nfunc (p *ProjectResourceInfo) InitDefault() {\n}\n\nfunc (p *ProjectResourceInfo) GetResID() (v int64) {\n\treturn p.ResID\n}\n\nfunc (p *ProjectResourceInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ProjectResourceInfo) GetActions() (v []*ProjectResourceAction) {\n\treturn p.Actions\n}\n\nfunc (p *ProjectResourceInfo) GetResType() (v ResType) {\n\treturn p.ResType\n}\n\nvar ProjectResourceInfo_ResSubType_DEFAULT int32\n\nfunc (p *ProjectResourceInfo) GetResSubType() (v int32) {\n\tif !p.IsSetResSubType() {\n\t\treturn ProjectResourceInfo_ResSubType_DEFAULT\n\t}\n\treturn *p.ResSubType\n}\n\nvar ProjectResourceInfo_BizExtend_DEFAULT map[string]string\n\nfunc (p *ProjectResourceInfo) GetBizExtend() (v map[string]string) {\n\tif !p.IsSetBizExtend() {\n\t\treturn ProjectResourceInfo_BizExtend_DEFAULT\n\t}\n\treturn p.BizExtend\n}\n\nvar ProjectResourceInfo_BizResStatus_DEFAULT int32\n\nfunc (p *ProjectResourceInfo) GetBizResStatus() (v int32) {\n\tif !p.IsSetBizResStatus() {\n\t\treturn ProjectResourceInfo_BizResStatus_DEFAULT\n\t}\n\treturn *p.BizResStatus\n}\n\nvar ProjectResourceInfo_VersionStr_DEFAULT string\n\nfunc (p *ProjectResourceInfo) GetVersionStr() (v string) {\n\tif !p.IsSetVersionStr() {\n\t\treturn ProjectResourceInfo_VersionStr_DEFAULT\n\t}\n\treturn *p.VersionStr\n}\n\nvar fieldIDToName_ProjectResourceInfo = map[int16]string{\n\t1: \"ResID\",\n\t2: \"Name\",\n\t3: \"Actions\",\n\t5: \"ResType\",\n\t6: \"ResSubType\",\n\t7: \"BizExtend\",\n\t8: \"BizResStatus\",\n\t9: \"VersionStr\",\n}\n\nfunc (p *ProjectResourceInfo) IsSetResSubType() bool {\n\treturn p.ResSubType != nil\n}\n\nfunc (p *ProjectResourceInfo) IsSetBizExtend() bool {\n\treturn p.BizExtend != nil\n}\n\nfunc (p *ProjectResourceInfo) IsSetBizResStatus() bool {\n\treturn p.BizResStatus != nil\n}\n\nfunc (p *ProjectResourceInfo) IsSetVersionStr() bool {\n\treturn p.VersionStr != nil\n}\n\nfunc (p *ProjectResourceInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProjectResourceInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProjectResourceInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ResID = _field\n\treturn nil\n}\nfunc (p *ProjectResourceInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ProjectResourceInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProjectResourceAction, 0, size)\n\tvalues := make([]ProjectResourceAction, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Actions = _field\n\treturn nil\n}\nfunc (p *ProjectResourceInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field ResType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ResType(v)\n\t}\n\tp.ResType = _field\n\treturn nil\n}\nfunc (p *ProjectResourceInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ResSubType = _field\n\treturn nil\n}\nfunc (p *ProjectResourceInfo) ReadField7(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.BizExtend = _field\n\treturn nil\n}\nfunc (p *ProjectResourceInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BizResStatus = _field\n\treturn nil\n}\nfunc (p *ProjectResourceInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.VersionStr = _field\n\treturn nil\n}\n\nfunc (p *ProjectResourceInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectResourceInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProjectResourceInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ResID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProjectResourceInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ProjectResourceInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Actions\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Actions)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Actions {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ProjectResourceInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResType\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ResType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ProjectResourceInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResSubType() {\n\t\tif err = oprot.WriteFieldBegin(\"ResSubType\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.ResSubType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ProjectResourceInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBizExtend() {\n\t\tif err = oprot.WriteFieldBegin(\"BizExtend\", thrift.MAP, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.BizExtend)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.BizExtend {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ProjectResourceInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBizResStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"BizResStatus\", thrift.I32, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.BizResStatus); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ProjectResourceInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersionStr() {\n\t\tif err = oprot.WriteFieldBegin(\"VersionStr\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.VersionStr); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *ProjectResourceInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProjectResourceInfo(%+v)\", *p)\n\n}\n\ntype ProjectResourceGroup struct {\n\t// resource grouping\n\tGroupType    ProjectResourceGroupType `thrift:\"GroupType,1\" json:\"group_type\" form:\"GroupType\" query:\"GroupType\"`\n\tResourceList []*ProjectResourceInfo   `thrift:\"ResourceList,2,optional\" json:\"resource_list\" form:\"ResourceList\" query:\"ResourceList\"`\n}\n\nfunc NewProjectResourceGroup() *ProjectResourceGroup {\n\treturn &ProjectResourceGroup{}\n}\n\nfunc (p *ProjectResourceGroup) InitDefault() {\n}\n\nfunc (p *ProjectResourceGroup) GetGroupType() (v ProjectResourceGroupType) {\n\treturn p.GroupType\n}\n\nvar ProjectResourceGroup_ResourceList_DEFAULT []*ProjectResourceInfo\n\nfunc (p *ProjectResourceGroup) GetResourceList() (v []*ProjectResourceInfo) {\n\tif !p.IsSetResourceList() {\n\t\treturn ProjectResourceGroup_ResourceList_DEFAULT\n\t}\n\treturn p.ResourceList\n}\n\nvar fieldIDToName_ProjectResourceGroup = map[int16]string{\n\t1: \"GroupType\",\n\t2: \"ResourceList\",\n}\n\nfunc (p *ProjectResourceGroup) IsSetResourceList() bool {\n\treturn p.ResourceList != nil\n}\n\nfunc (p *ProjectResourceGroup) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProjectResourceGroup[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProjectResourceGroup) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field ProjectResourceGroupType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ProjectResourceGroupType(v)\n\t}\n\tp.GroupType = _field\n\treturn nil\n}\nfunc (p *ProjectResourceGroup) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProjectResourceInfo, 0, size)\n\tvalues := make([]ProjectResourceInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResourceList = _field\n\treturn nil\n}\n\nfunc (p *ProjectResourceGroup) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectResourceGroup\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProjectResourceGroup) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"GroupType\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.GroupType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProjectResourceGroup) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResourceList() {\n\t\tif err = oprot.WriteFieldBegin(\"ResourceList\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResourceList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ResourceList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ProjectResourceGroup) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProjectResourceGroup(%+v)\", *p)\n\n}\n\ntype ResourceCopyFailedReason struct {\n\tResID   int64   `thrift:\"ResID,1\" form:\"res_id\" json:\"res_id,string\"`\n\tResType ResType `thrift:\"ResType,2\" json:\"res_type\" form:\"ResType\" query:\"ResType\"`\n\tResName string  `thrift:\"ResName,3\" json:\"res_name\" form:\"ResName\" query:\"ResName\"`\n\tReason  string  `thrift:\"Reason,4\" json:\"reason\" form:\"Reason\" query:\"Reason\"`\n\t// abandoned\n\tPublishVersion *int64 `thrift:\"PublishVersion,5,optional\" json:\"publish_version\" form:\"PublishVersion\" query:\"PublishVersion\"`\n\t// The current version of the resource, either nil or empty string, is considered the latest version. Project release or Library release.\n\tPublishVersionStr *string `thrift:\"PublishVersionStr,6,optional\" json:\"publish_version_str\" form:\"PublishVersionStr\" query:\"PublishVersionStr\"`\n}\n\nfunc NewResourceCopyFailedReason() *ResourceCopyFailedReason {\n\treturn &ResourceCopyFailedReason{}\n}\n\nfunc (p *ResourceCopyFailedReason) InitDefault() {\n}\n\nfunc (p *ResourceCopyFailedReason) GetResID() (v int64) {\n\treturn p.ResID\n}\n\nfunc (p *ResourceCopyFailedReason) GetResType() (v ResType) {\n\treturn p.ResType\n}\n\nfunc (p *ResourceCopyFailedReason) GetResName() (v string) {\n\treturn p.ResName\n}\n\nfunc (p *ResourceCopyFailedReason) GetReason() (v string) {\n\treturn p.Reason\n}\n\nvar ResourceCopyFailedReason_PublishVersion_DEFAULT int64\n\nfunc (p *ResourceCopyFailedReason) GetPublishVersion() (v int64) {\n\tif !p.IsSetPublishVersion() {\n\t\treturn ResourceCopyFailedReason_PublishVersion_DEFAULT\n\t}\n\treturn *p.PublishVersion\n}\n\nvar ResourceCopyFailedReason_PublishVersionStr_DEFAULT string\n\nfunc (p *ResourceCopyFailedReason) GetPublishVersionStr() (v string) {\n\tif !p.IsSetPublishVersionStr() {\n\t\treturn ResourceCopyFailedReason_PublishVersionStr_DEFAULT\n\t}\n\treturn *p.PublishVersionStr\n}\n\nvar fieldIDToName_ResourceCopyFailedReason = map[int16]string{\n\t1: \"ResID\",\n\t2: \"ResType\",\n\t3: \"ResName\",\n\t4: \"Reason\",\n\t5: \"PublishVersion\",\n\t6: \"PublishVersionStr\",\n}\n\nfunc (p *ResourceCopyFailedReason) IsSetPublishVersion() bool {\n\treturn p.PublishVersion != nil\n}\n\nfunc (p *ResourceCopyFailedReason) IsSetPublishVersionStr() bool {\n\treturn p.PublishVersionStr != nil\n}\n\nfunc (p *ResourceCopyFailedReason) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceCopyFailedReason[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyFailedReason) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ResID = _field\n\treturn nil\n}\nfunc (p *ResourceCopyFailedReason) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field ResType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ResType(v)\n\t}\n\tp.ResType = _field\n\treturn nil\n}\nfunc (p *ResourceCopyFailedReason) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ResName = _field\n\treturn nil\n}\nfunc (p *ResourceCopyFailedReason) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Reason = _field\n\treturn nil\n}\nfunc (p *ResourceCopyFailedReason) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishVersion = _field\n\treturn nil\n}\nfunc (p *ResourceCopyFailedReason) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishVersionStr = _field\n\treturn nil\n}\n\nfunc (p *ResourceCopyFailedReason) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyFailedReason\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyFailedReason) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResID\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ResID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceCopyFailedReason) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResType\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ResType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResourceCopyFailedReason) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResName\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ResName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ResourceCopyFailedReason) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Reason\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Reason); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ResourceCopyFailedReason) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"PublishVersion\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.PublishVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ResourceCopyFailedReason) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishVersionStr() {\n\t\tif err = oprot.WriteFieldBegin(\"PublishVersionStr\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PublishVersionStr); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *ResourceCopyFailedReason) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceCopyFailedReason(%+v)\", *p)\n\n}\n\ntype ResourceCopyTaskDetail struct {\n\tTaskID string `thrift:\"task_id,1\" form:\"task_id\" json:\"task_id\" query:\"task_id\"`\n\t// task status\n\tStatus TaskStatus `thrift:\"status,2\" form:\"status\" json:\"status\" query:\"status\"`\n\t// Replicated resource id\n\tResID   int64             `thrift:\"res_id,3\" form:\"res_id\" json:\"res_id,string\" query:\"res_id\"`\n\tResType ResType           `thrift:\"res_type,4\" form:\"res_type\" json:\"res_type\" query:\"res_type\"`\n\tScene   ResourceCopyScene `thrift:\"scene,5\" form:\"scene\" json:\"scene\" query:\"scene\"`\n\t// Resource name before copy\n\tResName *string `thrift:\"res_name,6,optional\" form:\"res_name\" json:\"res_name,omitempty\" query:\"res_name\"`\n}\n\nfunc NewResourceCopyTaskDetail() *ResourceCopyTaskDetail {\n\treturn &ResourceCopyTaskDetail{}\n}\n\nfunc (p *ResourceCopyTaskDetail) InitDefault() {\n}\n\nfunc (p *ResourceCopyTaskDetail) GetTaskID() (v string) {\n\treturn p.TaskID\n}\n\nfunc (p *ResourceCopyTaskDetail) GetStatus() (v TaskStatus) {\n\treturn p.Status\n}\n\nfunc (p *ResourceCopyTaskDetail) GetResID() (v int64) {\n\treturn p.ResID\n}\n\nfunc (p *ResourceCopyTaskDetail) GetResType() (v ResType) {\n\treturn p.ResType\n}\n\nfunc (p *ResourceCopyTaskDetail) GetScene() (v ResourceCopyScene) {\n\treturn p.Scene\n}\n\nvar ResourceCopyTaskDetail_ResName_DEFAULT string\n\nfunc (p *ResourceCopyTaskDetail) GetResName() (v string) {\n\tif !p.IsSetResName() {\n\t\treturn ResourceCopyTaskDetail_ResName_DEFAULT\n\t}\n\treturn *p.ResName\n}\n\nvar fieldIDToName_ResourceCopyTaskDetail = map[int16]string{\n\t1: \"task_id\",\n\t2: \"status\",\n\t3: \"res_id\",\n\t4: \"res_type\",\n\t5: \"scene\",\n\t6: \"res_name\",\n}\n\nfunc (p *ResourceCopyTaskDetail) IsSetResName() bool {\n\treturn p.ResName != nil\n}\n\nfunc (p *ResourceCopyTaskDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceCopyTaskDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyTaskDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TaskID = _field\n\treturn nil\n}\nfunc (p *ResourceCopyTaskDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field TaskStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TaskStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *ResourceCopyTaskDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ResID = _field\n\treturn nil\n}\nfunc (p *ResourceCopyTaskDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field ResType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ResType(v)\n\t}\n\tp.ResType = _field\n\treturn nil\n}\nfunc (p *ResourceCopyTaskDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field ResourceCopyScene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ResourceCopyScene(v)\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *ResourceCopyTaskDetail) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ResName = _field\n\treturn nil\n}\n\nfunc (p *ResourceCopyTaskDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyTaskDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyTaskDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"task_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TaskID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceCopyTaskDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResourceCopyTaskDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"res_id\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ResID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ResourceCopyTaskDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"res_type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ResType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ResourceCopyTaskDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"scene\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Scene)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ResourceCopyTaskDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResName() {\n\t\tif err = oprot.WriteFieldBegin(\"res_name\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ResName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *ResourceCopyTaskDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceCopyTaskDetail(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/resource/resource.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage resource\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n)\n\ntype LibraryResourceListRequest struct {\n\t// Whether created by the current user, 0 - unfiltered, 1 - current user\n\tUserFilter *int32 `thrift:\"user_filter,1,optional\" form:\"user_filter\" json:\"user_filter,omitempty\" query:\"user_filter\"`\n\t// [4,1] 0 means do not filter\n\tResTypeFilter []common.ResType `thrift:\"res_type_filter,2,optional\" form:\"res_type_filter\" json:\"res_type_filter,omitempty\" query:\"res_type_filter\"`\n\t// name\n\tName *string `thrift:\"name,3,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\t// Published status, 0 - unfiltered, 1 - unpublished, 2 - published\n\tPublishStatusFilter *common.PublishStatus `thrift:\"publish_status_filter,4,optional\" form:\"publish_status_filter\" json:\"publish_status_filter,omitempty\" query:\"publish_status_filter\"`\n\t// User's space ID\n\tSpaceID int64 `thrift:\"space_id,5,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\t// The number of data bars read at one time, the default is 10, and the maximum is 100.\n\tSize *int32 `thrift:\"size,7,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\t// Cursor, used for paging, default 0, the first request can not be passed, subsequent requests need to bring the last returned cursor\n\tCursor *string `thrift:\"cursor,9,optional\" form:\"cursor\" json:\"cursor,omitempty\" query:\"cursor\"`\n\t// The field used to specify the custom search, do not fill in the default only name matches, eg [] string {name, custom} matches the name and custom fields full_text\n\tSearchKeys []string `thrift:\"search_keys,10,optional\" form:\"search_keys\" json:\"search_keys,omitempty\" query:\"search_keys\"`\n\t// Do you need to return image review when the res_type_filter is [2 workflow]\n\tIsGetImageflow *bool      `thrift:\"is_get_imageflow,11,optional\" form:\"is_get_imageflow\" json:\"is_get_imageflow,omitempty\" query:\"is_get_imageflow\"`\n\tBase           *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewLibraryResourceListRequest() *LibraryResourceListRequest {\n\treturn &LibraryResourceListRequest{}\n}\n\nfunc (p *LibraryResourceListRequest) InitDefault() {\n}\n\nvar LibraryResourceListRequest_UserFilter_DEFAULT int32\n\nfunc (p *LibraryResourceListRequest) GetUserFilter() (v int32) {\n\tif !p.IsSetUserFilter() {\n\t\treturn LibraryResourceListRequest_UserFilter_DEFAULT\n\t}\n\treturn *p.UserFilter\n}\n\nvar LibraryResourceListRequest_ResTypeFilter_DEFAULT []common.ResType\n\nfunc (p *LibraryResourceListRequest) GetResTypeFilter() (v []common.ResType) {\n\tif !p.IsSetResTypeFilter() {\n\t\treturn LibraryResourceListRequest_ResTypeFilter_DEFAULT\n\t}\n\treturn p.ResTypeFilter\n}\n\nvar LibraryResourceListRequest_Name_DEFAULT string\n\nfunc (p *LibraryResourceListRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn LibraryResourceListRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar LibraryResourceListRequest_PublishStatusFilter_DEFAULT common.PublishStatus\n\nfunc (p *LibraryResourceListRequest) GetPublishStatusFilter() (v common.PublishStatus) {\n\tif !p.IsSetPublishStatusFilter() {\n\t\treturn LibraryResourceListRequest_PublishStatusFilter_DEFAULT\n\t}\n\treturn *p.PublishStatusFilter\n}\n\nfunc (p *LibraryResourceListRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar LibraryResourceListRequest_Size_DEFAULT int32\n\nfunc (p *LibraryResourceListRequest) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn LibraryResourceListRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar LibraryResourceListRequest_Cursor_DEFAULT string\n\nfunc (p *LibraryResourceListRequest) GetCursor() (v string) {\n\tif !p.IsSetCursor() {\n\t\treturn LibraryResourceListRequest_Cursor_DEFAULT\n\t}\n\treturn *p.Cursor\n}\n\nvar LibraryResourceListRequest_SearchKeys_DEFAULT []string\n\nfunc (p *LibraryResourceListRequest) GetSearchKeys() (v []string) {\n\tif !p.IsSetSearchKeys() {\n\t\treturn LibraryResourceListRequest_SearchKeys_DEFAULT\n\t}\n\treturn p.SearchKeys\n}\n\nvar LibraryResourceListRequest_IsGetImageflow_DEFAULT bool\n\nfunc (p *LibraryResourceListRequest) GetIsGetImageflow() (v bool) {\n\tif !p.IsSetIsGetImageflow() {\n\t\treturn LibraryResourceListRequest_IsGetImageflow_DEFAULT\n\t}\n\treturn *p.IsGetImageflow\n}\n\nvar LibraryResourceListRequest_Base_DEFAULT *base.Base\n\nfunc (p *LibraryResourceListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn LibraryResourceListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_LibraryResourceListRequest = map[int16]string{\n\t1:   \"user_filter\",\n\t2:   \"res_type_filter\",\n\t3:   \"name\",\n\t4:   \"publish_status_filter\",\n\t5:   \"space_id\",\n\t7:   \"size\",\n\t9:   \"cursor\",\n\t10:  \"search_keys\",\n\t11:  \"is_get_imageflow\",\n\t255: \"Base\",\n}\n\nfunc (p *LibraryResourceListRequest) IsSetUserFilter() bool {\n\treturn p.UserFilter != nil\n}\n\nfunc (p *LibraryResourceListRequest) IsSetResTypeFilter() bool {\n\treturn p.ResTypeFilter != nil\n}\n\nfunc (p *LibraryResourceListRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *LibraryResourceListRequest) IsSetPublishStatusFilter() bool {\n\treturn p.PublishStatusFilter != nil\n}\n\nfunc (p *LibraryResourceListRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *LibraryResourceListRequest) IsSetCursor() bool {\n\treturn p.Cursor != nil\n}\n\nfunc (p *LibraryResourceListRequest) IsSetSearchKeys() bool {\n\treturn p.SearchKeys != nil\n}\n\nfunc (p *LibraryResourceListRequest) IsSetIsGetImageflow() bool {\n\treturn p.IsGetImageflow != nil\n}\n\nfunc (p *LibraryResourceListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *LibraryResourceListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_LibraryResourceListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_LibraryResourceListRequest[fieldId]))\n}\n\nfunc (p *LibraryResourceListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserFilter = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]common.ResType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem common.ResType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = common.ResType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResTypeFilter = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *common.PublishStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := common.PublishStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.PublishStatusFilter = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Cursor = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListRequest) ReadField10(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SearchKeys = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsGetImageflow = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *LibraryResourceListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"LibraryResourceListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *LibraryResourceListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserFilter() {\n\t\tif err = oprot.WriteFieldBegin(\"user_filter\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.UserFilter); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *LibraryResourceListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResTypeFilter() {\n\t\tif err = oprot.WriteFieldBegin(\"res_type_filter\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.ResTypeFilter)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ResTypeFilter {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *LibraryResourceListRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *LibraryResourceListRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishStatusFilter() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_status_filter\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PublishStatusFilter)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *LibraryResourceListRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *LibraryResourceListRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *LibraryResourceListRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCursor() {\n\t\tif err = oprot.WriteFieldBegin(\"cursor\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Cursor); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *LibraryResourceListRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSearchKeys() {\n\t\tif err = oprot.WriteFieldBegin(\"search_keys\", thrift.LIST, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.SearchKeys)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SearchKeys {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *LibraryResourceListRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsGetImageflow() {\n\t\tif err = oprot.WriteFieldBegin(\"is_get_imageflow\", thrift.BOOL, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsGetImageflow); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *LibraryResourceListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *LibraryResourceListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"LibraryResourceListRequest(%+v)\", *p)\n\n}\n\ntype LibraryResourceListResponse struct {\n\tCode         int64                  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg          string                 `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tResourceList []*common.ResourceInfo `thrift:\"resource_list,3\" form:\"resource_list\" json:\"resource_list\" query:\"resource_list\"`\n\t// Cursor, the cursor for the next request\n\tCursor *string `thrift:\"cursor,5,optional\" form:\"cursor\" json:\"cursor,omitempty\" query:\"cursor\"`\n\t// Is there still data to be pulled?\n\tHasMore  bool           `thrift:\"has_more,6\" form:\"has_more\" json:\"has_more\" query:\"has_more\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewLibraryResourceListResponse() *LibraryResourceListResponse {\n\treturn &LibraryResourceListResponse{}\n}\n\nfunc (p *LibraryResourceListResponse) InitDefault() {\n}\n\nfunc (p *LibraryResourceListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *LibraryResourceListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *LibraryResourceListResponse) GetResourceList() (v []*common.ResourceInfo) {\n\treturn p.ResourceList\n}\n\nvar LibraryResourceListResponse_Cursor_DEFAULT string\n\nfunc (p *LibraryResourceListResponse) GetCursor() (v string) {\n\tif !p.IsSetCursor() {\n\t\treturn LibraryResourceListResponse_Cursor_DEFAULT\n\t}\n\treturn *p.Cursor\n}\n\nfunc (p *LibraryResourceListResponse) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nvar LibraryResourceListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *LibraryResourceListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn LibraryResourceListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_LibraryResourceListResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"resource_list\",\n\t5:   \"cursor\",\n\t6:   \"has_more\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *LibraryResourceListResponse) IsSetCursor() bool {\n\treturn p.Cursor != nil\n}\n\nfunc (p *LibraryResourceListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *LibraryResourceListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_LibraryResourceListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_LibraryResourceListResponse[fieldId]))\n}\n\nfunc (p *LibraryResourceListResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.ResourceInfo, 0, size)\n\tvalues := make([]common.ResourceInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResourceList = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListResponse) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Cursor = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListResponse) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *LibraryResourceListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *LibraryResourceListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"LibraryResourceListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *LibraryResourceListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *LibraryResourceListResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *LibraryResourceListResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"resource_list\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResourceList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResourceList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *LibraryResourceListResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCursor() {\n\t\tif err = oprot.WriteFieldBegin(\"cursor\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Cursor); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *LibraryResourceListResponse) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_more\", thrift.BOOL, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *LibraryResourceListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *LibraryResourceListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"LibraryResourceListResponse(%+v)\", *p)\n\n}\n\ntype ProjectResourceListRequest struct {\n\t// Project ID\n\tProjectID int64 `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,string,required\" query:\"project_id,required\"`\n\t// User space id\n\tSpaceID int64 `thrift:\"space_id,2\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\t// Specify the resources to obtain a version of the project\n\tProjectVersion *string    `thrift:\"project_version,3,optional\" form:\"project_version\" json:\"project_version,omitempty\" query:\"project_version\"`\n\tBase           *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewProjectResourceListRequest() *ProjectResourceListRequest {\n\treturn &ProjectResourceListRequest{}\n}\n\nfunc (p *ProjectResourceListRequest) InitDefault() {\n}\n\nfunc (p *ProjectResourceListRequest) GetProjectID() (v int64) {\n\treturn p.ProjectID\n}\n\nfunc (p *ProjectResourceListRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar ProjectResourceListRequest_ProjectVersion_DEFAULT string\n\nfunc (p *ProjectResourceListRequest) GetProjectVersion() (v string) {\n\tif !p.IsSetProjectVersion() {\n\t\treturn ProjectResourceListRequest_ProjectVersion_DEFAULT\n\t}\n\treturn *p.ProjectVersion\n}\n\nvar ProjectResourceListRequest_Base_DEFAULT *base.Base\n\nfunc (p *ProjectResourceListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ProjectResourceListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ProjectResourceListRequest = map[int16]string{\n\t1:   \"project_id\",\n\t2:   \"space_id\",\n\t3:   \"project_version\",\n\t255: \"Base\",\n}\n\nfunc (p *ProjectResourceListRequest) IsSetProjectVersion() bool {\n\treturn p.ProjectVersion != nil\n}\n\nfunc (p *ProjectResourceListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ProjectResourceListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProjectResourceListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ProjectResourceListRequest[fieldId]))\n}\n\nfunc (p *ProjectResourceListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *ProjectResourceListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ProjectResourceListRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectVersion = _field\n\treturn nil\n}\nfunc (p *ProjectResourceListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ProjectResourceListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectResourceListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProjectResourceListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProjectResourceListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ProjectResourceListRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"project_version\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ProjectResourceListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ProjectResourceListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProjectResourceListRequest(%+v)\", *p)\n\n}\n\ntype ProjectResourceListResponse struct {\n\tCode           int64                          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg            string                         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tResourceGroups []*common.ProjectResourceGroup `thrift:\"resource_groups,3\" form:\"resource_groups\" json:\"resource_groups\" query:\"resource_groups\"`\n\tBaseResp       *base.BaseResp                 `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewProjectResourceListResponse() *ProjectResourceListResponse {\n\treturn &ProjectResourceListResponse{}\n}\n\nfunc (p *ProjectResourceListResponse) InitDefault() {\n}\n\nfunc (p *ProjectResourceListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ProjectResourceListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nfunc (p *ProjectResourceListResponse) GetResourceGroups() (v []*common.ProjectResourceGroup) {\n\treturn p.ResourceGroups\n}\n\nvar ProjectResourceListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ProjectResourceListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ProjectResourceListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ProjectResourceListResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"resource_groups\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ProjectResourceListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ProjectResourceListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProjectResourceListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ProjectResourceListResponse[fieldId]))\n}\n\nfunc (p *ProjectResourceListResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ProjectResourceListResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ProjectResourceListResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.ProjectResourceGroup, 0, size)\n\tvalues := make([]common.ProjectResourceGroup, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResourceGroups = _field\n\treturn nil\n}\nfunc (p *ProjectResourceListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ProjectResourceListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectResourceListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProjectResourceListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProjectResourceListResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ProjectResourceListResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"resource_groups\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResourceGroups)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResourceGroups {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ProjectResourceListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ProjectResourceListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProjectResourceListResponse(%+v)\", *p)\n\n}\n\ntype ResourceCopyDispatchRequest struct {\n\t// Scenario, only supports the operation of a single resource\n\tScene common.ResourceCopyScene `thrift:\"scene,1\" form:\"scene\" json:\"scene\" query:\"scene\"`\n\t// The resource ID selected by the user to copy/move\n\tResID   int64          `thrift:\"res_id,2\" form:\"res_id\" json:\"res_id,string\"`\n\tResType common.ResType `thrift:\"res_type,3\" form:\"res_type\" json:\"res_type\" query:\"res_type\"`\n\t// Project ID\n\tProjectID *int64  `thrift:\"project_id,4,optional\" form:\"project_id\" json:\"project_id,string,omitempty\"`\n\tResName   *string `thrift:\"res_name,5,optional\" form:\"res_name\" json:\"res_name,omitempty\" query:\"res_name\"`\n\t// Target space id for cross-space copy\n\tTargetSpaceID *int64     `thrift:\"target_space_id,6,optional\" form:\"target_space_id\" json:\"target_space_id,string,omitempty\"`\n\tBase          *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewResourceCopyDispatchRequest() *ResourceCopyDispatchRequest {\n\treturn &ResourceCopyDispatchRequest{}\n}\n\nfunc (p *ResourceCopyDispatchRequest) InitDefault() {\n}\n\nfunc (p *ResourceCopyDispatchRequest) GetScene() (v common.ResourceCopyScene) {\n\treturn p.Scene\n}\n\nfunc (p *ResourceCopyDispatchRequest) GetResID() (v int64) {\n\treturn p.ResID\n}\n\nfunc (p *ResourceCopyDispatchRequest) GetResType() (v common.ResType) {\n\treturn p.ResType\n}\n\nvar ResourceCopyDispatchRequest_ProjectID_DEFAULT int64\n\nfunc (p *ResourceCopyDispatchRequest) GetProjectID() (v int64) {\n\tif !p.IsSetProjectID() {\n\t\treturn ResourceCopyDispatchRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar ResourceCopyDispatchRequest_ResName_DEFAULT string\n\nfunc (p *ResourceCopyDispatchRequest) GetResName() (v string) {\n\tif !p.IsSetResName() {\n\t\treturn ResourceCopyDispatchRequest_ResName_DEFAULT\n\t}\n\treturn *p.ResName\n}\n\nvar ResourceCopyDispatchRequest_TargetSpaceID_DEFAULT int64\n\nfunc (p *ResourceCopyDispatchRequest) GetTargetSpaceID() (v int64) {\n\tif !p.IsSetTargetSpaceID() {\n\t\treturn ResourceCopyDispatchRequest_TargetSpaceID_DEFAULT\n\t}\n\treturn *p.TargetSpaceID\n}\n\nvar ResourceCopyDispatchRequest_Base_DEFAULT *base.Base\n\nfunc (p *ResourceCopyDispatchRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ResourceCopyDispatchRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ResourceCopyDispatchRequest = map[int16]string{\n\t1:   \"scene\",\n\t2:   \"res_id\",\n\t3:   \"res_type\",\n\t4:   \"project_id\",\n\t5:   \"res_name\",\n\t6:   \"target_space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ResourceCopyDispatchRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *ResourceCopyDispatchRequest) IsSetResName() bool {\n\treturn p.ResName != nil\n}\n\nfunc (p *ResourceCopyDispatchRequest) IsSetTargetSpaceID() bool {\n\treturn p.TargetSpaceID != nil\n}\n\nfunc (p *ResourceCopyDispatchRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ResourceCopyDispatchRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceCopyDispatchRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyDispatchRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field common.ResourceCopyScene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.ResourceCopyScene(v)\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDispatchRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ResID = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDispatchRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field common.ResType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = common.ResType(v)\n\t}\n\tp.ResType = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDispatchRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDispatchRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ResName = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDispatchRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TargetSpaceID = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDispatchRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ResourceCopyDispatchRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyDispatchRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyDispatchRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"scene\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Scene)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceCopyDispatchRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"res_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ResID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResourceCopyDispatchRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"res_type\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ResType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ResourceCopyDispatchRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ResourceCopyDispatchRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResName() {\n\t\tif err = oprot.WriteFieldBegin(\"res_name\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ResName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ResourceCopyDispatchRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTargetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"target_space_id\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.TargetSpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ResourceCopyDispatchRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResourceCopyDispatchRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceCopyDispatchRequest(%+v)\", *p)\n\n}\n\ntype ResourceCopyDispatchResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\t// Copy task ID, used to query task status or cancel or retry tasks\n\tTaskID *string `thrift:\"task_id,3,optional\" form:\"task_id\" json:\"task_id,omitempty\" query:\"task_id\"`\n\t// The reason why the operation cannot be performed is to return multilingual text\n\tFailedReasons []*common.ResourceCopyFailedReason `thrift:\"failed_reasons,4,optional\" form:\"failed_reasons\" json:\"failed_reasons,omitempty\" query:\"failed_reasons\"`\n\tBaseResp      *base.BaseResp                     `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewResourceCopyDispatchResponse() *ResourceCopyDispatchResponse {\n\treturn &ResourceCopyDispatchResponse{}\n}\n\nfunc (p *ResourceCopyDispatchResponse) InitDefault() {\n}\n\nfunc (p *ResourceCopyDispatchResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ResourceCopyDispatchResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ResourceCopyDispatchResponse_TaskID_DEFAULT string\n\nfunc (p *ResourceCopyDispatchResponse) GetTaskID() (v string) {\n\tif !p.IsSetTaskID() {\n\t\treturn ResourceCopyDispatchResponse_TaskID_DEFAULT\n\t}\n\treturn *p.TaskID\n}\n\nvar ResourceCopyDispatchResponse_FailedReasons_DEFAULT []*common.ResourceCopyFailedReason\n\nfunc (p *ResourceCopyDispatchResponse) GetFailedReasons() (v []*common.ResourceCopyFailedReason) {\n\tif !p.IsSetFailedReasons() {\n\t\treturn ResourceCopyDispatchResponse_FailedReasons_DEFAULT\n\t}\n\treturn p.FailedReasons\n}\n\nvar ResourceCopyDispatchResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ResourceCopyDispatchResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ResourceCopyDispatchResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ResourceCopyDispatchResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"task_id\",\n\t4:   \"failed_reasons\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ResourceCopyDispatchResponse) IsSetTaskID() bool {\n\treturn p.TaskID != nil\n}\n\nfunc (p *ResourceCopyDispatchResponse) IsSetFailedReasons() bool {\n\treturn p.FailedReasons != nil\n}\n\nfunc (p *ResourceCopyDispatchResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ResourceCopyDispatchResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceCopyDispatchResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ResourceCopyDispatchResponse[fieldId]))\n}\n\nfunc (p *ResourceCopyDispatchResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDispatchResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDispatchResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TaskID = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDispatchResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.ResourceCopyFailedReason, 0, size)\n\tvalues := make([]common.ResourceCopyFailedReason, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FailedReasons = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDispatchResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ResourceCopyDispatchResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyDispatchResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyDispatchResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceCopyDispatchResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResourceCopyDispatchResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTaskID() {\n\t\tif err = oprot.WriteFieldBegin(\"task_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TaskID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ResourceCopyDispatchResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFailedReasons() {\n\t\tif err = oprot.WriteFieldBegin(\"failed_reasons\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FailedReasons)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FailedReasons {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ResourceCopyDispatchResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResourceCopyDispatchResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceCopyDispatchResponse(%+v)\", *p)\n\n}\n\ntype ResourceCopyDetailRequest struct {\n\t// Copy task ID, used to query task status or cancel or retry tasks\n\tTaskID string     `thrift:\"task_id,1\" form:\"task_id\" json:\"task_id\" query:\"task_id\"`\n\tBase   *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewResourceCopyDetailRequest() *ResourceCopyDetailRequest {\n\treturn &ResourceCopyDetailRequest{}\n}\n\nfunc (p *ResourceCopyDetailRequest) InitDefault() {\n}\n\nfunc (p *ResourceCopyDetailRequest) GetTaskID() (v string) {\n\treturn p.TaskID\n}\n\nvar ResourceCopyDetailRequest_Base_DEFAULT *base.Base\n\nfunc (p *ResourceCopyDetailRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ResourceCopyDetailRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ResourceCopyDetailRequest = map[int16]string{\n\t1:   \"task_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ResourceCopyDetailRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ResourceCopyDetailRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceCopyDetailRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyDetailRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TaskID = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDetailRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ResourceCopyDetailRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyDetailRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyDetailRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"task_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TaskID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceCopyDetailRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResourceCopyDetailRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceCopyDetailRequest(%+v)\", *p)\n\n}\n\ntype ResourceCopyDetailResponse struct {\n\tCode       int64                          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg        string                         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tTaskDetail *common.ResourceCopyTaskDetail `thrift:\"task_detail,3,optional\" form:\"task_detail\" json:\"task_detail,omitempty\" query:\"task_detail\"`\n\tBaseResp   *base.BaseResp                 `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewResourceCopyDetailResponse() *ResourceCopyDetailResponse {\n\treturn &ResourceCopyDetailResponse{}\n}\n\nfunc (p *ResourceCopyDetailResponse) InitDefault() {\n}\n\nfunc (p *ResourceCopyDetailResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ResourceCopyDetailResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ResourceCopyDetailResponse_TaskDetail_DEFAULT *common.ResourceCopyTaskDetail\n\nfunc (p *ResourceCopyDetailResponse) GetTaskDetail() (v *common.ResourceCopyTaskDetail) {\n\tif !p.IsSetTaskDetail() {\n\t\treturn ResourceCopyDetailResponse_TaskDetail_DEFAULT\n\t}\n\treturn p.TaskDetail\n}\n\nvar ResourceCopyDetailResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ResourceCopyDetailResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ResourceCopyDetailResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ResourceCopyDetailResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"task_detail\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ResourceCopyDetailResponse) IsSetTaskDetail() bool {\n\treturn p.TaskDetail != nil\n}\n\nfunc (p *ResourceCopyDetailResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ResourceCopyDetailResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceCopyDetailResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ResourceCopyDetailResponse[fieldId]))\n}\n\nfunc (p *ResourceCopyDetailResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDetailResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDetailResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := common.NewResourceCopyTaskDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TaskDetail = _field\n\treturn nil\n}\nfunc (p *ResourceCopyDetailResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ResourceCopyDetailResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyDetailResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyDetailResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceCopyDetailResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResourceCopyDetailResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTaskDetail() {\n\t\tif err = oprot.WriteFieldBegin(\"task_detail\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TaskDetail.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ResourceCopyDetailResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResourceCopyDetailResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceCopyDetailResponse(%+v)\", *p)\n\n}\n\ntype ResourceCopyRetryRequest struct {\n\t// Copy task ID, used to query task status or cancel or retry tasks\n\tTaskID string     `thrift:\"task_id,1\" form:\"task_id\" json:\"task_id\" query:\"task_id\"`\n\tBase   *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewResourceCopyRetryRequest() *ResourceCopyRetryRequest {\n\treturn &ResourceCopyRetryRequest{}\n}\n\nfunc (p *ResourceCopyRetryRequest) InitDefault() {\n}\n\nfunc (p *ResourceCopyRetryRequest) GetTaskID() (v string) {\n\treturn p.TaskID\n}\n\nvar ResourceCopyRetryRequest_Base_DEFAULT *base.Base\n\nfunc (p *ResourceCopyRetryRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ResourceCopyRetryRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ResourceCopyRetryRequest = map[int16]string{\n\t1:   \"task_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ResourceCopyRetryRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ResourceCopyRetryRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceCopyRetryRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyRetryRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TaskID = _field\n\treturn nil\n}\nfunc (p *ResourceCopyRetryRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ResourceCopyRetryRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyRetryRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyRetryRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"task_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TaskID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceCopyRetryRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResourceCopyRetryRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceCopyRetryRequest(%+v)\", *p)\n\n}\n\ntype ResourceCopyRetryResponse struct {\n\tCode int64  `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg  string `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\t// The reason why the operation cannot be performed is to return multilingual text\n\tFailedReasons []*common.ResourceCopyFailedReason `thrift:\"failed_reasons,4,optional\" form:\"failed_reasons\" json:\"failed_reasons,omitempty\" query:\"failed_reasons\"`\n\tBaseResp      *base.BaseResp                     `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewResourceCopyRetryResponse() *ResourceCopyRetryResponse {\n\treturn &ResourceCopyRetryResponse{}\n}\n\nfunc (p *ResourceCopyRetryResponse) InitDefault() {\n}\n\nfunc (p *ResourceCopyRetryResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ResourceCopyRetryResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ResourceCopyRetryResponse_FailedReasons_DEFAULT []*common.ResourceCopyFailedReason\n\nfunc (p *ResourceCopyRetryResponse) GetFailedReasons() (v []*common.ResourceCopyFailedReason) {\n\tif !p.IsSetFailedReasons() {\n\t\treturn ResourceCopyRetryResponse_FailedReasons_DEFAULT\n\t}\n\treturn p.FailedReasons\n}\n\nvar ResourceCopyRetryResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ResourceCopyRetryResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ResourceCopyRetryResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ResourceCopyRetryResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t4:   \"failed_reasons\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ResourceCopyRetryResponse) IsSetFailedReasons() bool {\n\treturn p.FailedReasons != nil\n}\n\nfunc (p *ResourceCopyRetryResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ResourceCopyRetryResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceCopyRetryResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ResourceCopyRetryResponse[fieldId]))\n}\n\nfunc (p *ResourceCopyRetryResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ResourceCopyRetryResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ResourceCopyRetryResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*common.ResourceCopyFailedReason, 0, size)\n\tvalues := make([]common.ResourceCopyFailedReason, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FailedReasons = _field\n\treturn nil\n}\nfunc (p *ResourceCopyRetryResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ResourceCopyRetryResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyRetryResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyRetryResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceCopyRetryResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResourceCopyRetryResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFailedReasons() {\n\t\tif err = oprot.WriteFieldBegin(\"failed_reasons\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.FailedReasons)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FailedReasons {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ResourceCopyRetryResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResourceCopyRetryResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceCopyRetryResponse(%+v)\", *p)\n\n}\n\ntype ResourceCopyCancelRequest struct {\n\t// Copy task ID, used to query task status or cancel or retry tasks\n\tTaskID string     `thrift:\"task_id,1\" form:\"task_id\" json:\"task_id\" query:\"task_id\"`\n\tBase   *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewResourceCopyCancelRequest() *ResourceCopyCancelRequest {\n\treturn &ResourceCopyCancelRequest{}\n}\n\nfunc (p *ResourceCopyCancelRequest) InitDefault() {\n}\n\nfunc (p *ResourceCopyCancelRequest) GetTaskID() (v string) {\n\treturn p.TaskID\n}\n\nvar ResourceCopyCancelRequest_Base_DEFAULT *base.Base\n\nfunc (p *ResourceCopyCancelRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ResourceCopyCancelRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ResourceCopyCancelRequest = map[int16]string{\n\t1:   \"task_id\",\n\t255: \"Base\",\n}\n\nfunc (p *ResourceCopyCancelRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ResourceCopyCancelRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceCopyCancelRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyCancelRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TaskID = _field\n\treturn nil\n}\nfunc (p *ResourceCopyCancelRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ResourceCopyCancelRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyCancelRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyCancelRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"task_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TaskID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceCopyCancelRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResourceCopyCancelRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceCopyCancelRequest(%+v)\", *p)\n\n}\n\ntype ResourceCopyCancelResponse struct {\n\tCode     int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewResourceCopyCancelResponse() *ResourceCopyCancelResponse {\n\treturn &ResourceCopyCancelResponse{}\n}\n\nfunc (p *ResourceCopyCancelResponse) InitDefault() {\n}\n\nfunc (p *ResourceCopyCancelResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ResourceCopyCancelResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ResourceCopyCancelResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ResourceCopyCancelResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ResourceCopyCancelResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ResourceCopyCancelResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ResourceCopyCancelResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ResourceCopyCancelResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceCopyCancelResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ResourceCopyCancelResponse[fieldId]))\n}\n\nfunc (p *ResourceCopyCancelResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ResourceCopyCancelResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ResourceCopyCancelResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ResourceCopyCancelResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyCancelResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceCopyCancelResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceCopyCancelResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResourceCopyCancelResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ResourceCopyCancelResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceCopyCancelResponse(%+v)\", *p)\n\n}\n\ntype ResourceService interface {\n\tLibraryResourceList(ctx context.Context, request *LibraryResourceListRequest) (r *LibraryResourceListResponse, err error)\n\n\tProjectResourceList(ctx context.Context, request *ProjectResourceListRequest) (r *ProjectResourceListResponse, err error)\n\t// Copy Library resources to projects, copy project resources to libraries, move project resources to libraries, and copy resources within projects\n\tResourceCopyDispatch(ctx context.Context, req *ResourceCopyDispatchRequest) (r *ResourceCopyDispatchResponse, err error)\n\n\tResourceCopyDetail(ctx context.Context, req *ResourceCopyDetailRequest) (r *ResourceCopyDetailResponse, err error)\n\n\tResourceCopyRetry(ctx context.Context, req *ResourceCopyRetryRequest) (r *ResourceCopyRetryResponse, err error)\n\n\tResourceCopyCancel(ctx context.Context, req *ResourceCopyCancelRequest) (r *ResourceCopyCancelResponse, err error)\n}\n\ntype ResourceServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewResourceServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *ResourceServiceClient {\n\treturn &ResourceServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewResourceServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *ResourceServiceClient {\n\treturn &ResourceServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewResourceServiceClient(c thrift.TClient) *ResourceServiceClient {\n\treturn &ResourceServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *ResourceServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *ResourceServiceClient) LibraryResourceList(ctx context.Context, request *LibraryResourceListRequest) (r *LibraryResourceListResponse, err error) {\n\tvar _args ResourceServiceLibraryResourceListArgs\n\t_args.Request = request\n\tvar _result ResourceServiceLibraryResourceListResult\n\tif err = p.Client_().Call(ctx, \"LibraryResourceList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ResourceServiceClient) ProjectResourceList(ctx context.Context, request *ProjectResourceListRequest) (r *ProjectResourceListResponse, err error) {\n\tvar _args ResourceServiceProjectResourceListArgs\n\t_args.Request = request\n\tvar _result ResourceServiceProjectResourceListResult\n\tif err = p.Client_().Call(ctx, \"ProjectResourceList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ResourceServiceClient) ResourceCopyDispatch(ctx context.Context, req *ResourceCopyDispatchRequest) (r *ResourceCopyDispatchResponse, err error) {\n\tvar _args ResourceServiceResourceCopyDispatchArgs\n\t_args.Req = req\n\tvar _result ResourceServiceResourceCopyDispatchResult\n\tif err = p.Client_().Call(ctx, \"ResourceCopyDispatch\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ResourceServiceClient) ResourceCopyDetail(ctx context.Context, req *ResourceCopyDetailRequest) (r *ResourceCopyDetailResponse, err error) {\n\tvar _args ResourceServiceResourceCopyDetailArgs\n\t_args.Req = req\n\tvar _result ResourceServiceResourceCopyDetailResult\n\tif err = p.Client_().Call(ctx, \"ResourceCopyDetail\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ResourceServiceClient) ResourceCopyRetry(ctx context.Context, req *ResourceCopyRetryRequest) (r *ResourceCopyRetryResponse, err error) {\n\tvar _args ResourceServiceResourceCopyRetryArgs\n\t_args.Req = req\n\tvar _result ResourceServiceResourceCopyRetryResult\n\tif err = p.Client_().Call(ctx, \"ResourceCopyRetry\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *ResourceServiceClient) ResourceCopyCancel(ctx context.Context, req *ResourceCopyCancelRequest) (r *ResourceCopyCancelResponse, err error) {\n\tvar _args ResourceServiceResourceCopyCancelArgs\n\t_args.Req = req\n\tvar _result ResourceServiceResourceCopyCancelResult\n\tif err = p.Client_().Call(ctx, \"ResourceCopyCancel\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype ResourceServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      ResourceService\n}\n\nfunc (p *ResourceServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *ResourceServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *ResourceServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewResourceServiceProcessor(handler ResourceService) *ResourceServiceProcessor {\n\tself := &ResourceServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"LibraryResourceList\", &resourceServiceProcessorLibraryResourceList{handler: handler})\n\tself.AddToProcessorMap(\"ProjectResourceList\", &resourceServiceProcessorProjectResourceList{handler: handler})\n\tself.AddToProcessorMap(\"ResourceCopyDispatch\", &resourceServiceProcessorResourceCopyDispatch{handler: handler})\n\tself.AddToProcessorMap(\"ResourceCopyDetail\", &resourceServiceProcessorResourceCopyDetail{handler: handler})\n\tself.AddToProcessorMap(\"ResourceCopyRetry\", &resourceServiceProcessorResourceCopyRetry{handler: handler})\n\tself.AddToProcessorMap(\"ResourceCopyCancel\", &resourceServiceProcessorResourceCopyCancel{handler: handler})\n\treturn self\n}\nfunc (p *ResourceServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype resourceServiceProcessorLibraryResourceList struct {\n\thandler ResourceService\n}\n\nfunc (p *resourceServiceProcessorLibraryResourceList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ResourceServiceLibraryResourceListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"LibraryResourceList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ResourceServiceLibraryResourceListResult{}\n\tvar retval *LibraryResourceListResponse\n\tif retval, err2 = p.handler.LibraryResourceList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing LibraryResourceList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"LibraryResourceList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"LibraryResourceList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype resourceServiceProcessorProjectResourceList struct {\n\thandler ResourceService\n}\n\nfunc (p *resourceServiceProcessorProjectResourceList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ResourceServiceProjectResourceListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ProjectResourceList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ResourceServiceProjectResourceListResult{}\n\tvar retval *ProjectResourceListResponse\n\tif retval, err2 = p.handler.ProjectResourceList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ProjectResourceList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ProjectResourceList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ProjectResourceList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype resourceServiceProcessorResourceCopyDispatch struct {\n\thandler ResourceService\n}\n\nfunc (p *resourceServiceProcessorResourceCopyDispatch) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ResourceServiceResourceCopyDispatchArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ResourceCopyDispatch\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ResourceServiceResourceCopyDispatchResult{}\n\tvar retval *ResourceCopyDispatchResponse\n\tif retval, err2 = p.handler.ResourceCopyDispatch(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ResourceCopyDispatch: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ResourceCopyDispatch\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ResourceCopyDispatch\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype resourceServiceProcessorResourceCopyDetail struct {\n\thandler ResourceService\n}\n\nfunc (p *resourceServiceProcessorResourceCopyDetail) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ResourceServiceResourceCopyDetailArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ResourceCopyDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ResourceServiceResourceCopyDetailResult{}\n\tvar retval *ResourceCopyDetailResponse\n\tif retval, err2 = p.handler.ResourceCopyDetail(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ResourceCopyDetail: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ResourceCopyDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ResourceCopyDetail\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype resourceServiceProcessorResourceCopyRetry struct {\n\thandler ResourceService\n}\n\nfunc (p *resourceServiceProcessorResourceCopyRetry) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ResourceServiceResourceCopyRetryArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ResourceCopyRetry\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ResourceServiceResourceCopyRetryResult{}\n\tvar retval *ResourceCopyRetryResponse\n\tif retval, err2 = p.handler.ResourceCopyRetry(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ResourceCopyRetry: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ResourceCopyRetry\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ResourceCopyRetry\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype resourceServiceProcessorResourceCopyCancel struct {\n\thandler ResourceService\n}\n\nfunc (p *resourceServiceProcessorResourceCopyCancel) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := ResourceServiceResourceCopyCancelArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ResourceCopyCancel\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := ResourceServiceResourceCopyCancelResult{}\n\tvar retval *ResourceCopyCancelResponse\n\tif retval, err2 = p.handler.ResourceCopyCancel(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ResourceCopyCancel: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ResourceCopyCancel\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ResourceCopyCancel\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype ResourceServiceLibraryResourceListArgs struct {\n\tRequest *LibraryResourceListRequest `thrift:\"request,1\"`\n}\n\nfunc NewResourceServiceLibraryResourceListArgs() *ResourceServiceLibraryResourceListArgs {\n\treturn &ResourceServiceLibraryResourceListArgs{}\n}\n\nfunc (p *ResourceServiceLibraryResourceListArgs) InitDefault() {\n}\n\nvar ResourceServiceLibraryResourceListArgs_Request_DEFAULT *LibraryResourceListRequest\n\nfunc (p *ResourceServiceLibraryResourceListArgs) GetRequest() (v *LibraryResourceListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn ResourceServiceLibraryResourceListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_ResourceServiceLibraryResourceListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *ResourceServiceLibraryResourceListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *ResourceServiceLibraryResourceListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceLibraryResourceListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceLibraryResourceListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewLibraryResourceListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceLibraryResourceListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"LibraryResourceList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceLibraryResourceListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceLibraryResourceListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceLibraryResourceListArgs(%+v)\", *p)\n\n}\n\ntype ResourceServiceLibraryResourceListResult struct {\n\tSuccess *LibraryResourceListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewResourceServiceLibraryResourceListResult() *ResourceServiceLibraryResourceListResult {\n\treturn &ResourceServiceLibraryResourceListResult{}\n}\n\nfunc (p *ResourceServiceLibraryResourceListResult) InitDefault() {\n}\n\nvar ResourceServiceLibraryResourceListResult_Success_DEFAULT *LibraryResourceListResponse\n\nfunc (p *ResourceServiceLibraryResourceListResult) GetSuccess() (v *LibraryResourceListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ResourceServiceLibraryResourceListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ResourceServiceLibraryResourceListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ResourceServiceLibraryResourceListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ResourceServiceLibraryResourceListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceLibraryResourceListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceLibraryResourceListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewLibraryResourceListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceLibraryResourceListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"LibraryResourceList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceLibraryResourceListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceLibraryResourceListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceLibraryResourceListResult(%+v)\", *p)\n\n}\n\ntype ResourceServiceProjectResourceListArgs struct {\n\tRequest *ProjectResourceListRequest `thrift:\"request,1\"`\n}\n\nfunc NewResourceServiceProjectResourceListArgs() *ResourceServiceProjectResourceListArgs {\n\treturn &ResourceServiceProjectResourceListArgs{}\n}\n\nfunc (p *ResourceServiceProjectResourceListArgs) InitDefault() {\n}\n\nvar ResourceServiceProjectResourceListArgs_Request_DEFAULT *ProjectResourceListRequest\n\nfunc (p *ResourceServiceProjectResourceListArgs) GetRequest() (v *ProjectResourceListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn ResourceServiceProjectResourceListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_ResourceServiceProjectResourceListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *ResourceServiceProjectResourceListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *ResourceServiceProjectResourceListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceProjectResourceListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceProjectResourceListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewProjectResourceListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceProjectResourceListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectResourceList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceProjectResourceListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceProjectResourceListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceProjectResourceListArgs(%+v)\", *p)\n\n}\n\ntype ResourceServiceProjectResourceListResult struct {\n\tSuccess *ProjectResourceListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewResourceServiceProjectResourceListResult() *ResourceServiceProjectResourceListResult {\n\treturn &ResourceServiceProjectResourceListResult{}\n}\n\nfunc (p *ResourceServiceProjectResourceListResult) InitDefault() {\n}\n\nvar ResourceServiceProjectResourceListResult_Success_DEFAULT *ProjectResourceListResponse\n\nfunc (p *ResourceServiceProjectResourceListResult) GetSuccess() (v *ProjectResourceListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ResourceServiceProjectResourceListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ResourceServiceProjectResourceListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ResourceServiceProjectResourceListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ResourceServiceProjectResourceListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceProjectResourceListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceProjectResourceListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewProjectResourceListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceProjectResourceListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectResourceList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceProjectResourceListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceProjectResourceListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceProjectResourceListResult(%+v)\", *p)\n\n}\n\ntype ResourceServiceResourceCopyDispatchArgs struct {\n\tReq *ResourceCopyDispatchRequest `thrift:\"req,1\"`\n}\n\nfunc NewResourceServiceResourceCopyDispatchArgs() *ResourceServiceResourceCopyDispatchArgs {\n\treturn &ResourceServiceResourceCopyDispatchArgs{}\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchArgs) InitDefault() {\n}\n\nvar ResourceServiceResourceCopyDispatchArgs_Req_DEFAULT *ResourceCopyDispatchRequest\n\nfunc (p *ResourceServiceResourceCopyDispatchArgs) GetReq() (v *ResourceCopyDispatchRequest) {\n\tif !p.IsSetReq() {\n\t\treturn ResourceServiceResourceCopyDispatchArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ResourceServiceResourceCopyDispatchArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceResourceCopyDispatchArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewResourceCopyDispatchRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyDispatch_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceResourceCopyDispatchArgs(%+v)\", *p)\n\n}\n\ntype ResourceServiceResourceCopyDispatchResult struct {\n\tSuccess *ResourceCopyDispatchResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewResourceServiceResourceCopyDispatchResult() *ResourceServiceResourceCopyDispatchResult {\n\treturn &ResourceServiceResourceCopyDispatchResult{}\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchResult) InitDefault() {\n}\n\nvar ResourceServiceResourceCopyDispatchResult_Success_DEFAULT *ResourceCopyDispatchResponse\n\nfunc (p *ResourceServiceResourceCopyDispatchResult) GetSuccess() (v *ResourceCopyDispatchResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ResourceServiceResourceCopyDispatchResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ResourceServiceResourceCopyDispatchResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceResourceCopyDispatchResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewResourceCopyDispatchResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyDispatch_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDispatchResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceResourceCopyDispatchResult(%+v)\", *p)\n\n}\n\ntype ResourceServiceResourceCopyDetailArgs struct {\n\tReq *ResourceCopyDetailRequest `thrift:\"req,1\"`\n}\n\nfunc NewResourceServiceResourceCopyDetailArgs() *ResourceServiceResourceCopyDetailArgs {\n\treturn &ResourceServiceResourceCopyDetailArgs{}\n}\n\nfunc (p *ResourceServiceResourceCopyDetailArgs) InitDefault() {\n}\n\nvar ResourceServiceResourceCopyDetailArgs_Req_DEFAULT *ResourceCopyDetailRequest\n\nfunc (p *ResourceServiceResourceCopyDetailArgs) GetReq() (v *ResourceCopyDetailRequest) {\n\tif !p.IsSetReq() {\n\t\treturn ResourceServiceResourceCopyDetailArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ResourceServiceResourceCopyDetailArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ResourceServiceResourceCopyDetailArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ResourceServiceResourceCopyDetailArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceResourceCopyDetailArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDetailArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewResourceCopyDetailRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceResourceCopyDetailArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyDetail_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDetailArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDetailArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceResourceCopyDetailArgs(%+v)\", *p)\n\n}\n\ntype ResourceServiceResourceCopyDetailResult struct {\n\tSuccess *ResourceCopyDetailResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewResourceServiceResourceCopyDetailResult() *ResourceServiceResourceCopyDetailResult {\n\treturn &ResourceServiceResourceCopyDetailResult{}\n}\n\nfunc (p *ResourceServiceResourceCopyDetailResult) InitDefault() {\n}\n\nvar ResourceServiceResourceCopyDetailResult_Success_DEFAULT *ResourceCopyDetailResponse\n\nfunc (p *ResourceServiceResourceCopyDetailResult) GetSuccess() (v *ResourceCopyDetailResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ResourceServiceResourceCopyDetailResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ResourceServiceResourceCopyDetailResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ResourceServiceResourceCopyDetailResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ResourceServiceResourceCopyDetailResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceResourceCopyDetailResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDetailResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewResourceCopyDetailResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceResourceCopyDetailResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyDetail_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDetailResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyDetailResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceResourceCopyDetailResult(%+v)\", *p)\n\n}\n\ntype ResourceServiceResourceCopyRetryArgs struct {\n\tReq *ResourceCopyRetryRequest `thrift:\"req,1\"`\n}\n\nfunc NewResourceServiceResourceCopyRetryArgs() *ResourceServiceResourceCopyRetryArgs {\n\treturn &ResourceServiceResourceCopyRetryArgs{}\n}\n\nfunc (p *ResourceServiceResourceCopyRetryArgs) InitDefault() {\n}\n\nvar ResourceServiceResourceCopyRetryArgs_Req_DEFAULT *ResourceCopyRetryRequest\n\nfunc (p *ResourceServiceResourceCopyRetryArgs) GetReq() (v *ResourceCopyRetryRequest) {\n\tif !p.IsSetReq() {\n\t\treturn ResourceServiceResourceCopyRetryArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ResourceServiceResourceCopyRetryArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ResourceServiceResourceCopyRetryArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ResourceServiceResourceCopyRetryArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceResourceCopyRetryArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyRetryArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewResourceCopyRetryRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceResourceCopyRetryArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyRetry_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyRetryArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyRetryArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceResourceCopyRetryArgs(%+v)\", *p)\n\n}\n\ntype ResourceServiceResourceCopyRetryResult struct {\n\tSuccess *ResourceCopyRetryResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewResourceServiceResourceCopyRetryResult() *ResourceServiceResourceCopyRetryResult {\n\treturn &ResourceServiceResourceCopyRetryResult{}\n}\n\nfunc (p *ResourceServiceResourceCopyRetryResult) InitDefault() {\n}\n\nvar ResourceServiceResourceCopyRetryResult_Success_DEFAULT *ResourceCopyRetryResponse\n\nfunc (p *ResourceServiceResourceCopyRetryResult) GetSuccess() (v *ResourceCopyRetryResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ResourceServiceResourceCopyRetryResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ResourceServiceResourceCopyRetryResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ResourceServiceResourceCopyRetryResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ResourceServiceResourceCopyRetryResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceResourceCopyRetryResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyRetryResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewResourceCopyRetryResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceResourceCopyRetryResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyRetry_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyRetryResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyRetryResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceResourceCopyRetryResult(%+v)\", *p)\n\n}\n\ntype ResourceServiceResourceCopyCancelArgs struct {\n\tReq *ResourceCopyCancelRequest `thrift:\"req,1\"`\n}\n\nfunc NewResourceServiceResourceCopyCancelArgs() *ResourceServiceResourceCopyCancelArgs {\n\treturn &ResourceServiceResourceCopyCancelArgs{}\n}\n\nfunc (p *ResourceServiceResourceCopyCancelArgs) InitDefault() {\n}\n\nvar ResourceServiceResourceCopyCancelArgs_Req_DEFAULT *ResourceCopyCancelRequest\n\nfunc (p *ResourceServiceResourceCopyCancelArgs) GetReq() (v *ResourceCopyCancelRequest) {\n\tif !p.IsSetReq() {\n\t\treturn ResourceServiceResourceCopyCancelArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_ResourceServiceResourceCopyCancelArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *ResourceServiceResourceCopyCancelArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *ResourceServiceResourceCopyCancelArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceResourceCopyCancelArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyCancelArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewResourceCopyCancelRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceResourceCopyCancelArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyCancel_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyCancelArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyCancelArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceResourceCopyCancelArgs(%+v)\", *p)\n\n}\n\ntype ResourceServiceResourceCopyCancelResult struct {\n\tSuccess *ResourceCopyCancelResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewResourceServiceResourceCopyCancelResult() *ResourceServiceResourceCopyCancelResult {\n\treturn &ResourceServiceResourceCopyCancelResult{}\n}\n\nfunc (p *ResourceServiceResourceCopyCancelResult) InitDefault() {\n}\n\nvar ResourceServiceResourceCopyCancelResult_Success_DEFAULT *ResourceCopyCancelResponse\n\nfunc (p *ResourceServiceResourceCopyCancelResult) GetSuccess() (v *ResourceCopyCancelResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn ResourceServiceResourceCopyCancelResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_ResourceServiceResourceCopyCancelResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *ResourceServiceResourceCopyCancelResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *ResourceServiceResourceCopyCancelResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceServiceResourceCopyCancelResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyCancelResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewResourceCopyCancelResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *ResourceServiceResourceCopyCancelResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceCopyCancel_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyCancelResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *ResourceServiceResourceCopyCancelResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceServiceResourceCopyCancelResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/workflow/trace.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage workflow\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype FrontedTagType int64\n\nconst (\n\t// Text\n\tFrontedTagType_TEXT FrontedTagType = 0\n\t// Time, with timestamp, in milliseconds\n\tFrontedTagType_TIME FrontedTagType = 1\n\t// Time interval, in milliseconds\n\tFrontedTagType_TIME_DURATION FrontedTagType = 2\n)\n\nfunc (p FrontedTagType) String() string {\n\tswitch p {\n\tcase FrontedTagType_TEXT:\n\t\treturn \"TEXT\"\n\tcase FrontedTagType_TIME:\n\t\treturn \"TIME\"\n\tcase FrontedTagType_TIME_DURATION:\n\t\treturn \"TIME_DURATION\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc FrontedTagTypeFromString(s string) (FrontedTagType, error) {\n\tswitch s {\n\tcase \"TEXT\":\n\t\treturn FrontedTagType_TEXT, nil\n\tcase \"TIME\":\n\t\treturn FrontedTagType_TIME, nil\n\tcase \"TIME_DURATION\":\n\t\treturn FrontedTagType_TIME_DURATION, nil\n\t}\n\treturn FrontedTagType(0), fmt.Errorf(\"not a valid FrontedTagType string\")\n}\n\nfunc FrontedTagTypePtr(v FrontedTagType) *FrontedTagType { return &v }\nfunc (p *FrontedTagType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = FrontedTagType(result.Int64)\n\treturn\n}\n\nfunc (p *FrontedTagType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype QueryTypeEnum int64\n\nconst (\n\tQueryTypeEnum_Undefined QueryTypeEnum = 0\n\tQueryTypeEnum_Match     QueryTypeEnum = 1\n\tQueryTypeEnum_Term      QueryTypeEnum = 2\n\tQueryTypeEnum_Range     QueryTypeEnum = 3\n\tQueryTypeEnum_Exist     QueryTypeEnum = 4\n\tQueryTypeEnum_NotExist  QueryTypeEnum = 5\n)\n\nfunc (p QueryTypeEnum) String() string {\n\tswitch p {\n\tcase QueryTypeEnum_Undefined:\n\t\treturn \"Undefined\"\n\tcase QueryTypeEnum_Match:\n\t\treturn \"Match\"\n\tcase QueryTypeEnum_Term:\n\t\treturn \"Term\"\n\tcase QueryTypeEnum_Range:\n\t\treturn \"Range\"\n\tcase QueryTypeEnum_Exist:\n\t\treturn \"Exist\"\n\tcase QueryTypeEnum_NotExist:\n\t\treturn \"NotExist\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc QueryTypeEnumFromString(s string) (QueryTypeEnum, error) {\n\tswitch s {\n\tcase \"Undefined\":\n\t\treturn QueryTypeEnum_Undefined, nil\n\tcase \"Match\":\n\t\treturn QueryTypeEnum_Match, nil\n\tcase \"Term\":\n\t\treturn QueryTypeEnum_Term, nil\n\tcase \"Range\":\n\t\treturn QueryTypeEnum_Range, nil\n\tcase \"Exist\":\n\t\treturn QueryTypeEnum_Exist, nil\n\tcase \"NotExist\":\n\t\treturn QueryTypeEnum_NotExist, nil\n\t}\n\treturn QueryTypeEnum(0), fmt.Errorf(\"not a valid QueryTypeEnum string\")\n}\n\nfunc QueryTypeEnumPtr(v QueryTypeEnum) *QueryTypeEnum { return &v }\nfunc (p *QueryTypeEnum) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = QueryTypeEnum(result.Int64)\n\treturn\n}\n\nfunc (p *QueryTypeEnum) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SpanStatus int64\n\nconst (\n\tSpanStatus_Unknown SpanStatus = 0\n\tSpanStatus_Success SpanStatus = 1\n\tSpanStatus_Fail    SpanStatus = 2\n)\n\nfunc (p SpanStatus) String() string {\n\tswitch p {\n\tcase SpanStatus_Unknown:\n\t\treturn \"Unknown\"\n\tcase SpanStatus_Success:\n\t\treturn \"Success\"\n\tcase SpanStatus_Fail:\n\t\treturn \"Fail\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SpanStatusFromString(s string) (SpanStatus, error) {\n\tswitch s {\n\tcase \"Unknown\":\n\t\treturn SpanStatus_Unknown, nil\n\tcase \"Success\":\n\t\treturn SpanStatus_Success, nil\n\tcase \"Fail\":\n\t\treturn SpanStatus_Fail, nil\n\t}\n\treturn SpanStatus(0), fmt.Errorf(\"not a valid SpanStatus string\")\n}\n\nfunc SpanStatusPtr(v SpanStatus) *SpanStatus { return &v }\nfunc (p *SpanStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SpanStatus(result.Int64)\n\treturn\n}\n\nfunc (p *SpanStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype TagType int64\n\nconst (\n\tTagType_STRING TagType = 0\n\tTagType_DOUBLE TagType = 1\n\tTagType_BOOL   TagType = 2\n\tTagType_LONG   TagType = 3\n\tTagType_BYTES  TagType = 4\n)\n\nfunc (p TagType) String() string {\n\tswitch p {\n\tcase TagType_STRING:\n\t\treturn \"STRING\"\n\tcase TagType_DOUBLE:\n\t\treturn \"DOUBLE\"\n\tcase TagType_BOOL:\n\t\treturn \"BOOL\"\n\tcase TagType_LONG:\n\t\treturn \"LONG\"\n\tcase TagType_BYTES:\n\t\treturn \"BYTES\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TagTypeFromString(s string) (TagType, error) {\n\tswitch s {\n\tcase \"STRING\":\n\t\treturn TagType_STRING, nil\n\tcase \"DOUBLE\":\n\t\treturn TagType_DOUBLE, nil\n\tcase \"BOOL\":\n\t\treturn TagType_BOOL, nil\n\tcase \"LONG\":\n\t\treturn TagType_LONG, nil\n\tcase \"BYTES\":\n\t\treturn TagType_BYTES, nil\n\t}\n\treturn TagType(0), fmt.Errorf(\"not a valid TagType string\")\n}\n\nfunc TagTypePtr(v TagType) *TagType { return &v }\nfunc (p *TagType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = TagType(result.Int64)\n\treturn\n}\n\nfunc (p *TagType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype QueryScene int64\n\nconst (\n\t// Doubao cici full link debugging station\n\tQueryScene_ALICE_OP QueryScene = 0\n\t// Doubao cici debugging function\n\tQueryScene_DOUBAO_CICI_DEBUG QueryScene = 1\n\t// Workflow debugging\n\tQueryScene_WORKFLOW_DEBUG QueryScene = 2\n)\n\nfunc (p QueryScene) String() string {\n\tswitch p {\n\tcase QueryScene_ALICE_OP:\n\t\treturn \"ALICE_OP\"\n\tcase QueryScene_DOUBAO_CICI_DEBUG:\n\t\treturn \"DOUBAO_CICI_DEBUG\"\n\tcase QueryScene_WORKFLOW_DEBUG:\n\t\treturn \"WORKFLOW_DEBUG\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc QuerySceneFromString(s string) (QueryScene, error) {\n\tswitch s {\n\tcase \"ALICE_OP\":\n\t\treturn QueryScene_ALICE_OP, nil\n\tcase \"DOUBAO_CICI_DEBUG\":\n\t\treturn QueryScene_DOUBAO_CICI_DEBUG, nil\n\tcase \"WORKFLOW_DEBUG\":\n\t\treturn QueryScene_WORKFLOW_DEBUG, nil\n\t}\n\treturn QueryScene(0), fmt.Errorf(\"not a valid QueryScene string\")\n}\n\nfunc QueryScenePtr(v QueryScene) *QueryScene { return &v }\nfunc (p *QueryScene) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = QueryScene(result.Int64)\n\treturn\n}\n\nfunc (p *QueryScene) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype TenantLevel int64\n\nconst (\n\tTenantLevel_Ordinary          TenantLevel = 0\n\tTenantLevel_AdvancedWhitelist TenantLevel = 1\n)\n\nfunc (p TenantLevel) String() string {\n\tswitch p {\n\tcase TenantLevel_Ordinary:\n\t\treturn \"Ordinary\"\n\tcase TenantLevel_AdvancedWhitelist:\n\t\treturn \"AdvancedWhitelist\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TenantLevelFromString(s string) (TenantLevel, error) {\n\tswitch s {\n\tcase \"Ordinary\":\n\t\treturn TenantLevel_Ordinary, nil\n\tcase \"AdvancedWhitelist\":\n\t\treturn TenantLevel_AdvancedWhitelist, nil\n\t}\n\treturn TenantLevel(0), fmt.Errorf(\"not a valid TenantLevel string\")\n}\n\nfunc TenantLevelPtr(v TenantLevel) *TenantLevel { return &v }\nfunc (p *TenantLevel) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = TenantLevel(result.Int64)\n\treturn\n}\n\nfunc (p *TenantLevel) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype InputOutputType int64\n\nconst (\n\t// Text type\n\tInputOutputType_TEXT InputOutputType = 0\n)\n\nfunc (p InputOutputType) String() string {\n\tswitch p {\n\tcase InputOutputType_TEXT:\n\t\treturn \"TEXT\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc InputOutputTypeFromString(s string) (InputOutputType, error) {\n\tswitch s {\n\tcase \"TEXT\":\n\t\treturn InputOutputType_TEXT, nil\n\t}\n\treturn InputOutputType(0), fmt.Errorf(\"not a valid InputOutputType string\")\n}\n\nfunc InputOutputTypePtr(v InputOutputType) *InputOutputType { return &v }\nfunc (p *InputOutputType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = InputOutputType(result.Int64)\n\treturn\n}\n\nfunc (p *InputOutputType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Tag\ntype TraceTag struct {\n\tKey     string  `thrift:\"Key,1\" json:\"key\" form:\"Key\" query:\"Key\"`\n\tTagType TagType `thrift:\"TagType,2\" json:\"tag_type\" form:\"TagType\" query:\"TagType\"`\n\tValue   *Value  `thrift:\"Value,3\" json:\"value\" form:\"Value\" query:\"Value\"`\n}\n\nfunc NewTraceTag() *TraceTag {\n\treturn &TraceTag{}\n}\n\nfunc (p *TraceTag) InitDefault() {\n}\n\nfunc (p *TraceTag) GetKey() (v string) {\n\treturn p.Key\n}\n\nfunc (p *TraceTag) GetTagType() (v TagType) {\n\treturn p.TagType\n}\n\nvar TraceTag_Value_DEFAULT *Value\n\nfunc (p *TraceTag) GetValue() (v *Value) {\n\tif !p.IsSetValue() {\n\t\treturn TraceTag_Value_DEFAULT\n\t}\n\treturn p.Value\n}\n\nvar fieldIDToName_TraceTag = map[int16]string{\n\t1: \"Key\",\n\t2: \"TagType\",\n\t3: \"Value\",\n}\n\nfunc (p *TraceTag) IsSetValue() bool {\n\treturn p.Value != nil\n}\n\nfunc (p *TraceTag) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TraceTag[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TraceTag) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *TraceTag) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field TagType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TagType(v)\n\t}\n\tp.TagType = _field\n\treturn nil\n}\nfunc (p *TraceTag) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewValue()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Value = _field\n\treturn nil\n}\n\nfunc (p *TraceTag) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TraceTag\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TraceTag) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Key\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Key); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TraceTag) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TagType\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TagType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TraceTag) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Value\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Value.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *TraceTag) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TraceTag(%+v)\", *p)\n\n}\n\ntype FilterTag struct {\n\tDataType     *string        `thrift:\"DataType,1,optional\" json:\"data_type\" form:\"DataType\" query:\"DataType\"`\n\tTagKey       *string        `thrift:\"TagKey,2,optional\" json:\"tag_key\" form:\"TagKey\" query:\"TagKey\"`\n\tMultiTagKeys []string       `thrift:\"MultiTagKeys,3,optional\" json:\"multi_tag_keys\" form:\"MultiTagKeys\" query:\"MultiTagKeys\"`\n\tValues       []string       `thrift:\"Values,4,optional\" json:\"values\" form:\"Values\" query:\"Values\"`\n\tQueryType    *QueryTypeEnum `thrift:\"QueryType,5,optional\" json:\"query_type\" form:\"QueryType\" query:\"QueryType\"`\n}\n\nfunc NewFilterTag() *FilterTag {\n\treturn &FilterTag{}\n}\n\nfunc (p *FilterTag) InitDefault() {\n}\n\nvar FilterTag_DataType_DEFAULT string\n\nfunc (p *FilterTag) GetDataType() (v string) {\n\tif !p.IsSetDataType() {\n\t\treturn FilterTag_DataType_DEFAULT\n\t}\n\treturn *p.DataType\n}\n\nvar FilterTag_TagKey_DEFAULT string\n\nfunc (p *FilterTag) GetTagKey() (v string) {\n\tif !p.IsSetTagKey() {\n\t\treturn FilterTag_TagKey_DEFAULT\n\t}\n\treturn *p.TagKey\n}\n\nvar FilterTag_MultiTagKeys_DEFAULT []string\n\nfunc (p *FilterTag) GetMultiTagKeys() (v []string) {\n\tif !p.IsSetMultiTagKeys() {\n\t\treturn FilterTag_MultiTagKeys_DEFAULT\n\t}\n\treturn p.MultiTagKeys\n}\n\nvar FilterTag_Values_DEFAULT []string\n\nfunc (p *FilterTag) GetValues() (v []string) {\n\tif !p.IsSetValues() {\n\t\treturn FilterTag_Values_DEFAULT\n\t}\n\treturn p.Values\n}\n\nvar FilterTag_QueryType_DEFAULT QueryTypeEnum\n\nfunc (p *FilterTag) GetQueryType() (v QueryTypeEnum) {\n\tif !p.IsSetQueryType() {\n\t\treturn FilterTag_QueryType_DEFAULT\n\t}\n\treturn *p.QueryType\n}\n\nvar fieldIDToName_FilterTag = map[int16]string{\n\t1: \"DataType\",\n\t2: \"TagKey\",\n\t3: \"MultiTagKeys\",\n\t4: \"Values\",\n\t5: \"QueryType\",\n}\n\nfunc (p *FilterTag) IsSetDataType() bool {\n\treturn p.DataType != nil\n}\n\nfunc (p *FilterTag) IsSetTagKey() bool {\n\treturn p.TagKey != nil\n}\n\nfunc (p *FilterTag) IsSetMultiTagKeys() bool {\n\treturn p.MultiTagKeys != nil\n}\n\nfunc (p *FilterTag) IsSetValues() bool {\n\treturn p.Values != nil\n}\n\nfunc (p *FilterTag) IsSetQueryType() bool {\n\treturn p.QueryType != nil\n}\n\nfunc (p *FilterTag) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FilterTag[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FilterTag) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DataType = _field\n\treturn nil\n}\nfunc (p *FilterTag) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TagKey = _field\n\treturn nil\n}\nfunc (p *FilterTag) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MultiTagKeys = _field\n\treturn nil\n}\nfunc (p *FilterTag) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Values = _field\n\treturn nil\n}\nfunc (p *FilterTag) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *QueryTypeEnum\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := QueryTypeEnum(v)\n\t\t_field = &tmp\n\t}\n\tp.QueryType = _field\n\treturn nil\n}\n\nfunc (p *FilterTag) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FilterTag\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FilterTag) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDataType() {\n\t\tif err = oprot.WriteFieldBegin(\"DataType\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DataType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FilterTag) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTagKey() {\n\t\tif err = oprot.WriteFieldBegin(\"TagKey\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TagKey); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *FilterTag) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMultiTagKeys() {\n\t\tif err = oprot.WriteFieldBegin(\"MultiTagKeys\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.MultiTagKeys)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.MultiTagKeys {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *FilterTag) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetValues() {\n\t\tif err = oprot.WriteFieldBegin(\"Values\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Values)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Values {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *FilterTag) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetQueryType() {\n\t\tif err = oprot.WriteFieldBegin(\"QueryType\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.QueryType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *FilterTag) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FilterTag(%+v)\", *p)\n\n}\n\ntype ListRootSpansRequest struct {\n\t// It's in milliseconds.\n\tStartAt int64 `thrift:\"StartAt,2,required\" json:\"start_at\" form:\"start_at,required\" `\n\t// It's in milliseconds.\n\tEndAt           int64       `thrift:\"EndAt,3,required\" json:\"end_at\" form:\"end_at,required\" `\n\tLimit           *int16      `thrift:\"Limit,4,optional\" json:\"limit\" form:\"limit\" `\n\tDescByStartTime *bool       `thrift:\"DescByStartTime,5,optional\" json:\"desc_by_start_time\" form:\"desc_by_start_time\" `\n\tOffset          *int32      `thrift:\"Offset,6,optional\" json:\"offset\" form:\"offset\" `\n\tWorkflowID      string      `thrift:\"WorkflowID,7,required\" json:\"workflow_id\" form:\"workflow_id,required\" `\n\tInput           *string     `thrift:\"Input,8,optional\" json:\"input\" form:\"input\" `\n\tStatus          *SpanStatus `thrift:\"Status,9,optional\" json:\"status\" form:\"status\" `\n\t// Formal run/practice run/Node Debug\n\tExecuteMode *int32     `thrift:\"ExecuteMode,10,optional\" json:\"execute_mode\" form:\"execute_mode\" `\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewListRootSpansRequest() *ListRootSpansRequest {\n\treturn &ListRootSpansRequest{}\n}\n\nfunc (p *ListRootSpansRequest) InitDefault() {\n}\n\nfunc (p *ListRootSpansRequest) GetStartAt() (v int64) {\n\treturn p.StartAt\n}\n\nfunc (p *ListRootSpansRequest) GetEndAt() (v int64) {\n\treturn p.EndAt\n}\n\nvar ListRootSpansRequest_Limit_DEFAULT int16\n\nfunc (p *ListRootSpansRequest) GetLimit() (v int16) {\n\tif !p.IsSetLimit() {\n\t\treturn ListRootSpansRequest_Limit_DEFAULT\n\t}\n\treturn *p.Limit\n}\n\nvar ListRootSpansRequest_DescByStartTime_DEFAULT bool\n\nfunc (p *ListRootSpansRequest) GetDescByStartTime() (v bool) {\n\tif !p.IsSetDescByStartTime() {\n\t\treturn ListRootSpansRequest_DescByStartTime_DEFAULT\n\t}\n\treturn *p.DescByStartTime\n}\n\nvar ListRootSpansRequest_Offset_DEFAULT int32\n\nfunc (p *ListRootSpansRequest) GetOffset() (v int32) {\n\tif !p.IsSetOffset() {\n\t\treturn ListRootSpansRequest_Offset_DEFAULT\n\t}\n\treturn *p.Offset\n}\n\nfunc (p *ListRootSpansRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar ListRootSpansRequest_Input_DEFAULT string\n\nfunc (p *ListRootSpansRequest) GetInput() (v string) {\n\tif !p.IsSetInput() {\n\t\treturn ListRootSpansRequest_Input_DEFAULT\n\t}\n\treturn *p.Input\n}\n\nvar ListRootSpansRequest_Status_DEFAULT SpanStatus\n\nfunc (p *ListRootSpansRequest) GetStatus() (v SpanStatus) {\n\tif !p.IsSetStatus() {\n\t\treturn ListRootSpansRequest_Status_DEFAULT\n\t}\n\treturn *p.Status\n}\n\nvar ListRootSpansRequest_ExecuteMode_DEFAULT int32\n\nfunc (p *ListRootSpansRequest) GetExecuteMode() (v int32) {\n\tif !p.IsSetExecuteMode() {\n\t\treturn ListRootSpansRequest_ExecuteMode_DEFAULT\n\t}\n\treturn *p.ExecuteMode\n}\n\nvar ListRootSpansRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListRootSpansRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListRootSpansRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListRootSpansRequest = map[int16]string{\n\t2:   \"StartAt\",\n\t3:   \"EndAt\",\n\t4:   \"Limit\",\n\t5:   \"DescByStartTime\",\n\t6:   \"Offset\",\n\t7:   \"WorkflowID\",\n\t8:   \"Input\",\n\t9:   \"Status\",\n\t10:  \"ExecuteMode\",\n\t255: \"Base\",\n}\n\nfunc (p *ListRootSpansRequest) IsSetLimit() bool {\n\treturn p.Limit != nil\n}\n\nfunc (p *ListRootSpansRequest) IsSetDescByStartTime() bool {\n\treturn p.DescByStartTime != nil\n}\n\nfunc (p *ListRootSpansRequest) IsSetOffset() bool {\n\treturn p.Offset != nil\n}\n\nfunc (p *ListRootSpansRequest) IsSetInput() bool {\n\treturn p.Input != nil\n}\n\nfunc (p *ListRootSpansRequest) IsSetStatus() bool {\n\treturn p.Status != nil\n}\n\nfunc (p *ListRootSpansRequest) IsSetExecuteMode() bool {\n\treturn p.ExecuteMode != nil\n}\n\nfunc (p *ListRootSpansRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListRootSpansRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetStartAt bool = false\n\tvar issetEndAt bool = false\n\tvar issetWorkflowID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetStartAt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetEndAt = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I16 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetStartAt {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetEndAt {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListRootSpansRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListRootSpansRequest[fieldId]))\n}\n\nfunc (p *ListRootSpansRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StartAt = _field\n\treturn nil\n}\nfunc (p *ListRootSpansRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EndAt = _field\n\treturn nil\n}\nfunc (p *ListRootSpansRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int16\n\tif v, err := iprot.ReadI16(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Limit = _field\n\treturn nil\n}\nfunc (p *ListRootSpansRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DescByStartTime = _field\n\treturn nil\n}\nfunc (p *ListRootSpansRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Offset = _field\n\treturn nil\n}\nfunc (p *ListRootSpansRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *ListRootSpansRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Input = _field\n\treturn nil\n}\nfunc (p *ListRootSpansRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *SpanStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := SpanStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *ListRootSpansRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteMode = _field\n\treturn nil\n}\nfunc (p *ListRootSpansRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListRootSpansRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListRootSpansRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListRootSpansRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StartAt\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.StartAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListRootSpansRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EndAt\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.EndAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListRootSpansRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLimit() {\n\t\tif err = oprot.WriteFieldBegin(\"Limit\", thrift.I16, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI16(*p.Limit); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListRootSpansRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescByStartTime() {\n\t\tif err = oprot.WriteFieldBegin(\"DescByStartTime\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.DescByStartTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListRootSpansRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOffset() {\n\t\tif err = oprot.WriteFieldBegin(\"Offset\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Offset); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ListRootSpansRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowID\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ListRootSpansRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInput() {\n\t\tif err = oprot.WriteFieldBegin(\"Input\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Input); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ListRootSpansRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"Status\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Status)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ListRootSpansRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteMode() {\n\t\tif err = oprot.WriteFieldBegin(\"ExecuteMode\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.ExecuteMode); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ListRootSpansRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListRootSpansRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListRootSpansRequest(%+v)\", *p)\n\n}\n\ntype Span struct {\n\tTraceID  string `thrift:\"TraceID,1\" json:\"trace_id\" form:\"TraceID\" query:\"TraceID\"`\n\tLogID    string `thrift:\"LogID,2\" json:\"log_id\" form:\"LogID\" query:\"LogID\"`\n\tPSM      string `thrift:\"PSM,3\" json:\"psm\" form:\"PSM\" query:\"PSM\"`\n\tDC       string `thrift:\"DC,4\" json:\"dc\" form:\"DC\" query:\"DC\"`\n\tPodName  string `thrift:\"PodName,5\" json:\"pod_name\" form:\"PodName\" query:\"PodName\"`\n\tSpanID   string `thrift:\"SpanID,6\" json:\"span_id\" form:\"SpanID\" query:\"SpanID\"`\n\tType     string `thrift:\"Type,7\" json:\"type\" form:\"Type\" query:\"Type\"`\n\tName     string `thrift:\"Name,8\" json:\"name\" form:\"Name\" query:\"Name\"`\n\tParentID string `thrift:\"ParentID,9\" json:\"parent_id\" form:\"ParentID\" query:\"ParentID\"`\n\t// It's in milliseconds.\n\tDuration int64 `thrift:\"Duration,10\" json:\"duration\" form:\"Duration\" query:\"Duration\"`\n\t// It's in milliseconds.\n\tStartTime  int64       `thrift:\"StartTime,11\" json:\"start_time\" form:\"StartTime\" query:\"StartTime\"`\n\tStatusCode int32       `thrift:\"StatusCode,12\" json:\"status_code\" form:\"StatusCode\" query:\"StatusCode\"`\n\tTags       []*TraceTag `thrift:\"Tags,13\" json:\"tags\" form:\"Tags\" query:\"Tags\"`\n}\n\nfunc NewSpan() *Span {\n\treturn &Span{}\n}\n\nfunc (p *Span) InitDefault() {\n}\n\nfunc (p *Span) GetTraceID() (v string) {\n\treturn p.TraceID\n}\n\nfunc (p *Span) GetLogID() (v string) {\n\treturn p.LogID\n}\n\nfunc (p *Span) GetPSM() (v string) {\n\treturn p.PSM\n}\n\nfunc (p *Span) GetDC() (v string) {\n\treturn p.DC\n}\n\nfunc (p *Span) GetPodName() (v string) {\n\treturn p.PodName\n}\n\nfunc (p *Span) GetSpanID() (v string) {\n\treturn p.SpanID\n}\n\nfunc (p *Span) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *Span) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *Span) GetParentID() (v string) {\n\treturn p.ParentID\n}\n\nfunc (p *Span) GetDuration() (v int64) {\n\treturn p.Duration\n}\n\nfunc (p *Span) GetStartTime() (v int64) {\n\treturn p.StartTime\n}\n\nfunc (p *Span) GetStatusCode() (v int32) {\n\treturn p.StatusCode\n}\n\nfunc (p *Span) GetTags() (v []*TraceTag) {\n\treturn p.Tags\n}\n\nvar fieldIDToName_Span = map[int16]string{\n\t1:  \"TraceID\",\n\t2:  \"LogID\",\n\t3:  \"PSM\",\n\t4:  \"DC\",\n\t5:  \"PodName\",\n\t6:  \"SpanID\",\n\t7:  \"Type\",\n\t8:  \"Name\",\n\t9:  \"ParentID\",\n\t10: \"Duration\",\n\t11: \"StartTime\",\n\t12: \"StatusCode\",\n\t13: \"Tags\",\n}\n\nfunc (p *Span) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Span[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Span) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TraceID = _field\n\treturn nil\n}\nfunc (p *Span) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LogID = _field\n\treturn nil\n}\nfunc (p *Span) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PSM = _field\n\treturn nil\n}\nfunc (p *Span) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DC = _field\n\treturn nil\n}\nfunc (p *Span) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PodName = _field\n\treturn nil\n}\nfunc (p *Span) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpanID = _field\n\treturn nil\n}\nfunc (p *Span) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *Span) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Span) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ParentID = _field\n\treturn nil\n}\nfunc (p *Span) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Duration = _field\n\treturn nil\n}\nfunc (p *Span) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StartTime = _field\n\treturn nil\n}\nfunc (p *Span) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StatusCode = _field\n\treturn nil\n}\nfunc (p *Span) ReadField13(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TraceTag, 0, size)\n\tvalues := make([]TraceTag, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Tags = _field\n\treturn nil\n}\n\nfunc (p *Span) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Span\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Span) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TraceID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TraceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Span) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"LogID\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LogID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Span) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PSM\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PSM); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Span) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DC\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DC); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Span) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"PodName\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PodName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Span) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SpanID\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpanID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Span) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Span) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *Span) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ParentID\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ParentID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *Span) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Duration\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Duration); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *Span) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StartTime\", thrift.I64, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.StartTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *Span) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StatusCode\", thrift.I32, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.StatusCode); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *Span) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Tags\", thrift.LIST, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Tags)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Tags {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *Span) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Span(%+v)\", *p)\n\n}\n\ntype Value struct {\n\tVStr    *string  `thrift:\"VStr,1,optional\" json:\"v_str\" form:\"VStr\" query:\"VStr\"`\n\tVDouble *float64 `thrift:\"VDouble,2,optional\" json:\"v_double\" form:\"VDouble\" query:\"VDouble\"`\n\tVBool   *bool    `thrift:\"VBool,3,optional\" json:\"v_bool\" form:\"VBool\" query:\"VBool\"`\n\tVLong   *int64   `thrift:\"VLong,4,optional\" json:\"v_long\" form:\"VLong\" query:\"VLong\"`\n\tVBytes  []byte   `thrift:\"VBytes,5,optional\" json:\"v_bytes\" form:\"VBytes\" query:\"VBytes\"`\n}\n\nfunc NewValue() *Value {\n\treturn &Value{}\n}\n\nfunc (p *Value) InitDefault() {\n}\n\nvar Value_VStr_DEFAULT string\n\nfunc (p *Value) GetVStr() (v string) {\n\tif !p.IsSetVStr() {\n\t\treturn Value_VStr_DEFAULT\n\t}\n\treturn *p.VStr\n}\n\nvar Value_VDouble_DEFAULT float64\n\nfunc (p *Value) GetVDouble() (v float64) {\n\tif !p.IsSetVDouble() {\n\t\treturn Value_VDouble_DEFAULT\n\t}\n\treturn *p.VDouble\n}\n\nvar Value_VBool_DEFAULT bool\n\nfunc (p *Value) GetVBool() (v bool) {\n\tif !p.IsSetVBool() {\n\t\treturn Value_VBool_DEFAULT\n\t}\n\treturn *p.VBool\n}\n\nvar Value_VLong_DEFAULT int64\n\nfunc (p *Value) GetVLong() (v int64) {\n\tif !p.IsSetVLong() {\n\t\treturn Value_VLong_DEFAULT\n\t}\n\treturn *p.VLong\n}\n\nvar Value_VBytes_DEFAULT []byte\n\nfunc (p *Value) GetVBytes() (v []byte) {\n\tif !p.IsSetVBytes() {\n\t\treturn Value_VBytes_DEFAULT\n\t}\n\treturn p.VBytes\n}\n\nvar fieldIDToName_Value = map[int16]string{\n\t1: \"VStr\",\n\t2: \"VDouble\",\n\t3: \"VBool\",\n\t4: \"VLong\",\n\t5: \"VBytes\",\n}\n\nfunc (p *Value) IsSetVStr() bool {\n\treturn p.VStr != nil\n}\n\nfunc (p *Value) IsSetVDouble() bool {\n\treturn p.VDouble != nil\n}\n\nfunc (p *Value) IsSetVBool() bool {\n\treturn p.VBool != nil\n}\n\nfunc (p *Value) IsSetVLong() bool {\n\treturn p.VLong != nil\n}\n\nfunc (p *Value) IsSetVBytes() bool {\n\treturn p.VBytes != nil\n}\n\nfunc (p *Value) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Value[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Value) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.VStr = _field\n\treturn nil\n}\nfunc (p *Value) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.VDouble = _field\n\treturn nil\n}\nfunc (p *Value) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.VBool = _field\n\treturn nil\n}\nfunc (p *Value) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.VLong = _field\n\treturn nil\n}\nfunc (p *Value) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field []byte\n\tif v, err := iprot.ReadBinary(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = []byte(v)\n\t}\n\tp.VBytes = _field\n\treturn nil\n}\n\nfunc (p *Value) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Value\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Value) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVStr() {\n\t\tif err = oprot.WriteFieldBegin(\"VStr\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.VStr); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Value) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVDouble() {\n\t\tif err = oprot.WriteFieldBegin(\"VDouble\", thrift.DOUBLE, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.VDouble); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Value) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVBool() {\n\t\tif err = oprot.WriteFieldBegin(\"VBool\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.VBool); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Value) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVLong() {\n\t\tif err = oprot.WriteFieldBegin(\"VLong\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.VLong); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Value) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVBytes() {\n\t\tif err = oprot.WriteFieldBegin(\"VBytes\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBinary([]byte(p.VBytes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *Value) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Value(%+v)\", *p)\n\n}\n\ntype ListRootSpansResponse struct {\n\tSpans    []*Span        `thrift:\"Spans,1,optional\" json:\"spans\" form:\"spans\" `\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewListRootSpansResponse() *ListRootSpansResponse {\n\treturn &ListRootSpansResponse{}\n}\n\nfunc (p *ListRootSpansResponse) InitDefault() {\n}\n\nvar ListRootSpansResponse_Spans_DEFAULT []*Span\n\nfunc (p *ListRootSpansResponse) GetSpans() (v []*Span) {\n\tif !p.IsSetSpans() {\n\t\treturn ListRootSpansResponse_Spans_DEFAULT\n\t}\n\treturn p.Spans\n}\n\nvar ListRootSpansResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListRootSpansResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListRootSpansResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListRootSpansResponse = map[int16]string{\n\t1:   \"Spans\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListRootSpansResponse) IsSetSpans() bool {\n\treturn p.Spans != nil\n}\n\nfunc (p *ListRootSpansResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListRootSpansResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListRootSpansResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListRootSpansResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Span, 0, size)\n\tvalues := make([]Span, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Spans = _field\n\treturn nil\n}\nfunc (p *ListRootSpansResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListRootSpansResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListRootSpansResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListRootSpansResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpans() {\n\t\tif err = oprot.WriteFieldBegin(\"Spans\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Spans)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Spans {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListRootSpansResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListRootSpansResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListRootSpansResponse(%+v)\", *p)\n\n}\n\ntype GetTraceSDKRequest struct {\n\tLogID *string `thrift:\"LogID,2,optional\" json:\"log_id\" query:\"log_id\" `\n\t// It's in milliseconds.\n\tStartAt *int64 `thrift:\"StartAt,4,optional\" json:\"start_at\" query:\"start_at\" `\n\t// It's in milliseconds.\n\tEndAt      *int64     `thrift:\"EndAt,5,optional\" json:\"end_at\" query:\"end_at\" `\n\tWorkflowID *int64     `thrift:\"WorkflowID,6,optional\" json:\"workflow_id\" query:\"workflow_id\" `\n\tExecuteID  *int64     `thrift:\"ExecuteID,7,optional\" json:\"execute_id\" query:\"execute_id\" `\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetTraceSDKRequest() *GetTraceSDKRequest {\n\treturn &GetTraceSDKRequest{}\n}\n\nfunc (p *GetTraceSDKRequest) InitDefault() {\n}\n\nvar GetTraceSDKRequest_LogID_DEFAULT string\n\nfunc (p *GetTraceSDKRequest) GetLogID() (v string) {\n\tif !p.IsSetLogID() {\n\t\treturn GetTraceSDKRequest_LogID_DEFAULT\n\t}\n\treturn *p.LogID\n}\n\nvar GetTraceSDKRequest_StartAt_DEFAULT int64\n\nfunc (p *GetTraceSDKRequest) GetStartAt() (v int64) {\n\tif !p.IsSetStartAt() {\n\t\treturn GetTraceSDKRequest_StartAt_DEFAULT\n\t}\n\treturn *p.StartAt\n}\n\nvar GetTraceSDKRequest_EndAt_DEFAULT int64\n\nfunc (p *GetTraceSDKRequest) GetEndAt() (v int64) {\n\tif !p.IsSetEndAt() {\n\t\treturn GetTraceSDKRequest_EndAt_DEFAULT\n\t}\n\treturn *p.EndAt\n}\n\nvar GetTraceSDKRequest_WorkflowID_DEFAULT int64\n\nfunc (p *GetTraceSDKRequest) GetWorkflowID() (v int64) {\n\tif !p.IsSetWorkflowID() {\n\t\treturn GetTraceSDKRequest_WorkflowID_DEFAULT\n\t}\n\treturn *p.WorkflowID\n}\n\nvar GetTraceSDKRequest_ExecuteID_DEFAULT int64\n\nfunc (p *GetTraceSDKRequest) GetExecuteID() (v int64) {\n\tif !p.IsSetExecuteID() {\n\t\treturn GetTraceSDKRequest_ExecuteID_DEFAULT\n\t}\n\treturn *p.ExecuteID\n}\n\nvar GetTraceSDKRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetTraceSDKRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetTraceSDKRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetTraceSDKRequest = map[int16]string{\n\t2:   \"LogID\",\n\t4:   \"StartAt\",\n\t5:   \"EndAt\",\n\t6:   \"WorkflowID\",\n\t7:   \"ExecuteID\",\n\t255: \"Base\",\n}\n\nfunc (p *GetTraceSDKRequest) IsSetLogID() bool {\n\treturn p.LogID != nil\n}\n\nfunc (p *GetTraceSDKRequest) IsSetStartAt() bool {\n\treturn p.StartAt != nil\n}\n\nfunc (p *GetTraceSDKRequest) IsSetEndAt() bool {\n\treturn p.EndAt != nil\n}\n\nfunc (p *GetTraceSDKRequest) IsSetWorkflowID() bool {\n\treturn p.WorkflowID != nil\n}\n\nfunc (p *GetTraceSDKRequest) IsSetExecuteID() bool {\n\treturn p.ExecuteID != nil\n}\n\nfunc (p *GetTraceSDKRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetTraceSDKRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetTraceSDKRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetTraceSDKRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LogID = _field\n\treturn nil\n}\nfunc (p *GetTraceSDKRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.StartAt = _field\n\treturn nil\n}\nfunc (p *GetTraceSDKRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.EndAt = _field\n\treturn nil\n}\nfunc (p *GetTraceSDKRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetTraceSDKRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *GetTraceSDKRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetTraceSDKRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTraceSDKRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetTraceSDKRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLogID() {\n\t\tif err = oprot.WriteFieldBegin(\"LogID\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LogID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetTraceSDKRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStartAt() {\n\t\tif err = oprot.WriteFieldBegin(\"StartAt\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.StartAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetTraceSDKRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEndAt() {\n\t\tif err = oprot.WriteFieldBegin(\"EndAt\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.EndAt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetTraceSDKRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowID() {\n\t\tif err = oprot.WriteFieldBegin(\"WorkflowID\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.WorkflowID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetTraceSDKRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteID() {\n\t\tif err = oprot.WriteFieldBegin(\"ExecuteID\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ExecuteID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetTraceSDKRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetTraceSDKRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetTraceSDKRequest(%+v)\", *p)\n\n}\n\ntype GetTraceSDKResponse struct {\n\tData     *TraceFrontend `thrift:\"data,1,optional\" form:\"data\" json:\"data,omitempty\" query:\"data\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,optional\" form:\"BaseResp\" json:\"BaseResp,omitempty\" query:\"BaseResp\"`\n}\n\nfunc NewGetTraceSDKResponse() *GetTraceSDKResponse {\n\treturn &GetTraceSDKResponse{}\n}\n\nfunc (p *GetTraceSDKResponse) InitDefault() {\n}\n\nvar GetTraceSDKResponse_Data_DEFAULT *TraceFrontend\n\nfunc (p *GetTraceSDKResponse) GetData() (v *TraceFrontend) {\n\tif !p.IsSetData() {\n\t\treturn GetTraceSDKResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetTraceSDKResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetTraceSDKResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetTraceSDKResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetTraceSDKResponse = map[int16]string{\n\t1:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetTraceSDKResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetTraceSDKResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetTraceSDKResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetTraceSDKResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetTraceSDKResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewTraceFrontend()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetTraceSDKResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetTraceSDKResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTraceSDKResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetTraceSDKResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetData() {\n\t\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Data.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetTraceSDKResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetTraceSDKResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetTraceSDKResponse(%+v)\", *p)\n\n}\n\ntype KeyScene struct {\n\t// Scenarios such as \"Split search terms\"\\ \"Search\"\n\tScene *string `thrift:\"Scene,1,optional\" json:\"scene\" form:\"Scene\" query:\"Scene\"`\n\t// status information\n\tStatusMessage *string `thrift:\"StatusMessage,2,optional\" json:\"status_message\" form:\"StatusMessage\" query:\"StatusMessage\"`\n\tSystem        *string `thrift:\"System,3,optional\" json:\"system\" form:\"System\" query:\"System\"`\n\t// chat history\n\tHistoryMessages []*MessageItem `thrift:\"HistoryMessages,4,optional\" json:\"history_messages\" form:\"HistoryMessages\" query:\"HistoryMessages\"`\n\t// input\n\tInput *KeySceneInput `thrift:\"Input,5,optional\" json:\"input\" form:\"Input\" query:\"Input\"`\n\t// output\n\tOutput *KeySceneOutput `thrift:\"Output,6,optional\" json:\"output\" form:\"Output\" query:\"Output\"`\n\t// It's in milliseconds.\n\tDuration *int64 `thrift:\"Duration,7,optional\" json:\"duration\" form:\"Duration\" query:\"Duration\"`\n\t// Start time, used for sorting, in milliseconds\n\tStartTime *int64 `thrift:\"StartTime,8,optional\" json:\"start_time\" form:\"start_time\" `\n\t// subscene\n\tSubKeyScenes []*KeyScene `thrift:\"SubKeyScenes,9,optional\" json:\"sub_key_scenes\" form:\"SubKeyScenes\" query:\"SubKeyScenes\"`\n}\n\nfunc NewKeyScene() *KeyScene {\n\treturn &KeyScene{}\n}\n\nfunc (p *KeyScene) InitDefault() {\n}\n\nvar KeyScene_Scene_DEFAULT string\n\nfunc (p *KeyScene) GetScene() (v string) {\n\tif !p.IsSetScene() {\n\t\treturn KeyScene_Scene_DEFAULT\n\t}\n\treturn *p.Scene\n}\n\nvar KeyScene_StatusMessage_DEFAULT string\n\nfunc (p *KeyScene) GetStatusMessage() (v string) {\n\tif !p.IsSetStatusMessage() {\n\t\treturn KeyScene_StatusMessage_DEFAULT\n\t}\n\treturn *p.StatusMessage\n}\n\nvar KeyScene_System_DEFAULT string\n\nfunc (p *KeyScene) GetSystem() (v string) {\n\tif !p.IsSetSystem() {\n\t\treturn KeyScene_System_DEFAULT\n\t}\n\treturn *p.System\n}\n\nvar KeyScene_HistoryMessages_DEFAULT []*MessageItem\n\nfunc (p *KeyScene) GetHistoryMessages() (v []*MessageItem) {\n\tif !p.IsSetHistoryMessages() {\n\t\treturn KeyScene_HistoryMessages_DEFAULT\n\t}\n\treturn p.HistoryMessages\n}\n\nvar KeyScene_Input_DEFAULT *KeySceneInput\n\nfunc (p *KeyScene) GetInput() (v *KeySceneInput) {\n\tif !p.IsSetInput() {\n\t\treturn KeyScene_Input_DEFAULT\n\t}\n\treturn p.Input\n}\n\nvar KeyScene_Output_DEFAULT *KeySceneOutput\n\nfunc (p *KeyScene) GetOutput() (v *KeySceneOutput) {\n\tif !p.IsSetOutput() {\n\t\treturn KeyScene_Output_DEFAULT\n\t}\n\treturn p.Output\n}\n\nvar KeyScene_Duration_DEFAULT int64\n\nfunc (p *KeyScene) GetDuration() (v int64) {\n\tif !p.IsSetDuration() {\n\t\treturn KeyScene_Duration_DEFAULT\n\t}\n\treturn *p.Duration\n}\n\nvar KeyScene_StartTime_DEFAULT int64\n\nfunc (p *KeyScene) GetStartTime() (v int64) {\n\tif !p.IsSetStartTime() {\n\t\treturn KeyScene_StartTime_DEFAULT\n\t}\n\treturn *p.StartTime\n}\n\nvar KeyScene_SubKeyScenes_DEFAULT []*KeyScene\n\nfunc (p *KeyScene) GetSubKeyScenes() (v []*KeyScene) {\n\tif !p.IsSetSubKeyScenes() {\n\t\treturn KeyScene_SubKeyScenes_DEFAULT\n\t}\n\treturn p.SubKeyScenes\n}\n\nvar fieldIDToName_KeyScene = map[int16]string{\n\t1: \"Scene\",\n\t2: \"StatusMessage\",\n\t3: \"System\",\n\t4: \"HistoryMessages\",\n\t5: \"Input\",\n\t6: \"Output\",\n\t7: \"Duration\",\n\t8: \"StartTime\",\n\t9: \"SubKeyScenes\",\n}\n\nfunc (p *KeyScene) IsSetScene() bool {\n\treturn p.Scene != nil\n}\n\nfunc (p *KeyScene) IsSetStatusMessage() bool {\n\treturn p.StatusMessage != nil\n}\n\nfunc (p *KeyScene) IsSetSystem() bool {\n\treturn p.System != nil\n}\n\nfunc (p *KeyScene) IsSetHistoryMessages() bool {\n\treturn p.HistoryMessages != nil\n}\n\nfunc (p *KeyScene) IsSetInput() bool {\n\treturn p.Input != nil\n}\n\nfunc (p *KeyScene) IsSetOutput() bool {\n\treturn p.Output != nil\n}\n\nfunc (p *KeyScene) IsSetDuration() bool {\n\treturn p.Duration != nil\n}\n\nfunc (p *KeyScene) IsSetStartTime() bool {\n\treturn p.StartTime != nil\n}\n\nfunc (p *KeyScene) IsSetSubKeyScenes() bool {\n\treturn p.SubKeyScenes != nil\n}\n\nfunc (p *KeyScene) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_KeyScene[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *KeyScene) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *KeyScene) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.StatusMessage = _field\n\treturn nil\n}\nfunc (p *KeyScene) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.System = _field\n\treturn nil\n}\nfunc (p *KeyScene) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*MessageItem, 0, size)\n\tvalues := make([]MessageItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.HistoryMessages = _field\n\treturn nil\n}\nfunc (p *KeyScene) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewKeySceneInput()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Input = _field\n\treturn nil\n}\nfunc (p *KeyScene) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewKeySceneOutput()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Output = _field\n\treturn nil\n}\nfunc (p *KeyScene) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Duration = _field\n\treturn nil\n}\nfunc (p *KeyScene) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.StartTime = _field\n\treturn nil\n}\nfunc (p *KeyScene) ReadField9(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*KeyScene, 0, size)\n\tvalues := make([]KeyScene, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubKeyScenes = _field\n\treturn nil\n}\n\nfunc (p *KeyScene) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"KeyScene\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *KeyScene) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScene() {\n\t\tif err = oprot.WriteFieldBegin(\"Scene\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Scene); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *KeyScene) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatusMessage() {\n\t\tif err = oprot.WriteFieldBegin(\"StatusMessage\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.StatusMessage); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *KeyScene) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSystem() {\n\t\tif err = oprot.WriteFieldBegin(\"System\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.System); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *KeyScene) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHistoryMessages() {\n\t\tif err = oprot.WriteFieldBegin(\"HistoryMessages\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.HistoryMessages)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.HistoryMessages {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *KeyScene) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInput() {\n\t\tif err = oprot.WriteFieldBegin(\"Input\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Input.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *KeyScene) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOutput() {\n\t\tif err = oprot.WriteFieldBegin(\"Output\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Output.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *KeyScene) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDuration() {\n\t\tif err = oprot.WriteFieldBegin(\"Duration\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Duration); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *KeyScene) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStartTime() {\n\t\tif err = oprot.WriteFieldBegin(\"StartTime\", thrift.I64, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.StartTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *KeyScene) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubKeyScenes() {\n\t\tif err = oprot.WriteFieldBegin(\"SubKeyScenes\", thrift.LIST, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubKeyScenes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SubKeyScenes {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *KeyScene) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"KeyScene(%+v)\", *p)\n\n}\n\ntype KeySceneInput struct {\n\tRole        *string                `thrift:\"Role,1,optional\" json:\"role\" form:\"Role\" query:\"Role\"`\n\tContentList []*TraceSummaryContent `thrift:\"contentList,2,optional\" json:\"content_list\" form:\"contentList\" query:\"contentList\"`\n}\n\nfunc NewKeySceneInput() *KeySceneInput {\n\treturn &KeySceneInput{}\n}\n\nfunc (p *KeySceneInput) InitDefault() {\n}\n\nvar KeySceneInput_Role_DEFAULT string\n\nfunc (p *KeySceneInput) GetRole() (v string) {\n\tif !p.IsSetRole() {\n\t\treturn KeySceneInput_Role_DEFAULT\n\t}\n\treturn *p.Role\n}\n\nvar KeySceneInput_ContentList_DEFAULT []*TraceSummaryContent\n\nfunc (p *KeySceneInput) GetContentList() (v []*TraceSummaryContent) {\n\tif !p.IsSetContentList() {\n\t\treturn KeySceneInput_ContentList_DEFAULT\n\t}\n\treturn p.ContentList\n}\n\nvar fieldIDToName_KeySceneInput = map[int16]string{\n\t1: \"Role\",\n\t2: \"contentList\",\n}\n\nfunc (p *KeySceneInput) IsSetRole() bool {\n\treturn p.Role != nil\n}\n\nfunc (p *KeySceneInput) IsSetContentList() bool {\n\treturn p.ContentList != nil\n}\n\nfunc (p *KeySceneInput) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_KeySceneInput[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *KeySceneInput) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Role = _field\n\treturn nil\n}\nfunc (p *KeySceneInput) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TraceSummaryContent, 0, size)\n\tvalues := make([]TraceSummaryContent, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ContentList = _field\n\treturn nil\n}\n\nfunc (p *KeySceneInput) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"KeySceneInput\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *KeySceneInput) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRole() {\n\t\tif err = oprot.WriteFieldBegin(\"Role\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Role); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *KeySceneInput) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContentList() {\n\t\tif err = oprot.WriteFieldBegin(\"contentList\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ContentList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ContentList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *KeySceneInput) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"KeySceneInput(%+v)\", *p)\n\n}\n\ntype KeySceneOutput struct {\n\tRole        *string                `thrift:\"Role,1,optional\" json:\"role\" form:\"Role\" query:\"Role\"`\n\tContentList []*TraceSummaryContent `thrift:\"contentList,2,optional\" json:\"content_list\" form:\"contentList\" query:\"contentList\"`\n}\n\nfunc NewKeySceneOutput() *KeySceneOutput {\n\treturn &KeySceneOutput{}\n}\n\nfunc (p *KeySceneOutput) InitDefault() {\n}\n\nvar KeySceneOutput_Role_DEFAULT string\n\nfunc (p *KeySceneOutput) GetRole() (v string) {\n\tif !p.IsSetRole() {\n\t\treturn KeySceneOutput_Role_DEFAULT\n\t}\n\treturn *p.Role\n}\n\nvar KeySceneOutput_ContentList_DEFAULT []*TraceSummaryContent\n\nfunc (p *KeySceneOutput) GetContentList() (v []*TraceSummaryContent) {\n\tif !p.IsSetContentList() {\n\t\treturn KeySceneOutput_ContentList_DEFAULT\n\t}\n\treturn p.ContentList\n}\n\nvar fieldIDToName_KeySceneOutput = map[int16]string{\n\t1: \"Role\",\n\t2: \"contentList\",\n}\n\nfunc (p *KeySceneOutput) IsSetRole() bool {\n\treturn p.Role != nil\n}\n\nfunc (p *KeySceneOutput) IsSetContentList() bool {\n\treturn p.ContentList != nil\n}\n\nfunc (p *KeySceneOutput) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_KeySceneOutput[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *KeySceneOutput) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Role = _field\n\treturn nil\n}\nfunc (p *KeySceneOutput) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TraceSummaryContent, 0, size)\n\tvalues := make([]TraceSummaryContent, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ContentList = _field\n\treturn nil\n}\n\nfunc (p *KeySceneOutput) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"KeySceneOutput\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *KeySceneOutput) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRole() {\n\t\tif err = oprot.WriteFieldBegin(\"Role\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Role); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *KeySceneOutput) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContentList() {\n\t\tif err = oprot.WriteFieldBegin(\"contentList\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ContentList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.ContentList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *KeySceneOutput) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"KeySceneOutput(%+v)\", *p)\n\n}\n\ntype TraceSummaryContent struct {\n\t// key\n\tKey *string `thrift:\"Key,1,optional\" json:\"key\" form:\"Key\" query:\"Key\"`\n\t// content\n\tContent *string `thrift:\"Content,2,optional\" json:\"content\" form:\"Content\" query:\"Content\"`\n}\n\nfunc NewTraceSummaryContent() *TraceSummaryContent {\n\treturn &TraceSummaryContent{}\n}\n\nfunc (p *TraceSummaryContent) InitDefault() {\n}\n\nvar TraceSummaryContent_Key_DEFAULT string\n\nfunc (p *TraceSummaryContent) GetKey() (v string) {\n\tif !p.IsSetKey() {\n\t\treturn TraceSummaryContent_Key_DEFAULT\n\t}\n\treturn *p.Key\n}\n\nvar TraceSummaryContent_Content_DEFAULT string\n\nfunc (p *TraceSummaryContent) GetContent() (v string) {\n\tif !p.IsSetContent() {\n\t\treturn TraceSummaryContent_Content_DEFAULT\n\t}\n\treturn *p.Content\n}\n\nvar fieldIDToName_TraceSummaryContent = map[int16]string{\n\t1: \"Key\",\n\t2: \"Content\",\n}\n\nfunc (p *TraceSummaryContent) IsSetKey() bool {\n\treturn p.Key != nil\n}\n\nfunc (p *TraceSummaryContent) IsSetContent() bool {\n\treturn p.Content != nil\n}\n\nfunc (p *TraceSummaryContent) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TraceSummaryContent[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TraceSummaryContent) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *TraceSummaryContent) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Content = _field\n\treturn nil\n}\n\nfunc (p *TraceSummaryContent) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TraceSummaryContent\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TraceSummaryContent) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKey() {\n\t\tif err = oprot.WriteFieldBegin(\"Key\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Key); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TraceSummaryContent) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContent() {\n\t\tif err = oprot.WriteFieldBegin(\"Content\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Content); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *TraceSummaryContent) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TraceSummaryContent(%+v)\", *p)\n\n}\n\ntype MessageItem struct {\n\t// role\n\tRole *string `thrift:\"Role,1,optional\" json:\"role\" form:\"Role\" query:\"Role\"`\n\t// content\n\tContent *string `thrift:\"Content,2,optional\" json:\"content\" form:\"Content\" query:\"Content\"`\n}\n\nfunc NewMessageItem() *MessageItem {\n\treturn &MessageItem{}\n}\n\nfunc (p *MessageItem) InitDefault() {\n}\n\nvar MessageItem_Role_DEFAULT string\n\nfunc (p *MessageItem) GetRole() (v string) {\n\tif !p.IsSetRole() {\n\t\treturn MessageItem_Role_DEFAULT\n\t}\n\treturn *p.Role\n}\n\nvar MessageItem_Content_DEFAULT string\n\nfunc (p *MessageItem) GetContent() (v string) {\n\tif !p.IsSetContent() {\n\t\treturn MessageItem_Content_DEFAULT\n\t}\n\treturn *p.Content\n}\n\nvar fieldIDToName_MessageItem = map[int16]string{\n\t1: \"Role\",\n\t2: \"Content\",\n}\n\nfunc (p *MessageItem) IsSetRole() bool {\n\treturn p.Role != nil\n}\n\nfunc (p *MessageItem) IsSetContent() bool {\n\treturn p.Content != nil\n}\n\nfunc (p *MessageItem) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MessageItem[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MessageItem) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Role = _field\n\treturn nil\n}\nfunc (p *MessageItem) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Content = _field\n\treturn nil\n}\n\nfunc (p *MessageItem) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MessageItem\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MessageItem) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRole() {\n\t\tif err = oprot.WriteFieldBegin(\"Role\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Role); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MessageItem) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContent() {\n\t\tif err = oprot.WriteFieldBegin(\"Content\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Content); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *MessageItem) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MessageItem(%+v)\", *p)\n\n}\n\ntype SpanSummary struct {\n\tTags []*FrontendTag `thrift:\"Tags,1,optional\" json:\"tags\" form:\"Tags\" query:\"Tags\"`\n}\n\nfunc NewSpanSummary() *SpanSummary {\n\treturn &SpanSummary{}\n}\n\nfunc (p *SpanSummary) InitDefault() {\n}\n\nvar SpanSummary_Tags_DEFAULT []*FrontendTag\n\nfunc (p *SpanSummary) GetTags() (v []*FrontendTag) {\n\tif !p.IsSetTags() {\n\t\treturn SpanSummary_Tags_DEFAULT\n\t}\n\treturn p.Tags\n}\n\nvar fieldIDToName_SpanSummary = map[int16]string{\n\t1: \"Tags\",\n}\n\nfunc (p *SpanSummary) IsSetTags() bool {\n\treturn p.Tags != nil\n}\n\nfunc (p *SpanSummary) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SpanSummary[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SpanSummary) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*FrontendTag, 0, size)\n\tvalues := make([]FrontendTag, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Tags = _field\n\treturn nil\n}\n\nfunc (p *SpanSummary) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SpanSummary\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SpanSummary) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTags() {\n\t\tif err = oprot.WriteFieldBegin(\"Tags\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Tags)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Tags {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *SpanSummary) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SpanSummary(%+v)\", *p)\n\n}\n\ntype FrontendTag struct {\n\tKey string `thrift:\"Key,1,required\" json:\"key\" form:\"Key,required\" query:\"Key,required\"`\n\t// Multilingual, if there is no configuration value, use the key\n\tKeyAlias *string `thrift:\"KeyAlias,2,optional\" json:\"key_alias\" form:\"KeyAlias\" query:\"KeyAlias\"`\n\tTagType  TagType `thrift:\"TagType,3,required\" json:\"tag_type\" form:\"TagType,required\" query:\"TagType,required\"`\n\tValue    *Value  `thrift:\"Value,4,optional\" json:\"value\" form:\"Value\" query:\"Value\"`\n\t// Front-end type for front-end processing\n\tFrontendTagType *FrontedTagType `thrift:\"FrontendTagType,5,optional\" json:\"frontend_tag_type\" form:\"FrontendTagType\" query:\"FrontendTagType\"`\n\t// Can it be copied?\n\tCanCopy *bool `thrift:\"canCopy,6,optional\" json:\"can_copy\" form:\"canCopy\" query:\"canCopy\"`\n}\n\nfunc NewFrontendTag() *FrontendTag {\n\treturn &FrontendTag{}\n}\n\nfunc (p *FrontendTag) InitDefault() {\n}\n\nfunc (p *FrontendTag) GetKey() (v string) {\n\treturn p.Key\n}\n\nvar FrontendTag_KeyAlias_DEFAULT string\n\nfunc (p *FrontendTag) GetKeyAlias() (v string) {\n\tif !p.IsSetKeyAlias() {\n\t\treturn FrontendTag_KeyAlias_DEFAULT\n\t}\n\treturn *p.KeyAlias\n}\n\nfunc (p *FrontendTag) GetTagType() (v TagType) {\n\treturn p.TagType\n}\n\nvar FrontendTag_Value_DEFAULT *Value\n\nfunc (p *FrontendTag) GetValue() (v *Value) {\n\tif !p.IsSetValue() {\n\t\treturn FrontendTag_Value_DEFAULT\n\t}\n\treturn p.Value\n}\n\nvar FrontendTag_FrontendTagType_DEFAULT FrontedTagType\n\nfunc (p *FrontendTag) GetFrontendTagType() (v FrontedTagType) {\n\tif !p.IsSetFrontendTagType() {\n\t\treturn FrontendTag_FrontendTagType_DEFAULT\n\t}\n\treturn *p.FrontendTagType\n}\n\nvar FrontendTag_CanCopy_DEFAULT bool\n\nfunc (p *FrontendTag) GetCanCopy() (v bool) {\n\tif !p.IsSetCanCopy() {\n\t\treturn FrontendTag_CanCopy_DEFAULT\n\t}\n\treturn *p.CanCopy\n}\n\nvar fieldIDToName_FrontendTag = map[int16]string{\n\t1: \"Key\",\n\t2: \"KeyAlias\",\n\t3: \"TagType\",\n\t4: \"Value\",\n\t5: \"FrontendTagType\",\n\t6: \"canCopy\",\n}\n\nfunc (p *FrontendTag) IsSetKeyAlias() bool {\n\treturn p.KeyAlias != nil\n}\n\nfunc (p *FrontendTag) IsSetValue() bool {\n\treturn p.Value != nil\n}\n\nfunc (p *FrontendTag) IsSetFrontendTagType() bool {\n\treturn p.FrontendTagType != nil\n}\n\nfunc (p *FrontendTag) IsSetCanCopy() bool {\n\treturn p.CanCopy != nil\n}\n\nfunc (p *FrontendTag) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetKey bool = false\n\tvar issetTagType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetKey = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTagType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetKey {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTagType {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FrontendTag[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_FrontendTag[fieldId]))\n}\n\nfunc (p *FrontendTag) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *FrontendTag) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.KeyAlias = _field\n\treturn nil\n}\nfunc (p *FrontendTag) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field TagType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TagType(v)\n\t}\n\tp.TagType = _field\n\treturn nil\n}\nfunc (p *FrontendTag) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewValue()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *FrontendTag) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *FrontedTagType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := FrontedTagType(v)\n\t\t_field = &tmp\n\t}\n\tp.FrontendTagType = _field\n\treturn nil\n}\nfunc (p *FrontendTag) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CanCopy = _field\n\treturn nil\n}\n\nfunc (p *FrontendTag) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FrontendTag\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FrontendTag) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Key\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Key); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FrontendTag) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKeyAlias() {\n\t\tif err = oprot.WriteFieldBegin(\"KeyAlias\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.KeyAlias); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *FrontendTag) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TagType\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.TagType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *FrontendTag) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetValue() {\n\t\tif err = oprot.WriteFieldBegin(\"Value\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Value.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *FrontendTag) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFrontendTagType() {\n\t\tif err = oprot.WriteFieldBegin(\"FrontendTagType\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FrontendTagType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *FrontendTag) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCanCopy() {\n\t\tif err = oprot.WriteFieldBegin(\"canCopy\", thrift.BOOL, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.CanCopy); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *FrontendTag) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FrontendTag(%+v)\", *p)\n\n}\n\ntype TraceSummary struct {\n\t// System 1 text\n\tSystem *string `thrift:\"System,1,optional\" json:\"system\" form:\"System\" query:\"System\"`\n\t// Level 1 chat history\n\tHistoryMessages []*MessageItem `thrift:\"HistoryMessages,2,optional\" json:\"history_messages\" form:\"HistoryMessages\" query:\"HistoryMessages\"`\n\tKeyScenes       []*KeyScene    `thrift:\"KeyScenes,3,optional\" json:\"key_scenes\" form:\"KeyScenes\" query:\"KeyScenes\"`\n\t// input\n\tInput *string `thrift:\"Input,4,optional\" json:\"input\" form:\"Input\" query:\"Input\"`\n\t// output\n\tOutput *string `thrift:\"Output,5,optional\" json:\"output\" form:\"Output\" query:\"Output\"`\n\t// The duration of the current conversation, in milliseconds\n\tDuration *int64 `thrift:\"Duration,6,optional\" json:\"duration\" form:\"Duration\" query:\"Duration\"`\n\t// user ID\n\tUserID *string `thrift:\"UserID,7,optional\" json:\"user_id\" form:\"UserID\" query:\"UserID\"`\n}\n\nfunc NewTraceSummary() *TraceSummary {\n\treturn &TraceSummary{}\n}\n\nfunc (p *TraceSummary) InitDefault() {\n}\n\nvar TraceSummary_System_DEFAULT string\n\nfunc (p *TraceSummary) GetSystem() (v string) {\n\tif !p.IsSetSystem() {\n\t\treturn TraceSummary_System_DEFAULT\n\t}\n\treturn *p.System\n}\n\nvar TraceSummary_HistoryMessages_DEFAULT []*MessageItem\n\nfunc (p *TraceSummary) GetHistoryMessages() (v []*MessageItem) {\n\tif !p.IsSetHistoryMessages() {\n\t\treturn TraceSummary_HistoryMessages_DEFAULT\n\t}\n\treturn p.HistoryMessages\n}\n\nvar TraceSummary_KeyScenes_DEFAULT []*KeyScene\n\nfunc (p *TraceSummary) GetKeyScenes() (v []*KeyScene) {\n\tif !p.IsSetKeyScenes() {\n\t\treturn TraceSummary_KeyScenes_DEFAULT\n\t}\n\treturn p.KeyScenes\n}\n\nvar TraceSummary_Input_DEFAULT string\n\nfunc (p *TraceSummary) GetInput() (v string) {\n\tif !p.IsSetInput() {\n\t\treturn TraceSummary_Input_DEFAULT\n\t}\n\treturn *p.Input\n}\n\nvar TraceSummary_Output_DEFAULT string\n\nfunc (p *TraceSummary) GetOutput() (v string) {\n\tif !p.IsSetOutput() {\n\t\treturn TraceSummary_Output_DEFAULT\n\t}\n\treturn *p.Output\n}\n\nvar TraceSummary_Duration_DEFAULT int64\n\nfunc (p *TraceSummary) GetDuration() (v int64) {\n\tif !p.IsSetDuration() {\n\t\treturn TraceSummary_Duration_DEFAULT\n\t}\n\treturn *p.Duration\n}\n\nvar TraceSummary_UserID_DEFAULT string\n\nfunc (p *TraceSummary) GetUserID() (v string) {\n\tif !p.IsSetUserID() {\n\t\treturn TraceSummary_UserID_DEFAULT\n\t}\n\treturn *p.UserID\n}\n\nvar fieldIDToName_TraceSummary = map[int16]string{\n\t1: \"System\",\n\t2: \"HistoryMessages\",\n\t3: \"KeyScenes\",\n\t4: \"Input\",\n\t5: \"Output\",\n\t6: \"Duration\",\n\t7: \"UserID\",\n}\n\nfunc (p *TraceSummary) IsSetSystem() bool {\n\treturn p.System != nil\n}\n\nfunc (p *TraceSummary) IsSetHistoryMessages() bool {\n\treturn p.HistoryMessages != nil\n}\n\nfunc (p *TraceSummary) IsSetKeyScenes() bool {\n\treturn p.KeyScenes != nil\n}\n\nfunc (p *TraceSummary) IsSetInput() bool {\n\treturn p.Input != nil\n}\n\nfunc (p *TraceSummary) IsSetOutput() bool {\n\treturn p.Output != nil\n}\n\nfunc (p *TraceSummary) IsSetDuration() bool {\n\treturn p.Duration != nil\n}\n\nfunc (p *TraceSummary) IsSetUserID() bool {\n\treturn p.UserID != nil\n}\n\nfunc (p *TraceSummary) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TraceSummary[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TraceSummary) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.System = _field\n\treturn nil\n}\nfunc (p *TraceSummary) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*MessageItem, 0, size)\n\tvalues := make([]MessageItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.HistoryMessages = _field\n\treturn nil\n}\nfunc (p *TraceSummary) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*KeyScene, 0, size)\n\tvalues := make([]KeyScene, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.KeyScenes = _field\n\treturn nil\n}\nfunc (p *TraceSummary) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Input = _field\n\treturn nil\n}\nfunc (p *TraceSummary) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Output = _field\n\treturn nil\n}\nfunc (p *TraceSummary) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Duration = _field\n\treturn nil\n}\nfunc (p *TraceSummary) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\n\nfunc (p *TraceSummary) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TraceSummary\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TraceSummary) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSystem() {\n\t\tif err = oprot.WriteFieldBegin(\"System\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.System); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TraceSummary) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHistoryMessages() {\n\t\tif err = oprot.WriteFieldBegin(\"HistoryMessages\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.HistoryMessages)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.HistoryMessages {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TraceSummary) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetKeyScenes() {\n\t\tif err = oprot.WriteFieldBegin(\"KeyScenes\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.KeyScenes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.KeyScenes {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *TraceSummary) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInput() {\n\t\tif err = oprot.WriteFieldBegin(\"Input\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Input); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *TraceSummary) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOutput() {\n\t\tif err = oprot.WriteFieldBegin(\"Output\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Output); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *TraceSummary) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDuration() {\n\t\tif err = oprot.WriteFieldBegin(\"Duration\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Duration); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *TraceSummary) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserID() {\n\t\tif err = oprot.WriteFieldBegin(\"UserID\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.UserID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *TraceSummary) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TraceSummary(%+v)\", *p)\n\n}\n\ntype TraceHeader struct {\n\t// It's in milliseconds.\n\tDuration *int64 `thrift:\"Duration,1,optional\" json:\"duration\" form:\"Duration\" query:\"Duration\"`\n\t// Enter the number of tokens consumed\n\tTokens     *int32         `thrift:\"Tokens,2,optional\" form:\"Tokens\" json:\"Tokens,omitempty\" query:\"Tokens\"`\n\tStatusCode *int32         `thrift:\"StatusCode,3,optional\" json:\"status_code\" form:\"StatusCode\" query:\"StatusCode\"`\n\tTags       []*FrontendTag `thrift:\"Tags,4,optional\" json:\"tags\" form:\"Tags\" query:\"Tags\"`\n\t// Message ID\n\tMessageID *string `thrift:\"MessageID,5,optional\" json:\"message_id\" form:\"MessageID\" query:\"MessageID\"`\n\t// It's in milliseconds.\n\tStartTime *int64 `thrift:\"StartTime,6,optional\" json:\"start_time\" form:\"StartTime\" query:\"StartTime\"`\n}\n\nfunc NewTraceHeader() *TraceHeader {\n\treturn &TraceHeader{}\n}\n\nfunc (p *TraceHeader) InitDefault() {\n}\n\nvar TraceHeader_Duration_DEFAULT int64\n\nfunc (p *TraceHeader) GetDuration() (v int64) {\n\tif !p.IsSetDuration() {\n\t\treturn TraceHeader_Duration_DEFAULT\n\t}\n\treturn *p.Duration\n}\n\nvar TraceHeader_Tokens_DEFAULT int32\n\nfunc (p *TraceHeader) GetTokens() (v int32) {\n\tif !p.IsSetTokens() {\n\t\treturn TraceHeader_Tokens_DEFAULT\n\t}\n\treturn *p.Tokens\n}\n\nvar TraceHeader_StatusCode_DEFAULT int32\n\nfunc (p *TraceHeader) GetStatusCode() (v int32) {\n\tif !p.IsSetStatusCode() {\n\t\treturn TraceHeader_StatusCode_DEFAULT\n\t}\n\treturn *p.StatusCode\n}\n\nvar TraceHeader_Tags_DEFAULT []*FrontendTag\n\nfunc (p *TraceHeader) GetTags() (v []*FrontendTag) {\n\tif !p.IsSetTags() {\n\t\treturn TraceHeader_Tags_DEFAULT\n\t}\n\treturn p.Tags\n}\n\nvar TraceHeader_MessageID_DEFAULT string\n\nfunc (p *TraceHeader) GetMessageID() (v string) {\n\tif !p.IsSetMessageID() {\n\t\treturn TraceHeader_MessageID_DEFAULT\n\t}\n\treturn *p.MessageID\n}\n\nvar TraceHeader_StartTime_DEFAULT int64\n\nfunc (p *TraceHeader) GetStartTime() (v int64) {\n\tif !p.IsSetStartTime() {\n\t\treturn TraceHeader_StartTime_DEFAULT\n\t}\n\treturn *p.StartTime\n}\n\nvar fieldIDToName_TraceHeader = map[int16]string{\n\t1: \"Duration\",\n\t2: \"Tokens\",\n\t3: \"StatusCode\",\n\t4: \"Tags\",\n\t5: \"MessageID\",\n\t6: \"StartTime\",\n}\n\nfunc (p *TraceHeader) IsSetDuration() bool {\n\treturn p.Duration != nil\n}\n\nfunc (p *TraceHeader) IsSetTokens() bool {\n\treturn p.Tokens != nil\n}\n\nfunc (p *TraceHeader) IsSetStatusCode() bool {\n\treturn p.StatusCode != nil\n}\n\nfunc (p *TraceHeader) IsSetTags() bool {\n\treturn p.Tags != nil\n}\n\nfunc (p *TraceHeader) IsSetMessageID() bool {\n\treturn p.MessageID != nil\n}\n\nfunc (p *TraceHeader) IsSetStartTime() bool {\n\treturn p.StartTime != nil\n}\n\nfunc (p *TraceHeader) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TraceHeader[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TraceHeader) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Duration = _field\n\treturn nil\n}\nfunc (p *TraceHeader) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Tokens = _field\n\treturn nil\n}\nfunc (p *TraceHeader) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.StatusCode = _field\n\treturn nil\n}\nfunc (p *TraceHeader) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*FrontendTag, 0, size)\n\tvalues := make([]FrontendTag, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Tags = _field\n\treturn nil\n}\nfunc (p *TraceHeader) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.MessageID = _field\n\treturn nil\n}\nfunc (p *TraceHeader) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.StartTime = _field\n\treturn nil\n}\n\nfunc (p *TraceHeader) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TraceHeader\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TraceHeader) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDuration() {\n\t\tif err = oprot.WriteFieldBegin(\"Duration\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Duration); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TraceHeader) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTokens() {\n\t\tif err = oprot.WriteFieldBegin(\"Tokens\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Tokens); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TraceHeader) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatusCode() {\n\t\tif err = oprot.WriteFieldBegin(\"StatusCode\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.StatusCode); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *TraceHeader) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTags() {\n\t\tif err = oprot.WriteFieldBegin(\"Tags\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Tags)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Tags {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *TraceHeader) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMessageID() {\n\t\tif err = oprot.WriteFieldBegin(\"MessageID\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.MessageID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *TraceHeader) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStartTime() {\n\t\tif err = oprot.WriteFieldBegin(\"StartTime\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.StartTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *TraceHeader) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TraceHeader(%+v)\", *p)\n\n}\n\ntype TraceFrontend struct {\n\tSpans  []*TraceFrontendSpan `thrift:\"spans,1,optional\" json:\"spans\" form:\"spans\" `\n\tHeader *TraceHeader         `thrift:\"header,2,optional\" json:\"header\" form:\"header\" query:\"header\"`\n}\n\nfunc NewTraceFrontend() *TraceFrontend {\n\treturn &TraceFrontend{}\n}\n\nfunc (p *TraceFrontend) InitDefault() {\n}\n\nvar TraceFrontend_Spans_DEFAULT []*TraceFrontendSpan\n\nfunc (p *TraceFrontend) GetSpans() (v []*TraceFrontendSpan) {\n\tif !p.IsSetSpans() {\n\t\treturn TraceFrontend_Spans_DEFAULT\n\t}\n\treturn p.Spans\n}\n\nvar TraceFrontend_Header_DEFAULT *TraceHeader\n\nfunc (p *TraceFrontend) GetHeader() (v *TraceHeader) {\n\tif !p.IsSetHeader() {\n\t\treturn TraceFrontend_Header_DEFAULT\n\t}\n\treturn p.Header\n}\n\nvar fieldIDToName_TraceFrontend = map[int16]string{\n\t1: \"spans\",\n\t2: \"header\",\n}\n\nfunc (p *TraceFrontend) IsSetSpans() bool {\n\treturn p.Spans != nil\n}\n\nfunc (p *TraceFrontend) IsSetHeader() bool {\n\treturn p.Header != nil\n}\n\nfunc (p *TraceFrontend) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TraceFrontend[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TraceFrontend) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TraceFrontendSpan, 0, size)\n\tvalues := make([]TraceFrontendSpan, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Spans = _field\n\treturn nil\n}\nfunc (p *TraceFrontend) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewTraceHeader()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Header = _field\n\treturn nil\n}\n\nfunc (p *TraceFrontend) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TraceFrontend\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TraceFrontend) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpans() {\n\t\tif err = oprot.WriteFieldBegin(\"spans\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Spans)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Spans {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TraceFrontend) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHeader() {\n\t\tif err = oprot.WriteFieldBegin(\"header\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Header.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *TraceFrontend) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TraceFrontend(%+v)\", *p)\n\n}\n\ntype TraceFrontendDoubaoCiciDebug struct {\n\tSpans   []*TraceFrontendSpan `thrift:\"spans,1,optional\" json:\"spans\" form:\"spans\" `\n\tHeader  *TraceHeader         `thrift:\"header,2,optional\" json:\"header\" form:\"header\" query:\"header\"`\n\tSummary *TraceSummary        `thrift:\"summary,3,optional\" json:\"summary\" form:\"summary\" query:\"summary\"`\n}\n\nfunc NewTraceFrontendDoubaoCiciDebug() *TraceFrontendDoubaoCiciDebug {\n\treturn &TraceFrontendDoubaoCiciDebug{}\n}\n\nfunc (p *TraceFrontendDoubaoCiciDebug) InitDefault() {\n}\n\nvar TraceFrontendDoubaoCiciDebug_Spans_DEFAULT []*TraceFrontendSpan\n\nfunc (p *TraceFrontendDoubaoCiciDebug) GetSpans() (v []*TraceFrontendSpan) {\n\tif !p.IsSetSpans() {\n\t\treturn TraceFrontendDoubaoCiciDebug_Spans_DEFAULT\n\t}\n\treturn p.Spans\n}\n\nvar TraceFrontendDoubaoCiciDebug_Header_DEFAULT *TraceHeader\n\nfunc (p *TraceFrontendDoubaoCiciDebug) GetHeader() (v *TraceHeader) {\n\tif !p.IsSetHeader() {\n\t\treturn TraceFrontendDoubaoCiciDebug_Header_DEFAULT\n\t}\n\treturn p.Header\n}\n\nvar TraceFrontendDoubaoCiciDebug_Summary_DEFAULT *TraceSummary\n\nfunc (p *TraceFrontendDoubaoCiciDebug) GetSummary() (v *TraceSummary) {\n\tif !p.IsSetSummary() {\n\t\treturn TraceFrontendDoubaoCiciDebug_Summary_DEFAULT\n\t}\n\treturn p.Summary\n}\n\nvar fieldIDToName_TraceFrontendDoubaoCiciDebug = map[int16]string{\n\t1: \"spans\",\n\t2: \"header\",\n\t3: \"summary\",\n}\n\nfunc (p *TraceFrontendDoubaoCiciDebug) IsSetSpans() bool {\n\treturn p.Spans != nil\n}\n\nfunc (p *TraceFrontendDoubaoCiciDebug) IsSetHeader() bool {\n\treturn p.Header != nil\n}\n\nfunc (p *TraceFrontendDoubaoCiciDebug) IsSetSummary() bool {\n\treturn p.Summary != nil\n}\n\nfunc (p *TraceFrontendDoubaoCiciDebug) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TraceFrontendDoubaoCiciDebug[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TraceFrontendDoubaoCiciDebug) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TraceFrontendSpan, 0, size)\n\tvalues := make([]TraceFrontendSpan, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Spans = _field\n\treturn nil\n}\nfunc (p *TraceFrontendDoubaoCiciDebug) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewTraceHeader()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Header = _field\n\treturn nil\n}\nfunc (p *TraceFrontendDoubaoCiciDebug) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewTraceSummary()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Summary = _field\n\treturn nil\n}\n\nfunc (p *TraceFrontendDoubaoCiciDebug) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TraceFrontendDoubaoCiciDebug\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TraceFrontendDoubaoCiciDebug) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpans() {\n\t\tif err = oprot.WriteFieldBegin(\"spans\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Spans)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Spans {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TraceFrontendDoubaoCiciDebug) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHeader() {\n\t\tif err = oprot.WriteFieldBegin(\"header\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Header.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TraceFrontendDoubaoCiciDebug) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSummary() {\n\t\tif err = oprot.WriteFieldBegin(\"summary\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Summary.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *TraceFrontendDoubaoCiciDebug) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TraceFrontendDoubaoCiciDebug(%+v)\", *p)\n\n}\n\ntype SpanInputOutput struct {\n\t// TEXT\n\tType    *InputOutputType `thrift:\"Type,1,optional\" json:\"type\" form:\"Type\" query:\"Type\"`\n\tContent *string          `thrift:\"Content,2,optional\" json:\"content\" form:\"Content\" query:\"Content\"`\n}\n\nfunc NewSpanInputOutput() *SpanInputOutput {\n\treturn &SpanInputOutput{}\n}\n\nfunc (p *SpanInputOutput) InitDefault() {\n}\n\nvar SpanInputOutput_Type_DEFAULT InputOutputType\n\nfunc (p *SpanInputOutput) GetType() (v InputOutputType) {\n\tif !p.IsSetType() {\n\t\treturn SpanInputOutput_Type_DEFAULT\n\t}\n\treturn *p.Type\n}\n\nvar SpanInputOutput_Content_DEFAULT string\n\nfunc (p *SpanInputOutput) GetContent() (v string) {\n\tif !p.IsSetContent() {\n\t\treturn SpanInputOutput_Content_DEFAULT\n\t}\n\treturn *p.Content\n}\n\nvar fieldIDToName_SpanInputOutput = map[int16]string{\n\t1: \"Type\",\n\t2: \"Content\",\n}\n\nfunc (p *SpanInputOutput) IsSetType() bool {\n\treturn p.Type != nil\n}\n\nfunc (p *SpanInputOutput) IsSetContent() bool {\n\treturn p.Content != nil\n}\n\nfunc (p *SpanInputOutput) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SpanInputOutput[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SpanInputOutput) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *InputOutputType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := InputOutputType(v)\n\t\t_field = &tmp\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *SpanInputOutput) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Content = _field\n\treturn nil\n}\n\nfunc (p *SpanInputOutput) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SpanInputOutput\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SpanInputOutput) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetType() {\n\t\tif err = oprot.WriteFieldBegin(\"Type\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Type)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SpanInputOutput) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContent() {\n\t\tif err = oprot.WriteFieldBegin(\"Content\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Content); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *SpanInputOutput) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SpanInputOutput(%+v)\", *p)\n\n}\n\ntype TraceFrontendSpan struct {\n\tTraceID   string `thrift:\"TraceID,1\" json:\"trace_id\" form:\"TraceID\" query:\"TraceID\"`\n\tLogID     string `thrift:\"LogID,2\" json:\"log_id\" form:\"LogID\" query:\"LogID\"`\n\tSpanID    string `thrift:\"SpanID,3\" json:\"span_id\" form:\"SpanID\" query:\"SpanID\"`\n\tType      string `thrift:\"Type,4\" json:\"type\" form:\"Type\" query:\"Type\"`\n\tName      string `thrift:\"Name,5\" json:\"name\" form:\"Name\" query:\"Name\"`\n\tAliasName string `thrift:\"AliasName,6\" json:\"alias_name\" form:\"AliasName\" query:\"AliasName\"`\n\tParentID  string `thrift:\"ParentID,7\" json:\"parent_id\" form:\"ParentID\" query:\"ParentID\"`\n\t// It's in milliseconds.\n\tDuration int64 `thrift:\"Duration,8\" json:\"duration\" form:\"Duration\" query:\"Duration\"`\n\t// It's in milliseconds.\n\tStartTime  int64       `thrift:\"StartTime,9\" json:\"start_time\" form:\"StartTime\" query:\"StartTime\"`\n\tStatusCode int32       `thrift:\"StatusCode,10\" json:\"status_code\" form:\"StatusCode\" query:\"StatusCode\"`\n\tTags       []*TraceTag `thrift:\"Tags,11,optional\" json:\"tags\" form:\"Tags\" query:\"Tags\"`\n\t// node details\n\tSummary *SpanSummary     `thrift:\"summary,12,optional\" json:\"summary\" form:\"summary\" query:\"summary\"`\n\tInput   *SpanInputOutput `thrift:\"Input,13,optional\" json:\"input\" form:\"Input\" query:\"Input\"`\n\tOutput  *SpanInputOutput `thrift:\"Output,14,optional\" json:\"output\" form:\"Output\" query:\"Output\"`\n\t// Is it an entry node?\n\tIsEntry *bool `thrift:\"IsEntry,15,optional\" json:\"is_entry\" form:\"IsEntry\" query:\"IsEntry\"`\n\t// product line\n\tProductLine *string `thrift:\"ProductLine,16,optional\" json:\"product_line\" form:\"ProductLine\" query:\"ProductLine\"`\n\t// Is it a key node?\n\tIsKeySpan *bool `thrift:\"IsKeySpan,17,optional\" json:\"is_key_span\" form:\"IsKeySpan\" query:\"IsKeySpan\"`\n\t// Node owner list, mailbox prefix\n\tOwnerList []string `thrift:\"OwnerList,18,optional\" json:\"owner_list\" form:\"OwnerList\" query:\"OwnerList\"`\n\t// Node Details Document\n\tRundownDocURL *string `thrift:\"RundownDocURL,19,optional\" json:\"rundown_doc_url\" form:\"RundownDocURL\" query:\"RundownDocURL\"`\n}\n\nfunc NewTraceFrontendSpan() *TraceFrontendSpan {\n\treturn &TraceFrontendSpan{}\n}\n\nfunc (p *TraceFrontendSpan) InitDefault() {\n}\n\nfunc (p *TraceFrontendSpan) GetTraceID() (v string) {\n\treturn p.TraceID\n}\n\nfunc (p *TraceFrontendSpan) GetLogID() (v string) {\n\treturn p.LogID\n}\n\nfunc (p *TraceFrontendSpan) GetSpanID() (v string) {\n\treturn p.SpanID\n}\n\nfunc (p *TraceFrontendSpan) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *TraceFrontendSpan) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *TraceFrontendSpan) GetAliasName() (v string) {\n\treturn p.AliasName\n}\n\nfunc (p *TraceFrontendSpan) GetParentID() (v string) {\n\treturn p.ParentID\n}\n\nfunc (p *TraceFrontendSpan) GetDuration() (v int64) {\n\treturn p.Duration\n}\n\nfunc (p *TraceFrontendSpan) GetStartTime() (v int64) {\n\treturn p.StartTime\n}\n\nfunc (p *TraceFrontendSpan) GetStatusCode() (v int32) {\n\treturn p.StatusCode\n}\n\nvar TraceFrontendSpan_Tags_DEFAULT []*TraceTag\n\nfunc (p *TraceFrontendSpan) GetTags() (v []*TraceTag) {\n\tif !p.IsSetTags() {\n\t\treturn TraceFrontendSpan_Tags_DEFAULT\n\t}\n\treturn p.Tags\n}\n\nvar TraceFrontendSpan_Summary_DEFAULT *SpanSummary\n\nfunc (p *TraceFrontendSpan) GetSummary() (v *SpanSummary) {\n\tif !p.IsSetSummary() {\n\t\treturn TraceFrontendSpan_Summary_DEFAULT\n\t}\n\treturn p.Summary\n}\n\nvar TraceFrontendSpan_Input_DEFAULT *SpanInputOutput\n\nfunc (p *TraceFrontendSpan) GetInput() (v *SpanInputOutput) {\n\tif !p.IsSetInput() {\n\t\treturn TraceFrontendSpan_Input_DEFAULT\n\t}\n\treturn p.Input\n}\n\nvar TraceFrontendSpan_Output_DEFAULT *SpanInputOutput\n\nfunc (p *TraceFrontendSpan) GetOutput() (v *SpanInputOutput) {\n\tif !p.IsSetOutput() {\n\t\treturn TraceFrontendSpan_Output_DEFAULT\n\t}\n\treturn p.Output\n}\n\nvar TraceFrontendSpan_IsEntry_DEFAULT bool\n\nfunc (p *TraceFrontendSpan) GetIsEntry() (v bool) {\n\tif !p.IsSetIsEntry() {\n\t\treturn TraceFrontendSpan_IsEntry_DEFAULT\n\t}\n\treturn *p.IsEntry\n}\n\nvar TraceFrontendSpan_ProductLine_DEFAULT string\n\nfunc (p *TraceFrontendSpan) GetProductLine() (v string) {\n\tif !p.IsSetProductLine() {\n\t\treturn TraceFrontendSpan_ProductLine_DEFAULT\n\t}\n\treturn *p.ProductLine\n}\n\nvar TraceFrontendSpan_IsKeySpan_DEFAULT bool\n\nfunc (p *TraceFrontendSpan) GetIsKeySpan() (v bool) {\n\tif !p.IsSetIsKeySpan() {\n\t\treturn TraceFrontendSpan_IsKeySpan_DEFAULT\n\t}\n\treturn *p.IsKeySpan\n}\n\nvar TraceFrontendSpan_OwnerList_DEFAULT []string\n\nfunc (p *TraceFrontendSpan) GetOwnerList() (v []string) {\n\tif !p.IsSetOwnerList() {\n\t\treturn TraceFrontendSpan_OwnerList_DEFAULT\n\t}\n\treturn p.OwnerList\n}\n\nvar TraceFrontendSpan_RundownDocURL_DEFAULT string\n\nfunc (p *TraceFrontendSpan) GetRundownDocURL() (v string) {\n\tif !p.IsSetRundownDocURL() {\n\t\treturn TraceFrontendSpan_RundownDocURL_DEFAULT\n\t}\n\treturn *p.RundownDocURL\n}\n\nvar fieldIDToName_TraceFrontendSpan = map[int16]string{\n\t1:  \"TraceID\",\n\t2:  \"LogID\",\n\t3:  \"SpanID\",\n\t4:  \"Type\",\n\t5:  \"Name\",\n\t6:  \"AliasName\",\n\t7:  \"ParentID\",\n\t8:  \"Duration\",\n\t9:  \"StartTime\",\n\t10: \"StatusCode\",\n\t11: \"Tags\",\n\t12: \"summary\",\n\t13: \"Input\",\n\t14: \"Output\",\n\t15: \"IsEntry\",\n\t16: \"ProductLine\",\n\t17: \"IsKeySpan\",\n\t18: \"OwnerList\",\n\t19: \"RundownDocURL\",\n}\n\nfunc (p *TraceFrontendSpan) IsSetTags() bool {\n\treturn p.Tags != nil\n}\n\nfunc (p *TraceFrontendSpan) IsSetSummary() bool {\n\treturn p.Summary != nil\n}\n\nfunc (p *TraceFrontendSpan) IsSetInput() bool {\n\treturn p.Input != nil\n}\n\nfunc (p *TraceFrontendSpan) IsSetOutput() bool {\n\treturn p.Output != nil\n}\n\nfunc (p *TraceFrontendSpan) IsSetIsEntry() bool {\n\treturn p.IsEntry != nil\n}\n\nfunc (p *TraceFrontendSpan) IsSetProductLine() bool {\n\treturn p.ProductLine != nil\n}\n\nfunc (p *TraceFrontendSpan) IsSetIsKeySpan() bool {\n\treturn p.IsKeySpan != nil\n}\n\nfunc (p *TraceFrontendSpan) IsSetOwnerList() bool {\n\treturn p.OwnerList != nil\n}\n\nfunc (p *TraceFrontendSpan) IsSetRundownDocURL() bool {\n\treturn p.RundownDocURL != nil\n}\n\nfunc (p *TraceFrontendSpan) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TraceFrontendSpan[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TraceFrontendSpan) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TraceID = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LogID = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpanID = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AliasName = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ParentID = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Duration = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StartTime = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.StatusCode = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField11(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*TraceTag, 0, size)\n\tvalues := make([]TraceTag, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Tags = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField12(iprot thrift.TProtocol) error {\n\t_field := NewSpanSummary()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Summary = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField13(iprot thrift.TProtocol) error {\n\t_field := NewSpanInputOutput()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Input = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField14(iprot thrift.TProtocol) error {\n\t_field := NewSpanInputOutput()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Output = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsEntry = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProductLine = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsKeySpan = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField18(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OwnerList = _field\n\treturn nil\n}\nfunc (p *TraceFrontendSpan) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RundownDocURL = _field\n\treturn nil\n}\n\nfunc (p *TraceFrontendSpan) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TraceFrontendSpan\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TraceFrontendSpan) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"TraceID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TraceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"LogID\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LogID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SpanID\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpanID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AliasName\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AliasName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ParentID\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ParentID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Duration\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Duration); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StartTime\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.StartTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"StatusCode\", thrift.I32, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.StatusCode); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTags() {\n\t\tif err = oprot.WriteFieldBegin(\"Tags\", thrift.LIST, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Tags)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Tags {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSummary() {\n\t\tif err = oprot.WriteFieldBegin(\"summary\", thrift.STRUCT, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Summary.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInput() {\n\t\tif err = oprot.WriteFieldBegin(\"Input\", thrift.STRUCT, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Input.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOutput() {\n\t\tif err = oprot.WriteFieldBegin(\"Output\", thrift.STRUCT, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Output.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsEntry() {\n\t\tif err = oprot.WriteFieldBegin(\"IsEntry\", thrift.BOOL, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsEntry); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProductLine() {\n\t\tif err = oprot.WriteFieldBegin(\"ProductLine\", thrift.STRING, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProductLine); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsKeySpan() {\n\t\tif err = oprot.WriteFieldBegin(\"IsKeySpan\", thrift.BOOL, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsKeySpan); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOwnerList() {\n\t\tif err = oprot.WriteFieldBegin(\"OwnerList\", thrift.LIST, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.OwnerList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.OwnerList {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *TraceFrontendSpan) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRundownDocURL() {\n\t\tif err = oprot.WriteFieldBegin(\"RundownDocURL\", thrift.STRING, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.RundownDocURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\n\nfunc (p *TraceFrontendSpan) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TraceFrontendSpan(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/workflow/workflow.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage workflow\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n)\n\ntype PersistenceModel int64\n\nconst (\n\tPersistenceModel_DB       PersistenceModel = 1\n\tPersistenceModel_VCS      PersistenceModel = 2\n\tPersistenceModel_External PersistenceModel = 3\n)\n\nfunc (p PersistenceModel) String() string {\n\tswitch p {\n\tcase PersistenceModel_DB:\n\t\treturn \"DB\"\n\tcase PersistenceModel_VCS:\n\t\treturn \"VCS\"\n\tcase PersistenceModel_External:\n\t\treturn \"External\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PersistenceModelFromString(s string) (PersistenceModel, error) {\n\tswitch s {\n\tcase \"DB\":\n\t\treturn PersistenceModel_DB, nil\n\tcase \"VCS\":\n\t\treturn PersistenceModel_VCS, nil\n\tcase \"External\":\n\t\treturn PersistenceModel_External, nil\n\t}\n\treturn PersistenceModel(0), fmt.Errorf(\"not a valid PersistenceModel string\")\n}\n\nfunc PersistenceModelPtr(v PersistenceModel) *PersistenceModel { return &v }\nfunc (p *PersistenceModel) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PersistenceModel(result.Int64)\n\treturn\n}\n\nfunc (p *PersistenceModel) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// WorkflowMode is used to distinguish between Workflow and chatflow.\ntype WorkflowMode int64\n\nconst (\n\tWorkflowMode_Workflow  WorkflowMode = 0\n\tWorkflowMode_Imageflow WorkflowMode = 1\n\tWorkflowMode_SceneFlow WorkflowMode = 2\n\tWorkflowMode_ChatFlow  WorkflowMode = 3\n\t// Use only when querying\n\tWorkflowMode_All WorkflowMode = 100\n)\n\nfunc (p WorkflowMode) String() string {\n\tswitch p {\n\tcase WorkflowMode_Workflow:\n\t\treturn \"Workflow\"\n\tcase WorkflowMode_Imageflow:\n\t\treturn \"Imageflow\"\n\tcase WorkflowMode_SceneFlow:\n\t\treturn \"SceneFlow\"\n\tcase WorkflowMode_ChatFlow:\n\t\treturn \"ChatFlow\"\n\tcase WorkflowMode_All:\n\t\treturn \"All\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc WorkflowModeFromString(s string) (WorkflowMode, error) {\n\tswitch s {\n\tcase \"Workflow\":\n\t\treturn WorkflowMode_Workflow, nil\n\tcase \"Imageflow\":\n\t\treturn WorkflowMode_Imageflow, nil\n\tcase \"SceneFlow\":\n\t\treturn WorkflowMode_SceneFlow, nil\n\tcase \"ChatFlow\":\n\t\treturn WorkflowMode_ChatFlow, nil\n\tcase \"All\":\n\t\treturn WorkflowMode_All, nil\n\t}\n\treturn WorkflowMode(0), fmt.Errorf(\"not a valid WorkflowMode string\")\n}\n\nfunc WorkflowModePtr(v WorkflowMode) *WorkflowMode { return &v }\nfunc (p *WorkflowMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = WorkflowMode(result.Int64)\n\treturn\n}\n\nfunc (p *WorkflowMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Workflow Product Review Draft Status\ntype ProductDraftStatus int64\n\nconst (\n\t// default\n\tProductDraftStatus_Default ProductDraftStatus = 0\n\t// Under review.\n\tProductDraftStatus_Pending ProductDraftStatus = 1\n\t// approved\n\tProductDraftStatus_Approved ProductDraftStatus = 2\n\t// The review failed.\n\tProductDraftStatus_Rejected ProductDraftStatus = 3\n\t// Abandoned\n\tProductDraftStatus_Abandoned ProductDraftStatus = 4\n)\n\nfunc (p ProductDraftStatus) String() string {\n\tswitch p {\n\tcase ProductDraftStatus_Default:\n\t\treturn \"Default\"\n\tcase ProductDraftStatus_Pending:\n\t\treturn \"Pending\"\n\tcase ProductDraftStatus_Approved:\n\t\treturn \"Approved\"\n\tcase ProductDraftStatus_Rejected:\n\t\treturn \"Rejected\"\n\tcase ProductDraftStatus_Abandoned:\n\t\treturn \"Abandoned\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ProductDraftStatusFromString(s string) (ProductDraftStatus, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn ProductDraftStatus_Default, nil\n\tcase \"Pending\":\n\t\treturn ProductDraftStatus_Pending, nil\n\tcase \"Approved\":\n\t\treturn ProductDraftStatus_Approved, nil\n\tcase \"Rejected\":\n\t\treturn ProductDraftStatus_Rejected, nil\n\tcase \"Abandoned\":\n\t\treturn ProductDraftStatus_Abandoned, nil\n\t}\n\treturn ProductDraftStatus(0), fmt.Errorf(\"not a valid ProductDraftStatus string\")\n}\n\nfunc ProductDraftStatusPtr(v ProductDraftStatus) *ProductDraftStatus { return &v }\nfunc (p *ProductDraftStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ProductDraftStatus(result.Int64)\n\treturn\n}\n\nfunc (p *ProductDraftStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype CollaboratorMode int64\n\nconst (\n\t// Turn off multiplayer collaboration mode\n\tCollaboratorMode_Close CollaboratorMode = 0\n\t// Enable multiplayer collaboration mode\n\tCollaboratorMode_Open CollaboratorMode = 1\n)\n\nfunc (p CollaboratorMode) String() string {\n\tswitch p {\n\tcase CollaboratorMode_Close:\n\t\treturn \"Close\"\n\tcase CollaboratorMode_Open:\n\t\treturn \"Open\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc CollaboratorModeFromString(s string) (CollaboratorMode, error) {\n\tswitch s {\n\tcase \"Close\":\n\t\treturn CollaboratorMode_Close, nil\n\tcase \"Open\":\n\t\treturn CollaboratorMode_Open, nil\n\t}\n\treturn CollaboratorMode(0), fmt.Errorf(\"not a valid CollaboratorMode string\")\n}\n\nfunc CollaboratorModePtr(v CollaboratorMode) *CollaboratorMode { return &v }\nfunc (p *CollaboratorMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = CollaboratorMode(result.Int64)\n\treturn\n}\n\nfunc (p *CollaboratorMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SchemaType int64\n\nconst (\n\t// abandoned\n\tSchemaType_DAG SchemaType = 0\n\tSchemaType_FDL SchemaType = 1\n\t// abandoned\n\tSchemaType_BlockWise SchemaType = 2\n)\n\nfunc (p SchemaType) String() string {\n\tswitch p {\n\tcase SchemaType_DAG:\n\t\treturn \"DAG\"\n\tcase SchemaType_FDL:\n\t\treturn \"FDL\"\n\tcase SchemaType_BlockWise:\n\t\treturn \"BlockWise\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SchemaTypeFromString(s string) (SchemaType, error) {\n\tswitch s {\n\tcase \"DAG\":\n\t\treturn SchemaType_DAG, nil\n\tcase \"FDL\":\n\t\treturn SchemaType_FDL, nil\n\tcase \"BlockWise\":\n\t\treturn SchemaType_BlockWise, nil\n\t}\n\treturn SchemaType(0), fmt.Errorf(\"not a valid SchemaType string\")\n}\n\nfunc SchemaTypePtr(v SchemaType) *SchemaType { return &v }\nfunc (p *SchemaType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SchemaType(result.Int64)\n\treturn\n}\n\nfunc (p *SchemaType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype WorkFlowType int64\n\nconst (\n\t// user defined\n\tWorkFlowType_User WorkFlowType = 0\n\t// official template\n\tWorkFlowType_GuanFang WorkFlowType = 1\n)\n\nfunc (p WorkFlowType) String() string {\n\tswitch p {\n\tcase WorkFlowType_User:\n\t\treturn \"User\"\n\tcase WorkFlowType_GuanFang:\n\t\treturn \"GuanFang\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc WorkFlowTypeFromString(s string) (WorkFlowType, error) {\n\tswitch s {\n\tcase \"User\":\n\t\treturn WorkFlowType_User, nil\n\tcase \"GuanFang\":\n\t\treturn WorkFlowType_GuanFang, nil\n\t}\n\treturn WorkFlowType(0), fmt.Errorf(\"not a valid WorkFlowType string\")\n}\n\nfunc WorkFlowTypePtr(v WorkFlowType) *WorkFlowType { return &v }\nfunc (p *WorkFlowType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = WorkFlowType(result.Int64)\n\treturn\n}\n\nfunc (p *WorkFlowType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype Tag int64\n\nconst (\n\tTag_All           Tag = 1\n\tTag_Hot           Tag = 2\n\tTag_Information   Tag = 3\n\tTag_Music         Tag = 4\n\tTag_Picture       Tag = 5\n\tTag_UtilityTool   Tag = 6\n\tTag_Life          Tag = 7\n\tTag_Traval        Tag = 8\n\tTag_Network       Tag = 9\n\tTag_System        Tag = 10\n\tTag_Movie         Tag = 11\n\tTag_Office        Tag = 12\n\tTag_Shopping      Tag = 13\n\tTag_Education     Tag = 14\n\tTag_Health        Tag = 15\n\tTag_Social        Tag = 16\n\tTag_Entertainment Tag = 17\n\tTag_Finance       Tag = 18\n\tTag_Hidden        Tag = 100\n)\n\nfunc (p Tag) String() string {\n\tswitch p {\n\tcase Tag_All:\n\t\treturn \"All\"\n\tcase Tag_Hot:\n\t\treturn \"Hot\"\n\tcase Tag_Information:\n\t\treturn \"Information\"\n\tcase Tag_Music:\n\t\treturn \"Music\"\n\tcase Tag_Picture:\n\t\treturn \"Picture\"\n\tcase Tag_UtilityTool:\n\t\treturn \"UtilityTool\"\n\tcase Tag_Life:\n\t\treturn \"Life\"\n\tcase Tag_Traval:\n\t\treturn \"Traval\"\n\tcase Tag_Network:\n\t\treturn \"Network\"\n\tcase Tag_System:\n\t\treturn \"System\"\n\tcase Tag_Movie:\n\t\treturn \"Movie\"\n\tcase Tag_Office:\n\t\treturn \"Office\"\n\tcase Tag_Shopping:\n\t\treturn \"Shopping\"\n\tcase Tag_Education:\n\t\treturn \"Education\"\n\tcase Tag_Health:\n\t\treturn \"Health\"\n\tcase Tag_Social:\n\t\treturn \"Social\"\n\tcase Tag_Entertainment:\n\t\treturn \"Entertainment\"\n\tcase Tag_Finance:\n\t\treturn \"Finance\"\n\tcase Tag_Hidden:\n\t\treturn \"Hidden\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TagFromString(s string) (Tag, error) {\n\tswitch s {\n\tcase \"All\":\n\t\treturn Tag_All, nil\n\tcase \"Hot\":\n\t\treturn Tag_Hot, nil\n\tcase \"Information\":\n\t\treturn Tag_Information, nil\n\tcase \"Music\":\n\t\treturn Tag_Music, nil\n\tcase \"Picture\":\n\t\treturn Tag_Picture, nil\n\tcase \"UtilityTool\":\n\t\treturn Tag_UtilityTool, nil\n\tcase \"Life\":\n\t\treturn Tag_Life, nil\n\tcase \"Traval\":\n\t\treturn Tag_Traval, nil\n\tcase \"Network\":\n\t\treturn Tag_Network, nil\n\tcase \"System\":\n\t\treturn Tag_System, nil\n\tcase \"Movie\":\n\t\treturn Tag_Movie, nil\n\tcase \"Office\":\n\t\treturn Tag_Office, nil\n\tcase \"Shopping\":\n\t\treturn Tag_Shopping, nil\n\tcase \"Education\":\n\t\treturn Tag_Education, nil\n\tcase \"Health\":\n\t\treturn Tag_Health, nil\n\tcase \"Social\":\n\t\treturn Tag_Social, nil\n\tcase \"Entertainment\":\n\t\treturn Tag_Entertainment, nil\n\tcase \"Finance\":\n\t\treturn Tag_Finance, nil\n\tcase \"Hidden\":\n\t\treturn Tag_Hidden, nil\n\t}\n\treturn Tag(0), fmt.Errorf(\"not a valid Tag string\")\n}\n\nfunc TagPtr(v Tag) *Tag { return &v }\nfunc (p *Tag) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = Tag(result.Int64)\n\treturn\n}\n\nfunc (p *Tag) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Node structure\ntype NodeType int64\n\nconst (\n\tNodeType_Start               NodeType = 1\n\tNodeType_End                 NodeType = 2\n\tNodeType_LLM                 NodeType = 3\n\tNodeType_Api                 NodeType = 4\n\tNodeType_Code                NodeType = 5\n\tNodeType_Dataset             NodeType = 6\n\tNodeType_If                  NodeType = 8\n\tNodeType_SubWorkflow         NodeType = 9\n\tNodeType_Variable            NodeType = 11\n\tNodeType_Database            NodeType = 12\n\tNodeType_Message             NodeType = 13\n\tNodeType_Text                NodeType = 15\n\tNodeType_ImageGenerate       NodeType = 16\n\tNodeType_ImageReference      NodeType = 17\n\tNodeType_Question            NodeType = 18\n\tNodeType_Break               NodeType = 19\n\tNodeType_LoopSetVariable     NodeType = 20\n\tNodeType_Loop                NodeType = 21\n\tNodeType_Intent              NodeType = 22\n\tNodeType_DrawingBoard        NodeType = 23\n\tNodeType_SceneVariable       NodeType = 24\n\tNodeType_SceneChat           NodeType = 25\n\tNodeType_DatasetWrite        NodeType = 27\n\tNodeType_Input               NodeType = 30\n\tNodeType_Batch               NodeType = 28\n\tNodeType_Continue            NodeType = 29\n\tNodeType_MessageList         NodeType = 37\n\tNodeType_AssignVariable      NodeType = 40\n\tNodeType_ConversationList    NodeType = 53\n\tNodeType_CreateMessage       NodeType = 55\n\tNodeType_JsonSerialization   NodeType = 58\n\tNodeType_JsonDeserialization NodeType = 59\n\tNodeType_DatasetDelete       NodeType = 60\n)\n\nfunc (p NodeType) String() string {\n\tswitch p {\n\tcase NodeType_Start:\n\t\treturn \"Start\"\n\tcase NodeType_End:\n\t\treturn \"End\"\n\tcase NodeType_LLM:\n\t\treturn \"LLM\"\n\tcase NodeType_Api:\n\t\treturn \"Api\"\n\tcase NodeType_Code:\n\t\treturn \"Code\"\n\tcase NodeType_Dataset:\n\t\treturn \"Dataset\"\n\tcase NodeType_If:\n\t\treturn \"If\"\n\tcase NodeType_SubWorkflow:\n\t\treturn \"SubWorkflow\"\n\tcase NodeType_Variable:\n\t\treturn \"Variable\"\n\tcase NodeType_Database:\n\t\treturn \"Database\"\n\tcase NodeType_Message:\n\t\treturn \"Message\"\n\tcase NodeType_Text:\n\t\treturn \"Text\"\n\tcase NodeType_ImageGenerate:\n\t\treturn \"ImageGenerate\"\n\tcase NodeType_ImageReference:\n\t\treturn \"ImageReference\"\n\tcase NodeType_Question:\n\t\treturn \"Question\"\n\tcase NodeType_Break:\n\t\treturn \"Break\"\n\tcase NodeType_LoopSetVariable:\n\t\treturn \"LoopSetVariable\"\n\tcase NodeType_Loop:\n\t\treturn \"Loop\"\n\tcase NodeType_Intent:\n\t\treturn \"Intent\"\n\tcase NodeType_DrawingBoard:\n\t\treturn \"DrawingBoard\"\n\tcase NodeType_SceneVariable:\n\t\treturn \"SceneVariable\"\n\tcase NodeType_SceneChat:\n\t\treturn \"SceneChat\"\n\tcase NodeType_DatasetWrite:\n\t\treturn \"DatasetWrite\"\n\tcase NodeType_Input:\n\t\treturn \"Input\"\n\tcase NodeType_Batch:\n\t\treturn \"Batch\"\n\tcase NodeType_Continue:\n\t\treturn \"Continue\"\n\tcase NodeType_MessageList:\n\t\treturn \"MessageList\"\n\tcase NodeType_AssignVariable:\n\t\treturn \"AssignVariable\"\n\tcase NodeType_ConversationList:\n\t\treturn \"ConversationList\"\n\tcase NodeType_CreateMessage:\n\t\treturn \"CreateMessage\"\n\tcase NodeType_JsonSerialization:\n\t\treturn \"JsonSerialization\"\n\tcase NodeType_JsonDeserialization:\n\t\treturn \"JsonDeserialization\"\n\tcase NodeType_DatasetDelete:\n\t\treturn \"DatasetDelete\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc NodeTypeFromString(s string) (NodeType, error) {\n\tswitch s {\n\tcase \"Start\":\n\t\treturn NodeType_Start, nil\n\tcase \"End\":\n\t\treturn NodeType_End, nil\n\tcase \"LLM\":\n\t\treturn NodeType_LLM, nil\n\tcase \"Api\":\n\t\treturn NodeType_Api, nil\n\tcase \"Code\":\n\t\treturn NodeType_Code, nil\n\tcase \"Dataset\":\n\t\treturn NodeType_Dataset, nil\n\tcase \"If\":\n\t\treturn NodeType_If, nil\n\tcase \"SubWorkflow\":\n\t\treturn NodeType_SubWorkflow, nil\n\tcase \"Variable\":\n\t\treturn NodeType_Variable, nil\n\tcase \"Database\":\n\t\treturn NodeType_Database, nil\n\tcase \"Message\":\n\t\treturn NodeType_Message, nil\n\tcase \"Text\":\n\t\treturn NodeType_Text, nil\n\tcase \"ImageGenerate\":\n\t\treturn NodeType_ImageGenerate, nil\n\tcase \"ImageReference\":\n\t\treturn NodeType_ImageReference, nil\n\tcase \"Question\":\n\t\treturn NodeType_Question, nil\n\tcase \"Break\":\n\t\treturn NodeType_Break, nil\n\tcase \"LoopSetVariable\":\n\t\treturn NodeType_LoopSetVariable, nil\n\tcase \"Loop\":\n\t\treturn NodeType_Loop, nil\n\tcase \"Intent\":\n\t\treturn NodeType_Intent, nil\n\tcase \"DrawingBoard\":\n\t\treturn NodeType_DrawingBoard, nil\n\tcase \"SceneVariable\":\n\t\treturn NodeType_SceneVariable, nil\n\tcase \"SceneChat\":\n\t\treturn NodeType_SceneChat, nil\n\tcase \"DatasetWrite\":\n\t\treturn NodeType_DatasetWrite, nil\n\tcase \"Input\":\n\t\treturn NodeType_Input, nil\n\tcase \"Batch\":\n\t\treturn NodeType_Batch, nil\n\tcase \"Continue\":\n\t\treturn NodeType_Continue, nil\n\tcase \"MessageList\":\n\t\treturn NodeType_MessageList, nil\n\tcase \"AssignVariable\":\n\t\treturn NodeType_AssignVariable, nil\n\tcase \"ConversationList\":\n\t\treturn NodeType_ConversationList, nil\n\tcase \"CreateMessage\":\n\t\treturn NodeType_CreateMessage, nil\n\tcase \"JsonSerialization\":\n\t\treturn NodeType_JsonSerialization, nil\n\tcase \"JsonDeserialization\":\n\t\treturn NodeType_JsonDeserialization, nil\n\tcase \"DatasetDelete\":\n\t\treturn NodeType_DatasetDelete, nil\n\t}\n\treturn NodeType(0), fmt.Errorf(\"not a valid NodeType string\")\n}\n\nfunc NodeTypePtr(v NodeType) *NodeType { return &v }\nfunc (p *NodeType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = NodeType(result.Int64)\n\treturn\n}\n\nfunc (p *NodeType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// The node template type is basically the same as NodeType. One copy is due to the addition of an Imageflow type to avoid affecting the business semantics of the original NodeType\ntype NodeTemplateType int64\n\nconst (\n\tNodeTemplateType_Start               NodeTemplateType = 1\n\tNodeTemplateType_End                 NodeTemplateType = 2\n\tNodeTemplateType_LLM                 NodeTemplateType = 3\n\tNodeTemplateType_Api                 NodeTemplateType = 4\n\tNodeTemplateType_Code                NodeTemplateType = 5\n\tNodeTemplateType_Dataset             NodeTemplateType = 6\n\tNodeTemplateType_If                  NodeTemplateType = 8\n\tNodeTemplateType_SubWorkflow         NodeTemplateType = 9\n\tNodeTemplateType_Variable            NodeTemplateType = 11\n\tNodeTemplateType_Database            NodeTemplateType = 12\n\tNodeTemplateType_Message             NodeTemplateType = 13\n\tNodeTemplateType_Imageflow           NodeTemplateType = 14\n\tNodeTemplateType_Text                NodeTemplateType = 15\n\tNodeTemplateType_ImageGenerate       NodeTemplateType = 16\n\tNodeTemplateType_ImageReference      NodeTemplateType = 17\n\tNodeTemplateType_Question            NodeTemplateType = 18\n\tNodeTemplateType_Break               NodeTemplateType = 19\n\tNodeTemplateType_LoopSetVariable     NodeTemplateType = 20\n\tNodeTemplateType_Loop                NodeTemplateType = 21\n\tNodeTemplateType_Intent              NodeTemplateType = 22\n\tNodeTemplateType_DrawingBoard        NodeTemplateType = 23\n\tNodeTemplateType_SceneVariable       NodeTemplateType = 24\n\tNodeTemplateType_SceneChat           NodeTemplateType = 25\n\tNodeTemplateType_DatasetWrite        NodeTemplateType = 27\n\tNodeTemplateType_Input               NodeTemplateType = 30\n\tNodeTemplateType_Batch               NodeTemplateType = 28\n\tNodeTemplateType_Continue            NodeTemplateType = 29\n\tNodeTemplateType_MessageList         NodeTemplateType = 37\n\tNodeTemplateType_AssignVariable      NodeTemplateType = 40\n\tNodeTemplateType_DatabaseInsert      NodeTemplateType = 41\n\tNodeTemplateType_DatabaseUpdate      NodeTemplateType = 42\n\tNodeTemplateType_DatabasesELECT      NodeTemplateType = 43\n\tNodeTemplateType_DatabaseDelete      NodeTemplateType = 44\n\tNodeTemplateType_ConversationList    NodeTemplateType = 53\n\tNodeTemplateType_CreateMessage       NodeTemplateType = 55\n\tNodeTemplateType_JsonSerialization   NodeTemplateType = 58\n\tNodeTemplateType_JsonDeserialization NodeTemplateType = 59\n\tNodeTemplateType_DatasetDelete       NodeTemplateType = 60\n)\n\nfunc (p NodeTemplateType) String() string {\n\tswitch p {\n\tcase NodeTemplateType_Start:\n\t\treturn \"Start\"\n\tcase NodeTemplateType_End:\n\t\treturn \"End\"\n\tcase NodeTemplateType_LLM:\n\t\treturn \"LLM\"\n\tcase NodeTemplateType_Api:\n\t\treturn \"Api\"\n\tcase NodeTemplateType_Code:\n\t\treturn \"Code\"\n\tcase NodeTemplateType_Dataset:\n\t\treturn \"Dataset\"\n\tcase NodeTemplateType_If:\n\t\treturn \"If\"\n\tcase NodeTemplateType_SubWorkflow:\n\t\treturn \"SubWorkflow\"\n\tcase NodeTemplateType_Variable:\n\t\treturn \"Variable\"\n\tcase NodeTemplateType_Database:\n\t\treturn \"Database\"\n\tcase NodeTemplateType_Message:\n\t\treturn \"Message\"\n\tcase NodeTemplateType_Imageflow:\n\t\treturn \"Imageflow\"\n\tcase NodeTemplateType_Text:\n\t\treturn \"Text\"\n\tcase NodeTemplateType_ImageGenerate:\n\t\treturn \"ImageGenerate\"\n\tcase NodeTemplateType_ImageReference:\n\t\treturn \"ImageReference\"\n\tcase NodeTemplateType_Question:\n\t\treturn \"Question\"\n\tcase NodeTemplateType_Break:\n\t\treturn \"Break\"\n\tcase NodeTemplateType_LoopSetVariable:\n\t\treturn \"LoopSetVariable\"\n\tcase NodeTemplateType_Loop:\n\t\treturn \"Loop\"\n\tcase NodeTemplateType_Intent:\n\t\treturn \"Intent\"\n\tcase NodeTemplateType_DrawingBoard:\n\t\treturn \"DrawingBoard\"\n\tcase NodeTemplateType_SceneVariable:\n\t\treturn \"SceneVariable\"\n\tcase NodeTemplateType_SceneChat:\n\t\treturn \"SceneChat\"\n\tcase NodeTemplateType_DatasetWrite:\n\t\treturn \"DatasetWrite\"\n\tcase NodeTemplateType_Input:\n\t\treturn \"Input\"\n\tcase NodeTemplateType_Batch:\n\t\treturn \"Batch\"\n\tcase NodeTemplateType_Continue:\n\t\treturn \"Continue\"\n\tcase NodeTemplateType_MessageList:\n\t\treturn \"MessageList\"\n\tcase NodeTemplateType_AssignVariable:\n\t\treturn \"AssignVariable\"\n\tcase NodeTemplateType_DatabaseInsert:\n\t\treturn \"DatabaseInsert\"\n\tcase NodeTemplateType_DatabaseUpdate:\n\t\treturn \"DatabaseUpdate\"\n\tcase NodeTemplateType_DatabasesELECT:\n\t\treturn \"DatabasesELECT\"\n\tcase NodeTemplateType_DatabaseDelete:\n\t\treturn \"DatabaseDelete\"\n\tcase NodeTemplateType_ConversationList:\n\t\treturn \"ConversationList\"\n\tcase NodeTemplateType_CreateMessage:\n\t\treturn \"CreateMessage\"\n\tcase NodeTemplateType_JsonSerialization:\n\t\treturn \"JsonSerialization\"\n\tcase NodeTemplateType_JsonDeserialization:\n\t\treturn \"JsonDeserialization\"\n\tcase NodeTemplateType_DatasetDelete:\n\t\treturn \"DatasetDelete\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc NodeTemplateTypeFromString(s string) (NodeTemplateType, error) {\n\tswitch s {\n\tcase \"Start\":\n\t\treturn NodeTemplateType_Start, nil\n\tcase \"End\":\n\t\treturn NodeTemplateType_End, nil\n\tcase \"LLM\":\n\t\treturn NodeTemplateType_LLM, nil\n\tcase \"Api\":\n\t\treturn NodeTemplateType_Api, nil\n\tcase \"Code\":\n\t\treturn NodeTemplateType_Code, nil\n\tcase \"Dataset\":\n\t\treturn NodeTemplateType_Dataset, nil\n\tcase \"If\":\n\t\treturn NodeTemplateType_If, nil\n\tcase \"SubWorkflow\":\n\t\treturn NodeTemplateType_SubWorkflow, nil\n\tcase \"Variable\":\n\t\treturn NodeTemplateType_Variable, nil\n\tcase \"Database\":\n\t\treturn NodeTemplateType_Database, nil\n\tcase \"Message\":\n\t\treturn NodeTemplateType_Message, nil\n\tcase \"Imageflow\":\n\t\treturn NodeTemplateType_Imageflow, nil\n\tcase \"Text\":\n\t\treturn NodeTemplateType_Text, nil\n\tcase \"ImageGenerate\":\n\t\treturn NodeTemplateType_ImageGenerate, nil\n\tcase \"ImageReference\":\n\t\treturn NodeTemplateType_ImageReference, nil\n\tcase \"Question\":\n\t\treturn NodeTemplateType_Question, nil\n\tcase \"Break\":\n\t\treturn NodeTemplateType_Break, nil\n\tcase \"LoopSetVariable\":\n\t\treturn NodeTemplateType_LoopSetVariable, nil\n\tcase \"Loop\":\n\t\treturn NodeTemplateType_Loop, nil\n\tcase \"Intent\":\n\t\treturn NodeTemplateType_Intent, nil\n\tcase \"DrawingBoard\":\n\t\treturn NodeTemplateType_DrawingBoard, nil\n\tcase \"SceneVariable\":\n\t\treturn NodeTemplateType_SceneVariable, nil\n\tcase \"SceneChat\":\n\t\treturn NodeTemplateType_SceneChat, nil\n\tcase \"DatasetWrite\":\n\t\treturn NodeTemplateType_DatasetWrite, nil\n\tcase \"Input\":\n\t\treturn NodeTemplateType_Input, nil\n\tcase \"Batch\":\n\t\treturn NodeTemplateType_Batch, nil\n\tcase \"Continue\":\n\t\treturn NodeTemplateType_Continue, nil\n\tcase \"MessageList\":\n\t\treturn NodeTemplateType_MessageList, nil\n\tcase \"AssignVariable\":\n\t\treturn NodeTemplateType_AssignVariable, nil\n\tcase \"DatabaseInsert\":\n\t\treturn NodeTemplateType_DatabaseInsert, nil\n\tcase \"DatabaseUpdate\":\n\t\treturn NodeTemplateType_DatabaseUpdate, nil\n\tcase \"DatabasesELECT\":\n\t\treturn NodeTemplateType_DatabasesELECT, nil\n\tcase \"DatabaseDelete\":\n\t\treturn NodeTemplateType_DatabaseDelete, nil\n\tcase \"ConversationList\":\n\t\treturn NodeTemplateType_ConversationList, nil\n\tcase \"CreateMessage\":\n\t\treturn NodeTemplateType_CreateMessage, nil\n\tcase \"JsonSerialization\":\n\t\treturn NodeTemplateType_JsonSerialization, nil\n\tcase \"JsonDeserialization\":\n\t\treturn NodeTemplateType_JsonDeserialization, nil\n\tcase \"DatasetDelete\":\n\t\treturn NodeTemplateType_DatasetDelete, nil\n\t}\n\treturn NodeTemplateType(0), fmt.Errorf(\"not a valid NodeTemplateType string\")\n}\n\nfunc NodeTemplateTypePtr(v NodeTemplateType) *NodeTemplateType { return &v }\nfunc (p *NodeTemplateType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = NodeTemplateType(result.Int64)\n\treturn\n}\n\nfunc (p *NodeTemplateType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype IfConditionRelation int64\n\nconst (\n\tIfConditionRelation_And IfConditionRelation = 1\n\tIfConditionRelation_Or  IfConditionRelation = 2\n)\n\nfunc (p IfConditionRelation) String() string {\n\tswitch p {\n\tcase IfConditionRelation_And:\n\t\treturn \"And\"\n\tcase IfConditionRelation_Or:\n\t\treturn \"Or\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc IfConditionRelationFromString(s string) (IfConditionRelation, error) {\n\tswitch s {\n\tcase \"And\":\n\t\treturn IfConditionRelation_And, nil\n\tcase \"Or\":\n\t\treturn IfConditionRelation_Or, nil\n\t}\n\treturn IfConditionRelation(0), fmt.Errorf(\"not a valid IfConditionRelation string\")\n}\n\nfunc IfConditionRelationPtr(v IfConditionRelation) *IfConditionRelation { return &v }\nfunc (p *IfConditionRelation) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = IfConditionRelation(result.Int64)\n\treturn\n}\n\nfunc (p *IfConditionRelation) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ConditionType int64\n\nconst (\n\tConditionType_Equal         ConditionType = 1\n\tConditionType_NotEqual      ConditionType = 2\n\tConditionType_LengthGt      ConditionType = 3\n\tConditionType_LengthGtEqual ConditionType = 4\n\tConditionType_LengthLt      ConditionType = 5\n\tConditionType_LengthLtEqual ConditionType = 6\n\tConditionType_Contains      ConditionType = 7\n\tConditionType_NotContains   ConditionType = 8\n\tConditionType_Null          ConditionType = 9\n\tConditionType_NotNull       ConditionType = 10\n\tConditionType_True          ConditionType = 11\n\tConditionType_False         ConditionType = 12\n\tConditionType_Gt            ConditionType = 13\n\tConditionType_GtEqual       ConditionType = 14\n\tConditionType_Lt            ConditionType = 15\n\tConditionType_LtEqual       ConditionType = 16\n)\n\nfunc (p ConditionType) String() string {\n\tswitch p {\n\tcase ConditionType_Equal:\n\t\treturn \"Equal\"\n\tcase ConditionType_NotEqual:\n\t\treturn \"NotEqual\"\n\tcase ConditionType_LengthGt:\n\t\treturn \"LengthGt\"\n\tcase ConditionType_LengthGtEqual:\n\t\treturn \"LengthGtEqual\"\n\tcase ConditionType_LengthLt:\n\t\treturn \"LengthLt\"\n\tcase ConditionType_LengthLtEqual:\n\t\treturn \"LengthLtEqual\"\n\tcase ConditionType_Contains:\n\t\treturn \"Contains\"\n\tcase ConditionType_NotContains:\n\t\treturn \"NotContains\"\n\tcase ConditionType_Null:\n\t\treturn \"Null\"\n\tcase ConditionType_NotNull:\n\t\treturn \"NotNull\"\n\tcase ConditionType_True:\n\t\treturn \"True\"\n\tcase ConditionType_False:\n\t\treturn \"False\"\n\tcase ConditionType_Gt:\n\t\treturn \"Gt\"\n\tcase ConditionType_GtEqual:\n\t\treturn \"GtEqual\"\n\tcase ConditionType_Lt:\n\t\treturn \"Lt\"\n\tcase ConditionType_LtEqual:\n\t\treturn \"LtEqual\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ConditionTypeFromString(s string) (ConditionType, error) {\n\tswitch s {\n\tcase \"Equal\":\n\t\treturn ConditionType_Equal, nil\n\tcase \"NotEqual\":\n\t\treturn ConditionType_NotEqual, nil\n\tcase \"LengthGt\":\n\t\treturn ConditionType_LengthGt, nil\n\tcase \"LengthGtEqual\":\n\t\treturn ConditionType_LengthGtEqual, nil\n\tcase \"LengthLt\":\n\t\treturn ConditionType_LengthLt, nil\n\tcase \"LengthLtEqual\":\n\t\treturn ConditionType_LengthLtEqual, nil\n\tcase \"Contains\":\n\t\treturn ConditionType_Contains, nil\n\tcase \"NotContains\":\n\t\treturn ConditionType_NotContains, nil\n\tcase \"Null\":\n\t\treturn ConditionType_Null, nil\n\tcase \"NotNull\":\n\t\treturn ConditionType_NotNull, nil\n\tcase \"True\":\n\t\treturn ConditionType_True, nil\n\tcase \"False\":\n\t\treturn ConditionType_False, nil\n\tcase \"Gt\":\n\t\treturn ConditionType_Gt, nil\n\tcase \"GtEqual\":\n\t\treturn ConditionType_GtEqual, nil\n\tcase \"Lt\":\n\t\treturn ConditionType_Lt, nil\n\tcase \"LtEqual\":\n\t\treturn ConditionType_LtEqual, nil\n\t}\n\treturn ConditionType(0), fmt.Errorf(\"not a valid ConditionType string\")\n}\n\nfunc ConditionTypePtr(v ConditionType) *ConditionType { return &v }\nfunc (p *ConditionType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ConditionType(result.Int64)\n\treturn\n}\n\nfunc (p *ConditionType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype InputType int64\n\nconst (\n\tInputType_String  InputType = 1\n\tInputType_Integer InputType = 2\n\tInputType_Boolean InputType = 3\n\tInputType_Number  InputType = 4\n\tInputType_Array   InputType = 5\n\tInputType_Object  InputType = 6\n)\n\nfunc (p InputType) String() string {\n\tswitch p {\n\tcase InputType_String:\n\t\treturn \"String\"\n\tcase InputType_Integer:\n\t\treturn \"Integer\"\n\tcase InputType_Boolean:\n\t\treturn \"Boolean\"\n\tcase InputType_Number:\n\t\treturn \"Number\"\n\tcase InputType_Array:\n\t\treturn \"Array\"\n\tcase InputType_Object:\n\t\treturn \"Object\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc InputTypeFromString(s string) (InputType, error) {\n\tswitch s {\n\tcase \"String\":\n\t\treturn InputType_String, nil\n\tcase \"Integer\":\n\t\treturn InputType_Integer, nil\n\tcase \"Boolean\":\n\t\treturn InputType_Boolean, nil\n\tcase \"Number\":\n\t\treturn InputType_Number, nil\n\tcase \"Array\":\n\t\treturn InputType_Array, nil\n\tcase \"Object\":\n\t\treturn InputType_Object, nil\n\t}\n\treturn InputType(0), fmt.Errorf(\"not a valid InputType string\")\n}\n\nfunc InputTypePtr(v InputType) *InputType { return &v }\nfunc (p *InputType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = InputType(result.Int64)\n\treturn\n}\n\nfunc (p *InputType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ParamRequirementType int64\n\nconst (\n\tParamRequirementType_CanNotDelete         ParamRequirementType = 1\n\tParamRequirementType_CanNotChangeName     ParamRequirementType = 2\n\tParamRequirementType_CanChange            ParamRequirementType = 3\n\tParamRequirementType_CanNotChangeAnything ParamRequirementType = 4\n)\n\nfunc (p ParamRequirementType) String() string {\n\tswitch p {\n\tcase ParamRequirementType_CanNotDelete:\n\t\treturn \"CanNotDelete\"\n\tcase ParamRequirementType_CanNotChangeName:\n\t\treturn \"CanNotChangeName\"\n\tcase ParamRequirementType_CanChange:\n\t\treturn \"CanChange\"\n\tcase ParamRequirementType_CanNotChangeAnything:\n\t\treturn \"CanNotChangeAnything\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ParamRequirementTypeFromString(s string) (ParamRequirementType, error) {\n\tswitch s {\n\tcase \"CanNotDelete\":\n\t\treturn ParamRequirementType_CanNotDelete, nil\n\tcase \"CanNotChangeName\":\n\t\treturn ParamRequirementType_CanNotChangeName, nil\n\tcase \"CanChange\":\n\t\treturn ParamRequirementType_CanChange, nil\n\tcase \"CanNotChangeAnything\":\n\t\treturn ParamRequirementType_CanNotChangeAnything, nil\n\t}\n\treturn ParamRequirementType(0), fmt.Errorf(\"not a valid ParamRequirementType string\")\n}\n\nfunc ParamRequirementTypePtr(v ParamRequirementType) *ParamRequirementType { return &v }\nfunc (p *ParamRequirementType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ParamRequirementType(result.Int64)\n\treturn\n}\n\nfunc (p *ParamRequirementType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype TerminatePlanType int64\n\nconst (\n\tTerminatePlanType_USELLM     TerminatePlanType = 1\n\tTerminatePlanType_USESETTING TerminatePlanType = 2\n)\n\nfunc (p TerminatePlanType) String() string {\n\tswitch p {\n\tcase TerminatePlanType_USELLM:\n\t\treturn \"USELLM\"\n\tcase TerminatePlanType_USESETTING:\n\t\treturn \"USESETTING\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc TerminatePlanTypeFromString(s string) (TerminatePlanType, error) {\n\tswitch s {\n\tcase \"USELLM\":\n\t\treturn TerminatePlanType_USELLM, nil\n\tcase \"USESETTING\":\n\t\treturn TerminatePlanType_USESETTING, nil\n\t}\n\treturn TerminatePlanType(0), fmt.Errorf(\"not a valid TerminatePlanType string\")\n}\n\nfunc TerminatePlanTypePtr(v TerminatePlanType) *TerminatePlanType { return &v }\nfunc (p *TerminatePlanType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = TerminatePlanType(result.Int64)\n\treturn\n}\n\nfunc (p *TerminatePlanType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SupportBatch int64\n\nconst (\n\t// 1: Not supported\n\tSupportBatch_NOT_SUPPORT SupportBatch = 1\n\t// 2: Support\n\tSupportBatch_SUPPORT SupportBatch = 2\n)\n\nfunc (p SupportBatch) String() string {\n\tswitch p {\n\tcase SupportBatch_NOT_SUPPORT:\n\t\treturn \"NOT_SUPPORT\"\n\tcase SupportBatch_SUPPORT:\n\t\treturn \"SUPPORT\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SupportBatchFromString(s string) (SupportBatch, error) {\n\tswitch s {\n\tcase \"NOT_SUPPORT\":\n\t\treturn SupportBatch_NOT_SUPPORT, nil\n\tcase \"SUPPORT\":\n\t\treturn SupportBatch_SUPPORT, nil\n\t}\n\treturn SupportBatch(0), fmt.Errorf(\"not a valid SupportBatch string\")\n}\n\nfunc SupportBatchPtr(v SupportBatch) *SupportBatch { return &v }\nfunc (p *SupportBatch) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SupportBatch(result.Int64)\n\treturn\n}\n\nfunc (p *SupportBatch) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginParamTypeFormat int64\n\nconst (\n\tPluginParamTypeFormat_ImageUrl PluginParamTypeFormat = 1\n)\n\nfunc (p PluginParamTypeFormat) String() string {\n\tswitch p {\n\tcase PluginParamTypeFormat_ImageUrl:\n\t\treturn \"ImageUrl\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginParamTypeFormatFromString(s string) (PluginParamTypeFormat, error) {\n\tswitch s {\n\tcase \"ImageUrl\":\n\t\treturn PluginParamTypeFormat_ImageUrl, nil\n\t}\n\treturn PluginParamTypeFormat(0), fmt.Errorf(\"not a valid PluginParamTypeFormat string\")\n}\n\nfunc PluginParamTypeFormatPtr(v PluginParamTypeFormat) *PluginParamTypeFormat { return &v }\nfunc (p *PluginParamTypeFormat) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginParamTypeFormat(result.Int64)\n\treturn\n}\n\nfunc (p *PluginParamTypeFormat) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Status, 1 Not Submitted 2 Submitted 3 Submitted 4 Obsolete\ntype WorkFlowDevStatus int64\n\nconst (\n\t// unsubmittable\n\tWorkFlowDevStatus_CanNotSubmit WorkFlowDevStatus = 1\n\t// submittable\n\tWorkFlowDevStatus_CanSubmit WorkFlowDevStatus = 2\n\t// Submitted\n\tWorkFlowDevStatus_HadSubmit WorkFlowDevStatus = 3\n\t// delete\n\tWorkFlowDevStatus_Deleted WorkFlowDevStatus = 4\n)\n\nfunc (p WorkFlowDevStatus) String() string {\n\tswitch p {\n\tcase WorkFlowDevStatus_CanNotSubmit:\n\t\treturn \"CanNotSubmit\"\n\tcase WorkFlowDevStatus_CanSubmit:\n\t\treturn \"CanSubmit\"\n\tcase WorkFlowDevStatus_HadSubmit:\n\t\treturn \"HadSubmit\"\n\tcase WorkFlowDevStatus_Deleted:\n\t\treturn \"Deleted\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc WorkFlowDevStatusFromString(s string) (WorkFlowDevStatus, error) {\n\tswitch s {\n\tcase \"CanNotSubmit\":\n\t\treturn WorkFlowDevStatus_CanNotSubmit, nil\n\tcase \"CanSubmit\":\n\t\treturn WorkFlowDevStatus_CanSubmit, nil\n\tcase \"HadSubmit\":\n\t\treturn WorkFlowDevStatus_HadSubmit, nil\n\tcase \"Deleted\":\n\t\treturn WorkFlowDevStatus_Deleted, nil\n\t}\n\treturn WorkFlowDevStatus(0), fmt.Errorf(\"not a valid WorkFlowDevStatus string\")\n}\n\nfunc WorkFlowDevStatusPtr(v WorkFlowDevStatus) *WorkFlowDevStatus { return &v }\nfunc (p *WorkFlowDevStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = WorkFlowDevStatus(result.Int64)\n\treturn\n}\n\nfunc (p *WorkFlowDevStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Status, 1 Unpublishable 2 Publishable 3 Published 4 Deleted 5 Removed\ntype WorkFlowStatus int64\n\nconst (\n\t// unpublishable\n\tWorkFlowStatus_CanNotPublish WorkFlowStatus = 1\n\t// publishable\n\tWorkFlowStatus_CanPublish WorkFlowStatus = 2\n\t// Published\n\tWorkFlowStatus_HadPublished WorkFlowStatus = 3\n\t// delete\n\tWorkFlowStatus_Deleted WorkFlowStatus = 4\n\t// offline\n\tWorkFlowStatus_Unlisted WorkFlowStatus = 5\n)\n\nfunc (p WorkFlowStatus) String() string {\n\tswitch p {\n\tcase WorkFlowStatus_CanNotPublish:\n\t\treturn \"CanNotPublish\"\n\tcase WorkFlowStatus_CanPublish:\n\t\treturn \"CanPublish\"\n\tcase WorkFlowStatus_HadPublished:\n\t\treturn \"HadPublished\"\n\tcase WorkFlowStatus_Deleted:\n\t\treturn \"Deleted\"\n\tcase WorkFlowStatus_Unlisted:\n\t\treturn \"Unlisted\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc WorkFlowStatusFromString(s string) (WorkFlowStatus, error) {\n\tswitch s {\n\tcase \"CanNotPublish\":\n\t\treturn WorkFlowStatus_CanNotPublish, nil\n\tcase \"CanPublish\":\n\t\treturn WorkFlowStatus_CanPublish, nil\n\tcase \"HadPublished\":\n\t\treturn WorkFlowStatus_HadPublished, nil\n\tcase \"Deleted\":\n\t\treturn WorkFlowStatus_Deleted, nil\n\tcase \"Unlisted\":\n\t\treturn WorkFlowStatus_Unlisted, nil\n\t}\n\treturn WorkFlowStatus(0), fmt.Errorf(\"not a valid WorkFlowStatus string\")\n}\n\nfunc WorkFlowStatusPtr(v WorkFlowStatus) *WorkFlowStatus { return &v }\nfunc (p *WorkFlowStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = WorkFlowStatus(result.Int64)\n\treturn\n}\n\nfunc (p *WorkFlowStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype VCSCanvasType int64\n\nconst (\n\tVCSCanvasType_Draft   VCSCanvasType = 1\n\tVCSCanvasType_Submit  VCSCanvasType = 2\n\tVCSCanvasType_Publish VCSCanvasType = 3\n)\n\nfunc (p VCSCanvasType) String() string {\n\tswitch p {\n\tcase VCSCanvasType_Draft:\n\t\treturn \"Draft\"\n\tcase VCSCanvasType_Submit:\n\t\treturn \"Submit\"\n\tcase VCSCanvasType_Publish:\n\t\treturn \"Publish\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc VCSCanvasTypeFromString(s string) (VCSCanvasType, error) {\n\tswitch s {\n\tcase \"Draft\":\n\t\treturn VCSCanvasType_Draft, nil\n\tcase \"Submit\":\n\t\treturn VCSCanvasType_Submit, nil\n\tcase \"Publish\":\n\t\treturn VCSCanvasType_Publish, nil\n\t}\n\treturn VCSCanvasType(0), fmt.Errorf(\"not a valid VCSCanvasType string\")\n}\n\nfunc VCSCanvasTypePtr(v VCSCanvasType) *VCSCanvasType { return &v }\nfunc (p *VCSCanvasType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = VCSCanvasType(result.Int64)\n\treturn\n}\n\nfunc (p *VCSCanvasType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype OperateType int64\n\nconst (\n\tOperateType_DraftOperate            OperateType = 0\n\tOperateType_SubmitOperate           OperateType = 1\n\tOperateType_PublishOperate          OperateType = 2\n\tOperateType_PubPPEOperate           OperateType = 3\n\tOperateType_SubmitPublishPPEOperate OperateType = 4\n)\n\nfunc (p OperateType) String() string {\n\tswitch p {\n\tcase OperateType_DraftOperate:\n\t\treturn \"DraftOperate\"\n\tcase OperateType_SubmitOperate:\n\t\treturn \"SubmitOperate\"\n\tcase OperateType_PublishOperate:\n\t\treturn \"PublishOperate\"\n\tcase OperateType_PubPPEOperate:\n\t\treturn \"PubPPEOperate\"\n\tcase OperateType_SubmitPublishPPEOperate:\n\t\treturn \"SubmitPublishPPEOperate\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OperateTypeFromString(s string) (OperateType, error) {\n\tswitch s {\n\tcase \"DraftOperate\":\n\t\treturn OperateType_DraftOperate, nil\n\tcase \"SubmitOperate\":\n\t\treturn OperateType_SubmitOperate, nil\n\tcase \"PublishOperate\":\n\t\treturn OperateType_PublishOperate, nil\n\tcase \"PubPPEOperate\":\n\t\treturn OperateType_PubPPEOperate, nil\n\tcase \"SubmitPublishPPEOperate\":\n\t\treturn OperateType_SubmitPublishPPEOperate, nil\n\t}\n\treturn OperateType(0), fmt.Errorf(\"not a valid OperateType string\")\n}\n\nfunc OperateTypePtr(v OperateType) *OperateType { return &v }\nfunc (p *OperateType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OperateType(result.Int64)\n\treturn\n}\n\nfunc (p *OperateType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DeleteAction int64\n\nconst (\n\t// Blockwise Unbinding\n\tDeleteAction_BlockwiseUnbind DeleteAction = 1\n\t// Blockwise removal\n\tDeleteAction_BlockwiseDelete DeleteAction = 2\n)\n\nfunc (p DeleteAction) String() string {\n\tswitch p {\n\tcase DeleteAction_BlockwiseUnbind:\n\t\treturn \"BlockwiseUnbind\"\n\tcase DeleteAction_BlockwiseDelete:\n\t\treturn \"BlockwiseDelete\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DeleteActionFromString(s string) (DeleteAction, error) {\n\tswitch s {\n\tcase \"BlockwiseUnbind\":\n\t\treturn DeleteAction_BlockwiseUnbind, nil\n\tcase \"BlockwiseDelete\":\n\t\treturn DeleteAction_BlockwiseDelete, nil\n\t}\n\treturn DeleteAction(0), fmt.Errorf(\"not a valid DeleteAction string\")\n}\n\nfunc DeleteActionPtr(v DeleteAction) *DeleteAction { return &v }\nfunc (p *DeleteAction) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DeleteAction(result.Int64)\n\treturn\n}\n\nfunc (p *DeleteAction) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DeleteStatus int64\n\nconst (\n\tDeleteStatus_SUCCESS DeleteStatus = 0\n\tDeleteStatus_FAIL    DeleteStatus = 1\n)\n\nfunc (p DeleteStatus) String() string {\n\tswitch p {\n\tcase DeleteStatus_SUCCESS:\n\t\treturn \"SUCCESS\"\n\tcase DeleteStatus_FAIL:\n\t\treturn \"FAIL\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DeleteStatusFromString(s string) (DeleteStatus, error) {\n\tswitch s {\n\tcase \"SUCCESS\":\n\t\treturn DeleteStatus_SUCCESS, nil\n\tcase \"FAIL\":\n\t\treturn DeleteStatus_FAIL, nil\n\t}\n\treturn DeleteStatus(0), fmt.Errorf(\"not a valid DeleteStatus string\")\n}\n\nfunc DeleteStatusPtr(v DeleteStatus) *DeleteStatus { return &v }\nfunc (p *DeleteStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DeleteStatus(result.Int64)\n\treturn\n}\n\nfunc (p *DeleteStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype DeleteType int64\n\nconst (\n\t// Can be deleted: No workflow product/product removed from the shelves/first time on the shelves and the review failed\n\tDeleteType_CanDelete DeleteType = 0\n\t// Review failed after deletion: The workflow product is on the shelves for the first time and is under review.\n\tDeleteType_RejectProductDraft DeleteType = 1\n\t// Products that need to be removed from the shelves first: workflow products have been put on the shelves.\n\tDeleteType_UnListProduct DeleteType = 2\n)\n\nfunc (p DeleteType) String() string {\n\tswitch p {\n\tcase DeleteType_CanDelete:\n\t\treturn \"CanDelete\"\n\tcase DeleteType_RejectProductDraft:\n\t\treturn \"RejectProductDraft\"\n\tcase DeleteType_UnListProduct:\n\t\treturn \"UnListProduct\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DeleteTypeFromString(s string) (DeleteType, error) {\n\tswitch s {\n\tcase \"CanDelete\":\n\t\treturn DeleteType_CanDelete, nil\n\tcase \"RejectProductDraft\":\n\t\treturn DeleteType_RejectProductDraft, nil\n\tcase \"UnListProduct\":\n\t\treturn DeleteType_UnListProduct, nil\n\t}\n\treturn DeleteType(0), fmt.Errorf(\"not a valid DeleteType string\")\n}\n\nfunc DeleteTypePtr(v DeleteType) *DeleteType { return &v }\nfunc (p *DeleteType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DeleteType(result.Int64)\n\treturn\n}\n\nfunc (p *DeleteType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype OrderBy int64\n\nconst (\n\tOrderBy_CreateTime  OrderBy = 0\n\tOrderBy_UpdateTime  OrderBy = 1\n\tOrderBy_PublishTime OrderBy = 2\n\tOrderBy_Hot         OrderBy = 3\n\tOrderBy_Id          OrderBy = 4\n)\n\nfunc (p OrderBy) String() string {\n\tswitch p {\n\tcase OrderBy_CreateTime:\n\t\treturn \"CreateTime\"\n\tcase OrderBy_UpdateTime:\n\t\treturn \"UpdateTime\"\n\tcase OrderBy_PublishTime:\n\t\treturn \"PublishTime\"\n\tcase OrderBy_Hot:\n\t\treturn \"Hot\"\n\tcase OrderBy_Id:\n\t\treturn \"Id\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OrderByFromString(s string) (OrderBy, error) {\n\tswitch s {\n\tcase \"CreateTime\":\n\t\treturn OrderBy_CreateTime, nil\n\tcase \"UpdateTime\":\n\t\treturn OrderBy_UpdateTime, nil\n\tcase \"PublishTime\":\n\t\treturn OrderBy_PublishTime, nil\n\tcase \"Hot\":\n\t\treturn OrderBy_Hot, nil\n\tcase \"Id\":\n\t\treturn OrderBy_Id, nil\n\t}\n\treturn OrderBy(0), fmt.Errorf(\"not a valid OrderBy string\")\n}\n\nfunc OrderByPtr(v OrderBy) *OrderBy { return &v }\nfunc (p *OrderBy) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OrderBy(result.Int64)\n\treturn\n}\n\nfunc (p *OrderBy) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype WorkFlowListStatus int64\n\nconst (\n\tWorkFlowListStatus_UnPublished  WorkFlowListStatus = 1\n\tWorkFlowListStatus_HadPublished WorkFlowListStatus = 2\n)\n\nfunc (p WorkFlowListStatus) String() string {\n\tswitch p {\n\tcase WorkFlowListStatus_UnPublished:\n\t\treturn \"UnPublished\"\n\tcase WorkFlowListStatus_HadPublished:\n\t\treturn \"HadPublished\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc WorkFlowListStatusFromString(s string) (WorkFlowListStatus, error) {\n\tswitch s {\n\tcase \"UnPublished\":\n\t\treturn WorkFlowListStatus_UnPublished, nil\n\tcase \"HadPublished\":\n\t\treturn WorkFlowListStatus_HadPublished, nil\n\t}\n\treturn WorkFlowListStatus(0), fmt.Errorf(\"not a valid WorkFlowListStatus string\")\n}\n\nfunc WorkFlowListStatusPtr(v WorkFlowListStatus) *WorkFlowListStatus { return &v }\nfunc (p *WorkFlowListStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = WorkFlowListStatus(result.Int64)\n\treturn\n}\n\nfunc (p *WorkFlowListStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype CheckType int64\n\nconst (\n\tCheckType_WebSDKPublish    CheckType = 1\n\tCheckType_SocialPublish    CheckType = 2\n\tCheckType_BotAgent         CheckType = 3\n\tCheckType_BotSocialPublish CheckType = 4\n\tCheckType_BotWebSDKPublish CheckType = 5\n)\n\nfunc (p CheckType) String() string {\n\tswitch p {\n\tcase CheckType_WebSDKPublish:\n\t\treturn \"WebSDKPublish\"\n\tcase CheckType_SocialPublish:\n\t\treturn \"SocialPublish\"\n\tcase CheckType_BotAgent:\n\t\treturn \"BotAgent\"\n\tcase CheckType_BotSocialPublish:\n\t\treturn \"BotSocialPublish\"\n\tcase CheckType_BotWebSDKPublish:\n\t\treturn \"BotWebSDKPublish\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc CheckTypeFromString(s string) (CheckType, error) {\n\tswitch s {\n\tcase \"WebSDKPublish\":\n\t\treturn CheckType_WebSDKPublish, nil\n\tcase \"SocialPublish\":\n\t\treturn CheckType_SocialPublish, nil\n\tcase \"BotAgent\":\n\t\treturn CheckType_BotAgent, nil\n\tcase \"BotSocialPublish\":\n\t\treturn CheckType_BotSocialPublish, nil\n\tcase \"BotWebSDKPublish\":\n\t\treturn CheckType_BotWebSDKPublish, nil\n\t}\n\treturn CheckType(0), fmt.Errorf(\"not a valid CheckType string\")\n}\n\nfunc CheckTypePtr(v CheckType) *CheckType { return &v }\nfunc (p *CheckType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = CheckType(result.Int64)\n\treturn\n}\n\nfunc (p *CheckType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype BindBizType int64\n\nconst (\n\tBindBizType_Agent BindBizType = 1\n\tBindBizType_Scene BindBizType = 2\n\t// Douyin doppelganger\n\tBindBizType_DouYinBot BindBizType = 3\n)\n\nfunc (p BindBizType) String() string {\n\tswitch p {\n\tcase BindBizType_Agent:\n\t\treturn \"Agent\"\n\tcase BindBizType_Scene:\n\t\treturn \"Scene\"\n\tcase BindBizType_DouYinBot:\n\t\treturn \"DouYinBot\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc BindBizTypeFromString(s string) (BindBizType, error) {\n\tswitch s {\n\tcase \"Agent\":\n\t\treturn BindBizType_Agent, nil\n\tcase \"Scene\":\n\t\treturn BindBizType_Scene, nil\n\tcase \"DouYinBot\":\n\t\treturn BindBizType_DouYinBot, nil\n\t}\n\treturn BindBizType(0), fmt.Errorf(\"not a valid BindBizType string\")\n}\n\nfunc BindBizTypePtr(v BindBizType) *BindBizType { return &v }\nfunc (p *BindBizType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = BindBizType(result.Int64)\n\treturn\n}\n\nfunc (p *BindBizType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype WorkflowExeStatus int64\n\nconst (\n\tWorkflowExeStatus_Running WorkflowExeStatus = 1\n\tWorkflowExeStatus_Success WorkflowExeStatus = 2\n\tWorkflowExeStatus_Fail    WorkflowExeStatus = 3\n\tWorkflowExeStatus_Cancel  WorkflowExeStatus = 4\n)\n\nfunc (p WorkflowExeStatus) String() string {\n\tswitch p {\n\tcase WorkflowExeStatus_Running:\n\t\treturn \"Running\"\n\tcase WorkflowExeStatus_Success:\n\t\treturn \"Success\"\n\tcase WorkflowExeStatus_Fail:\n\t\treturn \"Fail\"\n\tcase WorkflowExeStatus_Cancel:\n\t\treturn \"Cancel\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc WorkflowExeStatusFromString(s string) (WorkflowExeStatus, error) {\n\tswitch s {\n\tcase \"Running\":\n\t\treturn WorkflowExeStatus_Running, nil\n\tcase \"Success\":\n\t\treturn WorkflowExeStatus_Success, nil\n\tcase \"Fail\":\n\t\treturn WorkflowExeStatus_Fail, nil\n\tcase \"Cancel\":\n\t\treturn WorkflowExeStatus_Cancel, nil\n\t}\n\treturn WorkflowExeStatus(0), fmt.Errorf(\"not a valid WorkflowExeStatus string\")\n}\n\nfunc WorkflowExeStatusPtr(v WorkflowExeStatus) *WorkflowExeStatus { return &v }\nfunc (p *WorkflowExeStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = WorkflowExeStatus(result.Int64)\n\treturn\n}\n\nfunc (p *WorkflowExeStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype WorkflowExeHistoryStatus int64\n\nconst (\n\tWorkflowExeHistoryStatus_NoHistory  WorkflowExeHistoryStatus = 1\n\tWorkflowExeHistoryStatus_HasHistory WorkflowExeHistoryStatus = 2\n)\n\nfunc (p WorkflowExeHistoryStatus) String() string {\n\tswitch p {\n\tcase WorkflowExeHistoryStatus_NoHistory:\n\t\treturn \"NoHistory\"\n\tcase WorkflowExeHistoryStatus_HasHistory:\n\t\treturn \"HasHistory\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc WorkflowExeHistoryStatusFromString(s string) (WorkflowExeHistoryStatus, error) {\n\tswitch s {\n\tcase \"NoHistory\":\n\t\treturn WorkflowExeHistoryStatus_NoHistory, nil\n\tcase \"HasHistory\":\n\t\treturn WorkflowExeHistoryStatus_HasHistory, nil\n\t}\n\treturn WorkflowExeHistoryStatus(0), fmt.Errorf(\"not a valid WorkflowExeHistoryStatus string\")\n}\n\nfunc WorkflowExeHistoryStatusPtr(v WorkflowExeHistoryStatus) *WorkflowExeHistoryStatus { return &v }\nfunc (p *WorkflowExeHistoryStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = WorkflowExeHistoryStatus(result.Int64)\n\treturn\n}\n\nfunc (p *WorkflowExeHistoryStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype NodeHistoryScene int64\n\nconst (\n\tNodeHistoryScene_Default      NodeHistoryScene = 0\n\tNodeHistoryScene_TestRunInput NodeHistoryScene = 1\n)\n\nfunc (p NodeHistoryScene) String() string {\n\tswitch p {\n\tcase NodeHistoryScene_Default:\n\t\treturn \"Default\"\n\tcase NodeHistoryScene_TestRunInput:\n\t\treturn \"TestRunInput\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc NodeHistorySceneFromString(s string) (NodeHistoryScene, error) {\n\tswitch s {\n\tcase \"Default\":\n\t\treturn NodeHistoryScene_Default, nil\n\tcase \"TestRunInput\":\n\t\treturn NodeHistoryScene_TestRunInput, nil\n\t}\n\treturn NodeHistoryScene(0), fmt.Errorf(\"not a valid NodeHistoryScene string\")\n}\n\nfunc NodeHistoryScenePtr(v NodeHistoryScene) *NodeHistoryScene { return &v }\nfunc (p *NodeHistoryScene) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = NodeHistoryScene(result.Int64)\n\treturn\n}\n\nfunc (p *NodeHistoryScene) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype NodeExeStatus int64\n\nconst (\n\tNodeExeStatus_Waiting NodeExeStatus = 1\n\tNodeExeStatus_Running NodeExeStatus = 2\n\tNodeExeStatus_Success NodeExeStatus = 3\n\tNodeExeStatus_Fail    NodeExeStatus = 4\n)\n\nfunc (p NodeExeStatus) String() string {\n\tswitch p {\n\tcase NodeExeStatus_Waiting:\n\t\treturn \"Waiting\"\n\tcase NodeExeStatus_Running:\n\t\treturn \"Running\"\n\tcase NodeExeStatus_Success:\n\t\treturn \"Success\"\n\tcase NodeExeStatus_Fail:\n\t\treturn \"Fail\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc NodeExeStatusFromString(s string) (NodeExeStatus, error) {\n\tswitch s {\n\tcase \"Waiting\":\n\t\treturn NodeExeStatus_Waiting, nil\n\tcase \"Running\":\n\t\treturn NodeExeStatus_Running, nil\n\tcase \"Success\":\n\t\treturn NodeExeStatus_Success, nil\n\tcase \"Fail\":\n\t\treturn NodeExeStatus_Fail, nil\n\t}\n\treturn NodeExeStatus(0), fmt.Errorf(\"not a valid NodeExeStatus string\")\n}\n\nfunc NodeExeStatusPtr(v NodeExeStatus) *NodeExeStatus { return &v }\nfunc (p *NodeExeStatus) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = NodeExeStatus(result.Int64)\n\treturn\n}\n\nfunc (p *NodeExeStatus) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype EventType int64\n\nconst (\n\tEventType_LocalPlugin         EventType = 1\n\tEventType_Question            EventType = 2\n\tEventType_RequireInfos        EventType = 3\n\tEventType_SceneChat           EventType = 4\n\tEventType_InputNode           EventType = 5\n\tEventType_WorkflowLocalPlugin EventType = 6\n\tEventType_WorkflowOauthPlugin EventType = 7\n)\n\nfunc (p EventType) String() string {\n\tswitch p {\n\tcase EventType_LocalPlugin:\n\t\treturn \"LocalPlugin\"\n\tcase EventType_Question:\n\t\treturn \"Question\"\n\tcase EventType_RequireInfos:\n\t\treturn \"RequireInfos\"\n\tcase EventType_SceneChat:\n\t\treturn \"SceneChat\"\n\tcase EventType_InputNode:\n\t\treturn \"InputNode\"\n\tcase EventType_WorkflowLocalPlugin:\n\t\treturn \"WorkflowLocalPlugin\"\n\tcase EventType_WorkflowOauthPlugin:\n\t\treturn \"WorkflowOauthPlugin\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc EventTypeFromString(s string) (EventType, error) {\n\tswitch s {\n\tcase \"LocalPlugin\":\n\t\treturn EventType_LocalPlugin, nil\n\tcase \"Question\":\n\t\treturn EventType_Question, nil\n\tcase \"RequireInfos\":\n\t\treturn EventType_RequireInfos, nil\n\tcase \"SceneChat\":\n\t\treturn EventType_SceneChat, nil\n\tcase \"InputNode\":\n\t\treturn EventType_InputNode, nil\n\tcase \"WorkflowLocalPlugin\":\n\t\treturn EventType_WorkflowLocalPlugin, nil\n\tcase \"WorkflowOauthPlugin\":\n\t\treturn EventType_WorkflowOauthPlugin, nil\n\t}\n\treturn EventType(0), fmt.Errorf(\"not a valid EventType string\")\n}\n\nfunc EventTypePtr(v EventType) *EventType { return &v }\nfunc (p *EventType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = EventType(result.Int64)\n\treturn\n}\n\nfunc (p *EventType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ValidateErrorType int64\n\nconst (\n\tValidateErrorType_BotValidateNodeErr   ValidateErrorType = 1\n\tValidateErrorType_BotValidatePathErr   ValidateErrorType = 2\n\tValidateErrorType_BotConcurrentPathErr ValidateErrorType = 3\n)\n\nfunc (p ValidateErrorType) String() string {\n\tswitch p {\n\tcase ValidateErrorType_BotValidateNodeErr:\n\t\treturn \"BotValidateNodeErr\"\n\tcase ValidateErrorType_BotValidatePathErr:\n\t\treturn \"BotValidatePathErr\"\n\tcase ValidateErrorType_BotConcurrentPathErr:\n\t\treturn \"BotConcurrentPathErr\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ValidateErrorTypeFromString(s string) (ValidateErrorType, error) {\n\tswitch s {\n\tcase \"BotValidateNodeErr\":\n\t\treturn ValidateErrorType_BotValidateNodeErr, nil\n\tcase \"BotValidatePathErr\":\n\t\treturn ValidateErrorType_BotValidatePathErr, nil\n\tcase \"BotConcurrentPathErr\":\n\t\treturn ValidateErrorType_BotConcurrentPathErr, nil\n\t}\n\treturn ValidateErrorType(0), fmt.Errorf(\"not a valid ValidateErrorType string\")\n}\n\nfunc ValidateErrorTypePtr(v ValidateErrorType) *ValidateErrorType { return &v }\nfunc (p *ValidateErrorType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ValidateErrorType(result.Int64)\n\treturn\n}\n\nfunc (p *ValidateErrorType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PluginType int64\n\nconst (\n\tPluginType_PLUGIN    PluginType = 1\n\tPluginType_APP       PluginType = 2\n\tPluginType_FUNC      PluginType = 3\n\tPluginType_WORKFLOW  PluginType = 4\n\tPluginType_IMAGEFLOW PluginType = 5\n\tPluginType_LOCAL     PluginType = 6\n)\n\nfunc (p PluginType) String() string {\n\tswitch p {\n\tcase PluginType_PLUGIN:\n\t\treturn \"PLUGIN\"\n\tcase PluginType_APP:\n\t\treturn \"APP\"\n\tcase PluginType_FUNC:\n\t\treturn \"FUNC\"\n\tcase PluginType_WORKFLOW:\n\t\treturn \"WORKFLOW\"\n\tcase PluginType_IMAGEFLOW:\n\t\treturn \"IMAGEFLOW\"\n\tcase PluginType_LOCAL:\n\t\treturn \"LOCAL\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PluginTypeFromString(s string) (PluginType, error) {\n\tswitch s {\n\tcase \"PLUGIN\":\n\t\treturn PluginType_PLUGIN, nil\n\tcase \"APP\":\n\t\treturn PluginType_APP, nil\n\tcase \"FUNC\":\n\t\treturn PluginType_FUNC, nil\n\tcase \"WORKFLOW\":\n\t\treturn PluginType_WORKFLOW, nil\n\tcase \"IMAGEFLOW\":\n\t\treturn PluginType_IMAGEFLOW, nil\n\tcase \"LOCAL\":\n\t\treturn PluginType_LOCAL, nil\n\t}\n\treturn PluginType(0), fmt.Errorf(\"not a valid PluginType string\")\n}\n\nfunc PluginTypePtr(v PluginType) *PluginType { return &v }\nfunc (p *PluginType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PluginType(result.Int64)\n\treturn\n}\n\nfunc (p *PluginType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ParameterType int64\n\nconst (\n\tParameterType_String  ParameterType = 1\n\tParameterType_Integer ParameterType = 2\n\tParameterType_Number  ParameterType = 3\n\tParameterType_Object  ParameterType = 4\n\tParameterType_Array   ParameterType = 5\n\tParameterType_Bool    ParameterType = 6\n)\n\nfunc (p ParameterType) String() string {\n\tswitch p {\n\tcase ParameterType_String:\n\t\treturn \"String\"\n\tcase ParameterType_Integer:\n\t\treturn \"Integer\"\n\tcase ParameterType_Number:\n\t\treturn \"Number\"\n\tcase ParameterType_Object:\n\t\treturn \"Object\"\n\tcase ParameterType_Array:\n\t\treturn \"Array\"\n\tcase ParameterType_Bool:\n\t\treturn \"Bool\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ParameterTypeFromString(s string) (ParameterType, error) {\n\tswitch s {\n\tcase \"String\":\n\t\treturn ParameterType_String, nil\n\tcase \"Integer\":\n\t\treturn ParameterType_Integer, nil\n\tcase \"Number\":\n\t\treturn ParameterType_Number, nil\n\tcase \"Object\":\n\t\treturn ParameterType_Object, nil\n\tcase \"Array\":\n\t\treturn ParameterType_Array, nil\n\tcase \"Bool\":\n\t\treturn ParameterType_Bool, nil\n\t}\n\treturn ParameterType(0), fmt.Errorf(\"not a valid ParameterType string\")\n}\n\nfunc ParameterTypePtr(v ParameterType) *ParameterType { return &v }\nfunc (p *ParameterType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ParameterType(result.Int64)\n\treturn\n}\n\nfunc (p *ParameterType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype ParameterLocation int64\n\nconst (\n\tParameterLocation_Path   ParameterLocation = 1\n\tParameterLocation_Query  ParameterLocation = 2\n\tParameterLocation_Body   ParameterLocation = 3\n\tParameterLocation_Header ParameterLocation = 4\n)\n\nfunc (p ParameterLocation) String() string {\n\tswitch p {\n\tcase ParameterLocation_Path:\n\t\treturn \"Path\"\n\tcase ParameterLocation_Query:\n\t\treturn \"Query\"\n\tcase ParameterLocation_Body:\n\t\treturn \"Body\"\n\tcase ParameterLocation_Header:\n\t\treturn \"Header\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc ParameterLocationFromString(s string) (ParameterLocation, error) {\n\tswitch s {\n\tcase \"Path\":\n\t\treturn ParameterLocation_Path, nil\n\tcase \"Query\":\n\t\treturn ParameterLocation_Query, nil\n\tcase \"Body\":\n\t\treturn ParameterLocation_Body, nil\n\tcase \"Header\":\n\t\treturn ParameterLocation_Header, nil\n\t}\n\treturn ParameterLocation(0), fmt.Errorf(\"not a valid ParameterLocation string\")\n}\n\nfunc ParameterLocationPtr(v ParameterLocation) *ParameterLocation { return &v }\nfunc (p *ParameterLocation) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = ParameterLocation(result.Int64)\n\treturn\n}\n\nfunc (p *ParameterLocation) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Default imported parameter settings source\ntype DefaultParamSource int64\n\nconst (\n\t// default user input\n\tDefaultParamSource_Input DefaultParamSource = 0\n\t// reference variable\n\tDefaultParamSource_Variable DefaultParamSource = 1\n)\n\nfunc (p DefaultParamSource) String() string {\n\tswitch p {\n\tcase DefaultParamSource_Input:\n\t\treturn \"Input\"\n\tcase DefaultParamSource_Variable:\n\t\treturn \"Variable\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc DefaultParamSourceFromString(s string) (DefaultParamSource, error) {\n\tswitch s {\n\tcase \"Input\":\n\t\treturn DefaultParamSource_Input, nil\n\tcase \"Variable\":\n\t\treturn DefaultParamSource_Variable, nil\n\t}\n\treturn DefaultParamSource(0), fmt.Errorf(\"not a valid DefaultParamSource string\")\n}\n\nfunc DefaultParamSourcePtr(v DefaultParamSource) *DefaultParamSource { return &v }\nfunc (p *DefaultParamSource) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = DefaultParamSource(result.Int64)\n\treturn\n}\n\nfunc (p *DefaultParamSource) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// Subdivision types for File type parameters\ntype AssistParameterType int64\n\nconst (\n\tAssistParameterType_DEFAULT AssistParameterType = 1\n\tAssistParameterType_IMAGE   AssistParameterType = 2\n\tAssistParameterType_DOC     AssistParameterType = 3\n\tAssistParameterType_CODE    AssistParameterType = 4\n\tAssistParameterType_PPT     AssistParameterType = 5\n\tAssistParameterType_TXT     AssistParameterType = 6\n\tAssistParameterType_EXCEL   AssistParameterType = 7\n\tAssistParameterType_AUDIO   AssistParameterType = 8\n\tAssistParameterType_ZIP     AssistParameterType = 9\n\tAssistParameterType_VIDEO   AssistParameterType = 10\n\tAssistParameterType_SVG     AssistParameterType = 11\n\tAssistParameterType_Voice   AssistParameterType = 12\n)\n\nfunc (p AssistParameterType) String() string {\n\tswitch p {\n\tcase AssistParameterType_DEFAULT:\n\t\treturn \"DEFAULT\"\n\tcase AssistParameterType_IMAGE:\n\t\treturn \"IMAGE\"\n\tcase AssistParameterType_DOC:\n\t\treturn \"DOC\"\n\tcase AssistParameterType_CODE:\n\t\treturn \"CODE\"\n\tcase AssistParameterType_PPT:\n\t\treturn \"PPT\"\n\tcase AssistParameterType_TXT:\n\t\treturn \"TXT\"\n\tcase AssistParameterType_EXCEL:\n\t\treturn \"EXCEL\"\n\tcase AssistParameterType_AUDIO:\n\t\treturn \"AUDIO\"\n\tcase AssistParameterType_ZIP:\n\t\treturn \"ZIP\"\n\tcase AssistParameterType_VIDEO:\n\t\treturn \"VIDEO\"\n\tcase AssistParameterType_SVG:\n\t\treturn \"SVG\"\n\tcase AssistParameterType_Voice:\n\t\treturn \"Voice\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc AssistParameterTypeFromString(s string) (AssistParameterType, error) {\n\tswitch s {\n\tcase \"DEFAULT\":\n\t\treturn AssistParameterType_DEFAULT, nil\n\tcase \"IMAGE\":\n\t\treturn AssistParameterType_IMAGE, nil\n\tcase \"DOC\":\n\t\treturn AssistParameterType_DOC, nil\n\tcase \"CODE\":\n\t\treturn AssistParameterType_CODE, nil\n\tcase \"PPT\":\n\t\treturn AssistParameterType_PPT, nil\n\tcase \"TXT\":\n\t\treturn AssistParameterType_TXT, nil\n\tcase \"EXCEL\":\n\t\treturn AssistParameterType_EXCEL, nil\n\tcase \"AUDIO\":\n\t\treturn AssistParameterType_AUDIO, nil\n\tcase \"ZIP\":\n\t\treturn AssistParameterType_ZIP, nil\n\tcase \"VIDEO\":\n\t\treturn AssistParameterType_VIDEO, nil\n\tcase \"SVG\":\n\t\treturn AssistParameterType_SVG, nil\n\tcase \"Voice\":\n\t\treturn AssistParameterType_Voice, nil\n\t}\n\treturn AssistParameterType(0), fmt.Errorf(\"not a valid AssistParameterType string\")\n}\n\nfunc AssistParameterTypePtr(v AssistParameterType) *AssistParameterType { return &v }\nfunc (p *AssistParameterType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = AssistParameterType(result.Int64)\n\treturn\n}\n\nfunc (p *AssistParameterType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype CreateMethod int64\n\nconst (\n\tCreateMethod_ManualCreate CreateMethod = 1\n\tCreateMethod_NodeCreate   CreateMethod = 2\n)\n\nfunc (p CreateMethod) String() string {\n\tswitch p {\n\tcase CreateMethod_ManualCreate:\n\t\treturn \"ManualCreate\"\n\tcase CreateMethod_NodeCreate:\n\t\treturn \"NodeCreate\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc CreateMethodFromString(s string) (CreateMethod, error) {\n\tswitch s {\n\tcase \"ManualCreate\":\n\t\treturn CreateMethod_ManualCreate, nil\n\tcase \"NodeCreate\":\n\t\treturn CreateMethod_NodeCreate, nil\n\t}\n\treturn CreateMethod(0), fmt.Errorf(\"not a valid CreateMethod string\")\n}\n\nfunc CreateMethodPtr(v CreateMethod) *CreateMethod { return &v }\nfunc (p *CreateMethod) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = CreateMethod(result.Int64)\n\treturn\n}\n\nfunc (p *CreateMethod) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype CreateEnv int64\n\nconst (\n\tCreateEnv_Draft   CreateEnv = 1\n\tCreateEnv_Release CreateEnv = 2\n)\n\nfunc (p CreateEnv) String() string {\n\tswitch p {\n\tcase CreateEnv_Draft:\n\t\treturn \"Draft\"\n\tcase CreateEnv_Release:\n\t\treturn \"Release\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc CreateEnvFromString(s string) (CreateEnv, error) {\n\tswitch s {\n\tcase \"Draft\":\n\t\treturn CreateEnv_Draft, nil\n\tcase \"Release\":\n\t\treturn CreateEnv_Release, nil\n\t}\n\treturn CreateEnv(0), fmt.Errorf(\"not a valid CreateEnv string\")\n}\n\nfunc CreateEnvPtr(v CreateEnv) *CreateEnv { return &v }\nfunc (p *CreateEnv) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = CreateEnv(result.Int64)\n\treturn\n}\n\nfunc (p *CreateEnv) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SuggestReplyInfoMode int64\n\nconst (\n\t// close\n\tSuggestReplyInfoMode_Disable SuggestReplyInfoMode = 0\n\t// system\n\tSuggestReplyInfoMode_System SuggestReplyInfoMode = 1\n\t// custom\n\tSuggestReplyInfoMode_Custom SuggestReplyInfoMode = 2\n)\n\nfunc (p SuggestReplyInfoMode) String() string {\n\tswitch p {\n\tcase SuggestReplyInfoMode_Disable:\n\t\treturn \"Disable\"\n\tcase SuggestReplyInfoMode_System:\n\t\treturn \"System\"\n\tcase SuggestReplyInfoMode_Custom:\n\t\treturn \"Custom\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SuggestReplyInfoModeFromString(s string) (SuggestReplyInfoMode, error) {\n\tswitch s {\n\tcase \"Disable\":\n\t\treturn SuggestReplyInfoMode_Disable, nil\n\tcase \"System\":\n\t\treturn SuggestReplyInfoMode_System, nil\n\tcase \"Custom\":\n\t\treturn SuggestReplyInfoMode_Custom, nil\n\t}\n\treturn SuggestReplyInfoMode(0), fmt.Errorf(\"not a valid SuggestReplyInfoMode string\")\n}\n\nfunc SuggestReplyInfoModePtr(v SuggestReplyInfoMode) *SuggestReplyInfoMode { return &v }\nfunc (p *SuggestReplyInfoMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SuggestReplyInfoMode(result.Int64)\n\treturn\n}\n\nfunc (p *SuggestReplyInfoMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype Caller int64\n\nconst (\n\tCaller_Canvas    Caller = 1\n\tCaller_UIBuilder Caller = 2\n)\n\nfunc (p Caller) String() string {\n\tswitch p {\n\tcase Caller_Canvas:\n\t\treturn \"Canvas\"\n\tcase Caller_UIBuilder:\n\t\treturn \"UIBuilder\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc CallerFromString(s string) (Caller, error) {\n\tswitch s {\n\tcase \"Canvas\":\n\t\treturn Caller_Canvas, nil\n\tcase \"UIBuilder\":\n\t\treturn Caller_UIBuilder, nil\n\t}\n\treturn Caller(0), fmt.Errorf(\"not a valid Caller string\")\n}\n\nfunc CallerPtr(v Caller) *Caller { return &v }\nfunc (p *Caller) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = Caller(result.Int64)\n\treturn\n}\n\nfunc (p *Caller) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype InputMode int64\n\nconst (\n\t// Type input\n\tInputMode_Text InputMode = 1\n\t// Voice input\n\tInputMode_Audio InputMode = 2\n)\n\nfunc (p InputMode) String() string {\n\tswitch p {\n\tcase InputMode_Text:\n\t\treturn \"Text\"\n\tcase InputMode_Audio:\n\t\treturn \"Audio\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc InputModeFromString(s string) (InputMode, error) {\n\tswitch s {\n\tcase \"Text\":\n\t\treturn InputMode_Text, nil\n\tcase \"Audio\":\n\t\treturn InputMode_Audio, nil\n\t}\n\treturn InputMode(0), fmt.Errorf(\"not a valid InputMode string\")\n}\n\nfunc InputModePtr(v InputMode) *InputMode { return &v }\nfunc (p *InputMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = InputMode(result.Int64)\n\treturn\n}\n\nfunc (p *InputMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype SendVoiceMode int64\n\nconst (\n\t// text message\n\tSendVoiceMode_Text SendVoiceMode = 1\n\t// Send as voice\n\tSendVoiceMode_Audio SendVoiceMode = 2\n)\n\nfunc (p SendVoiceMode) String() string {\n\tswitch p {\n\tcase SendVoiceMode_Text:\n\t\treturn \"Text\"\n\tcase SendVoiceMode_Audio:\n\t\treturn \"Audio\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc SendVoiceModeFromString(s string) (SendVoiceMode, error) {\n\tswitch s {\n\tcase \"Text\":\n\t\treturn SendVoiceMode_Text, nil\n\tcase \"Audio\":\n\t\treturn SendVoiceMode_Audio, nil\n\t}\n\treturn SendVoiceMode(0), fmt.Errorf(\"not a valid SendVoiceMode string\")\n}\n\nfunc SendVoiceModePtr(v SendVoiceMode) *SendVoiceMode { return &v }\nfunc (p *SendVoiceMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = SendVoiceMode(result.Int64)\n\treturn\n}\n\nfunc (p *SendVoiceMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype NodePanelSearchType int64\n\nconst (\n\tNodePanelSearchType_All              NodePanelSearchType = 0\n\tNodePanelSearchType_ResourceWorkflow NodePanelSearchType = 1\n\tNodePanelSearchType_ProjectWorkflow  NodePanelSearchType = 2\n\tNodePanelSearchType_FavoritePlugin   NodePanelSearchType = 3\n\tNodePanelSearchType_ResourcePlugin   NodePanelSearchType = 4\n\tNodePanelSearchType_ProjectPlugin    NodePanelSearchType = 5\n\tNodePanelSearchType_StorePlugin      NodePanelSearchType = 6\n)\n\nfunc (p NodePanelSearchType) String() string {\n\tswitch p {\n\tcase NodePanelSearchType_All:\n\t\treturn \"All\"\n\tcase NodePanelSearchType_ResourceWorkflow:\n\t\treturn \"ResourceWorkflow\"\n\tcase NodePanelSearchType_ProjectWorkflow:\n\t\treturn \"ProjectWorkflow\"\n\tcase NodePanelSearchType_FavoritePlugin:\n\t\treturn \"FavoritePlugin\"\n\tcase NodePanelSearchType_ResourcePlugin:\n\t\treturn \"ResourcePlugin\"\n\tcase NodePanelSearchType_ProjectPlugin:\n\t\treturn \"ProjectPlugin\"\n\tcase NodePanelSearchType_StorePlugin:\n\t\treturn \"StorePlugin\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc NodePanelSearchTypeFromString(s string) (NodePanelSearchType, error) {\n\tswitch s {\n\tcase \"All\":\n\t\treturn NodePanelSearchType_All, nil\n\tcase \"ResourceWorkflow\":\n\t\treturn NodePanelSearchType_ResourceWorkflow, nil\n\tcase \"ProjectWorkflow\":\n\t\treturn NodePanelSearchType_ProjectWorkflow, nil\n\tcase \"FavoritePlugin\":\n\t\treturn NodePanelSearchType_FavoritePlugin, nil\n\tcase \"ResourcePlugin\":\n\t\treturn NodePanelSearchType_ResourcePlugin, nil\n\tcase \"ProjectPlugin\":\n\t\treturn NodePanelSearchType_ProjectPlugin, nil\n\tcase \"StorePlugin\":\n\t\treturn NodePanelSearchType_StorePlugin, nil\n\t}\n\treturn NodePanelSearchType(0), fmt.Errorf(\"not a valid NodePanelSearchType string\")\n}\n\nfunc NodePanelSearchTypePtr(v NodePanelSearchType) *NodePanelSearchType { return &v }\nfunc (p *NodePanelSearchType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = NodePanelSearchType(result.Int64)\n\treturn\n}\n\nfunc (p *NodePanelSearchType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype OrderByType int64\n\nconst (\n\tOrderByType_Asc  OrderByType = 1\n\tOrderByType_Desc OrderByType = 2\n)\n\nfunc (p OrderByType) String() string {\n\tswitch p {\n\tcase OrderByType_Asc:\n\t\treturn \"Asc\"\n\tcase OrderByType_Desc:\n\t\treturn \"Desc\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc OrderByTypeFromString(s string) (OrderByType, error) {\n\tswitch s {\n\tcase \"Asc\":\n\t\treturn OrderByType_Asc, nil\n\tcase \"Desc\":\n\t\treturn OrderByType_Desc, nil\n\t}\n\treturn OrderByType(0), fmt.Errorf(\"not a valid OrderByType string\")\n}\n\nfunc OrderByTypePtr(v OrderByType) *OrderByType { return &v }\nfunc (p *OrderByType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = OrderByType(result.Int64)\n\treturn\n}\n\nfunc (p *OrderByType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype PermissionType int64\n\nconst (\n\t//Can't view details\n\tPermissionType_NoDetail PermissionType = 1\n\t//You can check the details.\n\tPermissionType_Detail PermissionType = 2\n\t//Can be viewed and operated\n\tPermissionType_Operate PermissionType = 3\n)\n\nfunc (p PermissionType) String() string {\n\tswitch p {\n\tcase PermissionType_NoDetail:\n\t\treturn \"NoDetail\"\n\tcase PermissionType_Detail:\n\t\treturn \"Detail\"\n\tcase PermissionType_Operate:\n\t\treturn \"Operate\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc PermissionTypeFromString(s string) (PermissionType, error) {\n\tswitch s {\n\tcase \"NoDetail\":\n\t\treturn PermissionType_NoDetail, nil\n\tcase \"Detail\":\n\t\treturn PermissionType_Detail, nil\n\tcase \"Operate\":\n\t\treturn PermissionType_Operate, nil\n\t}\n\treturn PermissionType(0), fmt.Errorf(\"not a valid PermissionType string\")\n}\n\nfunc PermissionTypePtr(v PermissionType) *PermissionType { return &v }\nfunc (p *PermissionType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = PermissionType(result.Int64)\n\treturn\n}\n\nfunc (p *PermissionType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\n// This enumeration needs to be aligned with the plugin's PluginInterruptType\ntype InterruptType int64\n\nconst (\n\tInterruptType_LocalPlugin  InterruptType = 1\n\tInterruptType_Question     InterruptType = 2\n\tInterruptType_RequireInfos InterruptType = 3\n\tInterruptType_SceneChat    InterruptType = 4\n\tInterruptType_Input        InterruptType = 5\n\tInterruptType_OauthPlugin  InterruptType = 7\n)\n\nfunc (p InterruptType) String() string {\n\tswitch p {\n\tcase InterruptType_LocalPlugin:\n\t\treturn \"LocalPlugin\"\n\tcase InterruptType_Question:\n\t\treturn \"Question\"\n\tcase InterruptType_RequireInfos:\n\t\treturn \"RequireInfos\"\n\tcase InterruptType_SceneChat:\n\t\treturn \"SceneChat\"\n\tcase InterruptType_Input:\n\t\treturn \"Input\"\n\tcase InterruptType_OauthPlugin:\n\t\treturn \"OauthPlugin\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc InterruptTypeFromString(s string) (InterruptType, error) {\n\tswitch s {\n\tcase \"LocalPlugin\":\n\t\treturn InterruptType_LocalPlugin, nil\n\tcase \"Question\":\n\t\treturn InterruptType_Question, nil\n\tcase \"RequireInfos\":\n\t\treturn InterruptType_RequireInfos, nil\n\tcase \"SceneChat\":\n\t\treturn InterruptType_SceneChat, nil\n\tcase \"Input\":\n\t\treturn InterruptType_Input, nil\n\tcase \"OauthPlugin\":\n\t\treturn InterruptType_OauthPlugin, nil\n\t}\n\treturn InterruptType(0), fmt.Errorf(\"not a valid InterruptType string\")\n}\n\nfunc InterruptTypePtr(v InterruptType) *InterruptType { return &v }\nfunc (p *InterruptType) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = InterruptType(result.Int64)\n\treturn\n}\n\nfunc (p *InterruptType) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype WorkflowRunMode int64\n\nconst (\n\tWorkflowRunMode_Sync   WorkflowRunMode = 0\n\tWorkflowRunMode_Stream WorkflowRunMode = 1\n\tWorkflowRunMode_Async  WorkflowRunMode = 2\n)\n\nfunc (p WorkflowRunMode) String() string {\n\tswitch p {\n\tcase WorkflowRunMode_Sync:\n\t\treturn \"Sync\"\n\tcase WorkflowRunMode_Stream:\n\t\treturn \"Stream\"\n\tcase WorkflowRunMode_Async:\n\t\treturn \"Async\"\n\t}\n\treturn \"<UNSET>\"\n}\n\nfunc WorkflowRunModeFromString(s string) (WorkflowRunMode, error) {\n\tswitch s {\n\tcase \"Sync\":\n\t\treturn WorkflowRunMode_Sync, nil\n\tcase \"Stream\":\n\t\treturn WorkflowRunMode_Stream, nil\n\tcase \"Async\":\n\t\treturn WorkflowRunMode_Async, nil\n\t}\n\treturn WorkflowRunMode(0), fmt.Errorf(\"not a valid WorkflowRunMode string\")\n}\n\nfunc WorkflowRunModePtr(v WorkflowRunMode) *WorkflowRunMode { return &v }\nfunc (p *WorkflowRunMode) Scan(value interface{}) (err error) {\n\tvar result sql.NullInt64\n\terr = result.Scan(value)\n\t*p = WorkflowRunMode(result.Int64)\n\treturn\n}\n\nfunc (p *WorkflowRunMode) Value() (driver.Value, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\treturn int64(*p), nil\n}\n\ntype Workflow struct {\n\tWorkflowID string            `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tName       string            `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc       string            `thrift:\"desc,3\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tURL        string            `thrift:\"url,4\" form:\"url\" json:\"url\" query:\"url\"`\n\tIconURI    string            `thrift:\"icon_uri,5\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tStatus     WorkFlowDevStatus `thrift:\"status,6\" form:\"status\" json:\"status\" query:\"status\"`\n\t// Type 1: Official Template\n\tType WorkFlowType `thrift:\"type,7\" form:\"type\" json:\"type\" query:\"type\"`\n\t// Plugin ID for workflow\n\tPluginID   string     `thrift:\"plugin_id,8\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tCreateTime int64      `thrift:\"create_time,9\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\tUpdateTime int64      `thrift:\"update_time,10\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\tSchemaType SchemaType `thrift:\"schema_type,11\" form:\"schema_type\" json:\"schema_type\" query:\"schema_type\"`\n\tStartNode  *Node      `thrift:\"start_node,12,optional\" form:\"start_node\" json:\"start_node,omitempty\" query:\"start_node\"`\n\tTag        *Tag       `thrift:\"tag,13,optional\" form:\"tag\" json:\"tag,omitempty\" query:\"tag\"`\n\t// template creator id\n\tTemplateAuthorID *string `thrift:\"template_author_id,14,optional\" form:\"template_author_id\" json:\"template_author_id,omitempty\" query:\"template_author_id\"`\n\t// template creator nickname\n\tTemplateAuthorName *string `thrift:\"template_author_name,15,optional\" form:\"template_author_name\" json:\"template_author_name,omitempty\" query:\"template_author_name\"`\n\t// template creator avatar\n\tTemplateAuthorPictureURL *string `thrift:\"template_author_picture_url,16,optional\" form:\"template_author_picture_url\" json:\"template_author_picture_url,omitempty\" query:\"template_author_picture_url\"`\n\t// Space ID\n\tSpaceID *string `thrift:\"space_id,17,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n\t// process entry and exit\n\tInterfaceStr *string `thrift:\"interface_str,18,optional\" form:\"interface_str\" json:\"interface_str,omitempty\" query:\"interface_str\"`\n\t// New workflow definition schema\n\tSchemaJSON *string `thrift:\"schema_json,19,optional\" form:\"schema_json\" json:\"schema_json,omitempty\" query:\"schema_json\"`\n\t// Workflow creator information\n\tCreator *Creator `thrift:\"creator,20\" form:\"creator\" json:\"creator\" query:\"creator\"`\n\t// Storage Model\n\tPersistenceModel PersistenceModel `thrift:\"persistence_model,21\" form:\"persistence_model\" json:\"persistence_model\" query:\"persistence_model\"`\n\t// Workflow or imageflow, the default is workflow\n\tFlowMode WorkflowMode `thrift:\"flow_mode,22\" form:\"flow_mode\" json:\"flow_mode\" query:\"flow_mode\"`\n\t// Workflow product review version status\n\tProductDraftStatus ProductDraftStatus `thrift:\"product_draft_status,23\" form:\"product_draft_status\" json:\"product_draft_status\" query:\"product_draft_status\"`\n\t// {\"project_id\":\"xxx\",\"flow_id\":xxxx}\n\tExternalFlowInfo *string `thrift:\"external_flow_info,24,optional\" form:\"external_flow_info\" json:\"external_flow_info,omitempty\" query:\"external_flow_info\"`\n\t// Workflow Multiplayer Collaboration Button Status\n\tCollaboratorMode CollaboratorMode `thrift:\"collaborator_mode,25\" form:\"collaborator_mode\" json:\"collaborator_mode\" query:\"collaborator_mode\"`\n\tCheckResult      []*CheckResult   `thrift:\"check_result,26\" form:\"check_result\" json:\"check_result\" query:\"check_result\"`\n\tProjectID        *string          `thrift:\"project_id,27,optional\" form:\"project_id\" json:\"project_id,omitempty\" query:\"project_id\"`\n\t// Only the workflow under the project is available.\n\tDevPluginID *string `thrift:\"dev_plugin_id,28,optional\" form:\"dev_plugin_id\" json:\"dev_plugin_id,omitempty\" query:\"dev_plugin_id\"`\n}\n\nfunc NewWorkflow() *Workflow {\n\treturn &Workflow{}\n}\n\nfunc (p *Workflow) InitDefault() {\n}\n\nfunc (p *Workflow) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *Workflow) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *Workflow) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *Workflow) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *Workflow) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *Workflow) GetStatus() (v WorkFlowDevStatus) {\n\treturn p.Status\n}\n\nfunc (p *Workflow) GetType() (v WorkFlowType) {\n\treturn p.Type\n}\n\nfunc (p *Workflow) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *Workflow) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *Workflow) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nfunc (p *Workflow) GetSchemaType() (v SchemaType) {\n\treturn p.SchemaType\n}\n\nvar Workflow_StartNode_DEFAULT *Node\n\nfunc (p *Workflow) GetStartNode() (v *Node) {\n\tif !p.IsSetStartNode() {\n\t\treturn Workflow_StartNode_DEFAULT\n\t}\n\treturn p.StartNode\n}\n\nvar Workflow_Tag_DEFAULT Tag\n\nfunc (p *Workflow) GetTag() (v Tag) {\n\tif !p.IsSetTag() {\n\t\treturn Workflow_Tag_DEFAULT\n\t}\n\treturn *p.Tag\n}\n\nvar Workflow_TemplateAuthorID_DEFAULT string\n\nfunc (p *Workflow) GetTemplateAuthorID() (v string) {\n\tif !p.IsSetTemplateAuthorID() {\n\t\treturn Workflow_TemplateAuthorID_DEFAULT\n\t}\n\treturn *p.TemplateAuthorID\n}\n\nvar Workflow_TemplateAuthorName_DEFAULT string\n\nfunc (p *Workflow) GetTemplateAuthorName() (v string) {\n\tif !p.IsSetTemplateAuthorName() {\n\t\treturn Workflow_TemplateAuthorName_DEFAULT\n\t}\n\treturn *p.TemplateAuthorName\n}\n\nvar Workflow_TemplateAuthorPictureURL_DEFAULT string\n\nfunc (p *Workflow) GetTemplateAuthorPictureURL() (v string) {\n\tif !p.IsSetTemplateAuthorPictureURL() {\n\t\treturn Workflow_TemplateAuthorPictureURL_DEFAULT\n\t}\n\treturn *p.TemplateAuthorPictureURL\n}\n\nvar Workflow_SpaceID_DEFAULT string\n\nfunc (p *Workflow) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn Workflow_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar Workflow_InterfaceStr_DEFAULT string\n\nfunc (p *Workflow) GetInterfaceStr() (v string) {\n\tif !p.IsSetInterfaceStr() {\n\t\treturn Workflow_InterfaceStr_DEFAULT\n\t}\n\treturn *p.InterfaceStr\n}\n\nvar Workflow_SchemaJSON_DEFAULT string\n\nfunc (p *Workflow) GetSchemaJSON() (v string) {\n\tif !p.IsSetSchemaJSON() {\n\t\treturn Workflow_SchemaJSON_DEFAULT\n\t}\n\treturn *p.SchemaJSON\n}\n\nvar Workflow_Creator_DEFAULT *Creator\n\nfunc (p *Workflow) GetCreator() (v *Creator) {\n\tif !p.IsSetCreator() {\n\t\treturn Workflow_Creator_DEFAULT\n\t}\n\treturn p.Creator\n}\n\nfunc (p *Workflow) GetPersistenceModel() (v PersistenceModel) {\n\treturn p.PersistenceModel\n}\n\nfunc (p *Workflow) GetFlowMode() (v WorkflowMode) {\n\treturn p.FlowMode\n}\n\nfunc (p *Workflow) GetProductDraftStatus() (v ProductDraftStatus) {\n\treturn p.ProductDraftStatus\n}\n\nvar Workflow_ExternalFlowInfo_DEFAULT string\n\nfunc (p *Workflow) GetExternalFlowInfo() (v string) {\n\tif !p.IsSetExternalFlowInfo() {\n\t\treturn Workflow_ExternalFlowInfo_DEFAULT\n\t}\n\treturn *p.ExternalFlowInfo\n}\n\nfunc (p *Workflow) GetCollaboratorMode() (v CollaboratorMode) {\n\treturn p.CollaboratorMode\n}\n\nfunc (p *Workflow) GetCheckResult() (v []*CheckResult) {\n\treturn p.CheckResult\n}\n\nvar Workflow_ProjectID_DEFAULT string\n\nfunc (p *Workflow) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn Workflow_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar Workflow_DevPluginID_DEFAULT string\n\nfunc (p *Workflow) GetDevPluginID() (v string) {\n\tif !p.IsSetDevPluginID() {\n\t\treturn Workflow_DevPluginID_DEFAULT\n\t}\n\treturn *p.DevPluginID\n}\n\nvar fieldIDToName_Workflow = map[int16]string{\n\t1:  \"workflow_id\",\n\t2:  \"name\",\n\t3:  \"desc\",\n\t4:  \"url\",\n\t5:  \"icon_uri\",\n\t6:  \"status\",\n\t7:  \"type\",\n\t8:  \"plugin_id\",\n\t9:  \"create_time\",\n\t10: \"update_time\",\n\t11: \"schema_type\",\n\t12: \"start_node\",\n\t13: \"tag\",\n\t14: \"template_author_id\",\n\t15: \"template_author_name\",\n\t16: \"template_author_picture_url\",\n\t17: \"space_id\",\n\t18: \"interface_str\",\n\t19: \"schema_json\",\n\t20: \"creator\",\n\t21: \"persistence_model\",\n\t22: \"flow_mode\",\n\t23: \"product_draft_status\",\n\t24: \"external_flow_info\",\n\t25: \"collaborator_mode\",\n\t26: \"check_result\",\n\t27: \"project_id\",\n\t28: \"dev_plugin_id\",\n}\n\nfunc (p *Workflow) IsSetStartNode() bool {\n\treturn p.StartNode != nil\n}\n\nfunc (p *Workflow) IsSetTag() bool {\n\treturn p.Tag != nil\n}\n\nfunc (p *Workflow) IsSetTemplateAuthorID() bool {\n\treturn p.TemplateAuthorID != nil\n}\n\nfunc (p *Workflow) IsSetTemplateAuthorName() bool {\n\treturn p.TemplateAuthorName != nil\n}\n\nfunc (p *Workflow) IsSetTemplateAuthorPictureURL() bool {\n\treturn p.TemplateAuthorPictureURL != nil\n}\n\nfunc (p *Workflow) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *Workflow) IsSetInterfaceStr() bool {\n\treturn p.InterfaceStr != nil\n}\n\nfunc (p *Workflow) IsSetSchemaJSON() bool {\n\treturn p.SchemaJSON != nil\n}\n\nfunc (p *Workflow) IsSetCreator() bool {\n\treturn p.Creator != nil\n}\n\nfunc (p *Workflow) IsSetExternalFlowInfo() bool {\n\treturn p.ExternalFlowInfo != nil\n}\n\nfunc (p *Workflow) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *Workflow) IsSetDevPluginID() bool {\n\treturn p.DevPluginID != nil\n}\n\nfunc (p *Workflow) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 25:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField25(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 26:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField26(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 27:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField27(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 28:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField28(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Workflow[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Workflow) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field WorkFlowDevStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkFlowDevStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field WorkFlowType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkFlowType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field SchemaType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SchemaType(v)\n\t}\n\tp.SchemaType = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField12(iprot thrift.TProtocol) error {\n\t_field := NewNode()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.StartNode = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *Tag\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := Tag(v)\n\t\t_field = &tmp\n\t}\n\tp.Tag = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TemplateAuthorID = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TemplateAuthorName = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TemplateAuthorPictureURL = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.InterfaceStr = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SchemaJSON = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField20(iprot thrift.TProtocol) error {\n\t_field := NewCreator()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Creator = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field PersistenceModel\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = PersistenceModel(v)\n\t}\n\tp.PersistenceModel = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkflowMode(v)\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field ProductDraftStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ProductDraftStatus(v)\n\t}\n\tp.ProductDraftStatus = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField24(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExternalFlowInfo = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField25(iprot thrift.TProtocol) error {\n\n\tvar _field CollaboratorMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = CollaboratorMode(v)\n\t}\n\tp.CollaboratorMode = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField26(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*CheckResult, 0, size)\n\tvalues := make([]CheckResult, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CheckResult = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField27(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *Workflow) ReadField28(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DevPluginID = _field\n\treturn nil\n}\n\nfunc (p *Workflow) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Workflow\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField25(oprot); err != nil {\n\t\t\tfieldId = 25\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField26(oprot); err != nil {\n\t\t\tfieldId = 26\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField27(oprot); err != nil {\n\t\t\tfieldId = 27\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField28(oprot); err != nil {\n\t\t\tfieldId = 28\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Workflow) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Workflow) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Workflow) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Workflow) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Workflow) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Workflow) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Workflow) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Workflow) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *Workflow) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *Workflow) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *Workflow) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"schema_type\", thrift.I32, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SchemaType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *Workflow) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStartNode() {\n\t\tif err = oprot.WriteFieldBegin(\"start_node\", thrift.STRUCT, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.StartNode.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *Workflow) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTag() {\n\t\tif err = oprot.WriteFieldBegin(\"tag\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Tag)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *Workflow) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTemplateAuthorID() {\n\t\tif err = oprot.WriteFieldBegin(\"template_author_id\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TemplateAuthorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *Workflow) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTemplateAuthorName() {\n\t\tif err = oprot.WriteFieldBegin(\"template_author_name\", thrift.STRING, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TemplateAuthorName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *Workflow) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTemplateAuthorPictureURL() {\n\t\tif err = oprot.WriteFieldBegin(\"template_author_picture_url\", thrift.STRING, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TemplateAuthorPictureURL); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *Workflow) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *Workflow) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInterfaceStr() {\n\t\tif err = oprot.WriteFieldBegin(\"interface_str\", thrift.STRING, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.InterfaceStr); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *Workflow) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSchemaJSON() {\n\t\tif err = oprot.WriteFieldBegin(\"schema_json\", thrift.STRING, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SchemaJSON); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *Workflow) writeField20(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator\", thrift.STRUCT, 20); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Creator.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *Workflow) writeField21(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"persistence_model\", thrift.I32, 21); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PersistenceModel)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *Workflow) writeField22(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I32, 22); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FlowMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *Workflow) writeField23(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"product_draft_status\", thrift.I32, 23); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ProductDraftStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *Workflow) writeField24(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExternalFlowInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"external_flow_info\", thrift.STRING, 24); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExternalFlowInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\nfunc (p *Workflow) writeField25(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"collaborator_mode\", thrift.I32, 25); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.CollaboratorMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 end error: \", p), err)\n}\nfunc (p *Workflow) writeField26(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"check_result\", thrift.LIST, 26); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.CheckResult)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.CheckResult {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 26 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 26 end error: \", p), err)\n}\nfunc (p *Workflow) writeField27(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 27); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 27 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 27 end error: \", p), err)\n}\nfunc (p *Workflow) writeField28(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDevPluginID() {\n\t\tif err = oprot.WriteFieldBegin(\"dev_plugin_id\", thrift.STRING, 28); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DevPluginID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 28 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 28 end error: \", p), err)\n}\n\nfunc (p *Workflow) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Workflow(%+v)\", *p)\n\n}\n\ntype CheckResult struct {\n\t// check type\n\tType CheckType `thrift:\"type,1\" form:\"type\" json:\"type\" query:\"type\"`\n\t// Whether to pass\n\tIsPass bool `thrift:\"is_pass,2\" form:\"is_pass\" json:\"is_pass\" query:\"is_pass\"`\n\t// Reason for not passing\n\tReason string `thrift:\"reason,3\" form:\"reason\" json:\"reason\" query:\"reason\"`\n}\n\nfunc NewCheckResult() *CheckResult {\n\treturn &CheckResult{}\n}\n\nfunc (p *CheckResult) InitDefault() {\n}\n\nfunc (p *CheckResult) GetType() (v CheckType) {\n\treturn p.Type\n}\n\nfunc (p *CheckResult) GetIsPass() (v bool) {\n\treturn p.IsPass\n}\n\nfunc (p *CheckResult) GetReason() (v string) {\n\treturn p.Reason\n}\n\nvar fieldIDToName_CheckResult = map[int16]string{\n\t1: \"type\",\n\t2: \"is_pass\",\n\t3: \"reason\",\n}\n\nfunc (p *CheckResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CheckResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CheckResult) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field CheckType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = CheckType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *CheckResult) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsPass = _field\n\treturn nil\n}\nfunc (p *CheckResult) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Reason = _field\n\treturn nil\n}\n\nfunc (p *CheckResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CheckResult\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CheckResult) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CheckResult) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_pass\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsPass); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CheckResult) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"reason\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Reason); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *CheckResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CheckResult(%+v)\", *p)\n\n}\n\ntype Creator struct {\n\tID        string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tName      string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tAvatarURL string `thrift:\"avatar_url,3\" form:\"avatar_url\" json:\"avatar_url\" query:\"avatar_url\"`\n\t// Did you create it yourself?\n\tSelf bool `thrift:\"self,4\" form:\"self\" json:\"self\" query:\"self\"`\n}\n\nfunc NewCreator() *Creator {\n\treturn &Creator{}\n}\n\nfunc (p *Creator) InitDefault() {\n}\n\nfunc (p *Creator) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *Creator) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *Creator) GetAvatarURL() (v string) {\n\treturn p.AvatarURL\n}\n\nfunc (p *Creator) GetSelf() (v bool) {\n\treturn p.Self\n}\n\nvar fieldIDToName_Creator = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"avatar_url\",\n\t4: \"self\",\n}\n\nfunc (p *Creator) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Creator[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Creator) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AvatarURL = _field\n\treturn nil\n}\nfunc (p *Creator) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Self = _field\n\treturn nil\n}\n\nfunc (p *Creator) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Creator\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Creator) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Creator) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Creator) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"avatar_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AvatarURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Creator) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"self\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Self); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *Creator) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Creator(%+v)\", *p)\n\n}\n\ntype Param struct {\n\tKey      []string  `thrift:\"key,1\" form:\"key\" json:\"key\" query:\"key\"`\n\tDesc     string    `thrift:\"desc,2\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tType     InputType `thrift:\"type,3\" form:\"type\" json:\"type\" query:\"type\"`\n\tRequired bool      `thrift:\"required,4\" form:\"required\" json:\"required\" query:\"required\"`\n\tValue    string    `thrift:\"value,5\" form:\"value\" json:\"value\" query:\"value\"`\n\t// Requirements 1 Do not allow deletion 2 Do not allow name change 3 Anything can be modified 4 Only display, all are not allowed to be changed\n\tRequirement ParamRequirementType `thrift:\"requirement,6\" form:\"requirement\" json:\"requirement\" query:\"requirement\"`\n\tFromNodeID  *string              `thrift:\"from_node_id,7,optional\" form:\"from_node_id\" json:\"from_node_id,omitempty\" query:\"from_node_id\"`\n\tFromOutput  []string             `thrift:\"from_output,8,optional\" form:\"from_output\" json:\"from_output,omitempty\" query:\"from_output\"`\n}\n\nfunc NewParam() *Param {\n\treturn &Param{}\n}\n\nfunc (p *Param) InitDefault() {\n}\n\nfunc (p *Param) GetKey() (v []string) {\n\treturn p.Key\n}\n\nfunc (p *Param) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *Param) GetType() (v InputType) {\n\treturn p.Type\n}\n\nfunc (p *Param) GetRequired() (v bool) {\n\treturn p.Required\n}\n\nfunc (p *Param) GetValue() (v string) {\n\treturn p.Value\n}\n\nfunc (p *Param) GetRequirement() (v ParamRequirementType) {\n\treturn p.Requirement\n}\n\nvar Param_FromNodeID_DEFAULT string\n\nfunc (p *Param) GetFromNodeID() (v string) {\n\tif !p.IsSetFromNodeID() {\n\t\treturn Param_FromNodeID_DEFAULT\n\t}\n\treturn *p.FromNodeID\n}\n\nvar Param_FromOutput_DEFAULT []string\n\nfunc (p *Param) GetFromOutput() (v []string) {\n\tif !p.IsSetFromOutput() {\n\t\treturn Param_FromOutput_DEFAULT\n\t}\n\treturn p.FromOutput\n}\n\nvar fieldIDToName_Param = map[int16]string{\n\t1: \"key\",\n\t2: \"desc\",\n\t3: \"type\",\n\t4: \"required\",\n\t5: \"value\",\n\t6: \"requirement\",\n\t7: \"from_node_id\",\n\t8: \"from_output\",\n}\n\nfunc (p *Param) IsSetFromNodeID() bool {\n\treturn p.FromNodeID != nil\n}\n\nfunc (p *Param) IsSetFromOutput() bool {\n\treturn p.FromOutput != nil\n}\n\nfunc (p *Param) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Param[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Param) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Key = _field\n\treturn nil\n}\nfunc (p *Param) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *Param) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field InputType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = InputType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *Param) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Required = _field\n\treturn nil\n}\nfunc (p *Param) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *Param) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field ParamRequirementType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ParamRequirementType(v)\n\t}\n\tp.Requirement = _field\n\treturn nil\n}\nfunc (p *Param) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FromNodeID = _field\n\treturn nil\n}\nfunc (p *Param) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FromOutput = _field\n\treturn nil\n}\n\nfunc (p *Param) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Param\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Param) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"key\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Key)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Key {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Param) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Param) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Param) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"required\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Required); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Param) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"value\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Value); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Param) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"requirement\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Requirement)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Param) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFromNodeID() {\n\t\tif err = oprot.WriteFieldBegin(\"from_node_id\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FromNodeID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Param) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFromOutput() {\n\t\tif err = oprot.WriteFieldBegin(\"from_output\", thrift.LIST, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.FromOutput)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FromOutput {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *Param) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Param(%+v)\", *p)\n\n}\n\ntype APIParam struct {\n\tPluginID      string `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tAPIID         string `thrift:\"api_id,2\" form:\"api_id\" json:\"api_id\" query:\"api_id\"`\n\tPluginVersion string `thrift:\"plugin_version,3\" form:\"plugin_version\" json:\"plugin_version\" query:\"plugin_version\"`\n\tPluginName    string `thrift:\"plugin_name,4\" form:\"plugin_name\" json:\"plugin_name\" query:\"plugin_name\"`\n\tAPIName       string `thrift:\"api_name,5\" form:\"api_name\" json:\"api_name\" query:\"api_name\"`\n\tOutDocLink    string `thrift:\"out_doc_link,6\" form:\"out_doc_link\" json:\"out_doc_link\" query:\"out_doc_link\"`\n\tTips          string `thrift:\"tips,7\" form:\"tips\" json:\"tips\" query:\"tips\"`\n}\n\nfunc NewAPIParam() *APIParam {\n\treturn &APIParam{}\n}\n\nfunc (p *APIParam) InitDefault() {\n}\n\nfunc (p *APIParam) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *APIParam) GetAPIID() (v string) {\n\treturn p.APIID\n}\n\nfunc (p *APIParam) GetPluginVersion() (v string) {\n\treturn p.PluginVersion\n}\n\nfunc (p *APIParam) GetPluginName() (v string) {\n\treturn p.PluginName\n}\n\nfunc (p *APIParam) GetAPIName() (v string) {\n\treturn p.APIName\n}\n\nfunc (p *APIParam) GetOutDocLink() (v string) {\n\treturn p.OutDocLink\n}\n\nfunc (p *APIParam) GetTips() (v string) {\n\treturn p.Tips\n}\n\nvar fieldIDToName_APIParam = map[int16]string{\n\t1: \"plugin_id\",\n\t2: \"api_id\",\n\t3: \"plugin_version\",\n\t4: \"plugin_name\",\n\t5: \"api_name\",\n\t6: \"out_doc_link\",\n\t7: \"tips\",\n}\n\nfunc (p *APIParam) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_APIParam[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *APIParam) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *APIParam) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *APIParam) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginVersion = _field\n\treturn nil\n}\nfunc (p *APIParam) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginName = _field\n\treturn nil\n}\nfunc (p *APIParam) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIName = _field\n\treturn nil\n}\nfunc (p *APIParam) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OutDocLink = _field\n\treturn nil\n}\nfunc (p *APIParam) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Tips = _field\n\treturn nil\n}\n\nfunc (p *APIParam) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"APIParam\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *APIParam) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *APIParam) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *APIParam) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_version\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *APIParam) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *APIParam) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_name\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *APIParam) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"out_doc_link\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.OutDocLink); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *APIParam) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tips\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Tips); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *APIParam) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"APIParam(%+v)\", *p)\n\n}\n\ntype CodeParam struct {\n\tCodeSnippet string `thrift:\"code_snippet,1\" form:\"code_snippet\" json:\"code_snippet\" query:\"code_snippet\"`\n}\n\nfunc NewCodeParam() *CodeParam {\n\treturn &CodeParam{}\n}\n\nfunc (p *CodeParam) InitDefault() {\n}\n\nfunc (p *CodeParam) GetCodeSnippet() (v string) {\n\treturn p.CodeSnippet\n}\n\nvar fieldIDToName_CodeParam = map[int16]string{\n\t1: \"code_snippet\",\n}\n\nfunc (p *CodeParam) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CodeParam[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CodeParam) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CodeSnippet = _field\n\treturn nil\n}\n\nfunc (p *CodeParam) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CodeParam\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CodeParam) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code_snippet\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CodeSnippet); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *CodeParam) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CodeParam(%+v)\", *p)\n\n}\n\ntype LLMParam struct {\n\tModelType   int32   `thrift:\"model_type,1\" form:\"model_type\" json:\"model_type\" query:\"model_type\"`\n\tTemperature float64 `thrift:\"temperature,2\" form:\"temperature\" json:\"temperature\" query:\"temperature\"`\n\tPrompt      string  `thrift:\"prompt,3\" form:\"prompt\" json:\"prompt\" query:\"prompt\"`\n\tModelName   string  `thrift:\"model_name,4\" form:\"model_name\" json:\"model_name\" query:\"model_name\"`\n}\n\nfunc NewLLMParam() *LLMParam {\n\treturn &LLMParam{}\n}\n\nfunc (p *LLMParam) InitDefault() {\n}\n\nfunc (p *LLMParam) GetModelType() (v int32) {\n\treturn p.ModelType\n}\n\nfunc (p *LLMParam) GetTemperature() (v float64) {\n\treturn p.Temperature\n}\n\nfunc (p *LLMParam) GetPrompt() (v string) {\n\treturn p.Prompt\n}\n\nfunc (p *LLMParam) GetModelName() (v string) {\n\treturn p.ModelName\n}\n\nvar fieldIDToName_LLMParam = map[int16]string{\n\t1: \"model_type\",\n\t2: \"temperature\",\n\t3: \"prompt\",\n\t4: \"model_name\",\n}\n\nfunc (p *LLMParam) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_LLMParam[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *LLMParam) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelType = _field\n\treturn nil\n}\nfunc (p *LLMParam) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Temperature = _field\n\treturn nil\n}\nfunc (p *LLMParam) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Prompt = _field\n\treturn nil\n}\nfunc (p *LLMParam) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ModelName = _field\n\treturn nil\n}\n\nfunc (p *LLMParam) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"LLMParam\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *LLMParam) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.ModelType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *LLMParam) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"temperature\", thrift.DOUBLE, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.Temperature); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *LLMParam) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"prompt\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Prompt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *LLMParam) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"model_name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ModelName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *LLMParam) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"LLMParam(%+v)\", *p)\n\n}\n\ntype DatasetParam struct {\n\tDatasetList []string `thrift:\"dataset_list,1\" form:\"dataset_list\" json:\"dataset_list\" query:\"dataset_list\"`\n}\n\nfunc NewDatasetParam() *DatasetParam {\n\treturn &DatasetParam{}\n}\n\nfunc (p *DatasetParam) InitDefault() {\n}\n\nfunc (p *DatasetParam) GetDatasetList() (v []string) {\n\treturn p.DatasetList\n}\n\nvar fieldIDToName_DatasetParam = map[int16]string{\n\t1: \"dataset_list\",\n}\n\nfunc (p *DatasetParam) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetParam[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetParam) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DatasetList = _field\n\treturn nil\n}\n\nfunc (p *DatasetParam) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatasetParam\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetParam) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.DatasetList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DatasetList {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DatasetParam) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetParam(%+v)\", *p)\n\n}\n\ntype IfParam struct {\n\tIfBranch   *IfBranch `thrift:\"if_branch,1,optional\" form:\"if_branch\" json:\"if_branch,omitempty\" query:\"if_branch\"`\n\tElseBranch *IfBranch `thrift:\"else_branch,2,optional\" form:\"else_branch\" json:\"else_branch,omitempty\" query:\"else_branch\"`\n}\n\nfunc NewIfParam() *IfParam {\n\treturn &IfParam{}\n}\n\nfunc (p *IfParam) InitDefault() {\n}\n\nvar IfParam_IfBranch_DEFAULT *IfBranch\n\nfunc (p *IfParam) GetIfBranch() (v *IfBranch) {\n\tif !p.IsSetIfBranch() {\n\t\treturn IfParam_IfBranch_DEFAULT\n\t}\n\treturn p.IfBranch\n}\n\nvar IfParam_ElseBranch_DEFAULT *IfBranch\n\nfunc (p *IfParam) GetElseBranch() (v *IfBranch) {\n\tif !p.IsSetElseBranch() {\n\t\treturn IfParam_ElseBranch_DEFAULT\n\t}\n\treturn p.ElseBranch\n}\n\nvar fieldIDToName_IfParam = map[int16]string{\n\t1: \"if_branch\",\n\t2: \"else_branch\",\n}\n\nfunc (p *IfParam) IsSetIfBranch() bool {\n\treturn p.IfBranch != nil\n}\n\nfunc (p *IfParam) IsSetElseBranch() bool {\n\treturn p.ElseBranch != nil\n}\n\nfunc (p *IfParam) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IfParam[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IfParam) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewIfBranch()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.IfBranch = _field\n\treturn nil\n}\nfunc (p *IfParam) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewIfBranch()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ElseBranch = _field\n\treturn nil\n}\n\nfunc (p *IfParam) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"IfParam\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IfParam) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIfBranch() {\n\t\tif err = oprot.WriteFieldBegin(\"if_branch\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.IfBranch.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *IfParam) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetElseBranch() {\n\t\tif err = oprot.WriteFieldBegin(\"else_branch\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ElseBranch.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *IfParam) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IfParam(%+v)\", *p)\n\n}\n\ntype IfBranch struct {\n\t// Conditions for this branch\n\tIfConditions []*IfCondition `thrift:\"if_conditions,1,optional\" form:\"if_conditions\" json:\"if_conditions,omitempty\" query:\"if_conditions\"`\n\t// The relationship between the conditions of this branch\n\tIfConditionRelation *IfConditionRelation `thrift:\"if_condition_relation,2,optional\" form:\"if_condition_relation\" json:\"if_condition_relation,omitempty\" query:\"if_condition_relation\"`\n\t// The next node corresponding to this branch\n\tNextNodeID []string `thrift:\"next_node_id,3,optional\" form:\"next_node_id\" json:\"next_node_id,omitempty\" query:\"next_node_id\"`\n}\n\nfunc NewIfBranch() *IfBranch {\n\treturn &IfBranch{}\n}\n\nfunc (p *IfBranch) InitDefault() {\n}\n\nvar IfBranch_IfConditions_DEFAULT []*IfCondition\n\nfunc (p *IfBranch) GetIfConditions() (v []*IfCondition) {\n\tif !p.IsSetIfConditions() {\n\t\treturn IfBranch_IfConditions_DEFAULT\n\t}\n\treturn p.IfConditions\n}\n\nvar IfBranch_IfConditionRelation_DEFAULT IfConditionRelation\n\nfunc (p *IfBranch) GetIfConditionRelation() (v IfConditionRelation) {\n\tif !p.IsSetIfConditionRelation() {\n\t\treturn IfBranch_IfConditionRelation_DEFAULT\n\t}\n\treturn *p.IfConditionRelation\n}\n\nvar IfBranch_NextNodeID_DEFAULT []string\n\nfunc (p *IfBranch) GetNextNodeID() (v []string) {\n\tif !p.IsSetNextNodeID() {\n\t\treturn IfBranch_NextNodeID_DEFAULT\n\t}\n\treturn p.NextNodeID\n}\n\nvar fieldIDToName_IfBranch = map[int16]string{\n\t1: \"if_conditions\",\n\t2: \"if_condition_relation\",\n\t3: \"next_node_id\",\n}\n\nfunc (p *IfBranch) IsSetIfConditions() bool {\n\treturn p.IfConditions != nil\n}\n\nfunc (p *IfBranch) IsSetIfConditionRelation() bool {\n\treturn p.IfConditionRelation != nil\n}\n\nfunc (p *IfBranch) IsSetNextNodeID() bool {\n\treturn p.NextNodeID != nil\n}\n\nfunc (p *IfBranch) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IfBranch[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *IfBranch) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*IfCondition, 0, size)\n\tvalues := make([]IfCondition, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.IfConditions = _field\n\treturn nil\n}\nfunc (p *IfBranch) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *IfConditionRelation\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := IfConditionRelation(v)\n\t\t_field = &tmp\n\t}\n\tp.IfConditionRelation = _field\n\treturn nil\n}\nfunc (p *IfBranch) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NextNodeID = _field\n\treturn nil\n}\n\nfunc (p *IfBranch) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"IfBranch\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IfBranch) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIfConditions() {\n\t\tif err = oprot.WriteFieldBegin(\"if_conditions\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.IfConditions)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.IfConditions {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *IfBranch) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIfConditionRelation() {\n\t\tif err = oprot.WriteFieldBegin(\"if_condition_relation\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.IfConditionRelation)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *IfBranch) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNextNodeID() {\n\t\tif err = oprot.WriteFieldBegin(\"next_node_id\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.NextNodeID)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.NextNodeID {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *IfBranch) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IfBranch(%+v)\", *p)\n\n}\n\ntype IfCondition struct {\n\tFirstParameter  *Parameter    `thrift:\"first_parameter,1,required\" form:\"first_parameter,required\" json:\"first_parameter,required\" query:\"first_parameter,required\"`\n\tCondition       ConditionType `thrift:\"condition,2,required\" form:\"condition,required\" json:\"condition,required\" query:\"condition,required\"`\n\tSecondParameter *Parameter    `thrift:\"second_parameter,3,required\" form:\"second_parameter,required\" json:\"second_parameter,required\" query:\"second_parameter,required\"`\n}\n\nfunc NewIfCondition() *IfCondition {\n\treturn &IfCondition{}\n}\n\nfunc (p *IfCondition) InitDefault() {\n}\n\nvar IfCondition_FirstParameter_DEFAULT *Parameter\n\nfunc (p *IfCondition) GetFirstParameter() (v *Parameter) {\n\tif !p.IsSetFirstParameter() {\n\t\treturn IfCondition_FirstParameter_DEFAULT\n\t}\n\treturn p.FirstParameter\n}\n\nfunc (p *IfCondition) GetCondition() (v ConditionType) {\n\treturn p.Condition\n}\n\nvar IfCondition_SecondParameter_DEFAULT *Parameter\n\nfunc (p *IfCondition) GetSecondParameter() (v *Parameter) {\n\tif !p.IsSetSecondParameter() {\n\t\treturn IfCondition_SecondParameter_DEFAULT\n\t}\n\treturn p.SecondParameter\n}\n\nvar fieldIDToName_IfCondition = map[int16]string{\n\t1: \"first_parameter\",\n\t2: \"condition\",\n\t3: \"second_parameter\",\n}\n\nfunc (p *IfCondition) IsSetFirstParameter() bool {\n\treturn p.FirstParameter != nil\n}\n\nfunc (p *IfCondition) IsSetSecondParameter() bool {\n\treturn p.SecondParameter != nil\n}\n\nfunc (p *IfCondition) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetFirstParameter bool = false\n\tvar issetCondition bool = false\n\tvar issetSecondParameter bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetFirstParameter = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCondition = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSecondParameter = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetFirstParameter {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCondition {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSecondParameter {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_IfCondition[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_IfCondition[fieldId]))\n}\n\nfunc (p *IfCondition) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewParameter()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FirstParameter = _field\n\treturn nil\n}\nfunc (p *IfCondition) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field ConditionType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ConditionType(v)\n\t}\n\tp.Condition = _field\n\treturn nil\n}\nfunc (p *IfCondition) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewParameter()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SecondParameter = _field\n\treturn nil\n}\n\nfunc (p *IfCondition) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"IfCondition\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *IfCondition) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"first_parameter\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.FirstParameter.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *IfCondition) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"condition\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Condition)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *IfCondition) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"second_parameter\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.SecondParameter.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *IfCondition) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"IfCondition(%+v)\", *p)\n\n}\n\ntype LayOut struct {\n\tX float64 `thrift:\"x,1\" form:\"x\" json:\"x\" query:\"x\"`\n\tY float64 `thrift:\"y,2\" form:\"y\" json:\"y\" query:\"y\"`\n}\n\nfunc NewLayOut() *LayOut {\n\treturn &LayOut{}\n}\n\nfunc (p *LayOut) InitDefault() {\n}\n\nfunc (p *LayOut) GetX() (v float64) {\n\treturn p.X\n}\n\nfunc (p *LayOut) GetY() (v float64) {\n\treturn p.Y\n}\n\nvar fieldIDToName_LayOut = map[int16]string{\n\t1: \"x\",\n\t2: \"y\",\n}\n\nfunc (p *LayOut) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_LayOut[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *LayOut) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.X = _field\n\treturn nil\n}\nfunc (p *LayOut) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Y = _field\n\treturn nil\n}\n\nfunc (p *LayOut) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"LayOut\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *LayOut) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"x\", thrift.DOUBLE, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.X); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *LayOut) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"y\", thrift.DOUBLE, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteDouble(p.Y); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *LayOut) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"LayOut(%+v)\", *p)\n\n}\n\ntype TerminatePlan struct {\n\t//End method\n\tPlan    TerminatePlanType `thrift:\"plan,1\" form:\"plan\" json:\"plan\" query:\"plan\"`\n\tContent string            `thrift:\"content,2\" form:\"content\" json:\"content\" query:\"content\"`\n}\n\nfunc NewTerminatePlan() *TerminatePlan {\n\treturn &TerminatePlan{}\n}\n\nfunc (p *TerminatePlan) InitDefault() {\n}\n\nfunc (p *TerminatePlan) GetPlan() (v TerminatePlanType) {\n\treturn p.Plan\n}\n\nfunc (p *TerminatePlan) GetContent() (v string) {\n\treturn p.Content\n}\n\nvar fieldIDToName_TerminatePlan = map[int16]string{\n\t1: \"plan\",\n\t2: \"content\",\n}\n\nfunc (p *TerminatePlan) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TerminatePlan[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TerminatePlan) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field TerminatePlanType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = TerminatePlanType(v)\n\t}\n\tp.Plan = _field\n\treturn nil\n}\nfunc (p *TerminatePlan) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\n\nfunc (p *TerminatePlan) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TerminatePlan\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TerminatePlan) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plan\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Plan)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TerminatePlan) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"content\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *TerminatePlan) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TerminatePlan(%+v)\", *p)\n\n}\n\ntype NodeParam struct {\n\t// Enter parameter list, support multi-level; support mapping\n\tInputList []*Param `thrift:\"input_list,1,optional\" form:\"input_list\" json:\"input_list,omitempty\" query:\"input_list\"`\n\t// Output parameter list, support multi-level\n\tOutputList []*Param `thrift:\"output_list,2,optional\" form:\"output_list\" json:\"output_list,omitempty\" query:\"output_list\"`\n\t// If it is an API type Node, plug-in name, API name, plug-in version, API description\n\tAPIParam *APIParam `thrift:\"api_param,3,optional\" form:\"api_param\" json:\"api_param,omitempty\" query:\"api_param\"`\n\t// If it is a code snippet, include the code content\n\tCodeParam *CodeParam `thrift:\"code_param,4,optional\" form:\"code_param\" json:\"code_param,omitempty\" query:\"code_param\"`\n\t// If it is a model, include the basic information of the model\n\tLlmParam *LLMParam `thrift:\"llm_param,5,optional\" form:\"llm_param\" json:\"llm_param,omitempty\" query:\"llm_param\"`\n\t// If it is a dataset, select a fragment of the dataset\n\tDatasetParam *DatasetParam `thrift:\"dataset_param,6,optional\" form:\"dataset_param\" json:\"dataset_param,omitempty\" query:\"dataset_param\"`\n\t// End node, how to end\n\tTerminatePlan *TerminatePlan `thrift:\"terminate_plan,7,optional\" form:\"terminate_plan\" json:\"terminate_plan,omitempty\" query:\"terminate_plan\"`\n\t// (New) input parameter list\n\tInputParameters []*Parameter `thrift:\"input_parameters,8,optional\" form:\"input_parameters\" json:\"input_parameters,omitempty\" query:\"input_parameters\"`\n\t// (New) Output parameter list\n\tOutputParameters []*Parameter `thrift:\"output_parameters,9,optional\" form:\"output_parameters\" json:\"output_parameters,omitempty\" query:\"output_parameters\"`\n\t// batch setup\n\tBatch *Batch `thrift:\"batch,10,optional\" form:\"batch\" json:\"batch,omitempty\" query:\"batch\"`\n\t// if node parameter\n\tIfParam *IfParam `thrift:\"if_param,11,optional\" form:\"if_param\" json:\"if_param,omitempty\" query:\"if_param\"`\n}\n\nfunc NewNodeParam() *NodeParam {\n\treturn &NodeParam{}\n}\n\nfunc (p *NodeParam) InitDefault() {\n}\n\nvar NodeParam_InputList_DEFAULT []*Param\n\nfunc (p *NodeParam) GetInputList() (v []*Param) {\n\tif !p.IsSetInputList() {\n\t\treturn NodeParam_InputList_DEFAULT\n\t}\n\treturn p.InputList\n}\n\nvar NodeParam_OutputList_DEFAULT []*Param\n\nfunc (p *NodeParam) GetOutputList() (v []*Param) {\n\tif !p.IsSetOutputList() {\n\t\treturn NodeParam_OutputList_DEFAULT\n\t}\n\treturn p.OutputList\n}\n\nvar NodeParam_APIParam_DEFAULT *APIParam\n\nfunc (p *NodeParam) GetAPIParam() (v *APIParam) {\n\tif !p.IsSetAPIParam() {\n\t\treturn NodeParam_APIParam_DEFAULT\n\t}\n\treturn p.APIParam\n}\n\nvar NodeParam_CodeParam_DEFAULT *CodeParam\n\nfunc (p *NodeParam) GetCodeParam() (v *CodeParam) {\n\tif !p.IsSetCodeParam() {\n\t\treturn NodeParam_CodeParam_DEFAULT\n\t}\n\treturn p.CodeParam\n}\n\nvar NodeParam_LlmParam_DEFAULT *LLMParam\n\nfunc (p *NodeParam) GetLlmParam() (v *LLMParam) {\n\tif !p.IsSetLlmParam() {\n\t\treturn NodeParam_LlmParam_DEFAULT\n\t}\n\treturn p.LlmParam\n}\n\nvar NodeParam_DatasetParam_DEFAULT *DatasetParam\n\nfunc (p *NodeParam) GetDatasetParam() (v *DatasetParam) {\n\tif !p.IsSetDatasetParam() {\n\t\treturn NodeParam_DatasetParam_DEFAULT\n\t}\n\treturn p.DatasetParam\n}\n\nvar NodeParam_TerminatePlan_DEFAULT *TerminatePlan\n\nfunc (p *NodeParam) GetTerminatePlan() (v *TerminatePlan) {\n\tif !p.IsSetTerminatePlan() {\n\t\treturn NodeParam_TerminatePlan_DEFAULT\n\t}\n\treturn p.TerminatePlan\n}\n\nvar NodeParam_InputParameters_DEFAULT []*Parameter\n\nfunc (p *NodeParam) GetInputParameters() (v []*Parameter) {\n\tif !p.IsSetInputParameters() {\n\t\treturn NodeParam_InputParameters_DEFAULT\n\t}\n\treturn p.InputParameters\n}\n\nvar NodeParam_OutputParameters_DEFAULT []*Parameter\n\nfunc (p *NodeParam) GetOutputParameters() (v []*Parameter) {\n\tif !p.IsSetOutputParameters() {\n\t\treturn NodeParam_OutputParameters_DEFAULT\n\t}\n\treturn p.OutputParameters\n}\n\nvar NodeParam_Batch_DEFAULT *Batch\n\nfunc (p *NodeParam) GetBatch() (v *Batch) {\n\tif !p.IsSetBatch() {\n\t\treturn NodeParam_Batch_DEFAULT\n\t}\n\treturn p.Batch\n}\n\nvar NodeParam_IfParam_DEFAULT *IfParam\n\nfunc (p *NodeParam) GetIfParam() (v *IfParam) {\n\tif !p.IsSetIfParam() {\n\t\treturn NodeParam_IfParam_DEFAULT\n\t}\n\treturn p.IfParam\n}\n\nvar fieldIDToName_NodeParam = map[int16]string{\n\t1:  \"input_list\",\n\t2:  \"output_list\",\n\t3:  \"api_param\",\n\t4:  \"code_param\",\n\t5:  \"llm_param\",\n\t6:  \"dataset_param\",\n\t7:  \"terminate_plan\",\n\t8:  \"input_parameters\",\n\t9:  \"output_parameters\",\n\t10: \"batch\",\n\t11: \"if_param\",\n}\n\nfunc (p *NodeParam) IsSetInputList() bool {\n\treturn p.InputList != nil\n}\n\nfunc (p *NodeParam) IsSetOutputList() bool {\n\treturn p.OutputList != nil\n}\n\nfunc (p *NodeParam) IsSetAPIParam() bool {\n\treturn p.APIParam != nil\n}\n\nfunc (p *NodeParam) IsSetCodeParam() bool {\n\treturn p.CodeParam != nil\n}\n\nfunc (p *NodeParam) IsSetLlmParam() bool {\n\treturn p.LlmParam != nil\n}\n\nfunc (p *NodeParam) IsSetDatasetParam() bool {\n\treturn p.DatasetParam != nil\n}\n\nfunc (p *NodeParam) IsSetTerminatePlan() bool {\n\treturn p.TerminatePlan != nil\n}\n\nfunc (p *NodeParam) IsSetInputParameters() bool {\n\treturn p.InputParameters != nil\n}\n\nfunc (p *NodeParam) IsSetOutputParameters() bool {\n\treturn p.OutputParameters != nil\n}\n\nfunc (p *NodeParam) IsSetBatch() bool {\n\treturn p.Batch != nil\n}\n\nfunc (p *NodeParam) IsSetIfParam() bool {\n\treturn p.IfParam != nil\n}\n\nfunc (p *NodeParam) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeParam[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodeParam) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Param, 0, size)\n\tvalues := make([]Param, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.InputList = _field\n\treturn nil\n}\nfunc (p *NodeParam) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Param, 0, size)\n\tvalues := make([]Param, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OutputList = _field\n\treturn nil\n}\nfunc (p *NodeParam) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewAPIParam()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.APIParam = _field\n\treturn nil\n}\nfunc (p *NodeParam) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewCodeParam()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CodeParam = _field\n\treturn nil\n}\nfunc (p *NodeParam) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewLLMParam()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.LlmParam = _field\n\treturn nil\n}\nfunc (p *NodeParam) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewDatasetParam()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DatasetParam = _field\n\treturn nil\n}\nfunc (p *NodeParam) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewTerminatePlan()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TerminatePlan = _field\n\treturn nil\n}\nfunc (p *NodeParam) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Parameter, 0, size)\n\tvalues := make([]Parameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.InputParameters = _field\n\treturn nil\n}\nfunc (p *NodeParam) ReadField9(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Parameter, 0, size)\n\tvalues := make([]Parameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OutputParameters = _field\n\treturn nil\n}\nfunc (p *NodeParam) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewBatch()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Batch = _field\n\treturn nil\n}\nfunc (p *NodeParam) ReadField11(iprot thrift.TProtocol) error {\n\t_field := NewIfParam()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.IfParam = _field\n\treturn nil\n}\n\nfunc (p *NodeParam) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeParam\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeParam) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInputList() {\n\t\tif err = oprot.WriteFieldBegin(\"input_list\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.InputList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.InputList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodeParam) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOutputList() {\n\t\tif err = oprot.WriteFieldBegin(\"output_list\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OutputList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.OutputList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodeParam) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAPIParam() {\n\t\tif err = oprot.WriteFieldBegin(\"api_param\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.APIParam.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NodeParam) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCodeParam() {\n\t\tif err = oprot.WriteFieldBegin(\"code_param\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.CodeParam.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *NodeParam) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLlmParam() {\n\t\tif err = oprot.WriteFieldBegin(\"llm_param\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.LlmParam.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *NodeParam) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDatasetParam() {\n\t\tif err = oprot.WriteFieldBegin(\"dataset_param\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.DatasetParam.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *NodeParam) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTerminatePlan() {\n\t\tif err = oprot.WriteFieldBegin(\"terminate_plan\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TerminatePlan.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *NodeParam) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInputParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"input_parameters\", thrift.LIST, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.InputParameters)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.InputParameters {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *NodeParam) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOutputParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"output_parameters\", thrift.LIST, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OutputParameters)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.OutputParameters {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *NodeParam) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBatch() {\n\t\tif err = oprot.WriteFieldBegin(\"batch\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Batch.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *NodeParam) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIfParam() {\n\t\tif err = oprot.WriteFieldBegin(\"if_param\", thrift.STRUCT, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.IfParam.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\n\nfunc (p *NodeParam) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeParam(%+v)\", *p)\n\n}\n\ntype NodeDesc struct {\n\tDesc string `thrift:\"desc,1\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\t// Subtitle name\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\t// This type of icon\n\tIconURL string `thrift:\"icon_url,3\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\t// Whether to support batch, 1 does not support, 2 supports\n\tSupportBatch int32 `thrift:\"support_batch,4\" form:\"support_batch\" json:\"support_batch\" query:\"support_batch\"`\n\t// Connection requirements 1 or so can be connected 2 only support the right side\n\tLinkLimit int32 `thrift:\"link_limit,5\" form:\"link_limit\" json:\"link_limit\" query:\"link_limit\"`\n}\n\nfunc NewNodeDesc() *NodeDesc {\n\treturn &NodeDesc{}\n}\n\nfunc (p *NodeDesc) InitDefault() {\n}\n\nfunc (p *NodeDesc) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *NodeDesc) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *NodeDesc) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *NodeDesc) GetSupportBatch() (v int32) {\n\treturn p.SupportBatch\n}\n\nfunc (p *NodeDesc) GetLinkLimit() (v int32) {\n\treturn p.LinkLimit\n}\n\nvar fieldIDToName_NodeDesc = map[int16]string{\n\t1: \"desc\",\n\t2: \"name\",\n\t3: \"icon_url\",\n\t4: \"support_batch\",\n\t5: \"link_limit\",\n}\n\nfunc (p *NodeDesc) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeDesc[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodeDesc) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *NodeDesc) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *NodeDesc) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *NodeDesc) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SupportBatch = _field\n\treturn nil\n}\nfunc (p *NodeDesc) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LinkLimit = _field\n\treturn nil\n}\n\nfunc (p *NodeDesc) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeDesc\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeDesc) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodeDesc) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodeDesc) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NodeDesc) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"support_batch\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.SupportBatch); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *NodeDesc) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"link_limit\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.LinkLimit); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *NodeDesc) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeDesc(%+v)\", *p)\n\n}\n\ntype OpenAPI struct {\n\tInputList  []*Parameter `thrift:\"input_list,1\" form:\"input_list\" json:\"input_list\" query:\"input_list\"`\n\tOutputList []*Parameter `thrift:\"output_list,2\" form:\"output_list\" json:\"output_list\" query:\"output_list\"`\n}\n\nfunc NewOpenAPI() *OpenAPI {\n\treturn &OpenAPI{}\n}\n\nfunc (p *OpenAPI) InitDefault() {\n}\n\nfunc (p *OpenAPI) GetInputList() (v []*Parameter) {\n\treturn p.InputList\n}\n\nfunc (p *OpenAPI) GetOutputList() (v []*Parameter) {\n\treturn p.OutputList\n}\n\nvar fieldIDToName_OpenAPI = map[int16]string{\n\t1: \"input_list\",\n\t2: \"output_list\",\n}\n\nfunc (p *OpenAPI) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPI[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPI) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Parameter, 0, size)\n\tvalues := make([]Parameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.InputList = _field\n\treturn nil\n}\nfunc (p *OpenAPI) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Parameter, 0, size)\n\tvalues := make([]Parameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OutputList = _field\n\treturn nil\n}\n\nfunc (p *OpenAPI) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPI\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPI) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"input_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.InputList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.InputList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OpenAPI) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"output_list\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OutputList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.OutputList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *OpenAPI) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPI(%+v)\", *p)\n\n}\n\ntype Batch struct {\n\t// Is the batch switch on?\n\tIsBatch bool `thrift:\"is_batch,1\" form:\"is_batch\" json:\"is_batch\" query:\"is_batch\"`\n\t// Only process input in the range [0, take_count)\n\tTakeCount int64 `thrift:\"take_count,2\" form:\"take_count\" json:\"take_count\" query:\"take_count\"`\n\t// Batch input required\n\tInputParam *Parameter `thrift:\"input_param,3\" form:\"input_param\" json:\"input_param\" query:\"input_param\"`\n}\n\nfunc NewBatch() *Batch {\n\treturn &Batch{}\n}\n\nfunc (p *Batch) InitDefault() {\n}\n\nfunc (p *Batch) GetIsBatch() (v bool) {\n\treturn p.IsBatch\n}\n\nfunc (p *Batch) GetTakeCount() (v int64) {\n\treturn p.TakeCount\n}\n\nvar Batch_InputParam_DEFAULT *Parameter\n\nfunc (p *Batch) GetInputParam() (v *Parameter) {\n\tif !p.IsSetInputParam() {\n\t\treturn Batch_InputParam_DEFAULT\n\t}\n\treturn p.InputParam\n}\n\nvar fieldIDToName_Batch = map[int16]string{\n\t1: \"is_batch\",\n\t2: \"take_count\",\n\t3: \"input_param\",\n}\n\nfunc (p *Batch) IsSetInputParam() bool {\n\treturn p.InputParam != nil\n}\n\nfunc (p *Batch) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Batch[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Batch) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsBatch = _field\n\treturn nil\n}\nfunc (p *Batch) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TakeCount = _field\n\treturn nil\n}\nfunc (p *Batch) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewParameter()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.InputParam = _field\n\treturn nil\n}\n\nfunc (p *Batch) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Batch\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Batch) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_batch\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsBatch); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Batch) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"take_count\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TakeCount); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Batch) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"input_param\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.InputParam.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *Batch) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Batch(%+v)\", *p)\n\n}\n\ntype Node struct {\n\tWorkflowID string `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\t// Node ID\n\tNodeID string `thrift:\"node_id,2\" form:\"node_id\" json:\"node_id\" query:\"node_id\"`\n\t// Change node name\n\tNodeName string `thrift:\"node_name,3\" form:\"node_name\" json:\"node_name\" query:\"node_name\"`\n\t// Node type\n\tNodeType NodeType `thrift:\"node_type,4\" form:\"node_type\" json:\"node_type\" query:\"node_type\"`\n\t// Core parameters of the node\n\tNodeParam *NodeParam `thrift:\"node_param,5\" form:\"node_param\" json:\"node_param\" query:\"node_param\"`\n\t// Node location\n\tLayOut *LayOut `thrift:\"lay_out,6\" form:\"lay_out\" json:\"lay_out\" query:\"lay_out\"`\n\t// Description of Node, explaining the link\n\tDesc *NodeDesc `thrift:\"desc,7\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\t// dependent upstream node\n\tDependsOn []string `thrift:\"depends_on,8\" form:\"depends_on\" json:\"depends_on\" query:\"depends_on\"`\n\t// All inputs and outputs\n\tOpenAPI *OpenAPI `thrift:\"open_api,9\" form:\"open_api\" json:\"open_api\" query:\"open_api\"`\n}\n\nfunc NewNode() *Node {\n\treturn &Node{}\n}\n\nfunc (p *Node) InitDefault() {\n}\n\nfunc (p *Node) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *Node) GetNodeID() (v string) {\n\treturn p.NodeID\n}\n\nfunc (p *Node) GetNodeName() (v string) {\n\treturn p.NodeName\n}\n\nfunc (p *Node) GetNodeType() (v NodeType) {\n\treturn p.NodeType\n}\n\nvar Node_NodeParam_DEFAULT *NodeParam\n\nfunc (p *Node) GetNodeParam() (v *NodeParam) {\n\tif !p.IsSetNodeParam() {\n\t\treturn Node_NodeParam_DEFAULT\n\t}\n\treturn p.NodeParam\n}\n\nvar Node_LayOut_DEFAULT *LayOut\n\nfunc (p *Node) GetLayOut() (v *LayOut) {\n\tif !p.IsSetLayOut() {\n\t\treturn Node_LayOut_DEFAULT\n\t}\n\treturn p.LayOut\n}\n\nvar Node_Desc_DEFAULT *NodeDesc\n\nfunc (p *Node) GetDesc() (v *NodeDesc) {\n\tif !p.IsSetDesc() {\n\t\treturn Node_Desc_DEFAULT\n\t}\n\treturn p.Desc\n}\n\nfunc (p *Node) GetDependsOn() (v []string) {\n\treturn p.DependsOn\n}\n\nvar Node_OpenAPI_DEFAULT *OpenAPI\n\nfunc (p *Node) GetOpenAPI() (v *OpenAPI) {\n\tif !p.IsSetOpenAPI() {\n\t\treturn Node_OpenAPI_DEFAULT\n\t}\n\treturn p.OpenAPI\n}\n\nvar fieldIDToName_Node = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"node_id\",\n\t3: \"node_name\",\n\t4: \"node_type\",\n\t5: \"node_param\",\n\t6: \"lay_out\",\n\t7: \"desc\",\n\t8: \"depends_on\",\n\t9: \"open_api\",\n}\n\nfunc (p *Node) IsSetNodeParam() bool {\n\treturn p.NodeParam != nil\n}\n\nfunc (p *Node) IsSetLayOut() bool {\n\treturn p.LayOut != nil\n}\n\nfunc (p *Node) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *Node) IsSetOpenAPI() bool {\n\treturn p.OpenAPI != nil\n}\n\nfunc (p *Node) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Node[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Node) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *Node) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeID = _field\n\treturn nil\n}\nfunc (p *Node) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeName = _field\n\treturn nil\n}\nfunc (p *Node) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field NodeType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = NodeType(v)\n\t}\n\tp.NodeType = _field\n\treturn nil\n}\nfunc (p *Node) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewNodeParam()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.NodeParam = _field\n\treturn nil\n}\nfunc (p *Node) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewLayOut()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.LayOut = _field\n\treturn nil\n}\nfunc (p *Node) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewNodeDesc()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *Node) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DependsOn = _field\n\treturn nil\n}\nfunc (p *Node) ReadField9(iprot thrift.TProtocol) error {\n\t_field := NewOpenAPI()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OpenAPI = _field\n\treturn nil\n}\n\nfunc (p *Node) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Node\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Node) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Node) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Node) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Node) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.NodeType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Node) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_param\", thrift.STRUCT, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.NodeParam.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Node) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"lay_out\", thrift.STRUCT, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.LayOut.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Node) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRUCT, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Desc.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Node) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"depends_on\", thrift.LIST, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.DependsOn)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.DependsOn {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *Node) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"open_api\", thrift.STRUCT, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.OpenAPI.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *Node) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Node(%+v)\", *p)\n\n}\n\ntype Parameter struct {\n\tName          string       `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc          string       `thrift:\"desc,2\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tRequired      bool         `thrift:\"required,3\" form:\"required\" json:\"required\" query:\"required\"`\n\tType          InputType    `thrift:\"type,4\" form:\"type\" json:\"type\" query:\"type\"`\n\tSubParameters []*Parameter `thrift:\"sub_parameters,5\" form:\"sub_parameters\" json:\"sub_parameters\" query:\"sub_parameters\"`\n\t// If Type is an array, there is a subtype\n\tSubType InputType `thrift:\"sub_type,6\" form:\"sub_type\" json:\"sub_type\" query:\"sub_type\"`\n\t// fromNodeId if the value of the imported parameter is a reference\n\tFromNodeID *string `thrift:\"from_node_id,7,optional\" form:\"from_node_id\" json:\"from_node_id,omitempty\" query:\"from_node_id\"`\n\t// Which node's key is specifically referenced?\n\tFromOutput []string `thrift:\"from_output,8,optional\" form:\"from_output\" json:\"from_output,omitempty\" query:\"from_output\"`\n\t// If the imported parameter is the user's hand input, put it here\n\tValue  *string                `thrift:\"value,9,optional\" form:\"value\" json:\"value,omitempty\" query:\"value\"`\n\tFormat *PluginParamTypeFormat `thrift:\"format,10,optional\" form:\"format\" json:\"format,omitempty\" query:\"format\"`\n\t// Auxiliary type; type = string takes effect, 0 is unset\n\tAssistType *int64 `thrift:\"assist_type,11,optional\" form:\"assist_type\" json:\"assist_type,omitempty\" query:\"assist_type\"`\n\t// If Type is an array, it represents the auxiliary type of the child element; sub_type = string takes effect, 0 is unset\n\tSubAssistType *int64 `thrift:\"sub_assist_type,12,optional\" form:\"sub_assist_type\" json:\"sub_assist_type,omitempty\" query:\"sub_assist_type\"`\n}\n\nfunc NewParameter() *Parameter {\n\treturn &Parameter{}\n}\n\nfunc (p *Parameter) InitDefault() {\n}\n\nfunc (p *Parameter) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *Parameter) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *Parameter) GetRequired() (v bool) {\n\treturn p.Required\n}\n\nfunc (p *Parameter) GetType() (v InputType) {\n\treturn p.Type\n}\n\nfunc (p *Parameter) GetSubParameters() (v []*Parameter) {\n\treturn p.SubParameters\n}\n\nfunc (p *Parameter) GetSubType() (v InputType) {\n\treturn p.SubType\n}\n\nvar Parameter_FromNodeID_DEFAULT string\n\nfunc (p *Parameter) GetFromNodeID() (v string) {\n\tif !p.IsSetFromNodeID() {\n\t\treturn Parameter_FromNodeID_DEFAULT\n\t}\n\treturn *p.FromNodeID\n}\n\nvar Parameter_FromOutput_DEFAULT []string\n\nfunc (p *Parameter) GetFromOutput() (v []string) {\n\tif !p.IsSetFromOutput() {\n\t\treturn Parameter_FromOutput_DEFAULT\n\t}\n\treturn p.FromOutput\n}\n\nvar Parameter_Value_DEFAULT string\n\nfunc (p *Parameter) GetValue() (v string) {\n\tif !p.IsSetValue() {\n\t\treturn Parameter_Value_DEFAULT\n\t}\n\treturn *p.Value\n}\n\nvar Parameter_Format_DEFAULT PluginParamTypeFormat\n\nfunc (p *Parameter) GetFormat() (v PluginParamTypeFormat) {\n\tif !p.IsSetFormat() {\n\t\treturn Parameter_Format_DEFAULT\n\t}\n\treturn *p.Format\n}\n\nvar Parameter_AssistType_DEFAULT int64\n\nfunc (p *Parameter) GetAssistType() (v int64) {\n\tif !p.IsSetAssistType() {\n\t\treturn Parameter_AssistType_DEFAULT\n\t}\n\treturn *p.AssistType\n}\n\nvar Parameter_SubAssistType_DEFAULT int64\n\nfunc (p *Parameter) GetSubAssistType() (v int64) {\n\tif !p.IsSetSubAssistType() {\n\t\treturn Parameter_SubAssistType_DEFAULT\n\t}\n\treturn *p.SubAssistType\n}\n\nvar fieldIDToName_Parameter = map[int16]string{\n\t1:  \"name\",\n\t2:  \"desc\",\n\t3:  \"required\",\n\t4:  \"type\",\n\t5:  \"sub_parameters\",\n\t6:  \"sub_type\",\n\t7:  \"from_node_id\",\n\t8:  \"from_output\",\n\t9:  \"value\",\n\t10: \"format\",\n\t11: \"assist_type\",\n\t12: \"sub_assist_type\",\n}\n\nfunc (p *Parameter) IsSetFromNodeID() bool {\n\treturn p.FromNodeID != nil\n}\n\nfunc (p *Parameter) IsSetFromOutput() bool {\n\treturn p.FromOutput != nil\n}\n\nfunc (p *Parameter) IsSetValue() bool {\n\treturn p.Value != nil\n}\n\nfunc (p *Parameter) IsSetFormat() bool {\n\treturn p.Format != nil\n}\n\nfunc (p *Parameter) IsSetAssistType() bool {\n\treturn p.AssistType != nil\n}\n\nfunc (p *Parameter) IsSetSubAssistType() bool {\n\treturn p.SubAssistType != nil\n}\n\nfunc (p *Parameter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Parameter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Parameter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *Parameter) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *Parameter) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Required = _field\n\treturn nil\n}\nfunc (p *Parameter) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field InputType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = InputType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *Parameter) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Parameter, 0, size)\n\tvalues := make([]Parameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubParameters = _field\n\treturn nil\n}\nfunc (p *Parameter) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field InputType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = InputType(v)\n\t}\n\tp.SubType = _field\n\treturn nil\n}\nfunc (p *Parameter) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.FromNodeID = _field\n\treturn nil\n}\nfunc (p *Parameter) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.FromOutput = _field\n\treturn nil\n}\nfunc (p *Parameter) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *Parameter) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *PluginParamTypeFormat\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := PluginParamTypeFormat(v)\n\t\t_field = &tmp\n\t}\n\tp.Format = _field\n\treturn nil\n}\nfunc (p *Parameter) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AssistType = _field\n\treturn nil\n}\nfunc (p *Parameter) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubAssistType = _field\n\treturn nil\n}\n\nfunc (p *Parameter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Parameter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Parameter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Parameter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Parameter) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"required\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Required); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *Parameter) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *Parameter) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sub_parameters\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubParameters)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SubParameters {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *Parameter) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sub_type\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SubType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *Parameter) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFromNodeID() {\n\t\tif err = oprot.WriteFieldBegin(\"from_node_id\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.FromNodeID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *Parameter) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFromOutput() {\n\t\tif err = oprot.WriteFieldBegin(\"from_output\", thrift.LIST, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.FromOutput)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.FromOutput {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *Parameter) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetValue() {\n\t\tif err = oprot.WriteFieldBegin(\"value\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *Parameter) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFormat() {\n\t\tif err = oprot.WriteFieldBegin(\"format\", thrift.I32, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Format)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *Parameter) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAssistType() {\n\t\tif err = oprot.WriteFieldBegin(\"assist_type\", thrift.I64, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.AssistType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *Parameter) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubAssistType() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_assist_type\", thrift.I64, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.SubAssistType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\n\nfunc (p *Parameter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Parameter(%+v)\", *p)\n\n}\n\ntype CreateWorkflowRequest struct {\n\t// process name\n\tName string `thrift:\"name,1,required\" form:\"name,required\" json:\"name,required\" query:\"name,required\"`\n\t// Process description, not null\n\tDesc string `thrift:\"desc,2,required\" form:\"desc,required\" json:\"desc,required\" query:\"desc,required\"`\n\t// Process icon uri, not nullable\n\tIconURI string `thrift:\"icon_uri,3,required\" form:\"icon_uri,required\" json:\"icon_uri,required\" query:\"icon_uri,required\"`\n\t// Space id, cannot be empty\n\tSpaceID string `thrift:\"space_id,4,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\t// Workflow or chatflow, the default is workflow\n\tFlowMode   *WorkflowMode `thrift:\"flow_mode,5,optional\" form:\"flow_mode\" json:\"flow_mode,omitempty\" query:\"flow_mode\"`\n\tSchemaType *SchemaType   `thrift:\"schema_type,6,optional\" form:\"schema_type\" json:\"schema_type,omitempty\" query:\"schema_type\"`\n\tBindBizID  *string       `thrift:\"bind_biz_id,7,optional\" form:\"bind_biz_id\" json:\"bind_biz_id,omitempty\" query:\"bind_biz_id\"`\n\t// Bind the business type, do not fill in if necessary. Refer to the BindBizType structure, when the value is 3, it represents the Douyin doppelganger.\n\tBindBizType *int32 `thrift:\"bind_biz_type,8,optional\" form:\"bind_biz_type\" json:\"bind_biz_type,omitempty\" query:\"bind_biz_type\"`\n\t// Application id, when filled in, it means that the process is the process under the project, and it needs to be released with the project.\n\tProjectID *string `thrift:\"project_id,9,optional\" form:\"project_id\" json:\"project_id,omitempty\" query:\"project_id\"`\n\t// Whether to create a session, only if flow_mode = chatflow\n\tCreateConversation *bool      `thrift:\"create_conversation,10,optional\" form:\"create_conversation\" json:\"create_conversation,omitempty\" query:\"create_conversation\"`\n\tBase               *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCreateWorkflowRequest() *CreateWorkflowRequest {\n\treturn &CreateWorkflowRequest{}\n}\n\nfunc (p *CreateWorkflowRequest) InitDefault() {\n}\n\nfunc (p *CreateWorkflowRequest) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *CreateWorkflowRequest) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *CreateWorkflowRequest) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *CreateWorkflowRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar CreateWorkflowRequest_FlowMode_DEFAULT WorkflowMode\n\nfunc (p *CreateWorkflowRequest) GetFlowMode() (v WorkflowMode) {\n\tif !p.IsSetFlowMode() {\n\t\treturn CreateWorkflowRequest_FlowMode_DEFAULT\n\t}\n\treturn *p.FlowMode\n}\n\nvar CreateWorkflowRequest_SchemaType_DEFAULT SchemaType\n\nfunc (p *CreateWorkflowRequest) GetSchemaType() (v SchemaType) {\n\tif !p.IsSetSchemaType() {\n\t\treturn CreateWorkflowRequest_SchemaType_DEFAULT\n\t}\n\treturn *p.SchemaType\n}\n\nvar CreateWorkflowRequest_BindBizID_DEFAULT string\n\nfunc (p *CreateWorkflowRequest) GetBindBizID() (v string) {\n\tif !p.IsSetBindBizID() {\n\t\treturn CreateWorkflowRequest_BindBizID_DEFAULT\n\t}\n\treturn *p.BindBizID\n}\n\nvar CreateWorkflowRequest_BindBizType_DEFAULT int32\n\nfunc (p *CreateWorkflowRequest) GetBindBizType() (v int32) {\n\tif !p.IsSetBindBizType() {\n\t\treturn CreateWorkflowRequest_BindBizType_DEFAULT\n\t}\n\treturn *p.BindBizType\n}\n\nvar CreateWorkflowRequest_ProjectID_DEFAULT string\n\nfunc (p *CreateWorkflowRequest) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn CreateWorkflowRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar CreateWorkflowRequest_CreateConversation_DEFAULT bool\n\nfunc (p *CreateWorkflowRequest) GetCreateConversation() (v bool) {\n\tif !p.IsSetCreateConversation() {\n\t\treturn CreateWorkflowRequest_CreateConversation_DEFAULT\n\t}\n\treturn *p.CreateConversation\n}\n\nvar CreateWorkflowRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateWorkflowRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateWorkflowRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateWorkflowRequest = map[int16]string{\n\t1:   \"name\",\n\t2:   \"desc\",\n\t3:   \"icon_uri\",\n\t4:   \"space_id\",\n\t5:   \"flow_mode\",\n\t6:   \"schema_type\",\n\t7:   \"bind_biz_id\",\n\t8:   \"bind_biz_type\",\n\t9:   \"project_id\",\n\t10:  \"create_conversation\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateWorkflowRequest) IsSetFlowMode() bool {\n\treturn p.FlowMode != nil\n}\n\nfunc (p *CreateWorkflowRequest) IsSetSchemaType() bool {\n\treturn p.SchemaType != nil\n}\n\nfunc (p *CreateWorkflowRequest) IsSetBindBizID() bool {\n\treturn p.BindBizID != nil\n}\n\nfunc (p *CreateWorkflowRequest) IsSetBindBizType() bool {\n\treturn p.BindBizType != nil\n}\n\nfunc (p *CreateWorkflowRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *CreateWorkflowRequest) IsSetCreateConversation() bool {\n\treturn p.CreateConversation != nil\n}\n\nfunc (p *CreateWorkflowRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateWorkflowRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetName bool = false\n\tvar issetDesc bool = false\n\tvar issetIconURI bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetDesc = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetIconURI = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetName {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetDesc {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetIconURI {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateWorkflowRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateWorkflowRequest[fieldId]))\n}\n\nfunc (p *CreateWorkflowRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := WorkflowMode(v)\n\t\t_field = &tmp\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *SchemaType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := SchemaType(v)\n\t\t_field = &tmp\n\t}\n\tp.SchemaType = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BindBizID = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BindBizType = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreateConversation = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateWorkflowRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateWorkflowRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateWorkflowRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateWorkflowRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateWorkflowRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateWorkflowRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CreateWorkflowRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFlowMode() {\n\t\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FlowMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *CreateWorkflowRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSchemaType() {\n\t\tif err = oprot.WriteFieldBegin(\"schema_type\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SchemaType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *CreateWorkflowRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindBizID() {\n\t\tif err = oprot.WriteFieldBegin(\"bind_biz_id\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BindBizID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *CreateWorkflowRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindBizType() {\n\t\tif err = oprot.WriteFieldBegin(\"bind_biz_type\", thrift.I32, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.BindBizType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *CreateWorkflowRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *CreateWorkflowRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreateConversation() {\n\t\tif err = oprot.WriteFieldBegin(\"create_conversation\", thrift.BOOL, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.CreateConversation); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *CreateWorkflowRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateWorkflowRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateWorkflowRequest(%+v)\", *p)\n\n}\n\ntype CreateWorkflowData struct {\n\t// The ID of the process, used to identify a unique process\n\tWorkflowID string `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\t// process name\n\tName     string         `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tURL      string         `thrift:\"url,3\" form:\"url\" json:\"url\" query:\"url\"`\n\tStatus   WorkFlowStatus `thrift:\"status,4\" form:\"status\" json:\"status\" query:\"status\"`\n\tType     SchemaType     `thrift:\"type,5\" form:\"type\" json:\"type\" query:\"type\"`\n\tNodeList []*Node        `thrift:\"node_list,6\" form:\"node_list\" json:\"node_list\" query:\"node_list\"`\n\t// {\"project_id\":\"xxx\",\"flow_id\":xxxx}\n\tExternalFlowInfo *string `thrift:\"external_flow_info,7,optional\" form:\"external_flow_info\" json:\"external_flow_info,omitempty\" query:\"external_flow_info\"`\n}\n\nfunc NewCreateWorkflowData() *CreateWorkflowData {\n\treturn &CreateWorkflowData{}\n}\n\nfunc (p *CreateWorkflowData) InitDefault() {\n}\n\nfunc (p *CreateWorkflowData) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *CreateWorkflowData) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *CreateWorkflowData) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *CreateWorkflowData) GetStatus() (v WorkFlowStatus) {\n\treturn p.Status\n}\n\nfunc (p *CreateWorkflowData) GetType() (v SchemaType) {\n\treturn p.Type\n}\n\nfunc (p *CreateWorkflowData) GetNodeList() (v []*Node) {\n\treturn p.NodeList\n}\n\nvar CreateWorkflowData_ExternalFlowInfo_DEFAULT string\n\nfunc (p *CreateWorkflowData) GetExternalFlowInfo() (v string) {\n\tif !p.IsSetExternalFlowInfo() {\n\t\treturn CreateWorkflowData_ExternalFlowInfo_DEFAULT\n\t}\n\treturn *p.ExternalFlowInfo\n}\n\nvar fieldIDToName_CreateWorkflowData = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"name\",\n\t3: \"url\",\n\t4: \"status\",\n\t5: \"type\",\n\t6: \"node_list\",\n\t7: \"external_flow_info\",\n}\n\nfunc (p *CreateWorkflowData) IsSetExternalFlowInfo() bool {\n\treturn p.ExternalFlowInfo != nil\n}\n\nfunc (p *CreateWorkflowData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateWorkflowData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateWorkflowData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field WorkFlowStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkFlowStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field SchemaType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SchemaType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowData) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Node, 0, size)\n\tvalues := make([]Node, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NodeList = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExternalFlowInfo = _field\n\treturn nil\n}\n\nfunc (p *CreateWorkflowData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateWorkflowData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateWorkflowData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateWorkflowData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateWorkflowData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateWorkflowData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CreateWorkflowData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *CreateWorkflowData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_list\", thrift.LIST, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.NodeList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.NodeList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *CreateWorkflowData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExternalFlowInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"external_flow_info\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExternalFlowInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *CreateWorkflowData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateWorkflowData(%+v)\", *p)\n\n}\n\ntype CreateWorkflowResponse struct {\n\tData     *CreateWorkflowData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64               `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string              `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCreateWorkflowResponse() *CreateWorkflowResponse {\n\treturn &CreateWorkflowResponse{}\n}\n\nfunc (p *CreateWorkflowResponse) InitDefault() {\n}\n\nvar CreateWorkflowResponse_Data_DEFAULT *CreateWorkflowData\n\nfunc (p *CreateWorkflowResponse) GetData() (v *CreateWorkflowData) {\n\tif !p.IsSetData() {\n\t\treturn CreateWorkflowResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *CreateWorkflowResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CreateWorkflowResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CreateWorkflowResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateWorkflowResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateWorkflowResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateWorkflowResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateWorkflowResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *CreateWorkflowResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateWorkflowResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateWorkflowResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateWorkflowResponse[fieldId]))\n}\n\nfunc (p *CreateWorkflowResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateWorkflowData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateWorkflowResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateWorkflowResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateWorkflowResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateWorkflowResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateWorkflowResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CreateWorkflowResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CreateWorkflowResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateWorkflowResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateWorkflowResponse(%+v)\", *p)\n\n}\n\ntype SaveWorkflowRequest struct {\n\t// The ID of the process, used to identify a unique process\n\tWorkflowID string `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\t// Process schema\n\tSchema *string `thrift:\"schema,2,optional\" form:\"schema\" json:\"schema,omitempty\" query:\"schema\"`\n\t// Required, space id, not nullable\n\tSpaceID *string `thrift:\"space_id,3,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n\tName    *string `thrift:\"name,4,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tDesc    *string `thrift:\"desc,5,optional\" form:\"desc\" json:\"desc,omitempty\" query:\"desc\"`\n\tIconURI *string `thrift:\"icon_uri,6,optional\" form:\"icon_uri\" json:\"icon_uri,omitempty\" query:\"icon_uri\"`\n\t// The commit_id of a commit. This is used to uniquely identify individual commit versions of a process (each commit_id corresponds only and only to one commit version of a process).\n\tSubmitCommitID       string     `thrift:\"submit_commit_id,7,required\" form:\"submit_commit_id,required\" json:\"submit_commit_id,required\" query:\"submit_commit_id,required\"`\n\tIgnoreStatusTransfer *bool      `thrift:\"ignore_status_transfer,8,optional\" form:\"ignore_status_transfer\" json:\"ignore_status_transfer,omitempty\" query:\"ignore_status_transfer\"`\n\tBase                 *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewSaveWorkflowRequest() *SaveWorkflowRequest {\n\treturn &SaveWorkflowRequest{}\n}\n\nfunc (p *SaveWorkflowRequest) InitDefault() {\n}\n\nfunc (p *SaveWorkflowRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar SaveWorkflowRequest_Schema_DEFAULT string\n\nfunc (p *SaveWorkflowRequest) GetSchema() (v string) {\n\tif !p.IsSetSchema() {\n\t\treturn SaveWorkflowRequest_Schema_DEFAULT\n\t}\n\treturn *p.Schema\n}\n\nvar SaveWorkflowRequest_SpaceID_DEFAULT string\n\nfunc (p *SaveWorkflowRequest) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn SaveWorkflowRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar SaveWorkflowRequest_Name_DEFAULT string\n\nfunc (p *SaveWorkflowRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn SaveWorkflowRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar SaveWorkflowRequest_Desc_DEFAULT string\n\nfunc (p *SaveWorkflowRequest) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn SaveWorkflowRequest_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar SaveWorkflowRequest_IconURI_DEFAULT string\n\nfunc (p *SaveWorkflowRequest) GetIconURI() (v string) {\n\tif !p.IsSetIconURI() {\n\t\treturn SaveWorkflowRequest_IconURI_DEFAULT\n\t}\n\treturn *p.IconURI\n}\n\nfunc (p *SaveWorkflowRequest) GetSubmitCommitID() (v string) {\n\treturn p.SubmitCommitID\n}\n\nvar SaveWorkflowRequest_IgnoreStatusTransfer_DEFAULT bool\n\nfunc (p *SaveWorkflowRequest) GetIgnoreStatusTransfer() (v bool) {\n\tif !p.IsSetIgnoreStatusTransfer() {\n\t\treturn SaveWorkflowRequest_IgnoreStatusTransfer_DEFAULT\n\t}\n\treturn *p.IgnoreStatusTransfer\n}\n\nvar SaveWorkflowRequest_Base_DEFAULT *base.Base\n\nfunc (p *SaveWorkflowRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SaveWorkflowRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SaveWorkflowRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"schema\",\n\t3:   \"space_id\",\n\t4:   \"name\",\n\t5:   \"desc\",\n\t6:   \"icon_uri\",\n\t7:   \"submit_commit_id\",\n\t8:   \"ignore_status_transfer\",\n\t255: \"Base\",\n}\n\nfunc (p *SaveWorkflowRequest) IsSetSchema() bool {\n\treturn p.Schema != nil\n}\n\nfunc (p *SaveWorkflowRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *SaveWorkflowRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *SaveWorkflowRequest) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *SaveWorkflowRequest) IsSetIconURI() bool {\n\treturn p.IconURI != nil\n}\n\nfunc (p *SaveWorkflowRequest) IsSetIgnoreStatusTransfer() bool {\n\treturn p.IgnoreStatusTransfer != nil\n}\n\nfunc (p *SaveWorkflowRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SaveWorkflowRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSubmitCommitID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSubmitCommitID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSubmitCommitID {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SaveWorkflowRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SaveWorkflowRequest[fieldId]))\n}\n\nfunc (p *SaveWorkflowRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Schema = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SubmitCommitID = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IgnoreStatusTransfer = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SaveWorkflowRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveWorkflowRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SaveWorkflowRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SaveWorkflowRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSchema() {\n\t\tif err = oprot.WriteFieldBegin(\"schema\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Schema); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SaveWorkflowRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SaveWorkflowRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *SaveWorkflowRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *SaveWorkflowRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIconURI() {\n\t\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IconURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *SaveWorkflowRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"submit_commit_id\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SubmitCommitID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *SaveWorkflowRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIgnoreStatusTransfer() {\n\t\tif err = oprot.WriteFieldBegin(\"ignore_status_transfer\", thrift.BOOL, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IgnoreStatusTransfer); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *SaveWorkflowRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SaveWorkflowRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SaveWorkflowRequest(%+v)\", *p)\n\n}\n\ntype SaveWorkflowData struct {\n\tName           string            `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tURL            string            `thrift:\"url,2\" form:\"url\" json:\"url\" query:\"url\"`\n\tStatus         WorkFlowDevStatus `thrift:\"status,3\" form:\"status\" json:\"status\" query:\"status\"`\n\tWorkflowStatus WorkFlowStatus    `thrift:\"workflow_status,4\" form:\"workflow_status\" json:\"workflow_status\" query:\"workflow_status\"`\n}\n\nfunc NewSaveWorkflowData() *SaveWorkflowData {\n\treturn &SaveWorkflowData{}\n}\n\nfunc (p *SaveWorkflowData) InitDefault() {\n}\n\nfunc (p *SaveWorkflowData) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *SaveWorkflowData) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *SaveWorkflowData) GetStatus() (v WorkFlowDevStatus) {\n\treturn p.Status\n}\n\nfunc (p *SaveWorkflowData) GetWorkflowStatus() (v WorkFlowStatus) {\n\treturn p.WorkflowStatus\n}\n\nvar fieldIDToName_SaveWorkflowData = map[int16]string{\n\t1: \"name\",\n\t2: \"url\",\n\t3: \"status\",\n\t4: \"workflow_status\",\n}\n\nfunc (p *SaveWorkflowData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SaveWorkflowData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SaveWorkflowData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field WorkFlowDevStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkFlowDevStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field WorkFlowStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkFlowStatus(v)\n\t}\n\tp.WorkflowStatus = _field\n\treturn nil\n}\n\nfunc (p *SaveWorkflowData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveWorkflowData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SaveWorkflowData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SaveWorkflowData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SaveWorkflowData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *SaveWorkflowData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_status\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.WorkflowStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *SaveWorkflowData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SaveWorkflowData(%+v)\", *p)\n\n}\n\ntype SaveWorkflowResponse struct {\n\tData     *SaveWorkflowData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64             `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string            `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp    `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewSaveWorkflowResponse() *SaveWorkflowResponse {\n\treturn &SaveWorkflowResponse{}\n}\n\nfunc (p *SaveWorkflowResponse) InitDefault() {\n}\n\nvar SaveWorkflowResponse_Data_DEFAULT *SaveWorkflowData\n\nfunc (p *SaveWorkflowResponse) GetData() (v *SaveWorkflowData) {\n\tif !p.IsSetData() {\n\t\treturn SaveWorkflowResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *SaveWorkflowResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *SaveWorkflowResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar SaveWorkflowResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SaveWorkflowResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SaveWorkflowResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SaveWorkflowResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *SaveWorkflowResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *SaveWorkflowResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SaveWorkflowResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SaveWorkflowResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SaveWorkflowResponse[fieldId]))\n}\n\nfunc (p *SaveWorkflowResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewSaveWorkflowData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *SaveWorkflowResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SaveWorkflowResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveWorkflowResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SaveWorkflowResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SaveWorkflowResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *SaveWorkflowResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *SaveWorkflowResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SaveWorkflowResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SaveWorkflowResponse(%+v)\", *p)\n\n}\n\ntype UpdateWorkflowMetaRequest struct {\n\tWorkflowID string        `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tSpaceID    string        `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tName       *string       `thrift:\"name,3,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tDesc       *string       `thrift:\"desc,4,optional\" form:\"desc\" json:\"desc,omitempty\" query:\"desc\"`\n\tIconURI    *string       `thrift:\"icon_uri,5,optional\" form:\"icon_uri\" json:\"icon_uri,omitempty\" query:\"icon_uri\"`\n\tFlowMode   *WorkflowMode `thrift:\"flow_mode,6,optional\" form:\"flow_mode\" json:\"flow_mode,omitempty\" query:\"flow_mode\"`\n\tBase       *base.Base    `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateWorkflowMetaRequest() *UpdateWorkflowMetaRequest {\n\treturn &UpdateWorkflowMetaRequest{}\n}\n\nfunc (p *UpdateWorkflowMetaRequest) InitDefault() {\n}\n\nfunc (p *UpdateWorkflowMetaRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *UpdateWorkflowMetaRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar UpdateWorkflowMetaRequest_Name_DEFAULT string\n\nfunc (p *UpdateWorkflowMetaRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn UpdateWorkflowMetaRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar UpdateWorkflowMetaRequest_Desc_DEFAULT string\n\nfunc (p *UpdateWorkflowMetaRequest) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn UpdateWorkflowMetaRequest_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar UpdateWorkflowMetaRequest_IconURI_DEFAULT string\n\nfunc (p *UpdateWorkflowMetaRequest) GetIconURI() (v string) {\n\tif !p.IsSetIconURI() {\n\t\treturn UpdateWorkflowMetaRequest_IconURI_DEFAULT\n\t}\n\treturn *p.IconURI\n}\n\nvar UpdateWorkflowMetaRequest_FlowMode_DEFAULT WorkflowMode\n\nfunc (p *UpdateWorkflowMetaRequest) GetFlowMode() (v WorkflowMode) {\n\tif !p.IsSetFlowMode() {\n\t\treturn UpdateWorkflowMetaRequest_FlowMode_DEFAULT\n\t}\n\treturn *p.FlowMode\n}\n\nvar UpdateWorkflowMetaRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateWorkflowMetaRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateWorkflowMetaRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateWorkflowMetaRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"space_id\",\n\t3:   \"name\",\n\t4:   \"desc\",\n\t5:   \"icon_uri\",\n\t6:   \"flow_mode\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateWorkflowMetaRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *UpdateWorkflowMetaRequest) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *UpdateWorkflowMetaRequest) IsSetIconURI() bool {\n\treturn p.IconURI != nil\n}\n\nfunc (p *UpdateWorkflowMetaRequest) IsSetFlowMode() bool {\n\treturn p.FlowMode != nil\n}\n\nfunc (p *UpdateWorkflowMetaRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateWorkflowMetaRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateWorkflowMetaRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateWorkflowMetaRequest[fieldId]))\n}\n\nfunc (p *UpdateWorkflowMetaRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *UpdateWorkflowMetaRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *UpdateWorkflowMetaRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *UpdateWorkflowMetaRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *UpdateWorkflowMetaRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *UpdateWorkflowMetaRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := WorkflowMode(v)\n\t\t_field = &tmp\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *UpdateWorkflowMetaRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateWorkflowMetaRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateWorkflowMetaRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateWorkflowMetaRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateWorkflowMetaRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateWorkflowMetaRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateWorkflowMetaRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UpdateWorkflowMetaRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIconURI() {\n\t\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IconURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *UpdateWorkflowMetaRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFlowMode() {\n\t\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FlowMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *UpdateWorkflowMetaRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateWorkflowMetaRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateWorkflowMetaRequest(%+v)\", *p)\n\n}\n\ntype UpdateWorkflowMetaResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewUpdateWorkflowMetaResponse() *UpdateWorkflowMetaResponse {\n\treturn &UpdateWorkflowMetaResponse{}\n}\n\nfunc (p *UpdateWorkflowMetaResponse) InitDefault() {\n}\n\nfunc (p *UpdateWorkflowMetaResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateWorkflowMetaResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateWorkflowMetaResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateWorkflowMetaResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateWorkflowMetaResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateWorkflowMetaResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateWorkflowMetaResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateWorkflowMetaResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateWorkflowMetaResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateWorkflowMetaResponse[fieldId]))\n}\n\nfunc (p *UpdateWorkflowMetaResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateWorkflowMetaResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateWorkflowMetaResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateWorkflowMetaResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateWorkflowMetaResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateWorkflowMetaResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateWorkflowMetaResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateWorkflowMetaResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateWorkflowMetaResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateWorkflowMetaResponse(%+v)\", *p)\n\n}\n\ntype MergeWorkflowRequest struct {\n\tWorkflowID     string     `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tSchema         *string    `thrift:\"schema,2,optional\" form:\"schema\" json:\"schema,omitempty\" query:\"schema\"`\n\tSpaceID        *string    `thrift:\"space_id,3,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n\tName           *string    `thrift:\"name,4,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tDesc           *string    `thrift:\"desc,5,optional\" form:\"desc\" json:\"desc,omitempty\" query:\"desc\"`\n\tIconURI        *string    `thrift:\"icon_uri,6,optional\" form:\"icon_uri\" json:\"icon_uri,omitempty\" query:\"icon_uri\"`\n\tSubmitCommitID string     `thrift:\"submit_commit_id,7,required\" form:\"submit_commit_id,required\" json:\"submit_commit_id,required\" query:\"submit_commit_id,required\"`\n\tBase           *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewMergeWorkflowRequest() *MergeWorkflowRequest {\n\treturn &MergeWorkflowRequest{}\n}\n\nfunc (p *MergeWorkflowRequest) InitDefault() {\n}\n\nfunc (p *MergeWorkflowRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar MergeWorkflowRequest_Schema_DEFAULT string\n\nfunc (p *MergeWorkflowRequest) GetSchema() (v string) {\n\tif !p.IsSetSchema() {\n\t\treturn MergeWorkflowRequest_Schema_DEFAULT\n\t}\n\treturn *p.Schema\n}\n\nvar MergeWorkflowRequest_SpaceID_DEFAULT string\n\nfunc (p *MergeWorkflowRequest) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn MergeWorkflowRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar MergeWorkflowRequest_Name_DEFAULT string\n\nfunc (p *MergeWorkflowRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn MergeWorkflowRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar MergeWorkflowRequest_Desc_DEFAULT string\n\nfunc (p *MergeWorkflowRequest) GetDesc() (v string) {\n\tif !p.IsSetDesc() {\n\t\treturn MergeWorkflowRequest_Desc_DEFAULT\n\t}\n\treturn *p.Desc\n}\n\nvar MergeWorkflowRequest_IconURI_DEFAULT string\n\nfunc (p *MergeWorkflowRequest) GetIconURI() (v string) {\n\tif !p.IsSetIconURI() {\n\t\treturn MergeWorkflowRequest_IconURI_DEFAULT\n\t}\n\treturn *p.IconURI\n}\n\nfunc (p *MergeWorkflowRequest) GetSubmitCommitID() (v string) {\n\treturn p.SubmitCommitID\n}\n\nvar MergeWorkflowRequest_Base_DEFAULT *base.Base\n\nfunc (p *MergeWorkflowRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn MergeWorkflowRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_MergeWorkflowRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"schema\",\n\t3:   \"space_id\",\n\t4:   \"name\",\n\t5:   \"desc\",\n\t6:   \"icon_uri\",\n\t7:   \"submit_commit_id\",\n\t255: \"Base\",\n}\n\nfunc (p *MergeWorkflowRequest) IsSetSchema() bool {\n\treturn p.Schema != nil\n}\n\nfunc (p *MergeWorkflowRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *MergeWorkflowRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *MergeWorkflowRequest) IsSetDesc() bool {\n\treturn p.Desc != nil\n}\n\nfunc (p *MergeWorkflowRequest) IsSetIconURI() bool {\n\treturn p.IconURI != nil\n}\n\nfunc (p *MergeWorkflowRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *MergeWorkflowRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSubmitCommitID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSubmitCommitID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSubmitCommitID {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MergeWorkflowRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_MergeWorkflowRequest[fieldId]))\n}\n\nfunc (p *MergeWorkflowRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Schema = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SubmitCommitID = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *MergeWorkflowRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MergeWorkflowRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MergeWorkflowRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MergeWorkflowRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSchema() {\n\t\tif err = oprot.WriteFieldBegin(\"schema\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Schema); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MergeWorkflowRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *MergeWorkflowRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *MergeWorkflowRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDesc() {\n\t\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Desc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *MergeWorkflowRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIconURI() {\n\t\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.IconURI); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *MergeWorkflowRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"submit_commit_id\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SubmitCommitID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *MergeWorkflowRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MergeWorkflowRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MergeWorkflowRequest(%+v)\", *p)\n\n}\n\ntype MergeWorkflowData struct {\n\tName   string            `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tURL    string            `thrift:\"url,2\" form:\"url\" json:\"url\" query:\"url\"`\n\tStatus WorkFlowDevStatus `thrift:\"status,3\" form:\"status\" json:\"status\" query:\"status\"`\n}\n\nfunc NewMergeWorkflowData() *MergeWorkflowData {\n\treturn &MergeWorkflowData{}\n}\n\nfunc (p *MergeWorkflowData) InitDefault() {\n}\n\nfunc (p *MergeWorkflowData) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *MergeWorkflowData) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *MergeWorkflowData) GetStatus() (v WorkFlowDevStatus) {\n\treturn p.Status\n}\n\nvar fieldIDToName_MergeWorkflowData = map[int16]string{\n\t1: \"name\",\n\t2: \"url\",\n\t3: \"status\",\n}\n\nfunc (p *MergeWorkflowData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MergeWorkflowData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *MergeWorkflowData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field WorkFlowDevStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkFlowDevStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\n\nfunc (p *MergeWorkflowData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MergeWorkflowData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MergeWorkflowData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MergeWorkflowData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *MergeWorkflowData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *MergeWorkflowData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MergeWorkflowData(%+v)\", *p)\n\n}\n\ntype MergeWorkflowResponse struct {\n\tData     *MergeWorkflowData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64              `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string             `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp     `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewMergeWorkflowResponse() *MergeWorkflowResponse {\n\treturn &MergeWorkflowResponse{}\n}\n\nfunc (p *MergeWorkflowResponse) InitDefault() {\n}\n\nvar MergeWorkflowResponse_Data_DEFAULT *MergeWorkflowData\n\nfunc (p *MergeWorkflowResponse) GetData() (v *MergeWorkflowData) {\n\tif !p.IsSetData() {\n\t\treturn MergeWorkflowResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *MergeWorkflowResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *MergeWorkflowResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar MergeWorkflowResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *MergeWorkflowResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn MergeWorkflowResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_MergeWorkflowResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *MergeWorkflowResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *MergeWorkflowResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *MergeWorkflowResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_MergeWorkflowResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_MergeWorkflowResponse[fieldId]))\n}\n\nfunc (p *MergeWorkflowResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewMergeWorkflowData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *MergeWorkflowResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *MergeWorkflowResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"MergeWorkflowResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *MergeWorkflowResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *MergeWorkflowResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *MergeWorkflowResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *MergeWorkflowResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *MergeWorkflowResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"MergeWorkflowResponse(%+v)\", *p)\n\n}\n\ntype VCSCanvasData struct {\n\tSubmitCommitID  string        `thrift:\"submit_commit_id,1\" form:\"submit_commit_id\" json:\"submit_commit_id\" query:\"submit_commit_id\"`\n\tDraftCommitID   string        `thrift:\"draft_commit_id,2\" form:\"draft_commit_id\" json:\"draft_commit_id\" query:\"draft_commit_id\"`\n\tType            VCSCanvasType `thrift:\"type,3\" form:\"type\" json:\"type\" query:\"type\"`\n\tCanEdit         bool          `thrift:\"can_edit,4\" form:\"can_edit\" json:\"can_edit\" query:\"can_edit\"`\n\tPublishCommitID *string       `thrift:\"publish_commit_id,5,optional\" form:\"publish_commit_id\" json:\"publish_commit_id,omitempty\" query:\"publish_commit_id\"`\n}\n\nfunc NewVCSCanvasData() *VCSCanvasData {\n\treturn &VCSCanvasData{}\n}\n\nfunc (p *VCSCanvasData) InitDefault() {\n}\n\nfunc (p *VCSCanvasData) GetSubmitCommitID() (v string) {\n\treturn p.SubmitCommitID\n}\n\nfunc (p *VCSCanvasData) GetDraftCommitID() (v string) {\n\treturn p.DraftCommitID\n}\n\nfunc (p *VCSCanvasData) GetType() (v VCSCanvasType) {\n\treturn p.Type\n}\n\nfunc (p *VCSCanvasData) GetCanEdit() (v bool) {\n\treturn p.CanEdit\n}\n\nvar VCSCanvasData_PublishCommitID_DEFAULT string\n\nfunc (p *VCSCanvasData) GetPublishCommitID() (v string) {\n\tif !p.IsSetPublishCommitID() {\n\t\treturn VCSCanvasData_PublishCommitID_DEFAULT\n\t}\n\treturn *p.PublishCommitID\n}\n\nvar fieldIDToName_VCSCanvasData = map[int16]string{\n\t1: \"submit_commit_id\",\n\t2: \"draft_commit_id\",\n\t3: \"type\",\n\t4: \"can_edit\",\n\t5: \"publish_commit_id\",\n}\n\nfunc (p *VCSCanvasData) IsSetPublishCommitID() bool {\n\treturn p.PublishCommitID != nil\n}\n\nfunc (p *VCSCanvasData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_VCSCanvasData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *VCSCanvasData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SubmitCommitID = _field\n\treturn nil\n}\nfunc (p *VCSCanvasData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DraftCommitID = _field\n\treturn nil\n}\nfunc (p *VCSCanvasData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field VCSCanvasType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = VCSCanvasType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *VCSCanvasData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanEdit = _field\n\treturn nil\n}\nfunc (p *VCSCanvasData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PublishCommitID = _field\n\treturn nil\n}\n\nfunc (p *VCSCanvasData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"VCSCanvasData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *VCSCanvasData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"submit_commit_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SubmitCommitID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *VCSCanvasData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"draft_commit_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DraftCommitID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *VCSCanvasData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *VCSCanvasData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_edit\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanEdit); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *VCSCanvasData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPublishCommitID() {\n\t\tif err = oprot.WriteFieldBegin(\"publish_commit_id\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PublishCommitID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *VCSCanvasData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"VCSCanvasData(%+v)\", *p)\n\n}\n\ntype DBCanvasData struct {\n\tStatus WorkFlowStatus `thrift:\"status,1\" form:\"status\" json:\"status\" query:\"status\"`\n}\n\nfunc NewDBCanvasData() *DBCanvasData {\n\treturn &DBCanvasData{}\n}\n\nfunc (p *DBCanvasData) InitDefault() {\n}\n\nfunc (p *DBCanvasData) GetStatus() (v WorkFlowStatus) {\n\treturn p.Status\n}\n\nvar fieldIDToName_DBCanvasData = map[int16]string{\n\t1: \"status\",\n}\n\nfunc (p *DBCanvasData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DBCanvasData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DBCanvasData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field WorkFlowStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkFlowStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\n\nfunc (p *DBCanvasData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DBCanvasData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DBCanvasData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DBCanvasData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DBCanvasData(%+v)\", *p)\n\n}\n\ntype OperationInfo struct {\n\tOperator     *Creator `thrift:\"operator,1\" form:\"operator\" json:\"operator\" query:\"operator\"`\n\tOperatorTime int64    `thrift:\"operator_time,2\" form:\"operator_time\" json:\"operator_time\" query:\"operator_time\"`\n}\n\nfunc NewOperationInfo() *OperationInfo {\n\treturn &OperationInfo{}\n}\n\nfunc (p *OperationInfo) InitDefault() {\n}\n\nvar OperationInfo_Operator_DEFAULT *Creator\n\nfunc (p *OperationInfo) GetOperator() (v *Creator) {\n\tif !p.IsSetOperator() {\n\t\treturn OperationInfo_Operator_DEFAULT\n\t}\n\treturn p.Operator\n}\n\nfunc (p *OperationInfo) GetOperatorTime() (v int64) {\n\treturn p.OperatorTime\n}\n\nvar fieldIDToName_OperationInfo = map[int16]string{\n\t1: \"operator\",\n\t2: \"operator_time\",\n}\n\nfunc (p *OperationInfo) IsSetOperator() bool {\n\treturn p.Operator != nil\n}\n\nfunc (p *OperationInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OperationInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OperationInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreator()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Operator = _field\n\treturn nil\n}\nfunc (p *OperationInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OperatorTime = _field\n\treturn nil\n}\n\nfunc (p *OperationInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OperationInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OperationInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"operator\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Operator.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OperationInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"operator_time\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.OperatorTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *OperationInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OperationInfo(%+v)\", *p)\n\n}\n\ntype CanvasData struct {\n\tWorkflow         *Workflow      `thrift:\"workflow,1\" form:\"workflow\" json:\"workflow\" query:\"workflow\"`\n\tVcsData          *VCSCanvasData `thrift:\"vcs_data,2\" form:\"vcs_data\" json:\"vcs_data\" query:\"vcs_data\"`\n\tDbData           *DBCanvasData  `thrift:\"db_data,3\" form:\"db_data\" json:\"db_data\" query:\"db_data\"`\n\tOperationInfo    *OperationInfo `thrift:\"operation_info,4\" form:\"operation_info\" json:\"operation_info\" query:\"operation_info\"`\n\tExternalFlowInfo *string        `thrift:\"external_flow_info,5,optional\" form:\"external_flow_info\" json:\"external_flow_info,omitempty\" query:\"external_flow_info\"`\n\t// Is the Agent bound?\n\tIsBindAgent     *bool   `thrift:\"is_bind_agent,6,optional\" form:\"is_bind_agent\" json:\"is_bind_agent,omitempty\" query:\"is_bind_agent\"`\n\tBindBizID       *string `thrift:\"bind_biz_id,7,optional\" form:\"bind_biz_id\" json:\"bind_biz_id,omitempty\" query:\"bind_biz_id\"`\n\tBindBizType     *int32  `thrift:\"bind_biz_type,8,optional\" form:\"bind_biz_type\" json:\"bind_biz_type,omitempty\" query:\"bind_biz_type\"`\n\tWorkflowVersion *string `thrift:\"workflow_version,9,optional\" form:\"workflow_version\" json:\"workflow_version,omitempty\" query:\"workflow_version\"`\n}\n\nfunc NewCanvasData() *CanvasData {\n\treturn &CanvasData{}\n}\n\nfunc (p *CanvasData) InitDefault() {\n}\n\nvar CanvasData_Workflow_DEFAULT *Workflow\n\nfunc (p *CanvasData) GetWorkflow() (v *Workflow) {\n\tif !p.IsSetWorkflow() {\n\t\treturn CanvasData_Workflow_DEFAULT\n\t}\n\treturn p.Workflow\n}\n\nvar CanvasData_VcsData_DEFAULT *VCSCanvasData\n\nfunc (p *CanvasData) GetVcsData() (v *VCSCanvasData) {\n\tif !p.IsSetVcsData() {\n\t\treturn CanvasData_VcsData_DEFAULT\n\t}\n\treturn p.VcsData\n}\n\nvar CanvasData_DbData_DEFAULT *DBCanvasData\n\nfunc (p *CanvasData) GetDbData() (v *DBCanvasData) {\n\tif !p.IsSetDbData() {\n\t\treturn CanvasData_DbData_DEFAULT\n\t}\n\treturn p.DbData\n}\n\nvar CanvasData_OperationInfo_DEFAULT *OperationInfo\n\nfunc (p *CanvasData) GetOperationInfo() (v *OperationInfo) {\n\tif !p.IsSetOperationInfo() {\n\t\treturn CanvasData_OperationInfo_DEFAULT\n\t}\n\treturn p.OperationInfo\n}\n\nvar CanvasData_ExternalFlowInfo_DEFAULT string\n\nfunc (p *CanvasData) GetExternalFlowInfo() (v string) {\n\tif !p.IsSetExternalFlowInfo() {\n\t\treturn CanvasData_ExternalFlowInfo_DEFAULT\n\t}\n\treturn *p.ExternalFlowInfo\n}\n\nvar CanvasData_IsBindAgent_DEFAULT bool\n\nfunc (p *CanvasData) GetIsBindAgent() (v bool) {\n\tif !p.IsSetIsBindAgent() {\n\t\treturn CanvasData_IsBindAgent_DEFAULT\n\t}\n\treturn *p.IsBindAgent\n}\n\nvar CanvasData_BindBizID_DEFAULT string\n\nfunc (p *CanvasData) GetBindBizID() (v string) {\n\tif !p.IsSetBindBizID() {\n\t\treturn CanvasData_BindBizID_DEFAULT\n\t}\n\treturn *p.BindBizID\n}\n\nvar CanvasData_BindBizType_DEFAULT int32\n\nfunc (p *CanvasData) GetBindBizType() (v int32) {\n\tif !p.IsSetBindBizType() {\n\t\treturn CanvasData_BindBizType_DEFAULT\n\t}\n\treturn *p.BindBizType\n}\n\nvar CanvasData_WorkflowVersion_DEFAULT string\n\nfunc (p *CanvasData) GetWorkflowVersion() (v string) {\n\tif !p.IsSetWorkflowVersion() {\n\t\treturn CanvasData_WorkflowVersion_DEFAULT\n\t}\n\treturn *p.WorkflowVersion\n}\n\nvar fieldIDToName_CanvasData = map[int16]string{\n\t1: \"workflow\",\n\t2: \"vcs_data\",\n\t3: \"db_data\",\n\t4: \"operation_info\",\n\t5: \"external_flow_info\",\n\t6: \"is_bind_agent\",\n\t7: \"bind_biz_id\",\n\t8: \"bind_biz_type\",\n\t9: \"workflow_version\",\n}\n\nfunc (p *CanvasData) IsSetWorkflow() bool {\n\treturn p.Workflow != nil\n}\n\nfunc (p *CanvasData) IsSetVcsData() bool {\n\treturn p.VcsData != nil\n}\n\nfunc (p *CanvasData) IsSetDbData() bool {\n\treturn p.DbData != nil\n}\n\nfunc (p *CanvasData) IsSetOperationInfo() bool {\n\treturn p.OperationInfo != nil\n}\n\nfunc (p *CanvasData) IsSetExternalFlowInfo() bool {\n\treturn p.ExternalFlowInfo != nil\n}\n\nfunc (p *CanvasData) IsSetIsBindAgent() bool {\n\treturn p.IsBindAgent != nil\n}\n\nfunc (p *CanvasData) IsSetBindBizID() bool {\n\treturn p.BindBizID != nil\n}\n\nfunc (p *CanvasData) IsSetBindBizType() bool {\n\treturn p.BindBizType != nil\n}\n\nfunc (p *CanvasData) IsSetWorkflowVersion() bool {\n\treturn p.WorkflowVersion != nil\n}\n\nfunc (p *CanvasData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CanvasData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CanvasData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkflow()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Workflow = _field\n\treturn nil\n}\nfunc (p *CanvasData) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewVCSCanvasData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.VcsData = _field\n\treturn nil\n}\nfunc (p *CanvasData) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewDBCanvasData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DbData = _field\n\treturn nil\n}\nfunc (p *CanvasData) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewOperationInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OperationInfo = _field\n\treturn nil\n}\nfunc (p *CanvasData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExternalFlowInfo = _field\n\treturn nil\n}\nfunc (p *CanvasData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsBindAgent = _field\n\treturn nil\n}\nfunc (p *CanvasData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BindBizID = _field\n\treturn nil\n}\nfunc (p *CanvasData) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BindBizType = _field\n\treturn nil\n}\nfunc (p *CanvasData) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowVersion = _field\n\treturn nil\n}\n\nfunc (p *CanvasData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CanvasData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CanvasData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Workflow.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CanvasData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"vcs_data\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.VcsData.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CanvasData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"db_data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.DbData.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CanvasData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"operation_info\", thrift.STRUCT, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.OperationInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CanvasData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExternalFlowInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"external_flow_info\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExternalFlowInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *CanvasData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsBindAgent() {\n\t\tif err = oprot.WriteFieldBegin(\"is_bind_agent\", thrift.BOOL, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsBindAgent); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *CanvasData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindBizID() {\n\t\tif err = oprot.WriteFieldBegin(\"bind_biz_id\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BindBizID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *CanvasData) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindBizType() {\n\t\tif err = oprot.WriteFieldBegin(\"bind_biz_type\", thrift.I32, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.BindBizType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *CanvasData) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_version\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WorkflowVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\n\nfunc (p *CanvasData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CanvasData(%+v)\", *p)\n\n}\n\ntype GetCanvasInfoRequest struct {\n\t// Space id, cannot be empty\n\tSpaceID string `thrift:\"space_id,1,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\t// Required, process id, not null\n\tWorkflowID *string    `thrift:\"workflow_id,2,optional\" form:\"workflow_id\" json:\"workflow_id,omitempty\" query:\"workflow_id\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetCanvasInfoRequest() *GetCanvasInfoRequest {\n\treturn &GetCanvasInfoRequest{}\n}\n\nfunc (p *GetCanvasInfoRequest) InitDefault() {\n}\n\nfunc (p *GetCanvasInfoRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar GetCanvasInfoRequest_WorkflowID_DEFAULT string\n\nfunc (p *GetCanvasInfoRequest) GetWorkflowID() (v string) {\n\tif !p.IsSetWorkflowID() {\n\t\treturn GetCanvasInfoRequest_WorkflowID_DEFAULT\n\t}\n\treturn *p.WorkflowID\n}\n\nvar GetCanvasInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetCanvasInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetCanvasInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetCanvasInfoRequest = map[int16]string{\n\t1:   \"space_id\",\n\t2:   \"workflow_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetCanvasInfoRequest) IsSetWorkflowID() bool {\n\treturn p.WorkflowID != nil\n}\n\nfunc (p *GetCanvasInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetCanvasInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetCanvasInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetCanvasInfoRequest[fieldId]))\n}\n\nfunc (p *GetCanvasInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetCanvasInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetCanvasInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetCanvasInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetCanvasInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetCanvasInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetCanvasInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowID() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WorkflowID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetCanvasInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetCanvasInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetCanvasInfoRequest(%+v)\", *p)\n\n}\n\ntype GetCanvasInfoResponse struct {\n\tData     *CanvasData    `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetCanvasInfoResponse() *GetCanvasInfoResponse {\n\treturn &GetCanvasInfoResponse{}\n}\n\nfunc (p *GetCanvasInfoResponse) InitDefault() {\n}\n\nvar GetCanvasInfoResponse_Data_DEFAULT *CanvasData\n\nfunc (p *GetCanvasInfoResponse) GetData() (v *CanvasData) {\n\tif !p.IsSetData() {\n\t\treturn GetCanvasInfoResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetCanvasInfoResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetCanvasInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetCanvasInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetCanvasInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetCanvasInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetCanvasInfoResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetCanvasInfoResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetCanvasInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetCanvasInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetCanvasInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetCanvasInfoResponse[fieldId]))\n}\n\nfunc (p *GetCanvasInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCanvasData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetCanvasInfoResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetCanvasInfoResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetCanvasInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetCanvasInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetCanvasInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetCanvasInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetCanvasInfoResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetCanvasInfoResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetCanvasInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetCanvasInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetCanvasInfoResponse(%+v)\", *p)\n\n}\n\ntype GetHistorySchemaRequest struct {\n\tSpaceID    string `thrift:\"space_id,1,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tWorkflowID string `thrift:\"workflow_id,2,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\t// You need to pass in when paging multiple times.\n\tCommitID        *string     `thrift:\"commit_id,3,optional\" form:\"commit_id\" json:\"commit_id,omitempty\" query:\"commit_id\"`\n\tType            OperateType `thrift:\"type,4,required\" form:\"type,required\" json:\"type,required\" query:\"type,required\"`\n\tEnv             *string     `thrift:\"env,5,optional\" form:\"env\" json:\"env,omitempty\" query:\"env\"`\n\tWorkflowVersion *string     `thrift:\"workflow_version,6,optional\" form:\"workflow_version\" json:\"workflow_version,omitempty\" query:\"workflow_version\"`\n\tProjectVersion  *string     `thrift:\"project_version,7,optional\" form:\"project_version\" json:\"project_version,omitempty\" query:\"project_version\"`\n\tProjectID       *string     `thrift:\"project_id,8,optional\" form:\"project_id\" json:\"project_id,omitempty\" query:\"project_id\"`\n\tExecuteID       *string     `thrift:\"execute_id,51,optional\" form:\"execute_id\" json:\"execute_id,omitempty\" query:\"execute_id\"`\n\tSubExecuteID    *string     `thrift:\"sub_execute_id,52,optional\" form:\"sub_execute_id\" json:\"sub_execute_id,omitempty\" query:\"sub_execute_id\"`\n\tLogID           *string     `thrift:\"log_id,53,optional\" form:\"log_id\" json:\"log_id,omitempty\" query:\"log_id\"`\n\tBase            *base.Base  `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetHistorySchemaRequest() *GetHistorySchemaRequest {\n\treturn &GetHistorySchemaRequest{}\n}\n\nfunc (p *GetHistorySchemaRequest) InitDefault() {\n}\n\nfunc (p *GetHistorySchemaRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *GetHistorySchemaRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar GetHistorySchemaRequest_CommitID_DEFAULT string\n\nfunc (p *GetHistorySchemaRequest) GetCommitID() (v string) {\n\tif !p.IsSetCommitID() {\n\t\treturn GetHistorySchemaRequest_CommitID_DEFAULT\n\t}\n\treturn *p.CommitID\n}\n\nfunc (p *GetHistorySchemaRequest) GetType() (v OperateType) {\n\treturn p.Type\n}\n\nvar GetHistorySchemaRequest_Env_DEFAULT string\n\nfunc (p *GetHistorySchemaRequest) GetEnv() (v string) {\n\tif !p.IsSetEnv() {\n\t\treturn GetHistorySchemaRequest_Env_DEFAULT\n\t}\n\treturn *p.Env\n}\n\nvar GetHistorySchemaRequest_WorkflowVersion_DEFAULT string\n\nfunc (p *GetHistorySchemaRequest) GetWorkflowVersion() (v string) {\n\tif !p.IsSetWorkflowVersion() {\n\t\treturn GetHistorySchemaRequest_WorkflowVersion_DEFAULT\n\t}\n\treturn *p.WorkflowVersion\n}\n\nvar GetHistorySchemaRequest_ProjectVersion_DEFAULT string\n\nfunc (p *GetHistorySchemaRequest) GetProjectVersion() (v string) {\n\tif !p.IsSetProjectVersion() {\n\t\treturn GetHistorySchemaRequest_ProjectVersion_DEFAULT\n\t}\n\treturn *p.ProjectVersion\n}\n\nvar GetHistorySchemaRequest_ProjectID_DEFAULT string\n\nfunc (p *GetHistorySchemaRequest) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn GetHistorySchemaRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar GetHistorySchemaRequest_ExecuteID_DEFAULT string\n\nfunc (p *GetHistorySchemaRequest) GetExecuteID() (v string) {\n\tif !p.IsSetExecuteID() {\n\t\treturn GetHistorySchemaRequest_ExecuteID_DEFAULT\n\t}\n\treturn *p.ExecuteID\n}\n\nvar GetHistorySchemaRequest_SubExecuteID_DEFAULT string\n\nfunc (p *GetHistorySchemaRequest) GetSubExecuteID() (v string) {\n\tif !p.IsSetSubExecuteID() {\n\t\treturn GetHistorySchemaRequest_SubExecuteID_DEFAULT\n\t}\n\treturn *p.SubExecuteID\n}\n\nvar GetHistorySchemaRequest_LogID_DEFAULT string\n\nfunc (p *GetHistorySchemaRequest) GetLogID() (v string) {\n\tif !p.IsSetLogID() {\n\t\treturn GetHistorySchemaRequest_LogID_DEFAULT\n\t}\n\treturn *p.LogID\n}\n\nvar GetHistorySchemaRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetHistorySchemaRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetHistorySchemaRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetHistorySchemaRequest = map[int16]string{\n\t1:   \"space_id\",\n\t2:   \"workflow_id\",\n\t3:   \"commit_id\",\n\t4:   \"type\",\n\t5:   \"env\",\n\t6:   \"workflow_version\",\n\t7:   \"project_version\",\n\t8:   \"project_id\",\n\t51:  \"execute_id\",\n\t52:  \"sub_execute_id\",\n\t53:  \"log_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetHistorySchemaRequest) IsSetCommitID() bool {\n\treturn p.CommitID != nil\n}\n\nfunc (p *GetHistorySchemaRequest) IsSetEnv() bool {\n\treturn p.Env != nil\n}\n\nfunc (p *GetHistorySchemaRequest) IsSetWorkflowVersion() bool {\n\treturn p.WorkflowVersion != nil\n}\n\nfunc (p *GetHistorySchemaRequest) IsSetProjectVersion() bool {\n\treturn p.ProjectVersion != nil\n}\n\nfunc (p *GetHistorySchemaRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *GetHistorySchemaRequest) IsSetExecuteID() bool {\n\treturn p.ExecuteID != nil\n}\n\nfunc (p *GetHistorySchemaRequest) IsSetSubExecuteID() bool {\n\treturn p.SubExecuteID != nil\n}\n\nfunc (p *GetHistorySchemaRequest) IsSetLogID() bool {\n\treturn p.LogID != nil\n}\n\nfunc (p *GetHistorySchemaRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetHistorySchemaRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\tvar issetWorkflowID bool = false\n\tvar issetType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 51:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField51(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 52:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField52(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 53:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField53(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetType {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetHistorySchemaRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetHistorySchemaRequest[fieldId]))\n}\n\nfunc (p *GetHistorySchemaRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field OperateType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = OperateType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Env = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowVersion = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectVersion = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaRequest) ReadField51(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaRequest) ReadField52(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubExecuteID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaRequest) ReadField53(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LogID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetHistorySchemaRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetHistorySchemaRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField51(oprot); err != nil {\n\t\t\tfieldId = 51\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField52(oprot); err != nil {\n\t\t\tfieldId = 52\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField53(oprot); err != nil {\n\t\t\tfieldId = 53\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetHistorySchemaRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitID() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEnv() {\n\t\tif err = oprot.WriteFieldBegin(\"env\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Env); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_version\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WorkflowVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"project_version\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaRequest) writeField51(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteID() {\n\t\tif err = oprot.WriteFieldBegin(\"execute_id\", thrift.STRING, 51); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExecuteID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 51 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 51 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaRequest) writeField52(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubExecuteID() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_execute_id\", thrift.STRING, 52); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SubExecuteID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 52 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 52 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaRequest) writeField53(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLogID() {\n\t\tif err = oprot.WriteFieldBegin(\"log_id\", thrift.STRING, 53); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LogID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 53 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 53 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetHistorySchemaRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetHistorySchemaRequest(%+v)\", *p)\n\n}\n\ntype GetHistorySchemaData struct {\n\tName         string       `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tDescribe     string       `thrift:\"describe,2\" form:\"describe\" json:\"describe\" query:\"describe\"`\n\tURL          string       `thrift:\"url,3\" form:\"url\" json:\"url\" query:\"url\"`\n\tSchema       string       `thrift:\"schema,4\" form:\"schema\" json:\"schema\" query:\"schema\"`\n\tFlowMode     WorkflowMode `thrift:\"flow_mode,5\" form:\"flow_mode\" json:\"flow_mode\" query:\"flow_mode\"`\n\tBindBizID    *string      `thrift:\"bind_biz_id,6,optional\" form:\"bind_biz_id\" json:\"bind_biz_id,omitempty\" query:\"bind_biz_id\"`\n\tBindBizType  *BindBizType `thrift:\"bind_biz_type,7,optional\" form:\"bind_biz_type\" json:\"bind_biz_type,omitempty\" query:\"bind_biz_type\"`\n\tWorkflowID   string       `thrift:\"workflow_id,8\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tCommitID     string       `thrift:\"commit_id,9\" form:\"commit_id\" json:\"commit_id\" query:\"commit_id\"`\n\tExecuteID    *string      `thrift:\"execute_id,51,optional\" form:\"execute_id\" json:\"execute_id,omitempty\" query:\"execute_id\"`\n\tSubExecuteID *string      `thrift:\"sub_execute_id,52,optional\" form:\"sub_execute_id\" json:\"sub_execute_id,omitempty\" query:\"sub_execute_id\"`\n\tLogID        *string      `thrift:\"log_id,53,optional\" form:\"log_id\" json:\"log_id,omitempty\" query:\"log_id\"`\n}\n\nfunc NewGetHistorySchemaData() *GetHistorySchemaData {\n\treturn &GetHistorySchemaData{}\n}\n\nfunc (p *GetHistorySchemaData) InitDefault() {\n}\n\nfunc (p *GetHistorySchemaData) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *GetHistorySchemaData) GetDescribe() (v string) {\n\treturn p.Describe\n}\n\nfunc (p *GetHistorySchemaData) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *GetHistorySchemaData) GetSchema() (v string) {\n\treturn p.Schema\n}\n\nfunc (p *GetHistorySchemaData) GetFlowMode() (v WorkflowMode) {\n\treturn p.FlowMode\n}\n\nvar GetHistorySchemaData_BindBizID_DEFAULT string\n\nfunc (p *GetHistorySchemaData) GetBindBizID() (v string) {\n\tif !p.IsSetBindBizID() {\n\t\treturn GetHistorySchemaData_BindBizID_DEFAULT\n\t}\n\treturn *p.BindBizID\n}\n\nvar GetHistorySchemaData_BindBizType_DEFAULT BindBizType\n\nfunc (p *GetHistorySchemaData) GetBindBizType() (v BindBizType) {\n\tif !p.IsSetBindBizType() {\n\t\treturn GetHistorySchemaData_BindBizType_DEFAULT\n\t}\n\treturn *p.BindBizType\n}\n\nfunc (p *GetHistorySchemaData) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *GetHistorySchemaData) GetCommitID() (v string) {\n\treturn p.CommitID\n}\n\nvar GetHistorySchemaData_ExecuteID_DEFAULT string\n\nfunc (p *GetHistorySchemaData) GetExecuteID() (v string) {\n\tif !p.IsSetExecuteID() {\n\t\treturn GetHistorySchemaData_ExecuteID_DEFAULT\n\t}\n\treturn *p.ExecuteID\n}\n\nvar GetHistorySchemaData_SubExecuteID_DEFAULT string\n\nfunc (p *GetHistorySchemaData) GetSubExecuteID() (v string) {\n\tif !p.IsSetSubExecuteID() {\n\t\treturn GetHistorySchemaData_SubExecuteID_DEFAULT\n\t}\n\treturn *p.SubExecuteID\n}\n\nvar GetHistorySchemaData_LogID_DEFAULT string\n\nfunc (p *GetHistorySchemaData) GetLogID() (v string) {\n\tif !p.IsSetLogID() {\n\t\treturn GetHistorySchemaData_LogID_DEFAULT\n\t}\n\treturn *p.LogID\n}\n\nvar fieldIDToName_GetHistorySchemaData = map[int16]string{\n\t1:  \"name\",\n\t2:  \"describe\",\n\t3:  \"url\",\n\t4:  \"schema\",\n\t5:  \"flow_mode\",\n\t6:  \"bind_biz_id\",\n\t7:  \"bind_biz_type\",\n\t8:  \"workflow_id\",\n\t9:  \"commit_id\",\n\t51: \"execute_id\",\n\t52: \"sub_execute_id\",\n\t53: \"log_id\",\n}\n\nfunc (p *GetHistorySchemaData) IsSetBindBizID() bool {\n\treturn p.BindBizID != nil\n}\n\nfunc (p *GetHistorySchemaData) IsSetBindBizType() bool {\n\treturn p.BindBizType != nil\n}\n\nfunc (p *GetHistorySchemaData) IsSetExecuteID() bool {\n\treturn p.ExecuteID != nil\n}\n\nfunc (p *GetHistorySchemaData) IsSetSubExecuteID() bool {\n\treturn p.SubExecuteID != nil\n}\n\nfunc (p *GetHistorySchemaData) IsSetLogID() bool {\n\treturn p.LogID != nil\n}\n\nfunc (p *GetHistorySchemaData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 51:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField51(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 52:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField52(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 53:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField53(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetHistorySchemaData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetHistorySchemaData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Describe = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Schema = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkflowMode(v)\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BindBizID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *BindBizType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := BindBizType(v)\n\t\t_field = &tmp\n\t}\n\tp.BindBizType = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaData) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaData) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CommitID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaData) ReadField51(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaData) ReadField52(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubExecuteID = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaData) ReadField53(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LogID = _field\n\treturn nil\n}\n\nfunc (p *GetHistorySchemaData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetHistorySchemaData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField51(oprot); err != nil {\n\t\t\tfieldId = 51\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField52(oprot); err != nil {\n\t\t\tfieldId = 52\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField53(oprot); err != nil {\n\t\t\tfieldId = 53\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetHistorySchemaData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"describe\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Describe); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"schema\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Schema); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FlowMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindBizID() {\n\t\tif err = oprot.WriteFieldBegin(\"bind_biz_id\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BindBizID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindBizType() {\n\t\tif err = oprot.WriteFieldBegin(\"bind_biz_type\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.BindBizType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaData) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaData) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"commit_id\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CommitID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaData) writeField51(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteID() {\n\t\tif err = oprot.WriteFieldBegin(\"execute_id\", thrift.STRING, 51); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExecuteID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 51 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 51 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaData) writeField52(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubExecuteID() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_execute_id\", thrift.STRING, 52); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SubExecuteID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 52 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 52 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaData) writeField53(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLogID() {\n\t\tif err = oprot.WriteFieldBegin(\"log_id\", thrift.STRING, 53); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LogID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 53 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 53 end error: \", p), err)\n}\n\nfunc (p *GetHistorySchemaData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetHistorySchemaData(%+v)\", *p)\n\n}\n\ntype GetHistorySchemaResponse struct {\n\tData     *GetHistorySchemaData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64                 `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp        `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetHistorySchemaResponse() *GetHistorySchemaResponse {\n\treturn &GetHistorySchemaResponse{}\n}\n\nfunc (p *GetHistorySchemaResponse) InitDefault() {\n}\n\nvar GetHistorySchemaResponse_Data_DEFAULT *GetHistorySchemaData\n\nfunc (p *GetHistorySchemaResponse) GetData() (v *GetHistorySchemaData) {\n\tif !p.IsSetData() {\n\t\treturn GetHistorySchemaResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetHistorySchemaResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetHistorySchemaResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetHistorySchemaResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetHistorySchemaResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetHistorySchemaResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetHistorySchemaResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetHistorySchemaResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetHistorySchemaResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetHistorySchemaResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetHistorySchemaResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetHistorySchemaResponse[fieldId]))\n}\n\nfunc (p *GetHistorySchemaResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetHistorySchemaData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetHistorySchemaResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetHistorySchemaResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetHistorySchemaResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetHistorySchemaResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetHistorySchemaResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetHistorySchemaResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetHistorySchemaResponse(%+v)\", *p)\n\n}\n\ntype DeleteWorkflowRequest struct {\n\tWorkflowID string        `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tSpaceID    string        `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tAction     *DeleteAction `thrift:\"action,3,optional\" form:\"action\" json:\"action,omitempty\" query:\"action\"`\n\tBase       *base.Base    `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteWorkflowRequest() *DeleteWorkflowRequest {\n\treturn &DeleteWorkflowRequest{}\n}\n\nfunc (p *DeleteWorkflowRequest) InitDefault() {\n}\n\nfunc (p *DeleteWorkflowRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *DeleteWorkflowRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar DeleteWorkflowRequest_Action_DEFAULT DeleteAction\n\nfunc (p *DeleteWorkflowRequest) GetAction() (v DeleteAction) {\n\tif !p.IsSetAction() {\n\t\treturn DeleteWorkflowRequest_Action_DEFAULT\n\t}\n\treturn *p.Action\n}\n\nvar DeleteWorkflowRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteWorkflowRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteWorkflowRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteWorkflowRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"space_id\",\n\t3:   \"action\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteWorkflowRequest) IsSetAction() bool {\n\treturn p.Action != nil\n}\n\nfunc (p *DeleteWorkflowRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteWorkflowRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteWorkflowRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteWorkflowRequest[fieldId]))\n}\n\nfunc (p *DeleteWorkflowRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *DeleteWorkflowRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *DeleteWorkflowRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *DeleteAction\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DeleteAction(v)\n\t\t_field = &tmp\n\t}\n\tp.Action = _field\n\treturn nil\n}\nfunc (p *DeleteWorkflowRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteWorkflowRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteWorkflowRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteWorkflowRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteWorkflowRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteWorkflowRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAction() {\n\t\tif err = oprot.WriteFieldBegin(\"action\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Action)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DeleteWorkflowRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteWorkflowRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteWorkflowRequest(%+v)\", *p)\n\n}\n\ntype DeleteWorkflowData struct {\n\tStatus DeleteStatus `thrift:\"status,1\" form:\"status\" json:\"status\" query:\"status\"`\n}\n\nfunc NewDeleteWorkflowData() *DeleteWorkflowData {\n\treturn &DeleteWorkflowData{}\n}\n\nfunc (p *DeleteWorkflowData) InitDefault() {\n}\n\nfunc (p *DeleteWorkflowData) GetStatus() (v DeleteStatus) {\n\treturn p.Status\n}\n\nvar fieldIDToName_DeleteWorkflowData = map[int16]string{\n\t1: \"status\",\n}\n\nfunc (p *DeleteWorkflowData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteWorkflowData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteWorkflowData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field DeleteStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = DeleteStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\n\nfunc (p *DeleteWorkflowData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteWorkflowData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteWorkflowData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *DeleteWorkflowData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteWorkflowData(%+v)\", *p)\n\n}\n\ntype DeleteWorkflowResponse struct {\n\tData     *DeleteWorkflowData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64               `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string              `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewDeleteWorkflowResponse() *DeleteWorkflowResponse {\n\treturn &DeleteWorkflowResponse{}\n}\n\nfunc (p *DeleteWorkflowResponse) InitDefault() {\n}\n\nvar DeleteWorkflowResponse_Data_DEFAULT *DeleteWorkflowData\n\nfunc (p *DeleteWorkflowResponse) GetData() (v *DeleteWorkflowData) {\n\tif !p.IsSetData() {\n\t\treturn DeleteWorkflowResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *DeleteWorkflowResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DeleteWorkflowResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DeleteWorkflowResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteWorkflowResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteWorkflowResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteWorkflowResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteWorkflowResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *DeleteWorkflowResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteWorkflowResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteWorkflowResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteWorkflowResponse[fieldId]))\n}\n\nfunc (p *DeleteWorkflowResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteWorkflowData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *DeleteWorkflowResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteWorkflowResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeleteWorkflowResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteWorkflowResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteWorkflowResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteWorkflowResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteWorkflowResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DeleteWorkflowResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DeleteWorkflowResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteWorkflowResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteWorkflowResponse(%+v)\", *p)\n\n}\n\ntype BatchDeleteWorkflowResponse struct {\n\tData     *DeleteWorkflowData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64               `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string              `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewBatchDeleteWorkflowResponse() *BatchDeleteWorkflowResponse {\n\treturn &BatchDeleteWorkflowResponse{}\n}\n\nfunc (p *BatchDeleteWorkflowResponse) InitDefault() {\n}\n\nvar BatchDeleteWorkflowResponse_Data_DEFAULT *DeleteWorkflowData\n\nfunc (p *BatchDeleteWorkflowResponse) GetData() (v *DeleteWorkflowData) {\n\tif !p.IsSetData() {\n\t\treturn BatchDeleteWorkflowResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *BatchDeleteWorkflowResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *BatchDeleteWorkflowResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar BatchDeleteWorkflowResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *BatchDeleteWorkflowResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn BatchDeleteWorkflowResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_BatchDeleteWorkflowResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *BatchDeleteWorkflowResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *BatchDeleteWorkflowResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *BatchDeleteWorkflowResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BatchDeleteWorkflowResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_BatchDeleteWorkflowResponse[fieldId]))\n}\n\nfunc (p *BatchDeleteWorkflowResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteWorkflowData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *BatchDeleteWorkflowResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *BatchDeleteWorkflowResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *BatchDeleteWorkflowResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *BatchDeleteWorkflowResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchDeleteWorkflowResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BatchDeleteWorkflowResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BatchDeleteWorkflowResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *BatchDeleteWorkflowResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *BatchDeleteWorkflowResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BatchDeleteWorkflowResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BatchDeleteWorkflowResponse(%+v)\", *p)\n\n}\n\ntype BatchDeleteWorkflowRequest struct {\n\tWorkflowIDList []string      `thrift:\"workflow_id_list,1,required\" form:\"workflow_id_list,required\" json:\"workflow_id_list,required\" query:\"workflow_id_list,required\"`\n\tSpaceID        string        `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tAction         *DeleteAction `thrift:\"action,3,optional\" form:\"action\" json:\"action,omitempty\" query:\"action\"`\n\tBase           *base.Base    `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewBatchDeleteWorkflowRequest() *BatchDeleteWorkflowRequest {\n\treturn &BatchDeleteWorkflowRequest{}\n}\n\nfunc (p *BatchDeleteWorkflowRequest) InitDefault() {\n}\n\nfunc (p *BatchDeleteWorkflowRequest) GetWorkflowIDList() (v []string) {\n\treturn p.WorkflowIDList\n}\n\nfunc (p *BatchDeleteWorkflowRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar BatchDeleteWorkflowRequest_Action_DEFAULT DeleteAction\n\nfunc (p *BatchDeleteWorkflowRequest) GetAction() (v DeleteAction) {\n\tif !p.IsSetAction() {\n\t\treturn BatchDeleteWorkflowRequest_Action_DEFAULT\n\t}\n\treturn *p.Action\n}\n\nvar BatchDeleteWorkflowRequest_Base_DEFAULT *base.Base\n\nfunc (p *BatchDeleteWorkflowRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn BatchDeleteWorkflowRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_BatchDeleteWorkflowRequest = map[int16]string{\n\t1:   \"workflow_id_list\",\n\t2:   \"space_id\",\n\t3:   \"action\",\n\t255: \"Base\",\n}\n\nfunc (p *BatchDeleteWorkflowRequest) IsSetAction() bool {\n\treturn p.Action != nil\n}\n\nfunc (p *BatchDeleteWorkflowRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *BatchDeleteWorkflowRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowIDList bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowIDList = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowIDList {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BatchDeleteWorkflowRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_BatchDeleteWorkflowRequest[fieldId]))\n}\n\nfunc (p *BatchDeleteWorkflowRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowIDList = _field\n\treturn nil\n}\nfunc (p *BatchDeleteWorkflowRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *BatchDeleteWorkflowRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *DeleteAction\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DeleteAction(v)\n\t\t_field = &tmp\n\t}\n\tp.Action = _field\n\treturn nil\n}\nfunc (p *BatchDeleteWorkflowRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *BatchDeleteWorkflowRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchDeleteWorkflowRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BatchDeleteWorkflowRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.WorkflowIDList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.WorkflowIDList {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BatchDeleteWorkflowRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BatchDeleteWorkflowRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAction() {\n\t\tif err = oprot.WriteFieldBegin(\"action\", thrift.I32, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Action)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BatchDeleteWorkflowRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *BatchDeleteWorkflowRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BatchDeleteWorkflowRequest(%+v)\", *p)\n\n}\n\ntype GetDeleteStrategyRequest struct {\n\tWorkflowID string     `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tSpaceID    string     `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetDeleteStrategyRequest() *GetDeleteStrategyRequest {\n\treturn &GetDeleteStrategyRequest{}\n}\n\nfunc (p *GetDeleteStrategyRequest) InitDefault() {\n}\n\nfunc (p *GetDeleteStrategyRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *GetDeleteStrategyRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar GetDeleteStrategyRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetDeleteStrategyRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetDeleteStrategyRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetDeleteStrategyRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetDeleteStrategyRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetDeleteStrategyRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDeleteStrategyRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDeleteStrategyRequest[fieldId]))\n}\n\nfunc (p *GetDeleteStrategyRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetDeleteStrategyRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetDeleteStrategyRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetDeleteStrategyRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDeleteStrategyRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDeleteStrategyRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDeleteStrategyRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetDeleteStrategyRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDeleteStrategyRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDeleteStrategyRequest(%+v)\", *p)\n\n}\n\ntype GetDeleteStrategyResponse struct {\n\tData     DeleteType     `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetDeleteStrategyResponse() *GetDeleteStrategyResponse {\n\treturn &GetDeleteStrategyResponse{}\n}\n\nfunc (p *GetDeleteStrategyResponse) InitDefault() {\n}\n\nfunc (p *GetDeleteStrategyResponse) GetData() (v DeleteType) {\n\treturn p.Data\n}\n\nfunc (p *GetDeleteStrategyResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetDeleteStrategyResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetDeleteStrategyResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetDeleteStrategyResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetDeleteStrategyResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetDeleteStrategyResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetDeleteStrategyResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetDeleteStrategyResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetDeleteStrategyResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetDeleteStrategyResponse[fieldId]))\n}\n\nfunc (p *GetDeleteStrategyResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field DeleteType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = DeleteType(v)\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetDeleteStrategyResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetDeleteStrategyResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetDeleteStrategyResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetDeleteStrategyResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDeleteStrategyResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetDeleteStrategyResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetDeleteStrategyResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetDeleteStrategyResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetDeleteStrategyResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetDeleteStrategyResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetDeleteStrategyResponse(%+v)\", *p)\n\n}\n\ntype PublishWorkflowRequest struct {\n\tWorkflowID      string `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tSpaceID         string `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tHasCollaborator bool   `thrift:\"has_collaborator,3,required\" form:\"has_collaborator,required\" json:\"has_collaborator,required\" query:\"has_collaborator,required\"`\n\t// Which environment to publish to, do not fill in the default line\n\tEnv *string `thrift:\"env,4,optional\" form:\"env\" json:\"env,omitempty\" query:\"env\"`\n\t// Which version to use to release, do not fill in the default latest commit version\n\tCommitID *string `thrift:\"commit_id,5,optional\" form:\"commit_id\" json:\"commit_id,omitempty\" query:\"commit_id\"`\n\t// Force release. If the TestRun step was executed before the process was published, the \"force\" parameter value should be false, or not passed; if the TestRun step was not executed before the process was published, the \"force\" parameter value should be true.\n\tForce *bool `thrift:\"force,6,optional\" form:\"force\" json:\"force,omitempty\" query:\"force\"`\n\t// Required, the version number of the published workflow, in SemVer format \"vx.y.z\", must be larger than the current version, the current version can be obtained through GetCanvasInfo\n\tWorkflowVersion *string `thrift:\"workflow_version,7,optional\" form:\"workflow_version\" json:\"workflow_version,omitempty\" query:\"workflow_version\"`\n\t// Workflow version description\n\tVersionDescription *string    `thrift:\"version_description,8,optional\" form:\"version_description\" json:\"version_description,omitempty\" query:\"version_description\"`\n\tBase               *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewPublishWorkflowRequest() *PublishWorkflowRequest {\n\treturn &PublishWorkflowRequest{}\n}\n\nfunc (p *PublishWorkflowRequest) InitDefault() {\n}\n\nfunc (p *PublishWorkflowRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *PublishWorkflowRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *PublishWorkflowRequest) GetHasCollaborator() (v bool) {\n\treturn p.HasCollaborator\n}\n\nvar PublishWorkflowRequest_Env_DEFAULT string\n\nfunc (p *PublishWorkflowRequest) GetEnv() (v string) {\n\tif !p.IsSetEnv() {\n\t\treturn PublishWorkflowRequest_Env_DEFAULT\n\t}\n\treturn *p.Env\n}\n\nvar PublishWorkflowRequest_CommitID_DEFAULT string\n\nfunc (p *PublishWorkflowRequest) GetCommitID() (v string) {\n\tif !p.IsSetCommitID() {\n\t\treturn PublishWorkflowRequest_CommitID_DEFAULT\n\t}\n\treturn *p.CommitID\n}\n\nvar PublishWorkflowRequest_Force_DEFAULT bool\n\nfunc (p *PublishWorkflowRequest) GetForce() (v bool) {\n\tif !p.IsSetForce() {\n\t\treturn PublishWorkflowRequest_Force_DEFAULT\n\t}\n\treturn *p.Force\n}\n\nvar PublishWorkflowRequest_WorkflowVersion_DEFAULT string\n\nfunc (p *PublishWorkflowRequest) GetWorkflowVersion() (v string) {\n\tif !p.IsSetWorkflowVersion() {\n\t\treturn PublishWorkflowRequest_WorkflowVersion_DEFAULT\n\t}\n\treturn *p.WorkflowVersion\n}\n\nvar PublishWorkflowRequest_VersionDescription_DEFAULT string\n\nfunc (p *PublishWorkflowRequest) GetVersionDescription() (v string) {\n\tif !p.IsSetVersionDescription() {\n\t\treturn PublishWorkflowRequest_VersionDescription_DEFAULT\n\t}\n\treturn *p.VersionDescription\n}\n\nvar PublishWorkflowRequest_Base_DEFAULT *base.Base\n\nfunc (p *PublishWorkflowRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn PublishWorkflowRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_PublishWorkflowRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"space_id\",\n\t3:   \"has_collaborator\",\n\t4:   \"env\",\n\t5:   \"commit_id\",\n\t6:   \"force\",\n\t7:   \"workflow_version\",\n\t8:   \"version_description\",\n\t255: \"Base\",\n}\n\nfunc (p *PublishWorkflowRequest) IsSetEnv() bool {\n\treturn p.Env != nil\n}\n\nfunc (p *PublishWorkflowRequest) IsSetCommitID() bool {\n\treturn p.CommitID != nil\n}\n\nfunc (p *PublishWorkflowRequest) IsSetForce() bool {\n\treturn p.Force != nil\n}\n\nfunc (p *PublishWorkflowRequest) IsSetWorkflowVersion() bool {\n\treturn p.WorkflowVersion != nil\n}\n\nfunc (p *PublishWorkflowRequest) IsSetVersionDescription() bool {\n\treturn p.VersionDescription != nil\n}\n\nfunc (p *PublishWorkflowRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *PublishWorkflowRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSpaceID bool = false\n\tvar issetHasCollaborator bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetHasCollaborator = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetHasCollaborator {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishWorkflowRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PublishWorkflowRequest[fieldId]))\n}\n\nfunc (p *PublishWorkflowRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasCollaborator = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Env = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitID = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Force = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowVersion = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.VersionDescription = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *PublishWorkflowRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishWorkflowRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishWorkflowRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishWorkflowRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishWorkflowRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_collaborator\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasCollaborator); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishWorkflowRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetEnv() {\n\t\tif err = oprot.WriteFieldBegin(\"env\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Env); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PublishWorkflowRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitID() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_id\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PublishWorkflowRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetForce() {\n\t\tif err = oprot.WriteFieldBegin(\"force\", thrift.BOOL, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.Force); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PublishWorkflowRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_version\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WorkflowVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PublishWorkflowRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersionDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"version_description\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.VersionDescription); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PublishWorkflowRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *PublishWorkflowRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishWorkflowRequest(%+v)\", *p)\n\n}\n\ntype PublishWorkflowData struct {\n\tWorkflowID      string `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tPublishCommitID string `thrift:\"publish_commit_id,2\" form:\"publish_commit_id\" json:\"publish_commit_id\" query:\"publish_commit_id\"`\n\tSuccess         bool   `thrift:\"success,3\" form:\"success\" json:\"success\" query:\"success\"`\n}\n\nfunc NewPublishWorkflowData() *PublishWorkflowData {\n\treturn &PublishWorkflowData{}\n}\n\nfunc (p *PublishWorkflowData) InitDefault() {\n}\n\nfunc (p *PublishWorkflowData) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *PublishWorkflowData) GetPublishCommitID() (v string) {\n\treturn p.PublishCommitID\n}\n\nfunc (p *PublishWorkflowData) GetSuccess() (v bool) {\n\treturn p.Success\n}\n\nvar fieldIDToName_PublishWorkflowData = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"publish_commit_id\",\n\t3: \"success\",\n}\n\nfunc (p *PublishWorkflowData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishWorkflowData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishWorkflowData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PublishCommitID = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *PublishWorkflowData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishWorkflowData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishWorkflowData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishWorkflowData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_commit_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PublishCommitID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishWorkflowData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"success\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Success); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *PublishWorkflowData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishWorkflowData(%+v)\", *p)\n\n}\n\ntype PublishWorkflowResponse struct {\n\tData     *PublishWorkflowData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64                `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string               `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp       `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewPublishWorkflowResponse() *PublishWorkflowResponse {\n\treturn &PublishWorkflowResponse{}\n}\n\nfunc (p *PublishWorkflowResponse) InitDefault() {\n}\n\nvar PublishWorkflowResponse_Data_DEFAULT *PublishWorkflowData\n\nfunc (p *PublishWorkflowResponse) GetData() (v *PublishWorkflowData) {\n\tif !p.IsSetData() {\n\t\treturn PublishWorkflowResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *PublishWorkflowResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *PublishWorkflowResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar PublishWorkflowResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *PublishWorkflowResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn PublishWorkflowResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_PublishWorkflowResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *PublishWorkflowResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *PublishWorkflowResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *PublishWorkflowResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishWorkflowResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_PublishWorkflowResponse[fieldId]))\n}\n\nfunc (p *PublishWorkflowResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPublishWorkflowData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *PublishWorkflowResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishWorkflowResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishWorkflowResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishWorkflowResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *PublishWorkflowResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *PublishWorkflowResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *PublishWorkflowResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishWorkflowResponse(%+v)\", *p)\n\n}\n\ntype CopyWorkflowRequest struct {\n\tWorkflowID string     `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tSpaceID    string     `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCopyWorkflowRequest() *CopyWorkflowRequest {\n\treturn &CopyWorkflowRequest{}\n}\n\nfunc (p *CopyWorkflowRequest) InitDefault() {\n}\n\nfunc (p *CopyWorkflowRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *CopyWorkflowRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar CopyWorkflowRequest_Base_DEFAULT *base.Base\n\nfunc (p *CopyWorkflowRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CopyWorkflowRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CopyWorkflowRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *CopyWorkflowRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CopyWorkflowRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CopyWorkflowRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CopyWorkflowRequest[fieldId]))\n}\n\nfunc (p *CopyWorkflowRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *CopyWorkflowRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *CopyWorkflowRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CopyWorkflowRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyWorkflowRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CopyWorkflowRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CopyWorkflowRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CopyWorkflowRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CopyWorkflowRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CopyWorkflowRequest(%+v)\", *p)\n\n}\n\ntype CopyWorkflowData struct {\n\tWorkflowID string     `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tSchemaType SchemaType `thrift:\"schema_type,2,required\" form:\"schema_type,required\" json:\"schema_type,required\" query:\"schema_type,required\"`\n}\n\nfunc NewCopyWorkflowData() *CopyWorkflowData {\n\treturn &CopyWorkflowData{}\n}\n\nfunc (p *CopyWorkflowData) InitDefault() {\n}\n\nfunc (p *CopyWorkflowData) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *CopyWorkflowData) GetSchemaType() (v SchemaType) {\n\treturn p.SchemaType\n}\n\nvar fieldIDToName_CopyWorkflowData = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"schema_type\",\n}\n\nfunc (p *CopyWorkflowData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSchemaType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSchemaType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSchemaType {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CopyWorkflowData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CopyWorkflowData[fieldId]))\n}\n\nfunc (p *CopyWorkflowData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *CopyWorkflowData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field SchemaType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SchemaType(v)\n\t}\n\tp.SchemaType = _field\n\treturn nil\n}\n\nfunc (p *CopyWorkflowData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyWorkflowData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CopyWorkflowData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CopyWorkflowData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"schema_type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SchemaType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *CopyWorkflowData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CopyWorkflowData(%+v)\", *p)\n\n}\n\ntype CopyWorkflowResponse struct {\n\tData     *CopyWorkflowData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64             `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string            `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp    `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCopyWorkflowResponse() *CopyWorkflowResponse {\n\treturn &CopyWorkflowResponse{}\n}\n\nfunc (p *CopyWorkflowResponse) InitDefault() {\n}\n\nvar CopyWorkflowResponse_Data_DEFAULT *CopyWorkflowData\n\nfunc (p *CopyWorkflowResponse) GetData() (v *CopyWorkflowData) {\n\tif !p.IsSetData() {\n\t\treturn CopyWorkflowResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *CopyWorkflowResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CopyWorkflowResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CopyWorkflowResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CopyWorkflowResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CopyWorkflowResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CopyWorkflowResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CopyWorkflowResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *CopyWorkflowResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CopyWorkflowResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CopyWorkflowResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CopyWorkflowResponse[fieldId]))\n}\n\nfunc (p *CopyWorkflowResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCopyWorkflowData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *CopyWorkflowResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CopyWorkflowResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CopyWorkflowResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CopyWorkflowResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyWorkflowResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CopyWorkflowResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CopyWorkflowResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CopyWorkflowResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CopyWorkflowResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CopyWorkflowResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CopyWorkflowResponse(%+v)\", *p)\n\n}\n\ntype UserInfo struct {\n\tUserID     int64  `thrift:\"user_id,1\" form:\"user_id\" json:\"user_id\" query:\"user_id\"`\n\tUserName   string `thrift:\"user_name,2\" form:\"user_name\" json:\"user_name\" query:\"user_name\"`\n\tUserAvatar string `thrift:\"user_avatar,3\" form:\"user_avatar\" json:\"user_avatar\" query:\"user_avatar\"`\n\t// user nickname\n\tNickname string `thrift:\"nickname,4\" form:\"nickname\" json:\"nickname\" query:\"nickname\"`\n}\n\nfunc NewUserInfo() *UserInfo {\n\treturn &UserInfo{}\n}\n\nfunc (p *UserInfo) InitDefault() {\n}\n\nfunc (p *UserInfo) GetUserID() (v int64) {\n\treturn p.UserID\n}\n\nfunc (p *UserInfo) GetUserName() (v string) {\n\treturn p.UserName\n}\n\nfunc (p *UserInfo) GetUserAvatar() (v string) {\n\treturn p.UserAvatar\n}\n\nfunc (p *UserInfo) GetNickname() (v string) {\n\treturn p.Nickname\n}\n\nvar fieldIDToName_UserInfo = map[int16]string{\n\t1: \"user_id\",\n\t2: \"user_name\",\n\t3: \"user_avatar\",\n\t4: \"nickname\",\n}\n\nfunc (p *UserInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserName = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserAvatar = _field\n\treturn nil\n}\nfunc (p *UserInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Nickname = _field\n\treturn nil\n}\n\nfunc (p *UserInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_avatar\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserAvatar); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UserInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"nickname\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Nickname); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *UserInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserInfo(%+v)\", *p)\n\n}\n\ntype ReleasedWorkflowData struct {\n\tWorkflowList []*ReleasedWorkflow `thrift:\"workflow_list,1\" form:\"workflow_list\" json:\"workflow_list\" query:\"workflow_list\"`\n\tTotal        int64               `thrift:\"total,2\" form:\"total\" json:\"total\" query:\"total\"`\n}\n\nfunc NewReleasedWorkflowData() *ReleasedWorkflowData {\n\treturn &ReleasedWorkflowData{}\n}\n\nfunc (p *ReleasedWorkflowData) InitDefault() {\n}\n\nfunc (p *ReleasedWorkflowData) GetWorkflowList() (v []*ReleasedWorkflow) {\n\treturn p.WorkflowList\n}\n\nfunc (p *ReleasedWorkflowData) GetTotal() (v int64) {\n\treturn p.Total\n}\n\nvar fieldIDToName_ReleasedWorkflowData = map[int16]string{\n\t1: \"workflow_list\",\n\t2: \"total\",\n}\n\nfunc (p *ReleasedWorkflowData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ReleasedWorkflowData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ReleasedWorkflowData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ReleasedWorkflow, 0, size)\n\tvalues := make([]ReleasedWorkflow, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowList = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflowData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\n\nfunc (p *ReleasedWorkflowData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ReleasedWorkflowData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ReleasedWorkflowData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.WorkflowList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflowData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *ReleasedWorkflowData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ReleasedWorkflowData(%+v)\", *p)\n\n}\n\ntype ReleasedWorkflow struct {\n\tPluginID        string         `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tWorkflowID      string         `thrift:\"workflow_id,2\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tSpaceID         string         `thrift:\"space_id,3\" form:\"space_id\" json:\"space_id\" query:\"space_id\"`\n\tName            string         `thrift:\"name,4\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc            string         `thrift:\"desc,5\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tIcon            string         `thrift:\"icon,6\" form:\"icon\" json:\"icon\" query:\"icon\"`\n\tInputs          string         `thrift:\"inputs,7\" form:\"inputs\" json:\"inputs\" query:\"inputs\"`\n\tOutputs         string         `thrift:\"outputs,8\" form:\"outputs\" json:\"outputs\" query:\"outputs\"`\n\tEndType         int32          `thrift:\"end_type,9\" form:\"end_type\" json:\"end_type\" query:\"end_type\"`\n\tType            int32          `thrift:\"type,10\" form:\"type\" json:\"type\" query:\"type\"`\n\tSubWorkflowList []*SubWorkflow `thrift:\"sub_workflow_list,11\" form:\"sub_workflow_list\" json:\"sub_workflow_list\" query:\"sub_workflow_list\"`\n\tVersion         string         `thrift:\"version,12\" form:\"version\" json:\"version\" query:\"version\"`\n\tCreateTime      int64          `thrift:\"create_time,13\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\tUpdateTime      int64          `thrift:\"update_time,14\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\t// Workflow creator information\n\tCreator               *Creator     `thrift:\"creator,15\" form:\"creator\" json:\"creator\" query:\"creator\"`\n\tFlowMode              WorkflowMode `thrift:\"flow_mode,16\" form:\"flow_mode\" json:\"flow_mode\" query:\"flow_mode\"`\n\tFlowVersion           string       `thrift:\"flow_version,17\" form:\"flow_version\" json:\"flow_version\" query:\"flow_version\"`\n\tFlowVersionDesc       string       `thrift:\"flow_version_desc,18\" form:\"flow_version_desc\" json:\"flow_version_desc\" query:\"flow_version_desc\"`\n\tLatestFlowVersion     string       `thrift:\"latest_flow_version,19\" form:\"latest_flow_version\" json:\"latest_flow_version\" query:\"latest_flow_version\"`\n\tLatestFlowVersionDesc string       `thrift:\"latest_flow_version_desc,20\" form:\"latest_flow_version_desc\" json:\"latest_flow_version_desc\" query:\"latest_flow_version_desc\"`\n\tCommitID              string       `thrift:\"commit_id,21\" form:\"commit_id\" json:\"commit_id\" query:\"commit_id\"`\n\tOutputNodes           []*NodeInfo  `thrift:\"output_nodes,22\" form:\"output_nodes\" json:\"output_nodes\" query:\"output_nodes\"`\n}\n\nfunc NewReleasedWorkflow() *ReleasedWorkflow {\n\treturn &ReleasedWorkflow{}\n}\n\nfunc (p *ReleasedWorkflow) InitDefault() {\n}\n\nfunc (p *ReleasedWorkflow) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *ReleasedWorkflow) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *ReleasedWorkflow) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *ReleasedWorkflow) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ReleasedWorkflow) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *ReleasedWorkflow) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nfunc (p *ReleasedWorkflow) GetInputs() (v string) {\n\treturn p.Inputs\n}\n\nfunc (p *ReleasedWorkflow) GetOutputs() (v string) {\n\treturn p.Outputs\n}\n\nfunc (p *ReleasedWorkflow) GetEndType() (v int32) {\n\treturn p.EndType\n}\n\nfunc (p *ReleasedWorkflow) GetType() (v int32) {\n\treturn p.Type\n}\n\nfunc (p *ReleasedWorkflow) GetSubWorkflowList() (v []*SubWorkflow) {\n\treturn p.SubWorkflowList\n}\n\nfunc (p *ReleasedWorkflow) GetVersion() (v string) {\n\treturn p.Version\n}\n\nfunc (p *ReleasedWorkflow) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *ReleasedWorkflow) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nvar ReleasedWorkflow_Creator_DEFAULT *Creator\n\nfunc (p *ReleasedWorkflow) GetCreator() (v *Creator) {\n\tif !p.IsSetCreator() {\n\t\treturn ReleasedWorkflow_Creator_DEFAULT\n\t}\n\treturn p.Creator\n}\n\nfunc (p *ReleasedWorkflow) GetFlowMode() (v WorkflowMode) {\n\treturn p.FlowMode\n}\n\nfunc (p *ReleasedWorkflow) GetFlowVersion() (v string) {\n\treturn p.FlowVersion\n}\n\nfunc (p *ReleasedWorkflow) GetFlowVersionDesc() (v string) {\n\treturn p.FlowVersionDesc\n}\n\nfunc (p *ReleasedWorkflow) GetLatestFlowVersion() (v string) {\n\treturn p.LatestFlowVersion\n}\n\nfunc (p *ReleasedWorkflow) GetLatestFlowVersionDesc() (v string) {\n\treturn p.LatestFlowVersionDesc\n}\n\nfunc (p *ReleasedWorkflow) GetCommitID() (v string) {\n\treturn p.CommitID\n}\n\nfunc (p *ReleasedWorkflow) GetOutputNodes() (v []*NodeInfo) {\n\treturn p.OutputNodes\n}\n\nvar fieldIDToName_ReleasedWorkflow = map[int16]string{\n\t1:  \"plugin_id\",\n\t2:  \"workflow_id\",\n\t3:  \"space_id\",\n\t4:  \"name\",\n\t5:  \"desc\",\n\t6:  \"icon\",\n\t7:  \"inputs\",\n\t8:  \"outputs\",\n\t9:  \"end_type\",\n\t10: \"type\",\n\t11: \"sub_workflow_list\",\n\t12: \"version\",\n\t13: \"create_time\",\n\t14: \"update_time\",\n\t15: \"creator\",\n\t16: \"flow_mode\",\n\t17: \"flow_version\",\n\t18: \"flow_version_desc\",\n\t19: \"latest_flow_version\",\n\t20: \"latest_flow_version_desc\",\n\t21: \"commit_id\",\n\t22: \"output_nodes\",\n}\n\nfunc (p *ReleasedWorkflow) IsSetCreator() bool {\n\treturn p.Creator != nil\n}\n\nfunc (p *ReleasedWorkflow) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ReleasedWorkflow[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ReleasedWorkflow) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Inputs = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Outputs = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EndType = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField11(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*SubWorkflow, 0, size)\n\tvalues := make([]SubWorkflow, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubWorkflowList = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField15(iprot thrift.TProtocol) error {\n\t_field := NewCreator()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Creator = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkflowMode(v)\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FlowVersion = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FlowVersionDesc = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LatestFlowVersion = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LatestFlowVersionDesc = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CommitID = _field\n\treturn nil\n}\nfunc (p *ReleasedWorkflow) ReadField22(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*NodeInfo, 0, size)\n\tvalues := make([]NodeInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OutputNodes = _field\n\treturn nil\n}\n\nfunc (p *ReleasedWorkflow) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ReleasedWorkflow\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ReleasedWorkflow) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"inputs\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Inputs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"outputs\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Outputs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"end_type\", thrift.I32, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.EndType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sub_workflow_list\", thrift.LIST, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubWorkflowList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SubWorkflowList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I64, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I64, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator\", thrift.STRUCT, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Creator.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField16(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I32, 16); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FlowMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"flow_version\", thrift.STRING, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FlowVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"flow_version_desc\", thrift.STRING, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FlowVersionDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField19(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"latest_flow_version\", thrift.STRING, 19); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LatestFlowVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField20(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"latest_flow_version_desc\", thrift.STRING, 20); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LatestFlowVersionDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField21(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"commit_id\", thrift.STRING, 21); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CommitID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *ReleasedWorkflow) writeField22(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"output_nodes\", thrift.LIST, 22); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OutputNodes)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.OutputNodes {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\n\nfunc (p *ReleasedWorkflow) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ReleasedWorkflow(%+v)\", *p)\n\n}\n\ntype SubWorkflow struct {\n\tID   string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n}\n\nfunc NewSubWorkflow() *SubWorkflow {\n\treturn &SubWorkflow{}\n}\n\nfunc (p *SubWorkflow) InitDefault() {\n}\n\nfunc (p *SubWorkflow) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *SubWorkflow) GetName() (v string) {\n\treturn p.Name\n}\n\nvar fieldIDToName_SubWorkflow = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n}\n\nfunc (p *SubWorkflow) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SubWorkflow[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SubWorkflow) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *SubWorkflow) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\n\nfunc (p *SubWorkflow) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SubWorkflow\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SubWorkflow) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SubWorkflow) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *SubWorkflow) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SubWorkflow(%+v)\", *p)\n\n}\n\n// Workflow filter\ntype WorkflowFilter struct {\n\tWorkflowID      string  `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tWorkflowVersion *string `thrift:\"workflow_version,2,optional\" form:\"workflow_version\" json:\"workflow_version,omitempty\" query:\"workflow_version\"`\n}\n\nfunc NewWorkflowFilter() *WorkflowFilter {\n\treturn &WorkflowFilter{}\n}\n\nfunc (p *WorkflowFilter) InitDefault() {\n}\n\nfunc (p *WorkflowFilter) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar WorkflowFilter_WorkflowVersion_DEFAULT string\n\nfunc (p *WorkflowFilter) GetWorkflowVersion() (v string) {\n\tif !p.IsSetWorkflowVersion() {\n\t\treturn WorkflowFilter_WorkflowVersion_DEFAULT\n\t}\n\treturn *p.WorkflowVersion\n}\n\nvar fieldIDToName_WorkflowFilter = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"workflow_version\",\n}\n\nfunc (p *WorkflowFilter) IsSetWorkflowVersion() bool {\n\treturn p.WorkflowVersion != nil\n}\n\nfunc (p *WorkflowFilter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowFilter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowFilter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *WorkflowFilter) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowVersion = _field\n\treturn nil\n}\n\nfunc (p *WorkflowFilter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowFilter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowFilter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowFilter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_version\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WorkflowVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *WorkflowFilter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowFilter(%+v)\", *p)\n\n}\n\ntype GetReleasedWorkflowsRequest struct {\n\tPage            *int32        `thrift:\"page,1,optional\" form:\"page\" json:\"page,omitempty\" query:\"page\"`\n\tSize            *int32        `thrift:\"size,2,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\tType            *WorkFlowType `thrift:\"type,4,optional\" form:\"type\" json:\"type,omitempty\" query:\"type\"`\n\tName            *string       `thrift:\"name,5,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tWorkflowIds     []string      `thrift:\"workflow_ids,6,optional\" form:\"workflow_ids\" json:\"workflow_ids,omitempty\" query:\"workflow_ids\"`\n\tTags            *Tag          `thrift:\"tags,7,optional\" form:\"tags\" json:\"tags,omitempty\" query:\"tags\"`\n\tSpaceID         *string       `thrift:\"space_id,8,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n\tOrderBy         *OrderBy      `thrift:\"order_by,9,optional\" form:\"order_by\" json:\"order_by,omitempty\" query:\"order_by\"`\n\tLoginUserCreate *bool         `thrift:\"login_user_create,10,optional\" form:\"login_user_create\" json:\"login_user_create,omitempty\" query:\"login_user_create\"`\n\t// Workflow or imageflow, default to workflow\n\tFlowMode *WorkflowMode `thrift:\"flow_mode,11,optional\" form:\"flow_mode\" json:\"flow_mode,omitempty\" query:\"flow_mode\"`\n\t// Filter conditions, support workflow_id and workflow_version\n\tWorkflowFilterList []*WorkflowFilter `thrift:\"workflow_filter_list,12,optional\" form:\"workflow_filter_list\" json:\"workflow_filter_list,omitempty\" query:\"workflow_filter_list\"`\n\tBase               *base.Base        `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetReleasedWorkflowsRequest() *GetReleasedWorkflowsRequest {\n\treturn &GetReleasedWorkflowsRequest{}\n}\n\nfunc (p *GetReleasedWorkflowsRequest) InitDefault() {\n}\n\nvar GetReleasedWorkflowsRequest_Page_DEFAULT int32\n\nfunc (p *GetReleasedWorkflowsRequest) GetPage() (v int32) {\n\tif !p.IsSetPage() {\n\t\treturn GetReleasedWorkflowsRequest_Page_DEFAULT\n\t}\n\treturn *p.Page\n}\n\nvar GetReleasedWorkflowsRequest_Size_DEFAULT int32\n\nfunc (p *GetReleasedWorkflowsRequest) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn GetReleasedWorkflowsRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar GetReleasedWorkflowsRequest_Type_DEFAULT WorkFlowType\n\nfunc (p *GetReleasedWorkflowsRequest) GetType() (v WorkFlowType) {\n\tif !p.IsSetType() {\n\t\treturn GetReleasedWorkflowsRequest_Type_DEFAULT\n\t}\n\treturn *p.Type\n}\n\nvar GetReleasedWorkflowsRequest_Name_DEFAULT string\n\nfunc (p *GetReleasedWorkflowsRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn GetReleasedWorkflowsRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar GetReleasedWorkflowsRequest_WorkflowIds_DEFAULT []string\n\nfunc (p *GetReleasedWorkflowsRequest) GetWorkflowIds() (v []string) {\n\tif !p.IsSetWorkflowIds() {\n\t\treturn GetReleasedWorkflowsRequest_WorkflowIds_DEFAULT\n\t}\n\treturn p.WorkflowIds\n}\n\nvar GetReleasedWorkflowsRequest_Tags_DEFAULT Tag\n\nfunc (p *GetReleasedWorkflowsRequest) GetTags() (v Tag) {\n\tif !p.IsSetTags() {\n\t\treturn GetReleasedWorkflowsRequest_Tags_DEFAULT\n\t}\n\treturn *p.Tags\n}\n\nvar GetReleasedWorkflowsRequest_SpaceID_DEFAULT string\n\nfunc (p *GetReleasedWorkflowsRequest) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn GetReleasedWorkflowsRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar GetReleasedWorkflowsRequest_OrderBy_DEFAULT OrderBy\n\nfunc (p *GetReleasedWorkflowsRequest) GetOrderBy() (v OrderBy) {\n\tif !p.IsSetOrderBy() {\n\t\treturn GetReleasedWorkflowsRequest_OrderBy_DEFAULT\n\t}\n\treturn *p.OrderBy\n}\n\nvar GetReleasedWorkflowsRequest_LoginUserCreate_DEFAULT bool\n\nfunc (p *GetReleasedWorkflowsRequest) GetLoginUserCreate() (v bool) {\n\tif !p.IsSetLoginUserCreate() {\n\t\treturn GetReleasedWorkflowsRequest_LoginUserCreate_DEFAULT\n\t}\n\treturn *p.LoginUserCreate\n}\n\nvar GetReleasedWorkflowsRequest_FlowMode_DEFAULT WorkflowMode\n\nfunc (p *GetReleasedWorkflowsRequest) GetFlowMode() (v WorkflowMode) {\n\tif !p.IsSetFlowMode() {\n\t\treturn GetReleasedWorkflowsRequest_FlowMode_DEFAULT\n\t}\n\treturn *p.FlowMode\n}\n\nvar GetReleasedWorkflowsRequest_WorkflowFilterList_DEFAULT []*WorkflowFilter\n\nfunc (p *GetReleasedWorkflowsRequest) GetWorkflowFilterList() (v []*WorkflowFilter) {\n\tif !p.IsSetWorkflowFilterList() {\n\t\treturn GetReleasedWorkflowsRequest_WorkflowFilterList_DEFAULT\n\t}\n\treturn p.WorkflowFilterList\n}\n\nvar GetReleasedWorkflowsRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetReleasedWorkflowsRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetReleasedWorkflowsRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetReleasedWorkflowsRequest = map[int16]string{\n\t1:   \"page\",\n\t2:   \"size\",\n\t4:   \"type\",\n\t5:   \"name\",\n\t6:   \"workflow_ids\",\n\t7:   \"tags\",\n\t8:   \"space_id\",\n\t9:   \"order_by\",\n\t10:  \"login_user_create\",\n\t11:  \"flow_mode\",\n\t12:  \"workflow_filter_list\",\n\t255: \"Base\",\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetPage() bool {\n\treturn p.Page != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetType() bool {\n\treturn p.Type != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetWorkflowIds() bool {\n\treturn p.WorkflowIds != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetTags() bool {\n\treturn p.Tags != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetOrderBy() bool {\n\treturn p.OrderBy != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetLoginUserCreate() bool {\n\treturn p.LoginUserCreate != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetFlowMode() bool {\n\treturn p.FlowMode != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetWorkflowFilterList() bool {\n\treturn p.WorkflowFilterList != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetReleasedWorkflowsRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetReleasedWorkflowsRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *WorkFlowType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := WorkFlowType(v)\n\t\t_field = &tmp\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsRequest) ReadField6(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowIds = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *Tag\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := Tag(v)\n\t\t_field = &tmp\n\t}\n\tp.Tags = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *OrderBy\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := OrderBy(v)\n\t\t_field = &tmp\n\t}\n\tp.OrderBy = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LoginUserCreate = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := WorkflowMode(v)\n\t\t_field = &tmp\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsRequest) ReadField12(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowFilter, 0, size)\n\tvalues := make([]WorkflowFilter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowFilterList = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetReleasedWorkflowsRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetReleasedWorkflowsRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetReleasedWorkflowsRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPage() {\n\t\tif err = oprot.WriteFieldBegin(\"page\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Page); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetType() {\n\t\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Type)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowIds() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_ids\", thrift.LIST, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.WorkflowIds)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.WorkflowIds {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTags() {\n\t\tif err = oprot.WriteFieldBegin(\"tags\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Tags)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderBy() {\n\t\tif err = oprot.WriteFieldBegin(\"order_by\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.OrderBy)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLoginUserCreate() {\n\t\tif err = oprot.WriteFieldBegin(\"login_user_create\", thrift.BOOL, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.LoginUserCreate); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFlowMode() {\n\t\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FlowMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowFilterList() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_filter_list\", thrift.LIST, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowFilterList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.WorkflowFilterList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetReleasedWorkflowsRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetReleasedWorkflowsRequest(%+v)\", *p)\n\n}\n\ntype GetReleasedWorkflowsResponse struct {\n\tData     *ReleasedWorkflowData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64                 `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp        `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetReleasedWorkflowsResponse() *GetReleasedWorkflowsResponse {\n\treturn &GetReleasedWorkflowsResponse{}\n}\n\nfunc (p *GetReleasedWorkflowsResponse) InitDefault() {\n}\n\nvar GetReleasedWorkflowsResponse_Data_DEFAULT *ReleasedWorkflowData\n\nfunc (p *GetReleasedWorkflowsResponse) GetData() (v *ReleasedWorkflowData) {\n\tif !p.IsSetData() {\n\t\treturn GetReleasedWorkflowsResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetReleasedWorkflowsResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetReleasedWorkflowsResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetReleasedWorkflowsResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetReleasedWorkflowsResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetReleasedWorkflowsResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetReleasedWorkflowsResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetReleasedWorkflowsResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetReleasedWorkflowsResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetReleasedWorkflowsResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetReleasedWorkflowsResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetReleasedWorkflowsResponse[fieldId]))\n}\n\nfunc (p *GetReleasedWorkflowsResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewReleasedWorkflowData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetReleasedWorkflowsResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetReleasedWorkflowsResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetReleasedWorkflowsResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetReleasedWorkflowsResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetReleasedWorkflowsResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetReleasedWorkflowsResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetReleasedWorkflowsResponse(%+v)\", *p)\n\n}\n\ntype WorkflowReferencesData struct {\n\tWorkflowList []*Workflow `thrift:\"workflow_list,1\" form:\"workflow_list\" json:\"workflow_list\" query:\"workflow_list\"`\n}\n\nfunc NewWorkflowReferencesData() *WorkflowReferencesData {\n\treturn &WorkflowReferencesData{}\n}\n\nfunc (p *WorkflowReferencesData) InitDefault() {\n}\n\nfunc (p *WorkflowReferencesData) GetWorkflowList() (v []*Workflow) {\n\treturn p.WorkflowList\n}\n\nvar fieldIDToName_WorkflowReferencesData = map[int16]string{\n\t1: \"workflow_list\",\n}\n\nfunc (p *WorkflowReferencesData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowReferencesData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowReferencesData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Workflow, 0, size)\n\tvalues := make([]Workflow, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowList = _field\n\treturn nil\n}\n\nfunc (p *WorkflowReferencesData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowReferencesData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowReferencesData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.WorkflowList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowReferencesData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowReferencesData(%+v)\", *p)\n\n}\n\ntype GetWorkflowReferencesRequest struct {\n\tWorkflowID string     `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tSpaceID    string     `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetWorkflowReferencesRequest() *GetWorkflowReferencesRequest {\n\treturn &GetWorkflowReferencesRequest{}\n}\n\nfunc (p *GetWorkflowReferencesRequest) InitDefault() {\n}\n\nfunc (p *GetWorkflowReferencesRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *GetWorkflowReferencesRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar GetWorkflowReferencesRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetWorkflowReferencesRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetWorkflowReferencesRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetWorkflowReferencesRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetWorkflowReferencesRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetWorkflowReferencesRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkflowReferencesRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetWorkflowReferencesRequest[fieldId]))\n}\n\nfunc (p *GetWorkflowReferencesRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowReferencesRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowReferencesRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetWorkflowReferencesRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowReferencesRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowReferencesRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkflowReferencesRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetWorkflowReferencesRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkflowReferencesRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkflowReferencesRequest(%+v)\", *p)\n\n}\n\ntype GetWorkflowReferencesResponse struct {\n\tData     *WorkflowReferencesData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64                   `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                  `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp          `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetWorkflowReferencesResponse() *GetWorkflowReferencesResponse {\n\treturn &GetWorkflowReferencesResponse{}\n}\n\nfunc (p *GetWorkflowReferencesResponse) InitDefault() {\n}\n\nvar GetWorkflowReferencesResponse_Data_DEFAULT *WorkflowReferencesData\n\nfunc (p *GetWorkflowReferencesResponse) GetData() (v *WorkflowReferencesData) {\n\tif !p.IsSetData() {\n\t\treturn GetWorkflowReferencesResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetWorkflowReferencesResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetWorkflowReferencesResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetWorkflowReferencesResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetWorkflowReferencesResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetWorkflowReferencesResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetWorkflowReferencesResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetWorkflowReferencesResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetWorkflowReferencesResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetWorkflowReferencesResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkflowReferencesResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetWorkflowReferencesResponse[fieldId]))\n}\n\nfunc (p *GetWorkflowReferencesResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowReferencesData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetWorkflowReferencesResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetWorkflowReferencesResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetWorkflowReferencesResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetWorkflowReferencesResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowReferencesResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowReferencesResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkflowReferencesResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetWorkflowReferencesResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetWorkflowReferencesResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkflowReferencesResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkflowReferencesResponse(%+v)\", *p)\n\n}\n\ntype GetExampleWorkFlowListResponse struct {\n\tData     *WorkFlowListData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64             `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string            `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp    `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetExampleWorkFlowListResponse() *GetExampleWorkFlowListResponse {\n\treturn &GetExampleWorkFlowListResponse{}\n}\n\nfunc (p *GetExampleWorkFlowListResponse) InitDefault() {\n}\n\nvar GetExampleWorkFlowListResponse_Data_DEFAULT *WorkFlowListData\n\nfunc (p *GetExampleWorkFlowListResponse) GetData() (v *WorkFlowListData) {\n\tif !p.IsSetData() {\n\t\treturn GetExampleWorkFlowListResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetExampleWorkFlowListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetExampleWorkFlowListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetExampleWorkFlowListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetExampleWorkFlowListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetExampleWorkFlowListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetExampleWorkFlowListResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetExampleWorkFlowListResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetExampleWorkFlowListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetExampleWorkFlowListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetExampleWorkFlowListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetExampleWorkFlowListResponse[fieldId]))\n}\n\nfunc (p *GetExampleWorkFlowListResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkFlowListData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetExampleWorkFlowListResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetExampleWorkFlowListResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetExampleWorkFlowListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetExampleWorkFlowListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetExampleWorkFlowListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetExampleWorkFlowListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetExampleWorkFlowListResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetExampleWorkFlowListResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetExampleWorkFlowListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetExampleWorkFlowListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetExampleWorkFlowListResponse(%+v)\", *p)\n\n}\n\ntype GetExampleWorkFlowListRequest struct {\n\t// Paging function, specifying the page number of the list of results you want to retrieve.\n\tPage *int32 `thrift:\"page,1,optional\" form:\"page\" json:\"page,omitempty\" query:\"page\"`\n\t// Paging function, specifies the number of entries returned per page, must be greater than 0, less than or equal to 100\n\tSize *int32 `thrift:\"size,2,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\t// Filter the list of sample workflows by the name of the workflow.\n\tName *string `thrift:\"name,5,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\t// Filter the sample workflow list based on the workflow pattern (e.g., standard workflow, conversation flow, etc.).\n\tFlowMode *WorkflowMode `thrift:\"flow_mode,11,optional\" form:\"flow_mode\" json:\"flow_mode,omitempty\" query:\"flow_mode\"`\n\t// Bot's Workflow as Agent mode will be used, only scenarios with BotAgent = 3 will be used\n\tChecker []CheckType `thrift:\"checker,14,optional\" form:\"checker\" json:\"checker,omitempty\" query:\"checker\"`\n\tBase    *base.Base  `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetExampleWorkFlowListRequest() *GetExampleWorkFlowListRequest {\n\treturn &GetExampleWorkFlowListRequest{}\n}\n\nfunc (p *GetExampleWorkFlowListRequest) InitDefault() {\n}\n\nvar GetExampleWorkFlowListRequest_Page_DEFAULT int32\n\nfunc (p *GetExampleWorkFlowListRequest) GetPage() (v int32) {\n\tif !p.IsSetPage() {\n\t\treturn GetExampleWorkFlowListRequest_Page_DEFAULT\n\t}\n\treturn *p.Page\n}\n\nvar GetExampleWorkFlowListRequest_Size_DEFAULT int32\n\nfunc (p *GetExampleWorkFlowListRequest) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn GetExampleWorkFlowListRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar GetExampleWorkFlowListRequest_Name_DEFAULT string\n\nfunc (p *GetExampleWorkFlowListRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn GetExampleWorkFlowListRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar GetExampleWorkFlowListRequest_FlowMode_DEFAULT WorkflowMode\n\nfunc (p *GetExampleWorkFlowListRequest) GetFlowMode() (v WorkflowMode) {\n\tif !p.IsSetFlowMode() {\n\t\treturn GetExampleWorkFlowListRequest_FlowMode_DEFAULT\n\t}\n\treturn *p.FlowMode\n}\n\nvar GetExampleWorkFlowListRequest_Checker_DEFAULT []CheckType\n\nfunc (p *GetExampleWorkFlowListRequest) GetChecker() (v []CheckType) {\n\tif !p.IsSetChecker() {\n\t\treturn GetExampleWorkFlowListRequest_Checker_DEFAULT\n\t}\n\treturn p.Checker\n}\n\nvar GetExampleWorkFlowListRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetExampleWorkFlowListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetExampleWorkFlowListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetExampleWorkFlowListRequest = map[int16]string{\n\t1:   \"page\",\n\t2:   \"size\",\n\t5:   \"name\",\n\t11:  \"flow_mode\",\n\t14:  \"checker\",\n\t255: \"Base\",\n}\n\nfunc (p *GetExampleWorkFlowListRequest) IsSetPage() bool {\n\treturn p.Page != nil\n}\n\nfunc (p *GetExampleWorkFlowListRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *GetExampleWorkFlowListRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *GetExampleWorkFlowListRequest) IsSetFlowMode() bool {\n\treturn p.FlowMode != nil\n}\n\nfunc (p *GetExampleWorkFlowListRequest) IsSetChecker() bool {\n\treturn p.Checker != nil\n}\n\nfunc (p *GetExampleWorkFlowListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetExampleWorkFlowListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetExampleWorkFlowListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetExampleWorkFlowListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *GetExampleWorkFlowListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *GetExampleWorkFlowListRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *GetExampleWorkFlowListRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := WorkflowMode(v)\n\t\t_field = &tmp\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *GetExampleWorkFlowListRequest) ReadField14(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]CheckType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem CheckType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = CheckType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Checker = _field\n\treturn nil\n}\nfunc (p *GetExampleWorkFlowListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetExampleWorkFlowListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetExampleWorkFlowListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetExampleWorkFlowListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPage() {\n\t\tif err = oprot.WriteFieldBegin(\"page\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Page); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetExampleWorkFlowListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetExampleWorkFlowListRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetExampleWorkFlowListRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFlowMode() {\n\t\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FlowMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetExampleWorkFlowListRequest) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChecker() {\n\t\tif err = oprot.WriteFieldBegin(\"checker\", thrift.LIST, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.Checker)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Checker {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *GetExampleWorkFlowListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetExampleWorkFlowListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetExampleWorkFlowListRequest(%+v)\", *p)\n\n}\n\ntype GetWorkFlowListRequest struct {\n\tPage *int32 `thrift:\"page,1,optional\" form:\"page\" json:\"page,omitempty\" query:\"page\"`\n\t// Page size, usually 10.\n\tSize *int32 `thrift:\"size,2,optional\" form:\"size\" json:\"size,omitempty\" query:\"size\"`\n\t// Query the corresponding process according to the process id list\n\tWorkflowIds []string `thrift:\"workflow_ids,3,optional\" form:\"workflow_ids\" json:\"workflow_ids,omitempty\" query:\"workflow_ids\"`\n\t// Filter processes by process type\n\tType *WorkFlowType `thrift:\"type,4,optional\" form:\"type\" json:\"type,omitempty\" query:\"type\"`\n\t// Filter processes by process name\n\tName *string `thrift:\"name,5,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\t// Filter process by label\n\tTags *Tag `thrift:\"tags,6,optional\" form:\"tags\" json:\"tags,omitempty\" query:\"tags\"`\n\t// Required, space id\n\tSpaceID *string `thrift:\"space_id,7,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n\t// Filter process according to whether the process has been published\n\tStatus  *WorkFlowListStatus `thrift:\"status,8,optional\" form:\"status\" json:\"status,omitempty\" query:\"status\"`\n\tOrderBy *OrderBy            `thrift:\"order_by,9,optional\" form:\"order_by\" json:\"order_by,omitempty\" query:\"order_by\"`\n\t// Filter processes based on whether the interface requester is the process creator\n\tLoginUserCreate *bool `thrift:\"login_user_create,10,optional\" form:\"login_user_create\" json:\"login_user_create,omitempty\" query:\"login_user_create\"`\n\t// Workflow or chatflow, the default is workflow. Filter processes by process type\n\tFlowMode *WorkflowMode `thrift:\"flow_mode,11,optional\" form:\"flow_mode\" json:\"flow_mode,omitempty\" query:\"flow_mode\"`\n\t// New field for filtering schema_type\n\tSchemaTypeList []SchemaType `thrift:\"schema_type_list,12,optional\" form:\"schema_type_list\" json:\"schema_type_list,omitempty\" query:\"schema_type_list\"`\n\t// Query process under the corresponding project\n\tProjectID *string `thrift:\"project_id,13,optional\" form:\"project_id\" json:\"project_id,omitempty\" query:\"project_id\"`\n\t// For project publication filtering, each CheckType element in this list can specify a specific rule that determines whether the returned process passes the check.\n\tChecker        []CheckType  `thrift:\"checker,14,optional\" form:\"checker\" json:\"checker,omitempty\" query:\"checker\"`\n\tBindBizID      *string      `thrift:\"bind_biz_id,15,optional\" form:\"bind_biz_id\" json:\"bind_biz_id,omitempty\" query:\"bind_biz_id\"`\n\tBindBizType    *BindBizType `thrift:\"bind_biz_type,16,optional\" form:\"bind_biz_type\" json:\"bind_biz_type,omitempty\" query:\"bind_biz_type\"`\n\tProjectVersion *string      `thrift:\"project_version,17,optional\" form:\"project_version\" json:\"project_version,omitempty\" query:\"project_version\"`\n\tBase           *base.Base   `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetWorkFlowListRequest() *GetWorkFlowListRequest {\n\treturn &GetWorkFlowListRequest{}\n}\n\nfunc (p *GetWorkFlowListRequest) InitDefault() {\n}\n\nvar GetWorkFlowListRequest_Page_DEFAULT int32\n\nfunc (p *GetWorkFlowListRequest) GetPage() (v int32) {\n\tif !p.IsSetPage() {\n\t\treturn GetWorkFlowListRequest_Page_DEFAULT\n\t}\n\treturn *p.Page\n}\n\nvar GetWorkFlowListRequest_Size_DEFAULT int32\n\nfunc (p *GetWorkFlowListRequest) GetSize() (v int32) {\n\tif !p.IsSetSize() {\n\t\treturn GetWorkFlowListRequest_Size_DEFAULT\n\t}\n\treturn *p.Size\n}\n\nvar GetWorkFlowListRequest_WorkflowIds_DEFAULT []string\n\nfunc (p *GetWorkFlowListRequest) GetWorkflowIds() (v []string) {\n\tif !p.IsSetWorkflowIds() {\n\t\treturn GetWorkFlowListRequest_WorkflowIds_DEFAULT\n\t}\n\treturn p.WorkflowIds\n}\n\nvar GetWorkFlowListRequest_Type_DEFAULT WorkFlowType\n\nfunc (p *GetWorkFlowListRequest) GetType() (v WorkFlowType) {\n\tif !p.IsSetType() {\n\t\treturn GetWorkFlowListRequest_Type_DEFAULT\n\t}\n\treturn *p.Type\n}\n\nvar GetWorkFlowListRequest_Name_DEFAULT string\n\nfunc (p *GetWorkFlowListRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn GetWorkFlowListRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar GetWorkFlowListRequest_Tags_DEFAULT Tag\n\nfunc (p *GetWorkFlowListRequest) GetTags() (v Tag) {\n\tif !p.IsSetTags() {\n\t\treturn GetWorkFlowListRequest_Tags_DEFAULT\n\t}\n\treturn *p.Tags\n}\n\nvar GetWorkFlowListRequest_SpaceID_DEFAULT string\n\nfunc (p *GetWorkFlowListRequest) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn GetWorkFlowListRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar GetWorkFlowListRequest_Status_DEFAULT WorkFlowListStatus\n\nfunc (p *GetWorkFlowListRequest) GetStatus() (v WorkFlowListStatus) {\n\tif !p.IsSetStatus() {\n\t\treturn GetWorkFlowListRequest_Status_DEFAULT\n\t}\n\treturn *p.Status\n}\n\nvar GetWorkFlowListRequest_OrderBy_DEFAULT OrderBy\n\nfunc (p *GetWorkFlowListRequest) GetOrderBy() (v OrderBy) {\n\tif !p.IsSetOrderBy() {\n\t\treturn GetWorkFlowListRequest_OrderBy_DEFAULT\n\t}\n\treturn *p.OrderBy\n}\n\nvar GetWorkFlowListRequest_LoginUserCreate_DEFAULT bool\n\nfunc (p *GetWorkFlowListRequest) GetLoginUserCreate() (v bool) {\n\tif !p.IsSetLoginUserCreate() {\n\t\treturn GetWorkFlowListRequest_LoginUserCreate_DEFAULT\n\t}\n\treturn *p.LoginUserCreate\n}\n\nvar GetWorkFlowListRequest_FlowMode_DEFAULT WorkflowMode\n\nfunc (p *GetWorkFlowListRequest) GetFlowMode() (v WorkflowMode) {\n\tif !p.IsSetFlowMode() {\n\t\treturn GetWorkFlowListRequest_FlowMode_DEFAULT\n\t}\n\treturn *p.FlowMode\n}\n\nvar GetWorkFlowListRequest_SchemaTypeList_DEFAULT []SchemaType\n\nfunc (p *GetWorkFlowListRequest) GetSchemaTypeList() (v []SchemaType) {\n\tif !p.IsSetSchemaTypeList() {\n\t\treturn GetWorkFlowListRequest_SchemaTypeList_DEFAULT\n\t}\n\treturn p.SchemaTypeList\n}\n\nvar GetWorkFlowListRequest_ProjectID_DEFAULT string\n\nfunc (p *GetWorkFlowListRequest) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn GetWorkFlowListRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar GetWorkFlowListRequest_Checker_DEFAULT []CheckType\n\nfunc (p *GetWorkFlowListRequest) GetChecker() (v []CheckType) {\n\tif !p.IsSetChecker() {\n\t\treturn GetWorkFlowListRequest_Checker_DEFAULT\n\t}\n\treturn p.Checker\n}\n\nvar GetWorkFlowListRequest_BindBizID_DEFAULT string\n\nfunc (p *GetWorkFlowListRequest) GetBindBizID() (v string) {\n\tif !p.IsSetBindBizID() {\n\t\treturn GetWorkFlowListRequest_BindBizID_DEFAULT\n\t}\n\treturn *p.BindBizID\n}\n\nvar GetWorkFlowListRequest_BindBizType_DEFAULT BindBizType\n\nfunc (p *GetWorkFlowListRequest) GetBindBizType() (v BindBizType) {\n\tif !p.IsSetBindBizType() {\n\t\treturn GetWorkFlowListRequest_BindBizType_DEFAULT\n\t}\n\treturn *p.BindBizType\n}\n\nvar GetWorkFlowListRequest_ProjectVersion_DEFAULT string\n\nfunc (p *GetWorkFlowListRequest) GetProjectVersion() (v string) {\n\tif !p.IsSetProjectVersion() {\n\t\treturn GetWorkFlowListRequest_ProjectVersion_DEFAULT\n\t}\n\treturn *p.ProjectVersion\n}\n\nvar GetWorkFlowListRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetWorkFlowListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetWorkFlowListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetWorkFlowListRequest = map[int16]string{\n\t1:   \"page\",\n\t2:   \"size\",\n\t3:   \"workflow_ids\",\n\t4:   \"type\",\n\t5:   \"name\",\n\t6:   \"tags\",\n\t7:   \"space_id\",\n\t8:   \"status\",\n\t9:   \"order_by\",\n\t10:  \"login_user_create\",\n\t11:  \"flow_mode\",\n\t12:  \"schema_type_list\",\n\t13:  \"project_id\",\n\t14:  \"checker\",\n\t15:  \"bind_biz_id\",\n\t16:  \"bind_biz_type\",\n\t17:  \"project_version\",\n\t255: \"Base\",\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetPage() bool {\n\treturn p.Page != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetSize() bool {\n\treturn p.Size != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetWorkflowIds() bool {\n\treturn p.WorkflowIds != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetType() bool {\n\treturn p.Type != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetTags() bool {\n\treturn p.Tags != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetStatus() bool {\n\treturn p.Status != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetOrderBy() bool {\n\treturn p.OrderBy != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetLoginUserCreate() bool {\n\treturn p.LoginUserCreate != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetFlowMode() bool {\n\treturn p.FlowMode != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetSchemaTypeList() bool {\n\treturn p.SchemaTypeList != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetChecker() bool {\n\treturn p.Checker != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetBindBizID() bool {\n\treturn p.BindBizID != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetBindBizType() bool {\n\treturn p.BindBizType != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetProjectVersion() bool {\n\treturn p.ProjectVersion != nil\n}\n\nfunc (p *GetWorkFlowListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetWorkFlowListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkFlowListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetWorkFlowListRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Page = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowIds = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *WorkFlowType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := WorkFlowType(v)\n\t\t_field = &tmp\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *Tag\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := Tag(v)\n\t\t_field = &tmp\n\t}\n\tp.Tags = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *WorkFlowListStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := WorkFlowListStatus(v)\n\t\t_field = &tmp\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *OrderBy\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := OrderBy(v)\n\t\t_field = &tmp\n\t}\n\tp.OrderBy = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LoginUserCreate = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := WorkflowMode(v)\n\t\t_field = &tmp\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField12(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]SchemaType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem SchemaType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = SchemaType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SchemaTypeList = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField14(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]CheckType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem CheckType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = CheckType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Checker = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BindBizID = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *BindBizType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := BindBizType(v)\n\t\t_field = &tmp\n\t}\n\tp.BindBizType = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectVersion = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetWorkFlowListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkFlowListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkFlowListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPage() {\n\t\tif err = oprot.WriteFieldBegin(\"page\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Page); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSize() {\n\t\tif err = oprot.WriteFieldBegin(\"size\", thrift.I32, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Size); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowIds() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_ids\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.WorkflowIds)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.WorkflowIds {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetType() {\n\t\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Type)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTags() {\n\t\tif err = oprot.WriteFieldBegin(\"tags\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Tags)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.Status)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderBy() {\n\t\tif err = oprot.WriteFieldBegin(\"order_by\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.OrderBy)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLoginUserCreate() {\n\t\tif err = oprot.WriteFieldBegin(\"login_user_create\", thrift.BOOL, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.LoginUserCreate); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFlowMode() {\n\t\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I32, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.FlowMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSchemaTypeList() {\n\t\tif err = oprot.WriteFieldBegin(\"schema_type_list\", thrift.LIST, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.SchemaTypeList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SchemaTypeList {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetChecker() {\n\t\tif err = oprot.WriteFieldBegin(\"checker\", thrift.LIST, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.Checker)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Checker {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindBizID() {\n\t\tif err = oprot.WriteFieldBegin(\"bind_biz_id\", thrift.STRING, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BindBizID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBindBizType() {\n\t\tif err = oprot.WriteFieldBegin(\"bind_biz_type\", thrift.I32, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.BindBizType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"project_version\", thrift.STRING, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkFlowListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkFlowListRequest(%+v)\", *p)\n\n}\n\ntype ResourceActionAuth struct {\n\tCanEdit   bool `thrift:\"can_edit,1\" form:\"can_edit\" json:\"can_edit\" query:\"can_edit\"`\n\tCanDelete bool `thrift:\"can_delete,2\" form:\"can_delete\" json:\"can_delete\" query:\"can_delete\"`\n\tCanCopy   bool `thrift:\"can_copy,3\" form:\"can_copy\" json:\"can_copy\" query:\"can_copy\"`\n}\n\nfunc NewResourceActionAuth() *ResourceActionAuth {\n\treturn &ResourceActionAuth{}\n}\n\nfunc (p *ResourceActionAuth) InitDefault() {\n}\n\nfunc (p *ResourceActionAuth) GetCanEdit() (v bool) {\n\treturn p.CanEdit\n}\n\nfunc (p *ResourceActionAuth) GetCanDelete() (v bool) {\n\treturn p.CanDelete\n}\n\nfunc (p *ResourceActionAuth) GetCanCopy() (v bool) {\n\treturn p.CanCopy\n}\n\nvar fieldIDToName_ResourceActionAuth = map[int16]string{\n\t1: \"can_edit\",\n\t2: \"can_delete\",\n\t3: \"can_copy\",\n}\n\nfunc (p *ResourceActionAuth) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceActionAuth[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceActionAuth) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanEdit = _field\n\treturn nil\n}\nfunc (p *ResourceActionAuth) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanDelete = _field\n\treturn nil\n}\nfunc (p *ResourceActionAuth) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CanCopy = _field\n\treturn nil\n}\n\nfunc (p *ResourceActionAuth) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceActionAuth\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceActionAuth) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_edit\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanEdit); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceActionAuth) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_delete\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanDelete); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResourceActionAuth) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"can_copy\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CanCopy); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ResourceActionAuth) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceActionAuth(%+v)\", *p)\n\n}\n\ntype ResourceAuthInfo struct {\n\t// Resource ID\n\tWorkflowID string `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\t// user id\n\tUserID string `thrift:\"user_id,2\" form:\"user_id\" json:\"user_id\" query:\"user_id\"`\n\t// user resource operation permission\n\tAuth *ResourceActionAuth `thrift:\"auth,3\" form:\"auth\" json:\"auth\" query:\"auth\"`\n}\n\nfunc NewResourceAuthInfo() *ResourceAuthInfo {\n\treturn &ResourceAuthInfo{}\n}\n\nfunc (p *ResourceAuthInfo) InitDefault() {\n}\n\nfunc (p *ResourceAuthInfo) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *ResourceAuthInfo) GetUserID() (v string) {\n\treturn p.UserID\n}\n\nvar ResourceAuthInfo_Auth_DEFAULT *ResourceActionAuth\n\nfunc (p *ResourceAuthInfo) GetAuth() (v *ResourceActionAuth) {\n\tif !p.IsSetAuth() {\n\t\treturn ResourceAuthInfo_Auth_DEFAULT\n\t}\n\treturn p.Auth\n}\n\nvar fieldIDToName_ResourceAuthInfo = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"user_id\",\n\t3: \"auth\",\n}\n\nfunc (p *ResourceAuthInfo) IsSetAuth() bool {\n\treturn p.Auth != nil\n}\n\nfunc (p *ResourceAuthInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResourceAuthInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResourceAuthInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *ResourceAuthInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UserID = _field\n\treturn nil\n}\nfunc (p *ResourceAuthInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewResourceActionAuth()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Auth = _field\n\treturn nil\n}\n\nfunc (p *ResourceAuthInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResourceAuthInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResourceAuthInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ResourceAuthInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UserID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ResourceAuthInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"auth\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Auth.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ResourceAuthInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResourceAuthInfo(%+v)\", *p)\n\n}\n\ntype WorkFlowListData struct {\n\tWorkflowList []*Workflow         `thrift:\"workflow_list,1\" form:\"workflow_list\" json:\"workflow_list\" query:\"workflow_list\"`\n\tAuthList     []*ResourceAuthInfo `thrift:\"auth_list,2\" form:\"auth_list\" json:\"auth_list\" query:\"auth_list\"`\n\tTotal        int64               `thrift:\"total,3\" form:\"total\" json:\"total\" query:\"total\"`\n}\n\nfunc NewWorkFlowListData() *WorkFlowListData {\n\treturn &WorkFlowListData{}\n}\n\nfunc (p *WorkFlowListData) InitDefault() {\n}\n\nfunc (p *WorkFlowListData) GetWorkflowList() (v []*Workflow) {\n\treturn p.WorkflowList\n}\n\nfunc (p *WorkFlowListData) GetAuthList() (v []*ResourceAuthInfo) {\n\treturn p.AuthList\n}\n\nfunc (p *WorkFlowListData) GetTotal() (v int64) {\n\treturn p.Total\n}\n\nvar fieldIDToName_WorkFlowListData = map[int16]string{\n\t1: \"workflow_list\",\n\t2: \"auth_list\",\n\t3: \"total\",\n}\n\nfunc (p *WorkFlowListData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkFlowListData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkFlowListData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Workflow, 0, size)\n\tvalues := make([]Workflow, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowList = _field\n\treturn nil\n}\nfunc (p *WorkFlowListData) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ResourceAuthInfo, 0, size)\n\tvalues := make([]ResourceAuthInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.AuthList = _field\n\treturn nil\n}\nfunc (p *WorkFlowListData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\n\nfunc (p *WorkFlowListData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkFlowListData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkFlowListData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.WorkflowList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkFlowListData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"auth_list\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.AuthList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.AuthList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkFlowListData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I64, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *WorkFlowListData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkFlowListData(%+v)\", *p)\n\n}\n\ntype GetWorkFlowListResponse struct {\n\tData     *WorkFlowListData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64             `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string            `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp    `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetWorkFlowListResponse() *GetWorkFlowListResponse {\n\treturn &GetWorkFlowListResponse{}\n}\n\nfunc (p *GetWorkFlowListResponse) InitDefault() {\n}\n\nvar GetWorkFlowListResponse_Data_DEFAULT *WorkFlowListData\n\nfunc (p *GetWorkFlowListResponse) GetData() (v *WorkFlowListData) {\n\tif !p.IsSetData() {\n\t\treturn GetWorkFlowListResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetWorkFlowListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetWorkFlowListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetWorkFlowListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetWorkFlowListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetWorkFlowListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetWorkFlowListResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetWorkFlowListResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetWorkFlowListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetWorkFlowListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkFlowListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetWorkFlowListResponse[fieldId]))\n}\n\nfunc (p *GetWorkFlowListResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkFlowListData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetWorkFlowListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkFlowListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkFlowListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetWorkFlowListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkFlowListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkFlowListResponse(%+v)\", *p)\n\n}\n\ntype QueryWorkflowNodeTypeRequest struct {\n\tSpaceID    string     `thrift:\"space_id,1\" form:\"space_id\" json:\"space_id\" query:\"space_id\"`\n\tWorkflowID string     `thrift:\"workflow_id,2\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewQueryWorkflowNodeTypeRequest() *QueryWorkflowNodeTypeRequest {\n\treturn &QueryWorkflowNodeTypeRequest{}\n}\n\nfunc (p *QueryWorkflowNodeTypeRequest) InitDefault() {\n}\n\nfunc (p *QueryWorkflowNodeTypeRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *QueryWorkflowNodeTypeRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar QueryWorkflowNodeTypeRequest_Base_DEFAULT *base.Base\n\nfunc (p *QueryWorkflowNodeTypeRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn QueryWorkflowNodeTypeRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_QueryWorkflowNodeTypeRequest = map[int16]string{\n\t1:   \"space_id\",\n\t2:   \"workflow_id\",\n\t255: \"Base\",\n}\n\nfunc (p *QueryWorkflowNodeTypeRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *QueryWorkflowNodeTypeRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_QueryWorkflowNodeTypeRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *QueryWorkflowNodeTypeRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *QueryWorkflowNodeTypeRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *QueryWorkflowNodeTypeRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *QueryWorkflowNodeTypeRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"QueryWorkflowNodeTypeRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *QueryWorkflowNodeTypeRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *QueryWorkflowNodeTypeRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *QueryWorkflowNodeTypeRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *QueryWorkflowNodeTypeRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"QueryWorkflowNodeTypeRequest(%+v)\", *p)\n\n}\n\ntype QueryWorkflowNodeTypeResponse struct {\n\tData     *WorkflowNodeTypeData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                 `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp        `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewQueryWorkflowNodeTypeResponse() *QueryWorkflowNodeTypeResponse {\n\treturn &QueryWorkflowNodeTypeResponse{}\n}\n\nfunc (p *QueryWorkflowNodeTypeResponse) InitDefault() {\n}\n\nvar QueryWorkflowNodeTypeResponse_Data_DEFAULT *WorkflowNodeTypeData\n\nfunc (p *QueryWorkflowNodeTypeResponse) GetData() (v *WorkflowNodeTypeData) {\n\tif !p.IsSetData() {\n\t\treturn QueryWorkflowNodeTypeResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *QueryWorkflowNodeTypeResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *QueryWorkflowNodeTypeResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar QueryWorkflowNodeTypeResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *QueryWorkflowNodeTypeResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn QueryWorkflowNodeTypeResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_QueryWorkflowNodeTypeResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *QueryWorkflowNodeTypeResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *QueryWorkflowNodeTypeResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *QueryWorkflowNodeTypeResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_QueryWorkflowNodeTypeResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_QueryWorkflowNodeTypeResponse[fieldId]))\n}\n\nfunc (p *QueryWorkflowNodeTypeResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowNodeTypeData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *QueryWorkflowNodeTypeResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *QueryWorkflowNodeTypeResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *QueryWorkflowNodeTypeResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *QueryWorkflowNodeTypeResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"QueryWorkflowNodeTypeResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *QueryWorkflowNodeTypeResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *QueryWorkflowNodeTypeResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *QueryWorkflowNodeTypeResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *QueryWorkflowNodeTypeResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *QueryWorkflowNodeTypeResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"QueryWorkflowNodeTypeResponse(%+v)\", *p)\n\n}\n\ntype NodeProps struct {\n\tID                  string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tType                string `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n\tIsEnableChatHistory bool   `thrift:\"is_enable_chat_history,3\" form:\"is_enable_chat_history\" json:\"is_enable_chat_history\" query:\"is_enable_chat_history\"`\n\tIsEnableUserQuery   bool   `thrift:\"is_enable_user_query,4\" form:\"is_enable_user_query\" json:\"is_enable_user_query\" query:\"is_enable_user_query\"`\n\tIsRefGlobalVariable bool   `thrift:\"is_ref_global_variable,5\" form:\"is_ref_global_variable\" json:\"is_ref_global_variable\" query:\"is_ref_global_variable\"`\n}\n\nfunc NewNodeProps() *NodeProps {\n\treturn &NodeProps{}\n}\n\nfunc (p *NodeProps) InitDefault() {\n}\n\nfunc (p *NodeProps) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *NodeProps) GetType() (v string) {\n\treturn p.Type\n}\n\nfunc (p *NodeProps) GetIsEnableChatHistory() (v bool) {\n\treturn p.IsEnableChatHistory\n}\n\nfunc (p *NodeProps) GetIsEnableUserQuery() (v bool) {\n\treturn p.IsEnableUserQuery\n}\n\nfunc (p *NodeProps) GetIsRefGlobalVariable() (v bool) {\n\treturn p.IsRefGlobalVariable\n}\n\nvar fieldIDToName_NodeProps = map[int16]string{\n\t1: \"id\",\n\t2: \"type\",\n\t3: \"is_enable_chat_history\",\n\t4: \"is_enable_user_query\",\n\t5: \"is_ref_global_variable\",\n}\n\nfunc (p *NodeProps) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeProps[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodeProps) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *NodeProps) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *NodeProps) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsEnableChatHistory = _field\n\treturn nil\n}\nfunc (p *NodeProps) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsEnableUserQuery = _field\n\treturn nil\n}\nfunc (p *NodeProps) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsRefGlobalVariable = _field\n\treturn nil\n}\n\nfunc (p *NodeProps) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeProps\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeProps) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodeProps) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodeProps) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_enable_chat_history\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsEnableChatHistory); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NodeProps) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_enable_user_query\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsEnableUserQuery); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *NodeProps) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_ref_global_variable\", thrift.BOOL, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsRefGlobalVariable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *NodeProps) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeProps(%+v)\", *p)\n\n}\n\ntype WorkflowNodeTypeData struct {\n\tNodeTypes                  []string     `thrift:\"node_types,1,optional\" form:\"node_types\" json:\"node_types,omitempty\" query:\"node_types\"`\n\tSubWorkflowNodeTypes       []string     `thrift:\"sub_workflow_node_types,2,optional\" form:\"sub_workflow_node_types\" json:\"sub_workflow_node_types,omitempty\" query:\"sub_workflow_node_types\"`\n\tNodesProperties            []*NodeProps `thrift:\"nodes_properties,3,optional\" form:\"nodes_properties\" json:\"nodes_properties,omitempty\" query:\"nodes_properties\"`\n\tSubWorkflowNodesProperties []*NodeProps `thrift:\"sub_workflow_nodes_properties,4,optional\" form:\"sub_workflow_nodes_properties\" json:\"sub_workflow_nodes_properties,omitempty\" query:\"sub_workflow_nodes_properties\"`\n}\n\nfunc NewWorkflowNodeTypeData() *WorkflowNodeTypeData {\n\treturn &WorkflowNodeTypeData{}\n}\n\nfunc (p *WorkflowNodeTypeData) InitDefault() {\n}\n\nvar WorkflowNodeTypeData_NodeTypes_DEFAULT []string\n\nfunc (p *WorkflowNodeTypeData) GetNodeTypes() (v []string) {\n\tif !p.IsSetNodeTypes() {\n\t\treturn WorkflowNodeTypeData_NodeTypes_DEFAULT\n\t}\n\treturn p.NodeTypes\n}\n\nvar WorkflowNodeTypeData_SubWorkflowNodeTypes_DEFAULT []string\n\nfunc (p *WorkflowNodeTypeData) GetSubWorkflowNodeTypes() (v []string) {\n\tif !p.IsSetSubWorkflowNodeTypes() {\n\t\treturn WorkflowNodeTypeData_SubWorkflowNodeTypes_DEFAULT\n\t}\n\treturn p.SubWorkflowNodeTypes\n}\n\nvar WorkflowNodeTypeData_NodesProperties_DEFAULT []*NodeProps\n\nfunc (p *WorkflowNodeTypeData) GetNodesProperties() (v []*NodeProps) {\n\tif !p.IsSetNodesProperties() {\n\t\treturn WorkflowNodeTypeData_NodesProperties_DEFAULT\n\t}\n\treturn p.NodesProperties\n}\n\nvar WorkflowNodeTypeData_SubWorkflowNodesProperties_DEFAULT []*NodeProps\n\nfunc (p *WorkflowNodeTypeData) GetSubWorkflowNodesProperties() (v []*NodeProps) {\n\tif !p.IsSetSubWorkflowNodesProperties() {\n\t\treturn WorkflowNodeTypeData_SubWorkflowNodesProperties_DEFAULT\n\t}\n\treturn p.SubWorkflowNodesProperties\n}\n\nvar fieldIDToName_WorkflowNodeTypeData = map[int16]string{\n\t1: \"node_types\",\n\t2: \"sub_workflow_node_types\",\n\t3: \"nodes_properties\",\n\t4: \"sub_workflow_nodes_properties\",\n}\n\nfunc (p *WorkflowNodeTypeData) IsSetNodeTypes() bool {\n\treturn p.NodeTypes != nil\n}\n\nfunc (p *WorkflowNodeTypeData) IsSetSubWorkflowNodeTypes() bool {\n\treturn p.SubWorkflowNodeTypes != nil\n}\n\nfunc (p *WorkflowNodeTypeData) IsSetNodesProperties() bool {\n\treturn p.NodesProperties != nil\n}\n\nfunc (p *WorkflowNodeTypeData) IsSetSubWorkflowNodesProperties() bool {\n\treturn p.SubWorkflowNodesProperties != nil\n}\n\nfunc (p *WorkflowNodeTypeData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowNodeTypeData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeTypeData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NodeTypes = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeTypeData) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubWorkflowNodeTypes = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeTypeData) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*NodeProps, 0, size)\n\tvalues := make([]NodeProps, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NodesProperties = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeTypeData) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*NodeProps, 0, size)\n\tvalues := make([]NodeProps, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubWorkflowNodesProperties = _field\n\treturn nil\n}\n\nfunc (p *WorkflowNodeTypeData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowNodeTypeData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeTypeData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodeTypes() {\n\t\tif err = oprot.WriteFieldBegin(\"node_types\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.NodeTypes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.NodeTypes {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowNodeTypeData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubWorkflowNodeTypes() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_workflow_node_types\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.SubWorkflowNodeTypes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SubWorkflowNodeTypes {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowNodeTypeData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodesProperties() {\n\t\tif err = oprot.WriteFieldBegin(\"nodes_properties\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.NodesProperties)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.NodesProperties {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowNodeTypeData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubWorkflowNodesProperties() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_workflow_nodes_properties\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubWorkflowNodesProperties)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SubWorkflowNodesProperties {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeTypeData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowNodeTypeData(%+v)\", *p)\n\n}\n\ntype WorkFlowTestRunRequest struct {\n\tWorkflowID string            `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tInput      map[string]string `thrift:\"input,2\" form:\"input\" json:\"input\" query:\"input\"`\n\tSpaceID    *string           `thrift:\"space_id,3,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n\t// The id of the agent, the process under non-project, the process involving variable nodes and databases\n\tBotID *string `thrift:\"bot_id,4,optional\" form:\"bot_id\" json:\"bot_id,omitempty\" query:\"bot_id\"`\n\t// abandoned\n\tSubmitCommitID *string `thrift:\"submit_commit_id,5,optional\" form:\"submit_commit_id\" json:\"submit_commit_id,omitempty\" query:\"submit_commit_id\"`\n\t// Specify vcs commit_id, default is empty\n\tCommitID  *string    `thrift:\"commit_id,6,optional\" form:\"commit_id\" json:\"commit_id,omitempty\" query:\"commit_id\"`\n\tProjectID *string    `thrift:\"project_id,7,optional\" form:\"project_id\" json:\"project_id,omitempty\" query:\"project_id\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewWorkFlowTestRunRequest() *WorkFlowTestRunRequest {\n\treturn &WorkFlowTestRunRequest{}\n}\n\nfunc (p *WorkFlowTestRunRequest) InitDefault() {\n}\n\nfunc (p *WorkFlowTestRunRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *WorkFlowTestRunRequest) GetInput() (v map[string]string) {\n\treturn p.Input\n}\n\nvar WorkFlowTestRunRequest_SpaceID_DEFAULT string\n\nfunc (p *WorkFlowTestRunRequest) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn WorkFlowTestRunRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar WorkFlowTestRunRequest_BotID_DEFAULT string\n\nfunc (p *WorkFlowTestRunRequest) GetBotID() (v string) {\n\tif !p.IsSetBotID() {\n\t\treturn WorkFlowTestRunRequest_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar WorkFlowTestRunRequest_SubmitCommitID_DEFAULT string\n\nfunc (p *WorkFlowTestRunRequest) GetSubmitCommitID() (v string) {\n\tif !p.IsSetSubmitCommitID() {\n\t\treturn WorkFlowTestRunRequest_SubmitCommitID_DEFAULT\n\t}\n\treturn *p.SubmitCommitID\n}\n\nvar WorkFlowTestRunRequest_CommitID_DEFAULT string\n\nfunc (p *WorkFlowTestRunRequest) GetCommitID() (v string) {\n\tif !p.IsSetCommitID() {\n\t\treturn WorkFlowTestRunRequest_CommitID_DEFAULT\n\t}\n\treturn *p.CommitID\n}\n\nvar WorkFlowTestRunRequest_ProjectID_DEFAULT string\n\nfunc (p *WorkFlowTestRunRequest) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn WorkFlowTestRunRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar WorkFlowTestRunRequest_Base_DEFAULT *base.Base\n\nfunc (p *WorkFlowTestRunRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn WorkFlowTestRunRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_WorkFlowTestRunRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"input\",\n\t3:   \"space_id\",\n\t4:   \"bot_id\",\n\t5:   \"submit_commit_id\",\n\t6:   \"commit_id\",\n\t7:   \"project_id\",\n\t255: \"Base\",\n}\n\nfunc (p *WorkFlowTestRunRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *WorkFlowTestRunRequest) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *WorkFlowTestRunRequest) IsSetSubmitCommitID() bool {\n\treturn p.SubmitCommitID != nil\n}\n\nfunc (p *WorkFlowTestRunRequest) IsSetCommitID() bool {\n\treturn p.CommitID != nil\n}\n\nfunc (p *WorkFlowTestRunRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *WorkFlowTestRunRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *WorkFlowTestRunRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkFlowTestRunRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_WorkFlowTestRunRequest[fieldId]))\n}\n\nfunc (p *WorkFlowTestRunRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Input = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubmitCommitID = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CommitID = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *WorkFlowTestRunRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkFlowTestRunRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkFlowTestRunRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"input\", thrift.MAP, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Input)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Input {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubmitCommitID() {\n\t\tif err = oprot.WriteFieldBegin(\"submit_commit_id\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SubmitCommitID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCommitID() {\n\t\tif err = oprot.WriteFieldBegin(\"commit_id\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CommitID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *WorkFlowTestRunRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkFlowTestRunRequest(%+v)\", *p)\n\n}\n\ntype WorkFlowTestRunData struct {\n\tWorkflowID string `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tExecuteID  string `thrift:\"execute_id,2\" form:\"execute_id\" json:\"execute_id\" query:\"execute_id\"`\n\tSessionID  string `thrift:\"session_id,3\" form:\"session_id\" json:\"session_id\" query:\"session_id\"`\n}\n\nfunc NewWorkFlowTestRunData() *WorkFlowTestRunData {\n\treturn &WorkFlowTestRunData{}\n}\n\nfunc (p *WorkFlowTestRunData) InitDefault() {\n}\n\nfunc (p *WorkFlowTestRunData) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *WorkFlowTestRunData) GetExecuteID() (v string) {\n\treturn p.ExecuteID\n}\n\nfunc (p *WorkFlowTestRunData) GetSessionID() (v string) {\n\treturn p.SessionID\n}\n\nvar fieldIDToName_WorkFlowTestRunData = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"execute_id\",\n\t3: \"session_id\",\n}\n\nfunc (p *WorkFlowTestRunData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkFlowTestRunData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkFlowTestRunData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SessionID = _field\n\treturn nil\n}\n\nfunc (p *WorkFlowTestRunData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkFlowTestRunData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkFlowTestRunData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"execute_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExecuteID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"session_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SessionID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *WorkFlowTestRunData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkFlowTestRunData(%+v)\", *p)\n\n}\n\ntype WorkFlowTestRunResponse struct {\n\tData     *WorkFlowTestRunData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64                `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string               `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp       `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewWorkFlowTestRunResponse() *WorkFlowTestRunResponse {\n\treturn &WorkFlowTestRunResponse{}\n}\n\nfunc (p *WorkFlowTestRunResponse) InitDefault() {\n}\n\nvar WorkFlowTestRunResponse_Data_DEFAULT *WorkFlowTestRunData\n\nfunc (p *WorkFlowTestRunResponse) GetData() (v *WorkFlowTestRunData) {\n\tif !p.IsSetData() {\n\t\treturn WorkFlowTestRunResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *WorkFlowTestRunResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *WorkFlowTestRunResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar WorkFlowTestRunResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *WorkFlowTestRunResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn WorkFlowTestRunResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_WorkFlowTestRunResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *WorkFlowTestRunResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *WorkFlowTestRunResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *WorkFlowTestRunResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkFlowTestRunResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_WorkFlowTestRunResponse[fieldId]))\n}\n\nfunc (p *WorkFlowTestRunResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkFlowTestRunData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *WorkFlowTestRunResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *WorkFlowTestRunResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkFlowTestRunResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkFlowTestRunResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *WorkFlowTestRunResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *WorkFlowTestRunResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkFlowTestRunResponse(%+v)\", *p)\n\n}\n\ntype WorkflowTestResumeRequest struct {\n\tWorkflowID string     `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tExecuteID  string     `thrift:\"execute_id,2,required\" form:\"execute_id,required\" json:\"execute_id,required\" query:\"execute_id,required\"`\n\tEventID    string     `thrift:\"event_id,3,required\" form:\"event_id,required\" json:\"event_id,required\" query:\"event_id,required\"`\n\tData       string     `thrift:\"data,4,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tSpaceID    *string    `thrift:\"space_id,5,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewWorkflowTestResumeRequest() *WorkflowTestResumeRequest {\n\treturn &WorkflowTestResumeRequest{}\n}\n\nfunc (p *WorkflowTestResumeRequest) InitDefault() {\n}\n\nfunc (p *WorkflowTestResumeRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *WorkflowTestResumeRequest) GetExecuteID() (v string) {\n\treturn p.ExecuteID\n}\n\nfunc (p *WorkflowTestResumeRequest) GetEventID() (v string) {\n\treturn p.EventID\n}\n\nfunc (p *WorkflowTestResumeRequest) GetData() (v string) {\n\treturn p.Data\n}\n\nvar WorkflowTestResumeRequest_SpaceID_DEFAULT string\n\nfunc (p *WorkflowTestResumeRequest) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn WorkflowTestResumeRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar WorkflowTestResumeRequest_Base_DEFAULT *base.Base\n\nfunc (p *WorkflowTestResumeRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn WorkflowTestResumeRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_WorkflowTestResumeRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"execute_id\",\n\t3:   \"event_id\",\n\t4:   \"data\",\n\t5:   \"space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *WorkflowTestResumeRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *WorkflowTestResumeRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *WorkflowTestResumeRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetExecuteID bool = false\n\tvar issetEventID bool = false\n\tvar issetData bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetExecuteID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetEventID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetExecuteID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetEventID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowTestResumeRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_WorkflowTestResumeRequest[fieldId]))\n}\n\nfunc (p *WorkflowTestResumeRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *WorkflowTestResumeRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *WorkflowTestResumeRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EventID = _field\n\treturn nil\n}\nfunc (p *WorkflowTestResumeRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *WorkflowTestResumeRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *WorkflowTestResumeRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *WorkflowTestResumeRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowTestResumeRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowTestResumeRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowTestResumeRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"execute_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExecuteID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowTestResumeRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"event_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.EventID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowTestResumeRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Data); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowTestResumeRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowTestResumeRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *WorkflowTestResumeRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowTestResumeRequest(%+v)\", *p)\n\n}\n\ntype WorkflowTestResumeResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewWorkflowTestResumeResponse() *WorkflowTestResumeResponse {\n\treturn &WorkflowTestResumeResponse{}\n}\n\nfunc (p *WorkflowTestResumeResponse) InitDefault() {\n}\n\nfunc (p *WorkflowTestResumeResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *WorkflowTestResumeResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar WorkflowTestResumeResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *WorkflowTestResumeResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn WorkflowTestResumeResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_WorkflowTestResumeResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *WorkflowTestResumeResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *WorkflowTestResumeResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowTestResumeResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_WorkflowTestResumeResponse[fieldId]))\n}\n\nfunc (p *WorkflowTestResumeResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *WorkflowTestResumeResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *WorkflowTestResumeResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *WorkflowTestResumeResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowTestResumeResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowTestResumeResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *WorkflowTestResumeResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *WorkflowTestResumeResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *WorkflowTestResumeResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowTestResumeResponse(%+v)\", *p)\n\n}\n\ntype CancelWorkFlowRequest struct {\n\tExecuteID  string     `thrift:\"execute_id,1,required\" form:\"execute_id,required\" json:\"execute_id,required\" query:\"execute_id,required\"`\n\tSpaceID    string     `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tWorkflowID *string    `thrift:\"workflow_id,3,optional\" form:\"workflow_id\" json:\"workflow_id,omitempty\" query:\"workflow_id\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCancelWorkFlowRequest() *CancelWorkFlowRequest {\n\treturn &CancelWorkFlowRequest{}\n}\n\nfunc (p *CancelWorkFlowRequest) InitDefault() {\n}\n\nfunc (p *CancelWorkFlowRequest) GetExecuteID() (v string) {\n\treturn p.ExecuteID\n}\n\nfunc (p *CancelWorkFlowRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar CancelWorkFlowRequest_WorkflowID_DEFAULT string\n\nfunc (p *CancelWorkFlowRequest) GetWorkflowID() (v string) {\n\tif !p.IsSetWorkflowID() {\n\t\treturn CancelWorkFlowRequest_WorkflowID_DEFAULT\n\t}\n\treturn *p.WorkflowID\n}\n\nvar CancelWorkFlowRequest_Base_DEFAULT *base.Base\n\nfunc (p *CancelWorkFlowRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CancelWorkFlowRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CancelWorkFlowRequest = map[int16]string{\n\t1:   \"execute_id\",\n\t2:   \"space_id\",\n\t3:   \"workflow_id\",\n\t255: \"Base\",\n}\n\nfunc (p *CancelWorkFlowRequest) IsSetWorkflowID() bool {\n\treturn p.WorkflowID != nil\n}\n\nfunc (p *CancelWorkFlowRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CancelWorkFlowRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetExecuteID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetExecuteID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetExecuteID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CancelWorkFlowRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CancelWorkFlowRequest[fieldId]))\n}\n\nfunc (p *CancelWorkFlowRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *CancelWorkFlowRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *CancelWorkFlowRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *CancelWorkFlowRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CancelWorkFlowRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CancelWorkFlowRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CancelWorkFlowRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"execute_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExecuteID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CancelWorkFlowRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CancelWorkFlowRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowID() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WorkflowID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CancelWorkFlowRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CancelWorkFlowRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CancelWorkFlowRequest(%+v)\", *p)\n\n}\n\ntype CancelWorkFlowResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCancelWorkFlowResponse() *CancelWorkFlowResponse {\n\treturn &CancelWorkFlowResponse{}\n}\n\nfunc (p *CancelWorkFlowResponse) InitDefault() {\n}\n\nfunc (p *CancelWorkFlowResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CancelWorkFlowResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CancelWorkFlowResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CancelWorkFlowResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CancelWorkFlowResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CancelWorkFlowResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CancelWorkFlowResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CancelWorkFlowResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CancelWorkFlowResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CancelWorkFlowResponse[fieldId]))\n}\n\nfunc (p *CancelWorkFlowResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CancelWorkFlowResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CancelWorkFlowResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CancelWorkFlowResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CancelWorkFlowResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CancelWorkFlowResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CancelWorkFlowResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CancelWorkFlowResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CancelWorkFlowResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CancelWorkFlowResponse(%+v)\", *p)\n\n}\n\n// Workflow snapshot basic information\ntype WkPluginBasicData struct {\n\tWorkflowID int64          `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id,string\" query:\"workflow_id\"`\n\tSpaceID    int64          `thrift:\"space_id,2\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\tName       string         `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc       string         `thrift:\"desc,4\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tURL        string         `thrift:\"url,5\" form:\"url\" json:\"url\" query:\"url\"`\n\tIconURI    string         `thrift:\"icon_uri,6\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tStatus     WorkFlowStatus `thrift:\"status,7\" form:\"status\" json:\"status\" query:\"status\"`\n\t// Plugin ID for workflow\n\tPluginID              int64        `thrift:\"plugin_id,8\" form:\"plugin_id\" json:\"plugin_id,string\" query:\"plugin_id\"`\n\tCreateTime            int64        `thrift:\"create_time,9\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\tUpdateTime            int64        `thrift:\"update_time,10\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\tSourceID              int64        `thrift:\"source_id,11\" form:\"source_id\" json:\"source_id,string\" query:\"source_id\"`\n\tCreator               *Creator     `thrift:\"creator,12\" form:\"creator\" json:\"creator\" query:\"creator\"`\n\tSchema                string       `thrift:\"schema,13\" form:\"schema\" json:\"schema\" query:\"schema\"`\n\tStartNode             *Node        `thrift:\"start_node,14\" form:\"start_node\" json:\"start_node\" query:\"start_node\"`\n\tFlowMode              WorkflowMode `thrift:\"flow_mode,15\" form:\"flow_mode\" json:\"flow_mode\" query:\"flow_mode\"`\n\tSubWorkflows          []int64      `thrift:\"sub_workflows,16\" form:\"sub_workflows\" json:\"sub_workflows\" query:\"sub_workflows\"`\n\tLatestPublishCommitID string       `thrift:\"latest_publish_commit_id,17\" form:\"latest_publish_commit_id\" json:\"latest_publish_commit_id\" query:\"latest_publish_commit_id\"`\n\tEndNode               *Node        `thrift:\"end_node,18\" form:\"end_node\" json:\"end_node\" query:\"end_node\"`\n}\n\nfunc NewWkPluginBasicData() *WkPluginBasicData {\n\treturn &WkPluginBasicData{}\n}\n\nfunc (p *WkPluginBasicData) InitDefault() {\n}\n\nfunc (p *WkPluginBasicData) GetWorkflowID() (v int64) {\n\treturn p.WorkflowID\n}\n\nfunc (p *WkPluginBasicData) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *WkPluginBasicData) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *WkPluginBasicData) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *WkPluginBasicData) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *WkPluginBasicData) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *WkPluginBasicData) GetStatus() (v WorkFlowStatus) {\n\treturn p.Status\n}\n\nfunc (p *WkPluginBasicData) GetPluginID() (v int64) {\n\treturn p.PluginID\n}\n\nfunc (p *WkPluginBasicData) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *WkPluginBasicData) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nfunc (p *WkPluginBasicData) GetSourceID() (v int64) {\n\treturn p.SourceID\n}\n\nvar WkPluginBasicData_Creator_DEFAULT *Creator\n\nfunc (p *WkPluginBasicData) GetCreator() (v *Creator) {\n\tif !p.IsSetCreator() {\n\t\treturn WkPluginBasicData_Creator_DEFAULT\n\t}\n\treturn p.Creator\n}\n\nfunc (p *WkPluginBasicData) GetSchema() (v string) {\n\treturn p.Schema\n}\n\nvar WkPluginBasicData_StartNode_DEFAULT *Node\n\nfunc (p *WkPluginBasicData) GetStartNode() (v *Node) {\n\tif !p.IsSetStartNode() {\n\t\treturn WkPluginBasicData_StartNode_DEFAULT\n\t}\n\treturn p.StartNode\n}\n\nfunc (p *WkPluginBasicData) GetFlowMode() (v WorkflowMode) {\n\treturn p.FlowMode\n}\n\nfunc (p *WkPluginBasicData) GetSubWorkflows() (v []int64) {\n\treturn p.SubWorkflows\n}\n\nfunc (p *WkPluginBasicData) GetLatestPublishCommitID() (v string) {\n\treturn p.LatestPublishCommitID\n}\n\nvar WkPluginBasicData_EndNode_DEFAULT *Node\n\nfunc (p *WkPluginBasicData) GetEndNode() (v *Node) {\n\tif !p.IsSetEndNode() {\n\t\treturn WkPluginBasicData_EndNode_DEFAULT\n\t}\n\treturn p.EndNode\n}\n\nvar fieldIDToName_WkPluginBasicData = map[int16]string{\n\t1:  \"workflow_id\",\n\t2:  \"space_id\",\n\t3:  \"name\",\n\t4:  \"desc\",\n\t5:  \"url\",\n\t6:  \"icon_uri\",\n\t7:  \"status\",\n\t8:  \"plugin_id\",\n\t9:  \"create_time\",\n\t10: \"update_time\",\n\t11: \"source_id\",\n\t12: \"creator\",\n\t13: \"schema\",\n\t14: \"start_node\",\n\t15: \"flow_mode\",\n\t16: \"sub_workflows\",\n\t17: \"latest_publish_commit_id\",\n\t18: \"end_node\",\n}\n\nfunc (p *WkPluginBasicData) IsSetCreator() bool {\n\treturn p.Creator != nil\n}\n\nfunc (p *WkPluginBasicData) IsSetStartNode() bool {\n\treturn p.StartNode != nil\n}\n\nfunc (p *WkPluginBasicData) IsSetEndNode() bool {\n\treturn p.EndNode != nil\n}\n\nfunc (p *WkPluginBasicData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WkPluginBasicData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WkPluginBasicData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field WorkFlowStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkFlowStatus(v)\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SourceID = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField12(iprot thrift.TProtocol) error {\n\t_field := NewCreator()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Creator = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Schema = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField14(iprot thrift.TProtocol) error {\n\t_field := NewNode()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.StartNode = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkflowMode(v)\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField16(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]int64, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubWorkflows = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LatestPublishCommitID = _field\n\treturn nil\n}\nfunc (p *WkPluginBasicData) ReadField18(iprot thrift.TProtocol) error {\n\t_field := NewNode()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.EndNode = _field\n\treturn nil\n}\n\nfunc (p *WkPluginBasicData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WkPluginBasicData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WkPluginBasicData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I32, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Status)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"source_id\", thrift.I64, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SourceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator\", thrift.STRUCT, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Creator.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"schema\", thrift.STRING, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Schema); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"start_node\", thrift.STRUCT, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.StartNode.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I32, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FlowMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField16(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sub_workflows\", thrift.LIST, 16); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.I64, len(p.SubWorkflows)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SubWorkflows {\n\t\tif err := oprot.WriteI64(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"latest_publish_commit_id\", thrift.STRING, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LatestPublishCommitID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *WkPluginBasicData) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"end_node\", thrift.STRUCT, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.EndNode.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\n\nfunc (p *WkPluginBasicData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WkPluginBasicData(%+v)\", *p)\n\n}\n\ntype CopyWkTemplateApiRequest struct {\n\tWorkflowIds []string `thrift:\"workflow_ids,1,required\" form:\"workflow_ids,required\" json:\"workflow_ids,required\" query:\"workflow_ids,required\"`\n\t// Copy target space\n\tTargetSpaceID int64      `thrift:\"target_space_id,2,required\" form:\"target_space_id,required\" json:\"target_space_id,string,required\" query:\"target_space_id,required\"`\n\tBase          *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCopyWkTemplateApiRequest() *CopyWkTemplateApiRequest {\n\treturn &CopyWkTemplateApiRequest{}\n}\n\nfunc (p *CopyWkTemplateApiRequest) InitDefault() {\n}\n\nfunc (p *CopyWkTemplateApiRequest) GetWorkflowIds() (v []string) {\n\treturn p.WorkflowIds\n}\n\nfunc (p *CopyWkTemplateApiRequest) GetTargetSpaceID() (v int64) {\n\treturn p.TargetSpaceID\n}\n\nvar CopyWkTemplateApiRequest_Base_DEFAULT *base.Base\n\nfunc (p *CopyWkTemplateApiRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CopyWkTemplateApiRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CopyWkTemplateApiRequest = map[int16]string{\n\t1:   \"workflow_ids\",\n\t2:   \"target_space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *CopyWkTemplateApiRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CopyWkTemplateApiRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowIds bool = false\n\tvar issetTargetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowIds = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetTargetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowIds {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetTargetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CopyWkTemplateApiRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CopyWkTemplateApiRequest[fieldId]))\n}\n\nfunc (p *CopyWkTemplateApiRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowIds = _field\n\treturn nil\n}\nfunc (p *CopyWkTemplateApiRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TargetSpaceID = _field\n\treturn nil\n}\nfunc (p *CopyWkTemplateApiRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CopyWkTemplateApiRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyWkTemplateApiRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CopyWkTemplateApiRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_ids\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.WorkflowIds)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.WorkflowIds {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CopyWkTemplateApiRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"target_space_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.TargetSpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CopyWkTemplateApiRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CopyWkTemplateApiRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CopyWkTemplateApiRequest(%+v)\", *p)\n\n}\n\ntype CopyWkTemplateApiResponse struct {\n\t// Template ID: Copy copy of data\n\tData     map[int64]*WkPluginBasicData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,string,required\" query:\"data,required\"`\n\tCode     int64                        `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                       `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp               `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCopyWkTemplateApiResponse() *CopyWkTemplateApiResponse {\n\treturn &CopyWkTemplateApiResponse{}\n}\n\nfunc (p *CopyWkTemplateApiResponse) InitDefault() {\n}\n\nfunc (p *CopyWkTemplateApiResponse) GetData() (v map[int64]*WkPluginBasicData) {\n\treturn p.Data\n}\n\nfunc (p *CopyWkTemplateApiResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CopyWkTemplateApiResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CopyWkTemplateApiResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CopyWkTemplateApiResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CopyWkTemplateApiResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CopyWkTemplateApiResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CopyWkTemplateApiResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CopyWkTemplateApiResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CopyWkTemplateApiResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CopyWkTemplateApiResponse[fieldId]))\n}\n\nfunc (p *CopyWkTemplateApiResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[int64]*WkPluginBasicData, size)\n\tvalues := make([]WkPluginBasicData, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key int64\n\t\tif v, err := iprot.ReadI64(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *CopyWkTemplateApiResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CopyWkTemplateApiResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CopyWkTemplateApiResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CopyWkTemplateApiResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyWkTemplateApiResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CopyWkTemplateApiResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.MAP, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Data {\n\t\tif err := oprot.WriteI64(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CopyWkTemplateApiResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CopyWkTemplateApiResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CopyWkTemplateApiResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CopyWkTemplateApiResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CopyWkTemplateApiResponse(%+v)\", *p)\n\n}\n\n// === node history ===\ntype GetWorkflowProcessRequest struct {\n\t// Process id, not empty\n\tWorkflowID string `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\t// Space id, not empty\n\tSpaceID string `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\t// Execution ID of the process\n\tExecuteID *string `thrift:\"execute_id,3,optional\" form:\"execute_id\" json:\"execute_id,omitempty\" query:\"execute_id\"`\n\t// Execution ID of the subprocess\n\tSubExecuteID *string `thrift:\"sub_execute_id,4,optional\" form:\"sub_execute_id\" json:\"sub_execute_id,omitempty\" query:\"sub_execute_id\"`\n\t// Whether to return all batch node contents\n\tNeedAsync *bool `thrift:\"need_async,5,optional\" form:\"need_async\" json:\"need_async,omitempty\" query:\"need_async\"`\n\t// When execute_id is not transmitted, it can be obtained through log_id execute_id\n\tLogID  *string    `thrift:\"log_id,6,optional\" form:\"log_id\" json:\"log_id,omitempty\" query:\"log_id\"`\n\tNodeID *int64     `thrift:\"node_id,7,optional\" form:\"node_id\" json:\"node_id,string,omitempty\" query:\"node_id\"`\n\tBase   *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetWorkflowProcessRequest() *GetWorkflowProcessRequest {\n\treturn &GetWorkflowProcessRequest{}\n}\n\nfunc (p *GetWorkflowProcessRequest) InitDefault() {\n}\n\nfunc (p *GetWorkflowProcessRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *GetWorkflowProcessRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar GetWorkflowProcessRequest_ExecuteID_DEFAULT string\n\nfunc (p *GetWorkflowProcessRequest) GetExecuteID() (v string) {\n\tif !p.IsSetExecuteID() {\n\t\treturn GetWorkflowProcessRequest_ExecuteID_DEFAULT\n\t}\n\treturn *p.ExecuteID\n}\n\nvar GetWorkflowProcessRequest_SubExecuteID_DEFAULT string\n\nfunc (p *GetWorkflowProcessRequest) GetSubExecuteID() (v string) {\n\tif !p.IsSetSubExecuteID() {\n\t\treturn GetWorkflowProcessRequest_SubExecuteID_DEFAULT\n\t}\n\treturn *p.SubExecuteID\n}\n\nvar GetWorkflowProcessRequest_NeedAsync_DEFAULT bool\n\nfunc (p *GetWorkflowProcessRequest) GetNeedAsync() (v bool) {\n\tif !p.IsSetNeedAsync() {\n\t\treturn GetWorkflowProcessRequest_NeedAsync_DEFAULT\n\t}\n\treturn *p.NeedAsync\n}\n\nvar GetWorkflowProcessRequest_LogID_DEFAULT string\n\nfunc (p *GetWorkflowProcessRequest) GetLogID() (v string) {\n\tif !p.IsSetLogID() {\n\t\treturn GetWorkflowProcessRequest_LogID_DEFAULT\n\t}\n\treturn *p.LogID\n}\n\nvar GetWorkflowProcessRequest_NodeID_DEFAULT int64\n\nfunc (p *GetWorkflowProcessRequest) GetNodeID() (v int64) {\n\tif !p.IsSetNodeID() {\n\t\treturn GetWorkflowProcessRequest_NodeID_DEFAULT\n\t}\n\treturn *p.NodeID\n}\n\nvar GetWorkflowProcessRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetWorkflowProcessRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetWorkflowProcessRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetWorkflowProcessRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"space_id\",\n\t3:   \"execute_id\",\n\t4:   \"sub_execute_id\",\n\t5:   \"need_async\",\n\t6:   \"log_id\",\n\t7:   \"node_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetWorkflowProcessRequest) IsSetExecuteID() bool {\n\treturn p.ExecuteID != nil\n}\n\nfunc (p *GetWorkflowProcessRequest) IsSetSubExecuteID() bool {\n\treturn p.SubExecuteID != nil\n}\n\nfunc (p *GetWorkflowProcessRequest) IsSetNeedAsync() bool {\n\treturn p.NeedAsync != nil\n}\n\nfunc (p *GetWorkflowProcessRequest) IsSetLogID() bool {\n\treturn p.LogID != nil\n}\n\nfunc (p *GetWorkflowProcessRequest) IsSetNodeID() bool {\n\treturn p.NodeID != nil\n}\n\nfunc (p *GetWorkflowProcessRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetWorkflowProcessRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkflowProcessRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetWorkflowProcessRequest[fieldId]))\n}\n\nfunc (p *GetWorkflowProcessRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowProcessRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowProcessRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowProcessRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubExecuteID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowProcessRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NeedAsync = _field\n\treturn nil\n}\nfunc (p *GetWorkflowProcessRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LogID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowProcessRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NodeID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowProcessRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetWorkflowProcessRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowProcessRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowProcessRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkflowProcessRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetWorkflowProcessRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteID() {\n\t\tif err = oprot.WriteFieldBegin(\"execute_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExecuteID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetWorkflowProcessRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubExecuteID() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_execute_id\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SubExecuteID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetWorkflowProcessRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedAsync() {\n\t\tif err = oprot.WriteFieldBegin(\"need_async\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NeedAsync); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetWorkflowProcessRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLogID() {\n\t\tif err = oprot.WriteFieldBegin(\"log_id\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LogID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetWorkflowProcessRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodeID() {\n\t\tif err = oprot.WriteFieldBegin(\"node_id\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.NodeID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetWorkflowProcessRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkflowProcessRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkflowProcessRequest(%+v)\", *p)\n\n}\n\ntype GetWorkflowProcessResponse struct {\n\tCode     int64                   `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                  `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData     *GetWorkFlowProcessData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n\tBaseResp *base.BaseResp          `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetWorkflowProcessResponse() *GetWorkflowProcessResponse {\n\treturn &GetWorkflowProcessResponse{}\n}\n\nfunc (p *GetWorkflowProcessResponse) InitDefault() {\n}\n\nfunc (p *GetWorkflowProcessResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetWorkflowProcessResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetWorkflowProcessResponse_Data_DEFAULT *GetWorkFlowProcessData\n\nfunc (p *GetWorkflowProcessResponse) GetData() (v *GetWorkFlowProcessData) {\n\tif !p.IsSetData() {\n\t\treturn GetWorkflowProcessResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetWorkflowProcessResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetWorkflowProcessResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetWorkflowProcessResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetWorkflowProcessResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetWorkflowProcessResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetWorkflowProcessResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetWorkflowProcessResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkflowProcessResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetWorkflowProcessResponse[fieldId]))\n}\n\nfunc (p *GetWorkflowProcessResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetWorkflowProcessResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetWorkflowProcessResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkFlowProcessData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetWorkflowProcessResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetWorkflowProcessResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowProcessResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowProcessResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkflowProcessResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetWorkflowProcessResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetWorkflowProcessResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkflowProcessResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkflowProcessResponse(%+v)\", *p)\n\n}\n\ntype TokenAndCost struct {\n\t// Input Consumption Tokens\n\tInputTokens *string `thrift:\"inputTokens,1,optional\" form:\"inputTokens\" json:\"inputTokens,omitempty\" query:\"inputTokens\"`\n\t// Input cost\n\tInputCost *string `thrift:\"inputCost,2,optional\" form:\"inputCost\" json:\"inputCost,omitempty\" query:\"inputCost\"`\n\t// Output Consumption Tokens\n\tOutputTokens *string `thrift:\"outputTokens,3,optional\" form:\"outputTokens\" json:\"outputTokens,omitempty\" query:\"outputTokens\"`\n\t// Output cost\n\tOutputCost *string `thrift:\"outputCost,4,optional\" form:\"outputCost\" json:\"outputCost,omitempty\" query:\"outputCost\"`\n\t// Total Consumed Tokens\n\tTotalTokens *string `thrift:\"totalTokens,5,optional\" form:\"totalTokens\" json:\"totalTokens,omitempty\" query:\"totalTokens\"`\n\t// total cost\n\tTotalCost *string `thrift:\"totalCost,6,optional\" form:\"totalCost\" json:\"totalCost,omitempty\" query:\"totalCost\"`\n}\n\nfunc NewTokenAndCost() *TokenAndCost {\n\treturn &TokenAndCost{}\n}\n\nfunc (p *TokenAndCost) InitDefault() {\n}\n\nvar TokenAndCost_InputTokens_DEFAULT string\n\nfunc (p *TokenAndCost) GetInputTokens() (v string) {\n\tif !p.IsSetInputTokens() {\n\t\treturn TokenAndCost_InputTokens_DEFAULT\n\t}\n\treturn *p.InputTokens\n}\n\nvar TokenAndCost_InputCost_DEFAULT string\n\nfunc (p *TokenAndCost) GetInputCost() (v string) {\n\tif !p.IsSetInputCost() {\n\t\treturn TokenAndCost_InputCost_DEFAULT\n\t}\n\treturn *p.InputCost\n}\n\nvar TokenAndCost_OutputTokens_DEFAULT string\n\nfunc (p *TokenAndCost) GetOutputTokens() (v string) {\n\tif !p.IsSetOutputTokens() {\n\t\treturn TokenAndCost_OutputTokens_DEFAULT\n\t}\n\treturn *p.OutputTokens\n}\n\nvar TokenAndCost_OutputCost_DEFAULT string\n\nfunc (p *TokenAndCost) GetOutputCost() (v string) {\n\tif !p.IsSetOutputCost() {\n\t\treturn TokenAndCost_OutputCost_DEFAULT\n\t}\n\treturn *p.OutputCost\n}\n\nvar TokenAndCost_TotalTokens_DEFAULT string\n\nfunc (p *TokenAndCost) GetTotalTokens() (v string) {\n\tif !p.IsSetTotalTokens() {\n\t\treturn TokenAndCost_TotalTokens_DEFAULT\n\t}\n\treturn *p.TotalTokens\n}\n\nvar TokenAndCost_TotalCost_DEFAULT string\n\nfunc (p *TokenAndCost) GetTotalCost() (v string) {\n\tif !p.IsSetTotalCost() {\n\t\treturn TokenAndCost_TotalCost_DEFAULT\n\t}\n\treturn *p.TotalCost\n}\n\nvar fieldIDToName_TokenAndCost = map[int16]string{\n\t1: \"inputTokens\",\n\t2: \"inputCost\",\n\t3: \"outputTokens\",\n\t4: \"outputCost\",\n\t5: \"totalTokens\",\n\t6: \"totalCost\",\n}\n\nfunc (p *TokenAndCost) IsSetInputTokens() bool {\n\treturn p.InputTokens != nil\n}\n\nfunc (p *TokenAndCost) IsSetInputCost() bool {\n\treturn p.InputCost != nil\n}\n\nfunc (p *TokenAndCost) IsSetOutputTokens() bool {\n\treturn p.OutputTokens != nil\n}\n\nfunc (p *TokenAndCost) IsSetOutputCost() bool {\n\treturn p.OutputCost != nil\n}\n\nfunc (p *TokenAndCost) IsSetTotalTokens() bool {\n\treturn p.TotalTokens != nil\n}\n\nfunc (p *TokenAndCost) IsSetTotalCost() bool {\n\treturn p.TotalCost != nil\n}\n\nfunc (p *TokenAndCost) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_TokenAndCost[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *TokenAndCost) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.InputTokens = _field\n\treturn nil\n}\nfunc (p *TokenAndCost) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.InputCost = _field\n\treturn nil\n}\nfunc (p *TokenAndCost) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OutputTokens = _field\n\treturn nil\n}\nfunc (p *TokenAndCost) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OutputCost = _field\n\treturn nil\n}\nfunc (p *TokenAndCost) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TotalTokens = _field\n\treturn nil\n}\nfunc (p *TokenAndCost) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.TotalCost = _field\n\treturn nil\n}\n\nfunc (p *TokenAndCost) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"TokenAndCost\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *TokenAndCost) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInputTokens() {\n\t\tif err = oprot.WriteFieldBegin(\"inputTokens\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.InputTokens); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *TokenAndCost) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInputCost() {\n\t\tif err = oprot.WriteFieldBegin(\"inputCost\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.InputCost); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *TokenAndCost) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOutputTokens() {\n\t\tif err = oprot.WriteFieldBegin(\"outputTokens\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OutputTokens); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *TokenAndCost) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOutputCost() {\n\t\tif err = oprot.WriteFieldBegin(\"outputCost\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OutputCost); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *TokenAndCost) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTotalTokens() {\n\t\tif err = oprot.WriteFieldBegin(\"totalTokens\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TotalTokens); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *TokenAndCost) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTotalCost() {\n\t\tif err = oprot.WriteFieldBegin(\"totalCost\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.TotalCost); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *TokenAndCost) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"TokenAndCost(%+v)\", *p)\n\n}\n\ntype GetNodeExecuteHistoryRequest struct {\n\tWorkflowID string `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tSpaceID    string `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tExecuteID  string `thrift:\"execute_id,3,required\" form:\"execute_id,required\" json:\"execute_id,required\" query:\"execute_id,required\"`\n\t// Node ID\n\tNodeID string `thrift:\"node_id,5,required\" form:\"node_id,required\" json:\"node_id,required\" query:\"node_id,required\"`\n\t// Whether batch node\n\tIsBatch *bool `thrift:\"is_batch,6,optional\" form:\"is_batch\" json:\"is_batch,omitempty\" query:\"is_batch\"`\n\t// execution batch\n\tBatchIndex       *int32            `thrift:\"batch_index,7,optional\" form:\"batch_index\" json:\"batch_index,omitempty\" query:\"batch_index\"`\n\tNodeType         string            `thrift:\"node_type,8,required\" form:\"node_type,required\" json:\"node_type,required\" query:\"node_type,required\"`\n\tNodeHistoryScene *NodeHistoryScene `thrift:\"node_history_scene,9,optional\" form:\"node_history_scene\" json:\"node_history_scene,omitempty\" query:\"node_history_scene\"`\n\tBase             *base.Base        `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetNodeExecuteHistoryRequest() *GetNodeExecuteHistoryRequest {\n\treturn &GetNodeExecuteHistoryRequest{}\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) InitDefault() {\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) GetExecuteID() (v string) {\n\treturn p.ExecuteID\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) GetNodeID() (v string) {\n\treturn p.NodeID\n}\n\nvar GetNodeExecuteHistoryRequest_IsBatch_DEFAULT bool\n\nfunc (p *GetNodeExecuteHistoryRequest) GetIsBatch() (v bool) {\n\tif !p.IsSetIsBatch() {\n\t\treturn GetNodeExecuteHistoryRequest_IsBatch_DEFAULT\n\t}\n\treturn *p.IsBatch\n}\n\nvar GetNodeExecuteHistoryRequest_BatchIndex_DEFAULT int32\n\nfunc (p *GetNodeExecuteHistoryRequest) GetBatchIndex() (v int32) {\n\tif !p.IsSetBatchIndex() {\n\t\treturn GetNodeExecuteHistoryRequest_BatchIndex_DEFAULT\n\t}\n\treturn *p.BatchIndex\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) GetNodeType() (v string) {\n\treturn p.NodeType\n}\n\nvar GetNodeExecuteHistoryRequest_NodeHistoryScene_DEFAULT NodeHistoryScene\n\nfunc (p *GetNodeExecuteHistoryRequest) GetNodeHistoryScene() (v NodeHistoryScene) {\n\tif !p.IsSetNodeHistoryScene() {\n\t\treturn GetNodeExecuteHistoryRequest_NodeHistoryScene_DEFAULT\n\t}\n\treturn *p.NodeHistoryScene\n}\n\nvar GetNodeExecuteHistoryRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetNodeExecuteHistoryRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetNodeExecuteHistoryRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetNodeExecuteHistoryRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"space_id\",\n\t3:   \"execute_id\",\n\t5:   \"node_id\",\n\t6:   \"is_batch\",\n\t7:   \"batch_index\",\n\t8:   \"node_type\",\n\t9:   \"node_history_scene\",\n\t255: \"Base\",\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) IsSetIsBatch() bool {\n\treturn p.IsBatch != nil\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) IsSetBatchIndex() bool {\n\treturn p.BatchIndex != nil\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) IsSetNodeHistoryScene() bool {\n\treturn p.NodeHistoryScene != nil\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSpaceID bool = false\n\tvar issetExecuteID bool = false\n\tvar issetNodeID bool = false\n\tvar issetNodeType bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetExecuteID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetNodeID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetNodeType = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetExecuteID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetNodeID {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetNodeType {\n\t\tfieldId = 8\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetNodeExecuteHistoryRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetNodeExecuteHistoryRequest[fieldId]))\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetNodeExecuteHistoryRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetNodeExecuteHistoryRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *GetNodeExecuteHistoryRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeID = _field\n\treturn nil\n}\nfunc (p *GetNodeExecuteHistoryRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsBatch = _field\n\treturn nil\n}\nfunc (p *GetNodeExecuteHistoryRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BatchIndex = _field\n\treturn nil\n}\nfunc (p *GetNodeExecuteHistoryRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeType = _field\n\treturn nil\n}\nfunc (p *GetNodeExecuteHistoryRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *NodeHistoryScene\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := NodeHistoryScene(v)\n\t\t_field = &tmp\n\t}\n\tp.NodeHistoryScene = _field\n\treturn nil\n}\nfunc (p *GetNodeExecuteHistoryRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetNodeExecuteHistoryRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetNodeExecuteHistoryRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetNodeExecuteHistoryRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"execute_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExecuteID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetNodeExecuteHistoryRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_id\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetNodeExecuteHistoryRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsBatch() {\n\t\tif err = oprot.WriteFieldBegin(\"is_batch\", thrift.BOOL, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsBatch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetNodeExecuteHistoryRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBatchIndex() {\n\t\tif err = oprot.WriteFieldBegin(\"batch_index\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.BatchIndex); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetNodeExecuteHistoryRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_type\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetNodeExecuteHistoryRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodeHistoryScene() {\n\t\tif err = oprot.WriteFieldBegin(\"node_history_scene\", thrift.I32, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.NodeHistoryScene)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetNodeExecuteHistoryRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetNodeExecuteHistoryRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetNodeExecuteHistoryRequest(%+v)\", *p)\n\n}\n\ntype GetNodeExecuteHistoryResponse struct {\n\tCode     int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData     *NodeResult    `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewGetNodeExecuteHistoryResponse() *GetNodeExecuteHistoryResponse {\n\treturn &GetNodeExecuteHistoryResponse{}\n}\n\nfunc (p *GetNodeExecuteHistoryResponse) InitDefault() {\n}\n\nfunc (p *GetNodeExecuteHistoryResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetNodeExecuteHistoryResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetNodeExecuteHistoryResponse_Data_DEFAULT *NodeResult\n\nfunc (p *GetNodeExecuteHistoryResponse) GetData() (v *NodeResult) {\n\tif !p.IsSetData() {\n\t\treturn GetNodeExecuteHistoryResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetNodeExecuteHistoryResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetNodeExecuteHistoryResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetNodeExecuteHistoryResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetNodeExecuteHistoryResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetNodeExecuteHistoryResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetNodeExecuteHistoryResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetNodeExecuteHistoryResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetNodeExecuteHistoryResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetNodeExecuteHistoryResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetNodeExecuteHistoryResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetNodeExecuteHistoryResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewNodeResult()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetNodeExecuteHistoryResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetNodeExecuteHistoryResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetNodeExecuteHistoryResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetNodeExecuteHistoryResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetNodeExecuteHistoryResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetNodeExecuteHistoryResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetNodeExecuteHistoryResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetNodeExecuteHistoryResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetNodeExecuteHistoryResponse(%+v)\", *p)\n\n}\n\ntype GetWorkFlowProcessData struct {\n\tWorkFlowId    string            `thrift:\"workFlowId,1\" form:\"workFlowId\" json:\"workFlowId\" query:\"workFlowId\"`\n\tExecuteId     string            `thrift:\"executeId,2\" form:\"executeId\" json:\"executeId\" query:\"executeId\"`\n\tExecuteStatus WorkflowExeStatus `thrift:\"executeStatus,3\" form:\"executeStatus\" json:\"executeStatus\" query:\"executeStatus\"`\n\tNodeResults   []*NodeResult     `thrift:\"nodeResults,4\" form:\"nodeResults\" json:\"nodeResults\" query:\"nodeResults\"`\n\t// execution progress\n\tRate string `thrift:\"rate,5\" form:\"rate\" json:\"rate\" query:\"rate\"`\n\t// Current node practice run state 1: no practice run 2: practice run\n\tExeHistoryStatus WorkflowExeHistoryStatus `thrift:\"exeHistoryStatus,6\" form:\"exeHistoryStatus\" json:\"exeHistoryStatus\" query:\"exeHistoryStatus\"`\n\t// Workflow practice running time\n\tWorkflowExeCost string `thrift:\"workflowExeCost,7\" form:\"workflowExeCost\" json:\"workflowExeCost\" query:\"workflowExeCost\"`\n\t// consume\n\tTokenAndCost *TokenAndCost `thrift:\"tokenAndCost,8,optional\" form:\"tokenAndCost\" json:\"tokenAndCost,omitempty\" query:\"tokenAndCost\"`\n\t// reason for failure\n\tReason *string `thrift:\"reason,9,optional\" form:\"reason\" json:\"reason,omitempty\" query:\"reason\"`\n\t// The ID of the last node\n\tLastNodeID *string `thrift:\"lastNodeID,10,optional\" form:\"lastNodeID\" json:\"lastNodeID,omitempty\" query:\"lastNodeID\"`\n\tLogID      string  `thrift:\"logID,11\" form:\"logID\" json:\"logID\" query:\"logID\"`\n\t// Returns only events in the interrupt\n\tNodeEvents []*NodeEvent `thrift:\"nodeEvents,12\" form:\"nodeEvents\" json:\"nodeEvents\" query:\"nodeEvents\"`\n\tProjectId  string       `thrift:\"projectId,13\" form:\"projectId\" json:\"projectId\" query:\"projectId\"`\n}\n\nfunc NewGetWorkFlowProcessData() *GetWorkFlowProcessData {\n\treturn &GetWorkFlowProcessData{}\n}\n\nfunc (p *GetWorkFlowProcessData) InitDefault() {\n}\n\nfunc (p *GetWorkFlowProcessData) GetWorkFlowId() (v string) {\n\treturn p.WorkFlowId\n}\n\nfunc (p *GetWorkFlowProcessData) GetExecuteId() (v string) {\n\treturn p.ExecuteId\n}\n\nfunc (p *GetWorkFlowProcessData) GetExecuteStatus() (v WorkflowExeStatus) {\n\treturn p.ExecuteStatus\n}\n\nfunc (p *GetWorkFlowProcessData) GetNodeResults() (v []*NodeResult) {\n\treturn p.NodeResults\n}\n\nfunc (p *GetWorkFlowProcessData) GetRate() (v string) {\n\treturn p.Rate\n}\n\nfunc (p *GetWorkFlowProcessData) GetExeHistoryStatus() (v WorkflowExeHistoryStatus) {\n\treturn p.ExeHistoryStatus\n}\n\nfunc (p *GetWorkFlowProcessData) GetWorkflowExeCost() (v string) {\n\treturn p.WorkflowExeCost\n}\n\nvar GetWorkFlowProcessData_TokenAndCost_DEFAULT *TokenAndCost\n\nfunc (p *GetWorkFlowProcessData) GetTokenAndCost() (v *TokenAndCost) {\n\tif !p.IsSetTokenAndCost() {\n\t\treturn GetWorkFlowProcessData_TokenAndCost_DEFAULT\n\t}\n\treturn p.TokenAndCost\n}\n\nvar GetWorkFlowProcessData_Reason_DEFAULT string\n\nfunc (p *GetWorkFlowProcessData) GetReason() (v string) {\n\tif !p.IsSetReason() {\n\t\treturn GetWorkFlowProcessData_Reason_DEFAULT\n\t}\n\treturn *p.Reason\n}\n\nvar GetWorkFlowProcessData_LastNodeID_DEFAULT string\n\nfunc (p *GetWorkFlowProcessData) GetLastNodeID() (v string) {\n\tif !p.IsSetLastNodeID() {\n\t\treturn GetWorkFlowProcessData_LastNodeID_DEFAULT\n\t}\n\treturn *p.LastNodeID\n}\n\nfunc (p *GetWorkFlowProcessData) GetLogID() (v string) {\n\treturn p.LogID\n}\n\nfunc (p *GetWorkFlowProcessData) GetNodeEvents() (v []*NodeEvent) {\n\treturn p.NodeEvents\n}\n\nfunc (p *GetWorkFlowProcessData) GetProjectId() (v string) {\n\treturn p.ProjectId\n}\n\nvar fieldIDToName_GetWorkFlowProcessData = map[int16]string{\n\t1:  \"workFlowId\",\n\t2:  \"executeId\",\n\t3:  \"executeStatus\",\n\t4:  \"nodeResults\",\n\t5:  \"rate\",\n\t6:  \"exeHistoryStatus\",\n\t7:  \"workflowExeCost\",\n\t8:  \"tokenAndCost\",\n\t9:  \"reason\",\n\t10: \"lastNodeID\",\n\t11: \"logID\",\n\t12: \"nodeEvents\",\n\t13: \"projectId\",\n}\n\nfunc (p *GetWorkFlowProcessData) IsSetTokenAndCost() bool {\n\treturn p.TokenAndCost != nil\n}\n\nfunc (p *GetWorkFlowProcessData) IsSetReason() bool {\n\treturn p.Reason != nil\n}\n\nfunc (p *GetWorkFlowProcessData) IsSetLastNodeID() bool {\n\treturn p.LastNodeID != nil\n}\n\nfunc (p *GetWorkFlowProcessData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkFlowProcessData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetWorkFlowProcessData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkFlowId = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExecuteId = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field WorkflowExeStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkflowExeStatus(v)\n\t}\n\tp.ExecuteStatus = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*NodeResult, 0, size)\n\tvalues := make([]NodeResult, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NodeResults = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Rate = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field WorkflowExeHistoryStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkflowExeHistoryStatus(v)\n\t}\n\tp.ExeHistoryStatus = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowExeCost = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewTokenAndCost()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TokenAndCost = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Reason = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LastNodeID = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LogID = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField12(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*NodeEvent, 0, size)\n\tvalues := make([]NodeEvent, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NodeEvents = _field\n\treturn nil\n}\nfunc (p *GetWorkFlowProcessData) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectId = _field\n\treturn nil\n}\n\nfunc (p *GetWorkFlowProcessData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkFlowProcessData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkFlowProcessData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workFlowId\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkFlowId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"executeId\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExecuteId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"executeStatus\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ExecuteStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"nodeResults\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.NodeResults)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.NodeResults {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"rate\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Rate); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"exeHistoryStatus\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.ExeHistoryStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflowExeCost\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowExeCost); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTokenAndCost() {\n\t\tif err = oprot.WriteFieldBegin(\"tokenAndCost\", thrift.STRUCT, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TokenAndCost.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetReason() {\n\t\tif err = oprot.WriteFieldBegin(\"reason\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Reason); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLastNodeID() {\n\t\tif err = oprot.WriteFieldBegin(\"lastNodeID\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LastNodeID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"logID\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LogID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"nodeEvents\", thrift.LIST, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.NodeEvents)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.NodeEvents {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *GetWorkFlowProcessData) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"projectId\", thrift.STRING, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\n\nfunc (p *GetWorkFlowProcessData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkFlowProcessData(%+v)\", *p)\n\n}\n\ntype NodeResult struct {\n\tNodeId     string        `thrift:\"nodeId,1\" form:\"nodeId\" json:\"nodeId\" query:\"nodeId\"`\n\tNodeType   string        `thrift:\"NodeType,2\" form:\"NodeType\" json:\"NodeType\" query:\"NodeType\"`\n\tNodeName   string        `thrift:\"NodeName,3\" form:\"NodeName\" json:\"NodeName\" query:\"NodeName\"`\n\tNodeStatus NodeExeStatus `thrift:\"nodeStatus,5\" form:\"nodeStatus\" json:\"nodeStatus\" query:\"nodeStatus\"`\n\tErrorInfo  string        `thrift:\"errorInfo,6\" form:\"errorInfo\" json:\"errorInfo\" query:\"errorInfo\"`\n\t// Imported parameters jsonString type\n\tInput string `thrift:\"input,7\" form:\"input\" json:\"input\" query:\"input\"`\n\t// Exported parameter jsonString\n\tOutput string `thrift:\"output,8\" form:\"output\" json:\"output\" query:\"output\"`\n\t// Running time eg: 3s\n\tNodeExeCost string `thrift:\"nodeExeCost,9\" form:\"nodeExeCost\" json:\"nodeExeCost\" query:\"nodeExeCost\"`\n\t// consume\n\tTokenAndCost *TokenAndCost `thrift:\"tokenAndCost,10,optional\" form:\"tokenAndCost\" json:\"tokenAndCost,omitempty\" query:\"tokenAndCost\"`\n\t// direct output\n\tRawOutput       *string `thrift:\"raw_output,11,optional\" form:\"raw_output\" json:\"raw_output,omitempty\" query:\"raw_output\"`\n\tErrorLevel      string  `thrift:\"errorLevel,12\" form:\"errorLevel\" json:\"errorLevel\" query:\"errorLevel\"`\n\tIndex           *int32  `thrift:\"index,13,optional\" form:\"index\" json:\"index,omitempty\" query:\"index\"`\n\tItems           *string `thrift:\"items,14,optional\" form:\"items\" json:\"items,omitempty\" query:\"items\"`\n\tMaxBatchSize    *int32  `thrift:\"maxBatchSize,15,optional\" form:\"maxBatchSize\" json:\"maxBatchSize,omitempty\" query:\"maxBatchSize\"`\n\tLimitVariable   *string `thrift:\"limitVariable,16,optional\" form:\"limitVariable\" json:\"limitVariable,omitempty\" query:\"limitVariable\"`\n\tLoopVariableLen *int32  `thrift:\"loopVariableLen,17,optional\" form:\"loopVariableLen\" json:\"loopVariableLen,omitempty\" query:\"loopVariableLen\"`\n\tBatch           *string `thrift:\"batch,18,optional\" form:\"batch\" json:\"batch,omitempty\" query:\"batch\"`\n\tIsBatch         *bool   `thrift:\"isBatch,19,optional\" form:\"isBatch\" json:\"isBatch,omitempty\" query:\"isBatch\"`\n\tLogVersion      int32   `thrift:\"logVersion,20\" form:\"logVersion\" json:\"logVersion\" query:\"logVersion\"`\n\tExtra           string  `thrift:\"extra,21\" form:\"extra\" json:\"extra\" query:\"extra\"`\n\tExecuteId       *string `thrift:\"executeId,22,optional\" form:\"executeId\" json:\"executeId,omitempty\" query:\"executeId\"`\n\tSubExecuteId    *string `thrift:\"subExecuteId,23,optional\" form:\"subExecuteId\" json:\"subExecuteId,omitempty\" query:\"subExecuteId\"`\n\tNeedAsync       *bool   `thrift:\"needAsync,24,optional\" form:\"needAsync\" json:\"needAsync,omitempty\" query:\"needAsync\"`\n}\n\nfunc NewNodeResult() *NodeResult {\n\treturn &NodeResult{}\n}\n\nfunc (p *NodeResult) InitDefault() {\n}\n\nfunc (p *NodeResult) GetNodeId() (v string) {\n\treturn p.NodeId\n}\n\nfunc (p *NodeResult) GetNodeType() (v string) {\n\treturn p.NodeType\n}\n\nfunc (p *NodeResult) GetNodeName() (v string) {\n\treturn p.NodeName\n}\n\nfunc (p *NodeResult) GetNodeStatus() (v NodeExeStatus) {\n\treturn p.NodeStatus\n}\n\nfunc (p *NodeResult) GetErrorInfo() (v string) {\n\treturn p.ErrorInfo\n}\n\nfunc (p *NodeResult) GetInput() (v string) {\n\treturn p.Input\n}\n\nfunc (p *NodeResult) GetOutput() (v string) {\n\treturn p.Output\n}\n\nfunc (p *NodeResult) GetNodeExeCost() (v string) {\n\treturn p.NodeExeCost\n}\n\nvar NodeResult_TokenAndCost_DEFAULT *TokenAndCost\n\nfunc (p *NodeResult) GetTokenAndCost() (v *TokenAndCost) {\n\tif !p.IsSetTokenAndCost() {\n\t\treturn NodeResult_TokenAndCost_DEFAULT\n\t}\n\treturn p.TokenAndCost\n}\n\nvar NodeResult_RawOutput_DEFAULT string\n\nfunc (p *NodeResult) GetRawOutput() (v string) {\n\tif !p.IsSetRawOutput() {\n\t\treturn NodeResult_RawOutput_DEFAULT\n\t}\n\treturn *p.RawOutput\n}\n\nfunc (p *NodeResult) GetErrorLevel() (v string) {\n\treturn p.ErrorLevel\n}\n\nvar NodeResult_Index_DEFAULT int32\n\nfunc (p *NodeResult) GetIndex() (v int32) {\n\tif !p.IsSetIndex() {\n\t\treturn NodeResult_Index_DEFAULT\n\t}\n\treturn *p.Index\n}\n\nvar NodeResult_Items_DEFAULT string\n\nfunc (p *NodeResult) GetItems() (v string) {\n\tif !p.IsSetItems() {\n\t\treturn NodeResult_Items_DEFAULT\n\t}\n\treturn *p.Items\n}\n\nvar NodeResult_MaxBatchSize_DEFAULT int32\n\nfunc (p *NodeResult) GetMaxBatchSize() (v int32) {\n\tif !p.IsSetMaxBatchSize() {\n\t\treturn NodeResult_MaxBatchSize_DEFAULT\n\t}\n\treturn *p.MaxBatchSize\n}\n\nvar NodeResult_LimitVariable_DEFAULT string\n\nfunc (p *NodeResult) GetLimitVariable() (v string) {\n\tif !p.IsSetLimitVariable() {\n\t\treturn NodeResult_LimitVariable_DEFAULT\n\t}\n\treturn *p.LimitVariable\n}\n\nvar NodeResult_LoopVariableLen_DEFAULT int32\n\nfunc (p *NodeResult) GetLoopVariableLen() (v int32) {\n\tif !p.IsSetLoopVariableLen() {\n\t\treturn NodeResult_LoopVariableLen_DEFAULT\n\t}\n\treturn *p.LoopVariableLen\n}\n\nvar NodeResult_Batch_DEFAULT string\n\nfunc (p *NodeResult) GetBatch() (v string) {\n\tif !p.IsSetBatch() {\n\t\treturn NodeResult_Batch_DEFAULT\n\t}\n\treturn *p.Batch\n}\n\nvar NodeResult_IsBatch_DEFAULT bool\n\nfunc (p *NodeResult) GetIsBatch() (v bool) {\n\tif !p.IsSetIsBatch() {\n\t\treturn NodeResult_IsBatch_DEFAULT\n\t}\n\treturn *p.IsBatch\n}\n\nfunc (p *NodeResult) GetLogVersion() (v int32) {\n\treturn p.LogVersion\n}\n\nfunc (p *NodeResult) GetExtra() (v string) {\n\treturn p.Extra\n}\n\nvar NodeResult_ExecuteId_DEFAULT string\n\nfunc (p *NodeResult) GetExecuteId() (v string) {\n\tif !p.IsSetExecuteId() {\n\t\treturn NodeResult_ExecuteId_DEFAULT\n\t}\n\treturn *p.ExecuteId\n}\n\nvar NodeResult_SubExecuteId_DEFAULT string\n\nfunc (p *NodeResult) GetSubExecuteId() (v string) {\n\tif !p.IsSetSubExecuteId() {\n\t\treturn NodeResult_SubExecuteId_DEFAULT\n\t}\n\treturn *p.SubExecuteId\n}\n\nvar NodeResult_NeedAsync_DEFAULT bool\n\nfunc (p *NodeResult) GetNeedAsync() (v bool) {\n\tif !p.IsSetNeedAsync() {\n\t\treturn NodeResult_NeedAsync_DEFAULT\n\t}\n\treturn *p.NeedAsync\n}\n\nvar fieldIDToName_NodeResult = map[int16]string{\n\t1:  \"nodeId\",\n\t2:  \"NodeType\",\n\t3:  \"NodeName\",\n\t5:  \"nodeStatus\",\n\t6:  \"errorInfo\",\n\t7:  \"input\",\n\t8:  \"output\",\n\t9:  \"nodeExeCost\",\n\t10: \"tokenAndCost\",\n\t11: \"raw_output\",\n\t12: \"errorLevel\",\n\t13: \"index\",\n\t14: \"items\",\n\t15: \"maxBatchSize\",\n\t16: \"limitVariable\",\n\t17: \"loopVariableLen\",\n\t18: \"batch\",\n\t19: \"isBatch\",\n\t20: \"logVersion\",\n\t21: \"extra\",\n\t22: \"executeId\",\n\t23: \"subExecuteId\",\n\t24: \"needAsync\",\n}\n\nfunc (p *NodeResult) IsSetTokenAndCost() bool {\n\treturn p.TokenAndCost != nil\n}\n\nfunc (p *NodeResult) IsSetRawOutput() bool {\n\treturn p.RawOutput != nil\n}\n\nfunc (p *NodeResult) IsSetIndex() bool {\n\treturn p.Index != nil\n}\n\nfunc (p *NodeResult) IsSetItems() bool {\n\treturn p.Items != nil\n}\n\nfunc (p *NodeResult) IsSetMaxBatchSize() bool {\n\treturn p.MaxBatchSize != nil\n}\n\nfunc (p *NodeResult) IsSetLimitVariable() bool {\n\treturn p.LimitVariable != nil\n}\n\nfunc (p *NodeResult) IsSetLoopVariableLen() bool {\n\treturn p.LoopVariableLen != nil\n}\n\nfunc (p *NodeResult) IsSetBatch() bool {\n\treturn p.Batch != nil\n}\n\nfunc (p *NodeResult) IsSetIsBatch() bool {\n\treturn p.IsBatch != nil\n}\n\nfunc (p *NodeResult) IsSetExecuteId() bool {\n\treturn p.ExecuteId != nil\n}\n\nfunc (p *NodeResult) IsSetSubExecuteId() bool {\n\treturn p.SubExecuteId != nil\n}\n\nfunc (p *NodeResult) IsSetNeedAsync() bool {\n\treturn p.NeedAsync != nil\n}\n\nfunc (p *NodeResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodeResult) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeId = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeType = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeName = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field NodeExeStatus\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = NodeExeStatus(v)\n\t}\n\tp.NodeStatus = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ErrorInfo = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Input = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Output = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeExeCost = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewTokenAndCost()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.TokenAndCost = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.RawOutput = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ErrorLevel = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Index = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Items = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.MaxBatchSize = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LimitVariable = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LoopVariableLen = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Batch = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsBatch = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LogVersion = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Extra = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteId = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SubExecuteId = _field\n\treturn nil\n}\nfunc (p *NodeResult) ReadField24(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NeedAsync = _field\n\treturn nil\n}\n\nfunc (p *NodeResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeResult\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeResult) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"nodeId\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeId); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"NodeType\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"NodeName\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"nodeStatus\", thrift.I32, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.NodeStatus)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"errorInfo\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ErrorInfo); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"input\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Input); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"output\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Output); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"nodeExeCost\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeExeCost); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTokenAndCost() {\n\t\tif err = oprot.WriteFieldBegin(\"tokenAndCost\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.TokenAndCost.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRawOutput() {\n\t\tif err = oprot.WriteFieldBegin(\"raw_output\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.RawOutput); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"errorLevel\", thrift.STRING, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ErrorLevel); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIndex() {\n\t\tif err = oprot.WriteFieldBegin(\"index\", thrift.I32, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Index); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetItems() {\n\t\tif err = oprot.WriteFieldBegin(\"items\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Items); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField15(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMaxBatchSize() {\n\t\tif err = oprot.WriteFieldBegin(\"maxBatchSize\", thrift.I32, 15); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.MaxBatchSize); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLimitVariable() {\n\t\tif err = oprot.WriteFieldBegin(\"limitVariable\", thrift.STRING, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LimitVariable); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLoopVariableLen() {\n\t\tif err = oprot.WriteFieldBegin(\"loopVariableLen\", thrift.I32, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.LoopVariableLen); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBatch() {\n\t\tif err = oprot.WriteFieldBegin(\"batch\", thrift.STRING, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Batch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsBatch() {\n\t\tif err = oprot.WriteFieldBegin(\"isBatch\", thrift.BOOL, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsBatch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField20(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"logVersion\", thrift.I32, 20); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.LogVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField21(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"extra\", thrift.STRING, 21); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Extra); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField22(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteId() {\n\t\tif err = oprot.WriteFieldBegin(\"executeId\", thrift.STRING, 22); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExecuteId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField23(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubExecuteId() {\n\t\tif err = oprot.WriteFieldBegin(\"subExecuteId\", thrift.STRING, 23); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SubExecuteId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *NodeResult) writeField24(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedAsync() {\n\t\tif err = oprot.WriteFieldBegin(\"needAsync\", thrift.BOOL, 24); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NeedAsync); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\n\nfunc (p *NodeResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeResult(%+v)\", *p)\n\n}\n\ntype NodeEvent struct {\n\tID        string    `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tType      EventType `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n\tNodeTitle string    `thrift:\"node_title,3\" form:\"node_title\" json:\"node_title\" query:\"node_title\"`\n\tData      string    `thrift:\"data,4\" form:\"data\" json:\"data\" query:\"data\"`\n\tNodeIcon  string    `thrift:\"node_icon,5\" form:\"node_icon\" json:\"node_icon\" query:\"node_icon\"`\n\t// Actually node_execute_id\n\tNodeID string `thrift:\"node_id,6\" form:\"node_id\" json:\"node_id\" query:\"node_id\"`\n\t// Corresponds to node_id on canvas\n\tSchemaNodeID string `thrift:\"schema_node_id,7\" form:\"schema_node_id\" json:\"schema_node_id\" query:\"schema_node_id\"`\n}\n\nfunc NewNodeEvent() *NodeEvent {\n\treturn &NodeEvent{}\n}\n\nfunc (p *NodeEvent) InitDefault() {\n}\n\nfunc (p *NodeEvent) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *NodeEvent) GetType() (v EventType) {\n\treturn p.Type\n}\n\nfunc (p *NodeEvent) GetNodeTitle() (v string) {\n\treturn p.NodeTitle\n}\n\nfunc (p *NodeEvent) GetData() (v string) {\n\treturn p.Data\n}\n\nfunc (p *NodeEvent) GetNodeIcon() (v string) {\n\treturn p.NodeIcon\n}\n\nfunc (p *NodeEvent) GetNodeID() (v string) {\n\treturn p.NodeID\n}\n\nfunc (p *NodeEvent) GetSchemaNodeID() (v string) {\n\treturn p.SchemaNodeID\n}\n\nvar fieldIDToName_NodeEvent = map[int16]string{\n\t1: \"id\",\n\t2: \"type\",\n\t3: \"node_title\",\n\t4: \"data\",\n\t5: \"node_icon\",\n\t6: \"node_id\",\n\t7: \"schema_node_id\",\n}\n\nfunc (p *NodeEvent) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeEvent[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodeEvent) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *NodeEvent) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field EventType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = EventType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *NodeEvent) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeTitle = _field\n\treturn nil\n}\nfunc (p *NodeEvent) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *NodeEvent) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeIcon = _field\n\treturn nil\n}\nfunc (p *NodeEvent) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeID = _field\n\treturn nil\n}\nfunc (p *NodeEvent) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SchemaNodeID = _field\n\treturn nil\n}\n\nfunc (p *NodeEvent) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeEvent\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeEvent) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodeEvent) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodeEvent) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_title\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeTitle); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NodeEvent) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Data); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *NodeEvent) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_icon\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeIcon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *NodeEvent) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_id\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *NodeEvent) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"schema_node_id\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SchemaNodeID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *NodeEvent) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeEvent(%+v)\", *p)\n\n}\n\ntype GetUploadAuthTokenRequest struct {\n\tScene string     `thrift:\"scene,1\" form:\"scene\" json:\"scene\" query:\"scene\"`\n\tBase  *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetUploadAuthTokenRequest() *GetUploadAuthTokenRequest {\n\treturn &GetUploadAuthTokenRequest{}\n}\n\nfunc (p *GetUploadAuthTokenRequest) InitDefault() {\n}\n\nfunc (p *GetUploadAuthTokenRequest) GetScene() (v string) {\n\treturn p.Scene\n}\n\nvar GetUploadAuthTokenRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetUploadAuthTokenRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetUploadAuthTokenRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetUploadAuthTokenRequest = map[int16]string{\n\t1:   \"scene\",\n\t255: \"Base\",\n}\n\nfunc (p *GetUploadAuthTokenRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetUploadAuthTokenRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUploadAuthTokenRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetUploadAuthTokenRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUploadAuthTokenRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"scene\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Scene); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUploadAuthTokenRequest(%+v)\", *p)\n\n}\n\ntype GetUploadAuthTokenResponse struct {\n\tData     *GetUploadAuthTokenData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                   `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                  `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp          `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewGetUploadAuthTokenResponse() *GetUploadAuthTokenResponse {\n\treturn &GetUploadAuthTokenResponse{}\n}\n\nfunc (p *GetUploadAuthTokenResponse) InitDefault() {\n}\n\nvar GetUploadAuthTokenResponse_Data_DEFAULT *GetUploadAuthTokenData\n\nfunc (p *GetUploadAuthTokenResponse) GetData() (v *GetUploadAuthTokenData) {\n\tif !p.IsSetData() {\n\t\treturn GetUploadAuthTokenResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *GetUploadAuthTokenResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetUploadAuthTokenResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetUploadAuthTokenResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetUploadAuthTokenResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetUploadAuthTokenResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetUploadAuthTokenResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetUploadAuthTokenResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetUploadAuthTokenResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetUploadAuthTokenResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUploadAuthTokenResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetUploadAuthTokenResponse[fieldId]))\n}\n\nfunc (p *GetUploadAuthTokenResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetUploadAuthTokenData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetUploadAuthTokenResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUploadAuthTokenResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUploadAuthTokenResponse(%+v)\", *p)\n\n}\n\ntype GetUploadAuthTokenData struct {\n\tServiceID        string               `thrift:\"service_id,1\" form:\"service_id\" json:\"service_id\" query:\"service_id\"`\n\tUploadPathPrefix string               `thrift:\"upload_path_prefix,2\" form:\"upload_path_prefix\" json:\"upload_path_prefix\" query:\"upload_path_prefix\"`\n\tAuth             *UploadAuthTokenInfo `thrift:\"auth,3\" form:\"auth\" json:\"auth\" query:\"auth\"`\n\tUploadHost       string               `thrift:\"upload_host,4\" form:\"upload_host\" json:\"upload_host\" query:\"upload_host\"`\n\tSchema           string               `thrift:\"schema,5\" form:\"schema\" json:\"schema\" query:\"schema\"`\n}\n\nfunc NewGetUploadAuthTokenData() *GetUploadAuthTokenData {\n\treturn &GetUploadAuthTokenData{}\n}\n\nfunc (p *GetUploadAuthTokenData) InitDefault() {\n}\n\nfunc (p *GetUploadAuthTokenData) GetServiceID() (v string) {\n\treturn p.ServiceID\n}\n\nfunc (p *GetUploadAuthTokenData) GetUploadPathPrefix() (v string) {\n\treturn p.UploadPathPrefix\n}\n\nvar GetUploadAuthTokenData_Auth_DEFAULT *UploadAuthTokenInfo\n\nfunc (p *GetUploadAuthTokenData) GetAuth() (v *UploadAuthTokenInfo) {\n\tif !p.IsSetAuth() {\n\t\treturn GetUploadAuthTokenData_Auth_DEFAULT\n\t}\n\treturn p.Auth\n}\n\nfunc (p *GetUploadAuthTokenData) GetUploadHost() (v string) {\n\treturn p.UploadHost\n}\n\nfunc (p *GetUploadAuthTokenData) GetSchema() (v string) {\n\treturn p.Schema\n}\n\nvar fieldIDToName_GetUploadAuthTokenData = map[int16]string{\n\t1: \"service_id\",\n\t2: \"upload_path_prefix\",\n\t3: \"auth\",\n\t4: \"upload_host\",\n\t5: \"schema\",\n}\n\nfunc (p *GetUploadAuthTokenData) IsSetAuth() bool {\n\treturn p.Auth != nil\n}\n\nfunc (p *GetUploadAuthTokenData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetUploadAuthTokenData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ServiceID = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UploadPathPrefix = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenData) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewUploadAuthTokenInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Auth = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UploadHost = _field\n\treturn nil\n}\nfunc (p *GetUploadAuthTokenData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Schema = _field\n\treturn nil\n}\n\nfunc (p *GetUploadAuthTokenData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetUploadAuthTokenData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"service_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ServiceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"upload_path_prefix\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UploadPathPrefix); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"auth\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Auth.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"upload_host\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UploadHost); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetUploadAuthTokenData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"schema\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Schema); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *GetUploadAuthTokenData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetUploadAuthTokenData(%+v)\", *p)\n\n}\n\ntype UploadAuthTokenInfo struct {\n\tAccessKeyID     string `thrift:\"access_key_id,1\" form:\"access_key_id\" json:\"access_key_id\" query:\"access_key_id\"`\n\tSecretAccessKey string `thrift:\"secret_access_key,2\" form:\"secret_access_key\" json:\"secret_access_key\" query:\"secret_access_key\"`\n\tSessionToken    string `thrift:\"session_token,3\" form:\"session_token\" json:\"session_token\" query:\"session_token\"`\n\tExpiredTime     string `thrift:\"expired_time,4\" form:\"expired_time\" json:\"expired_time\" query:\"expired_time\"`\n\tCurrentTime     string `thrift:\"current_time,5\" form:\"current_time\" json:\"current_time\" query:\"current_time\"`\n}\n\nfunc NewUploadAuthTokenInfo() *UploadAuthTokenInfo {\n\treturn &UploadAuthTokenInfo{}\n}\n\nfunc (p *UploadAuthTokenInfo) InitDefault() {\n}\n\nfunc (p *UploadAuthTokenInfo) GetAccessKeyID() (v string) {\n\treturn p.AccessKeyID\n}\n\nfunc (p *UploadAuthTokenInfo) GetSecretAccessKey() (v string) {\n\treturn p.SecretAccessKey\n}\n\nfunc (p *UploadAuthTokenInfo) GetSessionToken() (v string) {\n\treturn p.SessionToken\n}\n\nfunc (p *UploadAuthTokenInfo) GetExpiredTime() (v string) {\n\treturn p.ExpiredTime\n}\n\nfunc (p *UploadAuthTokenInfo) GetCurrentTime() (v string) {\n\treturn p.CurrentTime\n}\n\nvar fieldIDToName_UploadAuthTokenInfo = map[int16]string{\n\t1: \"access_key_id\",\n\t2: \"secret_access_key\",\n\t3: \"session_token\",\n\t4: \"expired_time\",\n\t5: \"current_time\",\n}\n\nfunc (p *UploadAuthTokenInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UploadAuthTokenInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UploadAuthTokenInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.AccessKeyID = _field\n\treturn nil\n}\nfunc (p *UploadAuthTokenInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SecretAccessKey = _field\n\treturn nil\n}\nfunc (p *UploadAuthTokenInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SessionToken = _field\n\treturn nil\n}\nfunc (p *UploadAuthTokenInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExpiredTime = _field\n\treturn nil\n}\nfunc (p *UploadAuthTokenInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CurrentTime = _field\n\treturn nil\n}\n\nfunc (p *UploadAuthTokenInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UploadAuthTokenInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UploadAuthTokenInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"access_key_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.AccessKeyID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UploadAuthTokenInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"secret_access_key\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SecretAccessKey); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UploadAuthTokenInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"session_token\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SessionToken); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UploadAuthTokenInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"expired_time\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExpiredTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UploadAuthTokenInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"current_time\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CurrentTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *UploadAuthTokenInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UploadAuthTokenInfo(%+v)\", *p)\n\n}\n\ntype SignImageURLRequest struct {\n\tURI   string     `thrift:\"uri,1,required\" form:\"uri,required\" json:\"uri,required\" query:\"uri,required\"`\n\tScene *string    `thrift:\"Scene,2,optional\" form:\"Scene\" json:\"Scene,omitempty\" query:\"Scene\"`\n\tBase  *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewSignImageURLRequest() *SignImageURLRequest {\n\treturn &SignImageURLRequest{}\n}\n\nfunc (p *SignImageURLRequest) InitDefault() {\n}\n\nfunc (p *SignImageURLRequest) GetURI() (v string) {\n\treturn p.URI\n}\n\nvar SignImageURLRequest_Scene_DEFAULT string\n\nfunc (p *SignImageURLRequest) GetScene() (v string) {\n\tif !p.IsSetScene() {\n\t\treturn SignImageURLRequest_Scene_DEFAULT\n\t}\n\treturn *p.Scene\n}\n\nvar SignImageURLRequest_Base_DEFAULT *base.Base\n\nfunc (p *SignImageURLRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn SignImageURLRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_SignImageURLRequest = map[int16]string{\n\t1:   \"uri\",\n\t2:   \"Scene\",\n\t255: \"Base\",\n}\n\nfunc (p *SignImageURLRequest) IsSetScene() bool {\n\treturn p.Scene != nil\n}\n\nfunc (p *SignImageURLRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *SignImageURLRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetURI bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetURI = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetURI {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SignImageURLRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SignImageURLRequest[fieldId]))\n}\n\nfunc (p *SignImageURLRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URI = _field\n\treturn nil\n}\nfunc (p *SignImageURLRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Scene = _field\n\treturn nil\n}\nfunc (p *SignImageURLRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *SignImageURLRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SignImageURLRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SignImageURLRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"uri\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SignImageURLRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetScene() {\n\t\tif err = oprot.WriteFieldBegin(\"Scene\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Scene); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *SignImageURLRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SignImageURLRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SignImageURLRequest(%+v)\", *p)\n\n}\n\ntype SignImageURLResponse struct {\n\tURL      string         `thrift:\"url,1,required\" form:\"url,required\" json:\"url,required\" query:\"url,required\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewSignImageURLResponse() *SignImageURLResponse {\n\treturn &SignImageURLResponse{}\n}\n\nfunc (p *SignImageURLResponse) InitDefault() {\n}\n\nfunc (p *SignImageURLResponse) GetURL() (v string) {\n\treturn p.URL\n}\n\nfunc (p *SignImageURLResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *SignImageURLResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar SignImageURLResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *SignImageURLResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn SignImageURLResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_SignImageURLResponse = map[int16]string{\n\t1:   \"url\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *SignImageURLResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *SignImageURLResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetURL bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetURL = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetURL {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SignImageURLResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_SignImageURLResponse[fieldId]))\n}\n\nfunc (p *SignImageURLResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.URL = _field\n\treturn nil\n}\nfunc (p *SignImageURLResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *SignImageURLResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *SignImageURLResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *SignImageURLResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SignImageURLResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SignImageURLResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"url\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.URL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SignImageURLResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *SignImageURLResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *SignImageURLResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *SignImageURLResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SignImageURLResponse(%+v)\", *p)\n\n}\n\ntype ValidateErrorData struct {\n\tNodeError *NodeError        `thrift:\"node_error,1\" form:\"node_error\" json:\"node_error\" query:\"node_error\"`\n\tPathError *PathError        `thrift:\"path_error,2\" form:\"path_error\" json:\"path_error\" query:\"path_error\"`\n\tMessage   string            `thrift:\"message,3\" form:\"message\" json:\"message\" query:\"message\"`\n\tType      ValidateErrorType `thrift:\"type,4\" form:\"type\" json:\"type\" query:\"type\"`\n}\n\nfunc NewValidateErrorData() *ValidateErrorData {\n\treturn &ValidateErrorData{}\n}\n\nfunc (p *ValidateErrorData) InitDefault() {\n}\n\nvar ValidateErrorData_NodeError_DEFAULT *NodeError\n\nfunc (p *ValidateErrorData) GetNodeError() (v *NodeError) {\n\tif !p.IsSetNodeError() {\n\t\treturn ValidateErrorData_NodeError_DEFAULT\n\t}\n\treturn p.NodeError\n}\n\nvar ValidateErrorData_PathError_DEFAULT *PathError\n\nfunc (p *ValidateErrorData) GetPathError() (v *PathError) {\n\tif !p.IsSetPathError() {\n\t\treturn ValidateErrorData_PathError_DEFAULT\n\t}\n\treturn p.PathError\n}\n\nfunc (p *ValidateErrorData) GetMessage() (v string) {\n\treturn p.Message\n}\n\nfunc (p *ValidateErrorData) GetType() (v ValidateErrorType) {\n\treturn p.Type\n}\n\nvar fieldIDToName_ValidateErrorData = map[int16]string{\n\t1: \"node_error\",\n\t2: \"path_error\",\n\t3: \"message\",\n\t4: \"type\",\n}\n\nfunc (p *ValidateErrorData) IsSetNodeError() bool {\n\treturn p.NodeError != nil\n}\n\nfunc (p *ValidateErrorData) IsSetPathError() bool {\n\treturn p.PathError != nil\n}\n\nfunc (p *ValidateErrorData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ValidateErrorData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ValidateErrorData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewNodeError()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.NodeError = _field\n\treturn nil\n}\nfunc (p *ValidateErrorData) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewPathError()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PathError = _field\n\treturn nil\n}\nfunc (p *ValidateErrorData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\nfunc (p *ValidateErrorData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field ValidateErrorType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ValidateErrorType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\n\nfunc (p *ValidateErrorData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateErrorData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ValidateErrorData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_error\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.NodeError.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ValidateErrorData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"path_error\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.PathError.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ValidateErrorData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"message\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ValidateErrorData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *ValidateErrorData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ValidateErrorData(%+v)\", *p)\n\n}\n\ntype NodeError struct {\n\tNodeID string `thrift:\"node_id,1\" form:\"node_id\" json:\"node_id\" query:\"node_id\"`\n}\n\nfunc NewNodeError() *NodeError {\n\treturn &NodeError{}\n}\n\nfunc (p *NodeError) InitDefault() {\n}\n\nfunc (p *NodeError) GetNodeID() (v string) {\n\treturn p.NodeID\n}\n\nvar fieldIDToName_NodeError = map[int16]string{\n\t1: \"node_id\",\n}\n\nfunc (p *NodeError) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeError[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodeError) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeID = _field\n\treturn nil\n}\n\nfunc (p *NodeError) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeError\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeError) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *NodeError) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeError(%+v)\", *p)\n\n}\n\ntype PathError struct {\n\tStart string `thrift:\"start,1\" form:\"start\" json:\"start\" query:\"start\"`\n\tEnd   string `thrift:\"end,2\" form:\"end\" json:\"end\" query:\"end\"`\n\t// Node ID on the path\n\tPath []string `thrift:\"path,3\" form:\"path\" json:\"path\" query:\"path\"`\n}\n\nfunc NewPathError() *PathError {\n\treturn &PathError{}\n}\n\nfunc (p *PathError) InitDefault() {\n}\n\nfunc (p *PathError) GetStart() (v string) {\n\treturn p.Start\n}\n\nfunc (p *PathError) GetEnd() (v string) {\n\treturn p.End\n}\n\nfunc (p *PathError) GetPath() (v []string) {\n\treturn p.Path\n}\n\nvar fieldIDToName_PathError = map[int16]string{\n\t1: \"start\",\n\t2: \"end\",\n\t3: \"path\",\n}\n\nfunc (p *PathError) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PathError[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PathError) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Start = _field\n\treturn nil\n}\nfunc (p *PathError) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.End = _field\n\treturn nil\n}\nfunc (p *PathError) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Path = _field\n\treturn nil\n}\n\nfunc (p *PathError) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PathError\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PathError) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"start\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Start); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PathError) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"end\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.End); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PathError) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"path\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.Path)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Path {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *PathError) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PathError(%+v)\", *p)\n\n}\n\ntype NodeTemplate struct {\n\tID           string           `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tType         NodeTemplateType `thrift:\"type,2\" form:\"type\" json:\"type\" query:\"type\"`\n\tName         string           `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc         string           `thrift:\"desc,4\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tIconURL      string           `thrift:\"icon_url,5\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tSupportBatch SupportBatch     `thrift:\"support_batch,6\" form:\"support_batch\" json:\"support_batch\" query:\"support_batch\"`\n\tNodeType     string           `thrift:\"node_type,7\" form:\"node_type\" json:\"node_type\" query:\"node_type\"`\n\tColor        string           `thrift:\"color,8\" form:\"color\" json:\"color\" query:\"color\"`\n}\n\nfunc NewNodeTemplate() *NodeTemplate {\n\treturn &NodeTemplate{}\n}\n\nfunc (p *NodeTemplate) InitDefault() {\n}\n\nfunc (p *NodeTemplate) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *NodeTemplate) GetType() (v NodeTemplateType) {\n\treturn p.Type\n}\n\nfunc (p *NodeTemplate) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *NodeTemplate) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *NodeTemplate) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *NodeTemplate) GetSupportBatch() (v SupportBatch) {\n\treturn p.SupportBatch\n}\n\nfunc (p *NodeTemplate) GetNodeType() (v string) {\n\treturn p.NodeType\n}\n\nfunc (p *NodeTemplate) GetColor() (v string) {\n\treturn p.Color\n}\n\nvar fieldIDToName_NodeTemplate = map[int16]string{\n\t1: \"id\",\n\t2: \"type\",\n\t3: \"name\",\n\t4: \"desc\",\n\t5: \"icon_url\",\n\t6: \"support_batch\",\n\t7: \"node_type\",\n\t8: \"color\",\n}\n\nfunc (p *NodeTemplate) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeTemplate[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodeTemplate) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *NodeTemplate) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field NodeTemplateType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = NodeTemplateType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *NodeTemplate) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *NodeTemplate) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *NodeTemplate) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *NodeTemplate) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field SupportBatch\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SupportBatch(v)\n\t}\n\tp.SupportBatch = _field\n\treturn nil\n}\nfunc (p *NodeTemplate) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeType = _field\n\treturn nil\n}\nfunc (p *NodeTemplate) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Color = _field\n\treturn nil\n}\n\nfunc (p *NodeTemplate) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeTemplate\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeTemplate) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodeTemplate) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodeTemplate) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NodeTemplate) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *NodeTemplate) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *NodeTemplate) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"support_batch\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SupportBatch)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *NodeTemplate) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_type\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *NodeTemplate) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"color\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Color); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *NodeTemplate) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeTemplate(%+v)\", *p)\n\n}\n\n// plug-in configuration\ntype PluginAPINode struct {\n\t// Actual plug-in configuration\n\tPluginID string `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tAPIID    string `thrift:\"api_id,2\" form:\"api_id\" json:\"api_id\" query:\"api_id\"`\n\tAPIName  string `thrift:\"api_name,3\" form:\"api_name\" json:\"api_name\" query:\"api_name\"`\n\t// For node display\n\tName     string `thrift:\"name,4\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc     string `thrift:\"desc,5\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tIconURL  string `thrift:\"icon_url,6\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tNodeType string `thrift:\"node_type,7\" form:\"node_type\" json:\"node_type\" query:\"node_type\"`\n}\n\nfunc NewPluginAPINode() *PluginAPINode {\n\treturn &PluginAPINode{}\n}\n\nfunc (p *PluginAPINode) InitDefault() {\n}\n\nfunc (p *PluginAPINode) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *PluginAPINode) GetAPIID() (v string) {\n\treturn p.APIID\n}\n\nfunc (p *PluginAPINode) GetAPIName() (v string) {\n\treturn p.APIName\n}\n\nfunc (p *PluginAPINode) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PluginAPINode) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *PluginAPINode) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *PluginAPINode) GetNodeType() (v string) {\n\treturn p.NodeType\n}\n\nvar fieldIDToName_PluginAPINode = map[int16]string{\n\t1: \"plugin_id\",\n\t2: \"api_id\",\n\t3: \"api_name\",\n\t4: \"name\",\n\t5: \"desc\",\n\t6: \"icon_url\",\n\t7: \"node_type\",\n}\n\nfunc (p *PluginAPINode) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginAPINode[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginAPINode) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *PluginAPINode) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *PluginAPINode) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIName = _field\n\treturn nil\n}\nfunc (p *PluginAPINode) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginAPINode) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *PluginAPINode) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *PluginAPINode) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeType = _field\n\treturn nil\n}\n\nfunc (p *PluginAPINode) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginAPINode\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginAPINode) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginAPINode) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginAPINode) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginAPINode) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginAPINode) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginAPINode) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PluginAPINode) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_type\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *PluginAPINode) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginAPINode(%+v)\", *p)\n\n}\n\n// View more image plugins\ntype PluginCategory struct {\n\tPluginCategoryID string `thrift:\"plugin_category_id,1\" form:\"plugin_category_id\" json:\"plugin_category_id\" query:\"plugin_category_id\"`\n\tOnlyOfficial     bool   `thrift:\"only_official,2\" form:\"only_official\" json:\"only_official\" query:\"only_official\"`\n\t// For node display\n\tName     string `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\tIconURL  string `thrift:\"icon_url,4\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tNodeType string `thrift:\"node_type,5\" form:\"node_type\" json:\"node_type\" query:\"node_type\"`\n}\n\nfunc NewPluginCategory() *PluginCategory {\n\treturn &PluginCategory{}\n}\n\nfunc (p *PluginCategory) InitDefault() {\n}\n\nfunc (p *PluginCategory) GetPluginCategoryID() (v string) {\n\treturn p.PluginCategoryID\n}\n\nfunc (p *PluginCategory) GetOnlyOfficial() (v bool) {\n\treturn p.OnlyOfficial\n}\n\nfunc (p *PluginCategory) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PluginCategory) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *PluginCategory) GetNodeType() (v string) {\n\treturn p.NodeType\n}\n\nvar fieldIDToName_PluginCategory = map[int16]string{\n\t1: \"plugin_category_id\",\n\t2: \"only_official\",\n\t3: \"name\",\n\t4: \"icon_url\",\n\t5: \"node_type\",\n}\n\nfunc (p *PluginCategory) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginCategory[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginCategory) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginCategoryID = _field\n\treturn nil\n}\nfunc (p *PluginCategory) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OnlyOfficial = _field\n\treturn nil\n}\nfunc (p *PluginCategory) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginCategory) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *PluginCategory) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeType = _field\n\treturn nil\n}\n\nfunc (p *PluginCategory) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginCategory\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginCategory) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_category_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginCategoryID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginCategory) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"only_official\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.OnlyOfficial); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginCategory) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginCategory) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginCategory) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_type\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *PluginCategory) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginCategory(%+v)\", *p)\n\n}\n\ntype NodeTemplateListRequest struct {\n\t// Required node type, return all by default without passing\n\tNeedTypes []NodeTemplateType `thrift:\"need_types,1,optional\" form:\"need_types\" json:\"need_types,omitempty\" query:\"need_types\"`\n\t// Required node type, string type\n\tNodeTypes []string   `thrift:\"node_types,2,optional\" form:\"node_types\" json:\"node_types,omitempty\" query:\"node_types\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewNodeTemplateListRequest() *NodeTemplateListRequest {\n\treturn &NodeTemplateListRequest{}\n}\n\nfunc (p *NodeTemplateListRequest) InitDefault() {\n}\n\nvar NodeTemplateListRequest_NeedTypes_DEFAULT []NodeTemplateType\n\nfunc (p *NodeTemplateListRequest) GetNeedTypes() (v []NodeTemplateType) {\n\tif !p.IsSetNeedTypes() {\n\t\treturn NodeTemplateListRequest_NeedTypes_DEFAULT\n\t}\n\treturn p.NeedTypes\n}\n\nvar NodeTemplateListRequest_NodeTypes_DEFAULT []string\n\nfunc (p *NodeTemplateListRequest) GetNodeTypes() (v []string) {\n\tif !p.IsSetNodeTypes() {\n\t\treturn NodeTemplateListRequest_NodeTypes_DEFAULT\n\t}\n\treturn p.NodeTypes\n}\n\nvar NodeTemplateListRequest_Base_DEFAULT *base.Base\n\nfunc (p *NodeTemplateListRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn NodeTemplateListRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_NodeTemplateListRequest = map[int16]string{\n\t1:   \"need_types\",\n\t2:   \"node_types\",\n\t255: \"Base\",\n}\n\nfunc (p *NodeTemplateListRequest) IsSetNeedTypes() bool {\n\treturn p.NeedTypes != nil\n}\n\nfunc (p *NodeTemplateListRequest) IsSetNodeTypes() bool {\n\treturn p.NodeTypes != nil\n}\n\nfunc (p *NodeTemplateListRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *NodeTemplateListRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeTemplateListRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodeTemplateListRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]NodeTemplateType, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem NodeTemplateType\n\t\tif v, err := iprot.ReadI32(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = NodeTemplateType(v)\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NeedTypes = _field\n\treturn nil\n}\nfunc (p *NodeTemplateListRequest) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NodeTypes = _field\n\treturn nil\n}\nfunc (p *NodeTemplateListRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *NodeTemplateListRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeTemplateListRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeTemplateListRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNeedTypes() {\n\t\tif err = oprot.WriteFieldBegin(\"need_types\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.I32, len(p.NeedTypes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.NeedTypes {\n\t\t\tif err := oprot.WriteI32(int32(v)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodeTemplateListRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodeTypes() {\n\t\tif err = oprot.WriteFieldBegin(\"node_types\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.NodeTypes)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.NodeTypes {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodeTemplateListRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *NodeTemplateListRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeTemplateListRequest(%+v)\", *p)\n\n}\n\ntype NodeTemplateListData struct {\n\tTemplateList []*NodeTemplate `thrift:\"template_list,1\" form:\"template_list\" json:\"template_list\" query:\"template_list\"`\n\t// Display classification configuration of nodes\n\tCateList           []*NodeCategory   `thrift:\"cate_list,2\" form:\"cate_list\" json:\"cate_list\" query:\"cate_list\"`\n\tPluginAPIList      []*PluginAPINode  `thrift:\"plugin_api_list,3\" form:\"plugin_api_list\" json:\"plugin_api_list\" query:\"plugin_api_list\"`\n\tPluginCategoryList []*PluginCategory `thrift:\"plugin_category_list,4\" form:\"plugin_category_list\" json:\"plugin_category_list\" query:\"plugin_category_list\"`\n}\n\nfunc NewNodeTemplateListData() *NodeTemplateListData {\n\treturn &NodeTemplateListData{}\n}\n\nfunc (p *NodeTemplateListData) InitDefault() {\n}\n\nfunc (p *NodeTemplateListData) GetTemplateList() (v []*NodeTemplate) {\n\treturn p.TemplateList\n}\n\nfunc (p *NodeTemplateListData) GetCateList() (v []*NodeCategory) {\n\treturn p.CateList\n}\n\nfunc (p *NodeTemplateListData) GetPluginAPIList() (v []*PluginAPINode) {\n\treturn p.PluginAPIList\n}\n\nfunc (p *NodeTemplateListData) GetPluginCategoryList() (v []*PluginCategory) {\n\treturn p.PluginCategoryList\n}\n\nvar fieldIDToName_NodeTemplateListData = map[int16]string{\n\t1: \"template_list\",\n\t2: \"cate_list\",\n\t3: \"plugin_api_list\",\n\t4: \"plugin_category_list\",\n}\n\nfunc (p *NodeTemplateListData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeTemplateListData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodeTemplateListData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*NodeTemplate, 0, size)\n\tvalues := make([]NodeTemplate, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.TemplateList = _field\n\treturn nil\n}\nfunc (p *NodeTemplateListData) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*NodeCategory, 0, size)\n\tvalues := make([]NodeCategory, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.CateList = _field\n\treturn nil\n}\nfunc (p *NodeTemplateListData) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginAPINode, 0, size)\n\tvalues := make([]PluginAPINode, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginAPIList = _field\n\treturn nil\n}\nfunc (p *NodeTemplateListData) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginCategory, 0, size)\n\tvalues := make([]PluginCategory, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginCategoryList = _field\n\treturn nil\n}\n\nfunc (p *NodeTemplateListData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeTemplateListData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeTemplateListData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"template_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.TemplateList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.TemplateList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodeTemplateListData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"cate_list\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.CateList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.CateList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodeTemplateListData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_api_list\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginAPIList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginAPIList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NodeTemplateListData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_category_list\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginCategoryList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginCategoryList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *NodeTemplateListData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeTemplateListData(%+v)\", *p)\n\n}\n\ntype NodeCategory struct {\n\t// Category name, empty string indicates that the following node does not belong to any category\n\tName         string   `thrift:\"name,1\" form:\"name\" json:\"name\" query:\"name\"`\n\tNodeTypeList []string `thrift:\"node_type_list,2\" form:\"node_type_list\" json:\"node_type_list\" query:\"node_type_list\"`\n\t// List of api_id plugins\n\tPluginAPIIDList []string `thrift:\"plugin_api_id_list,3,optional\" form:\"plugin_api_id_list\" json:\"plugin_api_id_list,omitempty\" query:\"plugin_api_id_list\"`\n\t// Jump to the classification configuration of the official plug-in list\n\tPluginCategoryIDList []string `thrift:\"plugin_category_id_list,4,optional\" form:\"plugin_category_id_list\" json:\"plugin_category_id_list,omitempty\" query:\"plugin_category_id_list\"`\n}\n\nfunc NewNodeCategory() *NodeCategory {\n\treturn &NodeCategory{}\n}\n\nfunc (p *NodeCategory) InitDefault() {\n}\n\nfunc (p *NodeCategory) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *NodeCategory) GetNodeTypeList() (v []string) {\n\treturn p.NodeTypeList\n}\n\nvar NodeCategory_PluginAPIIDList_DEFAULT []string\n\nfunc (p *NodeCategory) GetPluginAPIIDList() (v []string) {\n\tif !p.IsSetPluginAPIIDList() {\n\t\treturn NodeCategory_PluginAPIIDList_DEFAULT\n\t}\n\treturn p.PluginAPIIDList\n}\n\nvar NodeCategory_PluginCategoryIDList_DEFAULT []string\n\nfunc (p *NodeCategory) GetPluginCategoryIDList() (v []string) {\n\tif !p.IsSetPluginCategoryIDList() {\n\t\treturn NodeCategory_PluginCategoryIDList_DEFAULT\n\t}\n\treturn p.PluginCategoryIDList\n}\n\nvar fieldIDToName_NodeCategory = map[int16]string{\n\t1: \"name\",\n\t2: \"node_type_list\",\n\t3: \"plugin_api_id_list\",\n\t4: \"plugin_category_id_list\",\n}\n\nfunc (p *NodeCategory) IsSetPluginAPIIDList() bool {\n\treturn p.PluginAPIIDList != nil\n}\n\nfunc (p *NodeCategory) IsSetPluginCategoryIDList() bool {\n\treturn p.PluginCategoryIDList != nil\n}\n\nfunc (p *NodeCategory) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeCategory[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodeCategory) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *NodeCategory) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NodeTypeList = _field\n\treturn nil\n}\nfunc (p *NodeCategory) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginAPIIDList = _field\n\treturn nil\n}\nfunc (p *NodeCategory) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginCategoryIDList = _field\n\treturn nil\n}\n\nfunc (p *NodeCategory) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeCategory\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeCategory) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodeCategory) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_type_list\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.NodeTypeList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.NodeTypeList {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodeCategory) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginAPIIDList() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_api_id_list\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.PluginAPIIDList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PluginAPIIDList {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NodeCategory) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginCategoryIDList() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_category_id_list\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.PluginCategoryIDList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PluginCategoryIDList {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *NodeCategory) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeCategory(%+v)\", *p)\n\n}\n\ntype NodeTemplateListResponse struct {\n\tData     *NodeTemplateListData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                 `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp        `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewNodeTemplateListResponse() *NodeTemplateListResponse {\n\treturn &NodeTemplateListResponse{}\n}\n\nfunc (p *NodeTemplateListResponse) InitDefault() {\n}\n\nvar NodeTemplateListResponse_Data_DEFAULT *NodeTemplateListData\n\nfunc (p *NodeTemplateListResponse) GetData() (v *NodeTemplateListData) {\n\tif !p.IsSetData() {\n\t\treturn NodeTemplateListResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *NodeTemplateListResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *NodeTemplateListResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar NodeTemplateListResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *NodeTemplateListResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn NodeTemplateListResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_NodeTemplateListResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *NodeTemplateListResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *NodeTemplateListResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *NodeTemplateListResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeTemplateListResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_NodeTemplateListResponse[fieldId]))\n}\n\nfunc (p *NodeTemplateListResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewNodeTemplateListData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *NodeTemplateListResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *NodeTemplateListResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *NodeTemplateListResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *NodeTemplateListResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeTemplateListResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeTemplateListResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodeTemplateListResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *NodeTemplateListResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *NodeTemplateListResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *NodeTemplateListResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeTemplateListResponse(%+v)\", *p)\n\n}\n\ntype WorkflowNodeDebugV2Request struct {\n\tWorkflowID string            `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tNodeID     string            `thrift:\"node_id,2\" form:\"node_id\" json:\"node_id\" query:\"node_id\"`\n\tInput      map[string]string `thrift:\"input,3\" form:\"input\" json:\"input\" query:\"input\"`\n\tBatch      map[string]string `thrift:\"batch,4\" form:\"batch\" json:\"batch\" query:\"batch\"`\n\tSpaceID    *string           `thrift:\"space_id,5,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n\tBotID      *string           `thrift:\"bot_id,6,optional\" form:\"bot_id\" json:\"bot_id,omitempty\" query:\"bot_id\"`\n\tProjectID  *string           `thrift:\"project_id,7,optional\" form:\"project_id\" json:\"project_id,omitempty\" query:\"project_id\"`\n\tSetting    map[string]string `thrift:\"setting,8,optional\" form:\"setting\" json:\"setting,omitempty\" query:\"setting\"`\n\tBase       *base.Base        `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewWorkflowNodeDebugV2Request() *WorkflowNodeDebugV2Request {\n\treturn &WorkflowNodeDebugV2Request{}\n}\n\nfunc (p *WorkflowNodeDebugV2Request) InitDefault() {\n}\n\nfunc (p *WorkflowNodeDebugV2Request) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *WorkflowNodeDebugV2Request) GetNodeID() (v string) {\n\treturn p.NodeID\n}\n\nfunc (p *WorkflowNodeDebugV2Request) GetInput() (v map[string]string) {\n\treturn p.Input\n}\n\nfunc (p *WorkflowNodeDebugV2Request) GetBatch() (v map[string]string) {\n\treturn p.Batch\n}\n\nvar WorkflowNodeDebugV2Request_SpaceID_DEFAULT string\n\nfunc (p *WorkflowNodeDebugV2Request) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn WorkflowNodeDebugV2Request_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar WorkflowNodeDebugV2Request_BotID_DEFAULT string\n\nfunc (p *WorkflowNodeDebugV2Request) GetBotID() (v string) {\n\tif !p.IsSetBotID() {\n\t\treturn WorkflowNodeDebugV2Request_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar WorkflowNodeDebugV2Request_ProjectID_DEFAULT string\n\nfunc (p *WorkflowNodeDebugV2Request) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn WorkflowNodeDebugV2Request_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar WorkflowNodeDebugV2Request_Setting_DEFAULT map[string]string\n\nfunc (p *WorkflowNodeDebugV2Request) GetSetting() (v map[string]string) {\n\tif !p.IsSetSetting() {\n\t\treturn WorkflowNodeDebugV2Request_Setting_DEFAULT\n\t}\n\treturn p.Setting\n}\n\nvar WorkflowNodeDebugV2Request_Base_DEFAULT *base.Base\n\nfunc (p *WorkflowNodeDebugV2Request) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn WorkflowNodeDebugV2Request_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_WorkflowNodeDebugV2Request = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"node_id\",\n\t3:   \"input\",\n\t4:   \"batch\",\n\t5:   \"space_id\",\n\t6:   \"bot_id\",\n\t7:   \"project_id\",\n\t8:   \"setting\",\n\t255: \"Base\",\n}\n\nfunc (p *WorkflowNodeDebugV2Request) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *WorkflowNodeDebugV2Request) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *WorkflowNodeDebugV2Request) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *WorkflowNodeDebugV2Request) IsSetSetting() bool {\n\treturn p.Setting != nil\n}\n\nfunc (p *WorkflowNodeDebugV2Request) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *WorkflowNodeDebugV2Request) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowNodeDebugV2Request[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeDebugV2Request) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Request) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeID = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Request) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Input = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Request) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Batch = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Request) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Request) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Request) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Request) ReadField8(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Setting = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Request) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *WorkflowNodeDebugV2Request) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowNodeDebugV2Request\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeDebugV2Request) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Request) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Request) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"input\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Input)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Input {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Request) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"batch\", thrift.MAP, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Batch)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Batch {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Request) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Request) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"bot_id\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Request) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Request) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSetting() {\n\t\tif err = oprot.WriteFieldBegin(\"setting\", thrift.MAP, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Setting)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.Setting {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Request) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeDebugV2Request) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowNodeDebugV2Request(%+v)\", *p)\n\n}\n\ntype WorkflowNodeDebugV2Data struct {\n\tWorkflowID string `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tNodeID     string `thrift:\"node_id,2\" form:\"node_id\" json:\"node_id\" query:\"node_id\"`\n\tExecuteID  string `thrift:\"execute_id,3\" form:\"execute_id\" json:\"execute_id\" query:\"execute_id\"`\n\tSessionID  string `thrift:\"session_id,4\" form:\"session_id\" json:\"session_id\" query:\"session_id\"`\n}\n\nfunc NewWorkflowNodeDebugV2Data() *WorkflowNodeDebugV2Data {\n\treturn &WorkflowNodeDebugV2Data{}\n}\n\nfunc (p *WorkflowNodeDebugV2Data) InitDefault() {\n}\n\nfunc (p *WorkflowNodeDebugV2Data) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *WorkflowNodeDebugV2Data) GetNodeID() (v string) {\n\treturn p.NodeID\n}\n\nfunc (p *WorkflowNodeDebugV2Data) GetExecuteID() (v string) {\n\treturn p.ExecuteID\n}\n\nfunc (p *WorkflowNodeDebugV2Data) GetSessionID() (v string) {\n\treturn p.SessionID\n}\n\nvar fieldIDToName_WorkflowNodeDebugV2Data = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"node_id\",\n\t3: \"execute_id\",\n\t4: \"session_id\",\n}\n\nfunc (p *WorkflowNodeDebugV2Data) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowNodeDebugV2Data[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeDebugV2Data) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Data) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeID = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Data) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Data) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SessionID = _field\n\treturn nil\n}\n\nfunc (p *WorkflowNodeDebugV2Data) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowNodeDebugV2Data\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeDebugV2Data) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Data) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Data) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"execute_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExecuteID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Data) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"session_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SessionID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeDebugV2Data) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowNodeDebugV2Data(%+v)\", *p)\n\n}\n\ntype WorkflowNodeDebugV2Response struct {\n\tCode     int64                    `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                   `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData     *WorkflowNodeDebugV2Data `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n\tBaseResp *base.BaseResp           `thrift:\"BaseResp,255\" form:\"BaseResp\" json:\"BaseResp\" query:\"BaseResp\"`\n}\n\nfunc NewWorkflowNodeDebugV2Response() *WorkflowNodeDebugV2Response {\n\treturn &WorkflowNodeDebugV2Response{}\n}\n\nfunc (p *WorkflowNodeDebugV2Response) InitDefault() {\n}\n\nfunc (p *WorkflowNodeDebugV2Response) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *WorkflowNodeDebugV2Response) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar WorkflowNodeDebugV2Response_Data_DEFAULT *WorkflowNodeDebugV2Data\n\nfunc (p *WorkflowNodeDebugV2Response) GetData() (v *WorkflowNodeDebugV2Data) {\n\tif !p.IsSetData() {\n\t\treturn WorkflowNodeDebugV2Response_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar WorkflowNodeDebugV2Response_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *WorkflowNodeDebugV2Response) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn WorkflowNodeDebugV2Response_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_WorkflowNodeDebugV2Response = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *WorkflowNodeDebugV2Response) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *WorkflowNodeDebugV2Response) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *WorkflowNodeDebugV2Response) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowNodeDebugV2Response[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeDebugV2Response) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Response) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Response) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowNodeDebugV2Data()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *WorkflowNodeDebugV2Response) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *WorkflowNodeDebugV2Response) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowNodeDebugV2Response\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeDebugV2Response) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Response) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Response) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowNodeDebugV2Response) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *WorkflowNodeDebugV2Response) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowNodeDebugV2Response(%+v)\", *p)\n\n}\n\ntype GetApiDetailRequest struct {\n\tPluginID      string                 `thrift:\"pluginID,1\" form:\"pluginID\" json:\"pluginID\" query:\"pluginID\"`\n\tApiName       string                 `thrift:\"apiName,2\" form:\"apiName\" json:\"apiName\" query:\"apiName\"`\n\tSpaceID       string                 `thrift:\"space_id,3\" form:\"space_id\" json:\"space_id\" query:\"space_id\"`\n\tAPIID         string                 `thrift:\"api_id,4\" form:\"api_id\" json:\"api_id\" query:\"api_id\"`\n\tProjectID     *string                `thrift:\"project_id,5,optional\" form:\"project_id\" json:\"project_id,omitempty\" query:\"project_id\"`\n\tPluginVersion *string                `thrift:\"plugin_version,6,optional\" form:\"plugin_version\" json:\"plugin_version,omitempty\" query:\"plugin_version\"`\n\tPluginFrom    *bot_common.PluginFrom `thrift:\"plugin_from,7,optional\" form:\"plugin_from\" json:\"plugin_from,omitempty\" query:\"plugin_from\"`\n\tBase          *base.Base             `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetApiDetailRequest() *GetApiDetailRequest {\n\treturn &GetApiDetailRequest{}\n}\n\nfunc (p *GetApiDetailRequest) InitDefault() {\n}\n\nfunc (p *GetApiDetailRequest) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *GetApiDetailRequest) GetApiName() (v string) {\n\treturn p.ApiName\n}\n\nfunc (p *GetApiDetailRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *GetApiDetailRequest) GetAPIID() (v string) {\n\treturn p.APIID\n}\n\nvar GetApiDetailRequest_ProjectID_DEFAULT string\n\nfunc (p *GetApiDetailRequest) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn GetApiDetailRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar GetApiDetailRequest_PluginVersion_DEFAULT string\n\nfunc (p *GetApiDetailRequest) GetPluginVersion() (v string) {\n\tif !p.IsSetPluginVersion() {\n\t\treturn GetApiDetailRequest_PluginVersion_DEFAULT\n\t}\n\treturn *p.PluginVersion\n}\n\nvar GetApiDetailRequest_PluginFrom_DEFAULT bot_common.PluginFrom\n\nfunc (p *GetApiDetailRequest) GetPluginFrom() (v bot_common.PluginFrom) {\n\tif !p.IsSetPluginFrom() {\n\t\treturn GetApiDetailRequest_PluginFrom_DEFAULT\n\t}\n\treturn *p.PluginFrom\n}\n\nvar GetApiDetailRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetApiDetailRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetApiDetailRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetApiDetailRequest = map[int16]string{\n\t1:   \"pluginID\",\n\t2:   \"apiName\",\n\t3:   \"space_id\",\n\t4:   \"api_id\",\n\t5:   \"project_id\",\n\t6:   \"plugin_version\",\n\t7:   \"plugin_from\",\n\t255: \"Base\",\n}\n\nfunc (p *GetApiDetailRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *GetApiDetailRequest) IsSetPluginVersion() bool {\n\treturn p.PluginVersion != nil\n}\n\nfunc (p *GetApiDetailRequest) IsSetPluginFrom() bool {\n\treturn p.PluginFrom != nil\n}\n\nfunc (p *GetApiDetailRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetApiDetailRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetApiDetailRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetApiDetailRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *GetApiDetailRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ApiName = _field\n\treturn nil\n}\nfunc (p *GetApiDetailRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetApiDetailRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *GetApiDetailRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *GetApiDetailRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginVersion = _field\n\treturn nil\n}\nfunc (p *GetApiDetailRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *bot_common.PluginFrom\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := bot_common.PluginFrom(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginFrom = _field\n\treturn nil\n}\nfunc (p *GetApiDetailRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetApiDetailRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetApiDetailRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetApiDetailRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"pluginID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetApiDetailRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"apiName\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ApiName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetApiDetailRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetApiDetailRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetApiDetailRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetApiDetailRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_version\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PluginVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *GetApiDetailRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginFrom() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_from\", thrift.I32, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginFrom)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *GetApiDetailRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetApiDetailRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetApiDetailRequest(%+v)\", *p)\n\n}\n\ntype DebugExample struct {\n\tReqExample  string `thrift:\"ReqExample,1\" form:\"ReqExample\" json:\"ReqExample\" query:\"ReqExample\"`\n\tRespExample string `thrift:\"RespExample,2\" form:\"RespExample\" json:\"RespExample\" query:\"RespExample\"`\n}\n\nfunc NewDebugExample() *DebugExample {\n\treturn &DebugExample{}\n}\n\nfunc (p *DebugExample) InitDefault() {\n}\n\nfunc (p *DebugExample) GetReqExample() (v string) {\n\treturn p.ReqExample\n}\n\nfunc (p *DebugExample) GetRespExample() (v string) {\n\treturn p.RespExample\n}\n\nvar fieldIDToName_DebugExample = map[int16]string{\n\t1: \"ReqExample\",\n\t2: \"RespExample\",\n}\n\nfunc (p *DebugExample) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DebugExample[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DebugExample) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReqExample = _field\n\treturn nil\n}\nfunc (p *DebugExample) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.RespExample = _field\n\treturn nil\n}\n\nfunc (p *DebugExample) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DebugExample\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DebugExample) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ReqExample\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ReqExample); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DebugExample) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"RespExample\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.RespExample); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *DebugExample) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DebugExample(%+v)\", *p)\n\n}\n\ntype ApiDetailData struct {\n\tPluginID                string                 `thrift:\"pluginID,1\" form:\"pluginID\" json:\"pluginID\" query:\"pluginID\"`\n\tApiName                 string                 `thrift:\"apiName,2\" form:\"apiName\" json:\"apiName\" query:\"apiName\"`\n\tInputs                  string                 `thrift:\"inputs,3\" form:\"inputs\" json:\"inputs\" query:\"inputs\"`\n\tOutputs                 string                 `thrift:\"outputs,4\" form:\"outputs\" json:\"outputs\" query:\"outputs\"`\n\tIcon                    string                 `thrift:\"icon,5\" form:\"icon\" json:\"icon\" query:\"icon\"`\n\tName                    string                 `thrift:\"name,6\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc                    string                 `thrift:\"desc,7\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tPluginProductStatus     int64                  `thrift:\"pluginProductStatus,8\" form:\"pluginProductStatus\" json:\"pluginProductStatus\" query:\"pluginProductStatus\"`\n\tPluginProductUnlistType int64                  `thrift:\"pluginProductUnlistType,9\" form:\"pluginProductUnlistType\" json:\"pluginProductUnlistType\" query:\"pluginProductUnlistType\"`\n\tSpaceID                 string                 `thrift:\"spaceID,10\" form:\"spaceID\" json:\"spaceID\" query:\"spaceID\"`\n\tDebugExample            *DebugExample          `thrift:\"debugExample,11,optional\" form:\"debugExample\" json:\"debugExample,omitempty\" query:\"debugExample\"`\n\tUpdateTime              int64                  `thrift:\"updateTime,12\" form:\"updateTime\" json:\"updateTime\" query:\"updateTime\"`\n\tProjectID               *string                `thrift:\"projectID,13,optional\" form:\"projectID\" json:\"projectID,omitempty\" query:\"projectID\"`\n\tVersion                 *string                `thrift:\"version,14,optional\" form:\"version\" json:\"version,omitempty\" query:\"version\"`\n\tPluginType              PluginType             `thrift:\"pluginType,16\" form:\"pluginType\" json:\"pluginType\" query:\"pluginType\"`\n\tLatestVersion           *string                `thrift:\"latest_version,17,optional\" form:\"latest_version\" json:\"latest_version,omitempty\" query:\"latest_version\"`\n\tLatestVersionName       *string                `thrift:\"latest_version_name,18,optional\" form:\"latest_version_name\" json:\"latest_version_name,omitempty\" query:\"latest_version_name\"`\n\tVersionName             *string                `thrift:\"version_name,19,optional\" form:\"version_name\" json:\"version_name,omitempty\" query:\"version_name\"`\n\tPluginFrom              *bot_common.PluginFrom `thrift:\"plugin_from,50,optional\" form:\"plugin_from\" json:\"plugin_from,omitempty\" query:\"plugin_from\"`\n}\n\nfunc NewApiDetailData() *ApiDetailData {\n\treturn &ApiDetailData{}\n}\n\nfunc (p *ApiDetailData) InitDefault() {\n}\n\nfunc (p *ApiDetailData) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *ApiDetailData) GetApiName() (v string) {\n\treturn p.ApiName\n}\n\nfunc (p *ApiDetailData) GetInputs() (v string) {\n\treturn p.Inputs\n}\n\nfunc (p *ApiDetailData) GetOutputs() (v string) {\n\treturn p.Outputs\n}\n\nfunc (p *ApiDetailData) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nfunc (p *ApiDetailData) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ApiDetailData) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *ApiDetailData) GetPluginProductStatus() (v int64) {\n\treturn p.PluginProductStatus\n}\n\nfunc (p *ApiDetailData) GetPluginProductUnlistType() (v int64) {\n\treturn p.PluginProductUnlistType\n}\n\nfunc (p *ApiDetailData) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar ApiDetailData_DebugExample_DEFAULT *DebugExample\n\nfunc (p *ApiDetailData) GetDebugExample() (v *DebugExample) {\n\tif !p.IsSetDebugExample() {\n\t\treturn ApiDetailData_DebugExample_DEFAULT\n\t}\n\treturn p.DebugExample\n}\n\nfunc (p *ApiDetailData) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nvar ApiDetailData_ProjectID_DEFAULT string\n\nfunc (p *ApiDetailData) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn ApiDetailData_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar ApiDetailData_Version_DEFAULT string\n\nfunc (p *ApiDetailData) GetVersion() (v string) {\n\tif !p.IsSetVersion() {\n\t\treturn ApiDetailData_Version_DEFAULT\n\t}\n\treturn *p.Version\n}\n\nfunc (p *ApiDetailData) GetPluginType() (v PluginType) {\n\treturn p.PluginType\n}\n\nvar ApiDetailData_LatestVersion_DEFAULT string\n\nfunc (p *ApiDetailData) GetLatestVersion() (v string) {\n\tif !p.IsSetLatestVersion() {\n\t\treturn ApiDetailData_LatestVersion_DEFAULT\n\t}\n\treturn *p.LatestVersion\n}\n\nvar ApiDetailData_LatestVersionName_DEFAULT string\n\nfunc (p *ApiDetailData) GetLatestVersionName() (v string) {\n\tif !p.IsSetLatestVersionName() {\n\t\treturn ApiDetailData_LatestVersionName_DEFAULT\n\t}\n\treturn *p.LatestVersionName\n}\n\nvar ApiDetailData_VersionName_DEFAULT string\n\nfunc (p *ApiDetailData) GetVersionName() (v string) {\n\tif !p.IsSetVersionName() {\n\t\treturn ApiDetailData_VersionName_DEFAULT\n\t}\n\treturn *p.VersionName\n}\n\nvar ApiDetailData_PluginFrom_DEFAULT bot_common.PluginFrom\n\nfunc (p *ApiDetailData) GetPluginFrom() (v bot_common.PluginFrom) {\n\tif !p.IsSetPluginFrom() {\n\t\treturn ApiDetailData_PluginFrom_DEFAULT\n\t}\n\treturn *p.PluginFrom\n}\n\nvar fieldIDToName_ApiDetailData = map[int16]string{\n\t1:  \"pluginID\",\n\t2:  \"apiName\",\n\t3:  \"inputs\",\n\t4:  \"outputs\",\n\t5:  \"icon\",\n\t6:  \"name\",\n\t7:  \"desc\",\n\t8:  \"pluginProductStatus\",\n\t9:  \"pluginProductUnlistType\",\n\t10: \"spaceID\",\n\t11: \"debugExample\",\n\t12: \"updateTime\",\n\t13: \"projectID\",\n\t14: \"version\",\n\t16: \"pluginType\",\n\t17: \"latest_version\",\n\t18: \"latest_version_name\",\n\t19: \"version_name\",\n\t50: \"plugin_from\",\n}\n\nfunc (p *ApiDetailData) IsSetDebugExample() bool {\n\treturn p.DebugExample != nil\n}\n\nfunc (p *ApiDetailData) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *ApiDetailData) IsSetVersion() bool {\n\treturn p.Version != nil\n}\n\nfunc (p *ApiDetailData) IsSetLatestVersion() bool {\n\treturn p.LatestVersion != nil\n}\n\nfunc (p *ApiDetailData) IsSetLatestVersionName() bool {\n\treturn p.LatestVersionName != nil\n}\n\nfunc (p *ApiDetailData) IsSetVersionName() bool {\n\treturn p.VersionName != nil\n}\n\nfunc (p *ApiDetailData) IsSetPluginFrom() bool {\n\treturn p.PluginFrom != nil\n}\n\nfunc (p *ApiDetailData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 50:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField50(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ApiDetailData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ApiDetailData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ApiName = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Inputs = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Outputs = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginProductStatus = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginProductUnlistType = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField11(iprot thrift.TProtocol) error {\n\t_field := NewDebugExample()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DebugExample = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field PluginType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = PluginType(v)\n\t}\n\tp.PluginType = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LatestVersion = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LatestVersionName = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.VersionName = _field\n\treturn nil\n}\nfunc (p *ApiDetailData) ReadField50(iprot thrift.TProtocol) error {\n\n\tvar _field *bot_common.PluginFrom\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := bot_common.PluginFrom(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginFrom = _field\n\treturn nil\n}\n\nfunc (p *ApiDetailData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ApiDetailData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField50(oprot); err != nil {\n\t\t\tfieldId = 50\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ApiDetailData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"pluginID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"apiName\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ApiName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"inputs\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Inputs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"outputs\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Outputs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"pluginProductStatus\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginProductStatus); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"pluginProductUnlistType\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginProductUnlistType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"spaceID\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDebugExample() {\n\t\tif err = oprot.WriteFieldBegin(\"debugExample\", thrift.STRUCT, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.DebugExample.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"updateTime\", thrift.I64, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"projectID\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Version); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField16(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"pluginType\", thrift.I32, 16); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PluginType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField17(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLatestVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"latest_version\", thrift.STRING, 17); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LatestVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLatestVersionName() {\n\t\tif err = oprot.WriteFieldBegin(\"latest_version_name\", thrift.STRING, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LatestVersionName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersionName() {\n\t\tif err = oprot.WriteFieldBegin(\"version_name\", thrift.STRING, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.VersionName); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *ApiDetailData) writeField50(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginFrom() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_from\", thrift.I32, 50); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginFrom)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 end error: \", p), err)\n}\n\nfunc (p *ApiDetailData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ApiDetailData(%+v)\", *p)\n\n}\n\ntype GetApiDetailResponse struct {\n\tCode     int64          `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string         `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tData     *ApiDetailData `thrift:\"data,3\" form:\"data\" json:\"data\" query:\"data\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetApiDetailResponse() *GetApiDetailResponse {\n\treturn &GetApiDetailResponse{}\n}\n\nfunc (p *GetApiDetailResponse) InitDefault() {\n}\n\nfunc (p *GetApiDetailResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetApiDetailResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetApiDetailResponse_Data_DEFAULT *ApiDetailData\n\nfunc (p *GetApiDetailResponse) GetData() (v *ApiDetailData) {\n\tif !p.IsSetData() {\n\t\treturn GetApiDetailResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetApiDetailResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetApiDetailResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetApiDetailResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetApiDetailResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetApiDetailResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetApiDetailResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetApiDetailResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetApiDetailResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetApiDetailResponse[fieldId]))\n}\n\nfunc (p *GetApiDetailResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetApiDetailResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetApiDetailResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewApiDetailData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetApiDetailResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetApiDetailResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetApiDetailResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetApiDetailResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetApiDetailResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetApiDetailResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetApiDetailResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetApiDetailResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetApiDetailResponse(%+v)\", *p)\n\n}\n\ntype NodeInfo struct {\n\tNodeID    string `thrift:\"node_id,1\" form:\"node_id\" json:\"node_id\" query:\"node_id\"`\n\tNodeType  string `thrift:\"node_type,2\" form:\"node_type\" json:\"node_type\" query:\"node_type\"`\n\tNodeTitle string `thrift:\"node_title,3\" form:\"node_title\" json:\"node_title\" query:\"node_title\"`\n}\n\nfunc NewNodeInfo() *NodeInfo {\n\treturn &NodeInfo{}\n}\n\nfunc (p *NodeInfo) InitDefault() {\n}\n\nfunc (p *NodeInfo) GetNodeID() (v string) {\n\treturn p.NodeID\n}\n\nfunc (p *NodeInfo) GetNodeType() (v string) {\n\treturn p.NodeType\n}\n\nfunc (p *NodeInfo) GetNodeTitle() (v string) {\n\treturn p.NodeTitle\n}\n\nvar fieldIDToName_NodeInfo = map[int16]string{\n\t1: \"node_id\",\n\t2: \"node_type\",\n\t3: \"node_title\",\n}\n\nfunc (p *NodeInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodeInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodeInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeID = _field\n\treturn nil\n}\nfunc (p *NodeInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeType = _field\n\treturn nil\n}\nfunc (p *NodeInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NodeTitle = _field\n\treturn nil\n}\n\nfunc (p *NodeInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodeInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodeInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_type\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodeInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"node_title\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NodeTitle); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *NodeInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodeInfo(%+v)\", *p)\n\n}\n\ntype GetWorkflowDetailInfoRequest struct {\n\t// Filter conditions, support workflow_id and workflow_version\n\tWorkflowFilterList []*WorkflowFilter `thrift:\"workflow_filter_list,1,optional\" form:\"workflow_filter_list\" json:\"workflow_filter_list,omitempty\" query:\"workflow_filter_list\"`\n\tSpaceID            *string           `thrift:\"space_id,2,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n\tBase               *base.Base        `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetWorkflowDetailInfoRequest() *GetWorkflowDetailInfoRequest {\n\treturn &GetWorkflowDetailInfoRequest{}\n}\n\nfunc (p *GetWorkflowDetailInfoRequest) InitDefault() {\n}\n\nvar GetWorkflowDetailInfoRequest_WorkflowFilterList_DEFAULT []*WorkflowFilter\n\nfunc (p *GetWorkflowDetailInfoRequest) GetWorkflowFilterList() (v []*WorkflowFilter) {\n\tif !p.IsSetWorkflowFilterList() {\n\t\treturn GetWorkflowDetailInfoRequest_WorkflowFilterList_DEFAULT\n\t}\n\treturn p.WorkflowFilterList\n}\n\nvar GetWorkflowDetailInfoRequest_SpaceID_DEFAULT string\n\nfunc (p *GetWorkflowDetailInfoRequest) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn GetWorkflowDetailInfoRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar GetWorkflowDetailInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetWorkflowDetailInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetWorkflowDetailInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetWorkflowDetailInfoRequest = map[int16]string{\n\t1:   \"workflow_filter_list\",\n\t2:   \"space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetWorkflowDetailInfoRequest) IsSetWorkflowFilterList() bool {\n\treturn p.WorkflowFilterList != nil\n}\n\nfunc (p *GetWorkflowDetailInfoRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *GetWorkflowDetailInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetWorkflowDetailInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkflowDetailInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowDetailInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowFilter, 0, size)\n\tvalues := make([]WorkflowFilter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowFilterList = _field\n\treturn nil\n}\nfunc (p *GetWorkflowDetailInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowDetailInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetWorkflowDetailInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowDetailInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowDetailInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowFilterList() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_filter_list\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowFilterList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.WorkflowFilterList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkflowDetailInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetWorkflowDetailInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkflowDetailInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkflowDetailInfoRequest(%+v)\", *p)\n\n}\n\ntype GetWorkflowDetailInfoResponse struct {\n\tData     []*WorkflowDetailInfoData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64                     `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                    `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp            `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetWorkflowDetailInfoResponse() *GetWorkflowDetailInfoResponse {\n\treturn &GetWorkflowDetailInfoResponse{}\n}\n\nfunc (p *GetWorkflowDetailInfoResponse) InitDefault() {\n}\n\nfunc (p *GetWorkflowDetailInfoResponse) GetData() (v []*WorkflowDetailInfoData) {\n\treturn p.Data\n}\n\nfunc (p *GetWorkflowDetailInfoResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetWorkflowDetailInfoResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetWorkflowDetailInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetWorkflowDetailInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetWorkflowDetailInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetWorkflowDetailInfoResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetWorkflowDetailInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetWorkflowDetailInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkflowDetailInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetWorkflowDetailInfoResponse[fieldId]))\n}\n\nfunc (p *GetWorkflowDetailInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowDetailInfoData, 0, size)\n\tvalues := make([]WorkflowDetailInfoData, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetWorkflowDetailInfoResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetWorkflowDetailInfoResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetWorkflowDetailInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetWorkflowDetailInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowDetailInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowDetailInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkflowDetailInfoResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetWorkflowDetailInfoResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetWorkflowDetailInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkflowDetailInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkflowDetailInfoResponse(%+v)\", *p)\n\n}\n\ntype WorkflowDetailInfoData struct {\n\tWorkflowID string       `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tSpaceID    string       `thrift:\"space_id,2\" form:\"space_id\" json:\"space_id\" query:\"space_id\"`\n\tName       string       `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc       string       `thrift:\"desc,4\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tIcon       string       `thrift:\"icon,5\" form:\"icon\" json:\"icon\" query:\"icon\"`\n\tInputs     string       `thrift:\"inputs,6\" form:\"inputs\" json:\"inputs\" query:\"inputs\"`\n\tOutputs    string       `thrift:\"outputs,7\" form:\"outputs\" json:\"outputs\" query:\"outputs\"`\n\tVersion    string       `thrift:\"version,8\" form:\"version\" json:\"version\" query:\"version\"`\n\tCreateTime int64        `thrift:\"create_time,9\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\tUpdateTime int64        `thrift:\"update_time,10\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\tProjectID  string       `thrift:\"project_id,11\" form:\"project_id\" json:\"project_id\" query:\"project_id\"`\n\tEndType    int32        `thrift:\"end_type,12\" form:\"end_type\" json:\"end_type\" query:\"end_type\"`\n\tIconURI    string       `thrift:\"icon_uri,13\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tFlowMode   WorkflowMode `thrift:\"flow_mode,14\" form:\"flow_mode\" json:\"flow_mode\" query:\"flow_mode\"`\n\tPluginID   string       `thrift:\"plugin_id,15\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\t// Workflow creator information\n\tCreator               *Creator `thrift:\"creator,16\" form:\"creator\" json:\"creator\" query:\"creator\"`\n\tFlowVersion           string   `thrift:\"flow_version,17\" form:\"flow_version\" json:\"flow_version\" query:\"flow_version\"`\n\tFlowVersionDesc       string   `thrift:\"flow_version_desc,18\" form:\"flow_version_desc\" json:\"flow_version_desc\" query:\"flow_version_desc\"`\n\tLatestFlowVersion     string   `thrift:\"latest_flow_version,19\" form:\"latest_flow_version\" json:\"latest_flow_version\" query:\"latest_flow_version\"`\n\tLatestFlowVersionDesc string   `thrift:\"latest_flow_version_desc,20\" form:\"latest_flow_version_desc\" json:\"latest_flow_version_desc\" query:\"latest_flow_version_desc\"`\n\tCommitID              string   `thrift:\"commit_id,21\" form:\"commit_id\" json:\"commit_id\" query:\"commit_id\"`\n\tIsProject             bool     `thrift:\"is_project,22\" form:\"is_project\" json:\"is_project\" query:\"is_project\"`\n}\n\nfunc NewWorkflowDetailInfoData() *WorkflowDetailInfoData {\n\treturn &WorkflowDetailInfoData{}\n}\n\nfunc (p *WorkflowDetailInfoData) InitDefault() {\n}\n\nfunc (p *WorkflowDetailInfoData) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *WorkflowDetailInfoData) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *WorkflowDetailInfoData) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *WorkflowDetailInfoData) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *WorkflowDetailInfoData) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nfunc (p *WorkflowDetailInfoData) GetInputs() (v string) {\n\treturn p.Inputs\n}\n\nfunc (p *WorkflowDetailInfoData) GetOutputs() (v string) {\n\treturn p.Outputs\n}\n\nfunc (p *WorkflowDetailInfoData) GetVersion() (v string) {\n\treturn p.Version\n}\n\nfunc (p *WorkflowDetailInfoData) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *WorkflowDetailInfoData) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nfunc (p *WorkflowDetailInfoData) GetProjectID() (v string) {\n\treturn p.ProjectID\n}\n\nfunc (p *WorkflowDetailInfoData) GetEndType() (v int32) {\n\treturn p.EndType\n}\n\nfunc (p *WorkflowDetailInfoData) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *WorkflowDetailInfoData) GetFlowMode() (v WorkflowMode) {\n\treturn p.FlowMode\n}\n\nfunc (p *WorkflowDetailInfoData) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nvar WorkflowDetailInfoData_Creator_DEFAULT *Creator\n\nfunc (p *WorkflowDetailInfoData) GetCreator() (v *Creator) {\n\tif !p.IsSetCreator() {\n\t\treturn WorkflowDetailInfoData_Creator_DEFAULT\n\t}\n\treturn p.Creator\n}\n\nfunc (p *WorkflowDetailInfoData) GetFlowVersion() (v string) {\n\treturn p.FlowVersion\n}\n\nfunc (p *WorkflowDetailInfoData) GetFlowVersionDesc() (v string) {\n\treturn p.FlowVersionDesc\n}\n\nfunc (p *WorkflowDetailInfoData) GetLatestFlowVersion() (v string) {\n\treturn p.LatestFlowVersion\n}\n\nfunc (p *WorkflowDetailInfoData) GetLatestFlowVersionDesc() (v string) {\n\treturn p.LatestFlowVersionDesc\n}\n\nfunc (p *WorkflowDetailInfoData) GetCommitID() (v string) {\n\treturn p.CommitID\n}\n\nfunc (p *WorkflowDetailInfoData) GetIsProject() (v bool) {\n\treturn p.IsProject\n}\n\nvar fieldIDToName_WorkflowDetailInfoData = map[int16]string{\n\t1:  \"workflow_id\",\n\t2:  \"space_id\",\n\t3:  \"name\",\n\t4:  \"desc\",\n\t5:  \"icon\",\n\t6:  \"inputs\",\n\t7:  \"outputs\",\n\t8:  \"version\",\n\t9:  \"create_time\",\n\t10: \"update_time\",\n\t11: \"project_id\",\n\t12: \"end_type\",\n\t13: \"icon_uri\",\n\t14: \"flow_mode\",\n\t15: \"plugin_id\",\n\t16: \"creator\",\n\t17: \"flow_version\",\n\t18: \"flow_version_desc\",\n\t19: \"latest_flow_version\",\n\t20: \"latest_flow_version_desc\",\n\t21: \"commit_id\",\n\t22: \"is_project\",\n}\n\nfunc (p *WorkflowDetailInfoData) IsSetCreator() bool {\n\treturn p.Creator != nil\n}\n\nfunc (p *WorkflowDetailInfoData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowDetailInfoData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowDetailInfoData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Inputs = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Outputs = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EndType = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkflowMode(v)\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField15(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField16(iprot thrift.TProtocol) error {\n\t_field := NewCreator()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Creator = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField17(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FlowVersion = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FlowVersionDesc = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LatestFlowVersion = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LatestFlowVersionDesc = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CommitID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailInfoData) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsProject = _field\n\treturn nil\n}\n\nfunc (p *WorkflowDetailInfoData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowDetailInfoData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowDetailInfoData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"inputs\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Inputs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"outputs\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Outputs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"end_type\", thrift.I32, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.EndType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I32, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FlowMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField16(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"creator\", thrift.STRUCT, 16); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Creator.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"flow_version\", thrift.STRING, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FlowVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField18(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"flow_version_desc\", thrift.STRING, 18); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.FlowVersionDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField19(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"latest_flow_version\", thrift.STRING, 19); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LatestFlowVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField20(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"latest_flow_version_desc\", thrift.STRING, 20); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LatestFlowVersionDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField21(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"commit_id\", thrift.STRING, 21); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.CommitID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *WorkflowDetailInfoData) writeField22(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_project\", thrift.BOOL, 22); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsProject); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\n\nfunc (p *WorkflowDetailInfoData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowDetailInfoData(%+v)\", *p)\n\n}\n\ntype GetWorkflowDetailRequest struct {\n\tWorkflowIds []string   `thrift:\"workflow_ids,1,optional\" form:\"workflow_ids\" json:\"workflow_ids,omitempty\" query:\"workflow_ids\"`\n\tSpaceID     *string    `thrift:\"space_id,2,optional\" form:\"space_id\" json:\"space_id,omitempty\" query:\"space_id\"`\n\tBase        *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetWorkflowDetailRequest() *GetWorkflowDetailRequest {\n\treturn &GetWorkflowDetailRequest{}\n}\n\nfunc (p *GetWorkflowDetailRequest) InitDefault() {\n}\n\nvar GetWorkflowDetailRequest_WorkflowIds_DEFAULT []string\n\nfunc (p *GetWorkflowDetailRequest) GetWorkflowIds() (v []string) {\n\tif !p.IsSetWorkflowIds() {\n\t\treturn GetWorkflowDetailRequest_WorkflowIds_DEFAULT\n\t}\n\treturn p.WorkflowIds\n}\n\nvar GetWorkflowDetailRequest_SpaceID_DEFAULT string\n\nfunc (p *GetWorkflowDetailRequest) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn GetWorkflowDetailRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar GetWorkflowDetailRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetWorkflowDetailRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetWorkflowDetailRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetWorkflowDetailRequest = map[int16]string{\n\t1:   \"workflow_ids\",\n\t2:   \"space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetWorkflowDetailRequest) IsSetWorkflowIds() bool {\n\treturn p.WorkflowIds != nil\n}\n\nfunc (p *GetWorkflowDetailRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *GetWorkflowDetailRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetWorkflowDetailRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkflowDetailRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowDetailRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowIds = _field\n\treturn nil\n}\nfunc (p *GetWorkflowDetailRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowDetailRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetWorkflowDetailRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowDetailRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowDetailRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowIds() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_ids\", thrift.LIST, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.WorkflowIds)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.WorkflowIds {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkflowDetailRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetWorkflowDetailRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkflowDetailRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkflowDetailRequest(%+v)\", *p)\n\n}\n\ntype GetWorkflowDetailResponse struct {\n\tData     []*WorkflowDetailData `thrift:\"data,1,required\" form:\"data,required\" json:\"data,required\" query:\"data,required\"`\n\tCode     int64                 `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string                `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp        `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetWorkflowDetailResponse() *GetWorkflowDetailResponse {\n\treturn &GetWorkflowDetailResponse{}\n}\n\nfunc (p *GetWorkflowDetailResponse) InitDefault() {\n}\n\nfunc (p *GetWorkflowDetailResponse) GetData() (v []*WorkflowDetailData) {\n\treturn p.Data\n}\n\nfunc (p *GetWorkflowDetailResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetWorkflowDetailResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetWorkflowDetailResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetWorkflowDetailResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetWorkflowDetailResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetWorkflowDetailResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetWorkflowDetailResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetWorkflowDetailResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetData bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetData = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetData {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkflowDetailResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetWorkflowDetailResponse[fieldId]))\n}\n\nfunc (p *GetWorkflowDetailResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowDetailData, 0, size)\n\tvalues := make([]WorkflowDetailData, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetWorkflowDetailResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetWorkflowDetailResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetWorkflowDetailResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetWorkflowDetailResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowDetailResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowDetailResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkflowDetailResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetWorkflowDetailResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetWorkflowDetailResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkflowDetailResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkflowDetailResponse(%+v)\", *p)\n\n}\n\ntype WorkflowDetailData struct {\n\tWorkflowID  string       `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tSpaceID     string       `thrift:\"space_id,2\" form:\"space_id\" json:\"space_id\" query:\"space_id\"`\n\tName        string       `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc        string       `thrift:\"desc,4\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tIcon        string       `thrift:\"icon,5\" form:\"icon\" json:\"icon\" query:\"icon\"`\n\tInputs      string       `thrift:\"inputs,6\" form:\"inputs\" json:\"inputs\" query:\"inputs\"`\n\tOutputs     string       `thrift:\"outputs,7\" form:\"outputs\" json:\"outputs\" query:\"outputs\"`\n\tVersion     string       `thrift:\"version,8\" form:\"version\" json:\"version\" query:\"version\"`\n\tCreateTime  int64        `thrift:\"create_time,9\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\tUpdateTime  int64        `thrift:\"update_time,10\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\tProjectID   string       `thrift:\"project_id,11\" form:\"project_id\" json:\"project_id\" query:\"project_id\"`\n\tEndType     int32        `thrift:\"end_type,12\" form:\"end_type\" json:\"end_type\" query:\"end_type\"`\n\tIconURI     string       `thrift:\"icon_uri,13\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tFlowMode    WorkflowMode `thrift:\"flow_mode,14\" form:\"flow_mode\" json:\"flow_mode\" query:\"flow_mode\"`\n\tOutputNodes []*NodeInfo  `thrift:\"output_nodes,15\" form:\"output_nodes\" json:\"output_nodes\" query:\"output_nodes\"`\n}\n\nfunc NewWorkflowDetailData() *WorkflowDetailData {\n\treturn &WorkflowDetailData{}\n}\n\nfunc (p *WorkflowDetailData) InitDefault() {\n}\n\nfunc (p *WorkflowDetailData) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *WorkflowDetailData) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *WorkflowDetailData) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *WorkflowDetailData) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *WorkflowDetailData) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nfunc (p *WorkflowDetailData) GetInputs() (v string) {\n\treturn p.Inputs\n}\n\nfunc (p *WorkflowDetailData) GetOutputs() (v string) {\n\treturn p.Outputs\n}\n\nfunc (p *WorkflowDetailData) GetVersion() (v string) {\n\treturn p.Version\n}\n\nfunc (p *WorkflowDetailData) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *WorkflowDetailData) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nfunc (p *WorkflowDetailData) GetProjectID() (v string) {\n\treturn p.ProjectID\n}\n\nfunc (p *WorkflowDetailData) GetEndType() (v int32) {\n\treturn p.EndType\n}\n\nfunc (p *WorkflowDetailData) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *WorkflowDetailData) GetFlowMode() (v WorkflowMode) {\n\treturn p.FlowMode\n}\n\nfunc (p *WorkflowDetailData) GetOutputNodes() (v []*NodeInfo) {\n\treturn p.OutputNodes\n}\n\nvar fieldIDToName_WorkflowDetailData = map[int16]string{\n\t1:  \"workflow_id\",\n\t2:  \"space_id\",\n\t3:  \"name\",\n\t4:  \"desc\",\n\t5:  \"icon\",\n\t6:  \"inputs\",\n\t7:  \"outputs\",\n\t8:  \"version\",\n\t9:  \"create_time\",\n\t10: \"update_time\",\n\t11: \"project_id\",\n\t12: \"end_type\",\n\t13: \"icon_uri\",\n\t14: \"flow_mode\",\n\t15: \"output_nodes\",\n}\n\nfunc (p *WorkflowDetailData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowDetailData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowDetailData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Inputs = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Outputs = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EndType = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field WorkflowMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = WorkflowMode(v)\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\nfunc (p *WorkflowDetailData) ReadField15(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*NodeInfo, 0, size)\n\tvalues := make([]NodeInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.OutputNodes = _field\n\treturn nil\n}\n\nfunc (p *WorkflowDetailData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowDetailData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowDetailData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"inputs\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Inputs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"outputs\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Outputs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"end_type\", thrift.I32, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.EndType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField13(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 13); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField14(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I32, 14); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.FlowMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *WorkflowDetailData) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"output_nodes\", thrift.LIST, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.OutputNodes)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.OutputNodes {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\n\nfunc (p *WorkflowDetailData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowDetailData(%+v)\", *p)\n\n}\n\ntype APIParameter struct {\n\t// For the front end, no practical significance\n\tID               string            `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tName             string            `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc             string            `thrift:\"desc,3\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tType             ParameterType     `thrift:\"type,4\" form:\"type\" json:\"type\" query:\"type\"`\n\tSubType          *ParameterType    `thrift:\"sub_type,5,optional\" form:\"sub_type\" json:\"sub_type,omitempty\" query:\"sub_type\"`\n\tLocation         ParameterLocation `thrift:\"location,6\" form:\"location\" json:\"location\" query:\"location\"`\n\tIsRequired       bool              `thrift:\"is_required,7\" form:\"is_required\" json:\"is_required\" query:\"is_required\"`\n\tSubParameters    []*APIParameter   `thrift:\"sub_parameters,8\" form:\"sub_parameters\" json:\"sub_parameters\" query:\"sub_parameters\"`\n\tGlobalDefault    *string           `thrift:\"global_default,9,optional\" form:\"global_default\" json:\"global_default,omitempty\" query:\"global_default\"`\n\tGlobalDisable    bool              `thrift:\"global_disable,10\" form:\"global_disable\" json:\"global_disable\" query:\"global_disable\"`\n\tLocalDefault     *string           `thrift:\"local_default,11,optional\" form:\"local_default\" json:\"local_default,omitempty\" query:\"local_default\"`\n\tLocalDisable     bool              `thrift:\"local_disable,12\" form:\"local_disable\" json:\"local_disable\" query:\"local_disable\"`\n\tFormat           *string           `thrift:\"format,13,optional\" form:\"format\" json:\"format,omitempty\" query:\"format\"`\n\tTitle            *string           `thrift:\"title,14,optional\" form:\"title\" json:\"title,omitempty\" query:\"title\"`\n\tEnumList         []string          `thrift:\"enum_list,15\" form:\"enum_list\" json:\"enum_list\" query:\"enum_list\"`\n\tValue            *string           `thrift:\"value,16,optional\" form:\"value\" json:\"value,omitempty\" query:\"value\"`\n\tEnumVarNames     []string          `thrift:\"enum_var_names,17\" form:\"enum_var_names\" json:\"enum_var_names\" query:\"enum_var_names\"`\n\tMinimum          *float64          `thrift:\"minimum,18,optional\" form:\"minimum\" json:\"minimum,omitempty\" query:\"minimum\"`\n\tMaximum          *float64          `thrift:\"maximum,19,optional\" form:\"maximum\" json:\"maximum,omitempty\" query:\"maximum\"`\n\tExclusiveMinimum *bool             `thrift:\"exclusive_minimum,20,optional\" form:\"exclusive_minimum\" json:\"exclusive_minimum,omitempty\" query:\"exclusive_minimum\"`\n\tExclusiveMaximum *bool             `thrift:\"exclusive_maximum,21,optional\" form:\"exclusive_maximum\" json:\"exclusive_maximum,omitempty\" query:\"exclusive_maximum\"`\n\tBizExtend        *string           `thrift:\"biz_extend,22,optional\" form:\"biz_extend\" json:\"biz_extend,omitempty\" query:\"biz_extend\"`\n\t// Default imported parameter settings source\n\tDefaultParamSource *DefaultParamSource `thrift:\"default_param_source,23,optional\" form:\"default_param_source\" json:\"default_param_source,omitempty\" query:\"default_param_source\"`\n\t// Reference variable key\n\tVariableRef *string              `thrift:\"variable_ref,24,optional\" form:\"variable_ref\" json:\"variable_ref,omitempty\" query:\"variable_ref\"`\n\tAssistType  *AssistParameterType `thrift:\"assist_type,25,optional\" form:\"assist_type\" json:\"assist_type,omitempty\" query:\"assist_type\"`\n}\n\nfunc NewAPIParameter() *APIParameter {\n\treturn &APIParameter{}\n}\n\nfunc (p *APIParameter) InitDefault() {\n}\n\nfunc (p *APIParameter) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *APIParameter) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *APIParameter) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *APIParameter) GetType() (v ParameterType) {\n\treturn p.Type\n}\n\nvar APIParameter_SubType_DEFAULT ParameterType\n\nfunc (p *APIParameter) GetSubType() (v ParameterType) {\n\tif !p.IsSetSubType() {\n\t\treturn APIParameter_SubType_DEFAULT\n\t}\n\treturn *p.SubType\n}\n\nfunc (p *APIParameter) GetLocation() (v ParameterLocation) {\n\treturn p.Location\n}\n\nfunc (p *APIParameter) GetIsRequired() (v bool) {\n\treturn p.IsRequired\n}\n\nfunc (p *APIParameter) GetSubParameters() (v []*APIParameter) {\n\treturn p.SubParameters\n}\n\nvar APIParameter_GlobalDefault_DEFAULT string\n\nfunc (p *APIParameter) GetGlobalDefault() (v string) {\n\tif !p.IsSetGlobalDefault() {\n\t\treturn APIParameter_GlobalDefault_DEFAULT\n\t}\n\treturn *p.GlobalDefault\n}\n\nfunc (p *APIParameter) GetGlobalDisable() (v bool) {\n\treturn p.GlobalDisable\n}\n\nvar APIParameter_LocalDefault_DEFAULT string\n\nfunc (p *APIParameter) GetLocalDefault() (v string) {\n\tif !p.IsSetLocalDefault() {\n\t\treturn APIParameter_LocalDefault_DEFAULT\n\t}\n\treturn *p.LocalDefault\n}\n\nfunc (p *APIParameter) GetLocalDisable() (v bool) {\n\treturn p.LocalDisable\n}\n\nvar APIParameter_Format_DEFAULT string\n\nfunc (p *APIParameter) GetFormat() (v string) {\n\tif !p.IsSetFormat() {\n\t\treturn APIParameter_Format_DEFAULT\n\t}\n\treturn *p.Format\n}\n\nvar APIParameter_Title_DEFAULT string\n\nfunc (p *APIParameter) GetTitle() (v string) {\n\tif !p.IsSetTitle() {\n\t\treturn APIParameter_Title_DEFAULT\n\t}\n\treturn *p.Title\n}\n\nfunc (p *APIParameter) GetEnumList() (v []string) {\n\treturn p.EnumList\n}\n\nvar APIParameter_Value_DEFAULT string\n\nfunc (p *APIParameter) GetValue() (v string) {\n\tif !p.IsSetValue() {\n\t\treturn APIParameter_Value_DEFAULT\n\t}\n\treturn *p.Value\n}\n\nfunc (p *APIParameter) GetEnumVarNames() (v []string) {\n\treturn p.EnumVarNames\n}\n\nvar APIParameter_Minimum_DEFAULT float64\n\nfunc (p *APIParameter) GetMinimum() (v float64) {\n\tif !p.IsSetMinimum() {\n\t\treturn APIParameter_Minimum_DEFAULT\n\t}\n\treturn *p.Minimum\n}\n\nvar APIParameter_Maximum_DEFAULT float64\n\nfunc (p *APIParameter) GetMaximum() (v float64) {\n\tif !p.IsSetMaximum() {\n\t\treturn APIParameter_Maximum_DEFAULT\n\t}\n\treturn *p.Maximum\n}\n\nvar APIParameter_ExclusiveMinimum_DEFAULT bool\n\nfunc (p *APIParameter) GetExclusiveMinimum() (v bool) {\n\tif !p.IsSetExclusiveMinimum() {\n\t\treturn APIParameter_ExclusiveMinimum_DEFAULT\n\t}\n\treturn *p.ExclusiveMinimum\n}\n\nvar APIParameter_ExclusiveMaximum_DEFAULT bool\n\nfunc (p *APIParameter) GetExclusiveMaximum() (v bool) {\n\tif !p.IsSetExclusiveMaximum() {\n\t\treturn APIParameter_ExclusiveMaximum_DEFAULT\n\t}\n\treturn *p.ExclusiveMaximum\n}\n\nvar APIParameter_BizExtend_DEFAULT string\n\nfunc (p *APIParameter) GetBizExtend() (v string) {\n\tif !p.IsSetBizExtend() {\n\t\treturn APIParameter_BizExtend_DEFAULT\n\t}\n\treturn *p.BizExtend\n}\n\nvar APIParameter_DefaultParamSource_DEFAULT DefaultParamSource\n\nfunc (p *APIParameter) GetDefaultParamSource() (v DefaultParamSource) {\n\tif !p.IsSetDefaultParamSource() {\n\t\treturn APIParameter_DefaultParamSource_DEFAULT\n\t}\n\treturn *p.DefaultParamSource\n}\n\nvar APIParameter_VariableRef_DEFAULT string\n\nfunc (p *APIParameter) GetVariableRef() (v string) {\n\tif !p.IsSetVariableRef() {\n\t\treturn APIParameter_VariableRef_DEFAULT\n\t}\n\treturn *p.VariableRef\n}\n\nvar APIParameter_AssistType_DEFAULT AssistParameterType\n\nfunc (p *APIParameter) GetAssistType() (v AssistParameterType) {\n\tif !p.IsSetAssistType() {\n\t\treturn APIParameter_AssistType_DEFAULT\n\t}\n\treturn *p.AssistType\n}\n\nvar fieldIDToName_APIParameter = map[int16]string{\n\t1:  \"id\",\n\t2:  \"name\",\n\t3:  \"desc\",\n\t4:  \"type\",\n\t5:  \"sub_type\",\n\t6:  \"location\",\n\t7:  \"is_required\",\n\t8:  \"sub_parameters\",\n\t9:  \"global_default\",\n\t10: \"global_disable\",\n\t11: \"local_default\",\n\t12: \"local_disable\",\n\t13: \"format\",\n\t14: \"title\",\n\t15: \"enum_list\",\n\t16: \"value\",\n\t17: \"enum_var_names\",\n\t18: \"minimum\",\n\t19: \"maximum\",\n\t20: \"exclusive_minimum\",\n\t21: \"exclusive_maximum\",\n\t22: \"biz_extend\",\n\t23: \"default_param_source\",\n\t24: \"variable_ref\",\n\t25: \"assist_type\",\n}\n\nfunc (p *APIParameter) IsSetSubType() bool {\n\treturn p.SubType != nil\n}\n\nfunc (p *APIParameter) IsSetGlobalDefault() bool {\n\treturn p.GlobalDefault != nil\n}\n\nfunc (p *APIParameter) IsSetLocalDefault() bool {\n\treturn p.LocalDefault != nil\n}\n\nfunc (p *APIParameter) IsSetFormat() bool {\n\treturn p.Format != nil\n}\n\nfunc (p *APIParameter) IsSetTitle() bool {\n\treturn p.Title != nil\n}\n\nfunc (p *APIParameter) IsSetValue() bool {\n\treturn p.Value != nil\n}\n\nfunc (p *APIParameter) IsSetMinimum() bool {\n\treturn p.Minimum != nil\n}\n\nfunc (p *APIParameter) IsSetMaximum() bool {\n\treturn p.Maximum != nil\n}\n\nfunc (p *APIParameter) IsSetExclusiveMinimum() bool {\n\treturn p.ExclusiveMinimum != nil\n}\n\nfunc (p *APIParameter) IsSetExclusiveMaximum() bool {\n\treturn p.ExclusiveMaximum != nil\n}\n\nfunc (p *APIParameter) IsSetBizExtend() bool {\n\treturn p.BizExtend != nil\n}\n\nfunc (p *APIParameter) IsSetDefaultParamSource() bool {\n\treturn p.DefaultParamSource != nil\n}\n\nfunc (p *APIParameter) IsSetVariableRef() bool {\n\treturn p.VariableRef != nil\n}\n\nfunc (p *APIParameter) IsSetAssistType() bool {\n\treturn p.AssistType != nil\n}\n\nfunc (p *APIParameter) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 14:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField14(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 15:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField15(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 16:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField16(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 17:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField17(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 18:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField18(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 19:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField19(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 20:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField20(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 21:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField21(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 22:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField22(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 23:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField23(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 24:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField24(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 25:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField25(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_APIParameter[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *APIParameter) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field ParameterType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ParameterType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *ParameterType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := ParameterType(v)\n\t\t_field = &tmp\n\t}\n\tp.SubType = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field ParameterLocation\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = ParameterLocation(v)\n\t}\n\tp.Location = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsRequired = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField8(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*APIParameter, 0, size)\n\tvalues := make([]APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SubParameters = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.GlobalDefault = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.GlobalDisable = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LocalDefault = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LocalDisable = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Format = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField14(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Title = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField15(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.EnumList = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField16(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Value = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField17(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.EnumVarNames = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField18(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Minimum = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField19(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Maximum = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField20(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExclusiveMinimum = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField21(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExclusiveMaximum = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField22(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BizExtend = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField23(iprot thrift.TProtocol) error {\n\n\tvar _field *DefaultParamSource\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := DefaultParamSource(v)\n\t\t_field = &tmp\n\t}\n\tp.DefaultParamSource = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField24(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.VariableRef = _field\n\treturn nil\n}\nfunc (p *APIParameter) ReadField25(iprot thrift.TProtocol) error {\n\n\tvar _field *AssistParameterType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := AssistParameterType(v)\n\t\t_field = &tmp\n\t}\n\tp.AssistType = _field\n\treturn nil\n}\n\nfunc (p *APIParameter) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"APIParameter\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField14(oprot); err != nil {\n\t\t\tfieldId = 14\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField15(oprot); err != nil {\n\t\t\tfieldId = 15\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField16(oprot); err != nil {\n\t\t\tfieldId = 16\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField17(oprot); err != nil {\n\t\t\tfieldId = 17\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField18(oprot); err != nil {\n\t\t\tfieldId = 18\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField19(oprot); err != nil {\n\t\t\tfieldId = 19\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField20(oprot); err != nil {\n\t\t\tfieldId = 20\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField21(oprot); err != nil {\n\t\t\tfieldId = 21\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField22(oprot); err != nil {\n\t\t\tfieldId = 22\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField23(oprot); err != nil {\n\t\t\tfieldId = 23\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField24(oprot); err != nil {\n\t\t\tfieldId = 24\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField25(oprot); err != nil {\n\t\t\tfieldId = 25\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *APIParameter) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSubType() {\n\t\tif err = oprot.WriteFieldBegin(\"sub_type\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SubType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"location\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Location)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_required\", thrift.BOOL, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsRequired); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"sub_parameters\", thrift.LIST, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.SubParameters)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.SubParameters {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetGlobalDefault() {\n\t\tif err = oprot.WriteFieldBegin(\"global_default\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.GlobalDefault); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"global_disable\", thrift.BOOL, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.GlobalDisable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLocalDefault() {\n\t\tif err = oprot.WriteFieldBegin(\"local_default\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LocalDefault); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField12(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"local_disable\", thrift.BOOL, 12); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.LocalDisable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFormat() {\n\t\tif err = oprot.WriteFieldBegin(\"format\", thrift.STRING, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Format); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField14(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTitle() {\n\t\tif err = oprot.WriteFieldBegin(\"title\", thrift.STRING, 14); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Title); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 14 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField15(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"enum_list\", thrift.LIST, 15); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.EnumList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.EnumList {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 15 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField16(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetValue() {\n\t\tif err = oprot.WriteFieldBegin(\"value\", thrift.STRING, 16); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 16 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField17(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"enum_var_names\", thrift.LIST, 17); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRING, len(p.EnumVarNames)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.EnumVarNames {\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 17 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField18(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMinimum() {\n\t\tif err = oprot.WriteFieldBegin(\"minimum\", thrift.DOUBLE, 18); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Minimum); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 18 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField19(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMaximum() {\n\t\tif err = oprot.WriteFieldBegin(\"maximum\", thrift.DOUBLE, 19); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Maximum); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 19 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField20(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExclusiveMinimum() {\n\t\tif err = oprot.WriteFieldBegin(\"exclusive_minimum\", thrift.BOOL, 20); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.ExclusiveMinimum); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 20 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField21(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExclusiveMaximum() {\n\t\tif err = oprot.WriteFieldBegin(\"exclusive_maximum\", thrift.BOOL, 21); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.ExclusiveMaximum); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 21 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField22(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBizExtend() {\n\t\tif err = oprot.WriteFieldBegin(\"biz_extend\", thrift.STRING, 22); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BizExtend); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 22 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField23(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDefaultParamSource() {\n\t\tif err = oprot.WriteFieldBegin(\"default_param_source\", thrift.I32, 23); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.DefaultParamSource)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 23 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField24(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVariableRef() {\n\t\tif err = oprot.WriteFieldBegin(\"variable_ref\", thrift.STRING, 24); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.VariableRef); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 24 end error: \", p), err)\n}\nfunc (p *APIParameter) writeField25(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAssistType() {\n\t\tif err = oprot.WriteFieldBegin(\"assist_type\", thrift.I32, 25); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.AssistType)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 25 end error: \", p), err)\n}\n\nfunc (p *APIParameter) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"APIParameter(%+v)\", *p)\n\n}\n\ntype AsyncConf struct {\n\tSwitchStatus bool   `thrift:\"switch_status,1\" form:\"switch_status\" json:\"switch_status\" query:\"switch_status\"`\n\tMessage      string `thrift:\"message,2\" form:\"message\" json:\"message\" query:\"message\"`\n}\n\nfunc NewAsyncConf() *AsyncConf {\n\treturn &AsyncConf{}\n}\n\nfunc (p *AsyncConf) InitDefault() {\n}\n\nfunc (p *AsyncConf) GetSwitchStatus() (v bool) {\n\treturn p.SwitchStatus\n}\n\nfunc (p *AsyncConf) GetMessage() (v string) {\n\treturn p.Message\n}\n\nvar fieldIDToName_AsyncConf = map[int16]string{\n\t1: \"switch_status\",\n\t2: \"message\",\n}\n\nfunc (p *AsyncConf) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AsyncConf[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AsyncConf) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SwitchStatus = _field\n\treturn nil\n}\nfunc (p *AsyncConf) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Message = _field\n\treturn nil\n}\n\nfunc (p *AsyncConf) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AsyncConf\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AsyncConf) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"switch_status\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.SwitchStatus); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AsyncConf) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"message\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Message); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *AsyncConf) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AsyncConf(%+v)\", *p)\n\n}\n\ntype ResponseStyle struct {\n\tMode int32 `thrift:\"mode,1\" form:\"mode\" json:\"mode\" query:\"mode\"`\n}\n\nfunc NewResponseStyle() *ResponseStyle {\n\treturn &ResponseStyle{}\n}\n\nfunc (p *ResponseStyle) InitDefault() {\n}\n\nfunc (p *ResponseStyle) GetMode() (v int32) {\n\treturn p.Mode\n}\n\nvar fieldIDToName_ResponseStyle = map[int16]string{\n\t1: \"mode\",\n}\n\nfunc (p *ResponseStyle) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ResponseStyle[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ResponseStyle) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Mode = _field\n\treturn nil\n}\n\nfunc (p *ResponseStyle) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ResponseStyle\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ResponseStyle) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"mode\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Mode); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *ResponseStyle) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ResponseStyle(%+v)\", *p)\n\n}\n\ntype FCPluginSetting struct {\n\tPluginID       string          `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tAPIID          string          `thrift:\"api_id,2\" form:\"api_id\" json:\"api_id\" query:\"api_id\"`\n\tAPIName        string          `thrift:\"api_name,3\" form:\"api_name\" json:\"api_name\" query:\"api_name\"`\n\tRequestParams  []*APIParameter `thrift:\"request_params,4\" form:\"request_params\" json:\"request_params\" query:\"request_params\"`\n\tResponseParams []*APIParameter `thrift:\"response_params,5\" form:\"response_params\" json:\"response_params\" query:\"response_params\"`\n\tResponseStyle  *ResponseStyle  `thrift:\"response_style,6\" form:\"response_style\" json:\"response_style\" query:\"response_style\"`\n\t// This issue is temporarily not supported.\n\tAsyncConf     *AsyncConf             `thrift:\"async_conf,7,optional\" form:\"async_conf\" json:\"async_conf,omitempty\" query:\"async_conf\"`\n\tIsDraft       bool                   `thrift:\"is_draft,8\" form:\"is_draft\" json:\"is_draft\" query:\"is_draft\"`\n\tPluginVersion string                 `thrift:\"plugin_version,9\" form:\"plugin_version\" json:\"plugin_version\" query:\"plugin_version\"`\n\tPluginFrom    *bot_common.PluginFrom `thrift:\"plugin_from,50,optional\" form:\"plugin_from\" json:\"plugin_from,omitempty\" query:\"plugin_from\"`\n}\n\nfunc NewFCPluginSetting() *FCPluginSetting {\n\treturn &FCPluginSetting{}\n}\n\nfunc (p *FCPluginSetting) InitDefault() {\n}\n\nfunc (p *FCPluginSetting) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *FCPluginSetting) GetAPIID() (v string) {\n\treturn p.APIID\n}\n\nfunc (p *FCPluginSetting) GetAPIName() (v string) {\n\treturn p.APIName\n}\n\nfunc (p *FCPluginSetting) GetRequestParams() (v []*APIParameter) {\n\treturn p.RequestParams\n}\n\nfunc (p *FCPluginSetting) GetResponseParams() (v []*APIParameter) {\n\treturn p.ResponseParams\n}\n\nvar FCPluginSetting_ResponseStyle_DEFAULT *ResponseStyle\n\nfunc (p *FCPluginSetting) GetResponseStyle() (v *ResponseStyle) {\n\tif !p.IsSetResponseStyle() {\n\t\treturn FCPluginSetting_ResponseStyle_DEFAULT\n\t}\n\treturn p.ResponseStyle\n}\n\nvar FCPluginSetting_AsyncConf_DEFAULT *AsyncConf\n\nfunc (p *FCPluginSetting) GetAsyncConf() (v *AsyncConf) {\n\tif !p.IsSetAsyncConf() {\n\t\treturn FCPluginSetting_AsyncConf_DEFAULT\n\t}\n\treturn p.AsyncConf\n}\n\nfunc (p *FCPluginSetting) GetIsDraft() (v bool) {\n\treturn p.IsDraft\n}\n\nfunc (p *FCPluginSetting) GetPluginVersion() (v string) {\n\treturn p.PluginVersion\n}\n\nvar FCPluginSetting_PluginFrom_DEFAULT bot_common.PluginFrom\n\nfunc (p *FCPluginSetting) GetPluginFrom() (v bot_common.PluginFrom) {\n\tif !p.IsSetPluginFrom() {\n\t\treturn FCPluginSetting_PluginFrom_DEFAULT\n\t}\n\treturn *p.PluginFrom\n}\n\nvar fieldIDToName_FCPluginSetting = map[int16]string{\n\t1:  \"plugin_id\",\n\t2:  \"api_id\",\n\t3:  \"api_name\",\n\t4:  \"request_params\",\n\t5:  \"response_params\",\n\t6:  \"response_style\",\n\t7:  \"async_conf\",\n\t8:  \"is_draft\",\n\t9:  \"plugin_version\",\n\t50: \"plugin_from\",\n}\n\nfunc (p *FCPluginSetting) IsSetResponseStyle() bool {\n\treturn p.ResponseStyle != nil\n}\n\nfunc (p *FCPluginSetting) IsSetAsyncConf() bool {\n\treturn p.AsyncConf != nil\n}\n\nfunc (p *FCPluginSetting) IsSetPluginFrom() bool {\n\treturn p.PluginFrom != nil\n}\n\nfunc (p *FCPluginSetting) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 50:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField50(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FCPluginSetting[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FCPluginSetting) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *FCPluginSetting) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *FCPluginSetting) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIName = _field\n\treturn nil\n}\nfunc (p *FCPluginSetting) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*APIParameter, 0, size)\n\tvalues := make([]APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RequestParams = _field\n\treturn nil\n}\nfunc (p *FCPluginSetting) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*APIParameter, 0, size)\n\tvalues := make([]APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseParams = _field\n\treturn nil\n}\nfunc (p *FCPluginSetting) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewResponseStyle()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseStyle = _field\n\treturn nil\n}\nfunc (p *FCPluginSetting) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewAsyncConf()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AsyncConf = _field\n\treturn nil\n}\nfunc (p *FCPluginSetting) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsDraft = _field\n\treturn nil\n}\nfunc (p *FCPluginSetting) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginVersion = _field\n\treturn nil\n}\nfunc (p *FCPluginSetting) ReadField50(iprot thrift.TProtocol) error {\n\n\tvar _field *bot_common.PluginFrom\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := bot_common.PluginFrom(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginFrom = _field\n\treturn nil\n}\n\nfunc (p *FCPluginSetting) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FCPluginSetting\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField50(oprot); err != nil {\n\t\t\tfieldId = 50\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FCPluginSetting) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FCPluginSetting) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *FCPluginSetting) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *FCPluginSetting) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request_params\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.RequestParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.RequestParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *FCPluginSetting) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_params\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResponseParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResponseParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *FCPluginSetting) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_style\", thrift.STRUCT, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ResponseStyle.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *FCPluginSetting) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAsyncConf() {\n\t\tif err = oprot.WriteFieldBegin(\"async_conf\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.AsyncConf.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *FCPluginSetting) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_draft\", thrift.BOOL, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsDraft); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *FCPluginSetting) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_version\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *FCPluginSetting) writeField50(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginFrom() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_from\", thrift.I32, 50); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginFrom)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 end error: \", p), err)\n}\n\nfunc (p *FCPluginSetting) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FCPluginSetting(%+v)\", *p)\n\n}\n\ntype FCWorkflowSetting struct {\n\tWorkflowID     string          `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tPluginID       string          `thrift:\"plugin_id,2\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tRequestParams  []*APIParameter `thrift:\"request_params,3\" form:\"request_params\" json:\"request_params\" query:\"request_params\"`\n\tResponseParams []*APIParameter `thrift:\"response_params,4\" form:\"response_params\" json:\"response_params\" query:\"response_params\"`\n\tResponseStyle  *ResponseStyle  `thrift:\"response_style,5\" form:\"response_style\" json:\"response_style\" query:\"response_style\"`\n\t// This issue is temporarily not supported.\n\tAsyncConf       *AsyncConf `thrift:\"async_conf,6,optional\" form:\"async_conf\" json:\"async_conf,omitempty\" query:\"async_conf\"`\n\tIsDraft         bool       `thrift:\"is_draft,7\" form:\"is_draft\" json:\"is_draft\" query:\"is_draft\"`\n\tWorkflowVersion string     `thrift:\"workflow_version,8\" form:\"workflow_version\" json:\"workflow_version\" query:\"workflow_version\"`\n}\n\nfunc NewFCWorkflowSetting() *FCWorkflowSetting {\n\treturn &FCWorkflowSetting{}\n}\n\nfunc (p *FCWorkflowSetting) InitDefault() {\n}\n\nfunc (p *FCWorkflowSetting) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *FCWorkflowSetting) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *FCWorkflowSetting) GetRequestParams() (v []*APIParameter) {\n\treturn p.RequestParams\n}\n\nfunc (p *FCWorkflowSetting) GetResponseParams() (v []*APIParameter) {\n\treturn p.ResponseParams\n}\n\nvar FCWorkflowSetting_ResponseStyle_DEFAULT *ResponseStyle\n\nfunc (p *FCWorkflowSetting) GetResponseStyle() (v *ResponseStyle) {\n\tif !p.IsSetResponseStyle() {\n\t\treturn FCWorkflowSetting_ResponseStyle_DEFAULT\n\t}\n\treturn p.ResponseStyle\n}\n\nvar FCWorkflowSetting_AsyncConf_DEFAULT *AsyncConf\n\nfunc (p *FCWorkflowSetting) GetAsyncConf() (v *AsyncConf) {\n\tif !p.IsSetAsyncConf() {\n\t\treturn FCWorkflowSetting_AsyncConf_DEFAULT\n\t}\n\treturn p.AsyncConf\n}\n\nfunc (p *FCWorkflowSetting) GetIsDraft() (v bool) {\n\treturn p.IsDraft\n}\n\nfunc (p *FCWorkflowSetting) GetWorkflowVersion() (v string) {\n\treturn p.WorkflowVersion\n}\n\nvar fieldIDToName_FCWorkflowSetting = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"plugin_id\",\n\t3: \"request_params\",\n\t4: \"response_params\",\n\t5: \"response_style\",\n\t6: \"async_conf\",\n\t7: \"is_draft\",\n\t8: \"workflow_version\",\n}\n\nfunc (p *FCWorkflowSetting) IsSetResponseStyle() bool {\n\treturn p.ResponseStyle != nil\n}\n\nfunc (p *FCWorkflowSetting) IsSetAsyncConf() bool {\n\treturn p.AsyncConf != nil\n}\n\nfunc (p *FCWorkflowSetting) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FCWorkflowSetting[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FCWorkflowSetting) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *FCWorkflowSetting) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *FCWorkflowSetting) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*APIParameter, 0, size)\n\tvalues := make([]APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.RequestParams = _field\n\treturn nil\n}\nfunc (p *FCWorkflowSetting) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*APIParameter, 0, size)\n\tvalues := make([]APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseParams = _field\n\treturn nil\n}\nfunc (p *FCWorkflowSetting) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewResponseStyle()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ResponseStyle = _field\n\treturn nil\n}\nfunc (p *FCWorkflowSetting) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewAsyncConf()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AsyncConf = _field\n\treturn nil\n}\nfunc (p *FCWorkflowSetting) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsDraft = _field\n\treturn nil\n}\nfunc (p *FCWorkflowSetting) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowVersion = _field\n\treturn nil\n}\n\nfunc (p *FCWorkflowSetting) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FCWorkflowSetting\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FCWorkflowSetting) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *FCWorkflowSetting) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *FCWorkflowSetting) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request_params\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.RequestParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.RequestParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *FCWorkflowSetting) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_params\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ResponseParams)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ResponseParams {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *FCWorkflowSetting) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"response_style\", thrift.STRUCT, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ResponseStyle.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *FCWorkflowSetting) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAsyncConf() {\n\t\tif err = oprot.WriteFieldBegin(\"async_conf\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.AsyncConf.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *FCWorkflowSetting) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_draft\", thrift.BOOL, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsDraft); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *FCWorkflowSetting) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_version\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowVersion); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\n\nfunc (p *FCWorkflowSetting) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FCWorkflowSetting(%+v)\", *p)\n\n}\n\ntype FCDatasetSetting struct {\n\tDatasetID string `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id\" query:\"dataset_id\"`\n}\n\nfunc NewFCDatasetSetting() *FCDatasetSetting {\n\treturn &FCDatasetSetting{}\n}\n\nfunc (p *FCDatasetSetting) InitDefault() {\n}\n\nfunc (p *FCDatasetSetting) GetDatasetID() (v string) {\n\treturn p.DatasetID\n}\n\nvar fieldIDToName_FCDatasetSetting = map[int16]string{\n\t1: \"dataset_id\",\n}\n\nfunc (p *FCDatasetSetting) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_FCDatasetSetting[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *FCDatasetSetting) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\n\nfunc (p *FCDatasetSetting) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"FCDatasetSetting\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *FCDatasetSetting) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *FCDatasetSetting) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"FCDatasetSetting(%+v)\", *p)\n\n}\n\ntype GetLLMNodeFCSettingsMergedRequest struct {\n\tWorkflowID        string             `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tSpaceID           string             `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tPluginFcSetting   *FCPluginSetting   `thrift:\"plugin_fc_setting,3,optional\" form:\"plugin_fc_setting\" json:\"plugin_fc_setting,omitempty\" query:\"plugin_fc_setting\"`\n\tWorkflowFcSetting *FCWorkflowSetting `thrift:\"workflow_fc_setting,4,optional\" form:\"workflow_fc_setting\" json:\"workflow_fc_setting,omitempty\" query:\"workflow_fc_setting\"`\n\tDatasetFcSetting  *FCDatasetSetting  `thrift:\"dataset_fc_setting,5,optional\" form:\"dataset_fc_setting\" json:\"dataset_fc_setting,omitempty\" query:\"dataset_fc_setting\"`\n\tBase              *base.Base         `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetLLMNodeFCSettingsMergedRequest() *GetLLMNodeFCSettingsMergedRequest {\n\treturn &GetLLMNodeFCSettingsMergedRequest{}\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) InitDefault() {\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar GetLLMNodeFCSettingsMergedRequest_PluginFcSetting_DEFAULT *FCPluginSetting\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) GetPluginFcSetting() (v *FCPluginSetting) {\n\tif !p.IsSetPluginFcSetting() {\n\t\treturn GetLLMNodeFCSettingsMergedRequest_PluginFcSetting_DEFAULT\n\t}\n\treturn p.PluginFcSetting\n}\n\nvar GetLLMNodeFCSettingsMergedRequest_WorkflowFcSetting_DEFAULT *FCWorkflowSetting\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) GetWorkflowFcSetting() (v *FCWorkflowSetting) {\n\tif !p.IsSetWorkflowFcSetting() {\n\t\treturn GetLLMNodeFCSettingsMergedRequest_WorkflowFcSetting_DEFAULT\n\t}\n\treturn p.WorkflowFcSetting\n}\n\nvar GetLLMNodeFCSettingsMergedRequest_DatasetFcSetting_DEFAULT *FCDatasetSetting\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) GetDatasetFcSetting() (v *FCDatasetSetting) {\n\tif !p.IsSetDatasetFcSetting() {\n\t\treturn GetLLMNodeFCSettingsMergedRequest_DatasetFcSetting_DEFAULT\n\t}\n\treturn p.DatasetFcSetting\n}\n\nvar GetLLMNodeFCSettingsMergedRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetLLMNodeFCSettingsMergedRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetLLMNodeFCSettingsMergedRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"space_id\",\n\t3:   \"plugin_fc_setting\",\n\t4:   \"workflow_fc_setting\",\n\t5:   \"dataset_fc_setting\",\n\t255: \"Base\",\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) IsSetPluginFcSetting() bool {\n\treturn p.PluginFcSetting != nil\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) IsSetWorkflowFcSetting() bool {\n\treturn p.WorkflowFcSetting != nil\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) IsSetDatasetFcSetting() bool {\n\treturn p.DatasetFcSetting != nil\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetLLMNodeFCSettingsMergedRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetLLMNodeFCSettingsMergedRequest[fieldId]))\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingsMergedRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingsMergedRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewFCPluginSetting()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PluginFcSetting = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingsMergedRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewFCWorkflowSetting()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowFcSetting = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingsMergedRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewFCDatasetSetting()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DatasetFcSetting = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingsMergedRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetLLMNodeFCSettingsMergedRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingsMergedRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingsMergedRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginFcSetting() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_fc_setting\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.PluginFcSetting.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingsMergedRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowFcSetting() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_fc_setting\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.WorkflowFcSetting.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingsMergedRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDatasetFcSetting() {\n\t\tif err = oprot.WriteFieldBegin(\"dataset_fc_setting\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.DatasetFcSetting.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingsMergedRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetLLMNodeFCSettingsMergedRequest(%+v)\", *p)\n\n}\n\ntype GetLLMNodeFCSettingsMergedResponse struct {\n\tPluginFcSetting  *FCPluginSetting   `thrift:\"plugin_fc_setting,1,optional\" form:\"plugin_fc_setting\" json:\"plugin_fc_setting,omitempty\" query:\"plugin_fc_setting\"`\n\tWorflowFcSetting *FCWorkflowSetting `thrift:\"worflow_fc_setting,2,optional\" form:\"worflow_fc_setting\" json:\"worflow_fc_setting,omitempty\" query:\"worflow_fc_setting\"`\n\tDatasetFcSetting *FCDatasetSetting  `thrift:\"dataset_fc_setting,3,optional\" form:\"dataset_fc_setting\" json:\"dataset_fc_setting,omitempty\" query:\"dataset_fc_setting\"`\n\tCode             int64              `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg              string             `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp         *base.BaseResp     `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetLLMNodeFCSettingsMergedResponse() *GetLLMNodeFCSettingsMergedResponse {\n\treturn &GetLLMNodeFCSettingsMergedResponse{}\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) InitDefault() {\n}\n\nvar GetLLMNodeFCSettingsMergedResponse_PluginFcSetting_DEFAULT *FCPluginSetting\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) GetPluginFcSetting() (v *FCPluginSetting) {\n\tif !p.IsSetPluginFcSetting() {\n\t\treturn GetLLMNodeFCSettingsMergedResponse_PluginFcSetting_DEFAULT\n\t}\n\treturn p.PluginFcSetting\n}\n\nvar GetLLMNodeFCSettingsMergedResponse_WorflowFcSetting_DEFAULT *FCWorkflowSetting\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) GetWorflowFcSetting() (v *FCWorkflowSetting) {\n\tif !p.IsSetWorflowFcSetting() {\n\t\treturn GetLLMNodeFCSettingsMergedResponse_WorflowFcSetting_DEFAULT\n\t}\n\treturn p.WorflowFcSetting\n}\n\nvar GetLLMNodeFCSettingsMergedResponse_DatasetFcSetting_DEFAULT *FCDatasetSetting\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) GetDatasetFcSetting() (v *FCDatasetSetting) {\n\tif !p.IsSetDatasetFcSetting() {\n\t\treturn GetLLMNodeFCSettingsMergedResponse_DatasetFcSetting_DEFAULT\n\t}\n\treturn p.DatasetFcSetting\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetLLMNodeFCSettingsMergedResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetLLMNodeFCSettingsMergedResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetLLMNodeFCSettingsMergedResponse = map[int16]string{\n\t1:   \"plugin_fc_setting\",\n\t2:   \"worflow_fc_setting\",\n\t3:   \"dataset_fc_setting\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) IsSetPluginFcSetting() bool {\n\treturn p.PluginFcSetting != nil\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) IsSetWorflowFcSetting() bool {\n\treturn p.WorflowFcSetting != nil\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) IsSetDatasetFcSetting() bool {\n\treturn p.DatasetFcSetting != nil\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetLLMNodeFCSettingsMergedResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetLLMNodeFCSettingsMergedResponse[fieldId]))\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewFCPluginSetting()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.PluginFcSetting = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingsMergedResponse) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewFCWorkflowSetting()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.WorflowFcSetting = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingsMergedResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewFCDatasetSetting()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.DatasetFcSetting = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingsMergedResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingsMergedResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingsMergedResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetLLMNodeFCSettingsMergedResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginFcSetting() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_fc_setting\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.PluginFcSetting.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingsMergedResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorflowFcSetting() {\n\t\tif err = oprot.WriteFieldBegin(\"worflow_fc_setting\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.WorflowFcSetting.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingsMergedResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDatasetFcSetting() {\n\t\tif err = oprot.WriteFieldBegin(\"dataset_fc_setting\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.DatasetFcSetting.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingsMergedResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingsMergedResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingsMergedResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetLLMNodeFCSettingsMergedResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetLLMNodeFCSettingsMergedResponse(%+v)\", *p)\n\n}\n\ntype PluginFCItem struct {\n\tPluginID      string                 `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tAPIID         string                 `thrift:\"api_id,2\" form:\"api_id\" json:\"api_id\" query:\"api_id\"`\n\tAPIName       string                 `thrift:\"api_name,3\" form:\"api_name\" json:\"api_name\" query:\"api_name\"`\n\tIsDraft       bool                   `thrift:\"is_draft,4\" form:\"is_draft\" json:\"is_draft\" query:\"is_draft\"`\n\tPluginVersion *string                `thrift:\"plugin_version,5,optional\" form:\"plugin_version\" json:\"plugin_version,omitempty\" query:\"plugin_version\"`\n\tPluginFrom    *bot_common.PluginFrom `thrift:\"plugin_from,6,optional\" form:\"plugin_from\" json:\"plugin_from,omitempty\" query:\"plugin_from\"`\n}\n\nfunc NewPluginFCItem() *PluginFCItem {\n\treturn &PluginFCItem{}\n}\n\nfunc (p *PluginFCItem) InitDefault() {\n}\n\nfunc (p *PluginFCItem) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *PluginFCItem) GetAPIID() (v string) {\n\treturn p.APIID\n}\n\nfunc (p *PluginFCItem) GetAPIName() (v string) {\n\treturn p.APIName\n}\n\nfunc (p *PluginFCItem) GetIsDraft() (v bool) {\n\treturn p.IsDraft\n}\n\nvar PluginFCItem_PluginVersion_DEFAULT string\n\nfunc (p *PluginFCItem) GetPluginVersion() (v string) {\n\tif !p.IsSetPluginVersion() {\n\t\treturn PluginFCItem_PluginVersion_DEFAULT\n\t}\n\treturn *p.PluginVersion\n}\n\nvar PluginFCItem_PluginFrom_DEFAULT bot_common.PluginFrom\n\nfunc (p *PluginFCItem) GetPluginFrom() (v bot_common.PluginFrom) {\n\tif !p.IsSetPluginFrom() {\n\t\treturn PluginFCItem_PluginFrom_DEFAULT\n\t}\n\treturn *p.PluginFrom\n}\n\nvar fieldIDToName_PluginFCItem = map[int16]string{\n\t1: \"plugin_id\",\n\t2: \"api_id\",\n\t3: \"api_name\",\n\t4: \"is_draft\",\n\t5: \"plugin_version\",\n\t6: \"plugin_from\",\n}\n\nfunc (p *PluginFCItem) IsSetPluginVersion() bool {\n\treturn p.PluginVersion != nil\n}\n\nfunc (p *PluginFCItem) IsSetPluginFrom() bool {\n\treturn p.PluginFrom != nil\n}\n\nfunc (p *PluginFCItem) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginFCItem[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginFCItem) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *PluginFCItem) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *PluginFCItem) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIName = _field\n\treturn nil\n}\nfunc (p *PluginFCItem) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsDraft = _field\n\treturn nil\n}\nfunc (p *PluginFCItem) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.PluginVersion = _field\n\treturn nil\n}\nfunc (p *PluginFCItem) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *bot_common.PluginFrom\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := bot_common.PluginFrom(v)\n\t\t_field = &tmp\n\t}\n\tp.PluginFrom = _field\n\treturn nil\n}\n\nfunc (p *PluginFCItem) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginFCItem\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginFCItem) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginFCItem) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginFCItem) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginFCItem) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_draft\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsDraft); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginFCItem) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_version\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.PluginVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginFCItem) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginFrom() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_from\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.PluginFrom)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *PluginFCItem) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginFCItem(%+v)\", *p)\n\n}\n\ntype WorkflowFCItem struct {\n\tWorkflowID      string  `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tPluginID        string  `thrift:\"plugin_id,2\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tIsDraft         bool    `thrift:\"is_draft,3\" form:\"is_draft\" json:\"is_draft\" query:\"is_draft\"`\n\tWorkflowVersion *string `thrift:\"workflow_version,4,optional\" form:\"workflow_version\" json:\"workflow_version,omitempty\" query:\"workflow_version\"`\n}\n\nfunc NewWorkflowFCItem() *WorkflowFCItem {\n\treturn &WorkflowFCItem{}\n}\n\nfunc (p *WorkflowFCItem) InitDefault() {\n}\n\nfunc (p *WorkflowFCItem) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *WorkflowFCItem) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *WorkflowFCItem) GetIsDraft() (v bool) {\n\treturn p.IsDraft\n}\n\nvar WorkflowFCItem_WorkflowVersion_DEFAULT string\n\nfunc (p *WorkflowFCItem) GetWorkflowVersion() (v string) {\n\tif !p.IsSetWorkflowVersion() {\n\t\treturn WorkflowFCItem_WorkflowVersion_DEFAULT\n\t}\n\treturn *p.WorkflowVersion\n}\n\nvar fieldIDToName_WorkflowFCItem = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"plugin_id\",\n\t3: \"is_draft\",\n\t4: \"workflow_version\",\n}\n\nfunc (p *WorkflowFCItem) IsSetWorkflowVersion() bool {\n\treturn p.WorkflowVersion != nil\n}\n\nfunc (p *WorkflowFCItem) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowFCItem[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowFCItem) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *WorkflowFCItem) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *WorkflowFCItem) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsDraft = _field\n\treturn nil\n}\nfunc (p *WorkflowFCItem) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowVersion = _field\n\treturn nil\n}\n\nfunc (p *WorkflowFCItem) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowFCItem\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowFCItem) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowFCItem) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowFCItem) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_draft\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsDraft); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowFCItem) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_version\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WorkflowVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *WorkflowFCItem) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowFCItem(%+v)\", *p)\n\n}\n\ntype DatasetFCItem struct {\n\tDatasetID string `thrift:\"dataset_id,1\" form:\"dataset_id\" json:\"dataset_id\" query:\"dataset_id\"`\n\tIsDraft   bool   `thrift:\"is_draft,2\" form:\"is_draft\" json:\"is_draft\" query:\"is_draft\"`\n}\n\nfunc NewDatasetFCItem() *DatasetFCItem {\n\treturn &DatasetFCItem{}\n}\n\nfunc (p *DatasetFCItem) InitDefault() {\n}\n\nfunc (p *DatasetFCItem) GetDatasetID() (v string) {\n\treturn p.DatasetID\n}\n\nfunc (p *DatasetFCItem) GetIsDraft() (v bool) {\n\treturn p.IsDraft\n}\n\nvar fieldIDToName_DatasetFCItem = map[int16]string{\n\t1: \"dataset_id\",\n\t2: \"is_draft\",\n}\n\nfunc (p *DatasetFCItem) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetFCItem[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetFCItem) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.DatasetID = _field\n\treturn nil\n}\nfunc (p *DatasetFCItem) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsDraft = _field\n\treturn nil\n}\n\nfunc (p *DatasetFCItem) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatasetFCItem\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetFCItem) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.DatasetID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DatasetFCItem) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_draft\", thrift.BOOL, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsDraft); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *DatasetFCItem) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetFCItem(%+v)\", *p)\n\n}\n\ntype GetLLMNodeFCSettingDetailRequest struct {\n\tWorkflowID   string            `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tSpaceID      string            `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tPluginList   []*PluginFCItem   `thrift:\"plugin_list,3,optional\" form:\"plugin_list\" json:\"plugin_list,omitempty\" query:\"plugin_list\"`\n\tWorkflowList []*WorkflowFCItem `thrift:\"workflow_list,4,optional\" form:\"workflow_list\" json:\"workflow_list,omitempty\" query:\"workflow_list\"`\n\tDatasetList  []*DatasetFCItem  `thrift:\"dataset_list,5,optional\" form:\"dataset_list\" json:\"dataset_list,omitempty\" query:\"dataset_list\"`\n\tBase         *base.Base        `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetLLMNodeFCSettingDetailRequest() *GetLLMNodeFCSettingDetailRequest {\n\treturn &GetLLMNodeFCSettingDetailRequest{}\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) InitDefault() {\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar GetLLMNodeFCSettingDetailRequest_PluginList_DEFAULT []*PluginFCItem\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) GetPluginList() (v []*PluginFCItem) {\n\tif !p.IsSetPluginList() {\n\t\treturn GetLLMNodeFCSettingDetailRequest_PluginList_DEFAULT\n\t}\n\treturn p.PluginList\n}\n\nvar GetLLMNodeFCSettingDetailRequest_WorkflowList_DEFAULT []*WorkflowFCItem\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) GetWorkflowList() (v []*WorkflowFCItem) {\n\tif !p.IsSetWorkflowList() {\n\t\treturn GetLLMNodeFCSettingDetailRequest_WorkflowList_DEFAULT\n\t}\n\treturn p.WorkflowList\n}\n\nvar GetLLMNodeFCSettingDetailRequest_DatasetList_DEFAULT []*DatasetFCItem\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) GetDatasetList() (v []*DatasetFCItem) {\n\tif !p.IsSetDatasetList() {\n\t\treturn GetLLMNodeFCSettingDetailRequest_DatasetList_DEFAULT\n\t}\n\treturn p.DatasetList\n}\n\nvar GetLLMNodeFCSettingDetailRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetLLMNodeFCSettingDetailRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetLLMNodeFCSettingDetailRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"space_id\",\n\t3:   \"plugin_list\",\n\t4:   \"workflow_list\",\n\t5:   \"dataset_list\",\n\t255: \"Base\",\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) IsSetPluginList() bool {\n\treturn p.PluginList != nil\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) IsSetWorkflowList() bool {\n\treturn p.WorkflowList != nil\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) IsSetDatasetList() bool {\n\treturn p.DatasetList != nil\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetLLMNodeFCSettingDetailRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetLLMNodeFCSettingDetailRequest[fieldId]))\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingDetailRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingDetailRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PluginFCItem, 0, size)\n\tvalues := make([]PluginFCItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginList = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingDetailRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowFCItem, 0, size)\n\tvalues := make([]WorkflowFCItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowList = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingDetailRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*DatasetFCItem, 0, size)\n\tvalues := make([]DatasetFCItem, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DatasetList = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingDetailRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetLLMNodeFCSettingDetailRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingDetailRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingDetailRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetPluginList() {\n\t\tif err = oprot.WriteFieldBegin(\"plugin_list\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.PluginList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingDetailRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowList() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_list\", thrift.LIST, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.WorkflowList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingDetailRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDatasetList() {\n\t\tif err = oprot.WriteFieldBegin(\"dataset_list\", thrift.LIST, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.DatasetList)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.DatasetList {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingDetailRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetLLMNodeFCSettingDetailRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetLLMNodeFCSettingDetailRequest(%+v)\", *p)\n\n}\n\ntype PluginDetail struct {\n\tID                string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tIconURL           string `thrift:\"icon_url,2\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tDescription       string `thrift:\"description,3\" form:\"description\" json:\"description\" query:\"description\"`\n\tIsOfficial        bool   `thrift:\"is_official,4\" form:\"is_official\" json:\"is_official\" query:\"is_official\"`\n\tName              string `thrift:\"name,5\" form:\"name\" json:\"name\" query:\"name\"`\n\tPluginStatus      int64  `thrift:\"plugin_status,6\" form:\"plugin_status\" json:\"plugin_status\" query:\"plugin_status\"`\n\tPluginType        int64  `thrift:\"plugin_type,7\" form:\"plugin_type\" json:\"plugin_type\" query:\"plugin_type\"`\n\tLatestVersionTs   int64  `thrift:\"latest_version_ts,8\" form:\"latest_version_ts\" json:\"latest_version_ts\" query:\"latest_version_ts\"`\n\tLatestVersionName string `thrift:\"latest_version_name,9\" form:\"latest_version_name\" json:\"latest_version_name\" query:\"latest_version_name\"`\n\tVersionName       string `thrift:\"version_name,10\" form:\"version_name\" json:\"version_name\" query:\"version_name\"`\n}\n\nfunc NewPluginDetail() *PluginDetail {\n\treturn &PluginDetail{}\n}\n\nfunc (p *PluginDetail) InitDefault() {\n}\n\nfunc (p *PluginDetail) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *PluginDetail) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *PluginDetail) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *PluginDetail) GetIsOfficial() (v bool) {\n\treturn p.IsOfficial\n}\n\nfunc (p *PluginDetail) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *PluginDetail) GetPluginStatus() (v int64) {\n\treturn p.PluginStatus\n}\n\nfunc (p *PluginDetail) GetPluginType() (v int64) {\n\treturn p.PluginType\n}\n\nfunc (p *PluginDetail) GetLatestVersionTs() (v int64) {\n\treturn p.LatestVersionTs\n}\n\nfunc (p *PluginDetail) GetLatestVersionName() (v string) {\n\treturn p.LatestVersionName\n}\n\nfunc (p *PluginDetail) GetVersionName() (v string) {\n\treturn p.VersionName\n}\n\nvar fieldIDToName_PluginDetail = map[int16]string{\n\t1:  \"id\",\n\t2:  \"icon_url\",\n\t3:  \"description\",\n\t4:  \"is_official\",\n\t5:  \"name\",\n\t6:  \"plugin_status\",\n\t7:  \"plugin_type\",\n\t8:  \"latest_version_ts\",\n\t9:  \"latest_version_name\",\n\t10: \"version_name\",\n}\n\nfunc (p *PluginDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PluginDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PluginDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *PluginDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *PluginDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *PluginDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsOfficial = _field\n\treturn nil\n}\nfunc (p *PluginDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *PluginDetail) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginStatus = _field\n\treturn nil\n}\nfunc (p *PluginDetail) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginType = _field\n\treturn nil\n}\nfunc (p *PluginDetail) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LatestVersionTs = _field\n\treturn nil\n}\nfunc (p *PluginDetail) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LatestVersionName = _field\n\treturn nil\n}\nfunc (p *PluginDetail) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VersionName = _field\n\treturn nil\n}\n\nfunc (p *PluginDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PluginDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PluginDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PluginDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PluginDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PluginDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_official\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsOfficial); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *PluginDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *PluginDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_status\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginStatus); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *PluginDetail) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_type\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PluginType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *PluginDetail) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"latest_version_ts\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.LatestVersionTs); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *PluginDetail) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"latest_version_name\", thrift.STRING, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LatestVersionName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *PluginDetail) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version_name\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VersionName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\n\nfunc (p *PluginDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PluginDetail(%+v)\", *p)\n\n}\n\ntype APIDetail struct {\n\t// API ID\n\tID          string          `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tName        string          `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tDescription string          `thrift:\"description,3\" form:\"description\" json:\"description\" query:\"description\"`\n\tParameters  []*APIParameter `thrift:\"parameters,4\" form:\"parameters\" json:\"parameters\" query:\"parameters\"`\n\tPluginID    string          `thrift:\"plugin_id,5\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n}\n\nfunc NewAPIDetail() *APIDetail {\n\treturn &APIDetail{}\n}\n\nfunc (p *APIDetail) InitDefault() {\n}\n\nfunc (p *APIDetail) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *APIDetail) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *APIDetail) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *APIDetail) GetParameters() (v []*APIParameter) {\n\treturn p.Parameters\n}\n\nfunc (p *APIDetail) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nvar fieldIDToName_APIDetail = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"description\",\n\t4: \"parameters\",\n\t5: \"plugin_id\",\n}\n\nfunc (p *APIDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_APIDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *APIDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *APIDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *APIDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *APIDetail) ReadField4(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*APIParameter, 0, size)\n\tvalues := make([]APIParameter, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\nfunc (p *APIDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\n\nfunc (p *APIDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"APIDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *APIDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *APIDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *APIDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *APIDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"parameters\", thrift.LIST, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Parameters)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Parameters {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *APIDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *APIDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"APIDetail(%+v)\", *p)\n\n}\n\ntype WorkflowDetail struct {\n\tID                string     `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tPluginID          string     `thrift:\"plugin_id,2\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tDescription       string     `thrift:\"description,3\" form:\"description\" json:\"description\" query:\"description\"`\n\tIconURL           string     `thrift:\"icon_url,4\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tIsOfficial        bool       `thrift:\"is_official,5\" form:\"is_official\" json:\"is_official\" query:\"is_official\"`\n\tName              string     `thrift:\"name,6\" form:\"name\" json:\"name\" query:\"name\"`\n\tStatus            int64      `thrift:\"status,7\" form:\"status\" json:\"status\" query:\"status\"`\n\tType              int64      `thrift:\"type,8\" form:\"type\" json:\"type\" query:\"type\"`\n\tAPIDetail         *APIDetail `thrift:\"api_detail,9\" form:\"api_detail\" json:\"api_detail\" query:\"api_detail\"`\n\tLatestVersionName string     `thrift:\"latest_version_name,10\" form:\"latest_version_name\" json:\"latest_version_name\" query:\"latest_version_name\"`\n\tFlowMode          int64      `thrift:\"flow_mode,11\" form:\"flow_mode\" json:\"flow_mode\" query:\"flow_mode\"`\n}\n\nfunc NewWorkflowDetail() *WorkflowDetail {\n\treturn &WorkflowDetail{}\n}\n\nfunc (p *WorkflowDetail) InitDefault() {\n}\n\nfunc (p *WorkflowDetail) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *WorkflowDetail) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *WorkflowDetail) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *WorkflowDetail) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *WorkflowDetail) GetIsOfficial() (v bool) {\n\treturn p.IsOfficial\n}\n\nfunc (p *WorkflowDetail) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *WorkflowDetail) GetStatus() (v int64) {\n\treturn p.Status\n}\n\nfunc (p *WorkflowDetail) GetType() (v int64) {\n\treturn p.Type\n}\n\nvar WorkflowDetail_APIDetail_DEFAULT *APIDetail\n\nfunc (p *WorkflowDetail) GetAPIDetail() (v *APIDetail) {\n\tif !p.IsSetAPIDetail() {\n\t\treturn WorkflowDetail_APIDetail_DEFAULT\n\t}\n\treturn p.APIDetail\n}\n\nfunc (p *WorkflowDetail) GetLatestVersionName() (v string) {\n\treturn p.LatestVersionName\n}\n\nfunc (p *WorkflowDetail) GetFlowMode() (v int64) {\n\treturn p.FlowMode\n}\n\nvar fieldIDToName_WorkflowDetail = map[int16]string{\n\t1:  \"id\",\n\t2:  \"plugin_id\",\n\t3:  \"description\",\n\t4:  \"icon_url\",\n\t5:  \"is_official\",\n\t6:  \"name\",\n\t7:  \"status\",\n\t8:  \"type\",\n\t9:  \"api_detail\",\n\t10: \"latest_version_name\",\n\t11: \"flow_mode\",\n}\n\nfunc (p *WorkflowDetail) IsSetAPIDetail() bool {\n\treturn p.APIDetail != nil\n}\n\nfunc (p *WorkflowDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsOfficial = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Status = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField9(iprot thrift.TProtocol) error {\n\t_field := NewAPIDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.APIDetail = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.LatestVersionName = _field\n\treturn nil\n}\nfunc (p *WorkflowDetail) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FlowMode = _field\n\treturn nil\n}\n\nfunc (p *WorkflowDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"is_official\", thrift.BOOL, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsOfficial); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"status\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Status); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"type\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_detail\", thrift.STRUCT, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.APIDetail.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"latest_version_name\", thrift.STRING, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.LatestVersionName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *WorkflowDetail) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"flow_mode\", thrift.I64, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.FlowMode); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\n\nfunc (p *WorkflowDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowDetail(%+v)\", *p)\n\n}\n\ntype DatasetDetail struct {\n\tID         string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tIconURL    string `thrift:\"icon_url,2\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tName       string `thrift:\"name,3\" form:\"name\" json:\"name\" query:\"name\"`\n\tFormatType int64  `thrift:\"format_type,4\" form:\"format_type\" json:\"format_type\" query:\"format_type\"`\n}\n\nfunc NewDatasetDetail() *DatasetDetail {\n\treturn &DatasetDetail{}\n}\n\nfunc (p *DatasetDetail) InitDefault() {\n}\n\nfunc (p *DatasetDetail) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *DatasetDetail) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *DatasetDetail) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *DatasetDetail) GetFormatType() (v int64) {\n\treturn p.FormatType\n}\n\nvar fieldIDToName_DatasetDetail = map[int16]string{\n\t1: \"id\",\n\t2: \"icon_url\",\n\t3: \"name\",\n\t4: \"format_type\",\n}\n\nfunc (p *DatasetDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DatasetDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DatasetDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *DatasetDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *DatasetDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *DatasetDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.FormatType = _field\n\treturn nil\n}\n\nfunc (p *DatasetDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DatasetDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DatasetDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DatasetDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DatasetDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DatasetDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"format_type\", thrift.I64, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.FormatType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *DatasetDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DatasetDetail(%+v)\", *p)\n\n}\n\ntype GetLLMNodeFCSettingDetailResponse struct {\n\t// pluginid -> value\n\tPluginDetailMap map[string]*PluginDetail `thrift:\"plugin_detail_map,1\" form:\"plugin_detail_map\" json:\"plugin_detail_map\" query:\"plugin_detail_map\"`\n\t// apiid -> value\n\tPluginAPIDetailMap map[string]*APIDetail `thrift:\"plugin_api_detail_map,2\" form:\"plugin_api_detail_map\" json:\"plugin_api_detail_map\" query:\"plugin_api_detail_map\"`\n\t// workflowid-> value\n\tWorkflowDetailMap map[string]*WorkflowDetail `thrift:\"workflow_detail_map,3\" form:\"workflow_detail_map\" json:\"workflow_detail_map\" query:\"workflow_detail_map\"`\n\t// datasetid -> value\n\tDatasetDetailMap map[string]*DatasetDetail `thrift:\"dataset_detail_map,4\" form:\"dataset_detail_map\" json:\"dataset_detail_map\" query:\"dataset_detail_map\"`\n\tCode             int64                     `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg              string                    `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp         *base.BaseResp            `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetLLMNodeFCSettingDetailResponse() *GetLLMNodeFCSettingDetailResponse {\n\treturn &GetLLMNodeFCSettingDetailResponse{}\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) InitDefault() {\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) GetPluginDetailMap() (v map[string]*PluginDetail) {\n\treturn p.PluginDetailMap\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) GetPluginAPIDetailMap() (v map[string]*APIDetail) {\n\treturn p.PluginAPIDetailMap\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) GetWorkflowDetailMap() (v map[string]*WorkflowDetail) {\n\treturn p.WorkflowDetailMap\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) GetDatasetDetailMap() (v map[string]*DatasetDetail) {\n\treturn p.DatasetDetailMap\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetLLMNodeFCSettingDetailResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetLLMNodeFCSettingDetailResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetLLMNodeFCSettingDetailResponse = map[int16]string{\n\t1:   \"plugin_detail_map\",\n\t2:   \"plugin_api_detail_map\",\n\t3:   \"workflow_detail_map\",\n\t4:   \"dataset_detail_map\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetLLMNodeFCSettingDetailResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetLLMNodeFCSettingDetailResponse[fieldId]))\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*PluginDetail, size)\n\tvalues := make([]PluginDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginDetailMap = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) ReadField2(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*APIDetail, size)\n\tvalues := make([]APIDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginAPIDetailMap = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*WorkflowDetail, size)\n\tvalues := make([]WorkflowDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowDetailMap = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*DatasetDetail, size)\n\tvalues := make([]DatasetDetail, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.DatasetDetailMap = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetLLMNodeFCSettingDetailResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_detail_map\", thrift.MAP, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.PluginDetailMap)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.PluginDetailMap {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_api_detail_map\", thrift.MAP, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.PluginAPIDetailMap)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.PluginAPIDetailMap {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_detail_map\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.WorkflowDetailMap)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.WorkflowDetailMap {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"dataset_detail_map\", thrift.MAP, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.DatasetDetailMap)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.DatasetDetailMap {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *GetLLMNodeFCSettingDetailResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetLLMNodeFCSettingDetailResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetLLMNodeFCSettingDetailResponse(%+v)\", *p)\n\n}\n\ntype CreateProjectConversationDefRequest struct {\n\tProjectID        string     `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,required\" query:\"project_id,required\"`\n\tConversationName string     `thrift:\"conversation_name,2,required\" form:\"conversation_name,required\" json:\"conversation_name,required\" query:\"conversation_name,required\"`\n\tSpaceID          string     `thrift:\"space_id,3,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tBase             *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCreateProjectConversationDefRequest() *CreateProjectConversationDefRequest {\n\treturn &CreateProjectConversationDefRequest{}\n}\n\nfunc (p *CreateProjectConversationDefRequest) InitDefault() {\n}\n\nfunc (p *CreateProjectConversationDefRequest) GetProjectID() (v string) {\n\treturn p.ProjectID\n}\n\nfunc (p *CreateProjectConversationDefRequest) GetConversationName() (v string) {\n\treturn p.ConversationName\n}\n\nfunc (p *CreateProjectConversationDefRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar CreateProjectConversationDefRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateProjectConversationDefRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateProjectConversationDefRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateProjectConversationDefRequest = map[int16]string{\n\t1:   \"project_id\",\n\t2:   \"conversation_name\",\n\t3:   \"space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateProjectConversationDefRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateProjectConversationDefRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\tvar issetConversationName bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConversationName {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateProjectConversationDefRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateProjectConversationDefRequest[fieldId]))\n}\n\nfunc (p *CreateProjectConversationDefRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *CreateProjectConversationDefRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationName = _field\n\treturn nil\n}\nfunc (p *CreateProjectConversationDefRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *CreateProjectConversationDefRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateProjectConversationDefRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateProjectConversationDefRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateProjectConversationDefRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateProjectConversationDefRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConversationName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateProjectConversationDefRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateProjectConversationDefRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateProjectConversationDefRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateProjectConversationDefRequest(%+v)\", *p)\n\n}\n\ntype CreateProjectConversationDefResponse struct {\n\tUniqueID string         `thrift:\"unique_id,1\" form:\"unique_id\" json:\"unique_id\" query:\"unique_id\"`\n\tSpaceID  string         `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCreateProjectConversationDefResponse() *CreateProjectConversationDefResponse {\n\treturn &CreateProjectConversationDefResponse{}\n}\n\nfunc (p *CreateProjectConversationDefResponse) InitDefault() {\n}\n\nfunc (p *CreateProjectConversationDefResponse) GetUniqueID() (v string) {\n\treturn p.UniqueID\n}\n\nfunc (p *CreateProjectConversationDefResponse) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *CreateProjectConversationDefResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CreateProjectConversationDefResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CreateProjectConversationDefResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateProjectConversationDefResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateProjectConversationDefResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateProjectConversationDefResponse = map[int16]string{\n\t1:   \"unique_id\",\n\t2:   \"space_id\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateProjectConversationDefResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateProjectConversationDefResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateProjectConversationDefResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateProjectConversationDefResponse[fieldId]))\n}\n\nfunc (p *CreateProjectConversationDefResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UniqueID = _field\n\treturn nil\n}\nfunc (p *CreateProjectConversationDefResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *CreateProjectConversationDefResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateProjectConversationDefResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateProjectConversationDefResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateProjectConversationDefResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateProjectConversationDefResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateProjectConversationDefResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"unique_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UniqueID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateProjectConversationDefResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateProjectConversationDefResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CreateProjectConversationDefResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CreateProjectConversationDefResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateProjectConversationDefResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateProjectConversationDefResponse(%+v)\", *p)\n\n}\n\ntype UpdateProjectConversationDefRequest struct {\n\tProjectID        string     `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,required\" query:\"project_id,required\"`\n\tUniqueID         string     `thrift:\"unique_id,2,required\" form:\"unique_id,required\" json:\"unique_id,required\" query:\"unique_id,required\"`\n\tConversationName string     `thrift:\"conversation_name,3,required\" form:\"conversation_name,required\" json:\"conversation_name,required\" query:\"conversation_name,required\"`\n\tSpaceID          string     `thrift:\"space_id,4,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tBase             *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewUpdateProjectConversationDefRequest() *UpdateProjectConversationDefRequest {\n\treturn &UpdateProjectConversationDefRequest{}\n}\n\nfunc (p *UpdateProjectConversationDefRequest) InitDefault() {\n}\n\nfunc (p *UpdateProjectConversationDefRequest) GetProjectID() (v string) {\n\treturn p.ProjectID\n}\n\nfunc (p *UpdateProjectConversationDefRequest) GetUniqueID() (v string) {\n\treturn p.UniqueID\n}\n\nfunc (p *UpdateProjectConversationDefRequest) GetConversationName() (v string) {\n\treturn p.ConversationName\n}\n\nfunc (p *UpdateProjectConversationDefRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar UpdateProjectConversationDefRequest_Base_DEFAULT *base.Base\n\nfunc (p *UpdateProjectConversationDefRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn UpdateProjectConversationDefRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_UpdateProjectConversationDefRequest = map[int16]string{\n\t1:   \"project_id\",\n\t2:   \"unique_id\",\n\t3:   \"conversation_name\",\n\t4:   \"space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *UpdateProjectConversationDefRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *UpdateProjectConversationDefRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\tvar issetUniqueID bool = false\n\tvar issetConversationName bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUniqueID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetConversationName = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUniqueID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetConversationName {\n\t\tfieldId = 3\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 4\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateProjectConversationDefRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateProjectConversationDefRequest[fieldId]))\n}\n\nfunc (p *UpdateProjectConversationDefRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *UpdateProjectConversationDefRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UniqueID = _field\n\treturn nil\n}\nfunc (p *UpdateProjectConversationDefRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationName = _field\n\treturn nil\n}\nfunc (p *UpdateProjectConversationDefRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *UpdateProjectConversationDefRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *UpdateProjectConversationDefRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateProjectConversationDefRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateProjectConversationDefRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UpdateProjectConversationDefRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"unique_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UniqueID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *UpdateProjectConversationDefRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_name\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConversationName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *UpdateProjectConversationDefRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *UpdateProjectConversationDefRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateProjectConversationDefRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateProjectConversationDefRequest(%+v)\", *p)\n\n}\n\ntype UpdateProjectConversationDefResponse struct {\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewUpdateProjectConversationDefResponse() *UpdateProjectConversationDefResponse {\n\treturn &UpdateProjectConversationDefResponse{}\n}\n\nfunc (p *UpdateProjectConversationDefResponse) InitDefault() {\n}\n\nfunc (p *UpdateProjectConversationDefResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *UpdateProjectConversationDefResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar UpdateProjectConversationDefResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *UpdateProjectConversationDefResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn UpdateProjectConversationDefResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_UpdateProjectConversationDefResponse = map[int16]string{\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *UpdateProjectConversationDefResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *UpdateProjectConversationDefResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UpdateProjectConversationDefResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_UpdateProjectConversationDefResponse[fieldId]))\n}\n\nfunc (p *UpdateProjectConversationDefResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *UpdateProjectConversationDefResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *UpdateProjectConversationDefResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *UpdateProjectConversationDefResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateProjectConversationDefResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UpdateProjectConversationDefResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *UpdateProjectConversationDefResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *UpdateProjectConversationDefResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *UpdateProjectConversationDefResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UpdateProjectConversationDefResponse(%+v)\", *p)\n\n}\n\ntype DeleteProjectConversationDefRequest struct {\n\tProjectID string `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,required\" query:\"project_id,required\"`\n\tUniqueID  string `thrift:\"unique_id,2,required\" form:\"unique_id,required\" json:\"unique_id,required\" query:\"unique_id,required\"`\n\t// Replace the table, which one to replace each wf draft with. If not replaced, success = false, replace will return the list to be replaced.\n\tReplace   map[string]string `thrift:\"replace,3\" form:\"replace\" json:\"replace\" query:\"replace\"`\n\tCheckOnly bool              `thrift:\"check_only,4\" form:\"check_only\" json:\"check_only\" query:\"check_only\"`\n\tSpaceID   string            `thrift:\"space_id,5,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\tBase      *base.Base        `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteProjectConversationDefRequest() *DeleteProjectConversationDefRequest {\n\treturn &DeleteProjectConversationDefRequest{}\n}\n\nfunc (p *DeleteProjectConversationDefRequest) InitDefault() {\n}\n\nfunc (p *DeleteProjectConversationDefRequest) GetProjectID() (v string) {\n\treturn p.ProjectID\n}\n\nfunc (p *DeleteProjectConversationDefRequest) GetUniqueID() (v string) {\n\treturn p.UniqueID\n}\n\nfunc (p *DeleteProjectConversationDefRequest) GetReplace() (v map[string]string) {\n\treturn p.Replace\n}\n\nfunc (p *DeleteProjectConversationDefRequest) GetCheckOnly() (v bool) {\n\treturn p.CheckOnly\n}\n\nfunc (p *DeleteProjectConversationDefRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar DeleteProjectConversationDefRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteProjectConversationDefRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteProjectConversationDefRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteProjectConversationDefRequest = map[int16]string{\n\t1:   \"project_id\",\n\t2:   \"unique_id\",\n\t3:   \"replace\",\n\t4:   \"check_only\",\n\t5:   \"space_id\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteProjectConversationDefRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteProjectConversationDefRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\tvar issetUniqueID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetUniqueID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetUniqueID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 5\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteProjectConversationDefRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteProjectConversationDefRequest[fieldId]))\n}\n\nfunc (p *DeleteProjectConversationDefRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *DeleteProjectConversationDefRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UniqueID = _field\n\treturn nil\n}\nfunc (p *DeleteProjectConversationDefRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Replace = _field\n\treturn nil\n}\nfunc (p *DeleteProjectConversationDefRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CheckOnly = _field\n\treturn nil\n}\nfunc (p *DeleteProjectConversationDefRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *DeleteProjectConversationDefRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteProjectConversationDefRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteProjectConversationDefRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteProjectConversationDefRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteProjectConversationDefRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"unique_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UniqueID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteProjectConversationDefRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"replace\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Replace)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Replace {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *DeleteProjectConversationDefRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"check_only\", thrift.BOOL, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.CheckOnly); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DeleteProjectConversationDefRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *DeleteProjectConversationDefRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteProjectConversationDefRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteProjectConversationDefRequest(%+v)\", *p)\n\n}\n\ntype DeleteProjectConversationDefResponse struct {\n\tSuccess bool `thrift:\"success,1\" form:\"success\" json:\"success\" query:\"success\"`\n\t// If no replacemap is passed, it will fail, returning the wf that needs to be replaced\n\tNeedReplace []*Workflow    `thrift:\"need_replace,2\" form:\"need_replace\" json:\"need_replace\" query:\"need_replace\"`\n\tCode        int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg         string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp    *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewDeleteProjectConversationDefResponse() *DeleteProjectConversationDefResponse {\n\treturn &DeleteProjectConversationDefResponse{}\n}\n\nfunc (p *DeleteProjectConversationDefResponse) InitDefault() {\n}\n\nfunc (p *DeleteProjectConversationDefResponse) GetSuccess() (v bool) {\n\treturn p.Success\n}\n\nfunc (p *DeleteProjectConversationDefResponse) GetNeedReplace() (v []*Workflow) {\n\treturn p.NeedReplace\n}\n\nfunc (p *DeleteProjectConversationDefResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *DeleteProjectConversationDefResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar DeleteProjectConversationDefResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteProjectConversationDefResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteProjectConversationDefResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteProjectConversationDefResponse = map[int16]string{\n\t1:   \"success\",\n\t2:   \"need_replace\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteProjectConversationDefResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteProjectConversationDefResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteProjectConversationDefResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteProjectConversationDefResponse[fieldId]))\n}\n\nfunc (p *DeleteProjectConversationDefResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Success = _field\n\treturn nil\n}\nfunc (p *DeleteProjectConversationDefResponse) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Workflow, 0, size)\n\tvalues := make([]Workflow, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.NeedReplace = _field\n\treturn nil\n}\nfunc (p *DeleteProjectConversationDefResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *DeleteProjectConversationDefResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *DeleteProjectConversationDefResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteProjectConversationDefResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteProjectConversationDefResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteProjectConversationDefResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"success\", thrift.BOOL, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.Success); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteProjectConversationDefResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"need_replace\", thrift.LIST, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.NeedReplace)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.NeedReplace {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteProjectConversationDefResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *DeleteProjectConversationDefResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *DeleteProjectConversationDefResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteProjectConversationDefResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteProjectConversationDefResponse(%+v)\", *p)\n\n}\n\ntype ListProjectConversationRequest struct {\n\tProjectID string `thrift:\"project_id,1,required\" form:\"project_id,required\" json:\"project_id,required\" query:\"project_id,required\"`\n\t// 0 = created in project (static session), 1 = created through wf node (dynamic session)\n\tCreateMethod CreateMethod `thrift:\"create_method,2\" form:\"create_method\" json:\"create_method\" query:\"create_method\"`\n\t// 0 = wf node practice run created 1 = wf node run after release\n\tCreateEnv CreateEnv `thrift:\"create_env,3\" form:\"create_env\" json:\"create_env\" query:\"create_env\"`\n\t// Paging offset, do not pass from the first item\n\tCursor string `thrift:\"cursor,4\" form:\"cursor\" json:\"cursor\" query:\"cursor\"`\n\t// number of pulls at one time\n\tLimit   int64  `thrift:\"limit,5\" form:\"limit\" json:\"limit\" query:\"limit\"`\n\tSpaceID string `thrift:\"space_id,6,required\" form:\"space_id,required\" json:\"space_id,required\" query:\"space_id,required\"`\n\t// conversationName fuzzy search\n\tNameLike string `thrift:\"nameLike,7\" form:\"nameLike\" json:\"nameLike\" query:\"nameLike\"`\n\t// create_env = 1, pass the corresponding channel id, the current default 1024 (openapi)\n\tConnectorID string `thrift:\"connector_id,8\" form:\"connector_id\" json:\"connector_id\" query:\"connector_id\"`\n\t// Project version\n\tProjectVersion *string    `thrift:\"project_version,9,optional\" form:\"project_version\" json:\"project_version,omitempty\" query:\"project_version\"`\n\tBase           *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewListProjectConversationRequest() *ListProjectConversationRequest {\n\treturn &ListProjectConversationRequest{}\n}\n\nfunc (p *ListProjectConversationRequest) InitDefault() {\n}\n\nfunc (p *ListProjectConversationRequest) GetProjectID() (v string) {\n\treturn p.ProjectID\n}\n\nfunc (p *ListProjectConversationRequest) GetCreateMethod() (v CreateMethod) {\n\treturn p.CreateMethod\n}\n\nfunc (p *ListProjectConversationRequest) GetCreateEnv() (v CreateEnv) {\n\treturn p.CreateEnv\n}\n\nfunc (p *ListProjectConversationRequest) GetCursor() (v string) {\n\treturn p.Cursor\n}\n\nfunc (p *ListProjectConversationRequest) GetLimit() (v int64) {\n\treturn p.Limit\n}\n\nfunc (p *ListProjectConversationRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nfunc (p *ListProjectConversationRequest) GetNameLike() (v string) {\n\treturn p.NameLike\n}\n\nfunc (p *ListProjectConversationRequest) GetConnectorID() (v string) {\n\treturn p.ConnectorID\n}\n\nvar ListProjectConversationRequest_ProjectVersion_DEFAULT string\n\nfunc (p *ListProjectConversationRequest) GetProjectVersion() (v string) {\n\tif !p.IsSetProjectVersion() {\n\t\treturn ListProjectConversationRequest_ProjectVersion_DEFAULT\n\t}\n\treturn *p.ProjectVersion\n}\n\nvar ListProjectConversationRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListProjectConversationRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListProjectConversationRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListProjectConversationRequest = map[int16]string{\n\t1:   \"project_id\",\n\t2:   \"create_method\",\n\t3:   \"create_env\",\n\t4:   \"cursor\",\n\t5:   \"limit\",\n\t6:   \"space_id\",\n\t7:   \"nameLike\",\n\t8:   \"connector_id\",\n\t9:   \"project_version\",\n\t255: \"Base\",\n}\n\nfunc (p *ListProjectConversationRequest) IsSetProjectVersion() bool {\n\treturn p.ProjectVersion != nil\n}\n\nfunc (p *ListProjectConversationRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListProjectConversationRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetProjectID bool = false\n\tvar issetSpaceID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetProjectID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetProjectID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 6\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListProjectConversationRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListProjectConversationRequest[fieldId]))\n}\n\nfunc (p *ListProjectConversationRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field CreateMethod\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = CreateMethod(v)\n\t}\n\tp.CreateMethod = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field CreateEnv\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = CreateEnv(v)\n\t}\n\tp.CreateEnv = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Cursor = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Limit = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NameLike = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectVersion = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListProjectConversationRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListProjectConversationRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListProjectConversationRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListProjectConversationRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_method\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.CreateMethod)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListProjectConversationRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_env\", thrift.I32, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.CreateEnv)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListProjectConversationRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"cursor\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Cursor); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListProjectConversationRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"limit\", thrift.I64, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Limit); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListProjectConversationRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ListProjectConversationRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"nameLike\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NameLike); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ListProjectConversationRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connector_id\", thrift.STRING, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ListProjectConversationRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"project_version\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ListProjectConversationRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListProjectConversationRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListProjectConversationRequest(%+v)\", *p)\n\n}\n\ntype ProjectConversation struct {\n\tUniqueID         string `thrift:\"unique_id,1\" form:\"unique_id\" json:\"unique_id\" query:\"unique_id\"`\n\tConversationName string `thrift:\"conversation_name,2\" form:\"conversation_name\" json:\"conversation_name\" query:\"conversation_name\"`\n\t// For your own conversationid in the coze channel\n\tConversationID          string `thrift:\"conversation_id,3\" form:\"conversation_id\" json:\"conversation_id\" query:\"conversation_id\"`\n\tReleaseConversationName string `thrift:\"release_conversation_name,4\" form:\"release_conversation_name\" json:\"release_conversation_name\" query:\"release_conversation_name\"`\n}\n\nfunc NewProjectConversation() *ProjectConversation {\n\treturn &ProjectConversation{}\n}\n\nfunc (p *ProjectConversation) InitDefault() {\n}\n\nfunc (p *ProjectConversation) GetUniqueID() (v string) {\n\treturn p.UniqueID\n}\n\nfunc (p *ProjectConversation) GetConversationName() (v string) {\n\treturn p.ConversationName\n}\n\nfunc (p *ProjectConversation) GetConversationID() (v string) {\n\treturn p.ConversationID\n}\n\nfunc (p *ProjectConversation) GetReleaseConversationName() (v string) {\n\treturn p.ReleaseConversationName\n}\n\nvar fieldIDToName_ProjectConversation = map[int16]string{\n\t1: \"unique_id\",\n\t2: \"conversation_name\",\n\t3: \"conversation_id\",\n\t4: \"release_conversation_name\",\n}\n\nfunc (p *ProjectConversation) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ProjectConversation[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ProjectConversation) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UniqueID = _field\n\treturn nil\n}\nfunc (p *ProjectConversation) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationName = _field\n\treturn nil\n}\nfunc (p *ProjectConversation) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ProjectConversation) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ReleaseConversationName = _field\n\treturn nil\n}\n\nfunc (p *ProjectConversation) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ProjectConversation\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ProjectConversation) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"unique_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.UniqueID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ProjectConversation) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConversationName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ProjectConversation) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"conversation_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConversationID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ProjectConversation) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"release_conversation_name\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ReleaseConversationName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *ProjectConversation) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ProjectConversation(%+v)\", *p)\n\n}\n\ntype ListProjectConversationResponse struct {\n\tData []*ProjectConversation `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\t// Cursor, empty means there is no next page, bring this field when turning the page\n\tCursor   string         `thrift:\"cursor,2\" form:\"cursor\" json:\"cursor\" query:\"cursor\"`\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewListProjectConversationResponse() *ListProjectConversationResponse {\n\treturn &ListProjectConversationResponse{}\n}\n\nfunc (p *ListProjectConversationResponse) InitDefault() {\n}\n\nfunc (p *ListProjectConversationResponse) GetData() (v []*ProjectConversation) {\n\treturn p.Data\n}\n\nfunc (p *ListProjectConversationResponse) GetCursor() (v string) {\n\treturn p.Cursor\n}\n\nfunc (p *ListProjectConversationResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListProjectConversationResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ListProjectConversationResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListProjectConversationResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListProjectConversationResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListProjectConversationResponse = map[int16]string{\n\t1:   \"data\",\n\t2:   \"cursor\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListProjectConversationResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListProjectConversationResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListProjectConversationResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListProjectConversationResponse[fieldId]))\n}\n\nfunc (p *ListProjectConversationResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ProjectConversation, 0, size)\n\tvalues := make([]ProjectConversation, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Cursor = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListProjectConversationResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListProjectConversationResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListProjectConversationResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListProjectConversationResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListProjectConversationResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"cursor\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Cursor); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListProjectConversationResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListProjectConversationResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ListProjectConversationResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListProjectConversationResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListProjectConversationResponse(%+v)\", *p)\n\n}\n\n// suggest\ntype SuggestReplyInfo struct {\n\t// Coze Auto-Suggestion\n\tSuggestReplyMode *SuggestReplyInfoMode `thrift:\"SuggestReplyMode,1,optional\" json:\"suggest_reply_mode\" form:\"SuggestReplyMode\" query:\"SuggestReplyMode\"`\n\t// user-defined suggestion questions\n\tCustomizedSuggestPrompt *string `thrift:\"CustomizedSuggestPrompt,2,optional\" json:\"customized_suggest_prompt\" form:\"CustomizedSuggestPrompt\" query:\"CustomizedSuggestPrompt\"`\n}\n\nfunc NewSuggestReplyInfo() *SuggestReplyInfo {\n\treturn &SuggestReplyInfo{}\n}\n\nfunc (p *SuggestReplyInfo) InitDefault() {\n}\n\nvar SuggestReplyInfo_SuggestReplyMode_DEFAULT SuggestReplyInfoMode\n\nfunc (p *SuggestReplyInfo) GetSuggestReplyMode() (v SuggestReplyInfoMode) {\n\tif !p.IsSetSuggestReplyMode() {\n\t\treturn SuggestReplyInfo_SuggestReplyMode_DEFAULT\n\t}\n\treturn *p.SuggestReplyMode\n}\n\nvar SuggestReplyInfo_CustomizedSuggestPrompt_DEFAULT string\n\nfunc (p *SuggestReplyInfo) GetCustomizedSuggestPrompt() (v string) {\n\tif !p.IsSetCustomizedSuggestPrompt() {\n\t\treturn SuggestReplyInfo_CustomizedSuggestPrompt_DEFAULT\n\t}\n\treturn *p.CustomizedSuggestPrompt\n}\n\nvar fieldIDToName_SuggestReplyInfo = map[int16]string{\n\t1: \"SuggestReplyMode\",\n\t2: \"CustomizedSuggestPrompt\",\n}\n\nfunc (p *SuggestReplyInfo) IsSetSuggestReplyMode() bool {\n\treturn p.SuggestReplyMode != nil\n}\n\nfunc (p *SuggestReplyInfo) IsSetCustomizedSuggestPrompt() bool {\n\treturn p.CustomizedSuggestPrompt != nil\n}\n\nfunc (p *SuggestReplyInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_SuggestReplyInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *SuggestReplyInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *SuggestReplyInfoMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := SuggestReplyInfoMode(v)\n\t\t_field = &tmp\n\t}\n\tp.SuggestReplyMode = _field\n\treturn nil\n}\nfunc (p *SuggestReplyInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CustomizedSuggestPrompt = _field\n\treturn nil\n}\n\nfunc (p *SuggestReplyInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SuggestReplyInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *SuggestReplyInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestReplyMode() {\n\t\tif err = oprot.WriteFieldBegin(\"SuggestReplyMode\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.SuggestReplyMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *SuggestReplyInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCustomizedSuggestPrompt() {\n\t\tif err = oprot.WriteFieldBegin(\"CustomizedSuggestPrompt\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CustomizedSuggestPrompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *SuggestReplyInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"SuggestReplyInfo(%+v)\", *p)\n\n}\n\ntype OnboardingInfo struct {\n\t// Markdown format\n\tPrologue string `thrift:\"Prologue,1\" json:\"prologue\" form:\"Prologue\" query:\"Prologue\"`\n\t// List of questions\n\tSuggestedQuestions []string `thrift:\"SuggestedQuestions,2,optional\" json:\"suggested_questions\" form:\"SuggestedQuestions\" query:\"SuggestedQuestions\"`\n\t// Whether to display all suggested questions\n\tDisplayAllSuggestions *bool `thrift:\"DisplayAllSuggestions,3,optional\" json:\"display_all_suggestions\" form:\"DisplayAllSuggestions\" query:\"DisplayAllSuggestions\"`\n}\n\nfunc NewOnboardingInfo() *OnboardingInfo {\n\treturn &OnboardingInfo{}\n}\n\nfunc (p *OnboardingInfo) InitDefault() {\n}\n\nfunc (p *OnboardingInfo) GetPrologue() (v string) {\n\treturn p.Prologue\n}\n\nvar OnboardingInfo_SuggestedQuestions_DEFAULT []string\n\nfunc (p *OnboardingInfo) GetSuggestedQuestions() (v []string) {\n\tif !p.IsSetSuggestedQuestions() {\n\t\treturn OnboardingInfo_SuggestedQuestions_DEFAULT\n\t}\n\treturn p.SuggestedQuestions\n}\n\nvar OnboardingInfo_DisplayAllSuggestions_DEFAULT bool\n\nfunc (p *OnboardingInfo) GetDisplayAllSuggestions() (v bool) {\n\tif !p.IsSetDisplayAllSuggestions() {\n\t\treturn OnboardingInfo_DisplayAllSuggestions_DEFAULT\n\t}\n\treturn *p.DisplayAllSuggestions\n}\n\nvar fieldIDToName_OnboardingInfo = map[int16]string{\n\t1: \"Prologue\",\n\t2: \"SuggestedQuestions\",\n\t3: \"DisplayAllSuggestions\",\n}\n\nfunc (p *OnboardingInfo) IsSetSuggestedQuestions() bool {\n\treturn p.SuggestedQuestions != nil\n}\n\nfunc (p *OnboardingInfo) IsSetDisplayAllSuggestions() bool {\n\treturn p.DisplayAllSuggestions != nil\n}\n\nfunc (p *OnboardingInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OnboardingInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OnboardingInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Prologue = _field\n\treturn nil\n}\nfunc (p *OnboardingInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestedQuestions = _field\n\treturn nil\n}\nfunc (p *OnboardingInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DisplayAllSuggestions = _field\n\treturn nil\n}\n\nfunc (p *OnboardingInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OnboardingInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OnboardingInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Prologue\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Prologue); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OnboardingInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestedQuestions() {\n\t\tif err = oprot.WriteFieldBegin(\"SuggestedQuestions\", thrift.LIST, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.SuggestedQuestions)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.SuggestedQuestions {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OnboardingInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDisplayAllSuggestions() {\n\t\tif err = oprot.WriteFieldBegin(\"DisplayAllSuggestions\", thrift.BOOL, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.DisplayAllSuggestions); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *OnboardingInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OnboardingInfo(%+v)\", *p)\n\n}\n\ntype VoiceConfig struct {\n\tVoiceName string `thrift:\"VoiceName,1\" json:\"voice_name\" form:\"VoiceName\" query:\"VoiceName\"`\n\t// timbre ID\n\tVoiceID string `thrift:\"VoiceID,2\" json:\"voice_id\" form:\"VoiceID\" query:\"VoiceID\"`\n}\n\nfunc NewVoiceConfig() *VoiceConfig {\n\treturn &VoiceConfig{}\n}\n\nfunc (p *VoiceConfig) InitDefault() {\n}\n\nfunc (p *VoiceConfig) GetVoiceName() (v string) {\n\treturn p.VoiceName\n}\n\nfunc (p *VoiceConfig) GetVoiceID() (v string) {\n\treturn p.VoiceID\n}\n\nvar fieldIDToName_VoiceConfig = map[int16]string{\n\t1: \"VoiceName\",\n\t2: \"VoiceID\",\n}\n\nfunc (p *VoiceConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_VoiceConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *VoiceConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VoiceName = _field\n\treturn nil\n}\nfunc (p *VoiceConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.VoiceID = _field\n\treturn nil\n}\n\nfunc (p *VoiceConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"VoiceConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *VoiceConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VoiceName\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VoiceName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *VoiceConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"VoiceID\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.VoiceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *VoiceConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"VoiceConfig(%+v)\", *p)\n\n}\n\ntype AudioConfig struct {\n\t//Key for language \"zh\", \"en\" \"ja\" \"es\" \"id\" \"pt\"\n\tVoiceConfigMap map[string]*VoiceConfig `thrift:\"VoiceConfigMap,1,optional\" json:\"voice_config_map\" form:\"VoiceConfigMap\" query:\"VoiceConfigMap\"`\n\t// Text to speech switch\n\tIsTextToVoiceEnable bool `thrift:\"IsTextToVoiceEnable,3\" json:\"is_text_to_voice_enable\" form:\"IsTextToVoiceEnable\" query:\"IsTextToVoiceEnable\"`\n\t// agent message form\n\tAgentMessageType InputMode `thrift:\"AgentMessageType,4\" json:\"agent_message_type\" form:\"AgentMessageType\" query:\"AgentMessageType\"`\n}\n\nfunc NewAudioConfig() *AudioConfig {\n\treturn &AudioConfig{}\n}\n\nfunc (p *AudioConfig) InitDefault() {\n}\n\nvar AudioConfig_VoiceConfigMap_DEFAULT map[string]*VoiceConfig\n\nfunc (p *AudioConfig) GetVoiceConfigMap() (v map[string]*VoiceConfig) {\n\tif !p.IsSetVoiceConfigMap() {\n\t\treturn AudioConfig_VoiceConfigMap_DEFAULT\n\t}\n\treturn p.VoiceConfigMap\n}\n\nfunc (p *AudioConfig) GetIsTextToVoiceEnable() (v bool) {\n\treturn p.IsTextToVoiceEnable\n}\n\nfunc (p *AudioConfig) GetAgentMessageType() (v InputMode) {\n\treturn p.AgentMessageType\n}\n\nvar fieldIDToName_AudioConfig = map[int16]string{\n\t1: \"VoiceConfigMap\",\n\t3: \"IsTextToVoiceEnable\",\n\t4: \"AgentMessageType\",\n}\n\nfunc (p *AudioConfig) IsSetVoiceConfigMap() bool {\n\treturn p.VoiceConfigMap != nil\n}\n\nfunc (p *AudioConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AudioConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AudioConfig) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]*VoiceConfig, size)\n\tvalues := make([]VoiceConfig, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\t_val := &values[i]\n\t\t_val.InitDefault()\n\t\tif err := _val.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.VoiceConfigMap = _field\n\treturn nil\n}\nfunc (p *AudioConfig) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsTextToVoiceEnable = _field\n\treturn nil\n}\nfunc (p *AudioConfig) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field InputMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = InputMode(v)\n\t}\n\tp.AgentMessageType = _field\n\treturn nil\n}\n\nfunc (p *AudioConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AudioConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AudioConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVoiceConfigMap() {\n\t\tif err = oprot.WriteFieldBegin(\"VoiceConfigMap\", thrift.MAP, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.VoiceConfigMap)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.VoiceConfigMap {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AudioConfig) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsTextToVoiceEnable\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsTextToVoiceEnable); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *AudioConfig) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"AgentMessageType\", thrift.I32, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.AgentMessageType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *AudioConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AudioConfig(%+v)\", *p)\n\n}\n\ntype UserInputConfig struct {\n\t// Default input method\n\tDefaultInputMode InputMode `thrift:\"DefaultInputMode,1\" json:\"default_input_mode\" form:\"DefaultInputMode\" query:\"DefaultInputMode\"`\n\t// User voice message sending form\n\tSendVoiceMode SendVoiceMode `thrift:\"SendVoiceMode,2\" json:\"send_voice_mode\" form:\"SendVoiceMode\" query:\"SendVoiceMode\"`\n}\n\nfunc NewUserInputConfig() *UserInputConfig {\n\treturn &UserInputConfig{}\n}\n\nfunc (p *UserInputConfig) InitDefault() {\n}\n\nfunc (p *UserInputConfig) GetDefaultInputMode() (v InputMode) {\n\treturn p.DefaultInputMode\n}\n\nfunc (p *UserInputConfig) GetSendVoiceMode() (v SendVoiceMode) {\n\treturn p.SendVoiceMode\n}\n\nvar fieldIDToName_UserInputConfig = map[int16]string{\n\t1: \"DefaultInputMode\",\n\t2: \"SendVoiceMode\",\n}\n\nfunc (p *UserInputConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_UserInputConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *UserInputConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field InputMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = InputMode(v)\n\t}\n\tp.DefaultInputMode = _field\n\treturn nil\n}\nfunc (p *UserInputConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field SendVoiceMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = SendVoiceMode(v)\n\t}\n\tp.SendVoiceMode = _field\n\treturn nil\n}\n\nfunc (p *UserInputConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UserInputConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *UserInputConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"DefaultInputMode\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.DefaultInputMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *UserInputConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"SendVoiceMode\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SendVoiceMode)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *UserInputConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"UserInputConfig(%+v)\", *p)\n\n}\n\ntype GradientPosition struct {\n\tLeft  *float64 `thrift:\"Left,1,optional\" json:\"left\" form:\"Left\" query:\"Left\"`\n\tRight *float64 `thrift:\"Right,2,optional\" json:\"right\" form:\"Right\" query:\"Right\"`\n}\n\nfunc NewGradientPosition() *GradientPosition {\n\treturn &GradientPosition{}\n}\n\nfunc (p *GradientPosition) InitDefault() {\n}\n\nvar GradientPosition_Left_DEFAULT float64\n\nfunc (p *GradientPosition) GetLeft() (v float64) {\n\tif !p.IsSetLeft() {\n\t\treturn GradientPosition_Left_DEFAULT\n\t}\n\treturn *p.Left\n}\n\nvar GradientPosition_Right_DEFAULT float64\n\nfunc (p *GradientPosition) GetRight() (v float64) {\n\tif !p.IsSetRight() {\n\t\treturn GradientPosition_Right_DEFAULT\n\t}\n\treturn *p.Right\n}\n\nvar fieldIDToName_GradientPosition = map[int16]string{\n\t1: \"Left\",\n\t2: \"Right\",\n}\n\nfunc (p *GradientPosition) IsSetLeft() bool {\n\treturn p.Left != nil\n}\n\nfunc (p *GradientPosition) IsSetRight() bool {\n\treturn p.Right != nil\n}\n\nfunc (p *GradientPosition) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GradientPosition[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GradientPosition) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Left = _field\n\treturn nil\n}\nfunc (p *GradientPosition) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Right = _field\n\treturn nil\n}\n\nfunc (p *GradientPosition) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GradientPosition\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GradientPosition) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLeft() {\n\t\tif err = oprot.WriteFieldBegin(\"Left\", thrift.DOUBLE, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Left); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GradientPosition) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRight() {\n\t\tif err = oprot.WriteFieldBegin(\"Right\", thrift.DOUBLE, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Right); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *GradientPosition) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GradientPosition(%+v)\", *p)\n\n}\n\ntype CanvasPosition struct {\n\tWidth  *float64 `thrift:\"Width,1,optional\" json:\"width\" form:\"Width\" query:\"Width\"`\n\tHeight *float64 `thrift:\"Height,2,optional\" json:\"height\" form:\"Height\" query:\"Height\"`\n\tLeft   *float64 `thrift:\"Left,3,optional\" json:\"left\" form:\"Left\" query:\"Left\"`\n\tTop    *float64 `thrift:\"Top,4,optional\" json:\"top\" form:\"Top\" query:\"Top\"`\n}\n\nfunc NewCanvasPosition() *CanvasPosition {\n\treturn &CanvasPosition{}\n}\n\nfunc (p *CanvasPosition) InitDefault() {\n}\n\nvar CanvasPosition_Width_DEFAULT float64\n\nfunc (p *CanvasPosition) GetWidth() (v float64) {\n\tif !p.IsSetWidth() {\n\t\treturn CanvasPosition_Width_DEFAULT\n\t}\n\treturn *p.Width\n}\n\nvar CanvasPosition_Height_DEFAULT float64\n\nfunc (p *CanvasPosition) GetHeight() (v float64) {\n\tif !p.IsSetHeight() {\n\t\treturn CanvasPosition_Height_DEFAULT\n\t}\n\treturn *p.Height\n}\n\nvar CanvasPosition_Left_DEFAULT float64\n\nfunc (p *CanvasPosition) GetLeft() (v float64) {\n\tif !p.IsSetLeft() {\n\t\treturn CanvasPosition_Left_DEFAULT\n\t}\n\treturn *p.Left\n}\n\nvar CanvasPosition_Top_DEFAULT float64\n\nfunc (p *CanvasPosition) GetTop() (v float64) {\n\tif !p.IsSetTop() {\n\t\treturn CanvasPosition_Top_DEFAULT\n\t}\n\treturn *p.Top\n}\n\nvar fieldIDToName_CanvasPosition = map[int16]string{\n\t1: \"Width\",\n\t2: \"Height\",\n\t3: \"Left\",\n\t4: \"Top\",\n}\n\nfunc (p *CanvasPosition) IsSetWidth() bool {\n\treturn p.Width != nil\n}\n\nfunc (p *CanvasPosition) IsSetHeight() bool {\n\treturn p.Height != nil\n}\n\nfunc (p *CanvasPosition) IsSetLeft() bool {\n\treturn p.Left != nil\n}\n\nfunc (p *CanvasPosition) IsSetTop() bool {\n\treturn p.Top != nil\n}\n\nfunc (p *CanvasPosition) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.DOUBLE {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CanvasPosition[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CanvasPosition) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Width = _field\n\treturn nil\n}\nfunc (p *CanvasPosition) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Height = _field\n\treturn nil\n}\nfunc (p *CanvasPosition) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Left = _field\n\treturn nil\n}\nfunc (p *CanvasPosition) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *float64\n\tif v, err := iprot.ReadDouble(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Top = _field\n\treturn nil\n}\n\nfunc (p *CanvasPosition) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CanvasPosition\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CanvasPosition) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWidth() {\n\t\tif err = oprot.WriteFieldBegin(\"Width\", thrift.DOUBLE, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Width); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CanvasPosition) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetHeight() {\n\t\tif err = oprot.WriteFieldBegin(\"Height\", thrift.DOUBLE, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Height); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CanvasPosition) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLeft() {\n\t\tif err = oprot.WriteFieldBegin(\"Left\", thrift.DOUBLE, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Left); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CanvasPosition) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetTop() {\n\t\tif err = oprot.WriteFieldBegin(\"Top\", thrift.DOUBLE, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteDouble(*p.Top); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *CanvasPosition) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CanvasPosition(%+v)\", *p)\n\n}\n\ntype BackgroundImageDetail struct {\n\t// original image\n\tOriginImageUri *string `thrift:\"OriginImageUri,1,optional\" json:\"origin_image_uri\" form:\"OriginImageUri\" query:\"OriginImageUri\"`\n\tOriginImageUrl *string `thrift:\"OriginImageUrl,2,optional\" json:\"origin_image_url\" form:\"OriginImageUrl\" query:\"OriginImageUrl\"`\n\t// Actual use of pictures\n\tImageUri   *string `thrift:\"ImageUri,3,optional\" json:\"image_uri\" form:\"ImageUri\" query:\"ImageUri\"`\n\tImageUrl   *string `thrift:\"ImageUrl,4,optional\" json:\"image_url\" form:\"ImageUrl\" query:\"ImageUrl\"`\n\tThemeColor *string `thrift:\"ThemeColor,5,optional\" json:\"theme_color\" form:\"ThemeColor\" query:\"ThemeColor\"`\n\t// Gradual change of position\n\tGradientPosition *GradientPosition `thrift:\"GradientPosition,6,optional\" json:\"gradient_position\" form:\"GradientPosition\" query:\"GradientPosition\"`\n\t// Crop canvas position\n\tCanvasPosition *CanvasPosition `thrift:\"CanvasPosition,7,optional\" json:\"canvas_position\" form:\"CanvasPosition\" query:\"CanvasPosition\"`\n}\n\nfunc NewBackgroundImageDetail() *BackgroundImageDetail {\n\treturn &BackgroundImageDetail{}\n}\n\nfunc (p *BackgroundImageDetail) InitDefault() {\n}\n\nvar BackgroundImageDetail_OriginImageUri_DEFAULT string\n\nfunc (p *BackgroundImageDetail) GetOriginImageUri() (v string) {\n\tif !p.IsSetOriginImageUri() {\n\t\treturn BackgroundImageDetail_OriginImageUri_DEFAULT\n\t}\n\treturn *p.OriginImageUri\n}\n\nvar BackgroundImageDetail_OriginImageUrl_DEFAULT string\n\nfunc (p *BackgroundImageDetail) GetOriginImageUrl() (v string) {\n\tif !p.IsSetOriginImageUrl() {\n\t\treturn BackgroundImageDetail_OriginImageUrl_DEFAULT\n\t}\n\treturn *p.OriginImageUrl\n}\n\nvar BackgroundImageDetail_ImageUri_DEFAULT string\n\nfunc (p *BackgroundImageDetail) GetImageUri() (v string) {\n\tif !p.IsSetImageUri() {\n\t\treturn BackgroundImageDetail_ImageUri_DEFAULT\n\t}\n\treturn *p.ImageUri\n}\n\nvar BackgroundImageDetail_ImageUrl_DEFAULT string\n\nfunc (p *BackgroundImageDetail) GetImageUrl() (v string) {\n\tif !p.IsSetImageUrl() {\n\t\treturn BackgroundImageDetail_ImageUrl_DEFAULT\n\t}\n\treturn *p.ImageUrl\n}\n\nvar BackgroundImageDetail_ThemeColor_DEFAULT string\n\nfunc (p *BackgroundImageDetail) GetThemeColor() (v string) {\n\tif !p.IsSetThemeColor() {\n\t\treturn BackgroundImageDetail_ThemeColor_DEFAULT\n\t}\n\treturn *p.ThemeColor\n}\n\nvar BackgroundImageDetail_GradientPosition_DEFAULT *GradientPosition\n\nfunc (p *BackgroundImageDetail) GetGradientPosition() (v *GradientPosition) {\n\tif !p.IsSetGradientPosition() {\n\t\treturn BackgroundImageDetail_GradientPosition_DEFAULT\n\t}\n\treturn p.GradientPosition\n}\n\nvar BackgroundImageDetail_CanvasPosition_DEFAULT *CanvasPosition\n\nfunc (p *BackgroundImageDetail) GetCanvasPosition() (v *CanvasPosition) {\n\tif !p.IsSetCanvasPosition() {\n\t\treturn BackgroundImageDetail_CanvasPosition_DEFAULT\n\t}\n\treturn p.CanvasPosition\n}\n\nvar fieldIDToName_BackgroundImageDetail = map[int16]string{\n\t1: \"OriginImageUri\",\n\t2: \"OriginImageUrl\",\n\t3: \"ImageUri\",\n\t4: \"ImageUrl\",\n\t5: \"ThemeColor\",\n\t6: \"GradientPosition\",\n\t7: \"CanvasPosition\",\n}\n\nfunc (p *BackgroundImageDetail) IsSetOriginImageUri() bool {\n\treturn p.OriginImageUri != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetOriginImageUrl() bool {\n\treturn p.OriginImageUrl != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetImageUri() bool {\n\treturn p.ImageUri != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetImageUrl() bool {\n\treturn p.ImageUrl != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetThemeColor() bool {\n\treturn p.ThemeColor != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetGradientPosition() bool {\n\treturn p.GradientPosition != nil\n}\n\nfunc (p *BackgroundImageDetail) IsSetCanvasPosition() bool {\n\treturn p.CanvasPosition != nil\n}\n\nfunc (p *BackgroundImageDetail) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BackgroundImageDetail[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BackgroundImageDetail) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OriginImageUri = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OriginImageUrl = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ImageUri = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ImageUrl = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ThemeColor = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewGradientPosition()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.GradientPosition = _field\n\treturn nil\n}\nfunc (p *BackgroundImageDetail) ReadField7(iprot thrift.TProtocol) error {\n\t_field := NewCanvasPosition()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.CanvasPosition = _field\n\treturn nil\n}\n\nfunc (p *BackgroundImageDetail) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BackgroundImageDetail\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BackgroundImageDetail) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOriginImageUri() {\n\t\tif err = oprot.WriteFieldBegin(\"OriginImageUri\", thrift.STRING, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OriginImageUri); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOriginImageUrl() {\n\t\tif err = oprot.WriteFieldBegin(\"OriginImageUrl\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.OriginImageUrl); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetImageUri() {\n\t\tif err = oprot.WriteFieldBegin(\"ImageUri\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ImageUri); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetImageUrl() {\n\t\tif err = oprot.WriteFieldBegin(\"ImageUrl\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ImageUrl); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetThemeColor() {\n\t\tif err = oprot.WriteFieldBegin(\"ThemeColor\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ThemeColor); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetGradientPosition() {\n\t\tif err = oprot.WriteFieldBegin(\"GradientPosition\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.GradientPosition.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *BackgroundImageDetail) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCanvasPosition() {\n\t\tif err = oprot.WriteFieldBegin(\"CanvasPosition\", thrift.STRUCT, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.CanvasPosition.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *BackgroundImageDetail) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BackgroundImageDetail(%+v)\", *p)\n\n}\n\ntype BackgroundImageInfo struct {\n\t// Web background cover\n\tWebBackgroundImage *BackgroundImageDetail `thrift:\"WebBackgroundImage,1,optional\" json:\"web_background_image\" form:\"WebBackgroundImage\" query:\"WebBackgroundImage\"`\n\t// Mobile end background cover\n\tMobileBackgroundImage *BackgroundImageDetail `thrift:\"MobileBackgroundImage,2,optional\" json:\"mobile_background_image\" form:\"MobileBackgroundImage\" query:\"MobileBackgroundImage\"`\n}\n\nfunc NewBackgroundImageInfo() *BackgroundImageInfo {\n\treturn &BackgroundImageInfo{}\n}\n\nfunc (p *BackgroundImageInfo) InitDefault() {\n}\n\nvar BackgroundImageInfo_WebBackgroundImage_DEFAULT *BackgroundImageDetail\n\nfunc (p *BackgroundImageInfo) GetWebBackgroundImage() (v *BackgroundImageDetail) {\n\tif !p.IsSetWebBackgroundImage() {\n\t\treturn BackgroundImageInfo_WebBackgroundImage_DEFAULT\n\t}\n\treturn p.WebBackgroundImage\n}\n\nvar BackgroundImageInfo_MobileBackgroundImage_DEFAULT *BackgroundImageDetail\n\nfunc (p *BackgroundImageInfo) GetMobileBackgroundImage() (v *BackgroundImageDetail) {\n\tif !p.IsSetMobileBackgroundImage() {\n\t\treturn BackgroundImageInfo_MobileBackgroundImage_DEFAULT\n\t}\n\treturn p.MobileBackgroundImage\n}\n\nvar fieldIDToName_BackgroundImageInfo = map[int16]string{\n\t1: \"WebBackgroundImage\",\n\t2: \"MobileBackgroundImage\",\n}\n\nfunc (p *BackgroundImageInfo) IsSetWebBackgroundImage() bool {\n\treturn p.WebBackgroundImage != nil\n}\n\nfunc (p *BackgroundImageInfo) IsSetMobileBackgroundImage() bool {\n\treturn p.MobileBackgroundImage != nil\n}\n\nfunc (p *BackgroundImageInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_BackgroundImageInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *BackgroundImageInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBackgroundImageDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.WebBackgroundImage = _field\n\treturn nil\n}\nfunc (p *BackgroundImageInfo) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewBackgroundImageDetail()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.MobileBackgroundImage = _field\n\treturn nil\n}\n\nfunc (p *BackgroundImageInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BackgroundImageInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *BackgroundImageInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWebBackgroundImage() {\n\t\tif err = oprot.WriteFieldBegin(\"WebBackgroundImage\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.WebBackgroundImage.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *BackgroundImageInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMobileBackgroundImage() {\n\t\tif err = oprot.WriteFieldBegin(\"MobileBackgroundImage\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.MobileBackgroundImage.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *BackgroundImageInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"BackgroundImageInfo(%+v)\", *p)\n\n}\n\ntype AvatarConfig struct {\n\tImageUri string `thrift:\"ImageUri,1\" json:\"image_uri\" form:\"ImageUri\" query:\"ImageUri\"`\n\tImageUrl string `thrift:\"ImageUrl,2\" json:\"image_url\" form:\"ImageUrl\" query:\"ImageUrl\"`\n}\n\nfunc NewAvatarConfig() *AvatarConfig {\n\treturn &AvatarConfig{}\n}\n\nfunc (p *AvatarConfig) InitDefault() {\n}\n\nfunc (p *AvatarConfig) GetImageUri() (v string) {\n\treturn p.ImageUri\n}\n\nfunc (p *AvatarConfig) GetImageUrl() (v string) {\n\treturn p.ImageUrl\n}\n\nvar fieldIDToName_AvatarConfig = map[int16]string{\n\t1: \"ImageUri\",\n\t2: \"ImageUrl\",\n}\n\nfunc (p *AvatarConfig) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_AvatarConfig[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *AvatarConfig) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ImageUri = _field\n\treturn nil\n}\nfunc (p *AvatarConfig) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ImageUrl = _field\n\treturn nil\n}\n\nfunc (p *AvatarConfig) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"AvatarConfig\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *AvatarConfig) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ImageUri\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ImageUri); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *AvatarConfig) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ImageUrl\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ImageUrl); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\n\nfunc (p *AvatarConfig) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"AvatarConfig(%+v)\", *p)\n\n}\n\ntype ChatFlowRole struct {\n\tID         string `thrift:\"ID,1\" json:\"id\" form:\"ID\" query:\"ID\"`\n\tWorkflowID string `thrift:\"WorkflowID,2\" json:\"workflow_id\" form:\"WorkflowID\" query:\"WorkflowID\"`\n\t// Channel ID\n\tConnectorID string `thrift:\"ConnectorID,3\" json:\"connector_id\" form:\"ConnectorID\" query:\"ConnectorID\"`\n\t// avatar\n\tAvatar *AvatarConfig `thrift:\"Avatar,4,optional\" json:\"avatar\" form:\"Avatar\" query:\"Avatar\"`\n\t// Role Description\n\tDescription *string `thrift:\"Description,5,optional\" json:\"description\" form:\"Description\" query:\"Description\"`\n\t// opening statement\n\tOnboardingInfo *OnboardingInfo `thrift:\"OnboardingInfo,6,optional\" json:\"onboarding_info\" form:\"OnboardingInfo\" query:\"OnboardingInfo\"`\n\t// role name\n\tName *string `thrift:\"Name,7,optional\" json:\"name\" form:\"Name\" query:\"Name\"`\n\t// User Question Suggestions\n\tSuggestReplyInfo *SuggestReplyInfo `thrift:\"SuggestReplyInfo,8,optional\" json:\"suggest_reply_info\" form:\"SuggestReplyInfo\" query:\"SuggestReplyInfo\"`\n\t// background cover\n\tBackgroundImageInfo *BackgroundImageInfo `thrift:\"BackgroundImageInfo,9,optional\" json:\"background_image_info\" form:\"BackgroundImageInfo\" query:\"BackgroundImageInfo\"`\n\t// Voice configuration: tone, phone, etc\n\tAudioConfig *AudioConfig `thrift:\"AudioConfig,10,optional\" json:\"audio_config\" form:\"AudioConfig\" query:\"AudioConfig\"`\n\t// user input method\n\tUserInputConfig *UserInputConfig `thrift:\"UserInputConfig,11,optional\" json:\"user_input_config\" form:\"UserInputConfig\" query:\"UserInputConfig\"`\n\t// project version\n\tProjectVersion *string `thrift:\"ProjectVersion,12,optional\" json:\"project_version\" form:\"ProjectVersion\" query:\"ProjectVersion\"`\n}\n\nfunc NewChatFlowRole() *ChatFlowRole {\n\treturn &ChatFlowRole{}\n}\n\nfunc (p *ChatFlowRole) InitDefault() {\n}\n\nfunc (p *ChatFlowRole) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *ChatFlowRole) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *ChatFlowRole) GetConnectorID() (v string) {\n\treturn p.ConnectorID\n}\n\nvar ChatFlowRole_Avatar_DEFAULT *AvatarConfig\n\nfunc (p *ChatFlowRole) GetAvatar() (v *AvatarConfig) {\n\tif !p.IsSetAvatar() {\n\t\treturn ChatFlowRole_Avatar_DEFAULT\n\t}\n\treturn p.Avatar\n}\n\nvar ChatFlowRole_Description_DEFAULT string\n\nfunc (p *ChatFlowRole) GetDescription() (v string) {\n\tif !p.IsSetDescription() {\n\t\treturn ChatFlowRole_Description_DEFAULT\n\t}\n\treturn *p.Description\n}\n\nvar ChatFlowRole_OnboardingInfo_DEFAULT *OnboardingInfo\n\nfunc (p *ChatFlowRole) GetOnboardingInfo() (v *OnboardingInfo) {\n\tif !p.IsSetOnboardingInfo() {\n\t\treturn ChatFlowRole_OnboardingInfo_DEFAULT\n\t}\n\treturn p.OnboardingInfo\n}\n\nvar ChatFlowRole_Name_DEFAULT string\n\nfunc (p *ChatFlowRole) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn ChatFlowRole_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar ChatFlowRole_SuggestReplyInfo_DEFAULT *SuggestReplyInfo\n\nfunc (p *ChatFlowRole) GetSuggestReplyInfo() (v *SuggestReplyInfo) {\n\tif !p.IsSetSuggestReplyInfo() {\n\t\treturn ChatFlowRole_SuggestReplyInfo_DEFAULT\n\t}\n\treturn p.SuggestReplyInfo\n}\n\nvar ChatFlowRole_BackgroundImageInfo_DEFAULT *BackgroundImageInfo\n\nfunc (p *ChatFlowRole) GetBackgroundImageInfo() (v *BackgroundImageInfo) {\n\tif !p.IsSetBackgroundImageInfo() {\n\t\treturn ChatFlowRole_BackgroundImageInfo_DEFAULT\n\t}\n\treturn p.BackgroundImageInfo\n}\n\nvar ChatFlowRole_AudioConfig_DEFAULT *AudioConfig\n\nfunc (p *ChatFlowRole) GetAudioConfig() (v *AudioConfig) {\n\tif !p.IsSetAudioConfig() {\n\t\treturn ChatFlowRole_AudioConfig_DEFAULT\n\t}\n\treturn p.AudioConfig\n}\n\nvar ChatFlowRole_UserInputConfig_DEFAULT *UserInputConfig\n\nfunc (p *ChatFlowRole) GetUserInputConfig() (v *UserInputConfig) {\n\tif !p.IsSetUserInputConfig() {\n\t\treturn ChatFlowRole_UserInputConfig_DEFAULT\n\t}\n\treturn p.UserInputConfig\n}\n\nvar ChatFlowRole_ProjectVersion_DEFAULT string\n\nfunc (p *ChatFlowRole) GetProjectVersion() (v string) {\n\tif !p.IsSetProjectVersion() {\n\t\treturn ChatFlowRole_ProjectVersion_DEFAULT\n\t}\n\treturn *p.ProjectVersion\n}\n\nvar fieldIDToName_ChatFlowRole = map[int16]string{\n\t1:  \"ID\",\n\t2:  \"WorkflowID\",\n\t3:  \"ConnectorID\",\n\t4:  \"Avatar\",\n\t5:  \"Description\",\n\t6:  \"OnboardingInfo\",\n\t7:  \"Name\",\n\t8:  \"SuggestReplyInfo\",\n\t9:  \"BackgroundImageInfo\",\n\t10: \"AudioConfig\",\n\t11: \"UserInputConfig\",\n\t12: \"ProjectVersion\",\n}\n\nfunc (p *ChatFlowRole) IsSetAvatar() bool {\n\treturn p.Avatar != nil\n}\n\nfunc (p *ChatFlowRole) IsSetDescription() bool {\n\treturn p.Description != nil\n}\n\nfunc (p *ChatFlowRole) IsSetOnboardingInfo() bool {\n\treturn p.OnboardingInfo != nil\n}\n\nfunc (p *ChatFlowRole) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *ChatFlowRole) IsSetSuggestReplyInfo() bool {\n\treturn p.SuggestReplyInfo != nil\n}\n\nfunc (p *ChatFlowRole) IsSetBackgroundImageInfo() bool {\n\treturn p.BackgroundImageInfo != nil\n}\n\nfunc (p *ChatFlowRole) IsSetAudioConfig() bool {\n\treturn p.AudioConfig != nil\n}\n\nfunc (p *ChatFlowRole) IsSetUserInputConfig() bool {\n\treturn p.UserInputConfig != nil\n}\n\nfunc (p *ChatFlowRole) IsSetProjectVersion() bool {\n\treturn p.ProjectVersion != nil\n}\n\nfunc (p *ChatFlowRole) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatFlowRole[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ChatFlowRole) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ChatFlowRole) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *ChatFlowRole) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ChatFlowRole) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewAvatarConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Avatar = _field\n\treturn nil\n}\nfunc (p *ChatFlowRole) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *ChatFlowRole) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewOnboardingInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.OnboardingInfo = _field\n\treturn nil\n}\nfunc (p *ChatFlowRole) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ChatFlowRole) ReadField8(iprot thrift.TProtocol) error {\n\t_field := NewSuggestReplyInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestReplyInfo = _field\n\treturn nil\n}\nfunc (p *ChatFlowRole) ReadField9(iprot thrift.TProtocol) error {\n\t_field := NewBackgroundImageInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BackgroundImageInfo = _field\n\treturn nil\n}\nfunc (p *ChatFlowRole) ReadField10(iprot thrift.TProtocol) error {\n\t_field := NewAudioConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.AudioConfig = _field\n\treturn nil\n}\nfunc (p *ChatFlowRole) ReadField11(iprot thrift.TProtocol) error {\n\t_field := NewUserInputConfig()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserInputConfig = _field\n\treturn nil\n}\nfunc (p *ChatFlowRole) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectVersion = _field\n\treturn nil\n}\n\nfunc (p *ChatFlowRole) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatFlowRole\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatFlowRole) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatFlowRole) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowID\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChatFlowRole) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ChatFlowRole) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAvatar() {\n\t\tif err = oprot.WriteFieldBegin(\"Avatar\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Avatar.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ChatFlowRole) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDescription() {\n\t\tif err = oprot.WriteFieldBegin(\"Description\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Description); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ChatFlowRole) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOnboardingInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"OnboardingInfo\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.OnboardingInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ChatFlowRole) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"Name\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ChatFlowRole) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestReplyInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"SuggestReplyInfo\", thrift.STRUCT, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SuggestReplyInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ChatFlowRole) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBackgroundImageInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"BackgroundImageInfo\", thrift.STRUCT, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BackgroundImageInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ChatFlowRole) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAudioConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"AudioConfig\", thrift.STRUCT, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.AudioConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ChatFlowRole) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUserInputConfig() {\n\t\tif err = oprot.WriteFieldBegin(\"UserInputConfig\", thrift.STRUCT, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.UserInputConfig.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ChatFlowRole) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"ProjectVersion\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectVersion); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\n\nfunc (p *ChatFlowRole) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatFlowRole(%+v)\", *p)\n\n}\n\ntype CreateChatFlowRoleRequest struct {\n\tChatFlowRole *ChatFlowRole `thrift:\"ChatFlowRole,1\" json:\"chat_flow_role\" query:\"chat_flow_role\" `\n\tBase         *base.Base    `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCreateChatFlowRoleRequest() *CreateChatFlowRoleRequest {\n\treturn &CreateChatFlowRoleRequest{}\n}\n\nfunc (p *CreateChatFlowRoleRequest) InitDefault() {\n}\n\nvar CreateChatFlowRoleRequest_ChatFlowRole_DEFAULT *ChatFlowRole\n\nfunc (p *CreateChatFlowRoleRequest) GetChatFlowRole() (v *ChatFlowRole) {\n\tif !p.IsSetChatFlowRole() {\n\t\treturn CreateChatFlowRoleRequest_ChatFlowRole_DEFAULT\n\t}\n\treturn p.ChatFlowRole\n}\n\nvar CreateChatFlowRoleRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateChatFlowRoleRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateChatFlowRoleRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateChatFlowRoleRequest = map[int16]string{\n\t1:   \"ChatFlowRole\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateChatFlowRoleRequest) IsSetChatFlowRole() bool {\n\treturn p.ChatFlowRole != nil\n}\n\nfunc (p *CreateChatFlowRoleRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateChatFlowRoleRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateChatFlowRoleRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateChatFlowRoleRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewChatFlowRole()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ChatFlowRole = _field\n\treturn nil\n}\nfunc (p *CreateChatFlowRoleRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateChatFlowRoleRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateChatFlowRoleRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateChatFlowRoleRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ChatFlowRole\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.ChatFlowRole.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateChatFlowRoleRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateChatFlowRoleRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateChatFlowRoleRequest(%+v)\", *p)\n\n}\n\ntype CreateChatFlowRoleResponse struct {\n\t// ID in the database\n\tID       string         `thrift:\"ID,1\" json:\"id\" query:\"id\" `\n\tCode     int64          `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewCreateChatFlowRoleResponse() *CreateChatFlowRoleResponse {\n\treturn &CreateChatFlowRoleResponse{}\n}\n\nfunc (p *CreateChatFlowRoleResponse) InitDefault() {\n}\n\nfunc (p *CreateChatFlowRoleResponse) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *CreateChatFlowRoleResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CreateChatFlowRoleResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CreateChatFlowRoleResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *CreateChatFlowRoleResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn CreateChatFlowRoleResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_CreateChatFlowRoleResponse = map[int16]string{\n\t1:   \"ID\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *CreateChatFlowRoleResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *CreateChatFlowRoleResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateChatFlowRoleResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_CreateChatFlowRoleResponse[fieldId]))\n}\n\nfunc (p *CreateChatFlowRoleResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *CreateChatFlowRoleResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateChatFlowRoleResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateChatFlowRoleResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *CreateChatFlowRoleResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateChatFlowRoleResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateChatFlowRoleResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateChatFlowRoleResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *CreateChatFlowRoleResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *CreateChatFlowRoleResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateChatFlowRoleResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateChatFlowRoleResponse(%+v)\", *p)\n\n}\n\ntype DeleteChatFlowRoleRequest struct {\n\tWorkflowID  string `thrift:\"WorkflowID,1\" json:\"workflow_id\" query:\"workflow_id\" `\n\tConnectorID string `thrift:\"ConnectorID,2\" json:\"connector_id\" query:\"connector_id\" `\n\t// ID in the database\n\tID   string     `thrift:\"ID,4\" json:\"id\" query:\"id\" `\n\tBase *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewDeleteChatFlowRoleRequest() *DeleteChatFlowRoleRequest {\n\treturn &DeleteChatFlowRoleRequest{}\n}\n\nfunc (p *DeleteChatFlowRoleRequest) InitDefault() {\n}\n\nfunc (p *DeleteChatFlowRoleRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *DeleteChatFlowRoleRequest) GetConnectorID() (v string) {\n\treturn p.ConnectorID\n}\n\nfunc (p *DeleteChatFlowRoleRequest) GetID() (v string) {\n\treturn p.ID\n}\n\nvar DeleteChatFlowRoleRequest_Base_DEFAULT *base.Base\n\nfunc (p *DeleteChatFlowRoleRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn DeleteChatFlowRoleRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_DeleteChatFlowRoleRequest = map[int16]string{\n\t1:   \"WorkflowID\",\n\t2:   \"ConnectorID\",\n\t4:   \"ID\",\n\t255: \"Base\",\n}\n\nfunc (p *DeleteChatFlowRoleRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *DeleteChatFlowRoleRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteChatFlowRoleRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *DeleteChatFlowRoleRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *DeleteChatFlowRoleRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *DeleteChatFlowRoleRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *DeleteChatFlowRoleRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *DeleteChatFlowRoleRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteChatFlowRoleRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteChatFlowRoleRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *DeleteChatFlowRoleRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *DeleteChatFlowRoleRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ID\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *DeleteChatFlowRoleRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteChatFlowRoleRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteChatFlowRoleRequest(%+v)\", *p)\n\n}\n\ntype DeleteChatFlowRoleResponse struct {\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewDeleteChatFlowRoleResponse() *DeleteChatFlowRoleResponse {\n\treturn &DeleteChatFlowRoleResponse{}\n}\n\nfunc (p *DeleteChatFlowRoleResponse) InitDefault() {\n}\n\nvar DeleteChatFlowRoleResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *DeleteChatFlowRoleResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn DeleteChatFlowRoleResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_DeleteChatFlowRoleResponse = map[int16]string{\n\t255: \"BaseResp\",\n}\n\nfunc (p *DeleteChatFlowRoleResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *DeleteChatFlowRoleResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_DeleteChatFlowRoleResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_DeleteChatFlowRoleResponse[fieldId]))\n}\n\nfunc (p *DeleteChatFlowRoleResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *DeleteChatFlowRoleResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteChatFlowRoleResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *DeleteChatFlowRoleResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *DeleteChatFlowRoleResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DeleteChatFlowRoleResponse(%+v)\", *p)\n\n}\n\ntype GetChatFlowRoleRequest struct {\n\tWorkflowID  string `thrift:\"WorkflowID,1\" json:\"workflow_id\" query:\"workflow_id\" `\n\tConnectorID string `thrift:\"ConnectorID,2\" json:\"connector_id\" query:\"connector_id\" `\n\tIsDebug     bool   `thrift:\"IsDebug,3\" json:\"is_debug\" query:\"is_debug\" `\n\t//    4: optional string AppID (api.query = \"app_id\")\n\tExt  map[string]string `thrift:\"Ext,5,optional\" json:\"Ext,omitempty\" query:\"ext\"`\n\tBase *base.Base        `thrift:\"Base,255,optional\" json:\"base\" query:\"base\" `\n}\n\nfunc NewGetChatFlowRoleRequest() *GetChatFlowRoleRequest {\n\treturn &GetChatFlowRoleRequest{}\n}\n\nfunc (p *GetChatFlowRoleRequest) InitDefault() {\n}\n\nfunc (p *GetChatFlowRoleRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *GetChatFlowRoleRequest) GetConnectorID() (v string) {\n\treturn p.ConnectorID\n}\n\nfunc (p *GetChatFlowRoleRequest) GetIsDebug() (v bool) {\n\treturn p.IsDebug\n}\n\nvar GetChatFlowRoleRequest_Ext_DEFAULT map[string]string\n\nfunc (p *GetChatFlowRoleRequest) GetExt() (v map[string]string) {\n\tif !p.IsSetExt() {\n\t\treturn GetChatFlowRoleRequest_Ext_DEFAULT\n\t}\n\treturn p.Ext\n}\n\nvar GetChatFlowRoleRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetChatFlowRoleRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetChatFlowRoleRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetChatFlowRoleRequest = map[int16]string{\n\t1:   \"WorkflowID\",\n\t2:   \"ConnectorID\",\n\t3:   \"IsDebug\",\n\t5:   \"Ext\",\n\t255: \"Base\",\n}\n\nfunc (p *GetChatFlowRoleRequest) IsSetExt() bool {\n\treturn p.Ext != nil\n}\n\nfunc (p *GetChatFlowRoleRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetChatFlowRoleRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetChatFlowRoleRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *GetChatFlowRoleRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetChatFlowRoleRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *GetChatFlowRoleRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsDebug = _field\n\treturn nil\n}\nfunc (p *GetChatFlowRoleRequest) ReadField5(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Ext = _field\n\treturn nil\n}\nfunc (p *GetChatFlowRoleRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetChatFlowRoleRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetChatFlowRoleRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetChatFlowRoleRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetChatFlowRoleRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetChatFlowRoleRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsDebug\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsDebug); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetChatFlowRoleRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExt() {\n\t\tif err = oprot.WriteFieldBegin(\"Ext\", thrift.MAP, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Ext)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.Ext {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *GetChatFlowRoleRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetChatFlowRoleRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetChatFlowRoleRequest(%+v)\", *p)\n\n}\n\ntype GetChatFlowRoleResponse struct {\n\tCode     int64          `thrift:\"code,1,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string         `thrift:\"msg,2,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tRole     *ChatFlowRole  `thrift:\"Role,3,optional\" json:\"role\" query:\"role\" `\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" json:\"base_resp\" query:\"base_resp,required\" `\n}\n\nfunc NewGetChatFlowRoleResponse() *GetChatFlowRoleResponse {\n\treturn &GetChatFlowRoleResponse{}\n}\n\nfunc (p *GetChatFlowRoleResponse) InitDefault() {\n}\n\nfunc (p *GetChatFlowRoleResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *GetChatFlowRoleResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar GetChatFlowRoleResponse_Role_DEFAULT *ChatFlowRole\n\nfunc (p *GetChatFlowRoleResponse) GetRole() (v *ChatFlowRole) {\n\tif !p.IsSetRole() {\n\t\treturn GetChatFlowRoleResponse_Role_DEFAULT\n\t}\n\treturn p.Role\n}\n\nvar GetChatFlowRoleResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetChatFlowRoleResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetChatFlowRoleResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetChatFlowRoleResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"Role\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetChatFlowRoleResponse) IsSetRole() bool {\n\treturn p.Role != nil\n}\n\nfunc (p *GetChatFlowRoleResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetChatFlowRoleResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetChatFlowRoleResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetChatFlowRoleResponse[fieldId]))\n}\n\nfunc (p *GetChatFlowRoleResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetChatFlowRoleResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetChatFlowRoleResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewChatFlowRole()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Role = _field\n\treturn nil\n}\nfunc (p *GetChatFlowRoleResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetChatFlowRoleResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetChatFlowRoleResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetChatFlowRoleResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetChatFlowRoleResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetChatFlowRoleResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRole() {\n\t\tif err = oprot.WriteFieldBegin(\"Role\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Role.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetChatFlowRoleResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetChatFlowRoleResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetChatFlowRoleResponse(%+v)\", *p)\n\n}\n\ntype NodePanelSearchRequest struct {\n\t// The data type of the search, pass empty, do not pass, or pass All means search for all types\n\tSearchType NodePanelSearchType `thrift:\"search_type,1\" form:\"search_type\" json:\"search_type\" query:\"search_type\"`\n\tSpaceID    string              `thrift:\"space_id,2\" form:\"space_id\" json:\"space_id\" query:\"space_id\"`\n\tProjectID  *string             `thrift:\"project_id,3,optional\" form:\"project_id\" json:\"project_id,omitempty\" query:\"project_id\"`\n\tSearchKey  string              `thrift:\"search_key,4\" form:\"search_key\" json:\"search_key\" query:\"search_key\"`\n\t// The value is \"\" on the first request, and the underlying implementation is converted to a page or cursor according to the paging mode of the data source\n\tPageOrCursor string `thrift:\"page_or_cursor,5\" form:\"page_or_cursor\" json:\"page_or_cursor\" query:\"page_or_cursor\"`\n\tPageSize     int32  `thrift:\"page_size,6\" form:\"page_size\" json:\"page_size\" query:\"page_size\"`\n\t// Excluded workflow_id, used to exclude the id of the current workflow when searching for workflow\n\tExcludeWorkflowID string     `thrift:\"exclude_workflow_id,7\" form:\"exclude_workflow_id\" json:\"exclude_workflow_id\" query:\"exclude_workflow_id\"`\n\tBase              *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewNodePanelSearchRequest() *NodePanelSearchRequest {\n\treturn &NodePanelSearchRequest{}\n}\n\nfunc (p *NodePanelSearchRequest) InitDefault() {\n}\n\nfunc (p *NodePanelSearchRequest) GetSearchType() (v NodePanelSearchType) {\n\treturn p.SearchType\n}\n\nfunc (p *NodePanelSearchRequest) GetSpaceID() (v string) {\n\treturn p.SpaceID\n}\n\nvar NodePanelSearchRequest_ProjectID_DEFAULT string\n\nfunc (p *NodePanelSearchRequest) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn NodePanelSearchRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nfunc (p *NodePanelSearchRequest) GetSearchKey() (v string) {\n\treturn p.SearchKey\n}\n\nfunc (p *NodePanelSearchRequest) GetPageOrCursor() (v string) {\n\treturn p.PageOrCursor\n}\n\nfunc (p *NodePanelSearchRequest) GetPageSize() (v int32) {\n\treturn p.PageSize\n}\n\nfunc (p *NodePanelSearchRequest) GetExcludeWorkflowID() (v string) {\n\treturn p.ExcludeWorkflowID\n}\n\nvar NodePanelSearchRequest_Base_DEFAULT *base.Base\n\nfunc (p *NodePanelSearchRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn NodePanelSearchRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_NodePanelSearchRequest = map[int16]string{\n\t1:   \"search_type\",\n\t2:   \"space_id\",\n\t3:   \"project_id\",\n\t4:   \"search_key\",\n\t5:   \"page_or_cursor\",\n\t6:   \"page_size\",\n\t7:   \"exclude_workflow_id\",\n\t255: \"Base\",\n}\n\nfunc (p *NodePanelSearchRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *NodePanelSearchRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *NodePanelSearchRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodePanelSearchRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodePanelSearchRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field NodePanelSearchType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = NodePanelSearchType(v)\n\t}\n\tp.SearchType = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SearchKey = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageOrCursor = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PageSize = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ExcludeWorkflowID = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *NodePanelSearchRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodePanelSearchRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodePanelSearchRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"search_type\", thrift.I32, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.SearchType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodePanelSearchRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodePanelSearchRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"project_id\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NodePanelSearchRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"search_key\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.SearchKey); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *NodePanelSearchRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"page_or_cursor\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PageOrCursor); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *NodePanelSearchRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"page_size\", thrift.I32, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.PageSize); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *NodePanelSearchRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"exclude_workflow_id\", thrift.STRING, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ExcludeWorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *NodePanelSearchRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *NodePanelSearchRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodePanelSearchRequest(%+v)\", *p)\n\n}\n\ntype NodePanelWorkflowData struct {\n\tWorkflowList []*Workflow `thrift:\"workflow_list,1\" form:\"workflow_list\" json:\"workflow_list\" query:\"workflow_list\"`\n\t// Since the query of workflow is all page + size, page + 1 is returned here.\n\tNextPageOrCursor string `thrift:\"next_page_or_cursor,2\" form:\"next_page_or_cursor\" json:\"next_page_or_cursor\" query:\"next_page_or_cursor\"`\n\tHasMore          bool   `thrift:\"has_more,3\" form:\"has_more\" json:\"has_more\" query:\"has_more\"`\n}\n\nfunc NewNodePanelWorkflowData() *NodePanelWorkflowData {\n\treturn &NodePanelWorkflowData{}\n}\n\nfunc (p *NodePanelWorkflowData) InitDefault() {\n}\n\nfunc (p *NodePanelWorkflowData) GetWorkflowList() (v []*Workflow) {\n\treturn p.WorkflowList\n}\n\nfunc (p *NodePanelWorkflowData) GetNextPageOrCursor() (v string) {\n\treturn p.NextPageOrCursor\n}\n\nfunc (p *NodePanelWorkflowData) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nvar fieldIDToName_NodePanelWorkflowData = map[int16]string{\n\t1: \"workflow_list\",\n\t2: \"next_page_or_cursor\",\n\t3: \"has_more\",\n}\n\nfunc (p *NodePanelWorkflowData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodePanelWorkflowData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodePanelWorkflowData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*Workflow, 0, size)\n\tvalues := make([]Workflow, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowList = _field\n\treturn nil\n}\nfunc (p *NodePanelWorkflowData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NextPageOrCursor = _field\n\treturn nil\n}\nfunc (p *NodePanelWorkflowData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\n\nfunc (p *NodePanelWorkflowData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodePanelWorkflowData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodePanelWorkflowData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.WorkflowList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.WorkflowList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodePanelWorkflowData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"next_page_or_cursor\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NextPageOrCursor); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodePanelWorkflowData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_more\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *NodePanelWorkflowData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodePanelWorkflowData(%+v)\", *p)\n\n}\n\ntype NodePanelPluginAPI struct {\n\tAPIID   string `thrift:\"api_id,1\" form:\"api_id\" json:\"api_id\" query:\"api_id\"`\n\tAPIName string `thrift:\"api_name,2\" form:\"api_name\" json:\"api_name\" query:\"api_name\"`\n\tAPIDesc string `thrift:\"api_desc,3\" form:\"api_desc\" json:\"api_desc\" query:\"api_desc\"`\n}\n\nfunc NewNodePanelPluginAPI() *NodePanelPluginAPI {\n\treturn &NodePanelPluginAPI{}\n}\n\nfunc (p *NodePanelPluginAPI) InitDefault() {\n}\n\nfunc (p *NodePanelPluginAPI) GetAPIID() (v string) {\n\treturn p.APIID\n}\n\nfunc (p *NodePanelPluginAPI) GetAPIName() (v string) {\n\treturn p.APIName\n}\n\nfunc (p *NodePanelPluginAPI) GetAPIDesc() (v string) {\n\treturn p.APIDesc\n}\n\nvar fieldIDToName_NodePanelPluginAPI = map[int16]string{\n\t1: \"api_id\",\n\t2: \"api_name\",\n\t3: \"api_desc\",\n}\n\nfunc (p *NodePanelPluginAPI) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodePanelPluginAPI[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodePanelPluginAPI) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIID = _field\n\treturn nil\n}\nfunc (p *NodePanelPluginAPI) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIName = _field\n\treturn nil\n}\nfunc (p *NodePanelPluginAPI) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.APIDesc = _field\n\treturn nil\n}\n\nfunc (p *NodePanelPluginAPI) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodePanelPluginAPI\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodePanelPluginAPI) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodePanelPluginAPI) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIName); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodePanelPluginAPI) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"api_desc\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.APIDesc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *NodePanelPluginAPI) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodePanelPluginAPI(%+v)\", *p)\n\n}\n\ntype NodePanelPlugin struct {\n\tPluginID string                `thrift:\"plugin_id,1\" form:\"plugin_id\" json:\"plugin_id\" query:\"plugin_id\"`\n\tName     string                `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tDesc     string                `thrift:\"desc,3\" form:\"desc\" json:\"desc\" query:\"desc\"`\n\tIcon     string                `thrift:\"icon,4\" form:\"icon\" json:\"icon\" query:\"icon\"`\n\tToolList []*NodePanelPluginAPI `thrift:\"tool_list,5\" form:\"tool_list\" json:\"tool_list\" query:\"tool_list\"`\n\tVersion  string                `thrift:\"version,6\" form:\"version\" json:\"version\" query:\"version\"`\n}\n\nfunc NewNodePanelPlugin() *NodePanelPlugin {\n\treturn &NodePanelPlugin{}\n}\n\nfunc (p *NodePanelPlugin) InitDefault() {\n}\n\nfunc (p *NodePanelPlugin) GetPluginID() (v string) {\n\treturn p.PluginID\n}\n\nfunc (p *NodePanelPlugin) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *NodePanelPlugin) GetDesc() (v string) {\n\treturn p.Desc\n}\n\nfunc (p *NodePanelPlugin) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nfunc (p *NodePanelPlugin) GetToolList() (v []*NodePanelPluginAPI) {\n\treturn p.ToolList\n}\n\nfunc (p *NodePanelPlugin) GetVersion() (v string) {\n\treturn p.Version\n}\n\nvar fieldIDToName_NodePanelPlugin = map[int16]string{\n\t1: \"plugin_id\",\n\t2: \"name\",\n\t3: \"desc\",\n\t4: \"icon\",\n\t5: \"tool_list\",\n\t6: \"version\",\n}\n\nfunc (p *NodePanelPlugin) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodePanelPlugin[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodePanelPlugin) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PluginID = _field\n\treturn nil\n}\nfunc (p *NodePanelPlugin) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *NodePanelPlugin) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Desc = _field\n\treturn nil\n}\nfunc (p *NodePanelPlugin) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\nfunc (p *NodePanelPlugin) ReadField5(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*NodePanelPluginAPI, 0, size)\n\tvalues := make([]NodePanelPluginAPI, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.ToolList = _field\n\treturn nil\n}\nfunc (p *NodePanelPlugin) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Version = _field\n\treturn nil\n}\n\nfunc (p *NodePanelPlugin) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodePanelPlugin\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodePanelPlugin) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.PluginID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodePanelPlugin) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodePanelPlugin) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"desc\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Desc); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NodePanelPlugin) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *NodePanelPlugin) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"tool_list\", thrift.LIST, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.ToolList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.ToolList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *NodePanelPlugin) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"version\", thrift.STRING, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Version); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *NodePanelPlugin) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodePanelPlugin(%+v)\", *p)\n\n}\n\ntype NodePanelPluginData struct {\n\tPluginList []*NodePanelPlugin `thrift:\"plugin_list,1\" form:\"plugin_list\" json:\"plugin_list\" query:\"plugin_list\"`\n\t// If the data source is page + size, return page + 1 here; if the data source is cursor mode, return the cursor returned by the data source here\n\tNextPageOrCursor string `thrift:\"next_page_or_cursor,2\" form:\"next_page_or_cursor\" json:\"next_page_or_cursor\" query:\"next_page_or_cursor\"`\n\tHasMore          bool   `thrift:\"has_more,3\" form:\"has_more\" json:\"has_more\" query:\"has_more\"`\n}\n\nfunc NewNodePanelPluginData() *NodePanelPluginData {\n\treturn &NodePanelPluginData{}\n}\n\nfunc (p *NodePanelPluginData) InitDefault() {\n}\n\nfunc (p *NodePanelPluginData) GetPluginList() (v []*NodePanelPlugin) {\n\treturn p.PluginList\n}\n\nfunc (p *NodePanelPluginData) GetNextPageOrCursor() (v string) {\n\treturn p.NextPageOrCursor\n}\n\nfunc (p *NodePanelPluginData) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nvar fieldIDToName_NodePanelPluginData = map[int16]string{\n\t1: \"plugin_list\",\n\t2: \"next_page_or_cursor\",\n\t3: \"has_more\",\n}\n\nfunc (p *NodePanelPluginData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodePanelPluginData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodePanelPluginData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*NodePanelPlugin, 0, size)\n\tvalues := make([]NodePanelPlugin, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.PluginList = _field\n\treturn nil\n}\nfunc (p *NodePanelPluginData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NextPageOrCursor = _field\n\treturn nil\n}\nfunc (p *NodePanelPluginData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\n\nfunc (p *NodePanelPluginData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodePanelPluginData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodePanelPluginData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"plugin_list\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.PluginList)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.PluginList {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodePanelPluginData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"next_page_or_cursor\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NextPageOrCursor); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodePanelPluginData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_more\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *NodePanelPluginData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodePanelPluginData(%+v)\", *p)\n\n}\n\ntype NodePanelSearchData struct {\n\tResourceWorkflow *NodePanelWorkflowData `thrift:\"resource_workflow,1,optional\" form:\"resource_workflow\" json:\"resource_workflow,omitempty\" query:\"resource_workflow\"`\n\tProjectWorkflow  *NodePanelWorkflowData `thrift:\"project_workflow,2,optional\" form:\"project_workflow\" json:\"project_workflow,omitempty\" query:\"project_workflow\"`\n\tFavoritePlugin   *NodePanelPluginData   `thrift:\"favorite_plugin,3,optional\" form:\"favorite_plugin\" json:\"favorite_plugin,omitempty\" query:\"favorite_plugin\"`\n\tResourcePlugin   *NodePanelPluginData   `thrift:\"resource_plugin,4,optional\" form:\"resource_plugin\" json:\"resource_plugin,omitempty\" query:\"resource_plugin\"`\n\tProjectPlugin    *NodePanelPluginData   `thrift:\"project_plugin,5,optional\" form:\"project_plugin\" json:\"project_plugin,omitempty\" query:\"project_plugin\"`\n\tStorePlugin      *NodePanelPluginData   `thrift:\"store_plugin,6,optional\" form:\"store_plugin\" json:\"store_plugin,omitempty\" query:\"store_plugin\"`\n}\n\nfunc NewNodePanelSearchData() *NodePanelSearchData {\n\treturn &NodePanelSearchData{}\n}\n\nfunc (p *NodePanelSearchData) InitDefault() {\n}\n\nvar NodePanelSearchData_ResourceWorkflow_DEFAULT *NodePanelWorkflowData\n\nfunc (p *NodePanelSearchData) GetResourceWorkflow() (v *NodePanelWorkflowData) {\n\tif !p.IsSetResourceWorkflow() {\n\t\treturn NodePanelSearchData_ResourceWorkflow_DEFAULT\n\t}\n\treturn p.ResourceWorkflow\n}\n\nvar NodePanelSearchData_ProjectWorkflow_DEFAULT *NodePanelWorkflowData\n\nfunc (p *NodePanelSearchData) GetProjectWorkflow() (v *NodePanelWorkflowData) {\n\tif !p.IsSetProjectWorkflow() {\n\t\treturn NodePanelSearchData_ProjectWorkflow_DEFAULT\n\t}\n\treturn p.ProjectWorkflow\n}\n\nvar NodePanelSearchData_FavoritePlugin_DEFAULT *NodePanelPluginData\n\nfunc (p *NodePanelSearchData) GetFavoritePlugin() (v *NodePanelPluginData) {\n\tif !p.IsSetFavoritePlugin() {\n\t\treturn NodePanelSearchData_FavoritePlugin_DEFAULT\n\t}\n\treturn p.FavoritePlugin\n}\n\nvar NodePanelSearchData_ResourcePlugin_DEFAULT *NodePanelPluginData\n\nfunc (p *NodePanelSearchData) GetResourcePlugin() (v *NodePanelPluginData) {\n\tif !p.IsSetResourcePlugin() {\n\t\treturn NodePanelSearchData_ResourcePlugin_DEFAULT\n\t}\n\treturn p.ResourcePlugin\n}\n\nvar NodePanelSearchData_ProjectPlugin_DEFAULT *NodePanelPluginData\n\nfunc (p *NodePanelSearchData) GetProjectPlugin() (v *NodePanelPluginData) {\n\tif !p.IsSetProjectPlugin() {\n\t\treturn NodePanelSearchData_ProjectPlugin_DEFAULT\n\t}\n\treturn p.ProjectPlugin\n}\n\nvar NodePanelSearchData_StorePlugin_DEFAULT *NodePanelPluginData\n\nfunc (p *NodePanelSearchData) GetStorePlugin() (v *NodePanelPluginData) {\n\tif !p.IsSetStorePlugin() {\n\t\treturn NodePanelSearchData_StorePlugin_DEFAULT\n\t}\n\treturn p.StorePlugin\n}\n\nvar fieldIDToName_NodePanelSearchData = map[int16]string{\n\t1: \"resource_workflow\",\n\t2: \"project_workflow\",\n\t3: \"favorite_plugin\",\n\t4: \"resource_plugin\",\n\t5: \"project_plugin\",\n\t6: \"store_plugin\",\n}\n\nfunc (p *NodePanelSearchData) IsSetResourceWorkflow() bool {\n\treturn p.ResourceWorkflow != nil\n}\n\nfunc (p *NodePanelSearchData) IsSetProjectWorkflow() bool {\n\treturn p.ProjectWorkflow != nil\n}\n\nfunc (p *NodePanelSearchData) IsSetFavoritePlugin() bool {\n\treturn p.FavoritePlugin != nil\n}\n\nfunc (p *NodePanelSearchData) IsSetResourcePlugin() bool {\n\treturn p.ResourcePlugin != nil\n}\n\nfunc (p *NodePanelSearchData) IsSetProjectPlugin() bool {\n\treturn p.ProjectPlugin != nil\n}\n\nfunc (p *NodePanelSearchData) IsSetStorePlugin() bool {\n\treturn p.StorePlugin != nil\n}\n\nfunc (p *NodePanelSearchData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodePanelSearchData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *NodePanelSearchData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewNodePanelWorkflowData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ResourceWorkflow = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchData) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewNodePanelWorkflowData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ProjectWorkflow = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchData) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewNodePanelPluginData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.FavoritePlugin = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchData) ReadField4(iprot thrift.TProtocol) error {\n\t_field := NewNodePanelPluginData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ResourcePlugin = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchData) ReadField5(iprot thrift.TProtocol) error {\n\t_field := NewNodePanelPluginData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ProjectPlugin = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchData) ReadField6(iprot thrift.TProtocol) error {\n\t_field := NewNodePanelPluginData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.StorePlugin = _field\n\treturn nil\n}\n\nfunc (p *NodePanelSearchData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodePanelSearchData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodePanelSearchData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResourceWorkflow() {\n\t\tif err = oprot.WriteFieldBegin(\"resource_workflow\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ResourceWorkflow.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodePanelSearchData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectWorkflow() {\n\t\tif err = oprot.WriteFieldBegin(\"project_workflow\", thrift.STRUCT, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ProjectWorkflow.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *NodePanelSearchData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetFavoritePlugin() {\n\t\tif err = oprot.WriteFieldBegin(\"favorite_plugin\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.FavoritePlugin.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *NodePanelSearchData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetResourcePlugin() {\n\t\tif err = oprot.WriteFieldBegin(\"resource_plugin\", thrift.STRUCT, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ResourcePlugin.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *NodePanelSearchData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectPlugin() {\n\t\tif err = oprot.WriteFieldBegin(\"project_plugin\", thrift.STRUCT, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ProjectPlugin.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *NodePanelSearchData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetStorePlugin() {\n\t\tif err = oprot.WriteFieldBegin(\"store_plugin\", thrift.STRUCT, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.StorePlugin.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\n\nfunc (p *NodePanelSearchData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodePanelSearchData(%+v)\", *p)\n\n}\n\ntype NodePanelSearchResponse struct {\n\tData     *NodePanelSearchData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string               `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp       `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewNodePanelSearchResponse() *NodePanelSearchResponse {\n\treturn &NodePanelSearchResponse{}\n}\n\nfunc (p *NodePanelSearchResponse) InitDefault() {\n}\n\nvar NodePanelSearchResponse_Data_DEFAULT *NodePanelSearchData\n\nfunc (p *NodePanelSearchResponse) GetData() (v *NodePanelSearchData) {\n\tif !p.IsSetData() {\n\t\treturn NodePanelSearchResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *NodePanelSearchResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *NodePanelSearchResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar NodePanelSearchResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *NodePanelSearchResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn NodePanelSearchResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_NodePanelSearchResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *NodePanelSearchResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *NodePanelSearchResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *NodePanelSearchResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_NodePanelSearchResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_NodePanelSearchResponse[fieldId]))\n}\n\nfunc (p *NodePanelSearchResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewNodePanelSearchData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *NodePanelSearchResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *NodePanelSearchResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodePanelSearchResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *NodePanelSearchResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *NodePanelSearchResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *NodePanelSearchResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *NodePanelSearchResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *NodePanelSearchResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"NodePanelSearchResponse(%+v)\", *p)\n\n}\n\ntype ListPublishWorkflowRequest struct {\n\tSpaceID int64 `thrift:\"space_id,2,required\" form:\"space_id,required\" json:\"space_id,string,required\" query:\"space_id,required\"`\n\t//filter\n\tOwnerID *int64 `thrift:\"owner_id,3,optional\" form:\"owner_id\" json:\"owner_id,string,omitempty\" query:\"owner_id\"`\n\t//Search term: agent or author name\n\tName                 *string      `thrift:\"name,4,optional\" form:\"name\" json:\"name,omitempty\" query:\"name\"`\n\tOrderLastPublishTime *OrderByType `thrift:\"order_last_publish_time,5,optional\" form:\"order_last_publish_time\" json:\"order_last_publish_time,omitempty\" query:\"order_last_publish_time\"`\n\tOrderTotalToken      *OrderByType `thrift:\"order_total_token,6,optional\" form:\"order_total_token\" json:\"order_total_token,omitempty\" query:\"order_total_token\"`\n\tSize                 int64        `thrift:\"size,7,required\" form:\"size,required\" json:\"size,required\" query:\"size,required\"`\n\tCursorID             *string      `thrift:\"cursor_id,8,optional\" form:\"cursor_id\" json:\"cursor_id,omitempty\" query:\"cursor_id\"`\n\tWorkflowIds          []string     `thrift:\"workflow_ids,9,optional\" form:\"workflow_ids\" json:\"workflow_ids,omitempty\" query:\"workflow_ids\"`\n\tBase                 *base.Base   `thrift:\"Base,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewListPublishWorkflowRequest() *ListPublishWorkflowRequest {\n\treturn &ListPublishWorkflowRequest{}\n}\n\nfunc (p *ListPublishWorkflowRequest) InitDefault() {\n}\n\nfunc (p *ListPublishWorkflowRequest) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nvar ListPublishWorkflowRequest_OwnerID_DEFAULT int64\n\nfunc (p *ListPublishWorkflowRequest) GetOwnerID() (v int64) {\n\tif !p.IsSetOwnerID() {\n\t\treturn ListPublishWorkflowRequest_OwnerID_DEFAULT\n\t}\n\treturn *p.OwnerID\n}\n\nvar ListPublishWorkflowRequest_Name_DEFAULT string\n\nfunc (p *ListPublishWorkflowRequest) GetName() (v string) {\n\tif !p.IsSetName() {\n\t\treturn ListPublishWorkflowRequest_Name_DEFAULT\n\t}\n\treturn *p.Name\n}\n\nvar ListPublishWorkflowRequest_OrderLastPublishTime_DEFAULT OrderByType\n\nfunc (p *ListPublishWorkflowRequest) GetOrderLastPublishTime() (v OrderByType) {\n\tif !p.IsSetOrderLastPublishTime() {\n\t\treturn ListPublishWorkflowRequest_OrderLastPublishTime_DEFAULT\n\t}\n\treturn *p.OrderLastPublishTime\n}\n\nvar ListPublishWorkflowRequest_OrderTotalToken_DEFAULT OrderByType\n\nfunc (p *ListPublishWorkflowRequest) GetOrderTotalToken() (v OrderByType) {\n\tif !p.IsSetOrderTotalToken() {\n\t\treturn ListPublishWorkflowRequest_OrderTotalToken_DEFAULT\n\t}\n\treturn *p.OrderTotalToken\n}\n\nfunc (p *ListPublishWorkflowRequest) GetSize() (v int64) {\n\treturn p.Size\n}\n\nvar ListPublishWorkflowRequest_CursorID_DEFAULT string\n\nfunc (p *ListPublishWorkflowRequest) GetCursorID() (v string) {\n\tif !p.IsSetCursorID() {\n\t\treturn ListPublishWorkflowRequest_CursorID_DEFAULT\n\t}\n\treturn *p.CursorID\n}\n\nvar ListPublishWorkflowRequest_WorkflowIds_DEFAULT []string\n\nfunc (p *ListPublishWorkflowRequest) GetWorkflowIds() (v []string) {\n\tif !p.IsSetWorkflowIds() {\n\t\treturn ListPublishWorkflowRequest_WorkflowIds_DEFAULT\n\t}\n\treturn p.WorkflowIds\n}\n\nvar ListPublishWorkflowRequest_Base_DEFAULT *base.Base\n\nfunc (p *ListPublishWorkflowRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ListPublishWorkflowRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ListPublishWorkflowRequest = map[int16]string{\n\t2:   \"space_id\",\n\t3:   \"owner_id\",\n\t4:   \"name\",\n\t5:   \"order_last_publish_time\",\n\t6:   \"order_total_token\",\n\t7:   \"size\",\n\t8:   \"cursor_id\",\n\t9:   \"workflow_ids\",\n\t255: \"Base\",\n}\n\nfunc (p *ListPublishWorkflowRequest) IsSetOwnerID() bool {\n\treturn p.OwnerID != nil\n}\n\nfunc (p *ListPublishWorkflowRequest) IsSetName() bool {\n\treturn p.Name != nil\n}\n\nfunc (p *ListPublishWorkflowRequest) IsSetOrderLastPublishTime() bool {\n\treturn p.OrderLastPublishTime != nil\n}\n\nfunc (p *ListPublishWorkflowRequest) IsSetOrderTotalToken() bool {\n\treturn p.OrderTotalToken != nil\n}\n\nfunc (p *ListPublishWorkflowRequest) IsSetCursorID() bool {\n\treturn p.CursorID != nil\n}\n\nfunc (p *ListPublishWorkflowRequest) IsSetWorkflowIds() bool {\n\treturn p.WorkflowIds != nil\n}\n\nfunc (p *ListPublishWorkflowRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ListPublishWorkflowRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetSpaceID bool = false\n\tvar issetSize bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSpaceID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetSize = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetSpaceID {\n\t\tfieldId = 2\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetSize {\n\t\tfieldId = 7\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListPublishWorkflowRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ListPublishWorkflowRequest[fieldId]))\n}\n\nfunc (p *ListPublishWorkflowRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *ListPublishWorkflowRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.OwnerID = _field\n\treturn nil\n}\nfunc (p *ListPublishWorkflowRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ListPublishWorkflowRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *OrderByType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := OrderByType(v)\n\t\t_field = &tmp\n\t}\n\tp.OrderLastPublishTime = _field\n\treturn nil\n}\nfunc (p *ListPublishWorkflowRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *OrderByType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := OrderByType(v)\n\t\t_field = &tmp\n\t}\n\tp.OrderTotalToken = _field\n\treturn nil\n}\nfunc (p *ListPublishWorkflowRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Size = _field\n\treturn nil\n}\nfunc (p *ListPublishWorkflowRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CursorID = _field\n\treturn nil\n}\nfunc (p *ListPublishWorkflowRequest) ReadField9(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]string, 0, size)\n\tfor i := 0; i < size; i++ {\n\n\t\tvar _elem string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_elem = v\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowIds = _field\n\treturn nil\n}\nfunc (p *ListPublishWorkflowRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ListPublishWorkflowRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPublishWorkflowRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListPublishWorkflowRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ListPublishWorkflowRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOwnerID() {\n\t\tif err = oprot.WriteFieldBegin(\"owner_id\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.OwnerID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ListPublishWorkflowRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetName() {\n\t\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ListPublishWorkflowRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderLastPublishTime() {\n\t\tif err = oprot.WriteFieldBegin(\"order_last_publish_time\", thrift.I32, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.OrderLastPublishTime)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ListPublishWorkflowRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOrderTotalToken() {\n\t\tif err = oprot.WriteFieldBegin(\"order_total_token\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.OrderTotalToken)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ListPublishWorkflowRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"size\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Size); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ListPublishWorkflowRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCursorID() {\n\t\tif err = oprot.WriteFieldBegin(\"cursor_id\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CursorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ListPublishWorkflowRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowIds() {\n\t\tif err = oprot.WriteFieldBegin(\"workflow_ids\", thrift.LIST, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRING, len(p.WorkflowIds)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.WorkflowIds {\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ListPublishWorkflowRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListPublishWorkflowRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListPublishWorkflowRequest(%+v)\", *p)\n\n}\n\ntype PublishBasicWorkflowData struct {\n\t//Information on recently released projects\n\tBasicInfo *WorkflowBasicInfo `thrift:\"basic_info,1\" form:\"basic_info\" json:\"basic_info\" query:\"basic_info\"`\n\tUserInfo  *UserInfo          `thrift:\"user_info,2\" form:\"user_info\" json:\"user_info\" query:\"user_info\"`\n\t//Published channel aggregation\n\tConnectors []*ConnectorInfo `thrift:\"connectors,3\" form:\"connectors\" json:\"connectors\" query:\"connectors\"`\n\t//Total token consumption as of yesterday\n\tTotalToken string `thrift:\"total_token,4\" form:\"total_token\" json:\"total_token\" query:\"total_token\"`\n}\n\nfunc NewPublishBasicWorkflowData() *PublishBasicWorkflowData {\n\treturn &PublishBasicWorkflowData{}\n}\n\nfunc (p *PublishBasicWorkflowData) InitDefault() {\n}\n\nvar PublishBasicWorkflowData_BasicInfo_DEFAULT *WorkflowBasicInfo\n\nfunc (p *PublishBasicWorkflowData) GetBasicInfo() (v *WorkflowBasicInfo) {\n\tif !p.IsSetBasicInfo() {\n\t\treturn PublishBasicWorkflowData_BasicInfo_DEFAULT\n\t}\n\treturn p.BasicInfo\n}\n\nvar PublishBasicWorkflowData_UserInfo_DEFAULT *UserInfo\n\nfunc (p *PublishBasicWorkflowData) GetUserInfo() (v *UserInfo) {\n\tif !p.IsSetUserInfo() {\n\t\treturn PublishBasicWorkflowData_UserInfo_DEFAULT\n\t}\n\treturn p.UserInfo\n}\n\nfunc (p *PublishBasicWorkflowData) GetConnectors() (v []*ConnectorInfo) {\n\treturn p.Connectors\n}\n\nfunc (p *PublishBasicWorkflowData) GetTotalToken() (v string) {\n\treturn p.TotalToken\n}\n\nvar fieldIDToName_PublishBasicWorkflowData = map[int16]string{\n\t1: \"basic_info\",\n\t2: \"user_info\",\n\t3: \"connectors\",\n\t4: \"total_token\",\n}\n\nfunc (p *PublishBasicWorkflowData) IsSetBasicInfo() bool {\n\treturn p.BasicInfo != nil\n}\n\nfunc (p *PublishBasicWorkflowData) IsSetUserInfo() bool {\n\treturn p.UserInfo != nil\n}\n\nfunc (p *PublishBasicWorkflowData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishBasicWorkflowData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishBasicWorkflowData) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowBasicInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BasicInfo = _field\n\treturn nil\n}\nfunc (p *PublishBasicWorkflowData) ReadField2(iprot thrift.TProtocol) error {\n\t_field := NewUserInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.UserInfo = _field\n\treturn nil\n}\nfunc (p *PublishBasicWorkflowData) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ConnectorInfo, 0, size)\n\tvalues := make([]ConnectorInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Connectors = _field\n\treturn nil\n}\nfunc (p *PublishBasicWorkflowData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.TotalToken = _field\n\treturn nil\n}\n\nfunc (p *PublishBasicWorkflowData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishBasicWorkflowData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishBasicWorkflowData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"basic_info\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BasicInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishBasicWorkflowData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"user_info\", thrift.STRUCT, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.UserInfo.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishBasicWorkflowData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"connectors\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Connectors)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Connectors {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishBasicWorkflowData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total_token\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.TotalToken); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *PublishBasicWorkflowData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishBasicWorkflowData(%+v)\", *p)\n\n}\n\ntype PublishWorkflowListData struct {\n\tWorkflows    []*PublishBasicWorkflowData `thrift:\"workflows,1\" form:\"workflows\" json:\"workflows\" query:\"workflows\"`\n\tTotal        int32                       `thrift:\"total,2\" form:\"total\" json:\"total\" query:\"total\"`\n\tHasMore      bool                        `thrift:\"has_more,3\" form:\"has_more\" json:\"has_more\" query:\"has_more\"`\n\tNextCursorID string                      `thrift:\"next_cursor_id,4\" form:\"next_cursor_id\" json:\"next_cursor_id\" query:\"next_cursor_id\"`\n}\n\nfunc NewPublishWorkflowListData() *PublishWorkflowListData {\n\treturn &PublishWorkflowListData{}\n}\n\nfunc (p *PublishWorkflowListData) InitDefault() {\n}\n\nfunc (p *PublishWorkflowListData) GetWorkflows() (v []*PublishBasicWorkflowData) {\n\treturn p.Workflows\n}\n\nfunc (p *PublishWorkflowListData) GetTotal() (v int32) {\n\treturn p.Total\n}\n\nfunc (p *PublishWorkflowListData) GetHasMore() (v bool) {\n\treturn p.HasMore\n}\n\nfunc (p *PublishWorkflowListData) GetNextCursorID() (v string) {\n\treturn p.NextCursorID\n}\n\nvar fieldIDToName_PublishWorkflowListData = map[int16]string{\n\t1: \"workflows\",\n\t2: \"total\",\n\t3: \"has_more\",\n\t4: \"next_cursor_id\",\n}\n\nfunc (p *PublishWorkflowListData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_PublishWorkflowListData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *PublishWorkflowListData) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*PublishBasicWorkflowData, 0, size)\n\tvalues := make([]PublishBasicWorkflowData, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Workflows = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowListData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Total = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowListData) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.HasMore = _field\n\treturn nil\n}\nfunc (p *PublishWorkflowListData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.NextCursorID = _field\n\treturn nil\n}\n\nfunc (p *PublishWorkflowListData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishWorkflowListData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *PublishWorkflowListData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflows\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Workflows)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Workflows {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *PublishWorkflowListData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"total\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(p.Total); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *PublishWorkflowListData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"has_more\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.HasMore); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *PublishWorkflowListData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"next_cursor_id\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.NextCursorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\n\nfunc (p *PublishWorkflowListData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"PublishWorkflowListData(%+v)\", *p)\n\n}\n\ntype ConnectorInfo struct {\n\tID   string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\tName string `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tIcon string `thrift:\"icon,3\" form:\"icon\" json:\"icon\" query:\"icon\"`\n}\n\nfunc NewConnectorInfo() *ConnectorInfo {\n\treturn &ConnectorInfo{}\n}\n\nfunc (p *ConnectorInfo) InitDefault() {\n}\n\nfunc (p *ConnectorInfo) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *ConnectorInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ConnectorInfo) GetIcon() (v string) {\n\treturn p.Icon\n}\n\nvar fieldIDToName_ConnectorInfo = map[int16]string{\n\t1: \"id\",\n\t2: \"name\",\n\t3: \"icon\",\n}\n\nfunc (p *ConnectorInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConnectorInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ConnectorInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Icon = _field\n\treturn nil\n}\n\nfunc (p *ConnectorInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConnectorInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ConnectorInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Icon); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ConnectorInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConnectorInfo(%+v)\", *p)\n\n}\n\ntype WorkflowBasicInfo struct {\n\tID             int64          `thrift:\"id,1\" form:\"id\" json:\"id,string\" query:\"id\"`\n\tName           string         `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tDescription    string         `thrift:\"description,3\" form:\"description\" json:\"description\" query:\"description\"`\n\tIconURI        string         `thrift:\"icon_uri,4\" form:\"icon_uri\" json:\"icon_uri\" query:\"icon_uri\"`\n\tIconURL        string         `thrift:\"icon_url,5\" form:\"icon_url\" json:\"icon_url\" query:\"icon_url\"`\n\tSpaceID        int64          `thrift:\"space_id,6\" form:\"space_id\" json:\"space_id,string\" query:\"space_id\"`\n\tOwnerID        int64          `thrift:\"owner_id,7\" form:\"owner_id\" json:\"owner_id,string\" query:\"owner_id\"`\n\tCreateTime     int64          `thrift:\"create_time,8\" form:\"create_time\" json:\"create_time\" query:\"create_time\"`\n\tUpdateTime     int64          `thrift:\"update_time,9\" form:\"update_time\" json:\"update_time\" query:\"update_time\"`\n\tPublishTime    int64          `thrift:\"publish_time,10\" form:\"publish_time\" json:\"publish_time\" query:\"publish_time\"`\n\tPermissionType PermissionType `thrift:\"permission_type,11\" form:\"permission_type\" json:\"permission_type\" query:\"permission_type\"`\n}\n\nfunc NewWorkflowBasicInfo() *WorkflowBasicInfo {\n\treturn &WorkflowBasicInfo{}\n}\n\nfunc (p *WorkflowBasicInfo) InitDefault() {\n}\n\nfunc (p *WorkflowBasicInfo) GetID() (v int64) {\n\treturn p.ID\n}\n\nfunc (p *WorkflowBasicInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *WorkflowBasicInfo) GetDescription() (v string) {\n\treturn p.Description\n}\n\nfunc (p *WorkflowBasicInfo) GetIconURI() (v string) {\n\treturn p.IconURI\n}\n\nfunc (p *WorkflowBasicInfo) GetIconURL() (v string) {\n\treturn p.IconURL\n}\n\nfunc (p *WorkflowBasicInfo) GetSpaceID() (v int64) {\n\treturn p.SpaceID\n}\n\nfunc (p *WorkflowBasicInfo) GetOwnerID() (v int64) {\n\treturn p.OwnerID\n}\n\nfunc (p *WorkflowBasicInfo) GetCreateTime() (v int64) {\n\treturn p.CreateTime\n}\n\nfunc (p *WorkflowBasicInfo) GetUpdateTime() (v int64) {\n\treturn p.UpdateTime\n}\n\nfunc (p *WorkflowBasicInfo) GetPublishTime() (v int64) {\n\treturn p.PublishTime\n}\n\nfunc (p *WorkflowBasicInfo) GetPermissionType() (v PermissionType) {\n\treturn p.PermissionType\n}\n\nvar fieldIDToName_WorkflowBasicInfo = map[int16]string{\n\t1:  \"id\",\n\t2:  \"name\",\n\t3:  \"description\",\n\t4:  \"icon_uri\",\n\t5:  \"icon_url\",\n\t6:  \"space_id\",\n\t7:  \"owner_id\",\n\t8:  \"create_time\",\n\t9:  \"update_time\",\n\t10: \"publish_time\",\n\t11: \"permission_type\",\n}\n\nfunc (p *WorkflowBasicInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowBasicInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowBasicInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *WorkflowBasicInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *WorkflowBasicInfo) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Description = _field\n\treturn nil\n}\nfunc (p *WorkflowBasicInfo) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURI = _field\n\treturn nil\n}\nfunc (p *WorkflowBasicInfo) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IconURL = _field\n\treturn nil\n}\nfunc (p *WorkflowBasicInfo) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *WorkflowBasicInfo) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.OwnerID = _field\n\treturn nil\n}\nfunc (p *WorkflowBasicInfo) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *WorkflowBasicInfo) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *WorkflowBasicInfo) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.PublishTime = _field\n\treturn nil\n}\nfunc (p *WorkflowBasicInfo) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field PermissionType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = PermissionType(v)\n\t}\n\tp.PermissionType = _field\n\treturn nil\n}\n\nfunc (p *WorkflowBasicInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowBasicInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowBasicInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowBasicInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowBasicInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"description\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Description); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowBasicInfo) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_uri\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURI); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowBasicInfo) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"icon_url\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.IconURL); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowBasicInfo) writeField6(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"space_id\", thrift.I64, 6); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.SpaceID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkflowBasicInfo) writeField7(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"owner_id\", thrift.I64, 7); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.OwnerID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkflowBasicInfo) writeField8(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"create_time\", thrift.I64, 8); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WorkflowBasicInfo) writeField9(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"update_time\", thrift.I64, 9); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.UpdateTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *WorkflowBasicInfo) writeField10(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"publish_time\", thrift.I64, 10); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.PublishTime); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *WorkflowBasicInfo) writeField11(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"permission_type\", thrift.I32, 11); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.PermissionType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\n\nfunc (p *WorkflowBasicInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowBasicInfo(%+v)\", *p)\n\n}\n\ntype ListPublishWorkflowResponse struct {\n\tData     *PublishWorkflowListData `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64                    `thrift:\"code,253\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg      string                   `thrift:\"msg,254\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tBaseResp *base.BaseResp           `thrift:\"BaseResp,255,optional\" form:\"-\" json:\"-\" query:\"-\"`\n}\n\nfunc NewListPublishWorkflowResponse() *ListPublishWorkflowResponse {\n\treturn &ListPublishWorkflowResponse{}\n}\n\nfunc (p *ListPublishWorkflowResponse) InitDefault() {\n}\n\nvar ListPublishWorkflowResponse_Data_DEFAULT *PublishWorkflowListData\n\nfunc (p *ListPublishWorkflowResponse) GetData() (v *PublishWorkflowListData) {\n\tif !p.IsSetData() {\n\t\treturn ListPublishWorkflowResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nfunc (p *ListPublishWorkflowResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ListPublishWorkflowResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ListPublishWorkflowResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ListPublishWorkflowResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ListPublishWorkflowResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ListPublishWorkflowResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ListPublishWorkflowResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *ListPublishWorkflowResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ListPublishWorkflowResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ListPublishWorkflowResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ListPublishWorkflowResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPublishWorkflowListData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ListPublishWorkflowResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ListPublishWorkflowResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ListPublishWorkflowResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ListPublishWorkflowResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPublishWorkflowResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ListPublishWorkflowResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Data.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ListPublishWorkflowResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ListPublishWorkflowResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ListPublishWorkflowResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBaseResp() {\n\t\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ListPublishWorkflowResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ListPublishWorkflowResponse(%+v)\", *p)\n\n}\n\ntype ValidateTreeRequest struct {\n\tWorkflowID    string     `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tBindProjectID string     `thrift:\"bind_project_id,2\" form:\"bind_project_id\" json:\"bind_project_id\" query:\"bind_project_id\"`\n\tBindBotID     string     `thrift:\"bind_bot_id,3\" form:\"bind_bot_id\" json:\"bind_bot_id\" query:\"bind_bot_id\"`\n\tSchema        *string    `thrift:\"schema,4,optional\" form:\"schema\" json:\"schema,omitempty\" query:\"schema\"`\n\tBase          *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewValidateTreeRequest() *ValidateTreeRequest {\n\treturn &ValidateTreeRequest{}\n}\n\nfunc (p *ValidateTreeRequest) InitDefault() {\n}\n\nfunc (p *ValidateTreeRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *ValidateTreeRequest) GetBindProjectID() (v string) {\n\treturn p.BindProjectID\n}\n\nfunc (p *ValidateTreeRequest) GetBindBotID() (v string) {\n\treturn p.BindBotID\n}\n\nvar ValidateTreeRequest_Schema_DEFAULT string\n\nfunc (p *ValidateTreeRequest) GetSchema() (v string) {\n\tif !p.IsSetSchema() {\n\t\treturn ValidateTreeRequest_Schema_DEFAULT\n\t}\n\treturn *p.Schema\n}\n\nvar ValidateTreeRequest_Base_DEFAULT *base.Base\n\nfunc (p *ValidateTreeRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ValidateTreeRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ValidateTreeRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"bind_project_id\",\n\t3:   \"bind_bot_id\",\n\t4:   \"schema\",\n\t255: \"Base\",\n}\n\nfunc (p *ValidateTreeRequest) IsSetSchema() bool {\n\treturn p.Schema != nil\n}\n\nfunc (p *ValidateTreeRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ValidateTreeRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ValidateTreeRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ValidateTreeRequest[fieldId]))\n}\n\nfunc (p *ValidateTreeRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *ValidateTreeRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BindProjectID = _field\n\treturn nil\n}\nfunc (p *ValidateTreeRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.BindBotID = _field\n\treturn nil\n}\nfunc (p *ValidateTreeRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Schema = _field\n\treturn nil\n}\nfunc (p *ValidateTreeRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ValidateTreeRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateTreeRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ValidateTreeRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ValidateTreeRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bind_project_id\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BindProjectID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ValidateTreeRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"bind_bot_id\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.BindBotID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ValidateTreeRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSchema() {\n\t\tif err = oprot.WriteFieldBegin(\"schema\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Schema); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ValidateTreeRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ValidateTreeRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ValidateTreeRequest(%+v)\", *p)\n\n}\n\ntype ValidateTreeInfo struct {\n\tWorkflowID string               `thrift:\"workflow_id,1\" form:\"workflow_id\" json:\"workflow_id\" query:\"workflow_id\"`\n\tName       string               `thrift:\"name,2\" form:\"name\" json:\"name\" query:\"name\"`\n\tErrors     []*ValidateErrorData `thrift:\"errors,3\" form:\"errors\" json:\"errors\" query:\"errors\"`\n}\n\nfunc NewValidateTreeInfo() *ValidateTreeInfo {\n\treturn &ValidateTreeInfo{}\n}\n\nfunc (p *ValidateTreeInfo) InitDefault() {\n}\n\nfunc (p *ValidateTreeInfo) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *ValidateTreeInfo) GetName() (v string) {\n\treturn p.Name\n}\n\nfunc (p *ValidateTreeInfo) GetErrors() (v []*ValidateErrorData) {\n\treturn p.Errors\n}\n\nvar fieldIDToName_ValidateTreeInfo = map[int16]string{\n\t1: \"workflow_id\",\n\t2: \"name\",\n\t3: \"errors\",\n}\n\nfunc (p *ValidateTreeInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ValidateTreeInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ValidateTreeInfo) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *ValidateTreeInfo) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Name = _field\n\treturn nil\n}\nfunc (p *ValidateTreeInfo) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ValidateErrorData, 0, size)\n\tvalues := make([]ValidateErrorData, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Errors = _field\n\treturn nil\n}\n\nfunc (p *ValidateTreeInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateTreeInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ValidateTreeInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ValidateTreeInfo) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"name\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Name); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ValidateTreeInfo) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"errors\", thrift.LIST, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Errors)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Errors {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *ValidateTreeInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ValidateTreeInfo(%+v)\", *p)\n\n}\n\ntype ValidateTreeResponse struct {\n\tData     []*ValidateTreeInfo `thrift:\"data,1\" form:\"data\" json:\"data\" query:\"data\"`\n\tCode     int64               `thrift:\"code,253,required\" form:\"code,required\" json:\"code,required\" query:\"code,required\"`\n\tMsg      string              `thrift:\"msg,254,required\" form:\"msg,required\" json:\"msg,required\" query:\"msg,required\"`\n\tBaseResp *base.BaseResp      `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewValidateTreeResponse() *ValidateTreeResponse {\n\treturn &ValidateTreeResponse{}\n}\n\nfunc (p *ValidateTreeResponse) InitDefault() {\n}\n\nfunc (p *ValidateTreeResponse) GetData() (v []*ValidateTreeInfo) {\n\treturn p.Data\n}\n\nfunc (p *ValidateTreeResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *ValidateTreeResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar ValidateTreeResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ValidateTreeResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ValidateTreeResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ValidateTreeResponse = map[int16]string{\n\t1:   \"data\",\n\t253: \"code\",\n\t254: \"msg\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ValidateTreeResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ValidateTreeResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetMsg bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 253:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField253(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 254:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField254(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetMsg = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 253\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetMsg {\n\t\tfieldId = 254\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ValidateTreeResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ValidateTreeResponse[fieldId]))\n}\n\nfunc (p *ValidateTreeResponse) ReadField1(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*ValidateTreeInfo, 0, size)\n\tvalues := make([]ValidateTreeInfo, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ValidateTreeResponse) ReadField253(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *ValidateTreeResponse) ReadField254(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *ValidateTreeResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ValidateTreeResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateTreeResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField253(oprot); err != nil {\n\t\t\tfieldId = 253\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField254(oprot); err != nil {\n\t\t\tfieldId = 254\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ValidateTreeResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Data)); err != nil {\n\t\treturn err\n\t}\n\tfor _, v := range p.Data {\n\t\tif err := v.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteListEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ValidateTreeResponse) writeField253(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 253); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 253 end error: \", p), err)\n}\nfunc (p *ValidateTreeResponse) writeField254(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 254); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 254 end error: \", p), err)\n}\nfunc (p *ValidateTreeResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ValidateTreeResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ValidateTreeResponse(%+v)\", *p)\n\n}\n\n// OpenAPI\ntype OpenAPIRunFlowRequest struct {\n\tWorkflowID string            `thrift:\"WorkflowID,1\" json:\"workflow_id\" form:\"WorkflowID\" query:\"WorkflowID\"`\n\tParameters *string           `thrift:\"Parameters,2,optional\" json:\"parameters\" form:\"Parameters\" query:\"Parameters\"`\n\tExt        map[string]string `thrift:\"Ext,3\" json:\"ext\" form:\"Ext\" query:\"Ext\"`\n\tBotID      *string           `thrift:\"BotID,4,optional\" json:\"bot_id\" form:\"BotID\" query:\"BotID\"`\n\tIsAsync    *bool             `thrift:\"IsAsync,5,optional\" json:\"is_async\" form:\"IsAsync\" query:\"IsAsync\"`\n\t// Default to official run, practice run needs to pass in \"DEBUG\"\n\tExecuteMode *string `thrift:\"ExecuteMode,6,optional\" json:\"execute_mode\" form:\"ExecuteMode\" query:\"ExecuteMode\"`\n\t// Version number, maybe workflow version or project version\n\tVersion *string `thrift:\"Version,7,optional\" json:\"version\" form:\"Version\" query:\"Version\"`\n\t// Channel ID, such as ui builder, template, store, etc\n\tConnectorID *string `thrift:\"ConnectorID,8,optional\" json:\"connector_id\" form:\"ConnectorID\" query:\"ConnectorID\"`\n\t// App ID referencing workflow\n\tAppID *string `thrift:\"AppID,9,optional\" json:\"app_id\" form:\"AppID\" query:\"AppID\"`\n\t// Project ID, for compatibility with UI builder\n\tProjectID *string    `thrift:\"ProjectID,10,optional\" json:\"project_id\" form:\"ProjectID\" query:\"ProjectID\"`\n\tBase      *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewOpenAPIRunFlowRequest() *OpenAPIRunFlowRequest {\n\treturn &OpenAPIRunFlowRequest{}\n}\n\nfunc (p *OpenAPIRunFlowRequest) InitDefault() {\n}\n\nfunc (p *OpenAPIRunFlowRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar OpenAPIRunFlowRequest_Parameters_DEFAULT string\n\nfunc (p *OpenAPIRunFlowRequest) GetParameters() (v string) {\n\tif !p.IsSetParameters() {\n\t\treturn OpenAPIRunFlowRequest_Parameters_DEFAULT\n\t}\n\treturn *p.Parameters\n}\n\nfunc (p *OpenAPIRunFlowRequest) GetExt() (v map[string]string) {\n\treturn p.Ext\n}\n\nvar OpenAPIRunFlowRequest_BotID_DEFAULT string\n\nfunc (p *OpenAPIRunFlowRequest) GetBotID() (v string) {\n\tif !p.IsSetBotID() {\n\t\treturn OpenAPIRunFlowRequest_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar OpenAPIRunFlowRequest_IsAsync_DEFAULT bool\n\nfunc (p *OpenAPIRunFlowRequest) GetIsAsync() (v bool) {\n\tif !p.IsSetIsAsync() {\n\t\treturn OpenAPIRunFlowRequest_IsAsync_DEFAULT\n\t}\n\treturn *p.IsAsync\n}\n\nvar OpenAPIRunFlowRequest_ExecuteMode_DEFAULT string\n\nfunc (p *OpenAPIRunFlowRequest) GetExecuteMode() (v string) {\n\tif !p.IsSetExecuteMode() {\n\t\treturn OpenAPIRunFlowRequest_ExecuteMode_DEFAULT\n\t}\n\treturn *p.ExecuteMode\n}\n\nvar OpenAPIRunFlowRequest_Version_DEFAULT string\n\nfunc (p *OpenAPIRunFlowRequest) GetVersion() (v string) {\n\tif !p.IsSetVersion() {\n\t\treturn OpenAPIRunFlowRequest_Version_DEFAULT\n\t}\n\treturn *p.Version\n}\n\nvar OpenAPIRunFlowRequest_ConnectorID_DEFAULT string\n\nfunc (p *OpenAPIRunFlowRequest) GetConnectorID() (v string) {\n\tif !p.IsSetConnectorID() {\n\t\treturn OpenAPIRunFlowRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar OpenAPIRunFlowRequest_AppID_DEFAULT string\n\nfunc (p *OpenAPIRunFlowRequest) GetAppID() (v string) {\n\tif !p.IsSetAppID() {\n\t\treturn OpenAPIRunFlowRequest_AppID_DEFAULT\n\t}\n\treturn *p.AppID\n}\n\nvar OpenAPIRunFlowRequest_ProjectID_DEFAULT string\n\nfunc (p *OpenAPIRunFlowRequest) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn OpenAPIRunFlowRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar OpenAPIRunFlowRequest_Base_DEFAULT *base.Base\n\nfunc (p *OpenAPIRunFlowRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn OpenAPIRunFlowRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_OpenAPIRunFlowRequest = map[int16]string{\n\t1:   \"WorkflowID\",\n\t2:   \"Parameters\",\n\t3:   \"Ext\",\n\t4:   \"BotID\",\n\t5:   \"IsAsync\",\n\t6:   \"ExecuteMode\",\n\t7:   \"Version\",\n\t8:   \"ConnectorID\",\n\t9:   \"AppID\",\n\t10:  \"ProjectID\",\n\t255: \"Base\",\n}\n\nfunc (p *OpenAPIRunFlowRequest) IsSetParameters() bool {\n\treturn p.Parameters != nil\n}\n\nfunc (p *OpenAPIRunFlowRequest) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *OpenAPIRunFlowRequest) IsSetIsAsync() bool {\n\treturn p.IsAsync != nil\n}\n\nfunc (p *OpenAPIRunFlowRequest) IsSetExecuteMode() bool {\n\treturn p.ExecuteMode != nil\n}\n\nfunc (p *OpenAPIRunFlowRequest) IsSetVersion() bool {\n\treturn p.Version != nil\n}\n\nfunc (p *OpenAPIRunFlowRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *OpenAPIRunFlowRequest) IsSetAppID() bool {\n\treturn p.AppID != nil\n}\n\nfunc (p *OpenAPIRunFlowRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *OpenAPIRunFlowRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *OpenAPIRunFlowRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIRunFlowRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIRunFlowRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Ext = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.IsAsync = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteMode = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AppID = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIRunFlowRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIRunFlowRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIRunFlowRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"Parameters\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Parameters); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Ext\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Ext)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Ext {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"BotID\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetIsAsync() {\n\t\tif err = oprot.WriteFieldBegin(\"IsAsync\", thrift.BOOL, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.IsAsync); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteMode() {\n\t\tif err = oprot.WriteFieldBegin(\"ExecuteMode\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExecuteMode); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"Version\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Version); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAppID() {\n\t\tif err = oprot.WriteFieldBegin(\"AppID\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.AppID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"ProjectID\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *OpenAPIRunFlowRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIRunFlowRequest(%+v)\", *p)\n\n}\n\ntype OpenAPIRunFlowResponse struct {\n\t// generic field\n\tCode int64 `thrift:\"Code,1,required\" json:\"code\" form:\"Code,required\" query:\"Code,required\"`\n\t// Success for success, failure for simple error messages,\n\tMsg *string `thrift:\"Msg,2,optional\" json:\"msg\" form:\"Msg\" query:\"Msg\"`\n\t// Synchronized return field\n\tData     *string `thrift:\"Data,3,optional\" json:\"data\" form:\"Data\" query:\"Data\"`\n\tToken    *int64  `thrift:\"Token,4,optional\" json:\"token\" form:\"Token\" query:\"Token\"`\n\tCost     *string `thrift:\"Cost,5,optional\" json:\"cost\" form:\"Cost\" query:\"Cost\"`\n\tDebugUrl *string `thrift:\"DebugUrl,6,optional\" json:\"debug_url\" form:\"DebugUrl\" query:\"DebugUrl\"`\n\t// asynchronous return field\n\tExecuteID *string        `thrift:\"ExecuteID,50,optional\" json:\"execute_id\" form:\"ExecuteID\" query:\"ExecuteID\"`\n\tBaseResp  *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewOpenAPIRunFlowResponse() *OpenAPIRunFlowResponse {\n\treturn &OpenAPIRunFlowResponse{}\n}\n\nfunc (p *OpenAPIRunFlowResponse) InitDefault() {\n}\n\nfunc (p *OpenAPIRunFlowResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nvar OpenAPIRunFlowResponse_Msg_DEFAULT string\n\nfunc (p *OpenAPIRunFlowResponse) GetMsg() (v string) {\n\tif !p.IsSetMsg() {\n\t\treturn OpenAPIRunFlowResponse_Msg_DEFAULT\n\t}\n\treturn *p.Msg\n}\n\nvar OpenAPIRunFlowResponse_Data_DEFAULT string\n\nfunc (p *OpenAPIRunFlowResponse) GetData() (v string) {\n\tif !p.IsSetData() {\n\t\treturn OpenAPIRunFlowResponse_Data_DEFAULT\n\t}\n\treturn *p.Data\n}\n\nvar OpenAPIRunFlowResponse_Token_DEFAULT int64\n\nfunc (p *OpenAPIRunFlowResponse) GetToken() (v int64) {\n\tif !p.IsSetToken() {\n\t\treturn OpenAPIRunFlowResponse_Token_DEFAULT\n\t}\n\treturn *p.Token\n}\n\nvar OpenAPIRunFlowResponse_Cost_DEFAULT string\n\nfunc (p *OpenAPIRunFlowResponse) GetCost() (v string) {\n\tif !p.IsSetCost() {\n\t\treturn OpenAPIRunFlowResponse_Cost_DEFAULT\n\t}\n\treturn *p.Cost\n}\n\nvar OpenAPIRunFlowResponse_DebugUrl_DEFAULT string\n\nfunc (p *OpenAPIRunFlowResponse) GetDebugUrl() (v string) {\n\tif !p.IsSetDebugUrl() {\n\t\treturn OpenAPIRunFlowResponse_DebugUrl_DEFAULT\n\t}\n\treturn *p.DebugUrl\n}\n\nvar OpenAPIRunFlowResponse_ExecuteID_DEFAULT string\n\nfunc (p *OpenAPIRunFlowResponse) GetExecuteID() (v string) {\n\tif !p.IsSetExecuteID() {\n\t\treturn OpenAPIRunFlowResponse_ExecuteID_DEFAULT\n\t}\n\treturn *p.ExecuteID\n}\n\nvar OpenAPIRunFlowResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *OpenAPIRunFlowResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn OpenAPIRunFlowResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_OpenAPIRunFlowResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Msg\",\n\t3:   \"Data\",\n\t4:   \"Token\",\n\t5:   \"Cost\",\n\t6:   \"DebugUrl\",\n\t50:  \"ExecuteID\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *OpenAPIRunFlowResponse) IsSetMsg() bool {\n\treturn p.Msg != nil\n}\n\nfunc (p *OpenAPIRunFlowResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *OpenAPIRunFlowResponse) IsSetToken() bool {\n\treturn p.Token != nil\n}\n\nfunc (p *OpenAPIRunFlowResponse) IsSetCost() bool {\n\treturn p.Cost != nil\n}\n\nfunc (p *OpenAPIRunFlowResponse) IsSetDebugUrl() bool {\n\treturn p.DebugUrl != nil\n}\n\nfunc (p *OpenAPIRunFlowResponse) IsSetExecuteID() bool {\n\treturn p.ExecuteID != nil\n}\n\nfunc (p *OpenAPIRunFlowResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *OpenAPIRunFlowResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetCode bool = false\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetCode = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 50:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField50(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetCode {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIRunFlowResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_OpenAPIRunFlowResponse[fieldId]))\n}\n\nfunc (p *OpenAPIRunFlowResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowResponse) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowResponse) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Token = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowResponse) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Cost = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowResponse) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DebugUrl = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowResponse) ReadField50(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *OpenAPIRunFlowResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIRunFlowResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIRunFlowResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField50(oprot); err != nil {\n\t\t\tfieldId = 50\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIRunFlowResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"Msg\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetData() {\n\t\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRING, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Data); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowResponse) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetToken() {\n\t\tif err = oprot.WriteFieldBegin(\"Token\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Token); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowResponse) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCost() {\n\t\tif err = oprot.WriteFieldBegin(\"Cost\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Cost); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowResponse) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDebugUrl() {\n\t\tif err = oprot.WriteFieldBegin(\"DebugUrl\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DebugUrl); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowResponse) writeField50(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteID() {\n\t\tif err = oprot.WriteFieldBegin(\"ExecuteID\", thrift.STRING, 50); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExecuteID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 end error: \", p), err)\n}\nfunc (p *OpenAPIRunFlowResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *OpenAPIRunFlowResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIRunFlowResponse(%+v)\", *p)\n\n}\n\ntype Interrupt struct {\n\tEventID string        `thrift:\"EventID,1\" json:\"event_id\" form:\"EventID\" query:\"EventID\"`\n\tType    InterruptType `thrift:\"Type,2\" json:\"type\" form:\"Type\" query:\"Type\"`\n\tInData  string        `thrift:\"InData,3\" json:\"data\" form:\"InData\" query:\"InData\"`\n}\n\nfunc NewInterrupt() *Interrupt {\n\treturn &Interrupt{}\n}\n\nfunc (p *Interrupt) InitDefault() {\n}\n\nfunc (p *Interrupt) GetEventID() (v string) {\n\treturn p.EventID\n}\n\nfunc (p *Interrupt) GetType() (v InterruptType) {\n\treturn p.Type\n}\n\nfunc (p *Interrupt) GetInData() (v string) {\n\treturn p.InData\n}\n\nvar fieldIDToName_Interrupt = map[int16]string{\n\t1: \"EventID\",\n\t2: \"Type\",\n\t3: \"InData\",\n}\n\nfunc (p *Interrupt) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_Interrupt[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *Interrupt) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EventID = _field\n\treturn nil\n}\nfunc (p *Interrupt) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field InterruptType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = InterruptType(v)\n\t}\n\tp.Type = _field\n\treturn nil\n}\nfunc (p *Interrupt) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.InData = _field\n\treturn nil\n}\n\nfunc (p *Interrupt) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"Interrupt\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *Interrupt) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EventID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.EventID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *Interrupt) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.Type)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *Interrupt) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"InData\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.InData); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *Interrupt) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Interrupt(%+v)\", *p)\n\n}\n\ntype OpenAPIStreamRunFlowResponse struct {\n\t// absolute serial number\n\tID string `thrift:\"id,1\" form:\"id\" json:\"id\" query:\"id\"`\n\t// Event type: message, done, error\n\tEvent string `thrift:\"Event,2\" json:\"event\" form:\"Event\" query:\"Event\"`\n\t// Node information\n\tNodeSeqID *string `thrift:\"NodeSeqID,50,optional\" json:\"node_seq_id\" form:\"NodeSeqID\" query:\"NodeSeqID\"`\n\t// Node name\n\tNodeTitle *string `thrift:\"NodeTitle,52,optional\" json:\"node_title\" form:\"NodeTitle\" query:\"NodeTitle\"`\n\t// Return when ContentType is Text\n\tContent *string `thrift:\"Content,54,optional\" json:\"content\" form:\"Content\" query:\"Content\"`\n\t// Has the node completed execution?\n\tNodeIsFinish *bool `thrift:\"NodeIsFinish,55,optional\" json:\"node_is_finish\" form:\"NodeIsFinish\" query:\"NodeIsFinish\"`\n\t//Transmission when content type is interrupt, interrupt protocol\n\tInterruptData *Interrupt `thrift:\"InterruptData,56,optional\" json:\"interrupt_data\" form:\"InterruptData\" query:\"InterruptData\"`\n\t// Data type returned\n\tContentType *string `thrift:\"ContentType,57,optional\" json:\"content_type\" form:\"ContentType\" query:\"ContentType\"`\n\t// Card Content Returned when Content Type is Card\n\tCardBody *string `thrift:\"CardBody,58,optional\" json:\"card_body\" form:\"CardBody\" query:\"CardBody\"`\n\t// Node type\n\tNodeType *string `thrift:\"NodeType,59,optional\" json:\"node_type\" form:\"NodeType\" query:\"NodeType\"`\n\tNodeID   *string `thrift:\"NodeID,60,optional\" json:\"node_id\" form:\"NodeID\" query:\"NodeID\"`\n\t// Last message on success\n\tExt   map[string]string `thrift:\"Ext,100,optional\" json:\"ext\" form:\"Ext\" query:\"Ext\"`\n\tToken *int64            `thrift:\"Token,101,optional\" json:\"token\" form:\"Token\" query:\"Token\"`\n\tCost  *string           `thrift:\"Cost,102,optional\" json:\"cost\" form:\"Cost\" query:\"Cost\"`\n\t// error message\n\tErrorCode    *int64         `thrift:\"ErrorCode,151,optional\" json:\"error_code\" form:\"ErrorCode\" query:\"ErrorCode\"`\n\tErrorMessage *string        `thrift:\"ErrorMessage,152,optional\" json:\"error_message\" form:\"ErrorMessage\" query:\"ErrorMessage\"`\n\tDebugUrl     *string        `thrift:\"DebugUrl,153,optional\" json:\"debug_url\" form:\"DebugUrl\" query:\"DebugUrl\"`\n\tBaseResp     *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewOpenAPIStreamRunFlowResponse() *OpenAPIStreamRunFlowResponse {\n\treturn &OpenAPIStreamRunFlowResponse{}\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) InitDefault() {\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetID() (v string) {\n\treturn p.ID\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetEvent() (v string) {\n\treturn p.Event\n}\n\nvar OpenAPIStreamRunFlowResponse_NodeSeqID_DEFAULT string\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetNodeSeqID() (v string) {\n\tif !p.IsSetNodeSeqID() {\n\t\treturn OpenAPIStreamRunFlowResponse_NodeSeqID_DEFAULT\n\t}\n\treturn *p.NodeSeqID\n}\n\nvar OpenAPIStreamRunFlowResponse_NodeTitle_DEFAULT string\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetNodeTitle() (v string) {\n\tif !p.IsSetNodeTitle() {\n\t\treturn OpenAPIStreamRunFlowResponse_NodeTitle_DEFAULT\n\t}\n\treturn *p.NodeTitle\n}\n\nvar OpenAPIStreamRunFlowResponse_Content_DEFAULT string\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetContent() (v string) {\n\tif !p.IsSetContent() {\n\t\treturn OpenAPIStreamRunFlowResponse_Content_DEFAULT\n\t}\n\treturn *p.Content\n}\n\nvar OpenAPIStreamRunFlowResponse_NodeIsFinish_DEFAULT bool\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetNodeIsFinish() (v bool) {\n\tif !p.IsSetNodeIsFinish() {\n\t\treturn OpenAPIStreamRunFlowResponse_NodeIsFinish_DEFAULT\n\t}\n\treturn *p.NodeIsFinish\n}\n\nvar OpenAPIStreamRunFlowResponse_InterruptData_DEFAULT *Interrupt\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetInterruptData() (v *Interrupt) {\n\tif !p.IsSetInterruptData() {\n\t\treturn OpenAPIStreamRunFlowResponse_InterruptData_DEFAULT\n\t}\n\treturn p.InterruptData\n}\n\nvar OpenAPIStreamRunFlowResponse_ContentType_DEFAULT string\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetContentType() (v string) {\n\tif !p.IsSetContentType() {\n\t\treturn OpenAPIStreamRunFlowResponse_ContentType_DEFAULT\n\t}\n\treturn *p.ContentType\n}\n\nvar OpenAPIStreamRunFlowResponse_CardBody_DEFAULT string\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetCardBody() (v string) {\n\tif !p.IsSetCardBody() {\n\t\treturn OpenAPIStreamRunFlowResponse_CardBody_DEFAULT\n\t}\n\treturn *p.CardBody\n}\n\nvar OpenAPIStreamRunFlowResponse_NodeType_DEFAULT string\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetNodeType() (v string) {\n\tif !p.IsSetNodeType() {\n\t\treturn OpenAPIStreamRunFlowResponse_NodeType_DEFAULT\n\t}\n\treturn *p.NodeType\n}\n\nvar OpenAPIStreamRunFlowResponse_NodeID_DEFAULT string\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetNodeID() (v string) {\n\tif !p.IsSetNodeID() {\n\t\treturn OpenAPIStreamRunFlowResponse_NodeID_DEFAULT\n\t}\n\treturn *p.NodeID\n}\n\nvar OpenAPIStreamRunFlowResponse_Ext_DEFAULT map[string]string\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetExt() (v map[string]string) {\n\tif !p.IsSetExt() {\n\t\treturn OpenAPIStreamRunFlowResponse_Ext_DEFAULT\n\t}\n\treturn p.Ext\n}\n\nvar OpenAPIStreamRunFlowResponse_Token_DEFAULT int64\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetToken() (v int64) {\n\tif !p.IsSetToken() {\n\t\treturn OpenAPIStreamRunFlowResponse_Token_DEFAULT\n\t}\n\treturn *p.Token\n}\n\nvar OpenAPIStreamRunFlowResponse_Cost_DEFAULT string\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetCost() (v string) {\n\tif !p.IsSetCost() {\n\t\treturn OpenAPIStreamRunFlowResponse_Cost_DEFAULT\n\t}\n\treturn *p.Cost\n}\n\nvar OpenAPIStreamRunFlowResponse_ErrorCode_DEFAULT int64\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetErrorCode() (v int64) {\n\tif !p.IsSetErrorCode() {\n\t\treturn OpenAPIStreamRunFlowResponse_ErrorCode_DEFAULT\n\t}\n\treturn *p.ErrorCode\n}\n\nvar OpenAPIStreamRunFlowResponse_ErrorMessage_DEFAULT string\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetErrorMessage() (v string) {\n\tif !p.IsSetErrorMessage() {\n\t\treturn OpenAPIStreamRunFlowResponse_ErrorMessage_DEFAULT\n\t}\n\treturn *p.ErrorMessage\n}\n\nvar OpenAPIStreamRunFlowResponse_DebugUrl_DEFAULT string\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetDebugUrl() (v string) {\n\tif !p.IsSetDebugUrl() {\n\t\treturn OpenAPIStreamRunFlowResponse_DebugUrl_DEFAULT\n\t}\n\treturn *p.DebugUrl\n}\n\nvar OpenAPIStreamRunFlowResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *OpenAPIStreamRunFlowResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn OpenAPIStreamRunFlowResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_OpenAPIStreamRunFlowResponse = map[int16]string{\n\t1:   \"id\",\n\t2:   \"Event\",\n\t50:  \"NodeSeqID\",\n\t52:  \"NodeTitle\",\n\t54:  \"Content\",\n\t55:  \"NodeIsFinish\",\n\t56:  \"InterruptData\",\n\t57:  \"ContentType\",\n\t58:  \"CardBody\",\n\t59:  \"NodeType\",\n\t60:  \"NodeID\",\n\t100: \"Ext\",\n\t101: \"Token\",\n\t102: \"Cost\",\n\t151: \"ErrorCode\",\n\t152: \"ErrorMessage\",\n\t153: \"DebugUrl\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetNodeSeqID() bool {\n\treturn p.NodeSeqID != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetNodeTitle() bool {\n\treturn p.NodeTitle != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetContent() bool {\n\treturn p.Content != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetNodeIsFinish() bool {\n\treturn p.NodeIsFinish != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetInterruptData() bool {\n\treturn p.InterruptData != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetContentType() bool {\n\treturn p.ContentType != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetCardBody() bool {\n\treturn p.CardBody != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetNodeType() bool {\n\treturn p.NodeType != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetNodeID() bool {\n\treturn p.NodeID != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetExt() bool {\n\treturn p.Ext != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetToken() bool {\n\treturn p.Token != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetCost() bool {\n\treturn p.Cost != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetErrorCode() bool {\n\treturn p.ErrorCode != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetErrorMessage() bool {\n\treturn p.ErrorMessage != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetDebugUrl() bool {\n\treturn p.DebugUrl != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 50:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField50(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 52:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField52(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 54:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField54(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 55:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField55(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 56:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField56(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 57:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField57(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 58:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField58(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 59:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField59(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 60:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField60(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 100:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField100(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 101:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField101(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 102:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField102(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 151:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField151(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 152:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField152(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 153:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField153(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIStreamRunFlowResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_OpenAPIStreamRunFlowResponse[fieldId]))\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ID = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Event = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField50(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NodeSeqID = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField52(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NodeTitle = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField54(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Content = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField55(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NodeIsFinish = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField56(iprot thrift.TProtocol) error {\n\t_field := NewInterrupt()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.InterruptData = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField57(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ContentType = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField58(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CardBody = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField59(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NodeType = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField60(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.NodeID = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField100(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Ext = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField101(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Token = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField102(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Cost = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField151(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ErrorCode = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField152(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ErrorMessage = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField153(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DebugUrl = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamRunFlowResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIStreamRunFlowResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField50(oprot); err != nil {\n\t\t\tfieldId = 50\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField52(oprot); err != nil {\n\t\t\tfieldId = 52\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField54(oprot); err != nil {\n\t\t\tfieldId = 54\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField55(oprot); err != nil {\n\t\t\tfieldId = 55\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField56(oprot); err != nil {\n\t\t\tfieldId = 56\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField57(oprot); err != nil {\n\t\t\tfieldId = 57\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField58(oprot); err != nil {\n\t\t\tfieldId = 58\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField59(oprot); err != nil {\n\t\t\tfieldId = 59\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField60(oprot); err != nil {\n\t\t\tfieldId = 60\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField100(oprot); err != nil {\n\t\t\tfieldId = 100\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField101(oprot); err != nil {\n\t\t\tfieldId = 101\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField102(oprot); err != nil {\n\t\t\tfieldId = 102\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField151(oprot); err != nil {\n\t\t\tfieldId = 151\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField152(oprot); err != nil {\n\t\t\tfieldId = 152\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField153(oprot); err != nil {\n\t\t\tfieldId = 153\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Event\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Event); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField50(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodeSeqID() {\n\t\tif err = oprot.WriteFieldBegin(\"NodeSeqID\", thrift.STRING, 50); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.NodeSeqID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 50 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField52(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodeTitle() {\n\t\tif err = oprot.WriteFieldBegin(\"NodeTitle\", thrift.STRING, 52); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.NodeTitle); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 52 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 52 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField54(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContent() {\n\t\tif err = oprot.WriteFieldBegin(\"Content\", thrift.STRING, 54); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Content); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 54 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 54 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField55(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodeIsFinish() {\n\t\tif err = oprot.WriteFieldBegin(\"NodeIsFinish\", thrift.BOOL, 55); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.NodeIsFinish); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 55 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 55 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField56(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInterruptData() {\n\t\tif err = oprot.WriteFieldBegin(\"InterruptData\", thrift.STRUCT, 56); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.InterruptData.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 56 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 56 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField57(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetContentType() {\n\t\tif err = oprot.WriteFieldBegin(\"ContentType\", thrift.STRING, 57); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ContentType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 57 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 57 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField58(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCardBody() {\n\t\tif err = oprot.WriteFieldBegin(\"CardBody\", thrift.STRING, 58); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CardBody); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 58 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 58 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField59(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodeType() {\n\t\tif err = oprot.WriteFieldBegin(\"NodeType\", thrift.STRING, 59); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.NodeType); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 59 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 59 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField60(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetNodeID() {\n\t\tif err = oprot.WriteFieldBegin(\"NodeID\", thrift.STRING, 60); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.NodeID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 60 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 60 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField100(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExt() {\n\t\tif err = oprot.WriteFieldBegin(\"Ext\", thrift.MAP, 100); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Ext)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.Ext {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 100 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 100 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField101(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetToken() {\n\t\tif err = oprot.WriteFieldBegin(\"Token\", thrift.I64, 101); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Token); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 101 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 101 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField102(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCost() {\n\t\tif err = oprot.WriteFieldBegin(\"Cost\", thrift.STRING, 102); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Cost); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 102 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 102 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField151(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetErrorCode() {\n\t\tif err = oprot.WriteFieldBegin(\"ErrorCode\", thrift.I64, 151); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ErrorCode); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 151 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 151 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField152(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetErrorMessage() {\n\t\tif err = oprot.WriteFieldBegin(\"ErrorMessage\", thrift.STRING, 152); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ErrorMessage); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 152 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 152 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField153(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDebugUrl() {\n\t\tif err = oprot.WriteFieldBegin(\"DebugUrl\", thrift.STRING, 153); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DebugUrl); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 153 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 153 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamRunFlowResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *OpenAPIStreamRunFlowResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIStreamRunFlowResponse(%+v)\", *p)\n\n}\n\ntype OpenAPIStreamResumeFlowRequest struct {\n\tEventID       string            `thrift:\"EventID,1\" json:\"event_id\" form:\"EventID\" query:\"EventID\"`\n\tInterruptType InterruptType     `thrift:\"InterruptType,2\" json:\"interrupt_type\" form:\"InterruptType\" query:\"InterruptType\"`\n\tResumeData    string            `thrift:\"ResumeData,3\" json:\"resume_data\" form:\"ResumeData\" query:\"ResumeData\"`\n\tExt           map[string]string `thrift:\"Ext,4\" json:\"ext\" form:\"Ext\" query:\"Ext\"`\n\tWorkflowID    string            `thrift:\"WorkflowID,5\" json:\"workflow_id\" form:\"WorkflowID\" query:\"WorkflowID\"`\n\t// Channel ID, such as ui builder, template, store, etc\n\tConnectorID *string    `thrift:\"ConnectorID,6,optional\" json:\"connector_id\" form:\"ConnectorID\" query:\"ConnectorID\"`\n\tBase        *base.Base `thrift:\"Base,255\" form:\"Base\" json:\"Base\" query:\"Base\"`\n}\n\nfunc NewOpenAPIStreamResumeFlowRequest() *OpenAPIStreamResumeFlowRequest {\n\treturn &OpenAPIStreamResumeFlowRequest{}\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) InitDefault() {\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) GetEventID() (v string) {\n\treturn p.EventID\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) GetInterruptType() (v InterruptType) {\n\treturn p.InterruptType\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) GetResumeData() (v string) {\n\treturn p.ResumeData\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) GetExt() (v map[string]string) {\n\treturn p.Ext\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar OpenAPIStreamResumeFlowRequest_ConnectorID_DEFAULT string\n\nfunc (p *OpenAPIStreamResumeFlowRequest) GetConnectorID() (v string) {\n\tif !p.IsSetConnectorID() {\n\t\treturn OpenAPIStreamResumeFlowRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar OpenAPIStreamResumeFlowRequest_Base_DEFAULT *base.Base\n\nfunc (p *OpenAPIStreamResumeFlowRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn OpenAPIStreamResumeFlowRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_OpenAPIStreamResumeFlowRequest = map[int16]string{\n\t1:   \"EventID\",\n\t2:   \"InterruptType\",\n\t3:   \"ResumeData\",\n\t4:   \"Ext\",\n\t5:   \"WorkflowID\",\n\t6:   \"ConnectorID\",\n\t255: \"Base\",\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIStreamResumeFlowRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.EventID = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field InterruptType\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = InterruptType(v)\n\t}\n\tp.InterruptType = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ResumeData = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) ReadField4(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Ext = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIStreamResumeFlowRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"EventID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.EventID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"InterruptType\", thrift.I32, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI32(int32(p.InterruptType)); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ResumeData\", thrift.STRING, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ResumeData); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Ext\", thrift.MAP, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Ext)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Ext {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowID\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *OpenAPIStreamResumeFlowRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Base.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *OpenAPIStreamResumeFlowRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIStreamResumeFlowRequest(%+v)\", *p)\n\n}\n\ntype GetWorkflowRunHistoryRequest struct {\n\tWorkflowID string     `thrift:\"workflow_id,1,required\" form:\"workflow_id,required\" json:\"workflow_id,required\" query:\"workflow_id,required\"`\n\tExecuteID  *string    `thrift:\"execute_id,2,optional\" form:\"execute_id\" json:\"execute_id,omitempty\" query:\"execute_id\"`\n\tBase       *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewGetWorkflowRunHistoryRequest() *GetWorkflowRunHistoryRequest {\n\treturn &GetWorkflowRunHistoryRequest{}\n}\n\nfunc (p *GetWorkflowRunHistoryRequest) InitDefault() {\n}\n\nfunc (p *GetWorkflowRunHistoryRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar GetWorkflowRunHistoryRequest_ExecuteID_DEFAULT string\n\nfunc (p *GetWorkflowRunHistoryRequest) GetExecuteID() (v string) {\n\tif !p.IsSetExecuteID() {\n\t\treturn GetWorkflowRunHistoryRequest_ExecuteID_DEFAULT\n\t}\n\treturn *p.ExecuteID\n}\n\nvar GetWorkflowRunHistoryRequest_Base_DEFAULT *base.Base\n\nfunc (p *GetWorkflowRunHistoryRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn GetWorkflowRunHistoryRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_GetWorkflowRunHistoryRequest = map[int16]string{\n\t1:   \"workflow_id\",\n\t2:   \"execute_id\",\n\t255: \"Base\",\n}\n\nfunc (p *GetWorkflowRunHistoryRequest) IsSetExecuteID() bool {\n\treturn p.ExecuteID != nil\n}\n\nfunc (p *GetWorkflowRunHistoryRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *GetWorkflowRunHistoryRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetWorkflowID bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetWorkflowID = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetWorkflowID {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkflowRunHistoryRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetWorkflowRunHistoryRequest[fieldId]))\n}\n\nfunc (p *GetWorkflowRunHistoryRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowRunHistoryRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *GetWorkflowRunHistoryRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *GetWorkflowRunHistoryRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowRunHistoryRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowRunHistoryRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"workflow_id\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkflowRunHistoryRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteID() {\n\t\tif err = oprot.WriteFieldBegin(\"execute_id\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExecuteID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetWorkflowRunHistoryRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkflowRunHistoryRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkflowRunHistoryRequest(%+v)\", *p)\n\n}\n\ntype WorkflowExecuteHistory struct {\n\tExecuteID     *int64           `thrift:\"ExecuteID,1,optional\" json:\"execute_id\" form:\"ExecuteID\" query:\"ExecuteID\"`\n\tExecuteStatus *string          `thrift:\"ExecuteStatus,2,optional\" json:\"execute_status\" form:\"ExecuteStatus\" query:\"ExecuteStatus\"`\n\tBotID         *int64           `thrift:\"BotID,3,optional\" json:\"bot_id\" form:\"BotID\" query:\"BotID\"`\n\tConnectorID   *int64           `thrift:\"ConnectorID,4,optional\" json:\"connector_id\" form:\"ConnectorID\" query:\"ConnectorID\"`\n\tConnectorUID  *string          `thrift:\"ConnectorUID,5,optional\" json:\"connector_uid\" form:\"ConnectorUID\" query:\"ConnectorUID\"`\n\tRunMode       *WorkflowRunMode `thrift:\"RunMode,6,optional\" json:\"run_mode\" form:\"RunMode\" query:\"RunMode\"`\n\tLogID         *string          `thrift:\"LogID,7,optional\" json:\"log_id\" form:\"LogID\" query:\"LogID\"`\n\tCreateTime    *int64           `thrift:\"CreateTime,8,optional\" json:\"create_time\" form:\"CreateTime\" query:\"CreateTime\"`\n\tUpdateTime    *int64           `thrift:\"UpdateTime,9,optional\" json:\"update_time\" form:\"UpdateTime\" query:\"UpdateTime\"`\n\tDebugUrl      *string          `thrift:\"DebugUrl,10,optional\" json:\"debug_url\" form:\"DebugUrl\" query:\"DebugUrl\"`\n\t// successful execution\n\tInput    *string           `thrift:\"Input,51,optional\" json:\"input\" form:\"Input\" query:\"Input\"`\n\tOutput   *string           `thrift:\"Output,52,optional\" json:\"output\" form:\"Output\" query:\"Output\"`\n\tToken    *int64            `thrift:\"Token,53,optional\" json:\"token\" form:\"Token\" query:\"Token\"`\n\tCost     *string           `thrift:\"Cost,54,optional\" json:\"cost\" form:\"Cost\" query:\"Cost\"`\n\tCostUnit *string           `thrift:\"CostUnit,55,optional\" json:\"cost_unit\" form:\"CostUnit\" query:\"CostUnit\"`\n\tExt      map[string]string `thrift:\"Ext,56,optional\" json:\"ext\" form:\"Ext\" query:\"Ext\"`\n\t// execution failed\n\tErrorCode *string `thrift:\"ErrorCode,101,optional\" json:\"error_code\" form:\"ErrorCode\" query:\"ErrorCode\"`\n\tErrorMsg  *string `thrift:\"ErrorMsg,102,optional\" json:\"error_msg\" form:\"ErrorMsg\" query:\"ErrorMsg\"`\n}\n\nfunc NewWorkflowExecuteHistory() *WorkflowExecuteHistory {\n\treturn &WorkflowExecuteHistory{}\n}\n\nfunc (p *WorkflowExecuteHistory) InitDefault() {\n}\n\nvar WorkflowExecuteHistory_ExecuteID_DEFAULT int64\n\nfunc (p *WorkflowExecuteHistory) GetExecuteID() (v int64) {\n\tif !p.IsSetExecuteID() {\n\t\treturn WorkflowExecuteHistory_ExecuteID_DEFAULT\n\t}\n\treturn *p.ExecuteID\n}\n\nvar WorkflowExecuteHistory_ExecuteStatus_DEFAULT string\n\nfunc (p *WorkflowExecuteHistory) GetExecuteStatus() (v string) {\n\tif !p.IsSetExecuteStatus() {\n\t\treturn WorkflowExecuteHistory_ExecuteStatus_DEFAULT\n\t}\n\treturn *p.ExecuteStatus\n}\n\nvar WorkflowExecuteHistory_BotID_DEFAULT int64\n\nfunc (p *WorkflowExecuteHistory) GetBotID() (v int64) {\n\tif !p.IsSetBotID() {\n\t\treturn WorkflowExecuteHistory_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar WorkflowExecuteHistory_ConnectorID_DEFAULT int64\n\nfunc (p *WorkflowExecuteHistory) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn WorkflowExecuteHistory_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar WorkflowExecuteHistory_ConnectorUID_DEFAULT string\n\nfunc (p *WorkflowExecuteHistory) GetConnectorUID() (v string) {\n\tif !p.IsSetConnectorUID() {\n\t\treturn WorkflowExecuteHistory_ConnectorUID_DEFAULT\n\t}\n\treturn *p.ConnectorUID\n}\n\nvar WorkflowExecuteHistory_RunMode_DEFAULT WorkflowRunMode\n\nfunc (p *WorkflowExecuteHistory) GetRunMode() (v WorkflowRunMode) {\n\tif !p.IsSetRunMode() {\n\t\treturn WorkflowExecuteHistory_RunMode_DEFAULT\n\t}\n\treturn *p.RunMode\n}\n\nvar WorkflowExecuteHistory_LogID_DEFAULT string\n\nfunc (p *WorkflowExecuteHistory) GetLogID() (v string) {\n\tif !p.IsSetLogID() {\n\t\treturn WorkflowExecuteHistory_LogID_DEFAULT\n\t}\n\treturn *p.LogID\n}\n\nvar WorkflowExecuteHistory_CreateTime_DEFAULT int64\n\nfunc (p *WorkflowExecuteHistory) GetCreateTime() (v int64) {\n\tif !p.IsSetCreateTime() {\n\t\treturn WorkflowExecuteHistory_CreateTime_DEFAULT\n\t}\n\treturn *p.CreateTime\n}\n\nvar WorkflowExecuteHistory_UpdateTime_DEFAULT int64\n\nfunc (p *WorkflowExecuteHistory) GetUpdateTime() (v int64) {\n\tif !p.IsSetUpdateTime() {\n\t\treturn WorkflowExecuteHistory_UpdateTime_DEFAULT\n\t}\n\treturn *p.UpdateTime\n}\n\nvar WorkflowExecuteHistory_DebugUrl_DEFAULT string\n\nfunc (p *WorkflowExecuteHistory) GetDebugUrl() (v string) {\n\tif !p.IsSetDebugUrl() {\n\t\treturn WorkflowExecuteHistory_DebugUrl_DEFAULT\n\t}\n\treturn *p.DebugUrl\n}\n\nvar WorkflowExecuteHistory_Input_DEFAULT string\n\nfunc (p *WorkflowExecuteHistory) GetInput() (v string) {\n\tif !p.IsSetInput() {\n\t\treturn WorkflowExecuteHistory_Input_DEFAULT\n\t}\n\treturn *p.Input\n}\n\nvar WorkflowExecuteHistory_Output_DEFAULT string\n\nfunc (p *WorkflowExecuteHistory) GetOutput() (v string) {\n\tif !p.IsSetOutput() {\n\t\treturn WorkflowExecuteHistory_Output_DEFAULT\n\t}\n\treturn *p.Output\n}\n\nvar WorkflowExecuteHistory_Token_DEFAULT int64\n\nfunc (p *WorkflowExecuteHistory) GetToken() (v int64) {\n\tif !p.IsSetToken() {\n\t\treturn WorkflowExecuteHistory_Token_DEFAULT\n\t}\n\treturn *p.Token\n}\n\nvar WorkflowExecuteHistory_Cost_DEFAULT string\n\nfunc (p *WorkflowExecuteHistory) GetCost() (v string) {\n\tif !p.IsSetCost() {\n\t\treturn WorkflowExecuteHistory_Cost_DEFAULT\n\t}\n\treturn *p.Cost\n}\n\nvar WorkflowExecuteHistory_CostUnit_DEFAULT string\n\nfunc (p *WorkflowExecuteHistory) GetCostUnit() (v string) {\n\tif !p.IsSetCostUnit() {\n\t\treturn WorkflowExecuteHistory_CostUnit_DEFAULT\n\t}\n\treturn *p.CostUnit\n}\n\nvar WorkflowExecuteHistory_Ext_DEFAULT map[string]string\n\nfunc (p *WorkflowExecuteHistory) GetExt() (v map[string]string) {\n\tif !p.IsSetExt() {\n\t\treturn WorkflowExecuteHistory_Ext_DEFAULT\n\t}\n\treturn p.Ext\n}\n\nvar WorkflowExecuteHistory_ErrorCode_DEFAULT string\n\nfunc (p *WorkflowExecuteHistory) GetErrorCode() (v string) {\n\tif !p.IsSetErrorCode() {\n\t\treturn WorkflowExecuteHistory_ErrorCode_DEFAULT\n\t}\n\treturn *p.ErrorCode\n}\n\nvar WorkflowExecuteHistory_ErrorMsg_DEFAULT string\n\nfunc (p *WorkflowExecuteHistory) GetErrorMsg() (v string) {\n\tif !p.IsSetErrorMsg() {\n\t\treturn WorkflowExecuteHistory_ErrorMsg_DEFAULT\n\t}\n\treturn *p.ErrorMsg\n}\n\nvar fieldIDToName_WorkflowExecuteHistory = map[int16]string{\n\t1:   \"ExecuteID\",\n\t2:   \"ExecuteStatus\",\n\t3:   \"BotID\",\n\t4:   \"ConnectorID\",\n\t5:   \"ConnectorUID\",\n\t6:   \"RunMode\",\n\t7:   \"LogID\",\n\t8:   \"CreateTime\",\n\t9:   \"UpdateTime\",\n\t10:  \"DebugUrl\",\n\t51:  \"Input\",\n\t52:  \"Output\",\n\t53:  \"Token\",\n\t54:  \"Cost\",\n\t55:  \"CostUnit\",\n\t56:  \"Ext\",\n\t101: \"ErrorCode\",\n\t102: \"ErrorMsg\",\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetExecuteID() bool {\n\treturn p.ExecuteID != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetExecuteStatus() bool {\n\treturn p.ExecuteStatus != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetConnectorUID() bool {\n\treturn p.ConnectorUID != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetRunMode() bool {\n\treturn p.RunMode != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetLogID() bool {\n\treturn p.LogID != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetCreateTime() bool {\n\treturn p.CreateTime != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetUpdateTime() bool {\n\treturn p.UpdateTime != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetDebugUrl() bool {\n\treturn p.DebugUrl != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetInput() bool {\n\treturn p.Input != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetOutput() bool {\n\treturn p.Output != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetToken() bool {\n\treturn p.Token != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetCost() bool {\n\treturn p.Cost != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetCostUnit() bool {\n\treturn p.CostUnit != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetExt() bool {\n\treturn p.Ext != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetErrorCode() bool {\n\treturn p.ErrorCode != nil\n}\n\nfunc (p *WorkflowExecuteHistory) IsSetErrorMsg() bool {\n\treturn p.ErrorMsg != nil\n}\n\nfunc (p *WorkflowExecuteHistory) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 51:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField51(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 52:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField52(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 53:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField53(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 54:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField54(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 55:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField55(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 56:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField56(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 101:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField101(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 102:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField102(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowExecuteHistory[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowExecuteHistory) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteID = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteStatus = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorUID = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *WorkflowRunMode\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\ttmp := WorkflowRunMode(v)\n\t\t_field = &tmp\n\t}\n\tp.RunMode = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LogID = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreateTime = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.UpdateTime = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DebugUrl = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField51(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Input = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField52(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Output = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField53(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Token = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField54(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Cost = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField55(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CostUnit = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField56(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Ext = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField101(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ErrorCode = _field\n\treturn nil\n}\nfunc (p *WorkflowExecuteHistory) ReadField102(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ErrorMsg = _field\n\treturn nil\n}\n\nfunc (p *WorkflowExecuteHistory) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowExecuteHistory\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField51(oprot); err != nil {\n\t\t\tfieldId = 51\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField52(oprot); err != nil {\n\t\t\tfieldId = 52\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField53(oprot); err != nil {\n\t\t\tfieldId = 53\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField54(oprot); err != nil {\n\t\t\tfieldId = 54\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField55(oprot); err != nil {\n\t\t\tfieldId = 55\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField56(oprot); err != nil {\n\t\t\tfieldId = 56\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField101(oprot); err != nil {\n\t\t\tfieldId = 101\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField102(oprot); err != nil {\n\t\t\tfieldId = 102\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowExecuteHistory) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteID() {\n\t\tif err = oprot.WriteFieldBegin(\"ExecuteID\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ExecuteID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteStatus() {\n\t\tif err = oprot.WriteFieldBegin(\"ExecuteStatus\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExecuteStatus); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"BotID\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorUID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorUID\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorUID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRunMode() {\n\t\tif err = oprot.WriteFieldBegin(\"RunMode\", thrift.I32, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(int32(*p.RunMode)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLogID() {\n\t\tif err = oprot.WriteFieldBegin(\"LogID\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.LogID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreateTime() {\n\t\tif err = oprot.WriteFieldBegin(\"CreateTime\", thrift.I64, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreateTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetUpdateTime() {\n\t\tif err = oprot.WriteFieldBegin(\"UpdateTime\", thrift.I64, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.UpdateTime); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDebugUrl() {\n\t\tif err = oprot.WriteFieldBegin(\"DebugUrl\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.DebugUrl); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField51(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetInput() {\n\t\tif err = oprot.WriteFieldBegin(\"Input\", thrift.STRING, 51); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Input); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 51 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 51 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField52(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetOutput() {\n\t\tif err = oprot.WriteFieldBegin(\"Output\", thrift.STRING, 52); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Output); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 52 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 52 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField53(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetToken() {\n\t\tif err = oprot.WriteFieldBegin(\"Token\", thrift.I64, 53); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Token); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 53 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 53 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField54(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCost() {\n\t\tif err = oprot.WriteFieldBegin(\"Cost\", thrift.STRING, 54); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Cost); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 54 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 54 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField55(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCostUnit() {\n\t\tif err = oprot.WriteFieldBegin(\"CostUnit\", thrift.STRING, 55); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.CostUnit); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 55 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 55 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField56(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExt() {\n\t\tif err = oprot.WriteFieldBegin(\"Ext\", thrift.MAP, 56); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Ext)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.Ext {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 56 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 56 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField101(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetErrorCode() {\n\t\tif err = oprot.WriteFieldBegin(\"ErrorCode\", thrift.STRING, 101); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ErrorCode); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 101 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 101 end error: \", p), err)\n}\nfunc (p *WorkflowExecuteHistory) writeField102(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetErrorMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"ErrorMsg\", thrift.STRING, 102); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ErrorMsg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 102 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 102 end error: \", p), err)\n}\n\nfunc (p *WorkflowExecuteHistory) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowExecuteHistory(%+v)\", *p)\n\n}\n\ntype GetWorkflowRunHistoryResponse struct {\n\tCode     *int64                    `thrift:\"code,1,optional\" form:\"code\" json:\"code,omitempty\" query:\"code\"`\n\tMsg      *string                   `thrift:\"msg,2,optional\" form:\"msg\" json:\"msg,omitempty\" query:\"msg\"`\n\tData     []*WorkflowExecuteHistory `thrift:\"data,3,optional\" form:\"data\" json:\"data,omitempty\" query:\"data\"`\n\tBaseResp *base.BaseResp            `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewGetWorkflowRunHistoryResponse() *GetWorkflowRunHistoryResponse {\n\treturn &GetWorkflowRunHistoryResponse{}\n}\n\nfunc (p *GetWorkflowRunHistoryResponse) InitDefault() {\n}\n\nvar GetWorkflowRunHistoryResponse_Code_DEFAULT int64\n\nfunc (p *GetWorkflowRunHistoryResponse) GetCode() (v int64) {\n\tif !p.IsSetCode() {\n\t\treturn GetWorkflowRunHistoryResponse_Code_DEFAULT\n\t}\n\treturn *p.Code\n}\n\nvar GetWorkflowRunHistoryResponse_Msg_DEFAULT string\n\nfunc (p *GetWorkflowRunHistoryResponse) GetMsg() (v string) {\n\tif !p.IsSetMsg() {\n\t\treturn GetWorkflowRunHistoryResponse_Msg_DEFAULT\n\t}\n\treturn *p.Msg\n}\n\nvar GetWorkflowRunHistoryResponse_Data_DEFAULT []*WorkflowExecuteHistory\n\nfunc (p *GetWorkflowRunHistoryResponse) GetData() (v []*WorkflowExecuteHistory) {\n\tif !p.IsSetData() {\n\t\treturn GetWorkflowRunHistoryResponse_Data_DEFAULT\n\t}\n\treturn p.Data\n}\n\nvar GetWorkflowRunHistoryResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *GetWorkflowRunHistoryResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn GetWorkflowRunHistoryResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_GetWorkflowRunHistoryResponse = map[int16]string{\n\t1:   \"code\",\n\t2:   \"msg\",\n\t3:   \"data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *GetWorkflowRunHistoryResponse) IsSetCode() bool {\n\treturn p.Code != nil\n}\n\nfunc (p *GetWorkflowRunHistoryResponse) IsSetMsg() bool {\n\treturn p.Msg != nil\n}\n\nfunc (p *GetWorkflowRunHistoryResponse) IsSetData() bool {\n\treturn p.Data != nil\n}\n\nfunc (p *GetWorkflowRunHistoryResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *GetWorkflowRunHistoryResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_GetWorkflowRunHistoryResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_GetWorkflowRunHistoryResponse[fieldId]))\n}\n\nfunc (p *GetWorkflowRunHistoryResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *GetWorkflowRunHistoryResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *GetWorkflowRunHistoryResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*WorkflowExecuteHistory, 0, size)\n\tvalues := make([]WorkflowExecuteHistory, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *GetWorkflowRunHistoryResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *GetWorkflowRunHistoryResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowRunHistoryResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *GetWorkflowRunHistoryResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCode() {\n\t\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.Code); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *GetWorkflowRunHistoryResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *GetWorkflowRunHistoryResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetData() {\n\t\tif err = oprot.WriteFieldBegin(\"data\", thrift.LIST, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.Data)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.Data {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *GetWorkflowRunHistoryResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *GetWorkflowRunHistoryResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"GetWorkflowRunHistoryResponse(%+v)\", *p)\n\n}\n\ntype EnterMessage struct {\n\tRole string `thrift:\"Role,1,required\" json:\"role\" form:\"Role,required\" query:\"Role,required\"`\n\t// content\n\tContent  string            `thrift:\"Content,2\" json:\"content\" form:\"Content\" query:\"Content\"`\n\tMetaData map[string]string `thrift:\"MetaData,3\" json:\"meta_data\" form:\"MetaData\" query:\"MetaData\"`\n\t//text/card/object_string\n\tContentType string `thrift:\"ContentType,4\" json:\"content_type\" form:\"ContentType\" query:\"ContentType\"`\n\tType        string `thrift:\"Type,5\" json:\"type\" form:\"Type\" query:\"Type\"`\n}\n\nfunc NewEnterMessage() *EnterMessage {\n\treturn &EnterMessage{}\n}\n\nfunc (p *EnterMessage) InitDefault() {\n}\n\nfunc (p *EnterMessage) GetRole() (v string) {\n\treturn p.Role\n}\n\nfunc (p *EnterMessage) GetContent() (v string) {\n\treturn p.Content\n}\n\nfunc (p *EnterMessage) GetMetaData() (v map[string]string) {\n\treturn p.MetaData\n}\n\nfunc (p *EnterMessage) GetContentType() (v string) {\n\treturn p.ContentType\n}\n\nfunc (p *EnterMessage) GetType() (v string) {\n\treturn p.Type\n}\n\nvar fieldIDToName_EnterMessage = map[int16]string{\n\t1: \"Role\",\n\t2: \"Content\",\n\t3: \"MetaData\",\n\t4: \"ContentType\",\n\t5: \"Type\",\n}\n\nfunc (p *EnterMessage) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetRole bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetRole = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetRole {\n\t\tfieldId = 1\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_EnterMessage[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_EnterMessage[fieldId]))\n}\n\nfunc (p *EnterMessage) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Role = _field\n\treturn nil\n}\nfunc (p *EnterMessage) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Content = _field\n\treturn nil\n}\nfunc (p *EnterMessage) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *EnterMessage) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ContentType = _field\n\treturn nil\n}\nfunc (p *EnterMessage) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Type = _field\n\treturn nil\n}\n\nfunc (p *EnterMessage) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"EnterMessage\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *EnterMessage) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Role\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Role); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *EnterMessage) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Content\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Content); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *EnterMessage) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.MetaData {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *EnterMessage) writeField4(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ContentType\", thrift.STRING, 4); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ContentType); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *EnterMessage) writeField5(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Type\", thrift.STRING, 5); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Type); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\n\nfunc (p *EnterMessage) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"EnterMessage(%+v)\", *p)\n\n}\n\ntype ChatFlowRunRequest struct {\n\tWorkflowID string            `thrift:\"WorkflowID,1\" json:\"workflow_id\" form:\"WorkflowID\" query:\"WorkflowID\"`\n\tParameters *string           `thrift:\"Parameters,2,optional\" json:\"parameters\" form:\"Parameters\" query:\"Parameters\"`\n\tExt        map[string]string `thrift:\"Ext,3\" json:\"ext\" form:\"Ext\" query:\"Ext\"`\n\tBotID      *string           `thrift:\"BotID,4,optional\" json:\"bot_id\" form:\"BotID\" query:\"BotID\"`\n\t// Default to official run, practice run needs to pass in \"DEBUG\"\n\tExecuteMode *string `thrift:\"ExecuteMode,6,optional\" json:\"execute_mode\" form:\"ExecuteMode\" query:\"ExecuteMode\"`\n\t// Version number, maybe workflow version or project version\n\tVersion *string `thrift:\"Version,7,optional\" json:\"version\" form:\"Version\" query:\"Version\"`\n\t// Channel ID, such as ui builder, template, store, etc\n\tConnectorID *string `thrift:\"ConnectorID,8,optional\" json:\"connector_id\" form:\"ConnectorID\" query:\"ConnectorID\"`\n\tAppID       *string `thrift:\"AppID,9,optional\" json:\"app_id\" form:\"AppID\" query:\"AppID\"`\n\t// Session ID\n\tConversationID *string `thrift:\"ConversationID,10,optional\" json:\"conversation_id\" form:\"ConversationID\" query:\"ConversationID\"`\n\t// The message that the user wants to write first\n\tAdditionalMessages []*EnterMessage `thrift:\"AdditionalMessages,11,optional\" json:\"additional_messages\" form:\"additional_messages\" `\n\t// Project ID, for compatibility with UI builder\n\tProjectID *string `thrift:\"ProjectID,12,optional\" json:\"project_id\" form:\"ProjectID\" query:\"ProjectID\"`\n\t// Suggested reply message\n\tSuggestReplyInfo *SuggestReplyInfo `thrift:\"SuggestReplyInfo,13,optional\" json:\"suggest_reply_info\" form:\"suggest_reply_info\" `\n\tBase             *base.Base        `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewChatFlowRunRequest() *ChatFlowRunRequest {\n\treturn &ChatFlowRunRequest{}\n}\n\nfunc (p *ChatFlowRunRequest) InitDefault() {\n}\n\nfunc (p *ChatFlowRunRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nvar ChatFlowRunRequest_Parameters_DEFAULT string\n\nfunc (p *ChatFlowRunRequest) GetParameters() (v string) {\n\tif !p.IsSetParameters() {\n\t\treturn ChatFlowRunRequest_Parameters_DEFAULT\n\t}\n\treturn *p.Parameters\n}\n\nfunc (p *ChatFlowRunRequest) GetExt() (v map[string]string) {\n\treturn p.Ext\n}\n\nvar ChatFlowRunRequest_BotID_DEFAULT string\n\nfunc (p *ChatFlowRunRequest) GetBotID() (v string) {\n\tif !p.IsSetBotID() {\n\t\treturn ChatFlowRunRequest_BotID_DEFAULT\n\t}\n\treturn *p.BotID\n}\n\nvar ChatFlowRunRequest_ExecuteMode_DEFAULT string\n\nfunc (p *ChatFlowRunRequest) GetExecuteMode() (v string) {\n\tif !p.IsSetExecuteMode() {\n\t\treturn ChatFlowRunRequest_ExecuteMode_DEFAULT\n\t}\n\treturn *p.ExecuteMode\n}\n\nvar ChatFlowRunRequest_Version_DEFAULT string\n\nfunc (p *ChatFlowRunRequest) GetVersion() (v string) {\n\tif !p.IsSetVersion() {\n\t\treturn ChatFlowRunRequest_Version_DEFAULT\n\t}\n\treturn *p.Version\n}\n\nvar ChatFlowRunRequest_ConnectorID_DEFAULT string\n\nfunc (p *ChatFlowRunRequest) GetConnectorID() (v string) {\n\tif !p.IsSetConnectorID() {\n\t\treturn ChatFlowRunRequest_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar ChatFlowRunRequest_AppID_DEFAULT string\n\nfunc (p *ChatFlowRunRequest) GetAppID() (v string) {\n\tif !p.IsSetAppID() {\n\t\treturn ChatFlowRunRequest_AppID_DEFAULT\n\t}\n\treturn *p.AppID\n}\n\nvar ChatFlowRunRequest_ConversationID_DEFAULT string\n\nfunc (p *ChatFlowRunRequest) GetConversationID() (v string) {\n\tif !p.IsSetConversationID() {\n\t\treturn ChatFlowRunRequest_ConversationID_DEFAULT\n\t}\n\treturn *p.ConversationID\n}\n\nvar ChatFlowRunRequest_AdditionalMessages_DEFAULT []*EnterMessage\n\nfunc (p *ChatFlowRunRequest) GetAdditionalMessages() (v []*EnterMessage) {\n\tif !p.IsSetAdditionalMessages() {\n\t\treturn ChatFlowRunRequest_AdditionalMessages_DEFAULT\n\t}\n\treturn p.AdditionalMessages\n}\n\nvar ChatFlowRunRequest_ProjectID_DEFAULT string\n\nfunc (p *ChatFlowRunRequest) GetProjectID() (v string) {\n\tif !p.IsSetProjectID() {\n\t\treturn ChatFlowRunRequest_ProjectID_DEFAULT\n\t}\n\treturn *p.ProjectID\n}\n\nvar ChatFlowRunRequest_SuggestReplyInfo_DEFAULT *SuggestReplyInfo\n\nfunc (p *ChatFlowRunRequest) GetSuggestReplyInfo() (v *SuggestReplyInfo) {\n\tif !p.IsSetSuggestReplyInfo() {\n\t\treturn ChatFlowRunRequest_SuggestReplyInfo_DEFAULT\n\t}\n\treturn p.SuggestReplyInfo\n}\n\nvar ChatFlowRunRequest_Base_DEFAULT *base.Base\n\nfunc (p *ChatFlowRunRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn ChatFlowRunRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_ChatFlowRunRequest = map[int16]string{\n\t1:   \"WorkflowID\",\n\t2:   \"Parameters\",\n\t3:   \"Ext\",\n\t4:   \"BotID\",\n\t6:   \"ExecuteMode\",\n\t7:   \"Version\",\n\t8:   \"ConnectorID\",\n\t9:   \"AppID\",\n\t10:  \"ConversationID\",\n\t11:  \"AdditionalMessages\",\n\t12:  \"ProjectID\",\n\t13:  \"SuggestReplyInfo\",\n\t255: \"Base\",\n}\n\nfunc (p *ChatFlowRunRequest) IsSetParameters() bool {\n\treturn p.Parameters != nil\n}\n\nfunc (p *ChatFlowRunRequest) IsSetBotID() bool {\n\treturn p.BotID != nil\n}\n\nfunc (p *ChatFlowRunRequest) IsSetExecuteMode() bool {\n\treturn p.ExecuteMode != nil\n}\n\nfunc (p *ChatFlowRunRequest) IsSetVersion() bool {\n\treturn p.Version != nil\n}\n\nfunc (p *ChatFlowRunRequest) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *ChatFlowRunRequest) IsSetAppID() bool {\n\treturn p.AppID != nil\n}\n\nfunc (p *ChatFlowRunRequest) IsSetConversationID() bool {\n\treturn p.ConversationID != nil\n}\n\nfunc (p *ChatFlowRunRequest) IsSetAdditionalMessages() bool {\n\treturn p.AdditionalMessages != nil\n}\n\nfunc (p *ChatFlowRunRequest) IsSetProjectID() bool {\n\treturn p.ProjectID != nil\n}\n\nfunc (p *ChatFlowRunRequest) IsSetSuggestReplyInfo() bool {\n\treturn p.SuggestReplyInfo != nil\n}\n\nfunc (p *ChatFlowRunRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *ChatFlowRunRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 8:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField8(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.LIST {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatFlowRunRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ChatFlowRunRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Parameters = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.Ext = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotID = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ExecuteMode = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Version = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField8(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AppID = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConversationID = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField11(iprot thrift.TProtocol) error {\n\t_, size, err := iprot.ReadListBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make([]*EnterMessage, 0, size)\n\tvalues := make([]EnterMessage, size)\n\tfor i := 0; i < size; i++ {\n\t\t_elem := &values[i]\n\t\t_elem.InitDefault()\n\n\t\tif err := _elem.Read(iprot); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_field = append(_field, _elem)\n\t}\n\tif err := iprot.ReadListEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.AdditionalMessages = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ProjectID = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField13(iprot thrift.TProtocol) error {\n\t_field := NewSuggestReplyInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.SuggestReplyInfo = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *ChatFlowRunRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatFlowRunRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField8(oprot); err != nil {\n\t\t\tfieldId = 8\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatFlowRunRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetParameters() {\n\t\tif err = oprot.WriteFieldBegin(\"Parameters\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Parameters); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Ext\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Ext)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.Ext {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotID() {\n\t\tif err = oprot.WriteFieldBegin(\"BotID\", thrift.STRING, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.BotID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetExecuteMode() {\n\t\tif err = oprot.WriteFieldBegin(\"ExecuteMode\", thrift.STRING, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ExecuteMode); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetVersion() {\n\t\tif err = oprot.WriteFieldBegin(\"Version\", thrift.STRING, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Version); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField8(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.STRING, 8); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 8 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAppID() {\n\t\tif err = oprot.WriteFieldBegin(\"AppID\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.AppID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConversationID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConversationID\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConversationID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAdditionalMessages() {\n\t\tif err = oprot.WriteFieldBegin(\"AdditionalMessages\", thrift.LIST, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteListBegin(thrift.STRUCT, len(p.AdditionalMessages)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, v := range p.AdditionalMessages {\n\t\t\tif err := v.Write(oprot); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteListEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetProjectID() {\n\t\tif err = oprot.WriteFieldBegin(\"ProjectID\", thrift.STRING, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ProjectID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuggestReplyInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"SuggestReplyInfo\", thrift.STRUCT, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.SuggestReplyInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *ChatFlowRunRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ChatFlowRunRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatFlowRunRequest(%+v)\", *p)\n\n}\n\ntype ChatFlowRunResponse struct {\n\t// event type\n\tEvent string `thrift:\"Event,1\" json:\"event\" form:\"Event\" query:\"Event\"`\n\t// Msg, error and other data, in order to align different message types, use json serialization\n\tData string `thrift:\"Data,2\" json:\"data\" form:\"Data\" query:\"Data\"`\n\t//    2: optional ChatFlowMessageDetail MessageData (api.body = \"message_data\")//Message content\n\t//    3: optional ChatFlowChatDetail ChatData (api.body = \"chat_data\")//dialogue content\n\t//    4: optional LastError ErrorData (api.body = \"error_data\")//Error message\n\t//    5: optional string DoneMsg (api.body = \"done_msg\")//end information\n\tBaseResp *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewChatFlowRunResponse() *ChatFlowRunResponse {\n\treturn &ChatFlowRunResponse{}\n}\n\nfunc (p *ChatFlowRunResponse) InitDefault() {\n}\n\nfunc (p *ChatFlowRunResponse) GetEvent() (v string) {\n\treturn p.Event\n}\n\nfunc (p *ChatFlowRunResponse) GetData() (v string) {\n\treturn p.Data\n}\n\nvar ChatFlowRunResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *ChatFlowRunResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn ChatFlowRunResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_ChatFlowRunResponse = map[int16]string{\n\t1:   \"Event\",\n\t2:   \"Data\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *ChatFlowRunResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *ChatFlowRunResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ChatFlowRunResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_ChatFlowRunResponse[fieldId]))\n}\n\nfunc (p *ChatFlowRunResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Event = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Data = _field\n\treturn nil\n}\nfunc (p *ChatFlowRunResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *ChatFlowRunResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ChatFlowRunResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ChatFlowRunResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Event\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Event); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ChatFlowRunResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Data\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Data); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ChatFlowRunResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *ChatFlowRunResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ChatFlowRunResponse(%+v)\", *p)\n\n}\n\ntype OpenAPIGetWorkflowInfoRequest struct {\n\tWorkflowID  string `thrift:\"WorkflowID,1\" json:\"workflow_id\" path:\"workflow_id\" `\n\tConnectorID string `thrift:\"ConnectorID,2\" json:\"connector_id\" query:\"connector_id\" `\n\tIsDebug     bool   `thrift:\"IsDebug,3\" json:\"is_debug\" query:\"is_debug\" `\n\t//    4: optional string AppID (api.query = \"app_id\")\n\tCaller *string    `thrift:\"Caller,5,optional\" json:\"caller\" query:\"caller\" `\n\tBase   *base.Base `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewOpenAPIGetWorkflowInfoRequest() *OpenAPIGetWorkflowInfoRequest {\n\treturn &OpenAPIGetWorkflowInfoRequest{}\n}\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) InitDefault() {\n}\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) GetWorkflowID() (v string) {\n\treturn p.WorkflowID\n}\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) GetConnectorID() (v string) {\n\treturn p.ConnectorID\n}\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) GetIsDebug() (v bool) {\n\treturn p.IsDebug\n}\n\nvar OpenAPIGetWorkflowInfoRequest_Caller_DEFAULT string\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) GetCaller() (v string) {\n\tif !p.IsSetCaller() {\n\t\treturn OpenAPIGetWorkflowInfoRequest_Caller_DEFAULT\n\t}\n\treturn *p.Caller\n}\n\nvar OpenAPIGetWorkflowInfoRequest_Base_DEFAULT *base.Base\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn OpenAPIGetWorkflowInfoRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_OpenAPIGetWorkflowInfoRequest = map[int16]string{\n\t1:   \"WorkflowID\",\n\t2:   \"ConnectorID\",\n\t3:   \"IsDebug\",\n\t5:   \"Caller\",\n\t255: \"Base\",\n}\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) IsSetCaller() bool {\n\treturn p.Caller != nil\n}\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIGetWorkflowInfoRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *OpenAPIGetWorkflowInfoRequest) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *OpenAPIGetWorkflowInfoRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.IsDebug = _field\n\treturn nil\n}\nfunc (p *OpenAPIGetWorkflowInfoRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Caller = _field\n\treturn nil\n}\nfunc (p *OpenAPIGetWorkflowInfoRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIGetWorkflowInfoRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"WorkflowID\", thrift.STRING, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.WorkflowID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OpenAPIGetWorkflowInfoRequest) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.ConnectorID); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OpenAPIGetWorkflowInfoRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"IsDebug\", thrift.BOOL, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteBool(p.IsDebug); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *OpenAPIGetWorkflowInfoRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCaller() {\n\t\tif err = oprot.WriteFieldBegin(\"Caller\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Caller); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *OpenAPIGetWorkflowInfoRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *OpenAPIGetWorkflowInfoRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIGetWorkflowInfoRequest(%+v)\", *p)\n\n}\n\ntype WorkflowInfo struct {\n\tRole *ChatFlowRole `thrift:\"Role,1,optional\" json:\"role\" form:\"Role\" query:\"Role\"`\n}\n\nfunc NewWorkflowInfo() *WorkflowInfo {\n\treturn &WorkflowInfo{}\n}\n\nfunc (p *WorkflowInfo) InitDefault() {\n}\n\nvar WorkflowInfo_Role_DEFAULT *ChatFlowRole\n\nfunc (p *WorkflowInfo) GetRole() (v *ChatFlowRole) {\n\tif !p.IsSetRole() {\n\t\treturn WorkflowInfo_Role_DEFAULT\n\t}\n\treturn p.Role\n}\n\nvar fieldIDToName_WorkflowInfo = map[int16]string{\n\t1: \"Role\",\n}\n\nfunc (p *WorkflowInfo) IsSetRole() bool {\n\treturn p.Role != nil\n}\n\nfunc (p *WorkflowInfo) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowInfo[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowInfo) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewChatFlowRole()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Role = _field\n\treturn nil\n}\n\nfunc (p *WorkflowInfo) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowInfo\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowInfo) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetRole() {\n\t\tif err = oprot.WriteFieldBegin(\"Role\", thrift.STRUCT, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Role.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowInfo) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowInfo(%+v)\", *p)\n\n}\n\ntype OpenAPIGetWorkflowInfoResponse struct {\n\t//  API adaptation\n\tCode         *int32         `thrift:\"Code,1,optional\" form:\"code\" json:\"code,omitempty\"`\n\tMsg          *string        `thrift:\"Msg,2,optional\" form:\"msg\" json:\"msg,omitempty\"`\n\tWorkflowInfo *WorkflowInfo  `thrift:\"WorkflowInfo,3,optional\" form:\"data\" json:\"data,omitempty\"`\n\tBaseResp     *base.BaseResp `thrift:\"BaseResp,255,required\" form:\"BaseResp,required\" json:\"BaseResp,required\" query:\"BaseResp,required\"`\n}\n\nfunc NewOpenAPIGetWorkflowInfoResponse() *OpenAPIGetWorkflowInfoResponse {\n\treturn &OpenAPIGetWorkflowInfoResponse{}\n}\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) InitDefault() {\n}\n\nvar OpenAPIGetWorkflowInfoResponse_Code_DEFAULT int32\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) GetCode() (v int32) {\n\tif !p.IsSetCode() {\n\t\treturn OpenAPIGetWorkflowInfoResponse_Code_DEFAULT\n\t}\n\treturn *p.Code\n}\n\nvar OpenAPIGetWorkflowInfoResponse_Msg_DEFAULT string\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) GetMsg() (v string) {\n\tif !p.IsSetMsg() {\n\t\treturn OpenAPIGetWorkflowInfoResponse_Msg_DEFAULT\n\t}\n\treturn *p.Msg\n}\n\nvar OpenAPIGetWorkflowInfoResponse_WorkflowInfo_DEFAULT *WorkflowInfo\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) GetWorkflowInfo() (v *WorkflowInfo) {\n\tif !p.IsSetWorkflowInfo() {\n\t\treturn OpenAPIGetWorkflowInfoResponse_WorkflowInfo_DEFAULT\n\t}\n\treturn p.WorkflowInfo\n}\n\nvar OpenAPIGetWorkflowInfoResponse_BaseResp_DEFAULT *base.BaseResp\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) GetBaseResp() (v *base.BaseResp) {\n\tif !p.IsSetBaseResp() {\n\t\treturn OpenAPIGetWorkflowInfoResponse_BaseResp_DEFAULT\n\t}\n\treturn p.BaseResp\n}\n\nvar fieldIDToName_OpenAPIGetWorkflowInfoResponse = map[int16]string{\n\t1:   \"Code\",\n\t2:   \"Msg\",\n\t3:   \"WorkflowInfo\",\n\t255: \"BaseResp\",\n}\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) IsSetCode() bool {\n\treturn p.Code != nil\n}\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) IsSetMsg() bool {\n\treturn p.Msg != nil\n}\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) IsSetWorkflowInfo() bool {\n\treturn p.WorkflowInfo != nil\n}\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) IsSetBaseResp() bool {\n\treturn p.BaseResp != nil\n}\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\tvar issetBaseResp bool = false\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I32 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t\tissetBaseResp = true\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\tif !issetBaseResp {\n\t\tfieldId = 255\n\t\tgoto RequiredFieldNotSetError\n\t}\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_OpenAPIGetWorkflowInfoResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\nRequiredFieldNotSetError:\n\treturn thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf(\"required field %s is not set\", fieldIDToName_OpenAPIGetWorkflowInfoResponse[fieldId]))\n}\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field *int32\n\tif v, err := iprot.ReadI32(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *OpenAPIGetWorkflowInfoResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *OpenAPIGetWorkflowInfoResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowInfo()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.WorkflowInfo = _field\n\treturn nil\n}\nfunc (p *OpenAPIGetWorkflowInfoResponse) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBaseResp()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.BaseResp = _field\n\treturn nil\n}\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIGetWorkflowInfoResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCode() {\n\t\tif err = oprot.WriteFieldBegin(\"Code\", thrift.I32, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI32(*p.Code); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *OpenAPIGetWorkflowInfoResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMsg() {\n\t\tif err = oprot.WriteFieldBegin(\"Msg\", thrift.STRING, 2); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.Msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *OpenAPIGetWorkflowInfoResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowInfo() {\n\t\tif err = oprot.WriteFieldBegin(\"WorkflowInfo\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.WorkflowInfo.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *OpenAPIGetWorkflowInfoResponse) writeField255(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"BaseResp\", thrift.STRUCT, 255); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.BaseResp.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *OpenAPIGetWorkflowInfoResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"OpenAPIGetWorkflowInfoResponse(%+v)\", *p)\n\n}\n\ntype CreateConversationRequest struct {\n\t//自定义透传字段\n\tMetaData         map[string]string `thrift:\"MetaData,1,optional\" form:\"meta_data\" json:\"meta_data,omitempty\"`\n\tBotId            *int64            `thrift:\"BotId,3,optional\" form:\"bot_id\" json:\"bot_id,string,omitempty\"`\n\tConnectorId      *int64            `thrift:\"ConnectorId,4,optional\" form:\"connector_id\" json:\"connector_id,string,omitempty\"`\n\tSpaceID          *string           `thrift:\"SpaceID,5,optional\" form:\"space_id\" json:\"space_id,string,omitempty\"`\n\tAppID            *string           `thrift:\"AppID,9,optional\" json:\"app_id\" form:\"AppID\" query:\"AppID\"`\n\tWorkflowID       *string           `thrift:\"WorkflowID,10,optional\" json:\"workflow_id\" form:\"WorkflowID\" query:\"WorkflowID\"`\n\tConversationMame *string           `thrift:\"ConversationMame,11,optional\" json:\"conversation_name\" form:\"ConversationMame\" query:\"ConversationMame\"`\n\tGetOrCreate      *bool             `thrift:\"GetOrCreate,12,optional\" json:\"get_or_create\" form:\"GetOrCreate\" query:\"GetOrCreate\"`\n\tDraftMode        *bool             `thrift:\"DraftMode,13,optional\" json:\"draft_mode\" form:\"DraftMode\" query:\"DraftMode\"`\n\tBase             *base.Base        `thrift:\"Base,255,optional\" form:\"Base\" json:\"Base,omitempty\" query:\"Base\"`\n}\n\nfunc NewCreateConversationRequest() *CreateConversationRequest {\n\treturn &CreateConversationRequest{}\n}\n\nfunc (p *CreateConversationRequest) InitDefault() {\n}\n\nvar CreateConversationRequest_MetaData_DEFAULT map[string]string\n\nfunc (p *CreateConversationRequest) GetMetaData() (v map[string]string) {\n\tif !p.IsSetMetaData() {\n\t\treturn CreateConversationRequest_MetaData_DEFAULT\n\t}\n\treturn p.MetaData\n}\n\nvar CreateConversationRequest_BotId_DEFAULT int64\n\nfunc (p *CreateConversationRequest) GetBotId() (v int64) {\n\tif !p.IsSetBotId() {\n\t\treturn CreateConversationRequest_BotId_DEFAULT\n\t}\n\treturn *p.BotId\n}\n\nvar CreateConversationRequest_ConnectorId_DEFAULT int64\n\nfunc (p *CreateConversationRequest) GetConnectorId() (v int64) {\n\tif !p.IsSetConnectorId() {\n\t\treturn CreateConversationRequest_ConnectorId_DEFAULT\n\t}\n\treturn *p.ConnectorId\n}\n\nvar CreateConversationRequest_SpaceID_DEFAULT string\n\nfunc (p *CreateConversationRequest) GetSpaceID() (v string) {\n\tif !p.IsSetSpaceID() {\n\t\treturn CreateConversationRequest_SpaceID_DEFAULT\n\t}\n\treturn *p.SpaceID\n}\n\nvar CreateConversationRequest_AppID_DEFAULT string\n\nfunc (p *CreateConversationRequest) GetAppID() (v string) {\n\tif !p.IsSetAppID() {\n\t\treturn CreateConversationRequest_AppID_DEFAULT\n\t}\n\treturn *p.AppID\n}\n\nvar CreateConversationRequest_WorkflowID_DEFAULT string\n\nfunc (p *CreateConversationRequest) GetWorkflowID() (v string) {\n\tif !p.IsSetWorkflowID() {\n\t\treturn CreateConversationRequest_WorkflowID_DEFAULT\n\t}\n\treturn *p.WorkflowID\n}\n\nvar CreateConversationRequest_ConversationMame_DEFAULT string\n\nfunc (p *CreateConversationRequest) GetConversationMame() (v string) {\n\tif !p.IsSetConversationMame() {\n\t\treturn CreateConversationRequest_ConversationMame_DEFAULT\n\t}\n\treturn *p.ConversationMame\n}\n\nvar CreateConversationRequest_GetOrCreate_DEFAULT bool\n\nfunc (p *CreateConversationRequest) GetGetOrCreate() (v bool) {\n\tif !p.IsSetGetOrCreate() {\n\t\treturn CreateConversationRequest_GetOrCreate_DEFAULT\n\t}\n\treturn *p.GetOrCreate\n}\n\nvar CreateConversationRequest_DraftMode_DEFAULT bool\n\nfunc (p *CreateConversationRequest) GetDraftMode() (v bool) {\n\tif !p.IsSetDraftMode() {\n\t\treturn CreateConversationRequest_DraftMode_DEFAULT\n\t}\n\treturn *p.DraftMode\n}\n\nvar CreateConversationRequest_Base_DEFAULT *base.Base\n\nfunc (p *CreateConversationRequest) GetBase() (v *base.Base) {\n\tif !p.IsSetBase() {\n\t\treturn CreateConversationRequest_Base_DEFAULT\n\t}\n\treturn p.Base\n}\n\nvar fieldIDToName_CreateConversationRequest = map[int16]string{\n\t1:   \"MetaData\",\n\t3:   \"BotId\",\n\t4:   \"ConnectorId\",\n\t5:   \"SpaceID\",\n\t9:   \"AppID\",\n\t10:  \"WorkflowID\",\n\t11:  \"ConversationMame\",\n\t12:  \"GetOrCreate\",\n\t13:  \"DraftMode\",\n\t255: \"Base\",\n}\n\nfunc (p *CreateConversationRequest) IsSetMetaData() bool {\n\treturn p.MetaData != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetBotId() bool {\n\treturn p.BotId != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetConnectorId() bool {\n\treturn p.ConnectorId != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetSpaceID() bool {\n\treturn p.SpaceID != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetAppID() bool {\n\treturn p.AppID != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetWorkflowID() bool {\n\treturn p.WorkflowID != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetConversationMame() bool {\n\treturn p.ConversationMame != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetGetOrCreate() bool {\n\treturn p.GetOrCreate != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetDraftMode() bool {\n\treturn p.DraftMode != nil\n}\n\nfunc (p *CreateConversationRequest) IsSetBase() bool {\n\treturn p.Base != nil\n}\n\nfunc (p *CreateConversationRequest) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 9:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField9(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 10:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField10(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 11:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField11(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 12:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField12(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 13:\n\t\t\tif fieldTypeId == thrift.BOOL {\n\t\t\t\tif err = p.ReadField13(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 255:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField255(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateConversationRequest[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateConversationRequest) ReadField1(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField3(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.BotId = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorId = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.SpaceID = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField9(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AppID = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField10(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.WorkflowID = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField11(iprot thrift.TProtocol) error {\n\n\tvar _field *string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConversationMame = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField12(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.GetOrCreate = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField13(iprot thrift.TProtocol) error {\n\n\tvar _field *bool\n\tif v, err := iprot.ReadBool(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.DraftMode = _field\n\treturn nil\n}\nfunc (p *CreateConversationRequest) ReadField255(iprot thrift.TProtocol) error {\n\t_field := base.NewBase()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Base = _field\n\treturn nil\n}\n\nfunc (p *CreateConversationRequest) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateConversationRequest\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField9(oprot); err != nil {\n\t\t\tfieldId = 9\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField10(oprot); err != nil {\n\t\t\tfieldId = 10\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField11(oprot); err != nil {\n\t\t\tfieldId = 11\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField12(oprot); err != nil {\n\t\t\tfieldId = 12\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField13(oprot); err != nil {\n\t\t\tfieldId = 13\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField255(oprot); err != nil {\n\t\t\tfieldId = 255\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateConversationRequest) writeField1(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetMetaData() {\n\t\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 1); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor k, v := range p.MetaData {\n\t\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := oprot.WriteMapEnd(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBotId() {\n\t\tif err = oprot.WriteFieldBegin(\"BotId\", thrift.I64, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.BotId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorId() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorId\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorId); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSpaceID() {\n\t\tif err = oprot.WriteFieldBegin(\"SpaceID\", thrift.STRING, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.SpaceID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField9(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAppID() {\n\t\tif err = oprot.WriteFieldBegin(\"AppID\", thrift.STRING, 9); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.AppID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 9 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField10(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetWorkflowID() {\n\t\tif err = oprot.WriteFieldBegin(\"WorkflowID\", thrift.STRING, 10); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.WorkflowID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 10 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField11(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConversationMame() {\n\t\tif err = oprot.WriteFieldBegin(\"ConversationMame\", thrift.STRING, 11); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteString(*p.ConversationMame); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 11 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField12(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetGetOrCreate() {\n\t\tif err = oprot.WriteFieldBegin(\"GetOrCreate\", thrift.BOOL, 12); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.GetOrCreate); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 12 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField13(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetDraftMode() {\n\t\tif err = oprot.WriteFieldBegin(\"DraftMode\", thrift.BOOL, 13); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteBool(*p.DraftMode); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 13 end error: \", p), err)\n}\nfunc (p *CreateConversationRequest) writeField255(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetBase() {\n\t\tif err = oprot.WriteFieldBegin(\"Base\", thrift.STRUCT, 255); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Base.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 255 end error: \", p), err)\n}\n\nfunc (p *CreateConversationRequest) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateConversationRequest(%+v)\", *p)\n\n}\n\ntype CreateConversationResponse struct {\n\tCode             int64             `thrift:\"code,1\" form:\"code\" json:\"code\" query:\"code\"`\n\tMsg              string            `thrift:\"msg,2\" form:\"msg\" json:\"msg\" query:\"msg\"`\n\tConversationData *ConversationData `thrift:\"ConversationData,3,optional\" form:\"data\" json:\"data,omitempty\"`\n}\n\nfunc NewCreateConversationResponse() *CreateConversationResponse {\n\treturn &CreateConversationResponse{}\n}\n\nfunc (p *CreateConversationResponse) InitDefault() {\n}\n\nfunc (p *CreateConversationResponse) GetCode() (v int64) {\n\treturn p.Code\n}\n\nfunc (p *CreateConversationResponse) GetMsg() (v string) {\n\treturn p.Msg\n}\n\nvar CreateConversationResponse_ConversationData_DEFAULT *ConversationData\n\nfunc (p *CreateConversationResponse) GetConversationData() (v *ConversationData) {\n\tif !p.IsSetConversationData() {\n\t\treturn CreateConversationResponse_ConversationData_DEFAULT\n\t}\n\treturn p.ConversationData\n}\n\nvar fieldIDToName_CreateConversationResponse = map[int16]string{\n\t1: \"code\",\n\t2: \"msg\",\n\t3: \"ConversationData\",\n}\n\nfunc (p *CreateConversationResponse) IsSetConversationData() bool {\n\treturn p.ConversationData != nil\n}\n\nfunc (p *CreateConversationResponse) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.STRING {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_CreateConversationResponse[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *CreateConversationResponse) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Code = _field\n\treturn nil\n}\nfunc (p *CreateConversationResponse) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field string\n\tif v, err := iprot.ReadString(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Msg = _field\n\treturn nil\n}\nfunc (p *CreateConversationResponse) ReadField3(iprot thrift.TProtocol) error {\n\t_field := NewConversationData()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.ConversationData = _field\n\treturn nil\n}\n\nfunc (p *CreateConversationResponse) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateConversationResponse\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *CreateConversationResponse) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"code\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Code); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *CreateConversationResponse) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"msg\", thrift.STRING, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteString(p.Msg); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *CreateConversationResponse) writeField3(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConversationData() {\n\t\tif err = oprot.WriteFieldBegin(\"ConversationData\", thrift.STRUCT, 3); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.ConversationData.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\n\nfunc (p *CreateConversationResponse) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"CreateConversationResponse(%+v)\", *p)\n\n}\n\ntype ConversationData struct {\n\tId            int64             `thrift:\"Id,1\" form:\"id\" json:\"id,string\"`\n\tCreatedAt     int64             `thrift:\"CreatedAt,2\" form:\"created_at\" json:\"created_at\"`\n\tMetaData      map[string]string `thrift:\"MetaData,3\" form:\"meta_data\" json:\"meta_data\"`\n\tCreatorID     *int64            `thrift:\"CreatorID,4,optional\" form:\"creator_d\" json:\"creator_d,string,omitempty\"`\n\tConnectorID   *int64            `thrift:\"ConnectorID,5,optional\" form:\"connector_id\" json:\"connector_id,string,omitempty\"`\n\tLastSectionID *int64            `thrift:\"LastSectionID,6,optional\" form:\"last_section_id\" json:\"last_section_id,string,omitempty\"`\n\tAccountID     *int64            `thrift:\"AccountID,7,optional\" form:\"account_id\" json:\"account_id,omitempty\"`\n}\n\nfunc NewConversationData() *ConversationData {\n\treturn &ConversationData{}\n}\n\nfunc (p *ConversationData) InitDefault() {\n}\n\nfunc (p *ConversationData) GetId() (v int64) {\n\treturn p.Id\n}\n\nfunc (p *ConversationData) GetCreatedAt() (v int64) {\n\treturn p.CreatedAt\n}\n\nfunc (p *ConversationData) GetMetaData() (v map[string]string) {\n\treturn p.MetaData\n}\n\nvar ConversationData_CreatorID_DEFAULT int64\n\nfunc (p *ConversationData) GetCreatorID() (v int64) {\n\tif !p.IsSetCreatorID() {\n\t\treturn ConversationData_CreatorID_DEFAULT\n\t}\n\treturn *p.CreatorID\n}\n\nvar ConversationData_ConnectorID_DEFAULT int64\n\nfunc (p *ConversationData) GetConnectorID() (v int64) {\n\tif !p.IsSetConnectorID() {\n\t\treturn ConversationData_ConnectorID_DEFAULT\n\t}\n\treturn *p.ConnectorID\n}\n\nvar ConversationData_LastSectionID_DEFAULT int64\n\nfunc (p *ConversationData) GetLastSectionID() (v int64) {\n\tif !p.IsSetLastSectionID() {\n\t\treturn ConversationData_LastSectionID_DEFAULT\n\t}\n\treturn *p.LastSectionID\n}\n\nvar ConversationData_AccountID_DEFAULT int64\n\nfunc (p *ConversationData) GetAccountID() (v int64) {\n\tif !p.IsSetAccountID() {\n\t\treturn ConversationData_AccountID_DEFAULT\n\t}\n\treturn *p.AccountID\n}\n\nvar fieldIDToName_ConversationData = map[int16]string{\n\t1: \"Id\",\n\t2: \"CreatedAt\",\n\t3: \"MetaData\",\n\t4: \"CreatorID\",\n\t5: \"ConnectorID\",\n\t6: \"LastSectionID\",\n\t7: \"AccountID\",\n}\n\nfunc (p *ConversationData) IsSetCreatorID() bool {\n\treturn p.CreatorID != nil\n}\n\nfunc (p *ConversationData) IsSetConnectorID() bool {\n\treturn p.ConnectorID != nil\n}\n\nfunc (p *ConversationData) IsSetLastSectionID() bool {\n\treturn p.LastSectionID != nil\n}\n\nfunc (p *ConversationData) IsSetAccountID() bool {\n\treturn p.AccountID != nil\n}\n\nfunc (p *ConversationData) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 2:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField2(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 3:\n\t\t\tif fieldTypeId == thrift.MAP {\n\t\t\t\tif err = p.ReadField3(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 4:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField4(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 5:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField5(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 6:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField6(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tcase 7:\n\t\t\tif fieldTypeId == thrift.I64 {\n\t\t\t\tif err = p.ReadField7(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_ConversationData[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *ConversationData) ReadField1(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.Id = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField2(iprot thrift.TProtocol) error {\n\n\tvar _field int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = v\n\t}\n\tp.CreatedAt = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField3(iprot thrift.TProtocol) error {\n\t_, _, size, err := iprot.ReadMapBegin()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_field := make(map[string]string, size)\n\tfor i := 0; i < size; i++ {\n\t\tvar _key string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_key = v\n\t\t}\n\n\t\tvar _val string\n\t\tif v, err := iprot.ReadString(); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\t_val = v\n\t\t}\n\n\t\t_field[_key] = _val\n\t}\n\tif err := iprot.ReadMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tp.MetaData = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField4(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.CreatorID = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField5(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.ConnectorID = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField6(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.LastSectionID = _field\n\treturn nil\n}\nfunc (p *ConversationData) ReadField7(iprot thrift.TProtocol) error {\n\n\tvar _field *int64\n\tif v, err := iprot.ReadI64(); err != nil {\n\t\treturn err\n\t} else {\n\t\t_field = &v\n\t}\n\tp.AccountID = _field\n\treturn nil\n}\n\nfunc (p *ConversationData) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ConversationData\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField2(oprot); err != nil {\n\t\t\tfieldId = 2\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField3(oprot); err != nil {\n\t\t\tfieldId = 3\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField4(oprot); err != nil {\n\t\t\tfieldId = 4\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField5(oprot); err != nil {\n\t\t\tfieldId = 5\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField6(oprot); err != nil {\n\t\t\tfieldId = 6\n\t\t\tgoto WriteFieldError\n\t\t}\n\t\tif err = p.writeField7(oprot); err != nil {\n\t\t\tfieldId = 7\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *ConversationData) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"Id\", thrift.I64, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.Id); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField2(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"CreatedAt\", thrift.I64, 2); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteI64(p.CreatedAt); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 2 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField3(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"MetaData\", thrift.MAP, 3); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.MetaData)); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range p.MetaData {\n\t\tif err := oprot.WriteString(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := oprot.WriteString(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := oprot.WriteMapEnd(); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 3 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField4(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetCreatorID() {\n\t\tif err = oprot.WriteFieldBegin(\"CreatorID\", thrift.I64, 4); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.CreatorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 4 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField5(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetConnectorID() {\n\t\tif err = oprot.WriteFieldBegin(\"ConnectorID\", thrift.I64, 5); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.ConnectorID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 5 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField6(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetLastSectionID() {\n\t\tif err = oprot.WriteFieldBegin(\"LastSectionID\", thrift.I64, 6); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.LastSectionID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 6 end error: \", p), err)\n}\nfunc (p *ConversationData) writeField7(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetAccountID() {\n\t\tif err = oprot.WriteFieldBegin(\"AccountID\", thrift.I64, 7); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := oprot.WriteI64(*p.AccountID); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 7 end error: \", p), err)\n}\n\nfunc (p *ConversationData) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"ConversationData(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/model/workflow/workflow_svc.go",
    "content": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage workflow\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thrift\"\n)\n\ntype WorkflowService interface {\n\t// Create process\n\tCreateWorkflow(ctx context.Context, request *CreateWorkflowRequest) (r *CreateWorkflowResponse, err error)\n\t// query process\n\tGetCanvasInfo(ctx context.Context, request *GetCanvasInfoRequest) (r *GetCanvasInfoResponse, err error)\n\n\tGetHistorySchema(ctx context.Context, request *GetHistorySchemaRequest) (r *GetHistorySchemaResponse, err error)\n\t// save process\n\tSaveWorkflow(ctx context.Context, request *SaveWorkflowRequest) (r *SaveWorkflowResponse, err error)\n\n\tUpdateWorkflowMeta(ctx context.Context, request *UpdateWorkflowMetaRequest) (r *UpdateWorkflowMetaResponse, err error)\n\n\tDeleteWorkflow(ctx context.Context, request *DeleteWorkflowRequest) (r *DeleteWorkflowResponse, err error)\n\n\tBatchDeleteWorkflow(ctx context.Context, request *BatchDeleteWorkflowRequest) (r *BatchDeleteWorkflowResponse, err error)\n\n\tGetDeleteStrategy(ctx context.Context, request *GetDeleteStrategyRequest) (r *GetDeleteStrategyResponse, err error)\n\t// Publish process. The purpose of this interface is to publish processes that are not internal to the project.\n\tPublishWorkflow(ctx context.Context, request *PublishWorkflowRequest) (r *PublishWorkflowResponse, err error)\n\n\tCopyWorkflow(ctx context.Context, request *CopyWorkflowRequest) (r *CopyWorkflowResponse, err error)\n\n\tCopyWkTemplateApi(ctx context.Context, request *CopyWkTemplateApiRequest) (r *CopyWkTemplateApiResponse, err error)\n\n\tGetReleasedWorkflows(ctx context.Context, request *GetReleasedWorkflowsRequest) (r *GetReleasedWorkflowsResponse, err error)\n\n\tGetWorkflowReferences(ctx context.Context, request *GetWorkflowReferencesRequest) (r *GetWorkflowReferencesResponse, err error)\n\t// Get a list of sample processes\n\tGetExampleWorkFlowList(ctx context.Context, request *GetExampleWorkFlowListRequest) (r *GetExampleWorkFlowListResponse, err error)\n\t// Gets a list of processes.\n\tGetWorkFlowList(ctx context.Context, request *GetWorkFlowListRequest) (r *GetWorkFlowListResponse, err error)\n\n\tQueryWorkflowNodeTypes(ctx context.Context, request *QueryWorkflowNodeTypeRequest) (r *QueryWorkflowNodeTypeResponse, err error)\n\t// Canvas\n\tNodeTemplateList(ctx context.Context, request *NodeTemplateListRequest) (r *NodeTemplateListResponse, err error)\n\n\tNodePanelSearch(ctx context.Context, request *NodePanelSearchRequest) (r *NodePanelSearchResponse, err error)\n\n\tGetLLMNodeFCSettingsMerged(ctx context.Context, req *GetLLMNodeFCSettingsMergedRequest) (r *GetLLMNodeFCSettingsMergedResponse, err error)\n\n\tGetLLMNodeFCSettingDetail(ctx context.Context, req *GetLLMNodeFCSettingDetailRequest) (r *GetLLMNodeFCSettingDetailResponse, err error)\n\t// Practice running process (test run)\n\tWorkFlowTestRun(ctx context.Context, request *WorkFlowTestRunRequest) (r *WorkFlowTestRunResponse, err error)\n\n\tWorkFlowTestResume(ctx context.Context, request *WorkflowTestResumeRequest) (r *WorkflowTestResumeResponse, err error)\n\n\tCancelWorkFlow(ctx context.Context, request *CancelWorkFlowRequest) (r *CancelWorkFlowResponse, err error)\n\t// View practice run history.\n\tGetWorkFlowProcess(ctx context.Context, request *GetWorkflowProcessRequest) (r *GetWorkflowProcessResponse, err error)\n\n\tGetNodeExecuteHistory(ctx context.Context, request *GetNodeExecuteHistoryRequest) (r *GetNodeExecuteHistoryResponse, err error)\n\n\tGetApiDetail(ctx context.Context, request *GetApiDetailRequest) (r *GetApiDetailResponse, err error)\n\n\tWorkflowNodeDebugV2(ctx context.Context, request *WorkflowNodeDebugV2Request) (r *WorkflowNodeDebugV2Response, err error)\n\t// file upload\n\tGetWorkflowUploadAuthToken(ctx context.Context, request *GetUploadAuthTokenRequest) (r *GetUploadAuthTokenResponse, err error)\n\n\tSignImageURL(ctx context.Context, request *SignImageURLRequest) (r *SignImageURLResponse, err error)\n\t// conversation\n\tCreateProjectConversationDef(ctx context.Context, request *CreateProjectConversationDefRequest) (r *CreateProjectConversationDefResponse, err error)\n\n\tUpdateProjectConversationDef(ctx context.Context, request *UpdateProjectConversationDefRequest) (r *UpdateProjectConversationDefResponse, err error)\n\n\tDeleteProjectConversationDef(ctx context.Context, request *DeleteProjectConversationDefRequest) (r *DeleteProjectConversationDefResponse, err error)\n\n\tListProjectConversationDef(ctx context.Context, request *ListProjectConversationRequest) (r *ListProjectConversationResponse, err error)\n\t// Trace\n\t// List traces of historical execution\n\tListRootSpans(ctx context.Context, req *ListRootSpansRequest) (r *ListRootSpansResponse, err error)\n\n\tGetTraceSDK(ctx context.Context, req *GetTraceSDKRequest) (r *GetTraceSDKResponse, err error)\n\t// App\n\tGetWorkflowDetail(ctx context.Context, request *GetWorkflowDetailRequest) (r *GetWorkflowDetailResponse, err error)\n\n\tGetWorkflowDetailInfo(ctx context.Context, request *GetWorkflowDetailInfoRequest) (r *GetWorkflowDetailInfoResponse, err error)\n\n\tValidateTree(ctx context.Context, request *ValidateTreeRequest) (r *ValidateTreeResponse, err error)\n\t// chat flow role config\n\tGetChatFlowRole(ctx context.Context, request *GetChatFlowRoleRequest) (r *GetChatFlowRoleResponse, err error)\n\n\tCreateChatFlowRole(ctx context.Context, request *CreateChatFlowRoleRequest) (r *CreateChatFlowRoleResponse, err error)\n\n\tDeleteChatFlowRole(ctx context.Context, request *DeleteChatFlowRoleRequest) (r *DeleteChatFlowRoleResponse, err error)\n\t// App Release Management\n\tListPublishWorkflow(ctx context.Context, request *ListPublishWorkflowRequest) (r *ListPublishWorkflowResponse, err error)\n\t// Open API\n\tOpenAPIRunFlow(ctx context.Context, request *OpenAPIRunFlowRequest) (r *OpenAPIRunFlowResponse, err error)\n\n\tOpenAPIStreamRunFlow(ctx context.Context, request *OpenAPIRunFlowRequest) (r *OpenAPIStreamRunFlowResponse, err error)\n\n\tOpenAPIStreamResumeFlow(ctx context.Context, request *OpenAPIStreamResumeFlowRequest) (r *OpenAPIStreamRunFlowResponse, err error)\n\n\tOpenAPIGetWorkflowRunHistory(ctx context.Context, request *GetWorkflowRunHistoryRequest) (r *GetWorkflowRunHistoryResponse, err error)\n\n\tOpenAPIChatFlowRun(ctx context.Context, request *ChatFlowRunRequest) (r *ChatFlowRunResponse, err error)\n\n\tOpenAPIGetWorkflowInfo(ctx context.Context, request *OpenAPIGetWorkflowInfoRequest) (r *OpenAPIGetWorkflowInfoResponse, err error)\n\n\tOpenAPICreateConversation(ctx context.Context, request *CreateConversationRequest) (r *CreateConversationResponse, err error)\n}\n\ntype WorkflowServiceClient struct {\n\tc thrift.TClient\n}\n\nfunc NewWorkflowServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *WorkflowServiceClient {\n\treturn &WorkflowServiceClient{\n\t\tc: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)),\n\t}\n}\n\nfunc NewWorkflowServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *WorkflowServiceClient {\n\treturn &WorkflowServiceClient{\n\t\tc: thrift.NewTStandardClient(iprot, oprot),\n\t}\n}\n\nfunc NewWorkflowServiceClient(c thrift.TClient) *WorkflowServiceClient {\n\treturn &WorkflowServiceClient{\n\t\tc: c,\n\t}\n}\n\nfunc (p *WorkflowServiceClient) Client_() thrift.TClient {\n\treturn p.c\n}\n\nfunc (p *WorkflowServiceClient) CreateWorkflow(ctx context.Context, request *CreateWorkflowRequest) (r *CreateWorkflowResponse, err error) {\n\tvar _args WorkflowServiceCreateWorkflowArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceCreateWorkflowResult\n\tif err = p.Client_().Call(ctx, \"CreateWorkflow\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetCanvasInfo(ctx context.Context, request *GetCanvasInfoRequest) (r *GetCanvasInfoResponse, err error) {\n\tvar _args WorkflowServiceGetCanvasInfoArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetCanvasInfoResult\n\tif err = p.Client_().Call(ctx, \"GetCanvasInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetHistorySchema(ctx context.Context, request *GetHistorySchemaRequest) (r *GetHistorySchemaResponse, err error) {\n\tvar _args WorkflowServiceGetHistorySchemaArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetHistorySchemaResult\n\tif err = p.Client_().Call(ctx, \"GetHistorySchema\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) SaveWorkflow(ctx context.Context, request *SaveWorkflowRequest) (r *SaveWorkflowResponse, err error) {\n\tvar _args WorkflowServiceSaveWorkflowArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceSaveWorkflowResult\n\tif err = p.Client_().Call(ctx, \"SaveWorkflow\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) UpdateWorkflowMeta(ctx context.Context, request *UpdateWorkflowMetaRequest) (r *UpdateWorkflowMetaResponse, err error) {\n\tvar _args WorkflowServiceUpdateWorkflowMetaArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceUpdateWorkflowMetaResult\n\tif err = p.Client_().Call(ctx, \"UpdateWorkflowMeta\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) DeleteWorkflow(ctx context.Context, request *DeleteWorkflowRequest) (r *DeleteWorkflowResponse, err error) {\n\tvar _args WorkflowServiceDeleteWorkflowArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceDeleteWorkflowResult\n\tif err = p.Client_().Call(ctx, \"DeleteWorkflow\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) BatchDeleteWorkflow(ctx context.Context, request *BatchDeleteWorkflowRequest) (r *BatchDeleteWorkflowResponse, err error) {\n\tvar _args WorkflowServiceBatchDeleteWorkflowArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceBatchDeleteWorkflowResult\n\tif err = p.Client_().Call(ctx, \"BatchDeleteWorkflow\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetDeleteStrategy(ctx context.Context, request *GetDeleteStrategyRequest) (r *GetDeleteStrategyResponse, err error) {\n\tvar _args WorkflowServiceGetDeleteStrategyArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetDeleteStrategyResult\n\tif err = p.Client_().Call(ctx, \"GetDeleteStrategy\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) PublishWorkflow(ctx context.Context, request *PublishWorkflowRequest) (r *PublishWorkflowResponse, err error) {\n\tvar _args WorkflowServicePublishWorkflowArgs\n\t_args.Request = request\n\tvar _result WorkflowServicePublishWorkflowResult\n\tif err = p.Client_().Call(ctx, \"PublishWorkflow\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) CopyWorkflow(ctx context.Context, request *CopyWorkflowRequest) (r *CopyWorkflowResponse, err error) {\n\tvar _args WorkflowServiceCopyWorkflowArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceCopyWorkflowResult\n\tif err = p.Client_().Call(ctx, \"CopyWorkflow\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) CopyWkTemplateApi(ctx context.Context, request *CopyWkTemplateApiRequest) (r *CopyWkTemplateApiResponse, err error) {\n\tvar _args WorkflowServiceCopyWkTemplateApiArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceCopyWkTemplateApiResult\n\tif err = p.Client_().Call(ctx, \"CopyWkTemplateApi\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetReleasedWorkflows(ctx context.Context, request *GetReleasedWorkflowsRequest) (r *GetReleasedWorkflowsResponse, err error) {\n\tvar _args WorkflowServiceGetReleasedWorkflowsArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetReleasedWorkflowsResult\n\tif err = p.Client_().Call(ctx, \"GetReleasedWorkflows\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetWorkflowReferences(ctx context.Context, request *GetWorkflowReferencesRequest) (r *GetWorkflowReferencesResponse, err error) {\n\tvar _args WorkflowServiceGetWorkflowReferencesArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetWorkflowReferencesResult\n\tif err = p.Client_().Call(ctx, \"GetWorkflowReferences\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetExampleWorkFlowList(ctx context.Context, request *GetExampleWorkFlowListRequest) (r *GetExampleWorkFlowListResponse, err error) {\n\tvar _args WorkflowServiceGetExampleWorkFlowListArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetExampleWorkFlowListResult\n\tif err = p.Client_().Call(ctx, \"GetExampleWorkFlowList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetWorkFlowList(ctx context.Context, request *GetWorkFlowListRequest) (r *GetWorkFlowListResponse, err error) {\n\tvar _args WorkflowServiceGetWorkFlowListArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetWorkFlowListResult\n\tif err = p.Client_().Call(ctx, \"GetWorkFlowList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) QueryWorkflowNodeTypes(ctx context.Context, request *QueryWorkflowNodeTypeRequest) (r *QueryWorkflowNodeTypeResponse, err error) {\n\tvar _args WorkflowServiceQueryWorkflowNodeTypesArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceQueryWorkflowNodeTypesResult\n\tif err = p.Client_().Call(ctx, \"QueryWorkflowNodeTypes\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) NodeTemplateList(ctx context.Context, request *NodeTemplateListRequest) (r *NodeTemplateListResponse, err error) {\n\tvar _args WorkflowServiceNodeTemplateListArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceNodeTemplateListResult\n\tif err = p.Client_().Call(ctx, \"NodeTemplateList\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) NodePanelSearch(ctx context.Context, request *NodePanelSearchRequest) (r *NodePanelSearchResponse, err error) {\n\tvar _args WorkflowServiceNodePanelSearchArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceNodePanelSearchResult\n\tif err = p.Client_().Call(ctx, \"NodePanelSearch\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetLLMNodeFCSettingsMerged(ctx context.Context, req *GetLLMNodeFCSettingsMergedRequest) (r *GetLLMNodeFCSettingsMergedResponse, err error) {\n\tvar _args WorkflowServiceGetLLMNodeFCSettingsMergedArgs\n\t_args.Req = req\n\tvar _result WorkflowServiceGetLLMNodeFCSettingsMergedResult\n\tif err = p.Client_().Call(ctx, \"GetLLMNodeFCSettingsMerged\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetLLMNodeFCSettingDetail(ctx context.Context, req *GetLLMNodeFCSettingDetailRequest) (r *GetLLMNodeFCSettingDetailResponse, err error) {\n\tvar _args WorkflowServiceGetLLMNodeFCSettingDetailArgs\n\t_args.Req = req\n\tvar _result WorkflowServiceGetLLMNodeFCSettingDetailResult\n\tif err = p.Client_().Call(ctx, \"GetLLMNodeFCSettingDetail\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) WorkFlowTestRun(ctx context.Context, request *WorkFlowTestRunRequest) (r *WorkFlowTestRunResponse, err error) {\n\tvar _args WorkflowServiceWorkFlowTestRunArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceWorkFlowTestRunResult\n\tif err = p.Client_().Call(ctx, \"WorkFlowTestRun\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) WorkFlowTestResume(ctx context.Context, request *WorkflowTestResumeRequest) (r *WorkflowTestResumeResponse, err error) {\n\tvar _args WorkflowServiceWorkFlowTestResumeArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceWorkFlowTestResumeResult\n\tif err = p.Client_().Call(ctx, \"WorkFlowTestResume\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) CancelWorkFlow(ctx context.Context, request *CancelWorkFlowRequest) (r *CancelWorkFlowResponse, err error) {\n\tvar _args WorkflowServiceCancelWorkFlowArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceCancelWorkFlowResult\n\tif err = p.Client_().Call(ctx, \"CancelWorkFlow\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetWorkFlowProcess(ctx context.Context, request *GetWorkflowProcessRequest) (r *GetWorkflowProcessResponse, err error) {\n\tvar _args WorkflowServiceGetWorkFlowProcessArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetWorkFlowProcessResult\n\tif err = p.Client_().Call(ctx, \"GetWorkFlowProcess\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetNodeExecuteHistory(ctx context.Context, request *GetNodeExecuteHistoryRequest) (r *GetNodeExecuteHistoryResponse, err error) {\n\tvar _args WorkflowServiceGetNodeExecuteHistoryArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetNodeExecuteHistoryResult\n\tif err = p.Client_().Call(ctx, \"GetNodeExecuteHistory\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetApiDetail(ctx context.Context, request *GetApiDetailRequest) (r *GetApiDetailResponse, err error) {\n\tvar _args WorkflowServiceGetApiDetailArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetApiDetailResult\n\tif err = p.Client_().Call(ctx, \"GetApiDetail\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) WorkflowNodeDebugV2(ctx context.Context, request *WorkflowNodeDebugV2Request) (r *WorkflowNodeDebugV2Response, err error) {\n\tvar _args WorkflowServiceWorkflowNodeDebugV2Args\n\t_args.Request = request\n\tvar _result WorkflowServiceWorkflowNodeDebugV2Result\n\tif err = p.Client_().Call(ctx, \"WorkflowNodeDebugV2\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetWorkflowUploadAuthToken(ctx context.Context, request *GetUploadAuthTokenRequest) (r *GetUploadAuthTokenResponse, err error) {\n\tvar _args WorkflowServiceGetWorkflowUploadAuthTokenArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetWorkflowUploadAuthTokenResult\n\tif err = p.Client_().Call(ctx, \"GetWorkflowUploadAuthToken\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) SignImageURL(ctx context.Context, request *SignImageURLRequest) (r *SignImageURLResponse, err error) {\n\tvar _args WorkflowServiceSignImageURLArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceSignImageURLResult\n\tif err = p.Client_().Call(ctx, \"SignImageURL\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) CreateProjectConversationDef(ctx context.Context, request *CreateProjectConversationDefRequest) (r *CreateProjectConversationDefResponse, err error) {\n\tvar _args WorkflowServiceCreateProjectConversationDefArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceCreateProjectConversationDefResult\n\tif err = p.Client_().Call(ctx, \"CreateProjectConversationDef\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) UpdateProjectConversationDef(ctx context.Context, request *UpdateProjectConversationDefRequest) (r *UpdateProjectConversationDefResponse, err error) {\n\tvar _args WorkflowServiceUpdateProjectConversationDefArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceUpdateProjectConversationDefResult\n\tif err = p.Client_().Call(ctx, \"UpdateProjectConversationDef\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) DeleteProjectConversationDef(ctx context.Context, request *DeleteProjectConversationDefRequest) (r *DeleteProjectConversationDefResponse, err error) {\n\tvar _args WorkflowServiceDeleteProjectConversationDefArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceDeleteProjectConversationDefResult\n\tif err = p.Client_().Call(ctx, \"DeleteProjectConversationDef\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) ListProjectConversationDef(ctx context.Context, request *ListProjectConversationRequest) (r *ListProjectConversationResponse, err error) {\n\tvar _args WorkflowServiceListProjectConversationDefArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceListProjectConversationDefResult\n\tif err = p.Client_().Call(ctx, \"ListProjectConversationDef\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) ListRootSpans(ctx context.Context, req *ListRootSpansRequest) (r *ListRootSpansResponse, err error) {\n\tvar _args WorkflowServiceListRootSpansArgs\n\t_args.Req = req\n\tvar _result WorkflowServiceListRootSpansResult\n\tif err = p.Client_().Call(ctx, \"ListRootSpans\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetTraceSDK(ctx context.Context, req *GetTraceSDKRequest) (r *GetTraceSDKResponse, err error) {\n\tvar _args WorkflowServiceGetTraceSDKArgs\n\t_args.Req = req\n\tvar _result WorkflowServiceGetTraceSDKResult\n\tif err = p.Client_().Call(ctx, \"GetTraceSDK\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetWorkflowDetail(ctx context.Context, request *GetWorkflowDetailRequest) (r *GetWorkflowDetailResponse, err error) {\n\tvar _args WorkflowServiceGetWorkflowDetailArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetWorkflowDetailResult\n\tif err = p.Client_().Call(ctx, \"GetWorkflowDetail\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetWorkflowDetailInfo(ctx context.Context, request *GetWorkflowDetailInfoRequest) (r *GetWorkflowDetailInfoResponse, err error) {\n\tvar _args WorkflowServiceGetWorkflowDetailInfoArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetWorkflowDetailInfoResult\n\tif err = p.Client_().Call(ctx, \"GetWorkflowDetailInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) ValidateTree(ctx context.Context, request *ValidateTreeRequest) (r *ValidateTreeResponse, err error) {\n\tvar _args WorkflowServiceValidateTreeArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceValidateTreeResult\n\tif err = p.Client_().Call(ctx, \"ValidateTree\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) GetChatFlowRole(ctx context.Context, request *GetChatFlowRoleRequest) (r *GetChatFlowRoleResponse, err error) {\n\tvar _args WorkflowServiceGetChatFlowRoleArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceGetChatFlowRoleResult\n\tif err = p.Client_().Call(ctx, \"GetChatFlowRole\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) CreateChatFlowRole(ctx context.Context, request *CreateChatFlowRoleRequest) (r *CreateChatFlowRoleResponse, err error) {\n\tvar _args WorkflowServiceCreateChatFlowRoleArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceCreateChatFlowRoleResult\n\tif err = p.Client_().Call(ctx, \"CreateChatFlowRole\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) DeleteChatFlowRole(ctx context.Context, request *DeleteChatFlowRoleRequest) (r *DeleteChatFlowRoleResponse, err error) {\n\tvar _args WorkflowServiceDeleteChatFlowRoleArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceDeleteChatFlowRoleResult\n\tif err = p.Client_().Call(ctx, \"DeleteChatFlowRole\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) ListPublishWorkflow(ctx context.Context, request *ListPublishWorkflowRequest) (r *ListPublishWorkflowResponse, err error) {\n\tvar _args WorkflowServiceListPublishWorkflowArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceListPublishWorkflowResult\n\tif err = p.Client_().Call(ctx, \"ListPublishWorkflow\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) OpenAPIRunFlow(ctx context.Context, request *OpenAPIRunFlowRequest) (r *OpenAPIRunFlowResponse, err error) {\n\tvar _args WorkflowServiceOpenAPIRunFlowArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceOpenAPIRunFlowResult\n\tif err = p.Client_().Call(ctx, \"OpenAPIRunFlow\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) OpenAPIStreamRunFlow(ctx context.Context, request *OpenAPIRunFlowRequest) (r *OpenAPIStreamRunFlowResponse, err error) {\n\tvar _args WorkflowServiceOpenAPIStreamRunFlowArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceOpenAPIStreamRunFlowResult\n\tif err = p.Client_().Call(ctx, \"OpenAPIStreamRunFlow\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) OpenAPIStreamResumeFlow(ctx context.Context, request *OpenAPIStreamResumeFlowRequest) (r *OpenAPIStreamRunFlowResponse, err error) {\n\tvar _args WorkflowServiceOpenAPIStreamResumeFlowArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceOpenAPIStreamResumeFlowResult\n\tif err = p.Client_().Call(ctx, \"OpenAPIStreamResumeFlow\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) OpenAPIGetWorkflowRunHistory(ctx context.Context, request *GetWorkflowRunHistoryRequest) (r *GetWorkflowRunHistoryResponse, err error) {\n\tvar _args WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceOpenAPIGetWorkflowRunHistoryResult\n\tif err = p.Client_().Call(ctx, \"OpenAPIGetWorkflowRunHistory\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) OpenAPIChatFlowRun(ctx context.Context, request *ChatFlowRunRequest) (r *ChatFlowRunResponse, err error) {\n\tvar _args WorkflowServiceOpenAPIChatFlowRunArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceOpenAPIChatFlowRunResult\n\tif err = p.Client_().Call(ctx, \"OpenAPIChatFlowRun\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) OpenAPIGetWorkflowInfo(ctx context.Context, request *OpenAPIGetWorkflowInfoRequest) (r *OpenAPIGetWorkflowInfoResponse, err error) {\n\tvar _args WorkflowServiceOpenAPIGetWorkflowInfoArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceOpenAPIGetWorkflowInfoResult\n\tif err = p.Client_().Call(ctx, \"OpenAPIGetWorkflowInfo\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\nfunc (p *WorkflowServiceClient) OpenAPICreateConversation(ctx context.Context, request *CreateConversationRequest) (r *CreateConversationResponse, err error) {\n\tvar _args WorkflowServiceOpenAPICreateConversationArgs\n\t_args.Request = request\n\tvar _result WorkflowServiceOpenAPICreateConversationResult\n\tif err = p.Client_().Call(ctx, \"OpenAPICreateConversation\", &_args, &_result); err != nil {\n\t\treturn\n\t}\n\treturn _result.GetSuccess(), nil\n}\n\ntype WorkflowServiceProcessor struct {\n\tprocessorMap map[string]thrift.TProcessorFunction\n\thandler      WorkflowService\n}\n\nfunc (p *WorkflowServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) {\n\tp.processorMap[key] = processor\n}\n\nfunc (p *WorkflowServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) {\n\tprocessor, ok = p.processorMap[key]\n\treturn processor, ok\n}\n\nfunc (p *WorkflowServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction {\n\treturn p.processorMap\n}\n\nfunc NewWorkflowServiceProcessor(handler WorkflowService) *WorkflowServiceProcessor {\n\tself := &WorkflowServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)}\n\tself.AddToProcessorMap(\"CreateWorkflow\", &workflowServiceProcessorCreateWorkflow{handler: handler})\n\tself.AddToProcessorMap(\"GetCanvasInfo\", &workflowServiceProcessorGetCanvasInfo{handler: handler})\n\tself.AddToProcessorMap(\"GetHistorySchema\", &workflowServiceProcessorGetHistorySchema{handler: handler})\n\tself.AddToProcessorMap(\"SaveWorkflow\", &workflowServiceProcessorSaveWorkflow{handler: handler})\n\tself.AddToProcessorMap(\"UpdateWorkflowMeta\", &workflowServiceProcessorUpdateWorkflowMeta{handler: handler})\n\tself.AddToProcessorMap(\"DeleteWorkflow\", &workflowServiceProcessorDeleteWorkflow{handler: handler})\n\tself.AddToProcessorMap(\"BatchDeleteWorkflow\", &workflowServiceProcessorBatchDeleteWorkflow{handler: handler})\n\tself.AddToProcessorMap(\"GetDeleteStrategy\", &workflowServiceProcessorGetDeleteStrategy{handler: handler})\n\tself.AddToProcessorMap(\"PublishWorkflow\", &workflowServiceProcessorPublishWorkflow{handler: handler})\n\tself.AddToProcessorMap(\"CopyWorkflow\", &workflowServiceProcessorCopyWorkflow{handler: handler})\n\tself.AddToProcessorMap(\"CopyWkTemplateApi\", &workflowServiceProcessorCopyWkTemplateApi{handler: handler})\n\tself.AddToProcessorMap(\"GetReleasedWorkflows\", &workflowServiceProcessorGetReleasedWorkflows{handler: handler})\n\tself.AddToProcessorMap(\"GetWorkflowReferences\", &workflowServiceProcessorGetWorkflowReferences{handler: handler})\n\tself.AddToProcessorMap(\"GetExampleWorkFlowList\", &workflowServiceProcessorGetExampleWorkFlowList{handler: handler})\n\tself.AddToProcessorMap(\"GetWorkFlowList\", &workflowServiceProcessorGetWorkFlowList{handler: handler})\n\tself.AddToProcessorMap(\"QueryWorkflowNodeTypes\", &workflowServiceProcessorQueryWorkflowNodeTypes{handler: handler})\n\tself.AddToProcessorMap(\"NodeTemplateList\", &workflowServiceProcessorNodeTemplateList{handler: handler})\n\tself.AddToProcessorMap(\"NodePanelSearch\", &workflowServiceProcessorNodePanelSearch{handler: handler})\n\tself.AddToProcessorMap(\"GetLLMNodeFCSettingsMerged\", &workflowServiceProcessorGetLLMNodeFCSettingsMerged{handler: handler})\n\tself.AddToProcessorMap(\"GetLLMNodeFCSettingDetail\", &workflowServiceProcessorGetLLMNodeFCSettingDetail{handler: handler})\n\tself.AddToProcessorMap(\"WorkFlowTestRun\", &workflowServiceProcessorWorkFlowTestRun{handler: handler})\n\tself.AddToProcessorMap(\"WorkFlowTestResume\", &workflowServiceProcessorWorkFlowTestResume{handler: handler})\n\tself.AddToProcessorMap(\"CancelWorkFlow\", &workflowServiceProcessorCancelWorkFlow{handler: handler})\n\tself.AddToProcessorMap(\"GetWorkFlowProcess\", &workflowServiceProcessorGetWorkFlowProcess{handler: handler})\n\tself.AddToProcessorMap(\"GetNodeExecuteHistory\", &workflowServiceProcessorGetNodeExecuteHistory{handler: handler})\n\tself.AddToProcessorMap(\"GetApiDetail\", &workflowServiceProcessorGetApiDetail{handler: handler})\n\tself.AddToProcessorMap(\"WorkflowNodeDebugV2\", &workflowServiceProcessorWorkflowNodeDebugV2{handler: handler})\n\tself.AddToProcessorMap(\"GetWorkflowUploadAuthToken\", &workflowServiceProcessorGetWorkflowUploadAuthToken{handler: handler})\n\tself.AddToProcessorMap(\"SignImageURL\", &workflowServiceProcessorSignImageURL{handler: handler})\n\tself.AddToProcessorMap(\"CreateProjectConversationDef\", &workflowServiceProcessorCreateProjectConversationDef{handler: handler})\n\tself.AddToProcessorMap(\"UpdateProjectConversationDef\", &workflowServiceProcessorUpdateProjectConversationDef{handler: handler})\n\tself.AddToProcessorMap(\"DeleteProjectConversationDef\", &workflowServiceProcessorDeleteProjectConversationDef{handler: handler})\n\tself.AddToProcessorMap(\"ListProjectConversationDef\", &workflowServiceProcessorListProjectConversationDef{handler: handler})\n\tself.AddToProcessorMap(\"ListRootSpans\", &workflowServiceProcessorListRootSpans{handler: handler})\n\tself.AddToProcessorMap(\"GetTraceSDK\", &workflowServiceProcessorGetTraceSDK{handler: handler})\n\tself.AddToProcessorMap(\"GetWorkflowDetail\", &workflowServiceProcessorGetWorkflowDetail{handler: handler})\n\tself.AddToProcessorMap(\"GetWorkflowDetailInfo\", &workflowServiceProcessorGetWorkflowDetailInfo{handler: handler})\n\tself.AddToProcessorMap(\"ValidateTree\", &workflowServiceProcessorValidateTree{handler: handler})\n\tself.AddToProcessorMap(\"GetChatFlowRole\", &workflowServiceProcessorGetChatFlowRole{handler: handler})\n\tself.AddToProcessorMap(\"CreateChatFlowRole\", &workflowServiceProcessorCreateChatFlowRole{handler: handler})\n\tself.AddToProcessorMap(\"DeleteChatFlowRole\", &workflowServiceProcessorDeleteChatFlowRole{handler: handler})\n\tself.AddToProcessorMap(\"ListPublishWorkflow\", &workflowServiceProcessorListPublishWorkflow{handler: handler})\n\tself.AddToProcessorMap(\"OpenAPIRunFlow\", &workflowServiceProcessorOpenAPIRunFlow{handler: handler})\n\tself.AddToProcessorMap(\"OpenAPIStreamRunFlow\", &workflowServiceProcessorOpenAPIStreamRunFlow{handler: handler})\n\tself.AddToProcessorMap(\"OpenAPIStreamResumeFlow\", &workflowServiceProcessorOpenAPIStreamResumeFlow{handler: handler})\n\tself.AddToProcessorMap(\"OpenAPIGetWorkflowRunHistory\", &workflowServiceProcessorOpenAPIGetWorkflowRunHistory{handler: handler})\n\tself.AddToProcessorMap(\"OpenAPIChatFlowRun\", &workflowServiceProcessorOpenAPIChatFlowRun{handler: handler})\n\tself.AddToProcessorMap(\"OpenAPIGetWorkflowInfo\", &workflowServiceProcessorOpenAPIGetWorkflowInfo{handler: handler})\n\tself.AddToProcessorMap(\"OpenAPICreateConversation\", &workflowServiceProcessorOpenAPICreateConversation{handler: handler})\n\treturn self\n}\nfunc (p *WorkflowServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\tname, _, seqId, err := iprot.ReadMessageBegin()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif processor, ok := p.GetProcessorFunction(name); ok {\n\t\treturn processor.Process(ctx, seqId, iprot, oprot)\n\t}\n\tiprot.Skip(thrift.STRUCT)\n\tiprot.ReadMessageEnd()\n\tx := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, \"Unknown function \"+name)\n\toprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId)\n\tx.Write(oprot)\n\toprot.WriteMessageEnd()\n\toprot.Flush(ctx)\n\treturn false, x\n}\n\ntype workflowServiceProcessorCreateWorkflow struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorCreateWorkflow) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceCreateWorkflowArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceCreateWorkflowResult{}\n\tvar retval *CreateWorkflowResponse\n\tif retval, err2 = p.handler.CreateWorkflow(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateWorkflow: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateWorkflow\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetCanvasInfo struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetCanvasInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetCanvasInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetCanvasInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetCanvasInfoResult{}\n\tvar retval *GetCanvasInfoResponse\n\tif retval, err2 = p.handler.GetCanvasInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetCanvasInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetCanvasInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetCanvasInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetHistorySchema struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetHistorySchema) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetHistorySchemaArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetHistorySchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetHistorySchemaResult{}\n\tvar retval *GetHistorySchemaResponse\n\tif retval, err2 = p.handler.GetHistorySchema(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetHistorySchema: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetHistorySchema\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetHistorySchema\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorSaveWorkflow struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorSaveWorkflow) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceSaveWorkflowArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"SaveWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceSaveWorkflowResult{}\n\tvar retval *SaveWorkflowResponse\n\tif retval, err2 = p.handler.SaveWorkflow(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing SaveWorkflow: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"SaveWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"SaveWorkflow\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorUpdateWorkflowMeta struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorUpdateWorkflowMeta) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceUpdateWorkflowMetaArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateWorkflowMeta\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceUpdateWorkflowMetaResult{}\n\tvar retval *UpdateWorkflowMetaResponse\n\tif retval, err2 = p.handler.UpdateWorkflowMeta(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateWorkflowMeta: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateWorkflowMeta\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateWorkflowMeta\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorDeleteWorkflow struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorDeleteWorkflow) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceDeleteWorkflowArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceDeleteWorkflowResult{}\n\tvar retval *DeleteWorkflowResponse\n\tif retval, err2 = p.handler.DeleteWorkflow(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteWorkflow: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteWorkflow\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorBatchDeleteWorkflow struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorBatchDeleteWorkflow) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceBatchDeleteWorkflowArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"BatchDeleteWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceBatchDeleteWorkflowResult{}\n\tvar retval *BatchDeleteWorkflowResponse\n\tif retval, err2 = p.handler.BatchDeleteWorkflow(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing BatchDeleteWorkflow: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"BatchDeleteWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"BatchDeleteWorkflow\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetDeleteStrategy struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetDeleteStrategy) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetDeleteStrategyArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetDeleteStrategy\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetDeleteStrategyResult{}\n\tvar retval *GetDeleteStrategyResponse\n\tif retval, err2 = p.handler.GetDeleteStrategy(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetDeleteStrategy: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetDeleteStrategy\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetDeleteStrategy\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorPublishWorkflow struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorPublishWorkflow) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServicePublishWorkflowArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"PublishWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServicePublishWorkflowResult{}\n\tvar retval *PublishWorkflowResponse\n\tif retval, err2 = p.handler.PublishWorkflow(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing PublishWorkflow: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"PublishWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"PublishWorkflow\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorCopyWorkflow struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorCopyWorkflow) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceCopyWorkflowArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CopyWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceCopyWorkflowResult{}\n\tvar retval *CopyWorkflowResponse\n\tif retval, err2 = p.handler.CopyWorkflow(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CopyWorkflow: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CopyWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CopyWorkflow\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorCopyWkTemplateApi struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorCopyWkTemplateApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceCopyWkTemplateApiArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CopyWkTemplateApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceCopyWkTemplateApiResult{}\n\tvar retval *CopyWkTemplateApiResponse\n\tif retval, err2 = p.handler.CopyWkTemplateApi(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CopyWkTemplateApi: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CopyWkTemplateApi\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CopyWkTemplateApi\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetReleasedWorkflows struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetReleasedWorkflows) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetReleasedWorkflowsArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetReleasedWorkflows\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetReleasedWorkflowsResult{}\n\tvar retval *GetReleasedWorkflowsResponse\n\tif retval, err2 = p.handler.GetReleasedWorkflows(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetReleasedWorkflows: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetReleasedWorkflows\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetReleasedWorkflows\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetWorkflowReferences struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetWorkflowReferences) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetWorkflowReferencesArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkflowReferences\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetWorkflowReferencesResult{}\n\tvar retval *GetWorkflowReferencesResponse\n\tif retval, err2 = p.handler.GetWorkflowReferences(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetWorkflowReferences: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkflowReferences\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetWorkflowReferences\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetExampleWorkFlowList struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetExampleWorkFlowList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetExampleWorkFlowListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetExampleWorkFlowList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetExampleWorkFlowListResult{}\n\tvar retval *GetExampleWorkFlowListResponse\n\tif retval, err2 = p.handler.GetExampleWorkFlowList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetExampleWorkFlowList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetExampleWorkFlowList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetExampleWorkFlowList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetWorkFlowList struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetWorkFlowList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetWorkFlowListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkFlowList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetWorkFlowListResult{}\n\tvar retval *GetWorkFlowListResponse\n\tif retval, err2 = p.handler.GetWorkFlowList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetWorkFlowList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkFlowList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetWorkFlowList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorQueryWorkflowNodeTypes struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorQueryWorkflowNodeTypes) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceQueryWorkflowNodeTypesArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"QueryWorkflowNodeTypes\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceQueryWorkflowNodeTypesResult{}\n\tvar retval *QueryWorkflowNodeTypeResponse\n\tif retval, err2 = p.handler.QueryWorkflowNodeTypes(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing QueryWorkflowNodeTypes: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"QueryWorkflowNodeTypes\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"QueryWorkflowNodeTypes\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorNodeTemplateList struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorNodeTemplateList) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceNodeTemplateListArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"NodeTemplateList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceNodeTemplateListResult{}\n\tvar retval *NodeTemplateListResponse\n\tif retval, err2 = p.handler.NodeTemplateList(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing NodeTemplateList: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"NodeTemplateList\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"NodeTemplateList\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorNodePanelSearch struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorNodePanelSearch) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceNodePanelSearchArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"NodePanelSearch\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceNodePanelSearchResult{}\n\tvar retval *NodePanelSearchResponse\n\tif retval, err2 = p.handler.NodePanelSearch(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing NodePanelSearch: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"NodePanelSearch\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"NodePanelSearch\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetLLMNodeFCSettingsMerged struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetLLMNodeFCSettingsMerged) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetLLMNodeFCSettingsMergedArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetLLMNodeFCSettingsMerged\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetLLMNodeFCSettingsMergedResult{}\n\tvar retval *GetLLMNodeFCSettingsMergedResponse\n\tif retval, err2 = p.handler.GetLLMNodeFCSettingsMerged(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetLLMNodeFCSettingsMerged: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetLLMNodeFCSettingsMerged\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetLLMNodeFCSettingsMerged\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetLLMNodeFCSettingDetail struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetLLMNodeFCSettingDetail) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetLLMNodeFCSettingDetailArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetLLMNodeFCSettingDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetLLMNodeFCSettingDetailResult{}\n\tvar retval *GetLLMNodeFCSettingDetailResponse\n\tif retval, err2 = p.handler.GetLLMNodeFCSettingDetail(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetLLMNodeFCSettingDetail: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetLLMNodeFCSettingDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetLLMNodeFCSettingDetail\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorWorkFlowTestRun struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorWorkFlowTestRun) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceWorkFlowTestRunArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"WorkFlowTestRun\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceWorkFlowTestRunResult{}\n\tvar retval *WorkFlowTestRunResponse\n\tif retval, err2 = p.handler.WorkFlowTestRun(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing WorkFlowTestRun: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"WorkFlowTestRun\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"WorkFlowTestRun\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorWorkFlowTestResume struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorWorkFlowTestResume) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceWorkFlowTestResumeArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"WorkFlowTestResume\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceWorkFlowTestResumeResult{}\n\tvar retval *WorkflowTestResumeResponse\n\tif retval, err2 = p.handler.WorkFlowTestResume(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing WorkFlowTestResume: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"WorkFlowTestResume\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"WorkFlowTestResume\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorCancelWorkFlow struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorCancelWorkFlow) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceCancelWorkFlowArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CancelWorkFlow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceCancelWorkFlowResult{}\n\tvar retval *CancelWorkFlowResponse\n\tif retval, err2 = p.handler.CancelWorkFlow(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CancelWorkFlow: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CancelWorkFlow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CancelWorkFlow\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetWorkFlowProcess struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetWorkFlowProcess) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetWorkFlowProcessArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkFlowProcess\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetWorkFlowProcessResult{}\n\tvar retval *GetWorkflowProcessResponse\n\tif retval, err2 = p.handler.GetWorkFlowProcess(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetWorkFlowProcess: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkFlowProcess\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetWorkFlowProcess\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetNodeExecuteHistory struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetNodeExecuteHistory) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetNodeExecuteHistoryArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetNodeExecuteHistory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetNodeExecuteHistoryResult{}\n\tvar retval *GetNodeExecuteHistoryResponse\n\tif retval, err2 = p.handler.GetNodeExecuteHistory(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetNodeExecuteHistory: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetNodeExecuteHistory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetNodeExecuteHistory\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetApiDetail struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetApiDetail) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetApiDetailArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetApiDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetApiDetailResult{}\n\tvar retval *GetApiDetailResponse\n\tif retval, err2 = p.handler.GetApiDetail(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetApiDetail: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetApiDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetApiDetail\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorWorkflowNodeDebugV2 struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorWorkflowNodeDebugV2) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceWorkflowNodeDebugV2Args{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"WorkflowNodeDebugV2\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceWorkflowNodeDebugV2Result{}\n\tvar retval *WorkflowNodeDebugV2Response\n\tif retval, err2 = p.handler.WorkflowNodeDebugV2(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing WorkflowNodeDebugV2: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"WorkflowNodeDebugV2\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"WorkflowNodeDebugV2\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetWorkflowUploadAuthToken struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetWorkflowUploadAuthToken) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetWorkflowUploadAuthTokenArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkflowUploadAuthToken\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetWorkflowUploadAuthTokenResult{}\n\tvar retval *GetUploadAuthTokenResponse\n\tif retval, err2 = p.handler.GetWorkflowUploadAuthToken(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetWorkflowUploadAuthToken: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkflowUploadAuthToken\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetWorkflowUploadAuthToken\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorSignImageURL struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorSignImageURL) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceSignImageURLArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"SignImageURL\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceSignImageURLResult{}\n\tvar retval *SignImageURLResponse\n\tif retval, err2 = p.handler.SignImageURL(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing SignImageURL: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"SignImageURL\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"SignImageURL\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorCreateProjectConversationDef struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorCreateProjectConversationDef) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceCreateProjectConversationDefArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateProjectConversationDef\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceCreateProjectConversationDefResult{}\n\tvar retval *CreateProjectConversationDefResponse\n\tif retval, err2 = p.handler.CreateProjectConversationDef(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateProjectConversationDef: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateProjectConversationDef\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateProjectConversationDef\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorUpdateProjectConversationDef struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorUpdateProjectConversationDef) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceUpdateProjectConversationDefArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"UpdateProjectConversationDef\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceUpdateProjectConversationDefResult{}\n\tvar retval *UpdateProjectConversationDefResponse\n\tif retval, err2 = p.handler.UpdateProjectConversationDef(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing UpdateProjectConversationDef: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"UpdateProjectConversationDef\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"UpdateProjectConversationDef\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorDeleteProjectConversationDef struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorDeleteProjectConversationDef) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceDeleteProjectConversationDefArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteProjectConversationDef\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceDeleteProjectConversationDefResult{}\n\tvar retval *DeleteProjectConversationDefResponse\n\tif retval, err2 = p.handler.DeleteProjectConversationDef(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteProjectConversationDef: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteProjectConversationDef\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteProjectConversationDef\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorListProjectConversationDef struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorListProjectConversationDef) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceListProjectConversationDefArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListProjectConversationDef\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceListProjectConversationDefResult{}\n\tvar retval *ListProjectConversationResponse\n\tif retval, err2 = p.handler.ListProjectConversationDef(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListProjectConversationDef: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListProjectConversationDef\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListProjectConversationDef\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorListRootSpans struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorListRootSpans) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceListRootSpansArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListRootSpans\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceListRootSpansResult{}\n\tvar retval *ListRootSpansResponse\n\tif retval, err2 = p.handler.ListRootSpans(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListRootSpans: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListRootSpans\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListRootSpans\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetTraceSDK struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetTraceSDK) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetTraceSDKArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetTraceSDK\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetTraceSDKResult{}\n\tvar retval *GetTraceSDKResponse\n\tif retval, err2 = p.handler.GetTraceSDK(ctx, args.Req); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetTraceSDK: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetTraceSDK\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetTraceSDK\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetWorkflowDetail struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetWorkflowDetail) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetWorkflowDetailArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkflowDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetWorkflowDetailResult{}\n\tvar retval *GetWorkflowDetailResponse\n\tif retval, err2 = p.handler.GetWorkflowDetail(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetWorkflowDetail: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkflowDetail\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetWorkflowDetail\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetWorkflowDetailInfo struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetWorkflowDetailInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetWorkflowDetailInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkflowDetailInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetWorkflowDetailInfoResult{}\n\tvar retval *GetWorkflowDetailInfoResponse\n\tif retval, err2 = p.handler.GetWorkflowDetailInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetWorkflowDetailInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetWorkflowDetailInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetWorkflowDetailInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorValidateTree struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorValidateTree) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceValidateTreeArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ValidateTree\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceValidateTreeResult{}\n\tvar retval *ValidateTreeResponse\n\tif retval, err2 = p.handler.ValidateTree(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ValidateTree: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ValidateTree\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ValidateTree\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorGetChatFlowRole struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorGetChatFlowRole) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceGetChatFlowRoleArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"GetChatFlowRole\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceGetChatFlowRoleResult{}\n\tvar retval *GetChatFlowRoleResponse\n\tif retval, err2 = p.handler.GetChatFlowRole(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing GetChatFlowRole: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"GetChatFlowRole\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"GetChatFlowRole\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorCreateChatFlowRole struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorCreateChatFlowRole) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceCreateChatFlowRoleArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"CreateChatFlowRole\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceCreateChatFlowRoleResult{}\n\tvar retval *CreateChatFlowRoleResponse\n\tif retval, err2 = p.handler.CreateChatFlowRole(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing CreateChatFlowRole: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"CreateChatFlowRole\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"CreateChatFlowRole\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorDeleteChatFlowRole struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorDeleteChatFlowRole) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceDeleteChatFlowRoleArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"DeleteChatFlowRole\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceDeleteChatFlowRoleResult{}\n\tvar retval *DeleteChatFlowRoleResponse\n\tif retval, err2 = p.handler.DeleteChatFlowRole(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing DeleteChatFlowRole: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"DeleteChatFlowRole\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"DeleteChatFlowRole\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorListPublishWorkflow struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorListPublishWorkflow) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceListPublishWorkflowArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"ListPublishWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceListPublishWorkflowResult{}\n\tvar retval *ListPublishWorkflowResponse\n\tif retval, err2 = p.handler.ListPublishWorkflow(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing ListPublishWorkflow: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"ListPublishWorkflow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"ListPublishWorkflow\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorOpenAPIRunFlow struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorOpenAPIRunFlow) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceOpenAPIRunFlowArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIRunFlow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceOpenAPIRunFlowResult{}\n\tvar retval *OpenAPIRunFlowResponse\n\tif retval, err2 = p.handler.OpenAPIRunFlow(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing OpenAPIRunFlow: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIRunFlow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"OpenAPIRunFlow\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorOpenAPIStreamRunFlow struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorOpenAPIStreamRunFlow) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceOpenAPIStreamRunFlowArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIStreamRunFlow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceOpenAPIStreamRunFlowResult{}\n\tvar retval *OpenAPIStreamRunFlowResponse\n\tif retval, err2 = p.handler.OpenAPIStreamRunFlow(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing OpenAPIStreamRunFlow: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIStreamRunFlow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"OpenAPIStreamRunFlow\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorOpenAPIStreamResumeFlow struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorOpenAPIStreamResumeFlow) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceOpenAPIStreamResumeFlowArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIStreamResumeFlow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceOpenAPIStreamResumeFlowResult{}\n\tvar retval *OpenAPIStreamRunFlowResponse\n\tif retval, err2 = p.handler.OpenAPIStreamResumeFlow(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing OpenAPIStreamResumeFlow: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIStreamResumeFlow\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"OpenAPIStreamResumeFlow\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorOpenAPIGetWorkflowRunHistory struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorOpenAPIGetWorkflowRunHistory) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIGetWorkflowRunHistory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceOpenAPIGetWorkflowRunHistoryResult{}\n\tvar retval *GetWorkflowRunHistoryResponse\n\tif retval, err2 = p.handler.OpenAPIGetWorkflowRunHistory(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing OpenAPIGetWorkflowRunHistory: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIGetWorkflowRunHistory\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"OpenAPIGetWorkflowRunHistory\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorOpenAPIChatFlowRun struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorOpenAPIChatFlowRun) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceOpenAPIChatFlowRunArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIChatFlowRun\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceOpenAPIChatFlowRunResult{}\n\tvar retval *ChatFlowRunResponse\n\tif retval, err2 = p.handler.OpenAPIChatFlowRun(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing OpenAPIChatFlowRun: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIChatFlowRun\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"OpenAPIChatFlowRun\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorOpenAPIGetWorkflowInfo struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorOpenAPIGetWorkflowInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceOpenAPIGetWorkflowInfoArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIGetWorkflowInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceOpenAPIGetWorkflowInfoResult{}\n\tvar retval *OpenAPIGetWorkflowInfoResponse\n\tif retval, err2 = p.handler.OpenAPIGetWorkflowInfo(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing OpenAPIGetWorkflowInfo: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPIGetWorkflowInfo\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"OpenAPIGetWorkflowInfo\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype workflowServiceProcessorOpenAPICreateConversation struct {\n\thandler WorkflowService\n}\n\nfunc (p *workflowServiceProcessorOpenAPICreateConversation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {\n\targs := WorkflowServiceOpenAPICreateConversationArgs{}\n\tif err = args.Read(iprot); err != nil {\n\t\tiprot.ReadMessageEnd()\n\t\tx := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPICreateConversation\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn false, err\n\t}\n\n\tiprot.ReadMessageEnd()\n\tvar err2 error\n\tresult := WorkflowServiceOpenAPICreateConversationResult{}\n\tvar retval *CreateConversationResponse\n\tif retval, err2 = p.handler.OpenAPICreateConversation(ctx, args.Request); err2 != nil {\n\t\tx := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, \"Internal error processing OpenAPICreateConversation: \"+err2.Error())\n\t\toprot.WriteMessageBegin(\"OpenAPICreateConversation\", thrift.EXCEPTION, seqId)\n\t\tx.Write(oprot)\n\t\toprot.WriteMessageEnd()\n\t\toprot.Flush(ctx)\n\t\treturn true, err2\n\t} else {\n\t\tresult.Success = retval\n\t}\n\tif err2 = oprot.WriteMessageBegin(\"OpenAPICreateConversation\", thrift.REPLY, seqId); err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = result.Write(oprot); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err2 = oprot.Flush(ctx); err == nil && err2 != nil {\n\t\terr = err2\n\t}\n\tif err != nil {\n\t\treturn\n\t}\n\treturn true, err\n}\n\ntype WorkflowServiceCreateWorkflowArgs struct {\n\tRequest *CreateWorkflowRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceCreateWorkflowArgs() *WorkflowServiceCreateWorkflowArgs {\n\treturn &WorkflowServiceCreateWorkflowArgs{}\n}\n\nfunc (p *WorkflowServiceCreateWorkflowArgs) InitDefault() {\n}\n\nvar WorkflowServiceCreateWorkflowArgs_Request_DEFAULT *CreateWorkflowRequest\n\nfunc (p *WorkflowServiceCreateWorkflowArgs) GetRequest() (v *CreateWorkflowRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceCreateWorkflowArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceCreateWorkflowArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceCreateWorkflowArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceCreateWorkflowArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCreateWorkflowArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateWorkflowArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateWorkflowRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCreateWorkflowArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateWorkflow_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateWorkflowArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateWorkflowArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCreateWorkflowArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceCreateWorkflowResult struct {\n\tSuccess *CreateWorkflowResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceCreateWorkflowResult() *WorkflowServiceCreateWorkflowResult {\n\treturn &WorkflowServiceCreateWorkflowResult{}\n}\n\nfunc (p *WorkflowServiceCreateWorkflowResult) InitDefault() {\n}\n\nvar WorkflowServiceCreateWorkflowResult_Success_DEFAULT *CreateWorkflowResponse\n\nfunc (p *WorkflowServiceCreateWorkflowResult) GetSuccess() (v *CreateWorkflowResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceCreateWorkflowResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceCreateWorkflowResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceCreateWorkflowResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceCreateWorkflowResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCreateWorkflowResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateWorkflowResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateWorkflowResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCreateWorkflowResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateWorkflow_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateWorkflowResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateWorkflowResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCreateWorkflowResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetCanvasInfoArgs struct {\n\tRequest *GetCanvasInfoRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetCanvasInfoArgs() *WorkflowServiceGetCanvasInfoArgs {\n\treturn &WorkflowServiceGetCanvasInfoArgs{}\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetCanvasInfoArgs_Request_DEFAULT *GetCanvasInfoRequest\n\nfunc (p *WorkflowServiceGetCanvasInfoArgs) GetRequest() (v *GetCanvasInfoRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetCanvasInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetCanvasInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetCanvasInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetCanvasInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetCanvasInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetCanvasInfoArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetCanvasInfoResult struct {\n\tSuccess *GetCanvasInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetCanvasInfoResult() *WorkflowServiceGetCanvasInfoResult {\n\treturn &WorkflowServiceGetCanvasInfoResult{}\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoResult) InitDefault() {\n}\n\nvar WorkflowServiceGetCanvasInfoResult_Success_DEFAULT *GetCanvasInfoResponse\n\nfunc (p *WorkflowServiceGetCanvasInfoResult) GetSuccess() (v *GetCanvasInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetCanvasInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetCanvasInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetCanvasInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetCanvasInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetCanvasInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetCanvasInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetCanvasInfoResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetHistorySchemaArgs struct {\n\tRequest *GetHistorySchemaRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetHistorySchemaArgs() *WorkflowServiceGetHistorySchemaArgs {\n\treturn &WorkflowServiceGetHistorySchemaArgs{}\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetHistorySchemaArgs_Request_DEFAULT *GetHistorySchemaRequest\n\nfunc (p *WorkflowServiceGetHistorySchemaArgs) GetRequest() (v *GetHistorySchemaRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetHistorySchemaArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetHistorySchemaArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetHistorySchemaArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetHistorySchemaRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetHistorySchema_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetHistorySchemaArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetHistorySchemaResult struct {\n\tSuccess *GetHistorySchemaResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetHistorySchemaResult() *WorkflowServiceGetHistorySchemaResult {\n\treturn &WorkflowServiceGetHistorySchemaResult{}\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaResult) InitDefault() {\n}\n\nvar WorkflowServiceGetHistorySchemaResult_Success_DEFAULT *GetHistorySchemaResponse\n\nfunc (p *WorkflowServiceGetHistorySchemaResult) GetSuccess() (v *GetHistorySchemaResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetHistorySchemaResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetHistorySchemaResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetHistorySchemaResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetHistorySchemaResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetHistorySchema_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetHistorySchemaResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetHistorySchemaResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceSaveWorkflowArgs struct {\n\tRequest *SaveWorkflowRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceSaveWorkflowArgs() *WorkflowServiceSaveWorkflowArgs {\n\treturn &WorkflowServiceSaveWorkflowArgs{}\n}\n\nfunc (p *WorkflowServiceSaveWorkflowArgs) InitDefault() {\n}\n\nvar WorkflowServiceSaveWorkflowArgs_Request_DEFAULT *SaveWorkflowRequest\n\nfunc (p *WorkflowServiceSaveWorkflowArgs) GetRequest() (v *SaveWorkflowRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceSaveWorkflowArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceSaveWorkflowArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceSaveWorkflowArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceSaveWorkflowArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceSaveWorkflowArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSaveWorkflowArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewSaveWorkflowRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceSaveWorkflowArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveWorkflow_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSaveWorkflowArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSaveWorkflowArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceSaveWorkflowArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceSaveWorkflowResult struct {\n\tSuccess *SaveWorkflowResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceSaveWorkflowResult() *WorkflowServiceSaveWorkflowResult {\n\treturn &WorkflowServiceSaveWorkflowResult{}\n}\n\nfunc (p *WorkflowServiceSaveWorkflowResult) InitDefault() {\n}\n\nvar WorkflowServiceSaveWorkflowResult_Success_DEFAULT *SaveWorkflowResponse\n\nfunc (p *WorkflowServiceSaveWorkflowResult) GetSuccess() (v *SaveWorkflowResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceSaveWorkflowResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceSaveWorkflowResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceSaveWorkflowResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceSaveWorkflowResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceSaveWorkflowResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSaveWorkflowResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewSaveWorkflowResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceSaveWorkflowResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SaveWorkflow_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSaveWorkflowResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSaveWorkflowResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceSaveWorkflowResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceUpdateWorkflowMetaArgs struct {\n\tRequest *UpdateWorkflowMetaRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceUpdateWorkflowMetaArgs() *WorkflowServiceUpdateWorkflowMetaArgs {\n\treturn &WorkflowServiceUpdateWorkflowMetaArgs{}\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaArgs) InitDefault() {\n}\n\nvar WorkflowServiceUpdateWorkflowMetaArgs_Request_DEFAULT *UpdateWorkflowMetaRequest\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaArgs) GetRequest() (v *UpdateWorkflowMetaRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceUpdateWorkflowMetaArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceUpdateWorkflowMetaArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceUpdateWorkflowMetaArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateWorkflowMetaRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateWorkflowMeta_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceUpdateWorkflowMetaArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceUpdateWorkflowMetaResult struct {\n\tSuccess *UpdateWorkflowMetaResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceUpdateWorkflowMetaResult() *WorkflowServiceUpdateWorkflowMetaResult {\n\treturn &WorkflowServiceUpdateWorkflowMetaResult{}\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaResult) InitDefault() {\n}\n\nvar WorkflowServiceUpdateWorkflowMetaResult_Success_DEFAULT *UpdateWorkflowMetaResponse\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaResult) GetSuccess() (v *UpdateWorkflowMetaResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceUpdateWorkflowMetaResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceUpdateWorkflowMetaResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceUpdateWorkflowMetaResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateWorkflowMetaResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateWorkflowMeta_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateWorkflowMetaResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceUpdateWorkflowMetaResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceDeleteWorkflowArgs struct {\n\tRequest *DeleteWorkflowRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceDeleteWorkflowArgs() *WorkflowServiceDeleteWorkflowArgs {\n\treturn &WorkflowServiceDeleteWorkflowArgs{}\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowArgs) InitDefault() {\n}\n\nvar WorkflowServiceDeleteWorkflowArgs_Request_DEFAULT *DeleteWorkflowRequest\n\nfunc (p *WorkflowServiceDeleteWorkflowArgs) GetRequest() (v *DeleteWorkflowRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceDeleteWorkflowArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceDeleteWorkflowArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceDeleteWorkflowArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteWorkflowRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteWorkflow_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceDeleteWorkflowArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceDeleteWorkflowResult struct {\n\tSuccess *DeleteWorkflowResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceDeleteWorkflowResult() *WorkflowServiceDeleteWorkflowResult {\n\treturn &WorkflowServiceDeleteWorkflowResult{}\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowResult) InitDefault() {\n}\n\nvar WorkflowServiceDeleteWorkflowResult_Success_DEFAULT *DeleteWorkflowResponse\n\nfunc (p *WorkflowServiceDeleteWorkflowResult) GetSuccess() (v *DeleteWorkflowResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceDeleteWorkflowResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceDeleteWorkflowResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceDeleteWorkflowResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteWorkflowResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteWorkflow_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteWorkflowResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceDeleteWorkflowResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceBatchDeleteWorkflowArgs struct {\n\tRequest *BatchDeleteWorkflowRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceBatchDeleteWorkflowArgs() *WorkflowServiceBatchDeleteWorkflowArgs {\n\treturn &WorkflowServiceBatchDeleteWorkflowArgs{}\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowArgs) InitDefault() {\n}\n\nvar WorkflowServiceBatchDeleteWorkflowArgs_Request_DEFAULT *BatchDeleteWorkflowRequest\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowArgs) GetRequest() (v *BatchDeleteWorkflowRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceBatchDeleteWorkflowArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceBatchDeleteWorkflowArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceBatchDeleteWorkflowArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewBatchDeleteWorkflowRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchDeleteWorkflow_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceBatchDeleteWorkflowArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceBatchDeleteWorkflowResult struct {\n\tSuccess *BatchDeleteWorkflowResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceBatchDeleteWorkflowResult() *WorkflowServiceBatchDeleteWorkflowResult {\n\treturn &WorkflowServiceBatchDeleteWorkflowResult{}\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowResult) InitDefault() {\n}\n\nvar WorkflowServiceBatchDeleteWorkflowResult_Success_DEFAULT *BatchDeleteWorkflowResponse\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowResult) GetSuccess() (v *BatchDeleteWorkflowResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceBatchDeleteWorkflowResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceBatchDeleteWorkflowResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceBatchDeleteWorkflowResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewBatchDeleteWorkflowResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"BatchDeleteWorkflow_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceBatchDeleteWorkflowResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceBatchDeleteWorkflowResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetDeleteStrategyArgs struct {\n\tRequest *GetDeleteStrategyRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetDeleteStrategyArgs() *WorkflowServiceGetDeleteStrategyArgs {\n\treturn &WorkflowServiceGetDeleteStrategyArgs{}\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetDeleteStrategyArgs_Request_DEFAULT *GetDeleteStrategyRequest\n\nfunc (p *WorkflowServiceGetDeleteStrategyArgs) GetRequest() (v *GetDeleteStrategyRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetDeleteStrategyArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetDeleteStrategyArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetDeleteStrategyArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetDeleteStrategyRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDeleteStrategy_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetDeleteStrategyArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetDeleteStrategyResult struct {\n\tSuccess *GetDeleteStrategyResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetDeleteStrategyResult() *WorkflowServiceGetDeleteStrategyResult {\n\treturn &WorkflowServiceGetDeleteStrategyResult{}\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyResult) InitDefault() {\n}\n\nvar WorkflowServiceGetDeleteStrategyResult_Success_DEFAULT *GetDeleteStrategyResponse\n\nfunc (p *WorkflowServiceGetDeleteStrategyResult) GetSuccess() (v *GetDeleteStrategyResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetDeleteStrategyResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetDeleteStrategyResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetDeleteStrategyResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetDeleteStrategyResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetDeleteStrategy_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetDeleteStrategyResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetDeleteStrategyResult(%+v)\", *p)\n\n}\n\ntype WorkflowServicePublishWorkflowArgs struct {\n\tRequest *PublishWorkflowRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServicePublishWorkflowArgs() *WorkflowServicePublishWorkflowArgs {\n\treturn &WorkflowServicePublishWorkflowArgs{}\n}\n\nfunc (p *WorkflowServicePublishWorkflowArgs) InitDefault() {\n}\n\nvar WorkflowServicePublishWorkflowArgs_Request_DEFAULT *PublishWorkflowRequest\n\nfunc (p *WorkflowServicePublishWorkflowArgs) GetRequest() (v *PublishWorkflowRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServicePublishWorkflowArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServicePublishWorkflowArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServicePublishWorkflowArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServicePublishWorkflowArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServicePublishWorkflowArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServicePublishWorkflowArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewPublishWorkflowRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServicePublishWorkflowArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishWorkflow_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServicePublishWorkflowArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServicePublishWorkflowArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServicePublishWorkflowArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServicePublishWorkflowResult struct {\n\tSuccess *PublishWorkflowResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServicePublishWorkflowResult() *WorkflowServicePublishWorkflowResult {\n\treturn &WorkflowServicePublishWorkflowResult{}\n}\n\nfunc (p *WorkflowServicePublishWorkflowResult) InitDefault() {\n}\n\nvar WorkflowServicePublishWorkflowResult_Success_DEFAULT *PublishWorkflowResponse\n\nfunc (p *WorkflowServicePublishWorkflowResult) GetSuccess() (v *PublishWorkflowResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServicePublishWorkflowResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServicePublishWorkflowResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServicePublishWorkflowResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServicePublishWorkflowResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServicePublishWorkflowResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServicePublishWorkflowResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewPublishWorkflowResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServicePublishWorkflowResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"PublishWorkflow_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServicePublishWorkflowResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServicePublishWorkflowResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServicePublishWorkflowResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceCopyWorkflowArgs struct {\n\tRequest *CopyWorkflowRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceCopyWorkflowArgs() *WorkflowServiceCopyWorkflowArgs {\n\treturn &WorkflowServiceCopyWorkflowArgs{}\n}\n\nfunc (p *WorkflowServiceCopyWorkflowArgs) InitDefault() {\n}\n\nvar WorkflowServiceCopyWorkflowArgs_Request_DEFAULT *CopyWorkflowRequest\n\nfunc (p *WorkflowServiceCopyWorkflowArgs) GetRequest() (v *CopyWorkflowRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceCopyWorkflowArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceCopyWorkflowArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceCopyWorkflowArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceCopyWorkflowArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCopyWorkflowArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWorkflowArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCopyWorkflowRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCopyWorkflowArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyWorkflow_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWorkflowArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWorkflowArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCopyWorkflowArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceCopyWorkflowResult struct {\n\tSuccess *CopyWorkflowResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceCopyWorkflowResult() *WorkflowServiceCopyWorkflowResult {\n\treturn &WorkflowServiceCopyWorkflowResult{}\n}\n\nfunc (p *WorkflowServiceCopyWorkflowResult) InitDefault() {\n}\n\nvar WorkflowServiceCopyWorkflowResult_Success_DEFAULT *CopyWorkflowResponse\n\nfunc (p *WorkflowServiceCopyWorkflowResult) GetSuccess() (v *CopyWorkflowResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceCopyWorkflowResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceCopyWorkflowResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceCopyWorkflowResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceCopyWorkflowResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCopyWorkflowResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWorkflowResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCopyWorkflowResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCopyWorkflowResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyWorkflow_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWorkflowResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWorkflowResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCopyWorkflowResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceCopyWkTemplateApiArgs struct {\n\tRequest *CopyWkTemplateApiRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceCopyWkTemplateApiArgs() *WorkflowServiceCopyWkTemplateApiArgs {\n\treturn &WorkflowServiceCopyWkTemplateApiArgs{}\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiArgs) InitDefault() {\n}\n\nvar WorkflowServiceCopyWkTemplateApiArgs_Request_DEFAULT *CopyWkTemplateApiRequest\n\nfunc (p *WorkflowServiceCopyWkTemplateApiArgs) GetRequest() (v *CopyWkTemplateApiRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceCopyWkTemplateApiArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceCopyWkTemplateApiArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCopyWkTemplateApiArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCopyWkTemplateApiRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyWkTemplateApi_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCopyWkTemplateApiArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceCopyWkTemplateApiResult struct {\n\tSuccess *CopyWkTemplateApiResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceCopyWkTemplateApiResult() *WorkflowServiceCopyWkTemplateApiResult {\n\treturn &WorkflowServiceCopyWkTemplateApiResult{}\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiResult) InitDefault() {\n}\n\nvar WorkflowServiceCopyWkTemplateApiResult_Success_DEFAULT *CopyWkTemplateApiResponse\n\nfunc (p *WorkflowServiceCopyWkTemplateApiResult) GetSuccess() (v *CopyWkTemplateApiResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceCopyWkTemplateApiResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceCopyWkTemplateApiResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCopyWkTemplateApiResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCopyWkTemplateApiResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CopyWkTemplateApi_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCopyWkTemplateApiResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCopyWkTemplateApiResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetReleasedWorkflowsArgs struct {\n\tRequest *GetReleasedWorkflowsRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetReleasedWorkflowsArgs() *WorkflowServiceGetReleasedWorkflowsArgs {\n\treturn &WorkflowServiceGetReleasedWorkflowsArgs{}\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetReleasedWorkflowsArgs_Request_DEFAULT *GetReleasedWorkflowsRequest\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsArgs) GetRequest() (v *GetReleasedWorkflowsRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetReleasedWorkflowsArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetReleasedWorkflowsArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetReleasedWorkflowsArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetReleasedWorkflowsRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetReleasedWorkflows_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetReleasedWorkflowsArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetReleasedWorkflowsResult struct {\n\tSuccess *GetReleasedWorkflowsResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetReleasedWorkflowsResult() *WorkflowServiceGetReleasedWorkflowsResult {\n\treturn &WorkflowServiceGetReleasedWorkflowsResult{}\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsResult) InitDefault() {\n}\n\nvar WorkflowServiceGetReleasedWorkflowsResult_Success_DEFAULT *GetReleasedWorkflowsResponse\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsResult) GetSuccess() (v *GetReleasedWorkflowsResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetReleasedWorkflowsResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetReleasedWorkflowsResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetReleasedWorkflowsResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetReleasedWorkflowsResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetReleasedWorkflows_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetReleasedWorkflowsResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetReleasedWorkflowsResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkflowReferencesArgs struct {\n\tRequest *GetWorkflowReferencesRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetWorkflowReferencesArgs() *WorkflowServiceGetWorkflowReferencesArgs {\n\treturn &WorkflowServiceGetWorkflowReferencesArgs{}\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkflowReferencesArgs_Request_DEFAULT *GetWorkflowReferencesRequest\n\nfunc (p *WorkflowServiceGetWorkflowReferencesArgs) GetRequest() (v *GetWorkflowReferencesRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetWorkflowReferencesArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkflowReferencesArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkflowReferencesArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkflowReferencesRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowReferences_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkflowReferencesArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkflowReferencesResult struct {\n\tSuccess *GetWorkflowReferencesResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetWorkflowReferencesResult() *WorkflowServiceGetWorkflowReferencesResult {\n\treturn &WorkflowServiceGetWorkflowReferencesResult{}\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesResult) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkflowReferencesResult_Success_DEFAULT *GetWorkflowReferencesResponse\n\nfunc (p *WorkflowServiceGetWorkflowReferencesResult) GetSuccess() (v *GetWorkflowReferencesResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetWorkflowReferencesResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkflowReferencesResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkflowReferencesResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkflowReferencesResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowReferences_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowReferencesResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkflowReferencesResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetExampleWorkFlowListArgs struct {\n\tRequest *GetExampleWorkFlowListRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetExampleWorkFlowListArgs() *WorkflowServiceGetExampleWorkFlowListArgs {\n\treturn &WorkflowServiceGetExampleWorkFlowListArgs{}\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetExampleWorkFlowListArgs_Request_DEFAULT *GetExampleWorkFlowListRequest\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListArgs) GetRequest() (v *GetExampleWorkFlowListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetExampleWorkFlowListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetExampleWorkFlowListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetExampleWorkFlowListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetExampleWorkFlowListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetExampleWorkFlowList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetExampleWorkFlowListArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetExampleWorkFlowListResult struct {\n\tSuccess *GetExampleWorkFlowListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetExampleWorkFlowListResult() *WorkflowServiceGetExampleWorkFlowListResult {\n\treturn &WorkflowServiceGetExampleWorkFlowListResult{}\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListResult) InitDefault() {\n}\n\nvar WorkflowServiceGetExampleWorkFlowListResult_Success_DEFAULT *GetExampleWorkFlowListResponse\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListResult) GetSuccess() (v *GetExampleWorkFlowListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetExampleWorkFlowListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetExampleWorkFlowListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetExampleWorkFlowListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetExampleWorkFlowListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetExampleWorkFlowList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetExampleWorkFlowListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetExampleWorkFlowListResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkFlowListArgs struct {\n\tRequest *GetWorkFlowListRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetWorkFlowListArgs() *WorkflowServiceGetWorkFlowListArgs {\n\treturn &WorkflowServiceGetWorkFlowListArgs{}\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkFlowListArgs_Request_DEFAULT *GetWorkFlowListRequest\n\nfunc (p *WorkflowServiceGetWorkFlowListArgs) GetRequest() (v *GetWorkFlowListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetWorkFlowListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkFlowListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkFlowListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkFlowListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkFlowList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkFlowListArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkFlowListResult struct {\n\tSuccess *GetWorkFlowListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetWorkFlowListResult() *WorkflowServiceGetWorkFlowListResult {\n\treturn &WorkflowServiceGetWorkFlowListResult{}\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListResult) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkFlowListResult_Success_DEFAULT *GetWorkFlowListResponse\n\nfunc (p *WorkflowServiceGetWorkFlowListResult) GetSuccess() (v *GetWorkFlowListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetWorkFlowListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkFlowListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkFlowListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkFlowListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkFlowList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkFlowListResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceQueryWorkflowNodeTypesArgs struct {\n\tRequest *QueryWorkflowNodeTypeRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceQueryWorkflowNodeTypesArgs() *WorkflowServiceQueryWorkflowNodeTypesArgs {\n\treturn &WorkflowServiceQueryWorkflowNodeTypesArgs{}\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesArgs) InitDefault() {\n}\n\nvar WorkflowServiceQueryWorkflowNodeTypesArgs_Request_DEFAULT *QueryWorkflowNodeTypeRequest\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesArgs) GetRequest() (v *QueryWorkflowNodeTypeRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceQueryWorkflowNodeTypesArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceQueryWorkflowNodeTypesArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceQueryWorkflowNodeTypesArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewQueryWorkflowNodeTypeRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"QueryWorkflowNodeTypes_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceQueryWorkflowNodeTypesArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceQueryWorkflowNodeTypesResult struct {\n\tSuccess *QueryWorkflowNodeTypeResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceQueryWorkflowNodeTypesResult() *WorkflowServiceQueryWorkflowNodeTypesResult {\n\treturn &WorkflowServiceQueryWorkflowNodeTypesResult{}\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesResult) InitDefault() {\n}\n\nvar WorkflowServiceQueryWorkflowNodeTypesResult_Success_DEFAULT *QueryWorkflowNodeTypeResponse\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesResult) GetSuccess() (v *QueryWorkflowNodeTypeResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceQueryWorkflowNodeTypesResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceQueryWorkflowNodeTypesResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceQueryWorkflowNodeTypesResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewQueryWorkflowNodeTypeResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"QueryWorkflowNodeTypes_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceQueryWorkflowNodeTypesResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceQueryWorkflowNodeTypesResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceNodeTemplateListArgs struct {\n\tRequest *NodeTemplateListRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceNodeTemplateListArgs() *WorkflowServiceNodeTemplateListArgs {\n\treturn &WorkflowServiceNodeTemplateListArgs{}\n}\n\nfunc (p *WorkflowServiceNodeTemplateListArgs) InitDefault() {\n}\n\nvar WorkflowServiceNodeTemplateListArgs_Request_DEFAULT *NodeTemplateListRequest\n\nfunc (p *WorkflowServiceNodeTemplateListArgs) GetRequest() (v *NodeTemplateListRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceNodeTemplateListArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceNodeTemplateListArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceNodeTemplateListArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceNodeTemplateListArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceNodeTemplateListArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodeTemplateListArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewNodeTemplateListRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceNodeTemplateListArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeTemplateList_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodeTemplateListArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodeTemplateListArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceNodeTemplateListArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceNodeTemplateListResult struct {\n\tSuccess *NodeTemplateListResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceNodeTemplateListResult() *WorkflowServiceNodeTemplateListResult {\n\treturn &WorkflowServiceNodeTemplateListResult{}\n}\n\nfunc (p *WorkflowServiceNodeTemplateListResult) InitDefault() {\n}\n\nvar WorkflowServiceNodeTemplateListResult_Success_DEFAULT *NodeTemplateListResponse\n\nfunc (p *WorkflowServiceNodeTemplateListResult) GetSuccess() (v *NodeTemplateListResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceNodeTemplateListResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceNodeTemplateListResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceNodeTemplateListResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceNodeTemplateListResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceNodeTemplateListResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodeTemplateListResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewNodeTemplateListResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceNodeTemplateListResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodeTemplateList_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodeTemplateListResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodeTemplateListResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceNodeTemplateListResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceNodePanelSearchArgs struct {\n\tRequest *NodePanelSearchRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceNodePanelSearchArgs() *WorkflowServiceNodePanelSearchArgs {\n\treturn &WorkflowServiceNodePanelSearchArgs{}\n}\n\nfunc (p *WorkflowServiceNodePanelSearchArgs) InitDefault() {\n}\n\nvar WorkflowServiceNodePanelSearchArgs_Request_DEFAULT *NodePanelSearchRequest\n\nfunc (p *WorkflowServiceNodePanelSearchArgs) GetRequest() (v *NodePanelSearchRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceNodePanelSearchArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceNodePanelSearchArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceNodePanelSearchArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceNodePanelSearchArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceNodePanelSearchArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodePanelSearchArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewNodePanelSearchRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceNodePanelSearchArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodePanelSearch_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodePanelSearchArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodePanelSearchArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceNodePanelSearchArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceNodePanelSearchResult struct {\n\tSuccess *NodePanelSearchResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceNodePanelSearchResult() *WorkflowServiceNodePanelSearchResult {\n\treturn &WorkflowServiceNodePanelSearchResult{}\n}\n\nfunc (p *WorkflowServiceNodePanelSearchResult) InitDefault() {\n}\n\nvar WorkflowServiceNodePanelSearchResult_Success_DEFAULT *NodePanelSearchResponse\n\nfunc (p *WorkflowServiceNodePanelSearchResult) GetSuccess() (v *NodePanelSearchResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceNodePanelSearchResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceNodePanelSearchResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceNodePanelSearchResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceNodePanelSearchResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceNodePanelSearchResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodePanelSearchResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewNodePanelSearchResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceNodePanelSearchResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"NodePanelSearch_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodePanelSearchResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceNodePanelSearchResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceNodePanelSearchResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetLLMNodeFCSettingsMergedArgs struct {\n\tReq *GetLLMNodeFCSettingsMergedRequest `thrift:\"req,1\"`\n}\n\nfunc NewWorkflowServiceGetLLMNodeFCSettingsMergedArgs() *WorkflowServiceGetLLMNodeFCSettingsMergedArgs {\n\treturn &WorkflowServiceGetLLMNodeFCSettingsMergedArgs{}\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetLLMNodeFCSettingsMergedArgs_Req_DEFAULT *GetLLMNodeFCSettingsMergedRequest\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedArgs) GetReq() (v *GetLLMNodeFCSettingsMergedRequest) {\n\tif !p.IsSetReq() {\n\t\treturn WorkflowServiceGetLLMNodeFCSettingsMergedArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_WorkflowServiceGetLLMNodeFCSettingsMergedArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetLLMNodeFCSettingsMergedArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetLLMNodeFCSettingsMergedRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetLLMNodeFCSettingsMerged_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetLLMNodeFCSettingsMergedArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetLLMNodeFCSettingsMergedResult struct {\n\tSuccess *GetLLMNodeFCSettingsMergedResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetLLMNodeFCSettingsMergedResult() *WorkflowServiceGetLLMNodeFCSettingsMergedResult {\n\treturn &WorkflowServiceGetLLMNodeFCSettingsMergedResult{}\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedResult) InitDefault() {\n}\n\nvar WorkflowServiceGetLLMNodeFCSettingsMergedResult_Success_DEFAULT *GetLLMNodeFCSettingsMergedResponse\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedResult) GetSuccess() (v *GetLLMNodeFCSettingsMergedResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetLLMNodeFCSettingsMergedResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetLLMNodeFCSettingsMergedResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetLLMNodeFCSettingsMergedResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetLLMNodeFCSettingsMergedResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetLLMNodeFCSettingsMerged_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingsMergedResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetLLMNodeFCSettingsMergedResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetLLMNodeFCSettingDetailArgs struct {\n\tReq *GetLLMNodeFCSettingDetailRequest `thrift:\"req,1\"`\n}\n\nfunc NewWorkflowServiceGetLLMNodeFCSettingDetailArgs() *WorkflowServiceGetLLMNodeFCSettingDetailArgs {\n\treturn &WorkflowServiceGetLLMNodeFCSettingDetailArgs{}\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetLLMNodeFCSettingDetailArgs_Req_DEFAULT *GetLLMNodeFCSettingDetailRequest\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailArgs) GetReq() (v *GetLLMNodeFCSettingDetailRequest) {\n\tif !p.IsSetReq() {\n\t\treturn WorkflowServiceGetLLMNodeFCSettingDetailArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_WorkflowServiceGetLLMNodeFCSettingDetailArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetLLMNodeFCSettingDetailArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetLLMNodeFCSettingDetailRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetLLMNodeFCSettingDetail_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetLLMNodeFCSettingDetailArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetLLMNodeFCSettingDetailResult struct {\n\tSuccess *GetLLMNodeFCSettingDetailResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetLLMNodeFCSettingDetailResult() *WorkflowServiceGetLLMNodeFCSettingDetailResult {\n\treturn &WorkflowServiceGetLLMNodeFCSettingDetailResult{}\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailResult) InitDefault() {\n}\n\nvar WorkflowServiceGetLLMNodeFCSettingDetailResult_Success_DEFAULT *GetLLMNodeFCSettingDetailResponse\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailResult) GetSuccess() (v *GetLLMNodeFCSettingDetailResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetLLMNodeFCSettingDetailResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetLLMNodeFCSettingDetailResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetLLMNodeFCSettingDetailResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetLLMNodeFCSettingDetailResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetLLMNodeFCSettingDetail_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetLLMNodeFCSettingDetailResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetLLMNodeFCSettingDetailResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceWorkFlowTestRunArgs struct {\n\tRequest *WorkFlowTestRunRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceWorkFlowTestRunArgs() *WorkflowServiceWorkFlowTestRunArgs {\n\treturn &WorkflowServiceWorkFlowTestRunArgs{}\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunArgs) InitDefault() {\n}\n\nvar WorkflowServiceWorkFlowTestRunArgs_Request_DEFAULT *WorkFlowTestRunRequest\n\nfunc (p *WorkflowServiceWorkFlowTestRunArgs) GetRequest() (v *WorkFlowTestRunRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceWorkFlowTestRunArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceWorkFlowTestRunArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceWorkFlowTestRunArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkFlowTestRunRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkFlowTestRun_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceWorkFlowTestRunArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceWorkFlowTestRunResult struct {\n\tSuccess *WorkFlowTestRunResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceWorkFlowTestRunResult() *WorkflowServiceWorkFlowTestRunResult {\n\treturn &WorkflowServiceWorkFlowTestRunResult{}\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunResult) InitDefault() {\n}\n\nvar WorkflowServiceWorkFlowTestRunResult_Success_DEFAULT *WorkFlowTestRunResponse\n\nfunc (p *WorkflowServiceWorkFlowTestRunResult) GetSuccess() (v *WorkFlowTestRunResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceWorkFlowTestRunResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceWorkFlowTestRunResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceWorkFlowTestRunResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewWorkFlowTestRunResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkFlowTestRun_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestRunResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceWorkFlowTestRunResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceWorkFlowTestResumeArgs struct {\n\tRequest *WorkflowTestResumeRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceWorkFlowTestResumeArgs() *WorkflowServiceWorkFlowTestResumeArgs {\n\treturn &WorkflowServiceWorkFlowTestResumeArgs{}\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeArgs) InitDefault() {\n}\n\nvar WorkflowServiceWorkFlowTestResumeArgs_Request_DEFAULT *WorkflowTestResumeRequest\n\nfunc (p *WorkflowServiceWorkFlowTestResumeArgs) GetRequest() (v *WorkflowTestResumeRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceWorkFlowTestResumeArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceWorkFlowTestResumeArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceWorkFlowTestResumeArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowTestResumeRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkFlowTestResume_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceWorkFlowTestResumeArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceWorkFlowTestResumeResult struct {\n\tSuccess *WorkflowTestResumeResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceWorkFlowTestResumeResult() *WorkflowServiceWorkFlowTestResumeResult {\n\treturn &WorkflowServiceWorkFlowTestResumeResult{}\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeResult) InitDefault() {\n}\n\nvar WorkflowServiceWorkFlowTestResumeResult_Success_DEFAULT *WorkflowTestResumeResponse\n\nfunc (p *WorkflowServiceWorkFlowTestResumeResult) GetSuccess() (v *WorkflowTestResumeResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceWorkFlowTestResumeResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceWorkFlowTestResumeResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceWorkFlowTestResumeResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowTestResumeResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkFlowTestResume_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkFlowTestResumeResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceWorkFlowTestResumeResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceCancelWorkFlowArgs struct {\n\tRequest *CancelWorkFlowRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceCancelWorkFlowArgs() *WorkflowServiceCancelWorkFlowArgs {\n\treturn &WorkflowServiceCancelWorkFlowArgs{}\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowArgs) InitDefault() {\n}\n\nvar WorkflowServiceCancelWorkFlowArgs_Request_DEFAULT *CancelWorkFlowRequest\n\nfunc (p *WorkflowServiceCancelWorkFlowArgs) GetRequest() (v *CancelWorkFlowRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceCancelWorkFlowArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceCancelWorkFlowArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCancelWorkFlowArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCancelWorkFlowRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CancelWorkFlow_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCancelWorkFlowArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceCancelWorkFlowResult struct {\n\tSuccess *CancelWorkFlowResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceCancelWorkFlowResult() *WorkflowServiceCancelWorkFlowResult {\n\treturn &WorkflowServiceCancelWorkFlowResult{}\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowResult) InitDefault() {\n}\n\nvar WorkflowServiceCancelWorkFlowResult_Success_DEFAULT *CancelWorkFlowResponse\n\nfunc (p *WorkflowServiceCancelWorkFlowResult) GetSuccess() (v *CancelWorkFlowResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceCancelWorkFlowResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceCancelWorkFlowResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCancelWorkFlowResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCancelWorkFlowResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CancelWorkFlow_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCancelWorkFlowResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCancelWorkFlowResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkFlowProcessArgs struct {\n\tRequest *GetWorkflowProcessRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetWorkFlowProcessArgs() *WorkflowServiceGetWorkFlowProcessArgs {\n\treturn &WorkflowServiceGetWorkFlowProcessArgs{}\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkFlowProcessArgs_Request_DEFAULT *GetWorkflowProcessRequest\n\nfunc (p *WorkflowServiceGetWorkFlowProcessArgs) GetRequest() (v *GetWorkflowProcessRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetWorkFlowProcessArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkFlowProcessArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkFlowProcessArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkflowProcessRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkFlowProcess_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkFlowProcessArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkFlowProcessResult struct {\n\tSuccess *GetWorkflowProcessResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetWorkFlowProcessResult() *WorkflowServiceGetWorkFlowProcessResult {\n\treturn &WorkflowServiceGetWorkFlowProcessResult{}\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessResult) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkFlowProcessResult_Success_DEFAULT *GetWorkflowProcessResponse\n\nfunc (p *WorkflowServiceGetWorkFlowProcessResult) GetSuccess() (v *GetWorkflowProcessResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetWorkFlowProcessResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkFlowProcessResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkFlowProcessResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkflowProcessResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkFlowProcess_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkFlowProcessResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkFlowProcessResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetNodeExecuteHistoryArgs struct {\n\tRequest *GetNodeExecuteHistoryRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetNodeExecuteHistoryArgs() *WorkflowServiceGetNodeExecuteHistoryArgs {\n\treturn &WorkflowServiceGetNodeExecuteHistoryArgs{}\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetNodeExecuteHistoryArgs_Request_DEFAULT *GetNodeExecuteHistoryRequest\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryArgs) GetRequest() (v *GetNodeExecuteHistoryRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetNodeExecuteHistoryArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetNodeExecuteHistoryArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetNodeExecuteHistoryArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetNodeExecuteHistoryRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetNodeExecuteHistory_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetNodeExecuteHistoryArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetNodeExecuteHistoryResult struct {\n\tSuccess *GetNodeExecuteHistoryResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetNodeExecuteHistoryResult() *WorkflowServiceGetNodeExecuteHistoryResult {\n\treturn &WorkflowServiceGetNodeExecuteHistoryResult{}\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryResult) InitDefault() {\n}\n\nvar WorkflowServiceGetNodeExecuteHistoryResult_Success_DEFAULT *GetNodeExecuteHistoryResponse\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryResult) GetSuccess() (v *GetNodeExecuteHistoryResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetNodeExecuteHistoryResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetNodeExecuteHistoryResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetNodeExecuteHistoryResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetNodeExecuteHistoryResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetNodeExecuteHistory_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetNodeExecuteHistoryResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetNodeExecuteHistoryResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetApiDetailArgs struct {\n\tRequest *GetApiDetailRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetApiDetailArgs() *WorkflowServiceGetApiDetailArgs {\n\treturn &WorkflowServiceGetApiDetailArgs{}\n}\n\nfunc (p *WorkflowServiceGetApiDetailArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetApiDetailArgs_Request_DEFAULT *GetApiDetailRequest\n\nfunc (p *WorkflowServiceGetApiDetailArgs) GetRequest() (v *GetApiDetailRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetApiDetailArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetApiDetailArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetApiDetailArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetApiDetailArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetApiDetailArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetApiDetailArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetApiDetailRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetApiDetailArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetApiDetail_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetApiDetailArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetApiDetailArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetApiDetailArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetApiDetailResult struct {\n\tSuccess *GetApiDetailResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetApiDetailResult() *WorkflowServiceGetApiDetailResult {\n\treturn &WorkflowServiceGetApiDetailResult{}\n}\n\nfunc (p *WorkflowServiceGetApiDetailResult) InitDefault() {\n}\n\nvar WorkflowServiceGetApiDetailResult_Success_DEFAULT *GetApiDetailResponse\n\nfunc (p *WorkflowServiceGetApiDetailResult) GetSuccess() (v *GetApiDetailResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetApiDetailResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetApiDetailResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetApiDetailResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetApiDetailResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetApiDetailResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetApiDetailResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetApiDetailResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetApiDetailResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetApiDetail_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetApiDetailResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetApiDetailResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetApiDetailResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceWorkflowNodeDebugV2Args struct {\n\tRequest *WorkflowNodeDebugV2Request `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceWorkflowNodeDebugV2Args() *WorkflowServiceWorkflowNodeDebugV2Args {\n\treturn &WorkflowServiceWorkflowNodeDebugV2Args{}\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Args) InitDefault() {\n}\n\nvar WorkflowServiceWorkflowNodeDebugV2Args_Request_DEFAULT *WorkflowNodeDebugV2Request\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Args) GetRequest() (v *WorkflowNodeDebugV2Request) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceWorkflowNodeDebugV2Args_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceWorkflowNodeDebugV2Args = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Args) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Args) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceWorkflowNodeDebugV2Args[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Args) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowNodeDebugV2Request()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Args) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowNodeDebugV2_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Args) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Args) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceWorkflowNodeDebugV2Args(%+v)\", *p)\n\n}\n\ntype WorkflowServiceWorkflowNodeDebugV2Result struct {\n\tSuccess *WorkflowNodeDebugV2Response `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceWorkflowNodeDebugV2Result() *WorkflowServiceWorkflowNodeDebugV2Result {\n\treturn &WorkflowServiceWorkflowNodeDebugV2Result{}\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Result) InitDefault() {\n}\n\nvar WorkflowServiceWorkflowNodeDebugV2Result_Success_DEFAULT *WorkflowNodeDebugV2Response\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Result) GetSuccess() (v *WorkflowNodeDebugV2Response) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceWorkflowNodeDebugV2Result_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceWorkflowNodeDebugV2Result = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Result) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Result) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceWorkflowNodeDebugV2Result[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Result) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewWorkflowNodeDebugV2Response()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Result) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"WorkflowNodeDebugV2_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Result) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceWorkflowNodeDebugV2Result) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceWorkflowNodeDebugV2Result(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkflowUploadAuthTokenArgs struct {\n\tRequest *GetUploadAuthTokenRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetWorkflowUploadAuthTokenArgs() *WorkflowServiceGetWorkflowUploadAuthTokenArgs {\n\treturn &WorkflowServiceGetWorkflowUploadAuthTokenArgs{}\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkflowUploadAuthTokenArgs_Request_DEFAULT *GetUploadAuthTokenRequest\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenArgs) GetRequest() (v *GetUploadAuthTokenRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetWorkflowUploadAuthTokenArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkflowUploadAuthTokenArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkflowUploadAuthTokenArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetUploadAuthTokenRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowUploadAuthToken_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkflowUploadAuthTokenArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkflowUploadAuthTokenResult struct {\n\tSuccess *GetUploadAuthTokenResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetWorkflowUploadAuthTokenResult() *WorkflowServiceGetWorkflowUploadAuthTokenResult {\n\treturn &WorkflowServiceGetWorkflowUploadAuthTokenResult{}\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenResult) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkflowUploadAuthTokenResult_Success_DEFAULT *GetUploadAuthTokenResponse\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenResult) GetSuccess() (v *GetUploadAuthTokenResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetWorkflowUploadAuthTokenResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkflowUploadAuthTokenResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkflowUploadAuthTokenResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetUploadAuthTokenResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowUploadAuthToken_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowUploadAuthTokenResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkflowUploadAuthTokenResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceSignImageURLArgs struct {\n\tRequest *SignImageURLRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceSignImageURLArgs() *WorkflowServiceSignImageURLArgs {\n\treturn &WorkflowServiceSignImageURLArgs{}\n}\n\nfunc (p *WorkflowServiceSignImageURLArgs) InitDefault() {\n}\n\nvar WorkflowServiceSignImageURLArgs_Request_DEFAULT *SignImageURLRequest\n\nfunc (p *WorkflowServiceSignImageURLArgs) GetRequest() (v *SignImageURLRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceSignImageURLArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceSignImageURLArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceSignImageURLArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceSignImageURLArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceSignImageURLArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSignImageURLArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewSignImageURLRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceSignImageURLArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SignImageURL_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSignImageURLArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSignImageURLArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceSignImageURLArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceSignImageURLResult struct {\n\tSuccess *SignImageURLResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceSignImageURLResult() *WorkflowServiceSignImageURLResult {\n\treturn &WorkflowServiceSignImageURLResult{}\n}\n\nfunc (p *WorkflowServiceSignImageURLResult) InitDefault() {\n}\n\nvar WorkflowServiceSignImageURLResult_Success_DEFAULT *SignImageURLResponse\n\nfunc (p *WorkflowServiceSignImageURLResult) GetSuccess() (v *SignImageURLResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceSignImageURLResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceSignImageURLResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceSignImageURLResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceSignImageURLResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceSignImageURLResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSignImageURLResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewSignImageURLResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceSignImageURLResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"SignImageURL_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSignImageURLResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceSignImageURLResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceSignImageURLResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceCreateProjectConversationDefArgs struct {\n\tRequest *CreateProjectConversationDefRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceCreateProjectConversationDefArgs() *WorkflowServiceCreateProjectConversationDefArgs {\n\treturn &WorkflowServiceCreateProjectConversationDefArgs{}\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefArgs) InitDefault() {\n}\n\nvar WorkflowServiceCreateProjectConversationDefArgs_Request_DEFAULT *CreateProjectConversationDefRequest\n\nfunc (p *WorkflowServiceCreateProjectConversationDefArgs) GetRequest() (v *CreateProjectConversationDefRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceCreateProjectConversationDefArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceCreateProjectConversationDefArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCreateProjectConversationDefArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateProjectConversationDefRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateProjectConversationDef_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCreateProjectConversationDefArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceCreateProjectConversationDefResult struct {\n\tSuccess *CreateProjectConversationDefResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceCreateProjectConversationDefResult() *WorkflowServiceCreateProjectConversationDefResult {\n\treturn &WorkflowServiceCreateProjectConversationDefResult{}\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefResult) InitDefault() {\n}\n\nvar WorkflowServiceCreateProjectConversationDefResult_Success_DEFAULT *CreateProjectConversationDefResponse\n\nfunc (p *WorkflowServiceCreateProjectConversationDefResult) GetSuccess() (v *CreateProjectConversationDefResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceCreateProjectConversationDefResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceCreateProjectConversationDefResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCreateProjectConversationDefResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateProjectConversationDefResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateProjectConversationDef_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateProjectConversationDefResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCreateProjectConversationDefResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceUpdateProjectConversationDefArgs struct {\n\tRequest *UpdateProjectConversationDefRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceUpdateProjectConversationDefArgs() *WorkflowServiceUpdateProjectConversationDefArgs {\n\treturn &WorkflowServiceUpdateProjectConversationDefArgs{}\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefArgs) InitDefault() {\n}\n\nvar WorkflowServiceUpdateProjectConversationDefArgs_Request_DEFAULT *UpdateProjectConversationDefRequest\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefArgs) GetRequest() (v *UpdateProjectConversationDefRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceUpdateProjectConversationDefArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceUpdateProjectConversationDefArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceUpdateProjectConversationDefArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewUpdateProjectConversationDefRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateProjectConversationDef_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceUpdateProjectConversationDefArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceUpdateProjectConversationDefResult struct {\n\tSuccess *UpdateProjectConversationDefResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceUpdateProjectConversationDefResult() *WorkflowServiceUpdateProjectConversationDefResult {\n\treturn &WorkflowServiceUpdateProjectConversationDefResult{}\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefResult) InitDefault() {\n}\n\nvar WorkflowServiceUpdateProjectConversationDefResult_Success_DEFAULT *UpdateProjectConversationDefResponse\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefResult) GetSuccess() (v *UpdateProjectConversationDefResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceUpdateProjectConversationDefResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceUpdateProjectConversationDefResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceUpdateProjectConversationDefResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewUpdateProjectConversationDefResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"UpdateProjectConversationDef_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceUpdateProjectConversationDefResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceUpdateProjectConversationDefResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceDeleteProjectConversationDefArgs struct {\n\tRequest *DeleteProjectConversationDefRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceDeleteProjectConversationDefArgs() *WorkflowServiceDeleteProjectConversationDefArgs {\n\treturn &WorkflowServiceDeleteProjectConversationDefArgs{}\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefArgs) InitDefault() {\n}\n\nvar WorkflowServiceDeleteProjectConversationDefArgs_Request_DEFAULT *DeleteProjectConversationDefRequest\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefArgs) GetRequest() (v *DeleteProjectConversationDefRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceDeleteProjectConversationDefArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceDeleteProjectConversationDefArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceDeleteProjectConversationDefArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteProjectConversationDefRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteProjectConversationDef_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceDeleteProjectConversationDefArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceDeleteProjectConversationDefResult struct {\n\tSuccess *DeleteProjectConversationDefResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceDeleteProjectConversationDefResult() *WorkflowServiceDeleteProjectConversationDefResult {\n\treturn &WorkflowServiceDeleteProjectConversationDefResult{}\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefResult) InitDefault() {\n}\n\nvar WorkflowServiceDeleteProjectConversationDefResult_Success_DEFAULT *DeleteProjectConversationDefResponse\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefResult) GetSuccess() (v *DeleteProjectConversationDefResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceDeleteProjectConversationDefResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceDeleteProjectConversationDefResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceDeleteProjectConversationDefResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteProjectConversationDefResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteProjectConversationDef_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteProjectConversationDefResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceDeleteProjectConversationDefResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceListProjectConversationDefArgs struct {\n\tRequest *ListProjectConversationRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceListProjectConversationDefArgs() *WorkflowServiceListProjectConversationDefArgs {\n\treturn &WorkflowServiceListProjectConversationDefArgs{}\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefArgs) InitDefault() {\n}\n\nvar WorkflowServiceListProjectConversationDefArgs_Request_DEFAULT *ListProjectConversationRequest\n\nfunc (p *WorkflowServiceListProjectConversationDefArgs) GetRequest() (v *ListProjectConversationRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceListProjectConversationDefArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceListProjectConversationDefArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceListProjectConversationDefArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListProjectConversationRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListProjectConversationDef_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceListProjectConversationDefArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceListProjectConversationDefResult struct {\n\tSuccess *ListProjectConversationResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceListProjectConversationDefResult() *WorkflowServiceListProjectConversationDefResult {\n\treturn &WorkflowServiceListProjectConversationDefResult{}\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefResult) InitDefault() {\n}\n\nvar WorkflowServiceListProjectConversationDefResult_Success_DEFAULT *ListProjectConversationResponse\n\nfunc (p *WorkflowServiceListProjectConversationDefResult) GetSuccess() (v *ListProjectConversationResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceListProjectConversationDefResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceListProjectConversationDefResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceListProjectConversationDefResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListProjectConversationResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListProjectConversationDef_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListProjectConversationDefResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceListProjectConversationDefResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceListRootSpansArgs struct {\n\tReq *ListRootSpansRequest `thrift:\"req,1\"`\n}\n\nfunc NewWorkflowServiceListRootSpansArgs() *WorkflowServiceListRootSpansArgs {\n\treturn &WorkflowServiceListRootSpansArgs{}\n}\n\nfunc (p *WorkflowServiceListRootSpansArgs) InitDefault() {\n}\n\nvar WorkflowServiceListRootSpansArgs_Req_DEFAULT *ListRootSpansRequest\n\nfunc (p *WorkflowServiceListRootSpansArgs) GetReq() (v *ListRootSpansRequest) {\n\tif !p.IsSetReq() {\n\t\treturn WorkflowServiceListRootSpansArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_WorkflowServiceListRootSpansArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *WorkflowServiceListRootSpansArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *WorkflowServiceListRootSpansArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceListRootSpansArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListRootSpansArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListRootSpansRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceListRootSpansArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListRootSpans_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListRootSpansArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListRootSpansArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceListRootSpansArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceListRootSpansResult struct {\n\tSuccess *ListRootSpansResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceListRootSpansResult() *WorkflowServiceListRootSpansResult {\n\treturn &WorkflowServiceListRootSpansResult{}\n}\n\nfunc (p *WorkflowServiceListRootSpansResult) InitDefault() {\n}\n\nvar WorkflowServiceListRootSpansResult_Success_DEFAULT *ListRootSpansResponse\n\nfunc (p *WorkflowServiceListRootSpansResult) GetSuccess() (v *ListRootSpansResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceListRootSpansResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceListRootSpansResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceListRootSpansResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceListRootSpansResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceListRootSpansResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListRootSpansResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListRootSpansResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceListRootSpansResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListRootSpans_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListRootSpansResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListRootSpansResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceListRootSpansResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetTraceSDKArgs struct {\n\tReq *GetTraceSDKRequest `thrift:\"req,1\"`\n}\n\nfunc NewWorkflowServiceGetTraceSDKArgs() *WorkflowServiceGetTraceSDKArgs {\n\treturn &WorkflowServiceGetTraceSDKArgs{}\n}\n\nfunc (p *WorkflowServiceGetTraceSDKArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetTraceSDKArgs_Req_DEFAULT *GetTraceSDKRequest\n\nfunc (p *WorkflowServiceGetTraceSDKArgs) GetReq() (v *GetTraceSDKRequest) {\n\tif !p.IsSetReq() {\n\t\treturn WorkflowServiceGetTraceSDKArgs_Req_DEFAULT\n\t}\n\treturn p.Req\n}\n\nvar fieldIDToName_WorkflowServiceGetTraceSDKArgs = map[int16]string{\n\t1: \"req\",\n}\n\nfunc (p *WorkflowServiceGetTraceSDKArgs) IsSetReq() bool {\n\treturn p.Req != nil\n}\n\nfunc (p *WorkflowServiceGetTraceSDKArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetTraceSDKArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetTraceSDKArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetTraceSDKRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Req = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetTraceSDKArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTraceSDK_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetTraceSDKArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"req\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Req.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetTraceSDKArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetTraceSDKArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetTraceSDKResult struct {\n\tSuccess *GetTraceSDKResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetTraceSDKResult() *WorkflowServiceGetTraceSDKResult {\n\treturn &WorkflowServiceGetTraceSDKResult{}\n}\n\nfunc (p *WorkflowServiceGetTraceSDKResult) InitDefault() {\n}\n\nvar WorkflowServiceGetTraceSDKResult_Success_DEFAULT *GetTraceSDKResponse\n\nfunc (p *WorkflowServiceGetTraceSDKResult) GetSuccess() (v *GetTraceSDKResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetTraceSDKResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetTraceSDKResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetTraceSDKResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetTraceSDKResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetTraceSDKResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetTraceSDKResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetTraceSDKResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetTraceSDKResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetTraceSDK_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetTraceSDKResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetTraceSDKResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetTraceSDKResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkflowDetailArgs struct {\n\tRequest *GetWorkflowDetailRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetWorkflowDetailArgs() *WorkflowServiceGetWorkflowDetailArgs {\n\treturn &WorkflowServiceGetWorkflowDetailArgs{}\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkflowDetailArgs_Request_DEFAULT *GetWorkflowDetailRequest\n\nfunc (p *WorkflowServiceGetWorkflowDetailArgs) GetRequest() (v *GetWorkflowDetailRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetWorkflowDetailArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkflowDetailArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkflowDetailArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkflowDetailRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowDetail_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkflowDetailArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkflowDetailResult struct {\n\tSuccess *GetWorkflowDetailResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetWorkflowDetailResult() *WorkflowServiceGetWorkflowDetailResult {\n\treturn &WorkflowServiceGetWorkflowDetailResult{}\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailResult) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkflowDetailResult_Success_DEFAULT *GetWorkflowDetailResponse\n\nfunc (p *WorkflowServiceGetWorkflowDetailResult) GetSuccess() (v *GetWorkflowDetailResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetWorkflowDetailResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkflowDetailResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkflowDetailResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkflowDetailResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowDetail_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkflowDetailResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkflowDetailInfoArgs struct {\n\tRequest *GetWorkflowDetailInfoRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetWorkflowDetailInfoArgs() *WorkflowServiceGetWorkflowDetailInfoArgs {\n\treturn &WorkflowServiceGetWorkflowDetailInfoArgs{}\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkflowDetailInfoArgs_Request_DEFAULT *GetWorkflowDetailInfoRequest\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoArgs) GetRequest() (v *GetWorkflowDetailInfoRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetWorkflowDetailInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkflowDetailInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkflowDetailInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkflowDetailInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowDetailInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkflowDetailInfoArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetWorkflowDetailInfoResult struct {\n\tSuccess *GetWorkflowDetailInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetWorkflowDetailInfoResult() *WorkflowServiceGetWorkflowDetailInfoResult {\n\treturn &WorkflowServiceGetWorkflowDetailInfoResult{}\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoResult) InitDefault() {\n}\n\nvar WorkflowServiceGetWorkflowDetailInfoResult_Success_DEFAULT *GetWorkflowDetailInfoResponse\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoResult) GetSuccess() (v *GetWorkflowDetailInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetWorkflowDetailInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetWorkflowDetailInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetWorkflowDetailInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkflowDetailInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetWorkflowDetailInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetWorkflowDetailInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetWorkflowDetailInfoResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceValidateTreeArgs struct {\n\tRequest *ValidateTreeRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceValidateTreeArgs() *WorkflowServiceValidateTreeArgs {\n\treturn &WorkflowServiceValidateTreeArgs{}\n}\n\nfunc (p *WorkflowServiceValidateTreeArgs) InitDefault() {\n}\n\nvar WorkflowServiceValidateTreeArgs_Request_DEFAULT *ValidateTreeRequest\n\nfunc (p *WorkflowServiceValidateTreeArgs) GetRequest() (v *ValidateTreeRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceValidateTreeArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceValidateTreeArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceValidateTreeArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceValidateTreeArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceValidateTreeArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceValidateTreeArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewValidateTreeRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceValidateTreeArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateTree_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceValidateTreeArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceValidateTreeArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceValidateTreeArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceValidateTreeResult struct {\n\tSuccess *ValidateTreeResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceValidateTreeResult() *WorkflowServiceValidateTreeResult {\n\treturn &WorkflowServiceValidateTreeResult{}\n}\n\nfunc (p *WorkflowServiceValidateTreeResult) InitDefault() {\n}\n\nvar WorkflowServiceValidateTreeResult_Success_DEFAULT *ValidateTreeResponse\n\nfunc (p *WorkflowServiceValidateTreeResult) GetSuccess() (v *ValidateTreeResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceValidateTreeResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceValidateTreeResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceValidateTreeResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceValidateTreeResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceValidateTreeResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceValidateTreeResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewValidateTreeResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceValidateTreeResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ValidateTree_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceValidateTreeResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceValidateTreeResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceValidateTreeResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetChatFlowRoleArgs struct {\n\tRequest *GetChatFlowRoleRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceGetChatFlowRoleArgs() *WorkflowServiceGetChatFlowRoleArgs {\n\treturn &WorkflowServiceGetChatFlowRoleArgs{}\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleArgs) InitDefault() {\n}\n\nvar WorkflowServiceGetChatFlowRoleArgs_Request_DEFAULT *GetChatFlowRoleRequest\n\nfunc (p *WorkflowServiceGetChatFlowRoleArgs) GetRequest() (v *GetChatFlowRoleRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceGetChatFlowRoleArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceGetChatFlowRoleArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetChatFlowRoleArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetChatFlowRoleRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetChatFlowRole_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetChatFlowRoleArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceGetChatFlowRoleResult struct {\n\tSuccess *GetChatFlowRoleResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceGetChatFlowRoleResult() *WorkflowServiceGetChatFlowRoleResult {\n\treturn &WorkflowServiceGetChatFlowRoleResult{}\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleResult) InitDefault() {\n}\n\nvar WorkflowServiceGetChatFlowRoleResult_Success_DEFAULT *GetChatFlowRoleResponse\n\nfunc (p *WorkflowServiceGetChatFlowRoleResult) GetSuccess() (v *GetChatFlowRoleResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceGetChatFlowRoleResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceGetChatFlowRoleResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceGetChatFlowRoleResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetChatFlowRoleResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"GetChatFlowRole_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceGetChatFlowRoleResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceGetChatFlowRoleResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceCreateChatFlowRoleArgs struct {\n\tRequest *CreateChatFlowRoleRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceCreateChatFlowRoleArgs() *WorkflowServiceCreateChatFlowRoleArgs {\n\treturn &WorkflowServiceCreateChatFlowRoleArgs{}\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleArgs) InitDefault() {\n}\n\nvar WorkflowServiceCreateChatFlowRoleArgs_Request_DEFAULT *CreateChatFlowRoleRequest\n\nfunc (p *WorkflowServiceCreateChatFlowRoleArgs) GetRequest() (v *CreateChatFlowRoleRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceCreateChatFlowRoleArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceCreateChatFlowRoleArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCreateChatFlowRoleArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateChatFlowRoleRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateChatFlowRole_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCreateChatFlowRoleArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceCreateChatFlowRoleResult struct {\n\tSuccess *CreateChatFlowRoleResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceCreateChatFlowRoleResult() *WorkflowServiceCreateChatFlowRoleResult {\n\treturn &WorkflowServiceCreateChatFlowRoleResult{}\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleResult) InitDefault() {\n}\n\nvar WorkflowServiceCreateChatFlowRoleResult_Success_DEFAULT *CreateChatFlowRoleResponse\n\nfunc (p *WorkflowServiceCreateChatFlowRoleResult) GetSuccess() (v *CreateChatFlowRoleResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceCreateChatFlowRoleResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceCreateChatFlowRoleResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceCreateChatFlowRoleResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateChatFlowRoleResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"CreateChatFlowRole_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceCreateChatFlowRoleResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceCreateChatFlowRoleResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceDeleteChatFlowRoleArgs struct {\n\tRequest *DeleteChatFlowRoleRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceDeleteChatFlowRoleArgs() *WorkflowServiceDeleteChatFlowRoleArgs {\n\treturn &WorkflowServiceDeleteChatFlowRoleArgs{}\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleArgs) InitDefault() {\n}\n\nvar WorkflowServiceDeleteChatFlowRoleArgs_Request_DEFAULT *DeleteChatFlowRoleRequest\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleArgs) GetRequest() (v *DeleteChatFlowRoleRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceDeleteChatFlowRoleArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceDeleteChatFlowRoleArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceDeleteChatFlowRoleArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewDeleteChatFlowRoleRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteChatFlowRole_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceDeleteChatFlowRoleArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceDeleteChatFlowRoleResult struct {\n\tSuccess *DeleteChatFlowRoleResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceDeleteChatFlowRoleResult() *WorkflowServiceDeleteChatFlowRoleResult {\n\treturn &WorkflowServiceDeleteChatFlowRoleResult{}\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleResult) InitDefault() {\n}\n\nvar WorkflowServiceDeleteChatFlowRoleResult_Success_DEFAULT *DeleteChatFlowRoleResponse\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleResult) GetSuccess() (v *DeleteChatFlowRoleResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceDeleteChatFlowRoleResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceDeleteChatFlowRoleResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceDeleteChatFlowRoleResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewDeleteChatFlowRoleResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"DeleteChatFlowRole_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceDeleteChatFlowRoleResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceDeleteChatFlowRoleResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceListPublishWorkflowArgs struct {\n\tRequest *ListPublishWorkflowRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceListPublishWorkflowArgs() *WorkflowServiceListPublishWorkflowArgs {\n\treturn &WorkflowServiceListPublishWorkflowArgs{}\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowArgs) InitDefault() {\n}\n\nvar WorkflowServiceListPublishWorkflowArgs_Request_DEFAULT *ListPublishWorkflowRequest\n\nfunc (p *WorkflowServiceListPublishWorkflowArgs) GetRequest() (v *ListPublishWorkflowRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceListPublishWorkflowArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceListPublishWorkflowArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceListPublishWorkflowArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewListPublishWorkflowRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPublishWorkflow_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceListPublishWorkflowArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceListPublishWorkflowResult struct {\n\tSuccess *ListPublishWorkflowResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceListPublishWorkflowResult() *WorkflowServiceListPublishWorkflowResult {\n\treturn &WorkflowServiceListPublishWorkflowResult{}\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowResult) InitDefault() {\n}\n\nvar WorkflowServiceListPublishWorkflowResult_Success_DEFAULT *ListPublishWorkflowResponse\n\nfunc (p *WorkflowServiceListPublishWorkflowResult) GetSuccess() (v *ListPublishWorkflowResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceListPublishWorkflowResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceListPublishWorkflowResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceListPublishWorkflowResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewListPublishWorkflowResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"ListPublishWorkflow_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceListPublishWorkflowResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceListPublishWorkflowResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIRunFlowArgs struct {\n\tRequest *OpenAPIRunFlowRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceOpenAPIRunFlowArgs() *WorkflowServiceOpenAPIRunFlowArgs {\n\treturn &WorkflowServiceOpenAPIRunFlowArgs{}\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowArgs) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIRunFlowArgs_Request_DEFAULT *OpenAPIRunFlowRequest\n\nfunc (p *WorkflowServiceOpenAPIRunFlowArgs) GetRequest() (v *OpenAPIRunFlowRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceOpenAPIRunFlowArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIRunFlowArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIRunFlowArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewOpenAPIRunFlowRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIRunFlow_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIRunFlowArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIRunFlowResult struct {\n\tSuccess *OpenAPIRunFlowResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceOpenAPIRunFlowResult() *WorkflowServiceOpenAPIRunFlowResult {\n\treturn &WorkflowServiceOpenAPIRunFlowResult{}\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowResult) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIRunFlowResult_Success_DEFAULT *OpenAPIRunFlowResponse\n\nfunc (p *WorkflowServiceOpenAPIRunFlowResult) GetSuccess() (v *OpenAPIRunFlowResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceOpenAPIRunFlowResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIRunFlowResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIRunFlowResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewOpenAPIRunFlowResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIRunFlow_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIRunFlowResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIRunFlowResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIStreamRunFlowArgs struct {\n\tRequest *OpenAPIRunFlowRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceOpenAPIStreamRunFlowArgs() *WorkflowServiceOpenAPIStreamRunFlowArgs {\n\treturn &WorkflowServiceOpenAPIStreamRunFlowArgs{}\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowArgs) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIStreamRunFlowArgs_Request_DEFAULT *OpenAPIRunFlowRequest\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowArgs) GetRequest() (v *OpenAPIRunFlowRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceOpenAPIStreamRunFlowArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIStreamRunFlowArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIStreamRunFlowArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewOpenAPIRunFlowRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIStreamRunFlow_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIStreamRunFlowArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIStreamRunFlowResult struct {\n\tSuccess *OpenAPIStreamRunFlowResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceOpenAPIStreamRunFlowResult() *WorkflowServiceOpenAPIStreamRunFlowResult {\n\treturn &WorkflowServiceOpenAPIStreamRunFlowResult{}\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowResult) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIStreamRunFlowResult_Success_DEFAULT *OpenAPIStreamRunFlowResponse\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowResult) GetSuccess() (v *OpenAPIStreamRunFlowResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceOpenAPIStreamRunFlowResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIStreamRunFlowResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIStreamRunFlowResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewOpenAPIStreamRunFlowResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIStreamRunFlow_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamRunFlowResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIStreamRunFlowResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIStreamResumeFlowArgs struct {\n\tRequest *OpenAPIStreamResumeFlowRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceOpenAPIStreamResumeFlowArgs() *WorkflowServiceOpenAPIStreamResumeFlowArgs {\n\treturn &WorkflowServiceOpenAPIStreamResumeFlowArgs{}\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowArgs) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIStreamResumeFlowArgs_Request_DEFAULT *OpenAPIStreamResumeFlowRequest\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowArgs) GetRequest() (v *OpenAPIStreamResumeFlowRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceOpenAPIStreamResumeFlowArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIStreamResumeFlowArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIStreamResumeFlowArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewOpenAPIStreamResumeFlowRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIStreamResumeFlow_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIStreamResumeFlowArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIStreamResumeFlowResult struct {\n\tSuccess *OpenAPIStreamRunFlowResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceOpenAPIStreamResumeFlowResult() *WorkflowServiceOpenAPIStreamResumeFlowResult {\n\treturn &WorkflowServiceOpenAPIStreamResumeFlowResult{}\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowResult) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIStreamResumeFlowResult_Success_DEFAULT *OpenAPIStreamRunFlowResponse\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowResult) GetSuccess() (v *OpenAPIStreamRunFlowResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceOpenAPIStreamResumeFlowResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIStreamResumeFlowResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIStreamResumeFlowResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewOpenAPIStreamRunFlowResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIStreamResumeFlow_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIStreamResumeFlowResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIStreamResumeFlowResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs struct {\n\tRequest *GetWorkflowRunHistoryRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceOpenAPIGetWorkflowRunHistoryArgs() *WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs {\n\treturn &WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs{}\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs_Request_DEFAULT *GetWorkflowRunHistoryRequest\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs) GetRequest() (v *GetWorkflowRunHistoryRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkflowRunHistoryRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIGetWorkflowRunHistory_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIGetWorkflowRunHistoryArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIGetWorkflowRunHistoryResult struct {\n\tSuccess *GetWorkflowRunHistoryResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceOpenAPIGetWorkflowRunHistoryResult() *WorkflowServiceOpenAPIGetWorkflowRunHistoryResult {\n\treturn &WorkflowServiceOpenAPIGetWorkflowRunHistoryResult{}\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryResult) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIGetWorkflowRunHistoryResult_Success_DEFAULT *GetWorkflowRunHistoryResponse\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryResult) GetSuccess() (v *GetWorkflowRunHistoryResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceOpenAPIGetWorkflowRunHistoryResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIGetWorkflowRunHistoryResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIGetWorkflowRunHistoryResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewGetWorkflowRunHistoryResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIGetWorkflowRunHistory_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowRunHistoryResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIGetWorkflowRunHistoryResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIChatFlowRunArgs struct {\n\tRequest *ChatFlowRunRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceOpenAPIChatFlowRunArgs() *WorkflowServiceOpenAPIChatFlowRunArgs {\n\treturn &WorkflowServiceOpenAPIChatFlowRunArgs{}\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunArgs) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIChatFlowRunArgs_Request_DEFAULT *ChatFlowRunRequest\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunArgs) GetRequest() (v *ChatFlowRunRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceOpenAPIChatFlowRunArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIChatFlowRunArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIChatFlowRunArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewChatFlowRunRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIChatFlowRun_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIChatFlowRunArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIChatFlowRunResult struct {\n\tSuccess *ChatFlowRunResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceOpenAPIChatFlowRunResult() *WorkflowServiceOpenAPIChatFlowRunResult {\n\treturn &WorkflowServiceOpenAPIChatFlowRunResult{}\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunResult) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIChatFlowRunResult_Success_DEFAULT *ChatFlowRunResponse\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunResult) GetSuccess() (v *ChatFlowRunResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceOpenAPIChatFlowRunResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIChatFlowRunResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIChatFlowRunResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewChatFlowRunResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIChatFlowRun_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIChatFlowRunResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIChatFlowRunResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIGetWorkflowInfoArgs struct {\n\tRequest *OpenAPIGetWorkflowInfoRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceOpenAPIGetWorkflowInfoArgs() *WorkflowServiceOpenAPIGetWorkflowInfoArgs {\n\treturn &WorkflowServiceOpenAPIGetWorkflowInfoArgs{}\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoArgs) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIGetWorkflowInfoArgs_Request_DEFAULT *OpenAPIGetWorkflowInfoRequest\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoArgs) GetRequest() (v *OpenAPIGetWorkflowInfoRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceOpenAPIGetWorkflowInfoArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIGetWorkflowInfoArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIGetWorkflowInfoArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewOpenAPIGetWorkflowInfoRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIGetWorkflowInfo_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIGetWorkflowInfoArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPIGetWorkflowInfoResult struct {\n\tSuccess *OpenAPIGetWorkflowInfoResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceOpenAPIGetWorkflowInfoResult() *WorkflowServiceOpenAPIGetWorkflowInfoResult {\n\treturn &WorkflowServiceOpenAPIGetWorkflowInfoResult{}\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoResult) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPIGetWorkflowInfoResult_Success_DEFAULT *OpenAPIGetWorkflowInfoResponse\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoResult) GetSuccess() (v *OpenAPIGetWorkflowInfoResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceOpenAPIGetWorkflowInfoResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPIGetWorkflowInfoResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPIGetWorkflowInfoResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewOpenAPIGetWorkflowInfoResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPIGetWorkflowInfo_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPIGetWorkflowInfoResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPIGetWorkflowInfoResult(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPICreateConversationArgs struct {\n\tRequest *CreateConversationRequest `thrift:\"request,1\"`\n}\n\nfunc NewWorkflowServiceOpenAPICreateConversationArgs() *WorkflowServiceOpenAPICreateConversationArgs {\n\treturn &WorkflowServiceOpenAPICreateConversationArgs{}\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationArgs) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPICreateConversationArgs_Request_DEFAULT *CreateConversationRequest\n\nfunc (p *WorkflowServiceOpenAPICreateConversationArgs) GetRequest() (v *CreateConversationRequest) {\n\tif !p.IsSetRequest() {\n\t\treturn WorkflowServiceOpenAPICreateConversationArgs_Request_DEFAULT\n\t}\n\treturn p.Request\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPICreateConversationArgs = map[int16]string{\n\t1: \"request\",\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationArgs) IsSetRequest() bool {\n\treturn p.Request != nil\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationArgs) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 1:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField1(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPICreateConversationArgs[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationArgs) ReadField1(iprot thrift.TProtocol) error {\n\t_field := NewCreateConversationRequest()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Request = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationArgs) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPICreateConversation_args\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField1(oprot); err != nil {\n\t\t\tfieldId = 1\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationArgs) writeField1(oprot thrift.TProtocol) (err error) {\n\tif err = oprot.WriteFieldBegin(\"request\", thrift.STRUCT, 1); err != nil {\n\t\tgoto WriteFieldBeginError\n\t}\n\tif err := p.Request.Write(oprot); err != nil {\n\t\treturn err\n\t}\n\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\tgoto WriteFieldEndError\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 1 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationArgs) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPICreateConversationArgs(%+v)\", *p)\n\n}\n\ntype WorkflowServiceOpenAPICreateConversationResult struct {\n\tSuccess *CreateConversationResponse `thrift:\"success,0,optional\"`\n}\n\nfunc NewWorkflowServiceOpenAPICreateConversationResult() *WorkflowServiceOpenAPICreateConversationResult {\n\treturn &WorkflowServiceOpenAPICreateConversationResult{}\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationResult) InitDefault() {\n}\n\nvar WorkflowServiceOpenAPICreateConversationResult_Success_DEFAULT *CreateConversationResponse\n\nfunc (p *WorkflowServiceOpenAPICreateConversationResult) GetSuccess() (v *CreateConversationResponse) {\n\tif !p.IsSetSuccess() {\n\t\treturn WorkflowServiceOpenAPICreateConversationResult_Success_DEFAULT\n\t}\n\treturn p.Success\n}\n\nvar fieldIDToName_WorkflowServiceOpenAPICreateConversationResult = map[int16]string{\n\t0: \"success\",\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationResult) IsSetSuccess() bool {\n\treturn p.Success != nil\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationResult) Read(iprot thrift.TProtocol) (err error) {\n\tvar fieldTypeId thrift.TType\n\tvar fieldId int16\n\n\tif _, err = iprot.ReadStructBegin(); err != nil {\n\t\tgoto ReadStructBeginError\n\t}\n\n\tfor {\n\t\t_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()\n\t\tif err != nil {\n\t\t\tgoto ReadFieldBeginError\n\t\t}\n\t\tif fieldTypeId == thrift.STOP {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch fieldId {\n\t\tcase 0:\n\t\t\tif fieldTypeId == thrift.STRUCT {\n\t\t\t\tif err = p.ReadField0(iprot); err != nil {\n\t\t\t\t\tgoto ReadFieldError\n\t\t\t\t}\n\t\t\t} else if err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\tdefault:\n\t\t\tif err = iprot.Skip(fieldTypeId); err != nil {\n\t\t\t\tgoto SkipFieldError\n\t\t\t}\n\t\t}\n\t\tif err = iprot.ReadFieldEnd(); err != nil {\n\t\t\tgoto ReadFieldEndError\n\t\t}\n\t}\n\tif err = iprot.ReadStructEnd(); err != nil {\n\t\tgoto ReadStructEndError\n\t}\n\n\treturn nil\nReadStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct begin error: \", p), err)\nReadFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d begin error: \", p, fieldId), err)\nReadFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field %d '%s' error: \", p, fieldId, fieldIDToName_WorkflowServiceOpenAPICreateConversationResult[fieldId]), err)\nSkipFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T field %d skip type %d error: \", p, fieldId, fieldTypeId), err)\n\nReadFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read field end error\", p), err)\nReadStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T read struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationResult) ReadField0(iprot thrift.TProtocol) error {\n\t_field := NewCreateConversationResponse()\n\tif err := _field.Read(iprot); err != nil {\n\t\treturn err\n\t}\n\tp.Success = _field\n\treturn nil\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationResult) Write(oprot thrift.TProtocol) (err error) {\n\tvar fieldId int16\n\tif err = oprot.WriteStructBegin(\"OpenAPICreateConversation_result\"); err != nil {\n\t\tgoto WriteStructBeginError\n\t}\n\tif p != nil {\n\t\tif err = p.writeField0(oprot); err != nil {\n\t\t\tfieldId = 0\n\t\t\tgoto WriteFieldError\n\t\t}\n\t}\n\tif err = oprot.WriteFieldStop(); err != nil {\n\t\tgoto WriteFieldStopError\n\t}\n\tif err = oprot.WriteStructEnd(); err != nil {\n\t\tgoto WriteStructEndError\n\t}\n\treturn nil\nWriteStructBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct begin error: \", p), err)\nWriteFieldError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field %d error: \", p, fieldId), err)\nWriteFieldStopError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field stop error: \", p), err)\nWriteStructEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write struct end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationResult) writeField0(oprot thrift.TProtocol) (err error) {\n\tif p.IsSetSuccess() {\n\t\tif err = oprot.WriteFieldBegin(\"success\", thrift.STRUCT, 0); err != nil {\n\t\t\tgoto WriteFieldBeginError\n\t\t}\n\t\tif err := p.Success.Write(oprot); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = oprot.WriteFieldEnd(); err != nil {\n\t\t\tgoto WriteFieldEndError\n\t\t}\n\t}\n\treturn nil\nWriteFieldBeginError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 begin error: \", p), err)\nWriteFieldEndError:\n\treturn thrift.PrependError(fmt.Sprintf(\"%T write field 0 end error: \", p), err)\n}\n\nfunc (p *WorkflowServiceOpenAPICreateConversationResult) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"WorkflowServiceOpenAPICreateConversationResult(%+v)\", *p)\n\n}\n"
  },
  {
    "path": "backend/api/router/coze/api.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator. DO NOT EDIT.\n\npackage coze\n\nimport (\n\t\"github.com/cloudwego/hertz/pkg/app/server\"\n\tcoze \"github.com/coze-dev/coze-studio/backend/api/handler/coze\"\n)\n\n/*\n This file will register all the routes of the services in the master idl.\n And it will update automatically when you use the \"update\" command for the idl.\n So don't modify the contents of the file, or your code will be deleted when it is updated.\n*/\n\n// Register register routes based on the IDL 'api.${HTTP Method}' annotation.\nfunc Register(r *server.Hertz) {\n\n\troot := r.Group(\"/\", rootMw()...)\n\t{\n\t\t_api := root.Group(\"/api\", _apiMw()...)\n\t\t{\n\t\t\t_admin := _api.Group(\"/admin\", _adminMw()...)\n\t\t\t{\n\t\t\t\t_config := _admin.Group(\"/config\", _configMw()...)\n\t\t\t\t{\n\t\t\t\t\t_basic := _config.Group(\"/basic\", _basicMw()...)\n\t\t\t\t\t_basic.GET(\"/get\", append(_getbasicconfigurationMw(), coze.GetBasicConfiguration)...)\n\t\t\t\t\t_basic.POST(\"/save\", append(_savebasicconfigurationMw(), coze.SaveBasicConfiguration)...)\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t\t_knowledge := _config.Group(\"/knowledge\", _knowledgeMw()...)\n\t\t\t\t\t_knowledge.GET(\"/get\", append(_getknowledgeconfigMw(), coze.GetKnowledgeConfig)...)\n\t\t\t\t\t_knowledge.POST(\"/save\", append(_updateknowledgeconfigMw(), coze.UpdateKnowledgeConfig)...)\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t\t_model := _config.Group(\"/model\", _modelMw()...)\n\t\t\t\t\t_model.POST(\"/create\", append(_createmodelMw(), coze.CreateModel)...)\n\t\t\t\t\t_model.POST(\"/delete\", append(_deletemodelMw(), coze.DeleteModel)...)\n\t\t\t\t\t_model.GET(\"/list\", append(_getmodellistMw(), coze.GetModelList)...)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_bot := _api.Group(\"/bot\", _botMw()...)\n\t\t\t_bot.POST(\"/get_type_list\", append(_gettypelistMw(), coze.GetTypeList)...)\n\t\t\t_bot.POST(\"/upload_file\", append(_uploadfileMw(), coze.UploadFile)...)\n\t\t}\n\t\t{\n\t\t\t_common := _api.Group(\"/common\", _commonMw()...)\n\t\t\t{\n\t\t\t\t_upload := _common.Group(\"/upload\", _uploadMw()...)\n\t\t\t\t_upload.GET(\"/apply_upload_action\", append(_applyuploadactionMw(), coze.ApplyUploadAction)...)\n\t\t\t\t_upload.POST(\"/apply_upload_action\", append(_applyuploadaction0Mw(), coze.ApplyUploadAction)...)\n\t\t\t\t_upload.POST(\"/*tos_uri\", append(_commonuploadMw(), coze.CommonUpload)...)\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_conversation := _api.Group(\"/conversation\", _conversationMw()...)\n\t\t\t_conversation.POST(\"/break_message\", append(_breakmessageMw(), coze.BreakMessage)...)\n\t\t\t_conversation.POST(\"/chat\", append(_agentrunMw(), coze.AgentRun)...)\n\t\t\t_conversation.POST(\"/clear_message\", append(_clearconversationhistoryMw(), coze.ClearConversationHistory)...)\n\t\t\t_conversation.POST(\"/create_section\", append(_clearconversationctxMw(), coze.ClearConversationCtx)...)\n\t\t\t_conversation.POST(\"/delete_message\", append(_deletemessageMw(), coze.DeleteMessage)...)\n\t\t\t_conversation.POST(\"/get_message_list\", append(_getmessagelistMw(), coze.GetMessageList)...)\n\t\t}\n\t\t{\n\t\t\t_developer := _api.Group(\"/developer\", _developerMw()...)\n\t\t\t_developer.POST(\"/get_icon\", append(_geticonMw(), coze.GetIcon)...)\n\t\t}\n\t\t{\n\t\t\t_draftbot := _api.Group(\"/draftbot\", _draftbotMw()...)\n\t\t\t_draftbot.POST(\"/commit_check\", append(_checkdraftbotcommitMw(), coze.CheckDraftBotCommit)...)\n\t\t\t_draftbot.POST(\"/create\", append(_draftbotcreateMw(), coze.DraftBotCreate)...)\n\t\t\t_draftbot.POST(\"/delete\", append(_deletedraftbotMw(), coze.DeleteDraftBot)...)\n\t\t\t_draftbot.POST(\"/duplicate\", append(_duplicatedraftbotMw(), coze.DuplicateDraftBot)...)\n\t\t\t_draftbot.POST(\"/get_display_info\", append(_getdraftbotdisplayinfoMw(), coze.GetDraftBotDisplayInfo)...)\n\t\t\t_draftbot.POST(\"/list_draft_history\", append(_listdraftbothistoryMw(), coze.ListDraftBotHistory)...)\n\t\t\t_draftbot.POST(\"/publish\", append(_publishdraftbotMw(), coze.PublishDraftBot)...)\n\t\t\t_draftbot.POST(\"/update_display_info\", append(_updatedraftbotdisplayinfoMw(), coze.UpdateDraftBotDisplayInfo)...)\n\t\t\t{\n\t\t\t\t_publish := _draftbot.Group(\"/publish\", _publishMw()...)\n\t\t\t\t{\n\t\t\t\t\t_connector := _publish.Group(\"/connector\", _connectorMw()...)\n\t\t\t\t\t_connector.POST(\"/list\", append(_publishconnectorlistMw(), coze.PublishConnectorList)...)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_intelligence_api := _api.Group(\"/intelligence_api\", _intelligence_apiMw()...)\n\t\t\t{\n\t\t\t\t_draft_project := _intelligence_api.Group(\"/draft_project\", _draft_projectMw()...)\n\t\t\t\t_draft_project.POST(\"/copy\", append(_draftprojectcopyMw(), coze.DraftProjectCopy)...)\n\t\t\t\t_draft_project.POST(\"/create\", append(_draftprojectcreateMw(), coze.DraftProjectCreate)...)\n\t\t\t\t_draft_project.POST(\"/delete\", append(_draftprojectdeleteMw(), coze.DraftProjectDelete)...)\n\t\t\t\t_draft_project.POST(\"/inner_task_list\", append(_draftprojectinnertasklistMw(), coze.DraftProjectInnerTaskList)...)\n\t\t\t\t_draft_project.POST(\"/update\", append(_draftprojectupdateMw(), coze.DraftProjectUpdate)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_publish0 := _intelligence_api.Group(\"/publish\", _publish0Mw()...)\n\t\t\t\t_publish0.POST(\"/check_version_number\", append(_checkprojectversionnumberMw(), coze.CheckProjectVersionNumber)...)\n\t\t\t\t_publish0.POST(\"/connector_list\", append(_projectpublishconnectorlistMw(), coze.ProjectPublishConnectorList)...)\n\t\t\t\t_publish0.POST(\"/get_published_connector\", append(_getprojectpublishedconnectorMw(), coze.GetProjectPublishedConnector)...)\n\t\t\t\t_publish0.POST(\"/publish_project\", append(_publishprojectMw(), coze.PublishProject)...)\n\t\t\t\t_publish0.POST(\"/publish_record_detail\", append(_getpublishrecorddetailMw(), coze.GetPublishRecordDetail)...)\n\t\t\t\t_publish0.POST(\"/publish_record_list\", append(_getpublishrecordlistMw(), coze.GetPublishRecordList)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_search := _intelligence_api.Group(\"/search\", _searchMw()...)\n\t\t\t\t_search.POST(\"/get_draft_intelligence_info\", append(_getdraftintelligenceinfoMw(), coze.GetDraftIntelligenceInfo)...)\n\t\t\t\t_search.POST(\"/get_draft_intelligence_list\", append(_getdraftintelligencelistMw(), coze.GetDraftIntelligenceList)...)\n\t\t\t\t_search.POST(\"/get_recently_edit_intelligence\", append(_getuserrecentlyeditintelligenceMw(), coze.GetUserRecentlyEditIntelligence)...)\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_knowledge0 := _api.Group(\"/knowledge\", _knowledge0Mw()...)\n\t\t\t_knowledge0.POST(\"/create\", append(_createdatasetMw(), coze.CreateDataset)...)\n\t\t\t_knowledge0.POST(\"/delete\", append(_deletedatasetMw(), coze.DeleteDataset)...)\n\t\t\t_knowledge0.POST(\"/detail\", append(_datasetdetailMw(), coze.DatasetDetail)...)\n\t\t\t_knowledge0.POST(\"/list\", append(_listdatasetMw(), coze.ListDataset)...)\n\t\t\t_knowledge0.POST(\"/update\", append(_updatedatasetMw(), coze.UpdateDataset)...)\n\t\t\t{\n\t\t\t\t_document := _knowledge0.Group(\"/document\", _documentMw()...)\n\t\t\t\t_document.POST(\"/create\", append(_createdocumentMw(), coze.CreateDocument)...)\n\t\t\t\t_document.POST(\"/delete\", append(_deletedocumentMw(), coze.DeleteDocument)...)\n\t\t\t\t_document.POST(\"/list\", append(_listdocumentMw(), coze.ListDocument)...)\n\t\t\t\t_document.POST(\"/resegment\", append(_resegmentMw(), coze.Resegment)...)\n\t\t\t\t_document.POST(\"/update\", append(_updatedocumentMw(), coze.UpdateDocument)...)\n\t\t\t\t{\n\t\t\t\t\t_progress := _document.Group(\"/progress\", _progressMw()...)\n\t\t\t\t\t_progress.POST(\"/get\", append(_getdocumentprogressMw(), coze.GetDocumentProgress)...)\n\t\t\t\t}\n\t\t\t}\n\t\t\t{\n\t\t\t\t_icon := _knowledge0.Group(\"/icon\", _iconMw()...)\n\t\t\t\t_icon.POST(\"/get\", append(_geticonfordatasetMw(), coze.GetIconForDataset)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_photo := _knowledge0.Group(\"/photo\", _photoMw()...)\n\t\t\t\t_photo.POST(\"/caption\", append(_updatephotocaptionMw(), coze.UpdatePhotoCaption)...)\n\t\t\t\t_photo.POST(\"/detail\", append(_photodetailMw(), coze.PhotoDetail)...)\n\t\t\t\t_photo.POST(\"/extract_caption\", append(_extractphotocaptionMw(), coze.ExtractPhotoCaption)...)\n\t\t\t\t_photo.POST(\"/list\", append(_listphotoMw(), coze.ListPhoto)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_review := _knowledge0.Group(\"/review\", _reviewMw()...)\n\t\t\t\t_review.POST(\"/create\", append(_createdocumentreviewMw(), coze.CreateDocumentReview)...)\n\t\t\t\t_review.POST(\"/mget\", append(_mgetdocumentreviewMw(), coze.MGetDocumentReview)...)\n\t\t\t\t_review.POST(\"/save\", append(_savedocumentreviewMw(), coze.SaveDocumentReview)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_slice := _knowledge0.Group(\"/slice\", _sliceMw()...)\n\t\t\t\t_slice.POST(\"/create\", append(_createsliceMw(), coze.CreateSlice)...)\n\t\t\t\t_slice.POST(\"/delete\", append(_deletesliceMw(), coze.DeleteSlice)...)\n\t\t\t\t_slice.POST(\"/list\", append(_listsliceMw(), coze.ListSlice)...)\n\t\t\t\t_slice.POST(\"/update\", append(_updatesliceMw(), coze.UpdateSlice)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_table_schema := _knowledge0.Group(\"/table_schema\", _table_schemaMw()...)\n\t\t\t\t_table_schema.POST(\"/get\", append(_gettableschemaMw(), coze.GetTableSchema)...)\n\t\t\t\t_table_schema.POST(\"/validate\", append(_validatetableschemaMw(), coze.ValidateTableSchema)...)\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_marketplace := _api.Group(\"/marketplace\", _marketplaceMw()...)\n\t\t\t{\n\t\t\t\t_product := _marketplace.Group(\"/product\", _productMw()...)\n\t\t\t\t_product.GET(\"/call_info\", append(_publicgetproductcallinfoMw(), coze.PublicGetProductCallInfo)...)\n\t\t\t\t_product.GET(\"/config\", append(_publicgetmarketpluginconfigMw(), coze.PublicGetMarketPluginConfig)...)\n\t\t\t\t_product.GET(\"/detail\", append(_publicgetproductdetailMw(), coze.PublicGetProductDetail)...)\n\t\t\t\t_product.POST(\"/duplicate\", append(_publicduplicateproductMw(), coze.PublicDuplicateProduct)...)\n\t\t\t\t_product.POST(\"/favorite\", append(_publicfavoriteproductMw(), coze.PublicFavoriteProduct)...)\n\t\t\t\t_favorite := _product.Group(\"/favorite\", _favoriteMw()...)\n\t\t\t\t_favorite.GET(\"/list.v2\", append(_publicgetuserfavoritelistv2Mw(), coze.PublicGetUserFavoriteListV2)...)\n\t\t\t\t_product.GET(\"/list\", append(_publicgetproductlistMw(), coze.PublicGetProductList)...)\n\t\t\t\t_product.GET(\"/search\", append(_publicsearchproductMw(), coze.PublicSearchProduct)...)\n\t\t\t\t_search0 := _product.Group(\"/search\", _search0Mw()...)\n\t\t\t\t_search0.GET(\"/suggest\", append(_publicsearchsuggestMw(), coze.PublicSearchSuggest)...)\n\t\t\t\t{\n\t\t\t\t\t_category := _product.Group(\"/category\", _categoryMw()...)\n\t\t\t\t\t_category.GET(\"/list\", append(_publicgetproductcategorylistMw(), coze.PublicGetProductCategoryList)...)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_memory := _api.Group(\"/memory\", _memoryMw()...)\n\t\t\t_memory.GET(\"/doc_table_info\", append(_getdocumenttableinfoMw(), coze.GetDocumentTableInfo)...)\n\t\t\t_memory.GET(\"/sys_variable_conf\", append(_getsysvariableconfMw(), coze.GetSysVariableConf)...)\n\t\t\t_memory.GET(\"/table_mode_config\", append(_getmodeconfigMw(), coze.GetModeConfig)...)\n\t\t\t{\n\t\t\t\t_database := _memory.Group(\"/database\", _databaseMw()...)\n\t\t\t\t_database.POST(\"/add\", append(_adddatabaseMw(), coze.AddDatabase)...)\n\t\t\t\t_database.POST(\"/bind_to_bot\", append(_binddatabaseMw(), coze.BindDatabase)...)\n\t\t\t\t_database.POST(\"/delete\", append(_deletedatabaseMw(), coze.DeleteDatabase)...)\n\t\t\t\t_database.POST(\"/get_by_id\", append(_getdatabasebyidMw(), coze.GetDatabaseByID)...)\n\t\t\t\t_database.POST(\"/get_connector_name\", append(_getconnectornameMw(), coze.GetConnectorName)...)\n\t\t\t\t_database.POST(\"/get_online_database_id\", append(_getonlinedatabaseidMw(), coze.GetOnlineDatabaseId)...)\n\t\t\t\t_database.POST(\"/get_template\", append(_getdatabasetemplateMw(), coze.GetDatabaseTemplate)...)\n\t\t\t\t_database.POST(\"/list\", append(_listdatabaseMw(), coze.ListDatabase)...)\n\t\t\t\t_database.POST(\"/list_records\", append(_listdatabaserecordsMw(), coze.ListDatabaseRecords)...)\n\t\t\t\t_database.POST(\"/unbind_to_bot\", append(_unbinddatabaseMw(), coze.UnBindDatabase)...)\n\t\t\t\t_database.POST(\"/update\", append(_updatedatabaseMw(), coze.UpdateDatabase)...)\n\t\t\t\t_database.POST(\"/update_bot_switch\", append(_updatedatabasebotswitchMw(), coze.UpdateDatabaseBotSwitch)...)\n\t\t\t\t_database.POST(\"/update_records\", append(_updatedatabaserecordsMw(), coze.UpdateDatabaseRecords)...)\n\t\t\t\t{\n\t\t\t\t\t_table := _database.Group(\"/table\", _tableMw()...)\n\t\t\t\t\t_table.POST(\"/list_new\", append(_getbotdatabaseMw(), coze.GetBotDatabase)...)\n\t\t\t\t\t_table.POST(\"/reset\", append(_resetbottableMw(), coze.ResetBotTable)...)\n\t\t\t\t}\n\t\t\t}\n\t\t\t{\n\t\t\t\t_project := _memory.Group(\"/project\", _projectMw()...)\n\t\t\t\t{\n\t\t\t\t\t_variable := _project.Group(\"/variable\", _variableMw()...)\n\t\t\t\t\t_variable.GET(\"/meta_list\", append(_getprojectvariablelistMw(), coze.GetProjectVariableList)...)\n\t\t\t\t\t_variable.POST(\"/meta_update\", append(_updateprojectvariableMw(), coze.UpdateProjectVariable)...)\n\t\t\t\t}\n\t\t\t}\n\t\t\t{\n\t\t\t\t_table_file := _memory.Group(\"/table_file\", _table_fileMw()...)\n\t\t\t\t_table_file.POST(\"/get_progress\", append(_databasefileprogressdataMw(), coze.DatabaseFileProgressData)...)\n\t\t\t\t_table_file.POST(\"/submit\", append(_submitdatabaseinserttaskMw(), coze.SubmitDatabaseInsertTask)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_table_schema0 := _memory.Group(\"/table_schema\", _table_schema0Mw()...)\n\t\t\t\t_table_schema0.POST(\"/get\", append(_getdatabasetableschemaMw(), coze.GetDatabaseTableSchema)...)\n\t\t\t\t_table_schema0.POST(\"/validate\", append(_validatedatabasetableschemaMw(), coze.ValidateDatabaseTableSchema)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_variable0 := _memory.Group(\"/variable\", _variable0Mw()...)\n\t\t\t\t_variable0.POST(\"/delete\", append(_delprofilememoryMw(), coze.DelProfileMemory)...)\n\t\t\t\t_variable0.POST(\"/get\", append(_getplaygroundmemoryMw(), coze.GetPlayGroundMemory)...)\n\t\t\t\t_variable0.POST(\"/get_meta\", append(_getmemoryvariablemetaMw(), coze.GetMemoryVariableMeta)...)\n\t\t\t\t_variable0.POST(\"/upsert\", append(_setkvmemoryMw(), coze.SetKvMemory)...)\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_oauth := _api.Group(\"/oauth\", _oauthMw()...)\n\t\t\t_oauth.GET(\"/authorization_code\", append(_oauthauthorizationcodeMw(), coze.OauthAuthorizationCode)...)\n\t\t}\n\t\t{\n\t\t\t_passport := _api.Group(\"/passport\", _passportMw()...)\n\t\t\t{\n\t\t\t\t_account := _passport.Group(\"/account\", _accountMw()...)\n\t\t\t\t{\n\t\t\t\t\t_info := _account.Group(\"/info\", _infoMw()...)\n\t\t\t\t\t{\n\t\t\t\t\t\t_v2 := _info.Group(\"/v2\", _v2Mw()...)\n\t\t\t\t\t\t_v2.POST(\"/\", append(_passportaccountinfov2Mw(), coze.PassportAccountInfoV2)...)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t{\n\t\t\t\t_web := _passport.Group(\"/web\", _webMw()...)\n\t\t\t\t{\n\t\t\t\t\t_email := _web.Group(\"/email\", _emailMw()...)\n\t\t\t\t\t{\n\t\t\t\t\t\t_login := _email.Group(\"/login\", _loginMw()...)\n\t\t\t\t\t\t_login.POST(\"/\", append(_passportwebemailloginpostMw(), coze.PassportWebEmailLoginPost)...)\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\t_password := _email.Group(\"/password\", _passwordMw()...)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t_reset := _password.Group(\"/reset\", _resetMw()...)\n\t\t\t\t\t\t\t_reset.GET(\"/\", append(_passportwebemailpasswordresetgetMw(), coze.PassportWebEmailPasswordResetGet)...)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\t_register := _email.Group(\"/register\", _registerMw()...)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t_v20 := _register.Group(\"/v2\", _v20Mw()...)\n\t\t\t\t\t\t\t_v20.POST(\"/\", append(_passportwebemailregisterv2postMw(), coze.PassportWebEmailRegisterV2Post)...)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t\t_logout := _web.Group(\"/logout\", _logoutMw()...)\n\t\t\t\t\t_logout.GET(\"/\", append(_passportweblogoutgetMw(), coze.PassportWebLogoutGet)...)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_permission_api := _api.Group(\"/permission_api\", _permission_apiMw()...)\n\t\t\t{\n\t\t\t\t_coze_web_app := _permission_api.Group(\"/coze_web_app\", _coze_web_appMw()...)\n\t\t\t\t_coze_web_app.POST(\"/impersonate_coze_user\", append(_impersonatecozeuserMw(), coze.ImpersonateCozeUser)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_pat := _permission_api.Group(\"/pat\", _patMw()...)\n\t\t\t\t_pat.POST(\"/create_personal_access_token_and_permission\", append(_createpersonalaccesstokenandpermissionMw(), coze.CreatePersonalAccessTokenAndPermission)...)\n\t\t\t\t_pat.POST(\"/delete_personal_access_token_and_permission\", append(_deletepersonalaccesstokenandpermissionMw(), coze.DeletePersonalAccessTokenAndPermission)...)\n\t\t\t\t_pat.GET(\"/get_personal_access_token_and_permission\", append(_getpersonalaccesstokenandpermissionMw(), coze.GetPersonalAccessTokenAndPermission)...)\n\t\t\t\t_pat.GET(\"/list_personal_access_tokens\", append(_listpersonalaccesstokensMw(), coze.ListPersonalAccessTokens)...)\n\t\t\t\t_pat.POST(\"/update_personal_access_token_and_permission\", append(_updatepersonalaccesstokenandpermissionMw(), coze.UpdatePersonalAccessTokenAndPermission)...)\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_playground := _api.Group(\"/playground\", _playgroundMw()...)\n\t\t\t_playground.POST(\"/get_onboarding\", append(_getonboardingMw(), coze.GetOnboarding)...)\n\t\t\t{\n\t\t\t\t_upload0 := _playground.Group(\"/upload\", _upload0Mw()...)\n\t\t\t\t_upload0.POST(\"/auth_token\", append(_getuploadauthtokenMw(), coze.GetUploadAuthToken)...)\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_playground_api := _api.Group(\"/playground_api\", _playground_apiMw()...)\n\t\t\t_playground_api.POST(\"/create_update_shortcut_command\", append(_createupdateshortcutcommandMw(), coze.CreateUpdateShortcutCommand)...)\n\t\t\t_playground_api.POST(\"/delete_prompt_resource\", append(_deletepromptresourceMw(), coze.DeletePromptResource)...)\n\t\t\t_playground_api.POST(\"/get_file_list\", append(_getfileurlsMw(), coze.GetFileUrls)...)\n\t\t\t_playground_api.POST(\"/get_imagex_url\", append(_getimagexshorturlMw(), coze.GetImagexShortUrl)...)\n\t\t\t_playground_api.POST(\"/get_official_prompt_list\", append(_getofficialpromptresourcelistMw(), coze.GetOfficialPromptResourceList)...)\n\t\t\t_playground_api.GET(\"/get_prompt_resource_info\", append(_getpromptresourceinfoMw(), coze.GetPromptResourceInfo)...)\n\t\t\t_playground_api.POST(\"/mget_user_info\", append(_mgetuserbasicinfoMw(), coze.MGetUserBasicInfo)...)\n\t\t\t_playground_api.POST(\"/report_user_behavior\", append(_reportuserbehaviorMw(), coze.ReportUserBehavior)...)\n\t\t\t_playground_api.POST(\"/upsert_prompt_resource\", append(_upsertpromptresourceMw(), coze.UpsertPromptResource)...)\n\t\t\t{\n\t\t\t\t_draftbot0 := _playground_api.Group(\"/draftbot\", _draftbot0Mw()...)\n\t\t\t\t_draftbot0.POST(\"/get_draft_bot_info\", append(_getdraftbotinfoagwMw(), coze.GetDraftBotInfoAgw)...)\n\t\t\t\t_draftbot0.POST(\"/update_draft_bot_info\", append(_updatedraftbotinfoagwMw(), coze.UpdateDraftBotInfoAgw)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_operate := _playground_api.Group(\"/operate\", _operateMw()...)\n\t\t\t\t_operate.POST(\"/get_bot_popup_info\", append(_getbotpopupinfoMw(), coze.GetBotPopupInfo)...)\n\t\t\t\t_operate.POST(\"/update_bot_popup_info\", append(_updatebotpopupinfoMw(), coze.UpdateBotPopupInfo)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_space := _playground_api.Group(\"/space\", _spaceMw()...)\n\t\t\t\t_space.POST(\"/list\", append(_getspacelistv2Mw(), coze.GetSpaceListV2)...)\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_plugin := _api.Group(\"/plugin\", _pluginMw()...)\n\t\t\t_plugin.POST(\"/get_oauth_schema\", append(_getoauthschemaMw(), coze.GetOAuthSchema)...)\n\t\t}\n\t\t{\n\t\t\t_plugin_api := _api.Group(\"/plugin_api\", _plugin_apiMw()...)\n\t\t\t_plugin_api.POST(\"/batch_create_api\", append(_batchcreateapiMw(), coze.BatchCreateAPI)...)\n\t\t\t_plugin_api.POST(\"/check_and_lock_plugin_edit\", append(_checkandlockplugineditMw(), coze.CheckAndLockPluginEdit)...)\n\t\t\t_plugin_api.POST(\"/convert_to_openapi\", append(_convert2openapiMw(), coze.Convert2OpenAPI)...)\n\t\t\t_plugin_api.POST(\"/create_api\", append(_createapiMw(), coze.CreateAPI)...)\n\t\t\t_plugin_api.POST(\"/debug_api\", append(_debugapiMw(), coze.DebugAPI)...)\n\t\t\t_plugin_api.POST(\"/del_plugin\", append(_delpluginMw(), coze.DelPlugin)...)\n\t\t\t_plugin_api.POST(\"/delete_api\", append(_deleteapiMw(), coze.DeleteAPI)...)\n\t\t\t_plugin_api.POST(\"/get_bot_default_params\", append(_getbotdefaultparamsMw(), coze.GetBotDefaultParams)...)\n\t\t\t_plugin_api.POST(\"/get_dev_plugin_list\", append(_getdevpluginlistMw(), coze.GetDevPluginList)...)\n\t\t\t_plugin_api.POST(\"/get_oauth_schema\", append(_getoauthschemaapiMw(), coze.GetOAuthSchemaAPI)...)\n\t\t\t_plugin_api.POST(\"/get_oauth_status\", append(_getoauthstatusMw(), coze.GetOAuthStatus)...)\n\t\t\t_plugin_api.POST(\"/get_playground_plugin_list\", append(_getplaygroundpluginlistMw(), coze.GetPlaygroundPluginList)...)\n\t\t\t_plugin_api.POST(\"/get_plugin_apis\", append(_getpluginapisMw(), coze.GetPluginAPIs)...)\n\t\t\t_plugin_api.POST(\"/get_plugin_info\", append(_getplugininfoMw(), coze.GetPluginInfo)...)\n\t\t\t_plugin_api.POST(\"/get_plugin_next_version\", append(_getpluginnextversionMw(), coze.GetPluginNextVersion)...)\n\t\t\t_plugin_api.POST(\"/get_queried_oauth_plugins\", append(_getqueriedoauthpluginlistMw(), coze.GetQueriedOAuthPluginList)...)\n\t\t\t_plugin_api.POST(\"/get_updated_apis\", append(_getupdatedapisMw(), coze.GetUpdatedAPIs)...)\n\t\t\t_plugin_api.POST(\"/get_user_authority\", append(_getuserauthorityMw(), coze.GetUserAuthority)...)\n\t\t\t_plugin_api.POST(\"/library_resource_list\", append(_libraryresourcelistMw(), coze.LibraryResourceList)...)\n\t\t\t_plugin_api.POST(\"/project_resource_list\", append(_projectresourcelistMw(), coze.ProjectResourceList)...)\n\t\t\t_plugin_api.POST(\"/publish_plugin\", append(_publishpluginMw(), coze.PublishPlugin)...)\n\t\t\t_plugin_api.POST(\"/register\", append(_registerpluginMw(), coze.RegisterPlugin)...)\n\t\t\t_plugin_api.POST(\"/register_plugin_meta\", append(_registerpluginmetaMw(), coze.RegisterPluginMeta)...)\n\t\t\t_plugin_api.POST(\"/resource_copy_cancel\", append(_resourcecopycancelMw(), coze.ResourceCopyCancel)...)\n\t\t\t_plugin_api.POST(\"/resource_copy_detail\", append(_resourcecopydetailMw(), coze.ResourceCopyDetail)...)\n\t\t\t_plugin_api.POST(\"/resource_copy_dispatch\", append(_resourcecopydispatchMw(), coze.ResourceCopyDispatch)...)\n\t\t\t_plugin_api.POST(\"/resource_copy_retry\", append(_resourcecopyretryMw(), coze.ResourceCopyRetry)...)\n\t\t\t_plugin_api.POST(\"/revoke_auth_token\", append(_revokeauthtokenMw(), coze.RevokeAuthToken)...)\n\t\t\t_plugin_api.POST(\"/unlock_plugin_edit\", append(_unlockplugineditMw(), coze.UnlockPluginEdit)...)\n\t\t\t_plugin_api.POST(\"/update\", append(_updatepluginMw(), coze.UpdatePlugin)...)\n\t\t\t_plugin_api.POST(\"/update_api\", append(_updateapiMw(), coze.UpdateAPI)...)\n\t\t\t_plugin_api.POST(\"/update_bot_default_params\", append(_updatebotdefaultparamsMw(), coze.UpdateBotDefaultParams)...)\n\t\t\t_plugin_api.POST(\"/update_plugin_meta\", append(_updatepluginmetaMw(), coze.UpdatePluginMeta)...)\n\t\t}\n\t\t{\n\t\t\t_user := _api.Group(\"/user\", _userMw()...)\n\t\t\t_user.POST(\"/update_profile\", append(_userupdateprofileMw(), coze.UserUpdateProfile)...)\n\t\t\t_user.POST(\"/update_profile_check\", append(_updateuserprofilecheckMw(), coze.UpdateUserProfileCheck)...)\n\t\t}\n\t\t{\n\t\t\t_web0 := _api.Group(\"/web\", _web0Mw()...)\n\t\t\t{\n\t\t\t\t_user0 := _web0.Group(\"/user\", _user0Mw()...)\n\t\t\t\t{\n\t\t\t\t\t_update := _user0.Group(\"/update\", _updateMw()...)\n\t\t\t\t\t{\n\t\t\t\t\t\t_upload_avatar := _update.Group(\"/upload_avatar\", _upload_avatarMw()...)\n\t\t\t\t\t\t_upload_avatar.POST(\"/\", append(_userupdateavatarMw(), coze.UserUpdateAvatar)...)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_workflow_api := _api.Group(\"/workflow_api\", _workflow_apiMw()...)\n\t\t\t_workflow_api.GET(\"/apiDetail\", append(_getapidetailMw(), coze.GetApiDetail)...)\n\t\t\t_workflow_api.POST(\"/batch_delete\", append(_batchdeleteworkflowMw(), coze.BatchDeleteWorkflow)...)\n\t\t\t_workflow_api.POST(\"/cancel\", append(_cancelworkflowMw(), coze.CancelWorkFlow)...)\n\t\t\t_workflow_api.POST(\"/canvas\", append(_getcanvasinfoMw(), coze.GetCanvasInfo)...)\n\t\t\t_workflow_api.POST(\"/copy\", append(_copyworkflowMw(), coze.CopyWorkflow)...)\n\t\t\t_workflow_api.POST(\"/copy_wk_template\", append(_copywktemplateapiMw(), coze.CopyWkTemplateApi)...)\n\t\t\t_workflow_api.POST(\"/create\", append(_createworkflowMw(), coze.CreateWorkflow)...)\n\t\t\t_workflow_api.POST(\"/delete\", append(_deleteworkflowMw(), coze.DeleteWorkflow)...)\n\t\t\t_workflow_api.POST(\"/delete_strategy\", append(_getdeletestrategyMw(), coze.GetDeleteStrategy)...)\n\t\t\t_workflow_api.POST(\"/example_workflow_list\", append(_getexampleworkflowlistMw(), coze.GetExampleWorkFlowList)...)\n\t\t\t_workflow_api.GET(\"/get_node_execute_history\", append(_getnodeexecutehistoryMw(), coze.GetNodeExecuteHistory)...)\n\t\t\t_workflow_api.GET(\"/get_process\", append(_getworkflowprocessMw(), coze.GetWorkFlowProcess)...)\n\t\t\t_workflow_api.POST(\"/get_trace\", append(_gettracesdkMw(), coze.GetTraceSDK)...)\n\t\t\t_workflow_api.POST(\"/history_schema\", append(_gethistoryschemaMw(), coze.GetHistorySchema)...)\n\t\t\t_workflow_api.POST(\"/list_publish_workflow\", append(_listpublishworkflowMw(), coze.ListPublishWorkflow)...)\n\t\t\t_workflow_api.POST(\"/list_spans\", append(_listrootspansMw(), coze.ListRootSpans)...)\n\t\t\t_workflow_api.POST(\"/llm_fc_setting_detail\", append(_getllmnodefcsettingdetailMw(), coze.GetLLMNodeFCSettingDetail)...)\n\t\t\t_workflow_api.POST(\"/llm_fc_setting_merged\", append(_getllmnodefcsettingsmergedMw(), coze.GetLLMNodeFCSettingsMerged)...)\n\t\t\t_workflow_api.POST(\"/nodeDebug\", append(_workflownodedebugv2Mw(), coze.WorkflowNodeDebugV2)...)\n\t\t\t_workflow_api.POST(\"/node_panel_search\", append(_nodepanelsearchMw(), coze.NodePanelSearch)...)\n\t\t\t_workflow_api.POST(\"/node_template_list\", append(_nodetemplatelistMw(), coze.NodeTemplateList)...)\n\t\t\t_workflow_api.POST(\"/node_type\", append(_queryworkflownodetypesMw(), coze.QueryWorkflowNodeTypes)...)\n\t\t\t_workflow_api.POST(\"/publish\", append(_publishworkflowMw(), coze.PublishWorkflow)...)\n\t\t\t_workflow_api.POST(\"/released_workflows\", append(_getreleasedworkflowsMw(), coze.GetReleasedWorkflows)...)\n\t\t\t_workflow_api.POST(\"/save\", append(_saveworkflowMw(), coze.SaveWorkflow)...)\n\t\t\t_workflow_api.POST(\"/sign_image_url\", append(_signimageurlMw(), coze.SignImageURL)...)\n\t\t\t_workflow_api.POST(\"/test_resume\", append(_workflowtestresumeMw(), coze.WorkFlowTestResume)...)\n\t\t\t_workflow_api.POST(\"/test_run\", append(_workflowtestrunMw(), coze.WorkFlowTestRun)...)\n\t\t\t_workflow_api.POST(\"/update_meta\", append(_updateworkflowmetaMw(), coze.UpdateWorkflowMeta)...)\n\t\t\t_workflow_api.POST(\"/validate_tree\", append(_validatetreeMw(), coze.ValidateTree)...)\n\t\t\t_workflow_api.POST(\"/workflow_detail\", append(_getworkflowdetailMw(), coze.GetWorkflowDetail)...)\n\t\t\t_workflow_api.POST(\"/workflow_detail_info\", append(_getworkflowdetailinfoMw(), coze.GetWorkflowDetailInfo)...)\n\t\t\t_workflow_api.POST(\"/workflow_list\", append(_getworkflowlistMw(), coze.GetWorkFlowList)...)\n\t\t\t_workflow_api.POST(\"/workflow_references\", append(_getworkflowreferencesMw(), coze.GetWorkflowReferences)...)\n\t\t\t{\n\t\t\t\t_chat_flow_role := _workflow_api.Group(\"/chat_flow_role\", _chat_flow_roleMw()...)\n\t\t\t\t_chat_flow_role.POST(\"/create\", append(_createchatflowroleMw(), coze.CreateChatFlowRole)...)\n\t\t\t\t_chat_flow_role.POST(\"/delete\", append(_deletechatflowroleMw(), coze.DeleteChatFlowRole)...)\n\t\t\t\t_chat_flow_role.GET(\"/get\", append(_getchatflowroleMw(), coze.GetChatFlowRole)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_project_conversation := _workflow_api.Group(\"/project_conversation\", _project_conversationMw()...)\n\t\t\t\t_project_conversation.POST(\"/create\", append(_createprojectconversationdefMw(), coze.CreateProjectConversationDef)...)\n\t\t\t\t_project_conversation.POST(\"/delete\", append(_deleteprojectconversationdefMw(), coze.DeleteProjectConversationDef)...)\n\t\t\t\t_project_conversation.GET(\"/list\", append(_listprojectconversationdefMw(), coze.ListProjectConversationDef)...)\n\t\t\t\t_project_conversation.POST(\"/update\", append(_updateprojectconversationdefMw(), coze.UpdateProjectConversationDef)...)\n\t\t\t}\n\t\t\t{\n\t\t\t\t_upload1 := _workflow_api.Group(\"/upload\", _upload1Mw()...)\n\t\t\t\t_upload1.POST(\"/auth_token\", append(_getworkflowuploadauthtokenMw(), coze.GetWorkflowUploadAuthToken)...)\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\t_open_api := root.Group(\"/open_api\", _open_apiMw()...)\n\t\t{\n\t\t\t_knowledge1 := _open_api.Group(\"/knowledge\", _knowledge1Mw()...)\n\t\t\t{\n\t\t\t\t_document0 := _knowledge1.Group(\"/document\", _document0Mw()...)\n\t\t\t\t_document0.POST(\"/create\", append(_createdocumentopenapiMw(), coze.CreateDocumentOpenAPI)...)\n\t\t\t\t_document0.POST(\"/list\", append(_listdocumentopenapiMw(), coze.ListDocumentOpenAPI)...)\n\t\t\t\t_document0.POST(\"/delete\", append(_updatedocumentopenapiMw(), coze.DeleteDocumentOpenAPI)...)\n\t\t\t\t_document0.POST(\"/update\", append(_updatedocumentopenapiMw(), coze.UpdateDocumentOpenAPI)...)\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\t_v1 := root.Group(\"/v1\", _v1Mw()...)\n\t\t_v1.GET(\"/conversations\", append(_listconversationsapiMw(), coze.ListConversationsApi)...)\n\t\t_conversations := _v1.Group(\"/conversations\", _conversationsMw()...)\n\t\t_conversations.DELETE(\"/:conversation_id\", append(_deleteconversationapiMw(), coze.DeleteConversationApi)...)\n\t\t_conversations.PUT(\"/:conversation_id\", append(_updateconversationapiMw(), coze.UpdateConversationApi)...)\n\t\t_v1.GET(\"/datasets\", append(_listdatasetopenapiMw(), coze.ListDatasetOpenAPI)...)\n\t\t_datasets := _v1.Group(\"/datasets\", _datasetsMw()...)\n\t\t_datasets.DELETE(\"/:dataset_id\", append(_deletedatasetopenapiMw(), coze.DeleteDatasetOpenAPI)...)\n\t\t_dataset_id := _datasets.Group(\"/:dataset_id\", _dataset_idMw()...)\n\t\t_dataset_id.GET(\"/images\", append(_listphotodocumentopenapiMw(), coze.ListPhotoDocumentOpenAPI)...)\n\t\t_dataset_id.POST(\"/process\", append(_getdocumentprogressopenapiMw(), coze.GetDocumentProgressOpenAPI)...)\n\t\t_datasets.PUT(\"/:dataset_id\", append(_updatedatasetopenapiMw(), coze.UpdateDatasetOpenAPI)...)\n\t\t_v1.POST(\"/datasets\", append(_createdatasetopenapiMw(), coze.CreateDatasetOpenAPI)...)\n\t\t{\n\t\t\t_apps := _v1.Group(\"/apps\", _appsMw()...)\n\t\t\t_apps.GET(\"/:app_id\", append(_getonlineappdataMw(), coze.GetOnlineAppData)...)\n\t\t}\n\t\t{\n\t\t\t_bot0 := _v1.Group(\"/bot\", _bot0Mw()...)\n\t\t\t_bot0.GET(\"/get_online_info\", append(_getbotonlineinfoMw(), coze.GetBotOnlineInfo)...)\n\t\t}\n\t\t{\n\t\t\t_bots := _v1.Group(\"/bots\", _botsMw()...)\n\t\t\t_bots.GET(\"/:bot_id\", append(_opengetbotinfoMw(), coze.OpenGetBotInfo)...)\n\t\t}\n\t\t{\n\t\t\t_conversation0 := _v1.Group(\"/conversation\", _conversation0Mw()...)\n\t\t\t_conversation0.POST(\"/create\", append(_createconversationMw(), coze.CreateConversation)...)\n\t\t\t_conversation0.GET(\"/retrieve\", append(_retrieveconversationapiMw(), coze.RetrieveConversationApi)...)\n\t\t\t{\n\t\t\t\t_message := _conversation0.Group(\"/message\", _messageMw()...)\n\t\t\t\t_message.POST(\"/list\", append(_getapimessagelistMw(), coze.GetApiMessageList)...)\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_conversations0 := _v1.Group(\"/conversations\", _conversations0Mw()...)\n\t\t\t{\n\t\t\t\t_conversation_id := _conversations0.Group(\"/:conversation_id\", _conversation_idMw()...)\n\t\t\t\t_conversation_id.POST(\"/clear\", append(_clearconversationapiMw(), coze.ClearConversationApi)...)\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_files := _v1.Group(\"/files\", _filesMw()...)\n\t\t\t_files.POST(\"/upload\", append(_uploadfileopenMw(), coze.UploadFileOpen)...)\n\t\t}\n\t\t{\n\t\t\t_workflow := _v1.Group(\"/workflow\", _workflowMw()...)\n\t\t\t_workflow.GET(\"/get_run_history\", append(_openapigetworkflowrunhistoryMw(), coze.OpenAPIGetWorkflowRunHistory)...)\n\t\t\t_workflow.POST(\"/run\", append(_openapirunflowMw(), coze.OpenAPIRunFlow)...)\n\t\t\t_workflow.POST(\"/stream_resume\", append(_openapistreamresumeflowMw(), coze.OpenAPIStreamResumeFlow)...)\n\t\t\t_workflow.POST(\"/stream_run\", append(_openapistreamrunflowMw(), coze.OpenAPIStreamRunFlow)...)\n\t\t\t{\n\t\t\t\t_conversation1 := _workflow.Group(\"/conversation\", _conversation1Mw()...)\n\t\t\t\t_conversation1.POST(\"/create\", append(_openapicreateconversationMw(), coze.OpenAPICreateConversation)...)\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\t_workflows := _v1.Group(\"/workflows\", _workflowsMw()...)\n\t\t\t_workflows.POST(\"/chat\", append(_openapichatflowrunMw(), coze.OpenAPIChatFlowRun)...)\n\t\t\t_workflows.GET(\"/:workflow_id\", append(_openapigetworkflowinfoMw(), coze.OpenAPIGetWorkflowInfo)...)\n\t\t}\n\t}\n\t{\n\t\t_v3 := root.Group(\"/v3\", _v3Mw()...)\n\t\t_v3.POST(\"/chat\", append(_chatv3Mw(), coze.ChatV3)...)\n\t\t_chat := _v3.Group(\"/chat\", _chatMw()...)\n\t\t_chat.POST(\"/cancel\", append(_cancelchatapiMw(), coze.CancelChatApi)...)\n\t\t_chat.GET(\"/retrieve\", append(_retrievechatopenMw(), coze.RetrieveChatOpen)...)\n\t\t{\n\t\t\t_chat0 := _v3.Group(\"/chat\", _chat0Mw()...)\n\t\t\t{\n\t\t\t\t_message0 := _chat0.Group(\"/message\", _message0Mw()...)\n\t\t\t\t_message0.GET(\"/list\", append(_listchatmessageapiMw(), coze.ListChatMessageApi)...)\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "backend/api/router/coze/middleware.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/coze-dev/coze-studio/backend/api/middleware\"\n)\n\nfunc rootMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _apiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _conversationMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _breakmessageMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _agentrunMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _clearconversationhistoryMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _clearconversationctxMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deletemessageMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getmessagelistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _draftbotMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _draftbotcreateMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deletedraftbotMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _duplicatedraftbotMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdraftbotdisplayinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listdraftbothistoryMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publishdraftbotMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatedraftbotdisplayinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publishMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _connectorMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publishconnectorlistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _intelligence_apiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _searchMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdraftintelligenceinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdraftintelligencelistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getuserrecentlyeditintelligenceMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _knowledgeMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createdatasetMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deletedatasetMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _datasetdetailMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listdatasetMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatedatasetMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _documentMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createdocumentMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deletedocumentMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listdocumentMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _resegmentMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatedocumentMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _progressMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdocumentprogressMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _photoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatephotocaptionMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _photodetailMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listphotoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _sliceMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createsliceMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deletesliceMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listsliceMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatesliceMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _table_schemaMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _gettableschemaMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _validatetableschemaMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _memoryMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdocumenttableinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getsysvariableconfMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _databaseMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _adddatabaseMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _binddatabaseMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deletedatabaseMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdatabasebyidMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getonlinedatabaseidMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdatabasetemplateMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listdatabaseMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listdatabaserecordsMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _unbinddatabaseMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatedatabaseMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatedatabaserecordsMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _tableMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _resetbottableMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _projectMw() []app.HandlerFunc {\n\treturn nil\n}\n\nfunc _variableMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getprojectvariablelistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updateprojectvariableMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _variable0Mw() []app.HandlerFunc {\n\treturn nil\n}\n\nfunc _delprofilememoryMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getplaygroundmemoryMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getmemoryvariablemetaMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _setkvmemoryMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _permission_apiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _patMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createpersonalaccesstokenandpermissionMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deletepersonalaccesstokenandpermissionMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getpersonalaccesstokenandpermissionMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listpersonalaccesstokensMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _playground_apiMw() []app.HandlerFunc {\n\treturn nil\n}\n\nfunc _deletepromptresourceMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getofficialpromptresourcelistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getpromptresourceinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _upsertpromptresourceMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _draftbot0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdraftbotinfoagwMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatedraftbotinfoagwMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _plugin_apiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _checkandlockplugineditMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _delpluginMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deleteapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getbotdefaultparamsMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getoauthschemaMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getoauthstatusMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getplaygroundpluginlistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getpluginapisMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getplugininfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getupdatedapisMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getuserauthorityMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _libraryresourcelistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _projectresourcelistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publishpluginMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _registerpluginmetaMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _resourcecopycancelMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _resourcecopydetailMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _resourcecopydispatchMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _resourcecopyretryMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatepluginMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updateapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatebotdefaultparamsMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatepluginmetaMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _workflow_apiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getapidetailMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _batchdeleteworkflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _cancelworkflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getcanvasinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _copyworkflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _copywktemplateapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createworkflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deleteworkflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdeletestrategyMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getnodeexecutehistoryMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getworkflowprocessMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _gettracesdkMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listpublishworkflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listrootspansMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getllmnodefcsettingdetailMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getllmnodefcsettingsmergedMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _workflownodedebugv2Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _nodepanelsearchMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _nodetemplatelistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _queryworkflownodetypesMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publishworkflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getreleasedworkflowsMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _saveworkflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _signimageurlMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _workflowtestresumeMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _workflowtestrunMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updateworkflowmetaMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _validatetreeMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getworkflowdetailMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getworkflowdetailinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getworkflowlistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getworkflowreferencesMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _chat_flow_roleMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createchatflowroleMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deletechatflowroleMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getchatflowroleMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _project_conversationMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createprojectconversationdefMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deleteprojectconversationdefMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listprojectconversationdefMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updateprojectconversationdefMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _debugapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _spaceMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getspacelistv2Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _userMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _userupdateprofileMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _passportMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _accountMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _infoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _v2Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _passportaccountinfov2Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _webMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _emailMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _loginMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _passportwebemailloginpostMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _passwordMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _resetMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _passportwebemailpasswordresetgetMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _registerMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _v20Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _passportwebemailregisterv2postMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _logoutMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _passportweblogoutgetMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _web0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _user0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updateMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _upload_avatarMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _userupdateavatarMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getconnectornameMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createconversationMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _messageMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getapimessagelistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _v1Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listconversationsapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _conversationsMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _conversation_idMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _clearconversationapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _v3Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _chatv3Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatepersonalaccesstokenandpermissionMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _developerMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _geticonMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getmodeconfigMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _botMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _reviewMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _playgroundMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _createdocumentreviewMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _uploadMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _mgetdocumentreviewMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getuploadauthtokenMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _unlockplugineditMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getimagexshorturlMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _mgetuserbasicinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _uploadfileMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getpluginnextversionMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _savedocumentreviewMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getbotdatabaseMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _operateMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getbotpopupinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatebotpopupinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _marketplaceMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _checkdraftbotcommitMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _productMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publicgetproductlistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publicgetproductdetailMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getonboardingMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatedatabasebotswitchMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _table_schema0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _gettableschema0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdatabasetableschemaMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _table_fileMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _databasefileprogressdataMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _submitdatabaseinserttaskMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _validatedatabasetableschemaMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updateuserprofilecheckMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _registerpluginMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _upload0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getworkflowuploadauthtokenMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _conversation0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _draft_projectMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _draftprojectcreateMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _draftprojectdeleteMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _draftprojectupdateMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publicfavoriteproductMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _workflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _openapigetworkflowrunhistoryMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _openapirunflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _openapistreamresumeflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _openapistreamrunflowMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _workflowsMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _openapichatflowrunMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _openapigetworkflowinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _gettypelistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _iconMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _geticon0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _geticonfordatasetMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createshortcutcommandMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createupdateshortcutcommandMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publish0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _checkprojectversionnumberMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getprojectpublishedconnectorMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publishprojectMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getpublishrecordlistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _reportuserbehaviorMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdevpluginlistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _projectpublishconnectorlistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getpublishrecorddetailMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _favoriteMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publicgetuserfavoritelistv2Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _extractphotocaptionMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _publicduplicateproductMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getfileurlsMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _convert2openapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _pluginMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getoauthschemaapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _batchcreateapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _revokeauthtokenMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _gethistoryschemaMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _filesMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _uploadfileopenMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _draftprojectinnertasklistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _draftprojectcopyMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getexampleworkflowlistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _bot0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getbotonlineinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _oauthMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _oauthauthorizationcodeMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getqueriedoauthpluginlistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _applyimageactionMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _commonuploadMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _applyimagexactionMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _applyimagexaction0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _applyuploadactionMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _applyuploadaction0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _commonMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _upload1Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _conversation1Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _openapicreateconversationMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _coze_web_appMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _impersonatecozeuserMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _botsMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _opengetbotinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deleteconversationapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updateconversationapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _conversations0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _chatMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _cancelchatapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _appsMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getonlineappdataMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _search0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _adminMw() []app.HandlerFunc {\n\treturn []app.HandlerFunc{middleware.AdminAuthMW()}\n}\n\nfunc _configMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publicsearchproductMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _basicMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publicsearchsuggestMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _getbasicconfigurationMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publicgetproductcallinfoMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _categoryMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _getknowledgeconfigMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publicgetproductcategorylistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _updateknowledgeconfigMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _publicgetmarketpluginconfigMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\nfunc _modelMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createmodelMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deletemodelMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getmodellistMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatemodelMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _knowledge0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _savebasicconfigurationMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _retrieveconversationapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _retrievechatopenMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _chat0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _message0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listchatmessageapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _open_apiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _knowledge1Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _document0Mw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createdocumentopenapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listdocumentopenapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatedocumentopenapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _datasetsMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listdatasetopenapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _dataset_idMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _deletedatasetopenapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _listphotodocumentopenapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _getdocumentprogressopenapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _updatedatasetopenapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n\nfunc _createdatasetopenapiMw() []app.HandlerFunc {\n\t// your code...\n\treturn nil\n}\n"
  },
  {
    "path": "backend/api/router/register.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Code generated by hertz generator. DO NOT EDIT.\n\npackage router\n\nimport (\n\t\"context\"\n\t\"os\"\n\t\"path\"\n\t\"strings\"\n\n\t\"github.com/cloudwego/hertz/pkg/app\"\n\t\"github.com/cloudwego/hertz/pkg/app/server\"\n\n\tcoze \"github.com/coze-dev/coze-studio/backend/api/router/coze\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\n// GeneratedRegister registers routers generated by IDL.\nfunc GeneratedRegister(r *server.Hertz) {\n\t// INSERT_POINT: DO NOT DELETE THIS LINE!\n\tcoze.Register(r)\n\tstaticFileRegister(r)\n}\n\n// staticFileRegister registers web page router.\nfunc staticFileRegister(r *server.Hertz) {\n\tcwd, err := os.Getwd()\n\tif err != nil {\n\t\tlogs.Warnf(\"[staticFileRegister] Failed to get current working directory: %v\", err)\n\t\tcwd = os.Getenv(\"PWD\")\n\t}\n\n\tstaticFile := path.Join(cwd, \"resources/static/index.html\")\n\n\tr.Static(\"/static\", path.Join(cwd, \"/resources/static\"))\n\tr.StaticFile(\"/favicon.png\", \"./resources/static/favicon.png\")\n\tr.StaticFile(\"/\", staticFile)\n\tr.StaticFile(\"/sign\", staticFile)\n\n\tr.StaticFS(\"/admin\", &app.FS{\n\t\tRoot:               path.Join(cwd, \"/resources/conf\"),\n\t\tGenerateIndexPages: true,\n\t\tIndexNames:         []string{\"index.html\"},\n\t})\n\n\t// r.StaticFS(\"/admin\", &app.FS{\n\t// \tRoot:               path.Join(cwd, \"/../backend/conf\"),\n\t// \tGenerateIndexPages: true,\n\t// \tIndexNames:         []string{\"index.html\"},\n\t// })\n\n\ttype data struct {\n\t\tCode int32  `json:\"code\"`\n\t\tMsg  string `json:\"msg\"`\n\t}\n\n\tr.NoRoute(func(c context.Context, ctx *app.RequestContext) {\n\t\tpath := string(ctx.GetRequest().URI().Path())\n\t\tif strings.HasPrefix(path, \"/api/\") ||\n\t\t\tstrings.HasPrefix(path, \"/v1/\") ||\n\t\t\tstrings.HasPrefix(path, \"/v3/\") {\n\t\t\tctx.JSON(404, data{\n\t\t\t\tCode: 404,\n\t\t\t\tMsg:  \"not found\",\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// index page will show 404 error\n\t\tctx.File(staticFile)\n\t})\n\n}\n"
  },
  {
    "path": "backend/application/app/app.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage app\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/google/uuid\"\n\n\tintelligenceAPI \"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\ttaskStruct \"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\tprojectAPI \"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/project\"\n\tpublishAPI \"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/publish\"\n\ttaskAPI \"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/task\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/database/table\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/variable/project_memory\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\tresourceAPI \"github.com/coze-dev/coze-studio/backend/api/model/resource\"\n\tresourceCommon \"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\tworkflowAPI \"github.com/coze-dev/coze-studio/backend/api/model/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/application/knowledge\"\n\t\"github.com/coze-dev/coze-studio/backend/application/memory\"\n\t\"github.com/coze-dev/coze-studio/backend/application/plugin\"\n\t\"github.com/coze-dev/coze-studio/backend/application/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\tconnectorModel \"github.com/coze-dev/coze-studio/backend/crossdomain/connector/model\"\n\n\tknowledgeModel \"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge/model\"\n\tpluginConsts \"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/app/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/app/repository\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/app/service\"\n\tconnector \"github.com/coze-dev/coze-studio/backend/domain/connector/service\"\n\tvariables \"github.com/coze-dev/coze-studio/backend/domain/memory/variables/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/permission\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/dto\"\n\tsearchEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/service\"\n\tuser \"github.com/coze-dev/coze-studio/backend/domain/user/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ternary\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/safego\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/taskgroup\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nvar APPApplicationSVC = &APPApplicationService{}\n\ntype APPApplicationService struct {\n\tDomainSVC service.AppService\n\tappRepo   repository.AppRepository\n\n\toss             storage.Storage\n\tprojectEventBus search.ProjectEventBus\n\n\tuserSVC user.User\n\n\tconnectorSVC connector.Connector\n\tvariablesSVC variables.Variables\n}\n\nfunc (a *APPApplicationService) DraftProjectCreate(ctx context.Context, req *projectAPI.DraftProjectCreateRequest) (resp *projectAPI.DraftProjectCreateResponse, err error) {\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrAppPermissionCode, errorx.KV(errno.APPMsgKey, \"session is required\"))\n\t}\n\n\tmodelList, err := config.ModelConf().GetOnlineModelListWithLimit(ctx, 1)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(modelList) == 0 {\n\t\treturn nil, errorx.New(errno.ErrAppNoModelInUseCode)\n\t}\n\n\tappID, err := a.DomainSVC.CreateDraftAPP(ctx, &service.CreateDraftAPPRequest{\n\t\tSpaceID: req.SpaceID,\n\t\tOwnerID: *userID,\n\t\tIconURI: req.IconURI,\n\t\tName:    req.Name,\n\t\tDesc:    req.Description,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"CreateDraftAPP failed, spaceID=%d\", req.SpaceID)\n\t}\n\n\terr = a.projectEventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Created,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tStatus:  common.IntelligenceStatus_Using,\n\t\t\tType:    common.IntelligenceType_Project,\n\t\t\tID:      appID,\n\t\t\tSpaceID: &req.SpaceID,\n\t\t\tOwnerID: userID,\n\t\t\tName:    &req.Name,\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"publish project '%d' failed\", appID)\n\t}\n\n\tresp = &projectAPI.DraftProjectCreateResponse{\n\t\tData: &projectAPI.DraftProjectCreateData{\n\t\t\tProjectID: appID,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) GetDraftIntelligenceInfo(ctx context.Context, req *intelligenceAPI.GetDraftIntelligenceInfoRequest) (resp *intelligenceAPI.GetDraftIntelligenceInfoResponse, err error) {\n\tdraftAPP, err := a.ValidateDraftAPPAccess(ctx, req.IntelligenceID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetDraftAPP failed, id=%d\", req.IntelligenceID)\n\t}\n\n\tbasicInfo, published, err := a.getAPPBasicInfo(ctx, draftAPP)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpublishRecord := &intelligenceAPI.IntelligencePublishInfo{\n\t\tHasPublished: published,\n\t\tPublishTime:  strconv.FormatInt(basicInfo.PublishTime, 10),\n\t}\n\n\townerInfo := a.getAPPUserInfo(ctx, draftAPP.OwnerID)\n\n\tresp = &intelligenceAPI.GetDraftIntelligenceInfoResponse{\n\t\tData: &intelligenceAPI.GetDraftIntelligenceInfoData{\n\t\t\tIntelligenceType: common.IntelligenceType_Project,\n\t\t\tBasicInfo:        basicInfo,\n\t\t\tPublishInfo:      publishRecord,\n\t\t\tOwnerInfo:        ownerInfo,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) DraftProjectDelete(ctx context.Context, req *projectAPI.DraftProjectDeleteRequest) (resp *projectAPI.DraftProjectDeleteResponse, err error) {\n\t_, err = a.ValidateDraftAPPAccess(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"ValidateDraftAPPAccess failed, id=%d\", req.ProjectID)\n\t}\n\n\terr = a.DomainSVC.DeleteDraftAPP(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"DeleteDraftAPP failed, id=%d\", req.ProjectID)\n\t}\n\n\terr = a.projectEventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Deleted,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tID:   req.ProjectID,\n\t\t\tType: common.IntelligenceType_Project,\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish project '%d' failed, err=%v\", req.ProjectID, err)\n\t}\n\n\tsafego.Go(ctx, func() {\n\t\t// When an app is deleted, resource deletion is currently handled as a weak dependency, meaning some resources might not be deleted, but they will be inaccessible to the user.\n\t\t// TODO:: Application resources need to check the deletion status of the application\n\t\ta.deleteAPPResources(ctx, req.ProjectID)\n\t})\n\n\tresp = &projectAPI.DraftProjectDeleteResponse{}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) deleteAPPResources(ctx context.Context, appID int64) {\n\terr := plugin.PluginApplicationSVC.DeleteAPPAllPlugins(ctx, appID)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"delete app '%d' plugins failed, err=%v\", appID, err)\n\t}\n\n\terr = memory.DatabaseApplicationSVC.DeleteDatabaseByAppID(ctx, appID)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"delete app '%d' databases failed, err=%v\", appID, err)\n\t}\n\n\terr = a.variablesSVC.DeleteAllVariable(ctx, project_memory.VariableConnector_Project, conv.Int64ToStr(appID))\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"delete app '%d' variables failed, err=%v\", appID, err)\n\t}\n\n\terr = knowledge.KnowledgeSVC.DeleteAppKnowledge(ctx, &knowledge.DeleteAppKnowledgeRequest{AppID: appID})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"delete app '%d' knowledge failed, err=%v\", appID, err)\n\t}\n\n\terr = workflow.SVC.DeleteWorkflowsByAppID(ctx, appID)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"delete app '%d' workflow failed, err=%v\", appID, err)\n\t}\n}\n\nfunc (a *APPApplicationService) DraftProjectUpdate(ctx context.Context, req *projectAPI.DraftProjectUpdateRequest) (resp *projectAPI.DraftProjectUpdateResponse, err error) {\n\t_, err = a.ValidateDraftAPPAccess(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"ValidateDraftAPPAccess failed, id=%d\", req.ProjectID)\n\t}\n\n\terr = a.DomainSVC.UpdateDraftAPP(ctx, &service.UpdateDraftAPPRequest{\n\t\tAPPID:   req.ProjectID,\n\t\tName:    req.Name,\n\t\tDesc:    req.Description,\n\t\tIconURI: req.IconURI,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"UpdateDraftAPP failed, id=%d\", req.ProjectID)\n\t}\n\n\terr = a.projectEventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tID:   req.ProjectID,\n\t\t\tType: common.IntelligenceType_Project,\n\t\t\tName: req.Name,\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"publish project '%d' failed\", req.ProjectID)\n\t}\n\n\tresp = &projectAPI.DraftProjectUpdateResponse{}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) ProjectPublishConnectorList(ctx context.Context, req *publishAPI.PublishConnectorListRequest) (resp *publishAPI.PublishConnectorListResponse, err error) {\n\t_, err = a.ValidateDraftAPPAccess(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"ValidateDraftAPPAccess failed, id=%d\", req.ProjectID)\n\t}\n\n\tconnectorList, err := a.getAPPPublishConnectorList(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlatestPublishRecord, err := a.getLatestPublishRecord(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp = &publishAPI.PublishConnectorListResponse{\n\t\tData: &publishAPI.PublishConnectorListData{\n\t\t\tConnectorList:         connectorList,\n\t\t\tLastPublishInfo:       latestPublishRecord,\n\t\t\tConnectorUnionInfoMap: map[int64]*publishAPI.ConnectorUnionInfo{},\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) getAPPPublishConnectorList(ctx context.Context, appID int64) ([]*publishAPI.PublishConnectorInfo, error) {\n\tres, err := a.DomainSVC.GetPublishConnectorList(ctx, &service.GetPublishConnectorListRequest{})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetPublishConnectorList failed, appID=%d\", appID)\n\t}\n\n\thasWorkflow, err := workflow.SVC.CheckWorkflowsExistByAppID(ctx, appID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"CheckWorkflowsExistByAppID failed, appID=%d\", appID)\n\t}\n\n\tconnectorList := make([]*publishAPI.PublishConnectorInfo, 0, len(res.Connectors))\n\tfor _, c := range res.Connectors {\n\t\tvar info *publishAPI.PublishConnectorInfo\n\n\t\tswitch c.ID {\n\t\tcase consts.APIConnectorID:\n\t\t\tinfo, err = a.packAPIConnectorInfo(ctx, c, hasWorkflow)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\tcase consts.WebSDKConnectorID:\n\t\t\tinfo, err = a.packChatSDKConnectorInfo(ctx, c)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\tdefault:\n\t\t\tlogs.CtxWarnf(ctx, \"unsupported connector id '%v'\", c.ID)\n\t\t\tcontinue\n\t\t}\n\n\t\tconnectorList = append(connectorList, info)\n\t}\n\n\treturn connectorList, nil\n}\n\nfunc (a *APPApplicationService) packAPIConnectorInfo(ctx context.Context, c *connectorModel.Connector, hasWorkflow bool) (*publishAPI.PublishConnectorInfo, error) {\n\tconst noWorkflowText = \"请在应用内至少添加一个工作流\"\n\n\tinfo := &publishAPI.PublishConnectorInfo{\n\t\tID:                      c.ID,\n\t\tBindType:                publishAPI.ConnectorBindType_ApiBind,\n\t\tConnectorClassification: publishAPI.ConnectorClassification_APIOrSDK,\n\t\tBindInfo:                map[string]string{},\n\t\tName:                    c.Name,\n\t\tIconURL:                 c.URL,\n\t\tDescription:             c.Desc,\n\t\tAllowPublish:            true,\n\t}\n\n\tif hasWorkflow {\n\t\treturn info, nil\n\t}\n\n\tinfo.AllowPublish = false\n\tinfo.NotAllowPublishReason = ptr.Of(noWorkflowText)\n\n\treturn info, nil\n}\n\nfunc (a *APPApplicationService) packChatSDKConnectorInfo(ctx context.Context, c *connectorModel.Connector) (*publishAPI.PublishConnectorInfo, error) {\n\n\tinfo := &publishAPI.PublishConnectorInfo{\n\t\tID:                      c.ID,\n\t\tBindType:                publishAPI.ConnectorBindType_WebSDKBind,\n\t\tConnectorClassification: publishAPI.ConnectorClassification_APIOrSDK,\n\t\tBindInfo:                map[string]string{},\n\t\tName:                    c.Name,\n\t\tIconURL:                 c.URL,\n\t\tDescription:             c.Desc,\n\t\tAllowPublish:            true,\n\t}\n\n\treturn info, nil\n}\n\nfunc (a *APPApplicationService) getLatestPublishRecord(ctx context.Context, appID int64) (info *publishAPI.LastPublishInfo, err error) {\n\trecord, exist, err := a.DomainSVC.GetAPPPublishRecord(ctx, &service.GetAPPPublishRecordRequest{\n\t\tAPPID:  appID,\n\t\tOldest: false,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetAPPPublishRecord failed, appID=%d\", appID)\n\t}\n\tif !exist {\n\t\treturn &publishAPI.LastPublishInfo{\n\t\t\tVersionNumber:          \"\",\n\t\t\tConnectorIds:           []int64{},\n\t\t\tConnectorPublishConfig: map[int64]*publishAPI.ConnectorPublishConfig{},\n\t\t}, nil\n\t}\n\n\tlatestRecord := &publishAPI.LastPublishInfo{\n\t\tVersionNumber:          record.APP.GetVersion(),\n\t\tConnectorIds:           []int64{},\n\t\tConnectorPublishConfig: map[int64]*publishAPI.ConnectorPublishConfig{},\n\t}\n\n\tfor _, r := range record.ConnectorPublishRecords {\n\t\tlatestRecord.ConnectorIds = append(latestRecord.ConnectorIds, r.ConnectorID)\n\t}\n\n\treturn latestRecord, nil\n}\n\nfunc checkUserSpace(ctx context.Context, uid int64, spaceID int64) error {\n\t// Use permission service to check workspace access\n\tresult, err := permission.DefaultSVC().CheckAuthz(ctx, &permission.CheckAuthzData{\n\t\tResourceIdentifier: []*permission.ResourceIdentifier{\n\t\t\t{\n\t\t\t\tType:   permission.ResourceTypeWorkspace,\n\t\t\t\tID:     []int64{spaceID},\n\t\t\t\tAction: permission.ActionRead,\n\t\t\t},\n\t\t},\n\t\tOperatorID: uid,\n\t})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to check workspace permission: %w\", err)\n\t}\n\n\tif result.Decision != permission.Allow {\n\t\treturn fmt.Errorf(\"user %d does not have access to space %d\", uid, spaceID)\n\t}\n\n\treturn nil\n}\n\nfunc (a *APPApplicationService) ReportUserBehavior(ctx context.Context, req *playground.ReportUserBehaviorRequest) (resp *playground.ReportUserBehaviorResponse, err error) {\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\n\terr = checkUserSpace(ctx, uid, req.GetSpaceID())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = a.projectEventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tID:             req.ResourceID,\n\t\t\tSpaceID:        req.SpaceID,\n\t\t\tType:           common.IntelligenceType_Project,\n\t\t\tIsRecentlyOpen: ptr.Of(1),\n\t\t\tRecentlyOpenMS: ptr.Of(time.Now().UnixMilli()),\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"publish project '%d' event failed err=%s\", req.ResourceID, err)\n\t}\n\n\treturn &playground.ReportUserBehaviorResponse{}, nil\n}\n\nfunc (a *APPApplicationService) CheckProjectVersionNumber(ctx context.Context, req *publishAPI.CheckProjectVersionNumberRequest) (resp *publishAPI.CheckProjectVersionNumberResponse, err error) {\n\t_, err = a.ValidateDraftAPPAccess(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"ValidateDraftAPPAccess failed, id=%d\", req.ProjectID)\n\t}\n\n\texist, err := a.appRepo.CheckAPPVersionExist(ctx, req.ProjectID, req.VersionNumber)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"CheckAPPVersionExist failed, appID=%d, version=%s\", req.ProjectID, req.VersionNumber)\n\t}\n\n\tresp = &publishAPI.CheckProjectVersionNumberResponse{\n\t\tData: &publishAPI.CheckProjectVersionNumberData{\n\t\t\tIsDuplicate: exist,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) PublishAPP(ctx context.Context, req *publishAPI.PublishProjectRequest) (resp *publishAPI.PublishProjectResponse, err error) {\n\t_, err = a.ValidateDraftAPPAccess(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"ValidateDraftAPPAccess failed, id=%d\", req.ProjectID)\n\t}\n\n\tconnectorIDs := make([]int64, 0, len(req.Connectors))\n\tfor connectorID := range req.Connectors {\n\t\tconnectorIDs = append(connectorIDs, connectorID)\n\t}\n\tconnectorPublishConfigs, err := a.getConnectorPublishConfigs(ctx, connectorIDs, req.ConnectorPublishConfig)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tres, err := a.DomainSVC.PublishAPP(ctx, &service.PublishAPPRequest{\n\t\tAPPID:                   req.ProjectID,\n\t\tVersion:                 req.VersionNumber,\n\t\tVersionDesc:             req.GetDescription(),\n\t\tConnectorPublishConfigs: connectorPublishConfigs,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"PublishAPP failed, id=%d\", req.ProjectID)\n\t}\n\n\tresp = &publishAPI.PublishProjectResponse{\n\t\tData: &publishAPI.PublishProjectData{\n\t\t\tPublishRecordID: res.PublishRecordID,\n\t\t},\n\t}\n\n\tif !res.Success {\n\t\treturn resp, nil\n\t}\n\n\terr = a.projectEventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tID:            req.ProjectID,\n\t\t\tType:          common.IntelligenceType_Project,\n\t\t\tHasPublished:  ptr.Of(1),\n\t\t\tPublishTimeMS: ptr.Of(time.Now().UnixMilli()),\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish project '%d' failed,  err=%v\", req.ProjectID, err)\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) getConnectorPublishConfigs(ctx context.Context, connectorIDs []int64, configs map[int64]*publishAPI.ConnectorPublishConfig) (map[int64]entity.PublishConfig, error) {\n\tpublishConfigs := make(map[int64]entity.PublishConfig, len(configs))\n\tfor _, connectorID := range connectorIDs {\n\t\tpublishConfigs[connectorID] = entity.PublishConfig{}\n\n\t\tconfig := configs[connectorID]\n\t\tif config == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tselectedWorkflows := make([]*entity.SelectedWorkflow, 0, len(config.SelectedWorkflows))\n\t\tfor _, w := range config.SelectedWorkflows {\n\t\t\tif w.WorkflowID == 0 {\n\t\t\t\treturn nil, errorx.New(errno.ErrAppInvalidParamCode, errorx.KV(errno.APPMsgKey, \"invalid workflow id\"))\n\t\t\t}\n\t\t\tselectedWorkflows = append(selectedWorkflows, &entity.SelectedWorkflow{\n\t\t\t\tWorkflowID:   w.WorkflowID,\n\t\t\t\tWorkflowName: w.WorkflowName,\n\t\t\t})\n\t\t}\n\n\t\tpublishConfigs[connectorID] = entity.PublishConfig{\n\t\t\tSelectedWorkflows: selectedWorkflows,\n\t\t}\n\t}\n\n\treturn publishConfigs, nil\n}\n\nfunc (a *APPApplicationService) GetPublishRecordList(ctx context.Context, req *publishAPI.GetPublishRecordListRequest) (resp *publishAPI.GetPublishRecordListResponse, err error) {\n\t_, err = a.ValidateDraftAPPAccess(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"ValidateDraftAPPAccess failed, id=%d\", req.ProjectID)\n\t}\n\n\tconnectorInfo, err := a.connectorSVC.GetByIDs(ctx, entity.ConnectorIDWhiteList)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetByIDs failed, ids=%v\", entity.ConnectorIDWhiteList)\n\t}\n\n\trecords, err := a.DomainSVC.GetAPPAllPublishRecords(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetAPPAllPublishRecords failed, appID=%d\", req.ProjectID)\n\t}\n\n\tif len(records) == 0 {\n\t\treturn &publishAPI.GetPublishRecordListResponse{\n\t\t\tData: []*publishAPI.PublishRecordDetail{},\n\t\t}, nil\n\t}\n\n\tdata := make([]*publishAPI.PublishRecordDetail, 0, len(records))\n\tfor _, r := range records {\n\t\tconnectorPublishRecords := make([]*publishAPI.ConnectorPublishResult, 0, len(r.ConnectorPublishRecords))\n\t\tfor _, c := range r.ConnectorPublishRecords {\n\t\t\tinfo, exist := connectorInfo[c.ConnectorID]\n\t\t\tif !exist {\n\t\t\t\tlogs.CtxErrorf(ctx, \"connector '%d' not exist\", c.ConnectorID)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconnectorPublishRecords = append(connectorPublishRecords, &publishAPI.ConnectorPublishResult{\n\t\t\t\tConnectorID:            c.ConnectorID,\n\t\t\t\tConnectorName:          info.Name,\n\t\t\t\tConnectorIconURL:       info.URL,\n\t\t\t\tConnectorPublishStatus: publishAPI.ConnectorPublishStatus(c.PublishStatus),\n\t\t\t\tConnectorPublishConfig: c.PublishConfig.ToVO(),\n\t\t\t})\n\t\t}\n\n\t\tdata = append(data, &publishAPI.PublishRecordDetail{\n\t\t\tPublishRecordID:        r.APP.GetPublishRecordID(),\n\t\t\tVersionNumber:          r.APP.GetVersion(),\n\t\t\tConnectorPublishResult: connectorPublishRecords,\n\t\t\tPublishStatus:          publishAPI.PublishRecordStatus(r.APP.GetPublishStatus()),\n\t\t\tPublishStatusDetail:    r.APP.PublishExtraInfo.ToVO(),\n\t\t})\n\t}\n\n\tresp = &publishAPI.GetPublishRecordListResponse{\n\t\tData: data,\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) GetPublishRecordDetail(ctx context.Context, req *publishAPI.GetPublishRecordDetailRequest) (resp *publishAPI.GetPublishRecordDetailResponse, err error) {\n\t_, err = a.ValidateDraftAPPAccess(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"ValidateDraftAPPAccess failed, id=%d\", req.ProjectID)\n\t}\n\n\tconnectorInfo, err := a.connectorSVC.GetByIDs(ctx, entity.ConnectorIDWhiteList)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetByIDs failed, ids=%v\", entity.ConnectorIDWhiteList)\n\t}\n\n\trecord, exist, err := a.DomainSVC.GetAPPPublishRecord(ctx, &service.GetAPPPublishRecordRequest{\n\t\tAPPID:    req.ProjectID,\n\t\tRecordID: req.PublishRecordID,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetAPPPublishRecord failed, appID=%d, recordID=%d\", req.ProjectID, req.PublishRecordID)\n\t}\n\tif !exist {\n\t\treturn &publishAPI.GetPublishRecordDetailResponse{\n\t\t\tData: nil,\n\t\t}, nil\n\t}\n\n\tconnectorPublishRecords := make([]*publishAPI.ConnectorPublishResult, 0, len(record.ConnectorPublishRecords))\n\tfor _, c := range record.ConnectorPublishRecords {\n\t\tinfo, exist := connectorInfo[c.ConnectorID]\n\t\tif !exist {\n\t\t\tlogs.CtxErrorf(ctx, \"connector '%d' not exist\", c.ConnectorID)\n\t\t\tcontinue\n\t\t}\n\n\t\tconnectorPublishRecords = append(connectorPublishRecords, &publishAPI.ConnectorPublishResult{\n\t\t\tConnectorID:            c.ConnectorID,\n\t\t\tConnectorName:          info.Name,\n\t\t\tConnectorIconURL:       info.URL,\n\t\t\tConnectorPublishStatus: publishAPI.ConnectorPublishStatus(c.PublishStatus),\n\t\t\tConnectorPublishConfig: c.PublishConfig.ToVO(),\n\t\t})\n\t}\n\n\tdetail := &publishAPI.PublishRecordDetail{\n\t\tPublishRecordID:        record.APP.GetPublishRecordID(),\n\t\tVersionNumber:          record.APP.GetVersion(),\n\t\tConnectorPublishResult: connectorPublishRecords,\n\t\tPublishStatus:          publishAPI.PublishRecordStatus(record.APP.GetPublishStatus()),\n\t\tPublishStatusDetail:    record.APP.PublishExtraInfo.ToVO(),\n\t}\n\n\tresp = &publishAPI.GetPublishRecordDetailResponse{\n\t\tData: detail,\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) ResourceCopyDispatch(ctx context.Context, req *resourceAPI.ResourceCopyDispatchRequest) (resp *resourceAPI.ResourceCopyDispatchResponse, err error) {\n\tapp, err := a.ValidateDraftAPPAccess(ctx, req.GetProjectID())\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"ValidateDraftAPPAccess failed, id=%d\", req.ProjectID)\n\t}\n\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrAppPermissionCode, errorx.KV(errno.APPMsgKey, \"session is required\"))\n\t}\n\n\ttaskID, err := a.initTask(ctx, req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar toAppID *int64\n\tif req.Scene != resourceCommon.ResourceCopyScene_CopyResourceToLibrary {\n\t\ttoAppID = req.ProjectID\n\t}\n\n\tmetaInfo := &copyMetaInfo{\n\t\tscene:      req.Scene,\n\t\tuserID:     *userID,\n\t\tappSpaceID: app.SpaceID,\n\t\tcopyTaskID: taskID,\n\t\tfromAppID:  app.ID,\n\t\ttoAppID:    toAppID,\n\t}\n\n\tresType, err := toResourceType(req.ResType)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tres := &entity.Resource{\n\t\tResID:   req.ResID,\n\t\tResType: resType,\n\t\tResName: req.GetResName(),\n\t}\n\n\tvar (\n\t\thandleErr error\n\t\tnewResID  int64\n\t)\n\tswitch req.ResType {\n\tcase resourceCommon.ResType_Plugin:\n\t\tnewResID, handleErr = pluginCopyDispatchHandler(ctx, metaInfo, res)\n\tcase resourceCommon.ResType_Database:\n\t\tnewResID, handleErr = databaseCopyDispatchHandler(ctx, metaInfo, res)\n\tcase resourceCommon.ResType_Knowledge:\n\t\tnewResID, handleErr = knowledgeCopyDispatchHandler(ctx, metaInfo, res)\n\tcase resourceCommon.ResType_Workflow:\n\t\tnewResID, handleErr = workflowCopyDispatchHandler(ctx, metaInfo, res)\n\tdefault:\n\t\treturn nil, errorx.New(errno.ErrAppInvalidParamCode, errorx.KVf(errno.APPMsgKey,\n\t\t\t\"unsupported resource type '%s'\", req.ResType))\n\t}\n\n\tif handleErr != nil {\n\t\tlogs.CtxErrorf(ctx, \"copy resource failed, taskID=%s, err=%v\", taskID, handleErr)\n\t}\n\n\tfailedReason, err := a.handleCopyResult(ctx, taskID, newResID, req, handleErr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp = &resourceAPI.ResourceCopyDispatchResponse{\n\t\tTaskID:        ptr.Of(taskID),\n\t\tFailedReasons: []*resourceCommon.ResourceCopyFailedReason{},\n\t}\n\n\tif failedReason != \"\" {\n\t\tresp.FailedReasons = append(resp.FailedReasons, &resourceCommon.ResourceCopyFailedReason{\n\t\t\tResID:   req.ResID,\n\t\t\tResType: req.ResType,\n\t\t\tResName: req.GetResName(),\n\t\t\tReason:  \"\\n\" + failedReason,\n\t\t})\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) initTask(ctx context.Context, req *resourceAPI.ResourceCopyDispatchRequest) (taskID string, err error) {\n\tresType, err := toResourceType(req.ResType)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\ttaskID, err = a.appRepo.InitResourceCopyTask(ctx, &entity.ResourceCopyResult{\n\t\tResID:      req.ResID,\n\t\tResType:    resType,\n\t\tResName:    req.GetResName(),\n\t\tCopyScene:  req.Scene,\n\t\tCopyStatus: entity.ResourceCopyStatusOfProcessing,\n\t})\n\tif err != nil {\n\t\treturn \"\", errorx.Wrapf(err, \"InitResourceCopyTask failed, resID=%d, resType=%s\", req.ResID, req.ResType)\n\t}\n\n\treturn taskID, nil\n}\n\nfunc (a *APPApplicationService) handleCopyResult(ctx context.Context, taskID string, newResID int64,\n\treq *resourceAPI.ResourceCopyDispatchRequest, copyErr error,\n) (failedReason string, err error) {\n\tresType, err := toResourceType(req.ResType)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tresult := &entity.ResourceCopyResult{\n\t\tResID:     req.ResID,\n\t\tResType:   resType,\n\t\tResName:   req.GetResName(),\n\t\tCopyScene: req.Scene,\n\t}\n\n\tif copyErr == nil {\n\t\tresult.ResID = newResID\n\t\tresult.CopyStatus = entity.ResourceCopyStatusOfSuccess\n\n\t\terr = a.appRepo.SaveResourceCopyTaskResult(ctx, taskID, result)\n\t\tif err != nil {\n\t\t\treturn \"\", errorx.Wrapf(err, \"SaveResourceCopyTaskResult failed, taskID=%s\", taskID)\n\t\t}\n\n\t\treturn \"\", nil\n\t}\n\n\tvar customErr errorx.StatusError\n\tif errors.As(copyErr, &customErr) {\n\t\tresult.FailedReason = customErr.Msg()\n\t} else {\n\t\tresult.FailedReason = \"internal server error\"\n\t}\n\n\tresult.CopyStatus = entity.ResourceCopyStatusOfFailed\n\terr = a.appRepo.SaveResourceCopyTaskResult(ctx, taskID, result)\n\tif err != nil {\n\t\treturn \"\", errorx.Wrapf(err, \"SaveResourceCopyTaskResult failed, taskID=%s\", taskID)\n\t}\n\n\treturn result.FailedReason, nil\n}\n\nfunc pluginCopyDispatchHandler(ctx context.Context, metaInfo *copyMetaInfo, res *entity.Resource) (newPluginID int64, err error) {\n\tswitch metaInfo.scene {\n\tcase resourceCommon.ResourceCopyScene_CopyProjectResource,\n\t\tresourceCommon.ResourceCopyScene_CopyResourceToLibrary,\n\t\tresourceCommon.ResourceCopyScene_CopyResourceFromLibrary:\n\t\tresp, err := copyPlugin(ctx, metaInfo, res)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\treturn resp.Plugin.ID, nil\n\n\tcase resourceCommon.ResourceCopyScene_MoveResourceToLibrary:\n\t\terr = moveAPPPlugin(ctx, metaInfo, res)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\treturn res.ResID, nil\n\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unsupported copy scene '%s'\", metaInfo.scene)\n\t}\n}\n\nfunc copyPlugin(ctx context.Context, metaInfo *copyMetaInfo, res *entity.Resource) (resp *dto.CopyPluginResponse, err error) {\n\tvar copyScene pluginConsts.CopyScene\n\tswitch metaInfo.scene {\n\tcase resourceCommon.ResourceCopyScene_CopyProjectResource:\n\t\tcopyScene = pluginConsts.CopySceneOfDuplicate\n\tcase resourceCommon.ResourceCopyScene_CopyResourceToLibrary:\n\t\tcopyScene = pluginConsts.CopySceneOfToLibrary\n\tcase resourceCommon.ResourceCopyScene_CopyResourceFromLibrary:\n\t\tcopyScene = pluginConsts.CopySceneOfToAPP\n\tcase resourceCommon.ResourceCopyScene_CopyProject:\n\t\tcopyScene = pluginConsts.CopySceneOfAPPDuplicate\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unsupported copy scene '%s'\", metaInfo.scene)\n\t}\n\n\tresp, err = plugin.PluginApplicationSVC.CopyPlugin(ctx, &dto.CopyPluginRequest{\n\t\tCopyScene:   copyScene,\n\t\tPluginID:    res.ResID,\n\t\tUserID:      metaInfo.userID,\n\t\tTargetAPPID: metaInfo.toAppID,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"CopyPlugin failed, pluginID=%d, scene=%s\", res.ResID, metaInfo.scene)\n\t}\n\n\treturn resp, nil\n}\n\nfunc moveAPPPlugin(ctx context.Context, _ *copyMetaInfo, res *entity.Resource) (err error) {\n\t_, err = plugin.PluginApplicationSVC.MoveAPPPluginToLibrary(ctx, res.ResID)\n\tif err != nil {\n\t\treturn errorx.Wrapf(err, \"MoveAPPPluginToLibrary failed, pluginID=%d\", res.ResID)\n\t}\n\n\treturn nil\n}\n\nfunc databaseCopyDispatchHandler(ctx context.Context, metaInfo *copyMetaInfo, res *entity.Resource) (newDatabaseID int64, err error) {\n\tswitch metaInfo.scene {\n\tcase resourceCommon.ResourceCopyScene_CopyProjectResource,\n\t\tresourceCommon.ResourceCopyScene_CopyResourceToLibrary,\n\t\tresourceCommon.ResourceCopyScene_CopyResourceFromLibrary:\n\t\treturn copyDatabase(ctx, metaInfo, res)\n\n\tcase resourceCommon.ResourceCopyScene_MoveResourceToLibrary:\n\t\terr = moveAPPDatabase(ctx, metaInfo, res)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\treturn res.ResID, nil\n\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unsupported copy scene '%s'\", metaInfo.scene)\n\t}\n}\n\nfunc copyDatabase(ctx context.Context, metaInfo *copyMetaInfo, res *entity.Resource) (newDatabaseID int64, err error) {\n\tvar suffix *string\n\tif metaInfo.scene == resourceCommon.ResourceCopyScene_CopyProject ||\n\t\tmetaInfo.scene == resourceCommon.ResourceCopyScene_CopyResourceFromLibrary {\n\t\tsuffix = ptr.Of(\"\")\n\t}\n\n\tresp, err := memory.DatabaseApplicationSVC.CopyDatabase(ctx, &memory.CopyDatabaseRequest{\n\t\tDatabaseIDs: []int64{res.ResID},\n\t\tTableType:   table.TableType_OnlineTable,\n\t\tCreatorID:   metaInfo.userID,\n\t\tIsCopyData:  true,\n\t\tTargetAppID: ptr.FromOrDefault(metaInfo.toAppID, 0),\n\t\tSuffix:      suffix,\n\t})\n\tif err != nil {\n\t\treturn 0, errorx.Wrapf(err, \"CopyDatabase failed, databaseID=%d, scene=%s\", res.ResID, metaInfo.scene)\n\t}\n\n\tif _, ok := resp.Databases[res.ResID]; !ok {\n\t\treturn 0, fmt.Errorf(\"copy database failed, databaseID=%d\", res.ResID)\n\t}\n\n\treturn resp.Databases[res.ResID].ID, nil\n}\n\nfunc moveAPPDatabase(ctx context.Context, _ *copyMetaInfo, res *entity.Resource) (err error) {\n\t_, err = memory.DatabaseApplicationSVC.MoveDatabaseToLibrary(ctx, &memory.MoveDatabaseToLibraryRequest{\n\t\tDatabaseIDs: []int64{res.ResID},\n\t\tTableType:   table.TableType_OnlineTable,\n\t})\n\tif err != nil {\n\t\treturn errorx.Wrapf(err, \"MoveDatabaseToLibrary failed, databaseID=%d\", res.ResID)\n\t}\n\n\treturn nil\n}\n\nfunc knowledgeCopyDispatchHandler(ctx context.Context, metaInfo *copyMetaInfo, res *entity.Resource) (newKnowledgeID int64, err error) {\n\tswitch metaInfo.scene {\n\tcase resourceCommon.ResourceCopyScene_CopyProjectResource,\n\t\tresourceCommon.ResourceCopyScene_CopyResourceToLibrary,\n\t\tresourceCommon.ResourceCopyScene_CopyResourceFromLibrary:\n\t\treturn copyKnowledge(ctx, metaInfo, res)\n\n\tcase resourceCommon.ResourceCopyScene_MoveResourceToLibrary:\n\t\terr = moveAPPKnowledge(ctx, metaInfo, res)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\treturn res.ResID, nil\n\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unsupported copy scene '%s'\", metaInfo.scene)\n\t}\n}\n\nfunc copyKnowledge(ctx context.Context, metaInfo *copyMetaInfo, res *entity.Resource) (newKnowledgeID int64, err error) {\n\tcopyReq := &knowledgeModel.CopyKnowledgeRequest{\n\t\tKnowledgeID:  res.ResID,\n\t\tTargetUserID: metaInfo.userID,\n\t\tTaskUniqKey:  metaInfo.copyTaskID,\n\t}\n\n\tswitch metaInfo.scene {\n\tcase resourceCommon.ResourceCopyScene_CopyProjectResource:\n\t\tcopyReq.TargetAppID = *metaInfo.toAppID\n\t\tcopyReq.TargetSpaceID = metaInfo.appSpaceID\n\tcase resourceCommon.ResourceCopyScene_CopyResourceToLibrary:\n\t\tcopyReq.TargetSpaceID = metaInfo.appSpaceID\n\tcase resourceCommon.ResourceCopyScene_CopyResourceFromLibrary:\n\t\tcopyReq.TargetAppID = *metaInfo.toAppID\n\t\tcopyReq.TargetSpaceID = metaInfo.appSpaceID\n\tcase resourceCommon.ResourceCopyScene_CopyProject:\n\t\tcopyReq.TargetAppID = *metaInfo.toAppID\n\t\tcopyReq.TargetSpaceID = metaInfo.appSpaceID\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unsupported copy scene '%s'\", metaInfo.scene)\n\t}\n\n\tresp, err := knowledge.KnowledgeSVC.CopyKnowledge(ctx, copyReq)\n\tif err != nil {\n\t\treturn 0, errorx.Wrapf(err, \"CopyKnowledge failed, knowledgeID=%d, scene=%s\", res.ResID, metaInfo.scene)\n\t}\n\n\tif resp.CopyStatus != knowledgeModel.CopyStatus_Successful {\n\t\treturn 0, fmt.Errorf(\"copy knowledge failed, knowledgeID=%d, scene=%s\", res.ResID, metaInfo.scene)\n\t}\n\n\treturn resp.TargetKnowledgeID, nil\n}\n\nfunc moveAPPKnowledge(ctx context.Context, _ *copyMetaInfo, res *entity.Resource) (err error) {\n\terr = knowledge.KnowledgeSVC.MoveKnowledgeToLibrary(ctx, &knowledgeModel.MoveKnowledgeToLibraryRequest{\n\t\tKnowledgeID: res.ResID,\n\t})\n\tif err != nil {\n\t\treturn errorx.Wrapf(err, \"MoveKnowledgeToLibrary failed, knowledgeID=%d\", res.ResID)\n\t}\n\n\treturn nil\n}\n\nfunc workflowCopyDispatchHandler(ctx context.Context, metaInfo *copyMetaInfo, res *entity.Resource) (newWorkflowID int64, err error) {\n\tswitch metaInfo.scene {\n\tcase resourceCommon.ResourceCopyScene_CopyProjectResource,\n\t\tresourceCommon.ResourceCopyScene_CopyResourceToLibrary,\n\t\tresourceCommon.ResourceCopyScene_CopyResourceFromLibrary:\n\t\treturn copyWorkflow(ctx, metaInfo, res)\n\n\tcase resourceCommon.ResourceCopyScene_MoveResourceToLibrary:\n\t\tnewWfId, err := moveAPPWorkflow(ctx, metaInfo, res)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\treturn newWfId, nil\n\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unsupported copy scene '%s'\", metaInfo.scene)\n\t}\n}\n\nfunc copyWorkflow(ctx context.Context, metaInfo *copyMetaInfo, res *entity.Resource) (newWorkflowID int64, err error) {\n\tswitch metaInfo.scene {\n\tcase resourceCommon.ResourceCopyScene_CopyProjectResource:\n\t\tresp, err := workflow.SVC.CopyWorkflow(ctx, &workflowAPI.CopyWorkflowRequest{\n\t\t\tWorkflowID: strconv.FormatInt(res.ResID, 10),\n\t\t\tSpaceID:    strconv.FormatInt(metaInfo.appSpaceID, 10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn 0, errorx.Wrapf(err, \"CopyWorkflow failed, workflowID=%d\", res.ResID)\n\t\t}\n\n\t\tnewWorkflowID, _ = strconv.ParseInt(resp.Data.WorkflowID, 10, 64)\n\n\t\treturn newWorkflowID, nil\n\n\tcase resourceCommon.ResourceCopyScene_CopyResourceToLibrary:\n\t\tnewWorkflowID, issues, err := workflow.SVC.CopyWorkflowFromAppToLibrary(ctx, res.ResID, metaInfo.appSpaceID, metaInfo.fromAppID)\n\t\tif err != nil {\n\t\t\treturn 0, errorx.Wrapf(err, \"CopyWorkflowFromAppToLibrary failed, workflowID=%d\", res.ResID)\n\t\t}\n\t\tif len(issues) > 0 {\n\t\t\treturn 0, errorx.New(errno.ErrAppInvalidParamCode, errorx.KVf(errno.APPMsgKey, \"workflow validates failed\"))\n\t\t}\n\n\t\treturn newWorkflowID, nil\n\n\tcase resourceCommon.ResourceCopyScene_CopyResourceFromLibrary:\n\t\tnewWorkflowID, err = workflow.SVC.CopyWorkflowFromLibraryToApp(ctx, res.ResID, *metaInfo.toAppID)\n\t\tif err != nil {\n\t\t\treturn 0, errorx.Wrapf(err, \"CopyWorkflowFromLibraryToApp failed, workflowID=%d\", res.ResID)\n\t\t}\n\n\t\treturn newWorkflowID, nil\n\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unsupported copy scene '%s'\", metaInfo.scene)\n\t}\n}\n\nfunc moveAPPWorkflow(ctx context.Context, metaInfo *copyMetaInfo, res *entity.Resource) (wid int64, err error) {\n\tnewWfId, issues, err := workflow.SVC.MoveWorkflowFromAppToLibrary(ctx, res.ResID, metaInfo.appSpaceID, metaInfo.fromAppID)\n\tif err != nil {\n\t\treturn 0, errorx.Wrapf(err, \"MoveWorkflowFromAppToLibrary failed, workflowID=%d\", res.ResID)\n\t}\n\tif len(issues) > 0 {\n\t\treturn 0, errorx.New(errno.ErrAppInvalidParamCode, errorx.KVf(errno.APPMsgKey, \"workflow validate failed\"))\n\t}\n\n\treturn newWfId, nil\n}\n\nfunc (a *APPApplicationService) ResourceCopyDetail(ctx context.Context, req *resourceAPI.ResourceCopyDetailRequest) (resp *resourceAPI.ResourceCopyDetailResponse, err error) {\n\tresult, exist, err := a.appRepo.GetResourceCopyTaskResult(ctx, req.TaskID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetResourceCopyTaskResult failed, taskID=%s\", req.TaskID)\n\t}\n\n\tdetail := &resourceCommon.ResourceCopyTaskDetail{\n\t\tTaskID: req.TaskID,\n\t\tStatus: resourceCommon.TaskStatus_Processing,\n\t\tScene:  result.CopyScene,\n\t}\n\n\tresp = &resourceAPI.ResourceCopyDetailResponse{\n\t\tTaskDetail: detail,\n\t}\n\n\tif !exist {\n\t\treturn resp, nil // Default return processing\n\t}\n\n\tdetail.Status = resourceCommon.TaskStatus(result.CopyStatus)\n\tdetail.ResID = result.ResID\n\tdetail.ResType, err = toThriftResourceType(result.ResType)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) DraftProjectInnerTaskList(ctx context.Context, req *taskAPI.DraftProjectInnerTaskListRequest) (resp *taskAPI.DraftProjectInnerTaskListResponse, err error) {\n\tresp = &taskAPI.DraftProjectInnerTaskListResponse{\n\t\tData: &taskAPI.DraftProjectInnerTaskListData{\n\t\t\tTaskList: []*taskStruct.ProjectInnerTaskInfo{},\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) DraftProjectCopy(ctx context.Context, req *projectAPI.DraftProjectCopyRequest) (resp *projectAPI.DraftProjectCopyResponse, err error) {\n\tdraftAPP, err := a.ValidateDraftAPPAccess(ctx, req.ProjectID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateDraftProjectCopyRequest failed\")\n\t}\n\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrAppPermissionCode, errorx.KV(errno.APPMsgKey, \"session is required\"))\n\t}\n\n\tnewAPPID, err := a.duplicateDraftAPP(ctx, *userID, req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = a.projectEventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Created,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tStatus:  common.IntelligenceStatus_Using,\n\t\t\tType:    common.IntelligenceType_Project,\n\t\t\tID:      newAPPID,\n\t\t\tSpaceID: &req.ToSpaceID,\n\t\t\tOwnerID: userID,\n\t\t\tName:    &req.Name,\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdraftAPP.ID = newAPPID\n\tdraftAPP.Name = &req.Name\n\tdraftAPP.Desc = &req.Description\n\tdraftAPP.IconURI = &req.IconURI\n\n\tuserInfo := a.getAPPUserInfo(ctx, *userID)\n\tbasicInfo, _, err := a.getAPPBasicInfo(ctx, draftAPP)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp = &projectAPI.DraftProjectCopyResponse{\n\t\tData: &projectAPI.DraftProjectCopyResponseData{\n\t\t\tBasicInfo: basicInfo,\n\t\t\tUserInfo:  userInfo,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *APPApplicationService) GetOnlineAppData(ctx context.Context, req *projectAPI.GetOnlineAppDataRequest) (resp *projectAPI.GetOnlineAppDataResponse, err error) {\n\tuid := ctxutil.GetApiAuthFromCtx(ctx).UserID\n\trecord, exist, err := a.DomainSVC.GetAPPPublishRecord(ctx, &service.GetAPPPublishRecordRequest{\n\t\tAPPID:  req.GetAppID(),\n\t\tOldest: false,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !exist {\n\t\treturn nil, errorx.Wrapf(err, \"GetOnlineAppDataRequest failed, app id=%d, connector id=%v\", req.GetAppID(), req.GetConnectorID())\n\t}\n\n\tif record.APP.OwnerID != uid {\n\t\treturn nil, errorx.New(errno.ErrAppPermissionCode, errorx.KV(errno.APPMsgKey, fmt.Sprintf(\"user %d does not have access to app %d\", uid, req.GetAppID())))\n\n\t}\n\n\tvalid := false\n\tfor _, v := range record.ConnectorPublishRecords {\n\t\tif v.ConnectorID == req.GetConnectorID() {\n\t\t\tvalid = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !valid {\n\t\treturn nil, errorx.Wrapf(err, \"GetOnlineAppDataRequest failed, invalid connector id, app id=%d, connector id=%v\", req.GetAppID(), req.GetConnectorID())\n\t}\n\n\tapp := record.APP\n\n\ticonURL, err := a.oss.GetObjectUrl(ctx, app.GetIconURI())\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"get icon url failed with '%s', err=%v\", app.GetIconURI(), err)\n\t}\n\n\tvarMeta, err := a.variablesSVC.GetProjectVariablesMeta(ctx, strconv.FormatInt(app.ID, 10), \"\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvars := make([]*common.Variable, 0, len(varMeta.Variables))\n\tfor _, v := range varMeta.Variables {\n\t\tvars = append(vars, &common.Variable{\n\t\t\tKeyword:      v.Keyword,\n\t\t\tDefaultValue: v.DefaultValue,\n\t\t\tDescription:  v.Description,\n\t\t\tEnable:       v.Enable,\n\t\t\tVariableType: ternary.IFElse(v.VariableType == project_memory.VariableType_KVVariable, common.VariableTypeKVVariable, common.VariableTypeListVariable),\n\t\t\tChannel: func() common.VariableChannel {\n\t\t\t\tswitch v.Channel {\n\t\t\t\tcase project_memory.VariableChannel_APP:\n\t\t\t\t\treturn common.VariableChannelAPP\n\t\t\t\tcase project_memory.VariableChannel_System:\n\t\t\t\t\treturn common.VariableChannelSystem\n\t\t\t\tcase project_memory.VariableChannel_Custom:\n\t\t\t\t\treturn common.VariableChannelCustom\n\t\t\t\tcase project_memory.VariableChannel_Feishu:\n\t\t\t\t\treturn common.VariableChannelFeishu\n\t\t\t\tcase project_memory.VariableChannel_Location:\n\t\t\t\t\treturn common.VariableChannelLocation\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"\"\n\t\t\t\t}\n\n\t\t\t}(),\n\t\t})\n\t}\n\n\tresponse := &projectAPI.GetOnlineAppDataResponse{\n\t\tData: &projectAPI.AppData{\n\t\t\tAppID:       strconv.FormatInt(record.APP.ID, 10),\n\t\t\tName:        *app.Name,\n\t\t\tDescription: *app.Desc,\n\t\t\tVersion:     *app.Version,\n\t\t\tIconURL:     iconURL,\n\t\t\tVariables:   vars,\n\t\t},\n\t}\n\n\treturn response, nil\n\n}\n\nfunc (a *APPApplicationService) duplicateDraftAPP(ctx context.Context, userID int64, req *projectAPI.DraftProjectCopyRequest) (newAppID int64, err error) {\n\tnewAppID, err = a.DomainSVC.CreateDraftAPP(ctx, &service.CreateDraftAPPRequest{\n\t\tSpaceID: req.ToSpaceID,\n\t\tOwnerID: userID,\n\t\tName:    req.Name,\n\t\tDesc:    req.Description,\n\t\tIconURI: req.IconURI,\n\t})\n\tif err != nil {\n\t\treturn 0, errorx.Wrapf(err, \"CreateDraftAPP failed, spaceID=%d\", req.ToSpaceID)\n\t}\n\n\terr = a.duplicateDraftAPPResources(ctx, userID, newAppID, req)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn newAppID, nil\n}\n\nfunc (a *APPApplicationService) duplicateDraftAPPResources(ctx context.Context, userID, newAppID int64, req *projectAPI.DraftProjectCopyRequest) (err error) {\n\terr = a.duplicateAPPVariables(ctx, userID, req.ProjectID, newAppID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresources, err := a.DomainSVC.GetDraftAPPResources(ctx, req.GetProjectID())\n\tif err != nil {\n\t\treturn errorx.Wrapf(err, \"GetDraftAPPResources failed, appID=%d\", req.GetProjectID())\n\t}\n\n\tmetaInfo := &copyMetaInfo{\n\t\tscene:      resourceCommon.ResourceCopyScene_CopyProject,\n\t\tuserID:     userID,\n\t\tappSpaceID: req.ToSpaceID,\n\t\tcopyTaskID: uuid.New().String(),\n\t\tfromAppID:  req.ProjectID,\n\t\ttoAppID:    &newAppID,\n\t}\n\n\tcopyPluginIDMap := make(map[int64]int64)\n\tcopyToolIDMap := make(map[int64]int64)\n\tcopyDatabaseIDMap := make(map[int64]int64)\n\tcopyKnowledgeIDMap := make(map[int64]int64)\n\n\ttaskGroup := taskgroup.NewTaskGroup(ctx, 5)\n\tmu := sync.Mutex{}\n\n\tfor _, res := range resources {\n\t\tif res.ResType == entity.ResourceTypeOfPlugin {\n\t\t\ttaskGroup.Go(func() error {\n\t\t\t\tresp, err := copyPlugin(ctx, metaInfo, res)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tmu.Lock()\n\t\t\t\tdefer mu.Unlock()\n\n\t\t\t\tcopyPluginIDMap[res.ResID] = resp.Plugin.ID\n\t\t\t\tfor oldToolID, tool := range resp.Tools {\n\t\t\t\t\tcopyToolIDMap[oldToolID] = tool.ID\n\t\t\t\t}\n\n\t\t\t\treturn nil\n\t\t\t})\n\t\t}\n\n\t\tif res.ResType == entity.ResourceTypeOfDatabase {\n\t\t\ttaskGroup.Go(func() error {\n\t\t\t\tnewDatabaseID, err := copyDatabase(ctx, metaInfo, res)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tmu.Lock()\n\t\t\t\tdefer mu.Unlock()\n\n\t\t\t\tcopyDatabaseIDMap[res.ResID] = newDatabaseID\n\n\t\t\t\treturn nil\n\t\t\t})\n\t\t}\n\n\t\tif res.ResType == entity.ResourceTypeOfKnowledge {\n\t\t\ttaskGroup.Go(func() error {\n\t\t\t\tnewKnowledgeID, err := copyKnowledge(ctx, metaInfo, res)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tmu.Lock()\n\t\t\t\tdefer mu.Unlock()\n\n\t\t\t\tcopyKnowledgeIDMap[res.ResID] = newKnowledgeID\n\n\t\t\t\treturn nil\n\t\t\t})\n\t\t}\n\t}\n\n\terr = taskGroup.Wait()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\terr = workflow.SVC.DuplicateWorkflowsByAppID(ctx, req.GetProjectID(), newAppID, workflow.ExternalResource{\n\t\tPluginMap:     copyPluginIDMap,\n\t\tPluginToolMap: copyToolIDMap,\n\t\tDatabaseMap:   copyDatabaseIDMap,\n\t\tKnowledgeMap:  copyKnowledgeIDMap,\n\t})\n\tif err != nil {\n\t\treturn errorx.Wrapf(err, \"DuplicateWorkflowsByAppID failed, appID=%d\", req.GetProjectID())\n\t}\n\n\treturn nil\n}\n\nfunc (a *APPApplicationService) duplicateAPPVariables(ctx context.Context, userID, fromAPPID, toAPPID int64) (err error) {\n\tvars, err := a.variablesSVC.GetProjectVariablesMeta(ctx, strconv.FormatInt(fromAPPID, 10), \"\")\n\tif err != nil {\n\t\treturn err\n\t}\n\tif vars == nil {\n\t\treturn nil\n\t}\n\n\tvars.ID = 0\n\tvars.BizID = conv.Int64ToStr(toAPPID)\n\tvars.BizType = project_memory.VariableConnector_Project\n\tvars.Version = \"\"\n\tvars.CreatorID = userID\n\n\t_, err = a.variablesSVC.UpsertMeta(ctx, vars)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (a *APPApplicationService) getAPPUserInfo(ctx context.Context, userID int64) (userInfo *common.User) {\n\tui, err := a.userSVC.GetUserInfo(ctx, userID)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"GetUserInfo failed, userID=%d, err=%v\", userID, err)\n\t\treturn nil\n\t}\n\n\tuserInfo = &common.User{\n\t\tUserID:         ui.UserID,\n\t\tNickname:       ui.Name,\n\t\tUserUniqueName: ui.UniqueName,\n\t\tAvatarURL:      ui.IconURL,\n\t}\n\n\treturn userInfo\n}\n\nfunc (a *APPApplicationService) getAPPBasicInfo(ctx context.Context, draftAPP *entity.APP) (info *common.IntelligenceBasicInfo, published bool, err error) {\n\trecord, exist, err := a.DomainSVC.GetAPPPublishRecord(ctx, &service.GetAPPPublishRecordRequest{\n\t\tAPPID:  draftAPP.ID,\n\t\tOldest: false,\n\t})\n\tif err != nil {\n\t\treturn nil, false, err\n\t}\n\n\tvar publishAt int64\n\tif exist {\n\t\tpublishAt = record.APP.GetPublishedAtMS() / 1000\n\t\tpublished = record.APP.Published()\n\t}\n\n\ticonURL, err := a.oss.GetObjectUrl(ctx, draftAPP.GetIconURI())\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"get icon url failed with '%s', err=%v\", draftAPP.GetIconURI(), err)\n\t}\n\n\tbasicInfo := &common.IntelligenceBasicInfo{\n\t\tID:          draftAPP.ID,\n\t\tSpaceID:     draftAPP.SpaceID,\n\t\tOwnerID:     draftAPP.OwnerID,\n\t\tName:        draftAPP.GetName(),\n\t\tDescription: draftAPP.GetDesc(),\n\t\tIconURI:     draftAPP.GetIconURI(),\n\t\tIconURL:     iconURL,\n\t\tCreateTime:  draftAPP.CreatedAtMS / 1000,\n\t\tUpdateTime:  draftAPP.UpdatedAtMS / 1000,\n\t\tPublishTime: publishAt,\n\t\tStatus:      common.IntelligenceStatus_Using,\n\t}\n\n\treturn basicInfo, published, nil\n}\n\nfunc (a *APPApplicationService) ValidateDraftAPPAccess(ctx context.Context, appID int64) (app *entity.APP, err error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrAppPermissionCode, errorx.KV(errno.APPMsgKey, \"session is required\"))\n\t}\n\n\tapp, err = a.DomainSVC.GetDraftAPP(ctx, appID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetDraftAPP failed, appID=%d\", appID)\n\t}\n\n\tif app.OwnerID != *uid {\n\t\treturn nil, errorx.New(errno.ErrAppPermissionCode, errorx.KV(errno.APPMsgKey, \"you are not the application owner\"))\n\t}\n\n\treturn app, nil\n}\n"
  },
  {
    "path": "backend/application/app/convert.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage app\n\nimport (\n\tresourceCommon \"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/app/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc toResourceType(resType resourceCommon.ResType) (entity.ResourceType, error) {\n\tswitch resType {\n\tcase resourceCommon.ResType_Plugin:\n\t\treturn entity.ResourceTypeOfPlugin, nil\n\tcase resourceCommon.ResType_Workflow:\n\t\treturn entity.ResourceTypeOfWorkflow, nil\n\tcase resourceCommon.ResType_Knowledge:\n\t\treturn entity.ResourceTypeOfKnowledge, nil\n\tcase resourceCommon.ResType_Database:\n\t\treturn entity.ResourceTypeOfDatabase, nil\n\tdefault:\n\t\treturn \"\", errorx.New(errno.ErrAppInvalidParamCode,\n\t\t\terrorx.KVf(errno.APPMsgKey, \"unsupported resource type '%s'\", resType))\n\t}\n}\n\nfunc toThriftResourceType(resType entity.ResourceType) (resourceCommon.ResType, error) {\n\tswitch resType {\n\tcase entity.ResourceTypeOfPlugin:\n\t\treturn resourceCommon.ResType_Plugin, nil\n\tcase entity.ResourceTypeOfWorkflow:\n\t\treturn resourceCommon.ResType_Workflow, nil\n\tcase entity.ResourceTypeOfKnowledge:\n\t\treturn resourceCommon.ResType_Knowledge, nil\n\tcase entity.ResourceTypeOfDatabase:\n\t\treturn resourceCommon.ResType_Database, nil\n\tdefault:\n\t\treturn 0, errorx.New(errno.ErrAppInvalidParamCode,\n\t\t\terrorx.KVf(errno.APPMsgKey, \"unsupported resource type '%s'\", resType))\n\t}\n}\n"
  },
  {
    "path": "backend/application/app/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage app\n\nimport (\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/domain/app/repository\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/app/service\"\n\tconnector \"github.com/coze-dev/coze-studio/backend/domain/connector/service\"\n\tvariables \"github.com/coze-dev/coze-studio/backend/domain/memory/variables/service\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/service\"\n\tuser \"github.com/coze-dev/coze-studio/backend/domain/user/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/cache\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n)\n\ntype ServiceComponents struct {\n\tIDGen           idgen.IDGenerator\n\tDB              *gorm.DB\n\tOSS             storage.Storage\n\tCacheCli        cache.Cmdable\n\tProjectEventBus search.ProjectEventBus\n\n\tUserSVC      user.User\n\tConnectorSVC connector.Connector\n\tVariablesSVC variables.Variables\n}\n\nfunc InitService(components *ServiceComponents) (*APPApplicationService, error) {\n\tappRepo := repository.NewAPPRepo(&repository.APPRepoComponents{\n\t\tIDGen:    components.IDGen,\n\t\tDB:       components.DB,\n\t\tCacheCli: components.CacheCli,\n\t})\n\n\tdomainComponents := &service.Components{\n\t\tIDGen:   components.IDGen,\n\t\tDB:      components.DB,\n\t\tAPPRepo: appRepo,\n\t}\n\n\tdomainSVC := service.NewService(domainComponents)\n\n\tAPPApplicationSVC.DomainSVC = domainSVC\n\tAPPApplicationSVC.appRepo = appRepo\n\n\tAPPApplicationSVC.oss = components.OSS\n\tAPPApplicationSVC.projectEventBus = components.ProjectEventBus\n\n\tAPPApplicationSVC.userSVC = components.UserSVC\n\tAPPApplicationSVC.connectorSVC = components.ConnectorSVC\n\tAPPApplicationSVC.variablesSVC = components.VariablesSVC\n\n\treturn APPApplicationSVC, nil\n}\n"
  },
  {
    "path": "backend/application/app/model.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage app\n\nimport (\n\t\"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n)\n\ntype copyMetaInfo struct {\n\tscene common.ResourceCopyScene\n\n\tuserID     int64\n\tappSpaceID int64\n\tcopyTaskID string\n\n\tfromAppID int64\n\ttoAppID   *int64\n}\n"
  },
  {
    "path": "backend/application/application.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage application\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/coze-dev/coze-studio/backend/application/permission\"\n\n\t\"github.com/coze-dev/coze-studio/backend/application/app\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/appinfra\"\n\t\"github.com/coze-dev/coze-studio/backend/application/connector\"\n\t\"github.com/coze-dev/coze-studio/backend/application/conversation\"\n\t\"github.com/coze-dev/coze-studio/backend/application/knowledge\"\n\t\"github.com/coze-dev/coze-studio/backend/application/memory\"\n\t\"github.com/coze-dev/coze-studio/backend/application/modelmgr\"\n\t\"github.com/coze-dev/coze-studio/backend/application/openauth\"\n\t\"github.com/coze-dev/coze-studio/backend/application/plugin\"\n\t\"github.com/coze-dev/coze-studio/backend/application/prompt\"\n\t\"github.com/coze-dev/coze-studio/backend/application/search\"\n\t\"github.com/coze-dev/coze-studio/backend/application/shortcutcmd\"\n\t\"github.com/coze-dev/coze-studio/backend/application/singleagent\"\n\t\"github.com/coze-dev/coze-studio/backend/application/template\"\n\t\"github.com/coze-dev/coze-studio/backend/application/upload\"\n\t\"github.com/coze-dev/coze-studio/backend/application/user\"\n\t\"github.com/coze-dev/coze-studio/backend/application/workflow\"\n\tcrossagent \"github.com/coze-dev/coze-studio/backend/crossdomain/agent\"\n\tsingleagentImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/agent/impl\"\n\tcrossagentrun \"github.com/coze-dev/coze-studio/backend/crossdomain/agentrun\"\n\tagentrunImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/agentrun/impl\"\n\tcrossapp \"github.com/coze-dev/coze-studio/backend/crossdomain/app\"\n\tappImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/app/impl\"\n\tcrossconnector \"github.com/coze-dev/coze-studio/backend/crossdomain/connector\"\n\tconnectorImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/connector/impl\"\n\tcrossconversation \"github.com/coze-dev/coze-studio/backend/crossdomain/conversation\"\n\tconversationImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/conversation/impl\"\n\tcrossdatabase \"github.com/coze-dev/coze-studio/backend/crossdomain/database\"\n\tdatabaseImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/database/impl\"\n\tcrossdatacopy \"github.com/coze-dev/coze-studio/backend/crossdomain/datacopy\"\n\tdataCopyImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/datacopy/impl\"\n\tcrossknowledge \"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge\"\n\tknowledgeImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge/impl\"\n\tcrossmessage \"github.com/coze-dev/coze-studio/backend/crossdomain/message\"\n\tmessageImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/message/impl\"\n\tcrosspermission \"github.com/coze-dev/coze-studio/backend/crossdomain/permission\"\n\tpermissionImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/permission/impl\"\n\tcrossplugin \"github.com/coze-dev/coze-studio/backend/crossdomain/plugin\"\n\tpluginImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/impl\"\n\tcrosssearch \"github.com/coze-dev/coze-studio/backend/crossdomain/search\"\n\tsearchImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/search/impl\"\n\tcrossupload \"github.com/coze-dev/coze-studio/backend/crossdomain/upload\"\n\tuploadImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/upload/impl\"\n\tcrossuser \"github.com/coze-dev/coze-studio/backend/crossdomain/user\"\n\tcrossuserImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/user/impl\"\n\tcrossvariables \"github.com/coze-dev/coze-studio/backend/crossdomain/variables\"\n\tvariablesImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/variables/impl\"\n\tcrossworkflow \"github.com/coze-dev/coze-studio/backend/crossdomain/workflow\"\n\tworkflowImpl \"github.com/coze-dev/coze-studio/backend/crossdomain/workflow/impl\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/checkpoint\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/document/progressbar\"\n\tprogressBarImpl \"github.com/coze-dev/coze-studio/backend/infra/document/progressbar/impl/progressbar\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/eventbus\"\n\timplEventbus \"github.com/coze-dev/coze-studio/backend/infra/eventbus/impl\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/sqlparser\"\n\tsqlparserImpl \"github.com/coze-dev/coze-studio/backend/infra/sqlparser/impl/sqlparser\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n)\n\ntype eventbusImpl struct {\n\tresourceEventBus search.ResourceEventBus\n\tprojectEventBus  search.ProjectEventBus\n}\n\ntype basicServices struct {\n\tinfra        *appinfra.AppDependencies\n\teventbus     *eventbusImpl\n\tmodelMgrSVC  *modelmgr.ModelmgrApplicationService\n\tconnectorSVC *connector.ConnectorApplicationService\n\tuserSVC      *user.UserApplicationService\n\tpromptSVC    *prompt.PromptApplicationService\n\ttemplateSVC  *template.ApplicationService\n\topenAuthSVC  *openauth.OpenAuthApplicationService\n\tuploadSVC    *upload.UploadService\n\n\tpermissionSVC *permission.PermissionApplicationService\n}\n\ntype primaryServices struct {\n\tbasicServices *basicServices\n\tinfra         *appinfra.AppDependencies\n\n\tpluginSVC    *plugin.PluginApplicationService\n\tmemorySVC    *memory.MemoryApplicationServices\n\tknowledgeSVC *knowledge.KnowledgeApplicationService\n\tworkflowSVC  *workflow.ApplicationService\n\tshortcutSVC  *shortcutcmd.ShortcutCmdApplicationService\n\tappSVC       *app.APPApplicationService\n}\n\ntype complexServices struct {\n\tprimaryServices *primaryServices\n\tsingleAgentSVC  *singleagent.SingleAgentApplicationService\n\tappSVC          *app.APPApplicationService\n\tsearchSVC       *search.SearchApplicationService\n\tconversationSVC *conversation.ConversationApplicationService\n}\n\nfunc Init(ctx context.Context) (err error) {\n\tctx = ctxcache.Init(ctx)\n\tinfra, err := appinfra.Init(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tprogressbar.New = progressBarImpl.NewProgressBar\n\tsqlparser.New = sqlparserImpl.NewSQLParser\n\n\teventbus := initEventBus(infra)\n\n\tbasicServices, err := initBasicServices(ctx, infra, eventbus)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"Init - initBasicServices failed, err: %v\", err)\n\t}\n\n\tprimaryServices, err := initPrimaryServices(ctx, basicServices)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"Init - initPrimaryServices failed, err: %v\", err)\n\t}\n\n\tcomplexServices, err := initComplexServices(ctx, primaryServices)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"Init - initVitalServices failed, err: %v\", err)\n\t}\n\n\t// Initialize permission service first as it's required by other services\n\tcrosspermission.SetDefaultSVC(permissionImpl.InitDomainService(basicServices.permissionSVC.DomainSVC))\n\n\tcrossconnector.SetDefaultSVC(connectorImpl.InitDomainService(basicServices.connectorSVC.DomainSVC))\n\tcrossdatabase.SetDefaultSVC(databaseImpl.InitDomainService(primaryServices.memorySVC.DatabaseDomainSVC))\n\tcrossknowledge.SetDefaultSVC(knowledgeImpl.InitDomainService(primaryServices.knowledgeSVC.DomainSVC))\n\tcrossplugin.SetDefaultSVC(pluginImpl.InitDomainService(primaryServices.pluginSVC.DomainSVC, infra.OSS))\n\tcrossvariables.SetDefaultSVC(variablesImpl.InitDomainService(primaryServices.memorySVC.VariablesDomainSVC))\n\tcrossworkflow.SetDefaultSVC(workflowImpl.InitDomainService(primaryServices.workflowSVC.DomainSVC))\n\tcrossconversation.SetDefaultSVC(conversationImpl.InitDomainService(complexServices.conversationSVC.ConversationDomainSVC))\n\tcrossmessage.SetDefaultSVC(messageImpl.InitDomainService(complexServices.conversationSVC.MessageDomainSVC))\n\tcrossagentrun.SetDefaultSVC(agentrunImpl.InitDomainService(complexServices.conversationSVC.AgentRunDomainSVC))\n\tcrossagent.SetDefaultSVC(singleagentImpl.InitDomainService(complexServices.singleAgentSVC.DomainSVC))\n\tcrossuser.SetDefaultSVC(crossuserImpl.InitDomainService(basicServices.userSVC.DomainSVC))\n\tcrossdatacopy.SetDefaultSVC(dataCopyImpl.InitDomainService(basicServices.infra))\n\tcrosssearch.SetDefaultSVC(searchImpl.InitDomainService(complexServices.searchSVC.DomainSVC))\n\tcrossupload.SetDefaultSVC(uploadImpl.InitDomainService(basicServices.uploadSVC.UploadSVC))\n\n\tcrossapp.SetDefaultSVC(appImpl.InitDomainService(complexServices.appSVC.DomainSVC))\n\n\treturn nil\n}\n\nfunc initEventBus(infra *appinfra.AppDependencies) *eventbusImpl {\n\te := &eventbusImpl{}\n\teventbus.SetDefaultSVC(implEventbus.NewConsumerService())\n\te.resourceEventBus = search.NewResourceEventBus(infra.ResourceEventProducer)\n\te.projectEventBus = search.NewProjectEventBus(infra.AppEventProducer)\n\n\treturn e\n}\n\n// initBasicServices init basic services that only depends on infra.\nfunc initBasicServices(ctx context.Context, infra *appinfra.AppDependencies, e *eventbusImpl) (*basicServices, error) {\n\tuploadSVC := upload.InitService(&upload.UploadComponents{Cache: infra.CacheCli, Oss: infra.OSS, DB: infra.DB, Idgen: infra.IDGenSVC})\n\topenAuthSVC := openauth.InitService(infra.DB, infra.IDGenSVC)\n\tpromptSVC := prompt.InitService(infra.DB, infra.IDGenSVC, e.resourceEventBus)\n\tmodelMgrSVC := modelmgr.InitService(infra.OSS)\n\tconnectorSVC := connector.InitService(infra.OSS)\n\tuserSVC := user.InitService(ctx, infra.DB, infra.OSS, infra.IDGenSVC)\n\ttemplateSVC := template.InitService(ctx, &template.ServiceComponents{\n\t\tDB:      infra.DB,\n\t\tIDGen:   infra.IDGenSVC,\n\t\tStorage: infra.OSS,\n\t})\n\n\tpermissionSVC := permission.InitService(&permission.ServiceComponents{})\n\n\treturn &basicServices{\n\t\tinfra:        infra,\n\t\teventbus:     e,\n\t\tmodelMgrSVC:  modelMgrSVC,\n\t\tconnectorSVC: connectorSVC,\n\t\tuserSVC:      userSVC,\n\t\tpromptSVC:    promptSVC,\n\t\ttemplateSVC:  templateSVC,\n\t\topenAuthSVC:  openAuthSVC,\n\t\tuploadSVC:    uploadSVC,\n\n\t\tpermissionSVC: permissionSVC,\n\t}, nil\n}\n\n// initPrimaryServices init primary services that depends on basic services.\nfunc initPrimaryServices(ctx context.Context, basicServices *basicServices) (*primaryServices, error) {\n\tpluginSVC, err := plugin.InitService(ctx, basicServices.toPluginServiceComponents())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmemorySVC := memory.InitService(basicServices.toMemoryServiceComponents())\n\n\tknowledgeSVC, err := knowledge.InitService(ctx,\n\t\tbasicServices.toKnowledgeServiceComponents(memorySVC),\n\t\tbasicServices.eventbus.resourceEventBus)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tworkflowDomainSVC, err := workflow.InitService(ctx,\n\t\tbasicServices.toWorkflowServiceComponents(pluginSVC, memorySVC, knowledgeSVC))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tshortcutSVC := shortcutcmd.InitService(basicServices.infra.DB, basicServices.infra.IDGenSVC)\n\n\treturn &primaryServices{\n\t\tbasicServices: basicServices,\n\t\tpluginSVC:     pluginSVC,\n\t\tmemorySVC:     memorySVC,\n\t\tknowledgeSVC:  knowledgeSVC,\n\t\tworkflowSVC:   workflowDomainSVC,\n\t\tshortcutSVC:   shortcutSVC,\n\t\tinfra:         basicServices.infra,\n\t}, nil\n}\n\n// initComplexServices init complex services that depends on primary services.\nfunc initComplexServices(ctx context.Context, p *primaryServices) (*complexServices, error) {\n\tsingleAgentSVC, err := singleagent.InitService(p.toSingleAgentServiceComponents())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tappSVC, err := app.InitService(p.toAPPServiceComponents())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsearchSVC, err := search.InitService(ctx, p.toSearchServiceComponents(singleAgentSVC, appSVC))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tconversationSVC := conversation.InitService(p.toConversationComponents(singleAgentSVC))\n\n\treturn &complexServices{\n\t\tprimaryServices: p,\n\t\tsingleAgentSVC:  singleAgentSVC,\n\t\tappSVC:          appSVC,\n\t\tsearchSVC:       searchSVC,\n\t\tconversationSVC: conversationSVC,\n\t}, nil\n}\n\nfunc (b *basicServices) toPluginServiceComponents() *plugin.ServiceComponents {\n\treturn &plugin.ServiceComponents{\n\t\tIDGen:    b.infra.IDGenSVC,\n\t\tDB:       b.infra.DB,\n\t\tEventBus: b.eventbus.resourceEventBus,\n\t\tOSS:      b.infra.OSS,\n\t\tUserSVC:  b.userSVC.DomainSVC,\n\t}\n}\n\nfunc (b *basicServices) toKnowledgeServiceComponents(memoryService *memory.MemoryApplicationServices) *knowledge.ServiceComponents {\n\treturn &knowledge.ServiceComponents{\n\t\tDB:                  b.infra.DB,\n\t\tIDGen:               b.infra.IDGenSVC,\n\t\tRDB:                 memoryService.RDBDomainSVC,\n\t\tProducer:            b.infra.KnowledgeEventProducer,\n\t\tSearchStoreManagers: b.infra.SearchStoreManagers,\n\t\tParseManager:        b.infra.ParserManager,\n\t\tStorage:             b.infra.OSS,\n\t\tRewriter:            b.infra.Rewriter,\n\t\tReranker:            b.infra.Reranker,\n\t\tNL2Sql:              b.infra.NL2SQL,\n\t\tCacheCli:            b.infra.CacheCli,\n\t}\n}\n\nfunc (b *basicServices) toMemoryServiceComponents() *memory.ServiceComponents {\n\treturn &memory.ServiceComponents{\n\t\tIDGen:                  b.infra.IDGenSVC,\n\t\tDB:                     b.infra.DB,\n\t\tEventBus:               b.eventbus.resourceEventBus,\n\t\tTosClient:              b.infra.OSS,\n\t\tResourceDomainNotifier: b.eventbus.resourceEventBus,\n\t\tCacheCli:               b.infra.CacheCli,\n\t}\n}\n\nfunc (b *basicServices) toWorkflowServiceComponents(pluginSVC *plugin.PluginApplicationService, memorySVC *memory.MemoryApplicationServices, knowledgeSVC *knowledge.KnowledgeApplicationService) *workflow.ServiceComponents {\n\treturn &workflow.ServiceComponents{\n\t\tIDGen:                    b.infra.IDGenSVC,\n\t\tDB:                       b.infra.DB,\n\t\tCache:                    b.infra.CacheCli,\n\t\tTos:                      b.infra.OSS,\n\t\tImageX:                   b.infra.ImageXClient,\n\t\tDatabaseDomainSVC:        memorySVC.DatabaseDomainSVC,\n\t\tVariablesDomainSVC:       memorySVC.VariablesDomainSVC,\n\t\tPluginDomainSVC:          pluginSVC.DomainSVC,\n\t\tKnowledgeDomainSVC:       knowledgeSVC.DomainSVC,\n\t\tDomainNotifier:           b.eventbus.resourceEventBus,\n\t\tCPStore:                  checkpoint.NewRedisStore(b.infra.CacheCli),\n\t\tCodeRunner:               b.infra.CodeRunner,\n\t\tWorkflowBuildInChatModel: b.infra.WorkflowBuildInChatModel,\n\t}\n}\n\nfunc (p *primaryServices) toSingleAgentServiceComponents() *singleagent.ServiceComponents {\n\treturn &singleagent.ServiceComponents{\n\t\tIDGen:                p.basicServices.infra.IDGenSVC,\n\t\tDB:                   p.basicServices.infra.DB,\n\t\tCache:                p.basicServices.infra.CacheCli,\n\t\tTosClient:            p.basicServices.infra.OSS,\n\t\tImageX:               p.basicServices.infra.ImageXClient,\n\t\tUserDomainSVC:        p.basicServices.userSVC.DomainSVC,\n\t\tEventBus:             p.basicServices.eventbus.projectEventBus,\n\t\tDatabaseDomainSVC:    p.memorySVC.DatabaseDomainSVC,\n\t\tConnectorDomainSVC:   p.basicServices.connectorSVC.DomainSVC,\n\t\tKnowledgeDomainSVC:   p.knowledgeSVC.DomainSVC,\n\t\tPluginDomainSVC:      p.pluginSVC.DomainSVC,\n\t\tWorkflowDomainSVC:    p.workflowSVC.DomainSVC,\n\t\tVariablesDomainSVC:   p.memorySVC.VariablesDomainSVC,\n\t\tShortcutCMDDomainSVC: p.shortcutSVC.ShortCutDomainSVC,\n\t\tCPStore:              checkpoint.NewRedisStore(p.infra.CacheCli),\n\t}\n}\n\nfunc (p *primaryServices) toSearchServiceComponents(singleAgentSVC *singleagent.SingleAgentApplicationService, appSVC *app.APPApplicationService) *search.ServiceComponents {\n\tinfra := p.basicServices.infra\n\n\treturn &search.ServiceComponents{\n\t\tDB:                   infra.DB,\n\t\tCache:                infra.CacheCli,\n\t\tTOS:                  infra.OSS,\n\t\tESClient:             infra.ESClient,\n\t\tProjectEventBus:      p.basicServices.eventbus.projectEventBus,\n\t\tSingleAgentDomainSVC: singleAgentSVC.DomainSVC,\n\t\tAPPDomainSVC:         appSVC.DomainSVC,\n\t\tKnowledgeDomainSVC:   p.knowledgeSVC.DomainSVC,\n\t\tPluginDomainSVC:      p.pluginSVC.DomainSVC,\n\t\tWorkflowDomainSVC:    p.workflowSVC.DomainSVC,\n\t\tUserDomainSVC:        p.basicServices.userSVC.DomainSVC,\n\t\tConnectorDomainSVC:   p.basicServices.connectorSVC.DomainSVC,\n\t\tPromptDomainSVC:      p.basicServices.promptSVC.DomainSVC,\n\t\tDatabaseDomainSVC:    p.memorySVC.DatabaseDomainSVC,\n\t}\n}\n\nfunc (p *primaryServices) toAPPServiceComponents() *app.ServiceComponents {\n\tinfra := p.basicServices.infra\n\tbasic := p.basicServices\n\treturn &app.ServiceComponents{\n\t\tIDGen:           infra.IDGenSVC,\n\t\tDB:              infra.DB,\n\t\tOSS:             infra.OSS,\n\t\tCacheCli:        infra.CacheCli,\n\t\tProjectEventBus: basic.eventbus.projectEventBus,\n\t\tUserSVC:         basic.userSVC.DomainSVC,\n\t\tConnectorSVC:    basic.connectorSVC.DomainSVC,\n\t\tVariablesSVC:    p.memorySVC.VariablesDomainSVC,\n\t}\n}\n\nfunc (p *primaryServices) toConversationComponents(singleAgentSVC *singleagent.SingleAgentApplicationService) *conversation.ServiceComponents {\n\tinfra := p.basicServices.infra\n\n\treturn &conversation.ServiceComponents{\n\t\tDB:                   infra.DB,\n\t\tIDGen:                infra.IDGenSVC,\n\t\tTosClient:            infra.OSS,\n\t\tImageX:               infra.ImageXClient,\n\t\tSingleAgentDomainSVC: singleAgentSVC.DomainSVC,\n\t}\n}\n"
  },
  {
    "path": "backend/application/base/appinfra/app_infra.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage appinfra\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/llm/modelbuilder\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/cache\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/cache/impl/redis\"\n\tcoderunner \"github.com/coze-dev/coze-studio/backend/infra/coderunner/impl\"\n\tmessages2query \"github.com/coze-dev/coze-studio/backend/infra/document/messages2query/impl\"\n\tnl2sql \"github.com/coze-dev/coze-studio/backend/infra/document/nl2sql/impl\"\n\tocr \"github.com/coze-dev/coze-studio/backend/infra/document/ocr/impl\"\n\tparser \"github.com/coze-dev/coze-studio/backend/infra/document/parser/impl\"\n\trerank \"github.com/coze-dev/coze-studio/backend/infra/document/rerank/impl\"\n\tsearchstore \"github.com/coze-dev/coze-studio/backend/infra/document/searchstore/impl\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/es/impl/es\"\n\teventbus \"github.com/coze-dev/coze-studio/backend/infra/eventbus/impl\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen/impl/idgen\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/imagex\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/imagex/impl/veimagex\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/orm/impl/mysql\"\n\tstorage \"github.com/coze-dev/coze-studio/backend/infra/storage/impl\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\ntype AppDependencies struct {\n\tDB                       *gorm.DB\n\tCacheCli                 cache.Cmdable\n\tIDGenSVC                 idgen.IDGenerator\n\tESClient                 es.Client\n\tImageXClient             imagex.ImageX\n\tOSS                      storage.Storage\n\tResourceEventProducer    eventbus.Producer\n\tAppEventProducer         eventbus.Producer\n\tKnowledgeEventProducer   eventbus.Producer\n\tCodeRunner               coderunner.Runner\n\tParserManager            parser.Manager\n\tSearchStoreManagers      []searchstore.Manager\n\tReranker                 rerank.Reranker\n\tRewriter                 messages2query.MessagesToQuery\n\tNL2SQL                   nl2sql.NL2SQL\n\tWorkflowBuildInChatModel modelbuilder.BaseChatModel\n}\n\nfunc Init(ctx context.Context) (*AppDependencies, error) {\n\tdeps := &AppDependencies{}\n\tvar err error\n\tdeps.OSS, err = storage.New(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init tos client failed, err=%w\", err)\n\t}\n\n\tdeps.DB, err = mysql.New()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init db failed, err=%w\", err)\n\t}\n\n\tdeps.CacheCli = redis.New()\n\n\tdeps.IDGenSVC, err = idgen.New(deps.CacheCli)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init id gen svc failed, err=%w\", err)\n\t}\n\n\terr = config.Init(ctx, deps.DB, deps.OSS) // Depends on MySQL、Idgen and OSS initialization\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init model config failed, err=%w\", err)\n\t}\n\n\tknowledgeConfig, err := config.Knowledge().GetKnowledgeConfig(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"get knowledge config failed, err=%w\", err)\n\t}\n\tbasicConfig, err := config.Base().GetBaseConfig(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"get basic config failed, err=%w\", err)\n\t}\n\n\tdeps.ESClient, err = es.New()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init es client failed, err=%w\", err)\n\t}\n\n\tdeps.ImageXClient, err = initImageX(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init imagex client failed, err=%w\", err)\n\t}\n\n\tdeps.ResourceEventProducer, err = eventbus.InitResourceEventBusProducer()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init resource event bus producer failed, err=%w\", err)\n\t}\n\n\tdeps.AppEventProducer, err = eventbus.InitAppEventProducer()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init app event producer failed, err=%w\", err)\n\t}\n\n\tdeps.KnowledgeEventProducer, err = eventbus.InitKnowledgeEventBusProducer()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init knowledge event bus producer failed, err=%w\", err)\n\t}\n\n\tdeps.Reranker = rerank.New(knowledgeConfig)\n\n\tdeps.Rewriter, err = messages2query.New(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init rewriter failed, err=%w\", err)\n\t}\n\n\tdeps.NL2SQL, err = nl2sql.New(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init nl2sql failed, err=%w\", err)\n\t}\n\n\tdeps.CodeRunner = coderunner.New(basicConfig)\n\n\tocrIns := ocr.New(knowledgeConfig)\n\n\tvar ok bool\n\tdeps.WorkflowBuildInChatModel, ok, err = modelbuilder.GetBuiltinChatModel(ctx, \"WKR_\")\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"get workflow builtin chat model failed, err=%w\", err)\n\t}\n\n\tif !ok {\n\t\tlogs.CtxWarnf(ctx, \"workflow builtin chat model for knowledge recall not configured\")\n\t}\n\n\tdeps.ParserManager, err = parser.New(ctx, knowledgeConfig, deps.OSS, ocrIns)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init parser manager failed, err=%w\", err)\n\t}\n\n\tdeps.SearchStoreManagers, err = searchstore.New(ctx, knowledgeConfig, deps.ESClient)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"init search store managers failed, err=%w\", err)\n\t}\n\n\treturn deps, nil\n}\n\nfunc initImageX(ctx context.Context) (imagex.ImageX, error) {\n\tuploadComponentType := os.Getenv(consts.FileUploadComponentType)\n\tif uploadComponentType != consts.FileUploadComponentTypeImagex {\n\t\treturn storage.NewImagex(ctx)\n\t}\n\n\treturn veimagex.NewDefault()\n}\n"
  },
  {
    "path": "backend/application/base/ctxutil/api_auth.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage ctxutil\n\nimport (\n\t\"context\"\n\n\t\"github.com/coze-dev/coze-studio/backend/domain/openauth/openapiauth/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\nfunc GetApiAuthFromCtx(ctx context.Context) *entity.ApiKey {\n\tdata, ok := ctxcache.Get[*entity.ApiKey](ctx, consts.OpenapiAuthKeyInCtx)\n\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn data\n}\n\nfunc MustGetUIDFromApiAuthCtx(ctx context.Context) int64 {\n\tapiKeyInfo := GetApiAuthFromCtx(ctx)\n\tif apiKeyInfo == nil {\n\t\tpanic(\"mustGetUIDFromApiAuthCtx: apiKeyInfo is nil\")\n\t}\n\treturn apiKeyInfo.UserID\n}\n"
  },
  {
    "path": "backend/application/base/ctxutil/request.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage ctxutil\n\nimport (\n\t\"context\"\n)\n\nfunc GetRequestFullPathFromCtx(ctx context.Context) string {\n\tcontextValue := ctx.Value(\"request.full_path\")\n\tif contextValue == nil {\n\t\treturn \"\"\n\t}\n\n\tfullPath, ok := contextValue.(string)\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\treturn fullPath\n}\n"
  },
  {
    "path": "backend/application/base/ctxutil/session.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage ctxutil\n\nimport (\n\t\"context\"\n\n\t\"github.com/coze-dev/coze-studio/backend/domain/user/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\nfunc GetUserSessionFromCtx(ctx context.Context) *entity.Session {\n\tdata, ok := ctxcache.Get[*entity.Session](ctx, consts.SessionDataKeyInCtx)\n\tif !ok {\n\t\treturn nil\n\t}\n\n\treturn data\n}\n\nfunc MustGetUIDFromCtx(ctx context.Context) int64 {\n\tsessionData := GetUserSessionFromCtx(ctx)\n\tif sessionData == nil {\n\t\tpanic(\"mustGetUIDFromCtx: sessionData is nil\")\n\t}\n\n\treturn sessionData.UserID\n}\n\nfunc GetUIDFromCtx(ctx context.Context) *int64 {\n\tsessionData := GetUserSessionFromCtx(ctx)\n\tif sessionData == nil {\n\t\treturn nil\n\t}\n\n\treturn &sessionData.UserID\n}\n"
  },
  {
    "path": "backend/application/connector/connector.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage connector\n\nimport (\n\t\"context\"\n\n\t\"github.com/coze-dev/coze-studio/backend/domain/connector/entity\"\n\tconnector \"github.com/coze-dev/coze-studio/backend/domain/connector/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n)\n\ntype ConnectorApplicationService struct {\n\tDomainSVC connector.Connector\n}\n\nvar ConnectorApplicationSVC *ConnectorApplicationService\n\nfunc New(domainSVC connector.Connector, tosClient storage.Storage) *ConnectorApplicationService {\n\treturn &ConnectorApplicationService{\n\t\tDomainSVC: domainSVC,\n\t}\n}\n\nfunc (c *ConnectorApplicationService) List(ctx context.Context) ([]*entity.Connector, error) {\n\treturn c.DomainSVC.List(ctx)\n}\n"
  },
  {
    "path": "backend/application/connector/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage connector\n\nimport (\n\tconnector \"github.com/coze-dev/coze-studio/backend/domain/connector/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n)\n\nfunc InitService(tos storage.Storage) *ConnectorApplicationService {\n\tconnectorDomainSVC := connector.NewService(tos)\n\tConnectorApplicationSVC = New(connectorDomainSVC, tos)\n\n\treturn ConnectorApplicationSVC\n}\n"
  },
  {
    "path": "backend/application/conversation/agent_run.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage conversation\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/cloudwego/eino/schema\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/message\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/run\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tagentrun \"github.com/coze-dev/coze-studio/backend/crossdomain/agentrun/model\"\n\tcrossDomainMessage \"github.com/coze-dev/coze-studio/backend/crossdomain/message/model\"\n\tsaEntity \"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/conversation/agentrun/entity\"\n\tconvEntity \"github.com/coze-dev/coze-studio/backend/domain/conversation/conversation/entity\"\n\tmsgEntity \"github.com/coze-dev/coze-studio/backend/domain/conversation/message/entity\"\n\tcmdEntity \"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/entity\"\n\tsseImpl \"github.com/coze-dev/coze-studio/backend/infra/sse/impl/sse\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc (c *ConversationApplicationService) Run(ctx context.Context, sseSender *sseImpl.SSenderImpl, ar *run.AgentRunRequest) error {\n\tagentInfo, caErr := c.checkAgent(ctx, ar)\n\tif caErr != nil {\n\t\tlogs.CtxErrorf(ctx, \"checkAgent err:%v\", caErr)\n\t\treturn caErr\n\t}\n\n\tuserID := ctxutil.MustGetUIDFromCtx(ctx)\n\tconversationData, ccErr := c.checkConversation(ctx, ar, userID)\n\n\tif ccErr != nil {\n\t\tlogs.CtxErrorf(ctx, \"checkConversation err:%v\", ccErr)\n\t\treturn ccErr\n\t}\n\n\tif ar.RegenMessageID != nil && ptr.From(ar.RegenMessageID) > 0 {\n\t\tmsgMeta, err := c.MessageDomainSVC.GetByID(ctx, ptr.From(ar.RegenMessageID))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif msgMeta != nil {\n\t\t\tif msgMeta.UserID != conv.Int64ToStr(userID) {\n\t\t\t\treturn errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"message not match\"))\n\t\t\t}\n\n\t\t\terr = c.AgentRunDomainSVC.Delete(ctx, []int64{msgMeta.RunID})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tdelErr := c.MessageDomainSVC.Delete(ctx, &msgEntity.DeleteMeta{\n\t\t\t\tRunIDs: []int64{msgMeta.RunID},\n\t\t\t})\n\t\t\tif delErr != nil {\n\t\t\t\treturn delErr\n\t\t\t}\n\t\t}\n\n\t}\n\tvar shortcutCmd *cmdEntity.ShortcutCmd\n\tif ar.GetShortcutCmdID() > 0 {\n\t\tcmdID := ar.GetShortcutCmdID()\n\t\tcmdMeta, err := c.ShortcutDomainSVC.GetByCmdID(ctx, cmdID, 0)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif cmdMeta.ObjectID > 0 && cmdMeta.ObjectID != agentInfo.AgentID {\n\t\t\treturn errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"agent not match\"))\n\t\t}\n\t\tshortcutCmd = cmdMeta\n\t}\n\n\tarr, err := c.buildAgentRunRequest(ctx, ar, userID, agentInfo.SpaceID, conversationData, shortcutCmd)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"buildAgentRunRequest err:%v\", err)\n\t\treturn err\n\t}\n\tstreamer, err := c.AgentRunDomainSVC.AgentRun(ctx, arr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tc.pullStream(ctx, sseSender, streamer, ar)\n\treturn nil\n}\n\nfunc (c *ConversationApplicationService) pullStream(ctx context.Context, sseSender *sseImpl.SSenderImpl, arStream *schema.StreamReader[*entity.AgentRunResponse], req *run.AgentRunRequest) {\n\tvar ackMessageInfo *entity.ChunkMessageItem\n\tfor {\n\t\tchunk, recvErr := arStream.Recv()\n\t\tif recvErr != nil {\n\t\t\tif errors.Is(recvErr, io.EOF) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tsseSender.Send(ctx, buildErrorEvent(errno.ErrConversationAgentRunError, recvErr.Error()))\n\t\t\treturn\n\t\t}\n\n\t\tswitch chunk.Event {\n\t\tcase entity.RunEventCreated, entity.RunEventInProgress, entity.RunEventCompleted:\n\t\tcase entity.RunEventError:\n\t\t\tid, err := c.GenID(ctx)\n\t\t\tif err != nil {\n\t\t\t\tsseSender.Send(ctx, buildErrorEvent(errno.ErrConversationAgentRunError, err.Error()))\n\n\t\t\t} else {\n\t\t\t\tsseSender.Send(ctx, buildMessageChunkEvent(run.RunEventMessage, buildErrMsg(ackMessageInfo, chunk.Error, id)))\n\t\t\t}\n\t\tcase entity.RunEventStreamDone:\n\t\t\tsseSender.Send(ctx, buildDoneEvent(run.RunEventDone))\n\t\tcase entity.RunEventAck:\n\t\t\tackMessageInfo = chunk.ChunkMessageItem\n\t\t\tsseSender.Send(ctx, buildMessageChunkEvent(run.RunEventMessage, buildARSM2Message(chunk, req)))\n\t\tcase entity.RunEventMessageDelta, entity.RunEventMessageCompleted:\n\t\t\tsseSender.Send(ctx, buildMessageChunkEvent(run.RunEventMessage, buildARSM2Message(chunk, req)))\n\t\tdefault:\n\t\t\tlogs.CtxErrorf(ctx, \"unknown handler event:%v\", chunk.Event)\n\t\t}\n\n\t}\n}\n\nfunc buildARSM2Message(chunk *entity.AgentRunResponse, req *run.AgentRunRequest) []byte {\n\tchunkMessageItem := chunk.ChunkMessageItem\n\n\tchunkMessage := &run.RunStreamResponse{\n\t\tConversationID: strconv.FormatInt(chunkMessageItem.ConversationID, 10),\n\t\tIsFinish:       ptr.Of(chunk.ChunkMessageItem.IsFinish),\n\t\tMessage: &message.ChatMessage{\n\t\t\tRole:        string(chunkMessageItem.Role),\n\t\t\tContentType: string(chunkMessageItem.ContentType),\n\t\t\tMessageID:   strconv.FormatInt(chunkMessageItem.ID, 10),\n\t\t\tSectionID:   strconv.FormatInt(chunkMessageItem.SectionID, 10),\n\t\t\tContentTime: chunkMessageItem.CreatedAt,\n\t\t\tExtraInfo:   buildExt(chunkMessageItem.Ext),\n\t\t\tReplyID:     strconv.FormatInt(chunkMessageItem.ReplyID, 10),\n\n\t\t\tStatus:           \"\",\n\t\t\tType:             string(chunkMessageItem.MessageType),\n\t\t\tContent:          chunkMessageItem.Content,\n\t\t\tReasoningContent: chunkMessageItem.ReasoningContent,\n\t\t\tRequiredAction:   chunkMessageItem.RequiredAction,\n\t\t},\n\t\tIndex: int32(chunkMessageItem.Index),\n\t\tSeqID: int32(chunkMessageItem.SeqID),\n\t}\n\tif chunkMessageItem.MessageType == crossDomainMessage.MessageTypeAck {\n\t\tchunkMessage.Message.Content = req.GetQuery()\n\t\tchunkMessage.Message.ContentType = req.GetContentType()\n\t\tchunkMessage.Message.ExtraInfo = &message.ExtraInfo{\n\t\t\tLocalMessageID: req.GetLocalMessageID(),\n\t\t}\n\t} else {\n\t\tchunkMessage.Message.ExtraInfo = buildExt(chunkMessageItem.Ext)\n\t\tchunkMessage.Message.SenderID = ptr.Of(strconv.FormatInt(chunkMessageItem.AgentID, 10))\n\t\tchunkMessage.Message.Content = chunkMessageItem.Content\n\n\t\tif chunkMessageItem.MessageType == crossDomainMessage.MessageTypeKnowledge {\n\t\t\tchunkMessage.Message.Type = string(crossDomainMessage.MessageTypeVerbose)\n\t\t}\n\t}\n\n\tif chunk.ChunkMessageItem.IsFinish && chunkMessageItem.MessageType == crossDomainMessage.MessageTypeAnswer {\n\t\tchunkMessage.Message.Content = \"\"\n\t\tchunkMessage.Message.ReasoningContent = ptr.Of(\"\")\n\t}\n\n\tmCM, _ := json.Marshal(chunkMessage)\n\treturn mCM\n}\n\nfunc buildExt(extra map[string]string) *message.ExtraInfo {\n\tif extra == nil {\n\t\treturn nil\n\t}\n\n\treturn &message.ExtraInfo{\n\t\tInputTokens:         extra[\"input_tokens\"],\n\t\tOutputTokens:        extra[\"output_tokens\"],\n\t\tToken:               extra[\"token\"],\n\t\tPluginStatus:        extra[\"plugin_status\"],\n\t\tTimeCost:            extra[\"time_cost\"],\n\t\tWorkflowTokens:      extra[\"workflow_tokens\"],\n\t\tBotState:            extra[\"bot_state\"],\n\t\tPluginRequest:       extra[\"plugin_request\"],\n\t\tToolName:            extra[\"tool_name\"],\n\t\tPlugin:              extra[\"plugin\"],\n\t\tMockHitInfo:         extra[\"mock_hit_info\"],\n\t\tMessageTitle:        extra[\"message_title\"],\n\t\tStreamPluginRunning: extra[\"stream_plugin_running\"],\n\t\tExecuteDisplayName:  extra[\"execute_display_name\"],\n\t\tTaskType:            extra[\"task_type\"],\n\t\tReferFormat:         extra[\"refer_format\"],\n\t}\n}\nfunc buildErrMsg(ackChunk *entity.ChunkMessageItem, err *entity.RunError, id int64) []byte {\n\n\tchunkMessage := &run.RunStreamResponse{\n\t\tIsFinish:       ptr.Of(true),\n\t\tConversationID: strconv.FormatInt(ackChunk.ConversationID, 10),\n\t\tMessage: &message.ChatMessage{\n\t\t\tRole:        string(schema.Assistant),\n\t\t\tContentType: string(crossDomainMessage.ContentTypeText),\n\t\t\tType:        string(crossDomainMessage.MessageTypeAnswer),\n\t\t\tMessageID:   strconv.FormatInt(id, 10),\n\t\t\tSectionID:   strconv.FormatInt(ackChunk.SectionID, 10),\n\t\t\tReplyID:     strconv.FormatInt(ackChunk.ReplyID, 10),\n\t\t\tContent:     \"Something error:\" + err.Msg,\n\t\t\tExtraInfo:   &message.ExtraInfo{},\n\t\t},\n\t}\n\n\tmCM, _ := json.Marshal(chunkMessage)\n\treturn mCM\n}\n\nfunc (c *ConversationApplicationService) GenID(ctx context.Context) (int64, error) {\n\tid, err := c.appContext.IDGen.GenID(ctx)\n\treturn id, err\n}\n\nfunc (c *ConversationApplicationService) checkConversation(ctx context.Context, ar *run.AgentRunRequest, userID int64) (*convEntity.Conversation, error) {\n\tvar conversationData *convEntity.Conversation\n\tif ar.ConversationID > 0 {\n\n\t\trealCurrCon, err := c.ConversationDomainSVC.GetCurrentConversation(ctx, &convEntity.GetCurrent{\n\t\t\tUserID:      userID,\n\t\t\tAgentID:     ar.BotID,\n\t\t\tScene:       ptr.From(ar.Scene),\n\t\t\tConnectorID: consts.CozeConnectorID,\n\t\t})\n\t\tlogs.CtxInfof(ctx, \"conversatioin data:%v\", conv.DebugJsonToStr(realCurrCon))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif realCurrCon != nil {\n\t\t\tconversationData = realCurrCon\n\t\t}\n\n\t}\n\n\tif ar.ConversationID == 0 || conversationData == nil {\n\n\t\tconData, err := c.ConversationDomainSVC.Create(ctx, &convEntity.CreateMeta{\n\t\t\tAgentID:     ar.BotID,\n\t\t\tCreatorID:   userID,\n\t\t\tScene:       ptr.From(ar.Scene),\n\t\t\tConnectorID: consts.CozeConnectorID,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tlogs.CtxInfof(ctx, \"conversatioin create data:%v\", conv.DebugJsonToStr(conData))\n\t\tconversationData = conData\n\n\t\tar.ConversationID = conversationData.ID\n\t}\n\n\tif conversationData.CreatorID != userID {\n\t\treturn nil, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"conversation not match\"))\n\t}\n\n\treturn conversationData, nil\n}\n\nfunc (c *ConversationApplicationService) checkAgent(ctx context.Context, ar *run.AgentRunRequest) (*saEntity.SingleAgent, error) {\n\tagentInfo, err := c.appContext.SingleAgentDomainSVC.GetSingleAgent(ctx, ar.BotID, \"\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif agentInfo == nil {\n\t\treturn nil, errorx.New(errno.ErrAgentNotExists)\n\t}\n\treturn agentInfo, nil\n}\n\nfunc (c *ConversationApplicationService) buildAgentRunRequest(ctx context.Context, ar *run.AgentRunRequest, userID int64, spaceID int64, conversationData *convEntity.Conversation, shortcutCMD *cmdEntity.ShortcutCmd) (*entity.AgentRunMeta, error) {\n\tvar contentType crossDomainMessage.ContentType\n\tcontentType = crossDomainMessage.ContentTypeText\n\n\tif ptr.From(ar.ContentType) != string(crossDomainMessage.ContentTypeText) {\n\t\tcontentType = crossDomainMessage.ContentTypeMix\n\t}\n\n\tshortcutCMDData, err := c.buildTools(ctx, ar.ToolList, shortcutCMD)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tarm := &entity.AgentRunMeta{\n\t\tConversationID:   conversationData.ID,\n\t\tAgentID:          ar.BotID,\n\t\tContent:          c.buildMultiContent(ctx, ar),\n\t\tDisplayContent:   c.buildDisplayContent(ctx, ar),\n\t\tSpaceID:          spaceID,\n\t\tUserID:           conv.Int64ToStr(userID),\n\t\tCozeUID:          conversationData.CreatorID,\n\t\tSectionID:        conversationData.SectionID,\n\t\tPreRetrieveTools: shortcutCMDData,\n\t\tIsDraft:          ptr.From(ar.DraftMode),\n\t\tConnectorID:      consts.CozeConnectorID,\n\t\tContentType:      contentType,\n\t\tExt:              ar.Extra,\n\t}\n\treturn arm, nil\n}\n\nfunc (c *ConversationApplicationService) buildDisplayContent(ctx context.Context, ar *run.AgentRunRequest) string {\n\tif *ar.ContentType == run.ContentTypeText {\n\t\treturn \"\"\n\t}\n\treturn ar.Query\n}\n\nfunc (c *ConversationApplicationService) buildTools(ctx context.Context, tools []*run.Tool, shortcutCMD *cmdEntity.ShortcutCmd) ([]*entity.Tool, error) {\n\tvar ts []*entity.Tool\n\tfor _, tool := range tools {\n\t\tif shortcutCMD != nil {\n\n\t\t\targuments := make(map[string]string)\n\t\t\tfor key, parametersStruct := range tool.Parameters {\n\t\t\t\tif parametersStruct == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\targuments[key] = parametersStruct.Value\n\t\t\t\t// URI needs to be converted to url.\n\t\t\t\tif parametersStruct.ResourceType == consts.ShortcutCommandResourceType {\n\n\t\t\t\t\tresourceInfo, err := c.appContext.ImageX.GetResourceURL(ctx, parametersStruct.Value)\n\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t\targuments[key] = resourceInfo.URL\n\t\t\t\t}\n\t\t\t}\n\n\t\t\targBytes, err := json.Marshal(arguments)\n\t\t\tif err == nil {\n\t\t\t\tts = append(ts, &entity.Tool{\n\t\t\t\t\tPluginID:   shortcutCMD.PluginID,\n\t\t\t\t\tArguments:  string(argBytes),\n\t\t\t\t\tToolName:   shortcutCMD.PluginToolName,\n\t\t\t\t\tToolID:     shortcutCMD.PluginToolID,\n\t\t\t\t\tType:       agentrun.ToolType(shortcutCMD.ToolType),\n\t\t\t\t\tPluginFrom: bot_common.PluginFromPtr(bot_common.PluginFrom(shortcutCMD.Source)),\n\t\t\t\t})\n\t\t\t}\n\n\t\t}\n\t}\n\n\treturn ts, nil\n}\n\nfunc (c *ConversationApplicationService) buildMultiContent(ctx context.Context, ar *run.AgentRunRequest) []*crossDomainMessage.InputMetaData {\n\tvar multiContents []*crossDomainMessage.InputMetaData\n\n\tswitch *ar.ContentType {\n\tcase run.ContentTypeText:\n\t\tmultiContents = append(multiContents, &crossDomainMessage.InputMetaData{\n\t\t\tType: crossDomainMessage.InputTypeText,\n\t\t\tText: ar.Query,\n\t\t})\n\tcase run.ContentTypeImage, run.ContentTypeFile, run.ContentTypeMix, run.ContentTypeVideo, run.ContentTypeAudio:\n\t\tvar mc *run.MixContentModel\n\n\t\terr := json.Unmarshal([]byte(ar.Query), &mc)\n\t\tif err != nil {\n\t\t\tmultiContents = append(multiContents, &crossDomainMessage.InputMetaData{\n\t\t\t\tType: crossDomainMessage.InputTypeText,\n\t\t\t\tText: ar.Query,\n\t\t\t})\n\t\t\treturn multiContents\n\t\t}\n\n\t\tmcContent, newItemList := c.parseMultiContent(ctx, mc.ItemList)\n\n\t\tmultiContents = append(multiContents, mcContent...)\n\n\t\tmc.ItemList = newItemList\n\t\tmcByte, err := json.Marshal(mc)\n\t\tif err == nil {\n\t\t\tar.Query = string(mcByte)\n\t\t}\n\t}\n\n\treturn multiContents\n}\n\nfunc (c *ConversationApplicationService) parseMultiContent(ctx context.Context, mc []*run.Item) (multiContents []*crossDomainMessage.InputMetaData, mcNew []*run.Item) {\n\tfor index, item := range mc {\n\t\tswitch item.Type {\n\t\tcase run.ContentTypeText:\n\t\t\tmultiContents = append(multiContents, &crossDomainMessage.InputMetaData{\n\t\t\t\tType: crossDomainMessage.InputTypeText,\n\t\t\t\tText: item.Text,\n\t\t\t})\n\t\tcase run.ContentTypeImage:\n\n\t\t\tresourceUrl, err := c.getUrlByUri(ctx, item.Image.Key)\n\t\t\tif err != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"failed to unescape resource url, err is %v\", err)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif resourceUrl == \"\" {\n\t\t\t\tlogs.CtxErrorf(ctx, \"failed to unescape resource url, uri is %v\", item.Image.Key)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tmc[index].Image.ImageThumb.URL = resourceUrl\n\t\t\tmc[index].Image.ImageOri.URL = resourceUrl\n\n\t\t\tmultiContents = append(multiContents, &crossDomainMessage.InputMetaData{\n\t\t\t\tType: crossDomainMessage.InputTypeImage,\n\t\t\t\tFileData: []*crossDomainMessage.FileData{\n\t\t\t\t\t{\n\t\t\t\t\t\tUrl: resourceUrl,\n\t\t\t\t\t\tURI: item.Image.Key,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\tcase run.ContentTypeFile, run.ContentTypeAudio, run.ContentTypeVideo:\n\n\t\t\tresourceUrl, err := c.getUrlByUri(ctx, item.File.FileKey)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tmc[index].File.FileURL = resourceUrl\n\n\t\t\tmultiContents = append(multiContents, &crossDomainMessage.InputMetaData{\n\t\t\t\tType: c.getType(item.File.FileType),\n\t\t\t\tFileData: []*crossDomainMessage.FileData{\n\t\t\t\t\t{\n\t\t\t\t\t\tUrl: resourceUrl,\n\t\t\t\t\t\tURI: item.File.FileKey,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\treturn multiContents, mc\n}\nfunc (c *ConversationApplicationService) getType(fileType string) crossDomainMessage.InputType {\n\tswitch fileType {\n\tcase string(crossDomainMessage.InputTypeAudio):\n\t\treturn crossDomainMessage.InputTypeAudio\n\tcase string(crossDomainMessage.InputTypeVideo):\n\t\treturn crossDomainMessage.InputTypeVideo\n\tdefault:\n\t\treturn crossDomainMessage.InputTypeFile\n\t}\n}\n\nfunc (c *ConversationApplicationService) getUrlByUri(ctx context.Context, uri string) (string, error) {\n\n\turl, err := c.appContext.ImageX.GetResourceURL(ctx, uri)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn url.URL, nil\n}\n"
  },
  {
    "path": "backend/application/conversation/build_chunk_event.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage conversation\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/hertz-contrib/sse\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/run\"\n)\n\nfunc buildDoneEvent(event string) *sse.Event {\n\treturn &sse.Event{\n\t\tEvent: event,\n\t}\n}\n\nfunc buildErrorEvent(errCode int64, errMsg string) *sse.Event {\n\terrData := run.ErrorData{\n\t\tCode: errCode,\n\t\tMsg:  errMsg,\n\t}\n\ted, _ := json.Marshal(errData)\n\n\treturn &sse.Event{\n\t\tEvent: run.RunEventError,\n\t\tData:  ed,\n\t}\n}\n\nfunc buildMessageChunkEvent(event string, chunkMsg []byte) *sse.Event {\n\treturn &sse.Event{\n\t\tEvent: event,\n\t\tData:  chunkMsg,\n\t}\n}\n"
  },
  {
    "path": "backend/application/conversation/conversation.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage conversation\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/conversation\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tagentrun \"github.com/coze-dev/coze-studio/backend/domain/conversation/agentrun/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/conversation/conversation/entity\"\n\tconversationService \"github.com/coze-dev/coze-studio/backend/domain/conversation/conversation/service\"\n\tmessage \"github.com/coze-dev/coze-studio/backend/domain/conversation/message/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/service\"\n\tuploadService \"github.com/coze-dev/coze-studio/backend/domain/upload/service\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\ntype ConversationApplicationService struct {\n\tappContext *ServiceComponents\n\n\tAgentRunDomainSVC     agentrun.Run\n\tConversationDomainSVC conversationService.Conversation\n\tMessageDomainSVC      message.Message\n\n\tShortcutDomainSVC service.ShortcutCmd\n}\n\nvar ConversationSVC = new(ConversationApplicationService)\n\ntype OpenapiAgentRunApplication struct {\n\tShortcutDomainSVC service.ShortcutCmd\n\tUploaodDomainSVC  uploadService.UploadService\n}\n\nvar ConversationOpenAPISVC = new(OpenapiAgentRunApplication)\n\nfunc (c *ConversationApplicationService) ClearHistory(ctx context.Context, req *conversation.ClearConversationHistoryRequest) (*conversation.ClearConversationHistoryResponse, error) {\n\tresp := new(conversation.ClearConversationHistoryResponse)\n\n\tconversationID := req.ConversationID\n\n\t// get conversation\n\tcurrentRes, err := c.ConversationDomainSVC.GetByID(ctx, conversationID)\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tif currentRes == nil {\n\t\treturn resp, errorx.New(errno.ErrConversationNotFound)\n\t}\n\t// check user\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil || *userID != currentRes.CreatorID {\n\t\treturn resp, errorx.New(errno.ErrConversationNotFound, errorx.KV(\"msg\", \"user not match\"))\n\t}\n\n\t// delete conversation\n\terr = c.ConversationDomainSVC.Delete(ctx, conversationID)\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\t// create new conversation\n\tconvRes, err := c.ConversationDomainSVC.Create(ctx, &entity.CreateMeta{\n\t\tAgentID:     currentRes.AgentID,\n\t\tCreatorID:   currentRes.CreatorID,\n\t\tScene:       currentRes.Scene,\n\t\tConnectorID: consts.CozeConnectorID,\n\t})\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tresp.NewSectionID = convRes.SectionID\n\treturn resp, nil\n}\n\nfunc (c *ConversationApplicationService) CreateSection(ctx context.Context, conversationID int64) (int64, error) {\n\tcurrentRes, err := c.ConversationDomainSVC.GetByID(ctx, conversationID)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tif currentRes == nil {\n\t\treturn 0, errorx.New(errno.ErrConversationNotFound, errorx.KV(\"msg\", \"conversation not found\"))\n\t}\n\tvar userID int64\n\tif currentRes.ConnectorID == consts.CozeConnectorID {\n\t\tuserID = ctxutil.MustGetUIDFromCtx(ctx)\n\t} else {\n\t\tuserID = ctxutil.MustGetUIDFromApiAuthCtx(ctx)\n\t}\n\n\tif userID != currentRes.CreatorID {\n\t\treturn 0, errorx.New(errno.ErrConversationNotFound, errorx.KV(\"msg\", \"user not match\"))\n\t}\n\n\tconvRes, err := c.ConversationDomainSVC.NewConversationCtx(ctx, &entity.NewConversationCtxRequest{\n\t\tID: conversationID,\n\t})\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn convRes.SectionID, nil\n}\n\nfunc (c *ConversationApplicationService) CreateConversation(ctx context.Context, req *conversation.CreateConversationRequest) (*conversation.CreateConversationResponse, error) {\n\tresp := new(conversation.CreateConversationResponse)\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tcreatorID := apiKeyInfo.UserID\n\tconnectorID := req.GetConnectorId()\n\tagentID := req.GetBotId()\n\tif connectorID != consts.WebSDKConnectorID {\n\t\tconnectorID = apiKeyInfo.ConnectorID\n\t}\n\n\tconversationData, err := c.ConversationDomainSVC.Create(ctx, &entity.CreateMeta{\n\t\tAgentID:     agentID,\n\t\tUserID:      req.UserID,\n\t\tCreatorID:   creatorID,\n\t\tConnectorID: connectorID,\n\t\tScene:       common.Scene_SceneOpenApi,\n\t\tExt:         parseMetaData(req.MetaData),\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresp.ConversationData = &conversation.ConversationData{\n\t\tId:            conversationData.ID,\n\t\tLastSectionID: &conversationData.SectionID,\n\t\tConnectorID:   &conversationData.ConnectorID,\n\t\tCreatedAt:     conversationData.CreatedAt / 1000,\n\t\tMetaData:      parseExt(conversationData.Ext),\n\t\tUserID:        conversationData.UserID,\n\t}\n\treturn resp, nil\n}\n\nfunc parseMetaData(metaData map[string]string) string {\n\tif metaData == nil {\n\t\treturn \"\"\n\t}\n\tj, err := json.Marshal(metaData)\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\treturn string(j)\n}\n\nfunc parseExt(ext string) map[string]string {\n\tif ext == \"\" {\n\t\treturn nil\n\t}\n\tvar metaData map[string]string\n\terr := json.Unmarshal([]byte(ext), &metaData)\n\tif err != nil {\n\t\treturn nil\n\t}\n\treturn metaData\n}\nfunc (c *ConversationApplicationService) ListConversation(ctx context.Context, req *conversation.ListConversationsApiRequest) (*conversation.ListConversationsApiResponse, error) {\n\n\tresp := new(conversation.ListConversationsApiResponse)\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tuserID := apiKeyInfo.UserID\n\tconnectorID := apiKeyInfo.ConnectorID\n\n\tif userID == 0 {\n\t\treturn resp, errorx.New(errno.ErrConversationNotFound)\n\t}\n\tif ptr.From(req.ConnectorID) == consts.WebSDKConnectorID {\n\t\tconnectorID = ptr.From(req.ConnectorID)\n\t}\n\n\tconversationDOList, hasMore, err := c.ConversationDomainSVC.List(ctx, &entity.ListMeta{\n\t\tCreatorID:   userID,\n\t\tAgentID:     req.GetBotID(),\n\t\tConnectorID: connectorID,\n\t\tScene:       common.Scene_SceneOpenApi,\n\t\tPage:        int(req.GetPageNum()),\n\t\tLimit:       int(req.GetPageSize()),\n\t\tOrderBy: func() *string {\n\t\t\tif strings.ToLower(req.GetSortOrder()) == \"asc\" {\n\t\t\t\treturn ptr.Of(\"asc\")\n\t\t\t}\n\t\t\treturn nil\n\t\t}(),\n\t\tUserID: req.UserID,\n\t})\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tconversationData := slices.Transform(conversationDOList, func(conv *entity.Conversation) *conversation.ConversationData {\n\t\treturn &conversation.ConversationData{\n\t\t\tId:            conv.ID,\n\t\t\tLastSectionID: &conv.SectionID,\n\t\t\tConnectorID:   &conv.ConnectorID,\n\t\t\tCreatedAt:     conv.CreatedAt / 1000,\n\t\t\tName:          ptr.Of(conv.Name),\n\t\t\tMetaData:      parseExt(conv.Ext),\n\t\t\tUserID:        conv.UserID,\n\t\t}\n\t})\n\n\tresp.Data = &conversation.ListConversationData{\n\t\tConversations: conversationData,\n\t\tHasMore:       hasMore,\n\t}\n\treturn resp, nil\n}\n\nfunc (c *ConversationApplicationService) DeleteConversation(ctx context.Context, req *conversation.DeleteConversationApiRequest) (*conversation.DeleteConversationApiResponse, error) {\n\tresp := new(conversation.DeleteConversationApiResponse)\n\tconvID := req.GetConversationID()\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tuserID := apiKeyInfo.UserID\n\n\tif userID == 0 {\n\t\treturn resp, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"permission check failed\"))\n\t}\n\n\tconversationDO, err := c.ConversationDomainSVC.GetByID(ctx, convID)\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tif conversationDO == nil {\n\t\treturn resp, errorx.New(errno.ErrConversationNotFound)\n\t}\n\tif conversationDO.CreatorID != userID {\n\t\treturn resp, errorx.New(errno.ErrConversationNotFound, errorx.KV(\"msg\", \"user not match\"))\n\t}\n\terr = c.ConversationDomainSVC.Delete(ctx, convID)\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\treturn resp, nil\n}\n\nfunc (c *ConversationApplicationService) UpdateConversation(ctx context.Context, req *conversation.UpdateConversationApiRequest) (*conversation.UpdateConversationApiResponse, error) {\n\tresp := new(conversation.UpdateConversationApiResponse)\n\tconvID := req.GetConversationID()\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tuserID := apiKeyInfo.UserID\n\n\tif userID == 0 {\n\t\treturn resp, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"permission check failed\"))\n\t}\n\n\tconversationDO, err := c.ConversationDomainSVC.GetByID(ctx, convID)\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tif conversationDO == nil {\n\t\treturn resp, errorx.New(errno.ErrConversationNotFound)\n\t}\n\tif conversationDO.CreatorID != userID {\n\t\treturn resp, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"user not match\"))\n\t}\n\n\tupdateResult, err := c.ConversationDomainSVC.Update(ctx, &entity.UpdateMeta{\n\t\tID:   convID,\n\t\tName: req.GetName(),\n\t})\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tresp.ConversationData = &conversation.ConversationData{\n\t\tId:            updateResult.ID,\n\t\tLastSectionID: &updateResult.SectionID,\n\t\tConnectorID:   &updateResult.ConnectorID,\n\t\tCreatedAt:     updateResult.CreatedAt / 1000,\n\t\tName:          ptr.Of(updateResult.Name),\n\t}\n\treturn resp, nil\n}\n\nfunc (c *ConversationApplicationService) RetrieveConversation(ctx context.Context, req *conversation.RetrieveConversationApiRequest) (*conversation.RetrieveConversationApiResponse, error) {\n\tresp := new(conversation.RetrieveConversationApiResponse)\n\tconvID := req.GetConversationID()\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tuserID := apiKeyInfo.UserID\n\n\tif userID == 0 {\n\t\treturn resp, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"permission check failed\"))\n\t}\n\n\tconversationDO, err := c.ConversationDomainSVC.GetByID(ctx, convID)\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tif conversationDO == nil {\n\t\treturn resp, errorx.New(errno.ErrConversationNotFound)\n\t}\n\tif conversationDO.CreatorID != userID {\n\t\treturn resp, errorx.New(errno.ErrConversationNotFound, errorx.KV(\"msg\", \"user not match\"))\n\t}\n\n\tresp.ConversationData = &conversation.ConversationData{\n\t\tId:            conversationDO.ID,\n\t\tLastSectionID: &conversationDO.SectionID,\n\t\tConnectorID:   &conversationDO.ConnectorID,\n\t\tCreatedAt:     conversationDO.CreatedAt / 1000,\n\t\tName:          ptr.Of(conversationDO.Name),\n\t\tCreatorID:     &conversationDO.CreatorID,\n\t\tMetaData:      parseExt(conversationDO.Ext),\n\t}\n\treturn resp, nil\n}\n"
  },
  {
    "path": "backend/application/conversation/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage conversation\n\nimport (\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/application/singleagent\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/conversation/agentrun/repository\"\n\tagentrun \"github.com/coze-dev/coze-studio/backend/domain/conversation/agentrun/service\"\n\tconvRepo \"github.com/coze-dev/coze-studio/backend/domain/conversation/conversation/repository\"\n\tconversation \"github.com/coze-dev/coze-studio/backend/domain/conversation/conversation/service\"\n\tmsgRepo \"github.com/coze-dev/coze-studio/backend/domain/conversation/message/repository\"\n\tmessage \"github.com/coze-dev/coze-studio/backend/domain/conversation/message/service\"\n\tshortcutRepo \"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/repository\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/service\"\n\tuploadService \"github.com/coze-dev/coze-studio/backend/domain/upload/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/imagex\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n)\n\ntype ServiceComponents struct {\n\tIDGen     idgen.IDGenerator\n\tDB        *gorm.DB\n\tTosClient storage.Storage\n\tImageX    imagex.ImageX\n\n\tSingleAgentDomainSVC singleagent.SingleAgent\n}\n\nfunc InitService(s *ServiceComponents) *ConversationApplicationService {\n\tmDomainComponents := &message.Components{\n\t\tMessageRepo: msgRepo.NewMessageRepo(s.DB, s.IDGen),\n\t}\n\tmessageDomainSVC := message.NewService(mDomainComponents)\n\n\tcDomainComponents := &conversation.Components{\n\t\tConversationRepo: convRepo.NewConversationRepo(s.DB, s.IDGen),\n\t}\n\n\tconversationDomainSVC := conversation.NewService(cDomainComponents)\n\n\tarDomainComponents := &agentrun.Components{\n\t\tRunRecordRepo: repository.NewRunRecordRepo(s.DB, s.IDGen),\n\t\tImagexSVC:     s.ImageX,\n\t}\n\n\tagentRunDomainSVC := agentrun.NewService(arDomainComponents)\n\tcomponents := &service.Components{\n\t\tShortCutCmdRepo: shortcutRepo.NewShortCutCmdRepo(s.DB, s.IDGen),\n\t}\n\tshortcutCmdDomainSVC := service.NewShortcutCommandService(components)\n\n\tConversationSVC.AgentRunDomainSVC = agentRunDomainSVC\n\tConversationSVC.MessageDomainSVC = messageDomainSVC\n\tConversationSVC.ConversationDomainSVC = conversationDomainSVC\n\tConversationSVC.appContext = s\n\tConversationSVC.ShortcutDomainSVC = shortcutCmdDomainSVC\n\n\tConversationOpenAPISVC.ShortcutDomainSVC = shortcutCmdDomainSVC\n\tuploadSVC := uploadService.NewUploadSVC(s.DB, s.IDGen, s.TosClient)\n\tConversationOpenAPISVC.UploaodDomainSVC = uploadSVC\n\tOpenapiMessageSVC.UploaodDomainSVC = uploadSVC\n\n\treturn ConversationSVC\n}\n"
  },
  {
    "path": "backend/application/conversation/message.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage conversation\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"strconv\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/message\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/run\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tmodel \"github.com/coze-dev/coze-studio/backend/crossdomain/message/model\"\n\tsingleAgentEntity \"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/entity\"\n\tconvEntity \"github.com/coze-dev/coze-studio/backend/domain/conversation/conversation/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/conversation/message/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc (c *ConversationApplicationService) GetMessageList(ctx context.Context, mr *message.GetMessageListRequest) (*message.GetMessageListResponse, error) {\n\t// Get Conversation ID by agent id & userID & scene\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\n\tagentID, err := strconv.ParseInt(mr.BotID, 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcurrentConversation, isNewCreate, err := c.getCurrentConversation(ctx, *userID, agentID, *mr.Scene, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif isNewCreate {\n\t\treturn &message.GetMessageListResponse{\n\t\t\tMessageList:    []*message.ChatMessage{},\n\t\t\tCursor:         mr.Cursor,\n\t\t\tNextCursor:     \"0\",\n\t\t\tNextHasMore:    false,\n\t\t\tConversationID: strconv.FormatInt(currentConversation.ID, 10),\n\t\t\tLastSectionID:  ptr.Of(strconv.FormatInt(currentConversation.SectionID, 10)),\n\t\t}, nil\n\t}\n\n\tcursor, err := strconv.ParseInt(mr.Cursor, 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmListMessages, err := c.MessageDomainSVC.List(ctx, &entity.ListMeta{\n\t\tConversationID: currentConversation.ID,\n\t\tAgentID:        agentID,\n\t\tLimit:          int(mr.Count),\n\t\tCursor:         cursor,\n\t\tDirection:      loadDirectionToScrollDirection(mr.LoadDirection),\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// get agent id\n\tvar agentIDs []int64\n\tfor _, mOne := range mListMessages.Messages {\n\t\tagentIDs = append(agentIDs, mOne.AgentID)\n\t}\n\n\tagentInfo, err := c.buildAgentInfo(ctx, agentIDs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresp := c.buildMessageListResponse(ctx, mListMessages, currentConversation)\n\n\tresp.ParticipantInfoMap = map[string]*message.MsgParticipantInfo{}\n\tfor _, aOne := range agentInfo {\n\t\tresp.ParticipantInfoMap[aOne.ID] = aOne\n\t}\n\treturn resp, err\n}\n\nfunc (c *ConversationApplicationService) buildAgentInfo(ctx context.Context, agentIDs []int64) ([]*message.MsgParticipantInfo, error) {\n\tvar result []*message.MsgParticipantInfo\n\tif len(agentIDs) > 0 {\n\t\tagentInfos, err := c.appContext.SingleAgentDomainSVC.MGetSingleAgentDraft(ctx, agentIDs)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresult = slices.Transform(agentInfos, func(a *singleAgentEntity.SingleAgent) *message.MsgParticipantInfo {\n\t\t\treturn &message.MsgParticipantInfo{\n\t\t\t\tID:        strconv.FormatInt(a.AgentID, 10),\n\t\t\t\tName:      a.Name,\n\t\t\t\tUserID:    strconv.FormatInt(a.CreatorID, 10),\n\t\t\t\tDesc:      a.Desc,\n\t\t\t\tAvatarURL: a.IconURI,\n\t\t\t}\n\t\t})\n\t}\n\n\treturn result, nil\n}\n\nfunc (c *ConversationApplicationService) getCurrentConversation(ctx context.Context, userID int64, agentID int64, scene common.Scene, connectorID *int64) (*convEntity.Conversation, bool, error) {\n\tvar currentConversation *convEntity.Conversation\n\tvar isNewCreate bool\n\n\tif connectorID == nil && scene == common.Scene_Playground {\n\t\tconnectorID = ptr.Of(consts.CozeConnectorID)\n\t}\n\n\tcurrentConversation, err := c.ConversationDomainSVC.GetCurrentConversation(ctx, &convEntity.GetCurrent{\n\t\tUserID:      userID,\n\t\tScene:       scene,\n\t\tAgentID:     agentID,\n\t\tConnectorID: ptr.From(connectorID),\n\t})\n\tif err != nil {\n\t\treturn nil, isNewCreate, err\n\t}\n\n\tif currentConversation == nil { // new conversation\n\t\t// create conversation\n\t\tccNew, err := c.ConversationDomainSVC.Create(ctx, &convEntity.CreateMeta{\n\t\t\tAgentID:     agentID,\n\t\t\tCreatorID:   userID,\n\t\t\tScene:       scene,\n\t\t\tConnectorID: ptr.From(connectorID),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, isNewCreate, err\n\t\t}\n\t\tif ccNew == nil {\n\t\t\treturn nil, isNewCreate,\n\t\t\t\terrorx.New(errno.ErrConversationNotFound)\n\t\t}\n\t\tisNewCreate = true\n\t\tcurrentConversation = ccNew\n\t}\n\n\treturn currentConversation, isNewCreate, nil\n}\n\nfunc loadDirectionToScrollDirection(direction *message.LoadDirection) entity.ScrollPageDirection {\n\tif direction != nil && *direction == message.LoadDirection_Next {\n\t\treturn entity.ScrollPageDirectionNext\n\t}\n\treturn entity.ScrollPageDirectionPrev\n}\n\nfunc (c *ConversationApplicationService) buildMessageListResponse(ctx context.Context, mListMessages *entity.ListResult, currentConversation *convEntity.Conversation) *message.GetMessageListResponse {\n\tvar messages []*message.ChatMessage\n\trunToQuestionIDMap := make(map[int64]int64)\n\n\tfor _, mMessage := range mListMessages.Messages {\n\t\tif mMessage.MessageType == model.MessageTypeQuestion {\n\t\t\trunToQuestionIDMap[mMessage.RunID] = mMessage.ID\n\t\t}\n\t}\n\n\tfor _, mMessage := range mListMessages.Messages {\n\t\tmessages = append(messages, c.buildDomainMsg2VOMessage(ctx, mMessage, runToQuestionIDMap))\n\t}\n\n\tresp := &message.GetMessageListResponse{\n\t\tMessageList:             messages,\n\t\tCursor:                  strconv.FormatInt(mListMessages.PrevCursor, 10),\n\t\tNextCursor:              strconv.FormatInt(mListMessages.NextCursor, 10),\n\t\tConversationID:          strconv.FormatInt(currentConversation.ID, 10),\n\t\tLastSectionID:           ptr.Of(strconv.FormatInt(currentConversation.SectionID, 10)),\n\t\tConnectorConversationID: strconv.FormatInt(currentConversation.ID, 10),\n\t}\n\n\tif mListMessages.Direction == entity.ScrollPageDirectionPrev {\n\t\tresp.Hasmore = mListMessages.HasMore\n\t} else {\n\t\tresp.NextHasMore = mListMessages.HasMore\n\t}\n\n\treturn resp\n}\n\nfunc (c *ConversationApplicationService) buildDomainMsg2VOMessage(ctx context.Context, dm *entity.Message, runToQuestionIDMap map[int64]int64) *message.ChatMessage {\n\tcm := &message.ChatMessage{\n\t\tMessageID:        strconv.FormatInt(dm.ID, 10),\n\t\tRole:             string(dm.Role),\n\t\tType:             string(dm.MessageType),\n\t\tContent:          dm.Content,\n\t\tContentType:      string(dm.ContentType),\n\t\tReplyID:          \"0\",\n\t\tSectionID:        strconv.FormatInt(dm.SectionID, 10),\n\t\tExtraInfo:        buildDExt2ApiExt(dm.Ext),\n\t\tContentTime:      dm.CreatedAt,\n\t\tStatus:           \"available\",\n\t\tSource:           0,\n\t\tReasoningContent: ptr.Of(dm.ReasoningContent),\n\t}\n\n\tif dm.Status == model.MessageStatusBroken {\n\t\tcm.BrokenPos = ptr.Of(dm.Position)\n\t}\n\n\tif dm.ContentType == model.ContentTypeMix && dm.DisplayContent != \"\" {\n\t\tcm.Content = c.buildParseMessageURI(ctx, dm.DisplayContent)\n\t}\n\n\tif dm.MessageType != model.MessageTypeQuestion {\n\t\tcm.ReplyID = strconv.FormatInt(runToQuestionIDMap[dm.RunID], 10)\n\t\tcm.SenderID = ptr.Of(strconv.FormatInt(dm.AgentID, 10))\n\t}\n\treturn cm\n}\n\nfunc (c *ConversationApplicationService) buildParseMessageURI(ctx context.Context, msgContent string) string {\n\n\tif msgContent == \"\" {\n\t\treturn msgContent\n\t}\n\n\tvar mc *run.MixContentModel\n\terr := json.Unmarshal([]byte(msgContent), &mc)\n\tif err != nil {\n\t\treturn msgContent\n\t}\n\tfor k, item := range mc.ItemList {\n\t\tswitch item.Type {\n\t\tcase run.ContentTypeImage:\n\n\t\t\turl, pErr := c.appContext.ImageX.GetResourceURL(ctx, item.Image.Key)\n\t\t\tif pErr == nil {\n\t\t\t\tmc.ItemList[k].Image.ImageThumb.URL = url.URL\n\t\t\t\tmc.ItemList[k].Image.ImageOri.URL = url.URL\n\t\t\t}\n\n\t\tcase run.ContentTypeFile, run.ContentTypeAudio, run.ContentTypeVideo:\n\t\t\turl, pErr := c.appContext.ImageX.GetResourceURL(ctx, item.File.FileKey)\n\t\t\tif pErr == nil {\n\t\t\t\tmc.ItemList[k].File.FileURL = url.URL\n\n\t\t\t}\n\n\t\tdefault:\n\n\t\t}\n\t}\n\tjsonMsg, err := json.Marshal(mc)\n\tif err != nil {\n\t\treturn msgContent\n\t}\n\n\treturn string(jsonMsg)\n}\n\nfunc buildDExt2ApiExt(extra map[string]string) *message.ExtraInfo {\n\treturn &message.ExtraInfo{\n\t\tInputTokens:         extra[\"input_tokens\"],\n\t\tOutputTokens:        extra[\"output_tokens\"],\n\t\tToken:               extra[\"token\"],\n\t\tPluginStatus:        extra[\"plugin_status\"],\n\t\tTimeCost:            extra[\"time_cost\"],\n\t\tWorkflowTokens:      extra[\"workflow_tokens\"],\n\t\tBotState:            extra[\"bot_state\"],\n\t\tPluginRequest:       extra[\"plugin_request\"],\n\t\tToolName:            extra[\"tool_name\"],\n\t\tPlugin:              extra[\"plugin\"],\n\t\tMockHitInfo:         extra[\"mock_hit_info\"],\n\t\tMessageTitle:        extra[\"message_title\"],\n\t\tStreamPluginRunning: extra[\"stream_plugin_running\"],\n\t\tExecuteDisplayName:  extra[\"execute_display_name\"],\n\t\tTaskType:            extra[\"task_type\"],\n\t\tReferFormat:         extra[\"refer_format\"],\n\t}\n}\n\nfunc (c *ConversationApplicationService) DeleteMessage(ctx context.Context, mr *message.DeleteMessageRequest) (*message.DeleteMessageResponse, error) {\n\tresp := new(message.DeleteMessageResponse)\n\tmessageInfo, err := c.MessageDomainSVC.GetByID(ctx, mr.MessageID)\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tif messageInfo == nil {\n\t\treturn resp, errorx.New(errno.ErrConversationMessageNotFound)\n\t}\n\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif messageInfo.UserID != conv.Int64ToStr(*userID) {\n\t\treturn resp, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"permission denied\"))\n\t}\n\n\terr = c.AgentRunDomainSVC.Delete(ctx, []int64{messageInfo.RunID})\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\n\terr = c.MessageDomainSVC.Delete(ctx, &entity.DeleteMeta{\n\t\tRunIDs: []int64{messageInfo.RunID},\n\t})\n\tif err != nil {\n\t\treturn resp, nil\n\t}\n\n\treturn resp, nil\n}\n\nfunc (c *ConversationApplicationService) BreakMessage(ctx context.Context, mr *message.BreakMessageRequest) (*message.BreakMessageResponse, error) {\n\tresp := new(message.BreakMessageResponse)\n\tmessageInfo, err := c.MessageDomainSVC.GetByID(ctx, mr.GetAnswerMessageID())\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tif messageInfo == nil {\n\t\treturn resp, errorx.New(errno.ErrConversationMessageNotFound)\n\t}\n\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif messageInfo.UserID != conv.Int64ToStr(*userID) {\n\t\treturn resp, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"permission denied\"))\n\t}\n\n\tif messageInfo.ConversationID != mr.ConversationID {\n\t\treturn resp, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"conversation not match\"))\n\t}\n\n\terr = c.MessageDomainSVC.Broken(ctx, &entity.BrokenMeta{\n\t\tID:       *mr.AnswerMessageID,\n\t\tPosition: mr.BrokenPos,\n\t})\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\n\treturn resp, nil\n}\n"
  },
  {
    "path": "backend/application/conversation/openapi_agent_run.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage conversation\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"io\"\n\t\"slices\"\n\t\"strconv\"\n\n\t\"github.com/cloudwego/eino/schema\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/message\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/run\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tsingleagent \"github.com/coze-dev/coze-studio/backend/crossdomain/agent/model\"\n\tagentrun \"github.com/coze-dev/coze-studio/backend/crossdomain/agentrun/model\"\n\tcrossmessage \"github.com/coze-dev/coze-studio/backend/crossdomain/message/model\"\n\tsaEntity \"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/conversation/agentrun/entity\"\n\tconvEntity \"github.com/coze-dev/coze-studio/backend/domain/conversation/conversation/entity\"\n\tcmdEntity \"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/entity\"\n\tuploadService \"github.com/coze-dev/coze-studio/backend/domain/upload/service\"\n\tsseImpl \"github.com/coze-dev/coze-studio/backend/infra/sse/impl/sse\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc (a *OpenapiAgentRunApplication) OpenapiAgentRun(ctx context.Context, sseSender *sseImpl.SSenderImpl, ar *run.ChatV3Request) error {\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tcreatorID := apiKeyInfo.UserID\n\tconnectorID := apiKeyInfo.ConnectorID\n\n\tif ptr.From(ar.ConnectorID) == consts.WebSDKConnectorID {\n\t\tconnectorID = ptr.From(ar.ConnectorID)\n\t}\n\tagentInfo, caErr := a.checkAgent(ctx, ar, connectorID)\n\tif caErr != nil {\n\t\tlogs.CtxErrorf(ctx, \"checkAgent err:%v\", caErr)\n\t\treturn caErr\n\t}\n\n\tif creatorID != agentInfo.CreatorID {\n\t\treturn errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"agent not match\"))\n\t}\n\n\tconversationData, ccErr := a.checkConversation(ctx, ar, creatorID, connectorID)\n\tif ccErr != nil {\n\t\tlogs.CtxErrorf(ctx, \"checkConversation err:%v\", ccErr)\n\t\treturn ccErr\n\t}\n\n\tif conversationData.CreatorID != creatorID {\n\t\treturn errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"user not match\"))\n\t}\n\n\tspaceID := agentInfo.SpaceID\n\tarr, err := a.buildAgentRunRequest(ctx, ar, connectorID, spaceID, conversationData)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"buildAgentRunRequest err:%v\", err)\n\t\treturn err\n\t}\n\tstreamer, err := ConversationSVC.AgentRunDomainSVC.AgentRun(ctx, arr)\n\tif err != nil {\n\t\treturn err\n\t}\n\ta.pullStream(ctx, sseSender, streamer)\n\treturn nil\n}\n\nfunc (a *OpenapiAgentRunApplication) checkConversation(ctx context.Context, ar *run.ChatV3Request, creatorID int64, connectorID int64) (*convEntity.Conversation, error) {\n\tvar conversationData *convEntity.Conversation\n\tif ptr.From(ar.ConversationID) > 0 {\n\t\tconData, err := ConversationSVC.ConversationDomainSVC.GetByID(ctx, ptr.From(ar.ConversationID))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tconversationData = conData\n\t}\n\n\tif ptr.From(ar.ConversationID) == 0 || conversationData == nil {\n\n\t\tconData, err := ConversationSVC.ConversationDomainSVC.Create(ctx, &convEntity.CreateMeta{\n\t\t\tAgentID:     ar.BotID,\n\t\t\tCreatorID:   creatorID,\n\t\t\tConnectorID: connectorID,\n\t\t\tScene:       common.Scene_SceneOpenApi,\n\t\t\tUserID:      ptr.Of(ar.User),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif conData == nil {\n\t\t\treturn nil, errorx.New(errno.ErrConversationNotFound)\n\t\t}\n\t\tconversationData = conData\n\n\t\tar.ConversationID = ptr.Of(conversationData.ID)\n\t}\n\n\tif conversationData.CreatorID != creatorID {\n\t\treturn nil, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"user not match\"))\n\t}\n\n\treturn conversationData, nil\n}\n\nfunc (a *OpenapiAgentRunApplication) checkAgent(ctx context.Context, ar *run.ChatV3Request, connectorID int64) (*saEntity.SingleAgent, error) {\n\tagentInfo, err := ConversationSVC.appContext.SingleAgentDomainSVC.ObtainAgentByIdentity(ctx, &singleagent.AgentIdentity{\n\t\tAgentID:     ar.BotID,\n\t\tIsDraft:     false,\n\t\tConnectorID: connectorID,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif agentInfo == nil {\n\t\treturn nil, errorx.New(errno.ErrAgentNotExists)\n\t}\n\treturn agentInfo, nil\n}\n\nfunc (a *OpenapiAgentRunApplication) buildAgentRunRequest(ctx context.Context, ar *run.ChatV3Request, connectorID int64, spaceID int64, conversationData *convEntity.Conversation) (*entity.AgentRunMeta, error) {\n\n\tshortcutCMDData, err := a.buildTools(ctx, ar.ShortcutCommand)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tmultiAdditionalMessages, err := a.parseAdditionalMessages(ctx, ar)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfilterMultiAdditionalMessages, multiContent, contentType, err := a.parseQueryContent(ctx, multiAdditionalMessages)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdisplayContent := a.buildDisplayContent(ctx, ar)\n\tchatflowParameters, err := parseChatflowParameters(ctx, ar)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tarm := &entity.AgentRunMeta{\n\t\tConversationID:   ptr.From(ar.ConversationID),\n\t\tAgentID:          ar.BotID,\n\t\tContent:          multiContent,\n\t\tDisplayContent:   displayContent,\n\t\tSpaceID:          spaceID,\n\t\tUserID:           ar.User,\n\t\tSectionID:        conversationData.SectionID,\n\t\tPreRetrieveTools: shortcutCMDData,\n\t\tIsDraft:          false,\n\t\tConnectorID:      connectorID,\n\t\tContentType:      contentType,\n\t\tExt: func() map[string]string {\n\t\t\tif ar.ExtraParams == nil {\n\t\t\t\treturn map[string]string{}\n\t\t\t}\n\t\t\treturn ar.ExtraParams\n\t\t}(),\n\t\tCustomVariables:    ar.CustomVariables,\n\t\tCozeUID:            conversationData.CreatorID,\n\t\tAdditionalMessages: filterMultiAdditionalMessages,\n\t\tChatflowParameters: chatflowParameters,\n\t}\n\treturn arm, nil\n}\nfunc parseChatflowParameters(ctx context.Context, ar *run.ChatV3Request) (map[string]any, error) {\n\tparameters := make(map[string]any)\n\tif ar.Parameters != nil {\n\t\tif err := json.Unmarshal([]byte(*ar.Parameters), &parameters); err != nil {\n\t\t\treturn nil, errors.New(\"parameters field should be an object, not a string\")\n\t\t}\n\t\treturn parameters, nil\n\t}\n\treturn parameters, nil\n}\n\nfunc (a *OpenapiAgentRunApplication) buildTools(ctx context.Context, shortcmd *run.ShortcutCommandDetail) ([]*entity.Tool, error) {\n\tvar ts []*entity.Tool\n\n\tif shortcmd == nil {\n\t\treturn ts, nil\n\t}\n\n\tvar shortcutCMD *cmdEntity.ShortcutCmd\n\tcmdMeta, err := a.ShortcutDomainSVC.GetByCmdID(ctx, shortcmd.CommandID, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tshortcutCMD = cmdMeta\n\tif shortcutCMD != nil {\n\t\targBytes, err := json.Marshal(shortcmd.Parameters)\n\t\tif err == nil {\n\t\t\tts = append(ts, &entity.Tool{\n\t\t\t\tPluginID:   shortcutCMD.PluginID,\n\t\t\t\tArguments:  string(argBytes),\n\t\t\t\tToolName:   shortcutCMD.PluginToolName,\n\t\t\t\tToolID:     shortcutCMD.PluginToolID,\n\t\t\t\tType:       agentrun.ToolType(shortcutCMD.ToolType),\n\t\t\t\tPluginFrom: bot_common.PluginFromPtr(bot_common.PluginFrom(shortcutCMD.Source)),\n\t\t\t})\n\t\t}\n\t}\n\n\treturn ts, nil\n}\n\nfunc (a *OpenapiAgentRunApplication) buildDisplayContent(_ context.Context, ar *run.ChatV3Request) string {\n\tfor _, item := range ar.AdditionalMessages {\n\t\tif item.ContentType == run.ContentTypeMixApi {\n\t\t\treturn item.Content\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc (a *OpenapiAgentRunApplication) parseQueryContent(ctx context.Context, multiAdditionalMessages []*entity.AdditionalMessage) ([]*entity.AdditionalMessage, []*crossmessage.InputMetaData, crossmessage.ContentType, error) {\n\n\tvar multiContent []*crossmessage.InputMetaData\n\tvar contentType crossmessage.ContentType\n\tvar filterMultiAdditionalMessages []*entity.AdditionalMessage\n\tfilterMultiAdditionalMessages = multiAdditionalMessages\n\n\tif len(multiAdditionalMessages) > 0 {\n\t\tlastMessage := multiAdditionalMessages[len(multiAdditionalMessages)-1]\n\t\tif lastMessage != nil && lastMessage.Role == schema.User {\n\t\t\tmultiContent = lastMessage.Content\n\t\t\tcontentType = lastMessage.ContentType\n\t\t\tfilterMultiAdditionalMessages = multiAdditionalMessages[:len(multiAdditionalMessages)-1]\n\t\t}\n\t}\n\n\treturn filterMultiAdditionalMessages, multiContent, contentType, nil\n}\n\nfunc (a *OpenapiAgentRunApplication) parseAdditionalMessages(ctx context.Context, ar *run.ChatV3Request) ([]*entity.AdditionalMessage, error) {\n\n\tadditionalMessages := make([]*entity.AdditionalMessage, 0, len(ar.AdditionalMessages))\n\n\tfor _, item := range ar.AdditionalMessages {\n\t\tif item == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif item.Role != string(schema.User) && item.Role != string(schema.Assistant) {\n\t\t\treturn nil, errors.New(\"additional message role only support user and assistant\")\n\t\t}\n\t\tif item.Type != nil && !slices.Contains([]crossmessage.MessageType{crossmessage.MessageTypeQuestion, crossmessage.MessageTypeAnswer}, crossmessage.MessageType(*item.Type)) {\n\t\t\treturn nil, errors.New(\"additional message type only support question and answer now\")\n\t\t}\n\n\t\taddOne := entity.AdditionalMessage{\n\t\t\tRole: schema.RoleType(item.Role),\n\t\t}\n\t\tif item.Type != nil {\n\t\t\taddOne.Type = crossmessage.MessageType(*item.Type)\n\t\t} else {\n\t\t\taddOne.Type = crossmessage.MessageTypeQuestion\n\t\t}\n\n\t\tif item.ContentType == run.ContentTypeText {\n\t\t\tif item.Content == \"\" {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\taddOne.ContentType = crossmessage.ContentTypeText\n\t\t\taddOne.Content = []*crossmessage.InputMetaData{{\n\t\t\t\tType: crossmessage.InputTypeText,\n\t\t\t\tText: item.Content,\n\t\t\t}}\n\t\t}\n\n\t\tif item.ContentType == run.ContentTypeMixApi {\n\n\t\t\tif ptr.From(item.Type) == string(crossmessage.MessageTypeAnswer) {\n\t\t\t\treturn nil, errors.New(\" answer messages only support text content\")\n\t\t\t}\n\n\t\t\taddOne.ContentType = crossmessage.ContentTypeMix\n\t\t\tvar inputs []*run.AdditionalContent\n\t\t\terr := json.Unmarshal([]byte(item.Content), &inputs)\n\n\t\t\tlogs.CtxInfof(ctx, \"inputs:%v, err:%v\", conv.DebugJsonToStr(inputs), err)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfor _, one := range inputs {\n\t\t\t\tif one == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tswitch crossmessage.InputType(one.Type) {\n\t\t\t\tcase crossmessage.InputTypeText:\n\n\t\t\t\t\taddOne.Content = append(addOne.Content, &crossmessage.InputMetaData{\n\t\t\t\t\t\tType: crossmessage.InputTypeText,\n\t\t\t\t\t\tText: ptr.From(one.Text),\n\t\t\t\t\t})\n\t\t\t\tcase crossmessage.InputTypeImage, crossmessage.InputTypeFile:\n\n\t\t\t\t\tvar fileUrl, fileURI string\n\t\t\t\t\tif one.GetFileURL() != \"\" {\n\t\t\t\t\t\tfileUrl = one.GetFileURL()\n\t\t\t\t\t} else if one.GetFileID() != 0 {\n\t\t\t\t\t\tfileInfo, err := a.UploaodDomainSVC.GetFile(ctx, &uploadService.GetFileRequest{\n\t\t\t\t\t\t\tID: one.GetFileID(),\n\t\t\t\t\t\t})\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfileUrl = fileInfo.File.Url\n\t\t\t\t\t\tfileURI = fileInfo.File.TosURI\n\t\t\t\t\t}\n\t\t\t\t\taddOne.Content = append(addOne.Content, &crossmessage.InputMetaData{\n\t\t\t\t\t\tType: crossmessage.InputType(one.Type),\n\t\t\t\t\t\tFileData: []*crossmessage.FileData{\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tUrl: fileUrl,\n\t\t\t\t\t\t\t\tURI: fileURI,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\tdefault:\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tadditionalMessages = append(additionalMessages, &addOne)\n\t}\n\n\treturn additionalMessages, nil\n}\n\nfunc (a *OpenapiAgentRunApplication) pullStream(ctx context.Context, sseSender *sseImpl.SSenderImpl, streamer *schema.StreamReader[*entity.AgentRunResponse]) {\n\tfor {\n\t\tchunk, recvErr := streamer.Recv()\n\t\tlogs.CtxInfof(ctx, \"chunk :%v, err:%v\", conv.DebugJsonToStr(chunk), recvErr)\n\t\tif recvErr != nil {\n\t\t\tif errors.Is(recvErr, io.EOF) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tsseSender.Send(ctx, buildErrorEvent(errno.ErrConversationAgentRunError, recvErr.Error()))\n\t\t\treturn\n\t\t}\n\n\t\tswitch chunk.Event {\n\n\t\tcase entity.RunEventError:\n\t\t\tsseSender.Send(ctx, buildErrorEvent(chunk.Error.Code, chunk.Error.Msg))\n\t\tcase entity.RunEventStreamDone:\n\t\t\tsseSender.Send(ctx, buildDoneEvent(string(entity.RunEventStreamDone)))\n\t\tcase entity.RunEventAck:\n\t\tcase entity.RunEventCreated, entity.RunEventCancelled, entity.RunEventInProgress, entity.RunEventFailed, entity.RunEventCompleted:\n\t\t\tsseSender.Send(ctx, buildMessageChunkEvent(string(chunk.Event), buildARSM2ApiChatMessage(chunk)))\n\t\tcase entity.RunEventMessageDelta, entity.RunEventMessageCompleted:\n\t\t\tsseSender.Send(ctx, buildMessageChunkEvent(string(chunk.Event), buildARSM2ApiMessage(chunk)))\n\n\t\tdefault:\n\t\t\tlogs.CtxErrorf(ctx, \"unknow handler event:%v\", chunk.Event)\n\t\t}\n\t}\n}\n\nfunc buildARSM2ApiMessage(chunk *entity.AgentRunResponse) []byte {\n\tchunkMessageItem := chunk.ChunkMessageItem\n\tchunkMessage := &run.ChatV3MessageDetail{\n\t\tID:               strconv.FormatInt(chunkMessageItem.ID, 10),\n\t\tConversationID:   strconv.FormatInt(chunkMessageItem.ConversationID, 10),\n\t\tBotID:            strconv.FormatInt(chunkMessageItem.AgentID, 10),\n\t\tRole:             string(chunkMessageItem.Role),\n\t\tType:             string(chunkMessageItem.MessageType),\n\t\tContent:          chunkMessageItem.Content,\n\t\tContentType:      string(chunkMessageItem.ContentType),\n\t\tMetaData:         chunkMessageItem.Ext,\n\t\tChatID:           strconv.FormatInt(chunkMessageItem.RunID, 10),\n\t\tReasoningContent: chunkMessageItem.ReasoningContent,\n\t\tCreatedAt:        ptr.Of(chunkMessageItem.CreatedAt / 1000),\n\t\tSectionID:        ptr.Of(strconv.FormatInt(chunkMessageItem.SectionID, 10)),\n\t}\n\n\tmCM, _ := json.Marshal(chunkMessage)\n\treturn mCM\n}\n\nfunc buildARSM2ApiChatMessage(chunk *entity.AgentRunResponse) []byte {\n\tchunkRunItem := chunk.ChunkRunItem\n\tchunkMessage := &run.ChatV3ChatDetail{\n\t\tID:             chunkRunItem.ID,\n\t\tConversationID: chunkRunItem.ConversationID,\n\t\tBotID:          chunkRunItem.AgentID,\n\t\tStatus:         string(chunkRunItem.Status),\n\t\tSectionID:      ptr.Of(chunkRunItem.SectionID),\n\t\tCreatedAt:      ptr.Of(int32(chunkRunItem.CreatedAt / 1000)),\n\t\tCompletedAt:    ptr.Of(int32(chunkRunItem.CompletedAt / 1000)),\n\t\tFailedAt:       ptr.Of(int32(chunkRunItem.FailedAt / 1000)),\n\t}\n\tif chunkRunItem.Usage != nil {\n\t\tchunkMessage.Usage = &run.Usage{\n\t\t\tTokenCount:   ptr.Of(int32(chunkRunItem.Usage.LlmTotalTokens)),\n\t\t\tInputTokens:  ptr.Of(int32(chunkRunItem.Usage.LlmPromptTokens)),\n\t\t\tOutputTokens: ptr.Of(int32(chunkRunItem.Usage.LlmCompletionTokens)),\n\t\t}\n\t}\n\tmCM, _ := json.Marshal(chunkMessage)\n\treturn mCM\n}\n\nfunc (a *OpenapiAgentRunApplication) RetrieveRunRecord(ctx context.Context, req *run.RetrieveChatOpenRequest) (*run.RetrieveChatOpenResponse, error) {\n\tresp := new(run.RetrieveChatOpenResponse)\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tuserID := apiKeyInfo.UserID\n\n\t// Get agent run record by chat ID\n\trunRecord, err := ConversationSVC.AgentRunDomainSVC.GetByID(ctx, req.ChatID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif runRecord == nil {\n\t\treturn nil, errorx.New(errno.ErrRecordNotFound)\n\t}\n\n\t// Get conversation data and check permissions\n\tconversationData, err := ConversationSVC.ConversationDomainSVC.GetByID(ctx, req.ConversationID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif userID != conversationData.CreatorID {\n\t\treturn nil, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"user not match\"))\n\t}\n\n\t// Build response with chat detail\n\tresp.ChatDetail = &run.ChatV3ChatDetail{\n\t\tID:             runRecord.ID,\n\t\tConversationID: runRecord.ConversationID,\n\t\tBotID:          runRecord.AgentID,\n\t\tStatus:         string(runRecord.Status),\n\t\tSectionID:      ptr.Of(runRecord.SectionID),\n\t\tCreatedAt:      ptr.Of(int32(runRecord.CreatedAt / 1000)),\n\t\tCompletedAt:    ptr.Of(int32(runRecord.CompletedAt / 1000)),\n\t\tFailedAt:       ptr.Of(int32(runRecord.FailedAt / 1000)),\n\t}\n\n\t// Add usage information if available\n\tif runRecord.Usage != nil {\n\t\tresp.ChatDetail.Usage = &run.Usage{\n\t\t\tTokenCount:   ptr.Of(int32(runRecord.Usage.LlmTotalTokens)),\n\t\t\tInputTokens:  ptr.Of(int32(runRecord.Usage.LlmPromptTokens)),\n\t\t\tOutputTokens: ptr.Of(int32(runRecord.Usage.LlmCompletionTokens)),\n\t\t}\n\t}\n\n\treturn resp, nil\n}\n\nfunc (a *OpenapiAgentRunApplication) ListChatMessageApi(ctx context.Context, req *message.ListChatMessageApiRequest) (*message.ListChatMessageApiResponse, error) {\n\tresp := new(message.ListChatMessageApiResponse)\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tuserID := apiKeyInfo.UserID\n\n\t// Get conversation data and check permissions\n\tconversationData, err := ConversationSVC.ConversationDomainSVC.GetByID(ctx, req.ConversationID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif userID != conversationData.CreatorID {\n\t\treturn nil, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"user not match\"))\n\t}\n\n\t// Get messages by run IDs\n\tmessages, err := ConversationSVC.MessageDomainSVC.GetByRunIDs(ctx, req.ConversationID, []int64{req.ChatID})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Convert domain messages to API messages\n\tvar apiMessages []*message.ChatV3MessageDetail\n\tfor _, msg := range messages {\n\t\tapiMessage := &message.ChatV3MessageDetail{\n\t\t\tID:               msg.ID,\n\t\t\tConversationID:   msg.ConversationID,\n\t\t\tBotID:            msg.AgentID,\n\t\t\tRole:             string(msg.Role),\n\t\t\tType:             string(msg.MessageType),\n\t\t\tContent:          msg.Content,\n\t\t\tContentType:      string(msg.ContentType),\n\t\t\tMetaData:         msg.Ext,\n\t\t\tChatID:           msg.RunID,\n\t\t\tReasoningContent: ptr.Of(msg.ReasoningContent),\n\t\t\tCreatedAt:        ptr.Of(msg.CreatedAt / 1000),\n\t\t\tSectionID:        ptr.Of(msg.SectionID),\n\t\t}\n\t\tapiMessages = append(apiMessages, apiMessage)\n\t}\n\n\tresp.Messages = apiMessages\n\treturn resp, nil\n}\n\nfunc (a *OpenapiAgentRunApplication) OpenapiAgentRunSync(ctx context.Context, ar *run.ChatV3Request) (*run.RetrieveChatOpenResponse, error) {\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tcreatorID := apiKeyInfo.UserID\n\tconnectorID := apiKeyInfo.ConnectorID\n\n\tif ptr.From(ar.ConnectorID) == consts.WebSDKConnectorID {\n\t\tconnectorID = ptr.From(ar.ConnectorID)\n\t}\n\tagentInfo, caErr := a.checkAgent(ctx, ar, connectorID)\n\tif caErr != nil {\n\t\tlogs.CtxErrorf(ctx, \"checkAgent err:%v\", caErr)\n\t\treturn nil, caErr\n\t}\n\n\tconversationData, ccErr := a.checkConversation(ctx, ar, creatorID, connectorID)\n\tif ccErr != nil {\n\t\tlogs.CtxErrorf(ctx, \"checkConversation err:%v\", ccErr)\n\t\treturn nil, ccErr\n\t}\n\n\tspaceID := agentInfo.SpaceID\n\tarr, err := a.buildAgentRunRequest(ctx, ar, connectorID, spaceID, conversationData)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"buildAgentRunRequest err:%v\", err)\n\t\treturn nil, err\n\t}\n\n\t// Execute agent run synchronously\n\tstreamer, err := ConversationSVC.AgentRunDomainSVC.AgentRun(ctx, arr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar finalChatDetail *run.ChatV3ChatDetail\n\tvar backgroundProcessingStarted bool\n\n\tstartBackgroundProcessing := func() {\n\t\tif !backgroundProcessingStarted {\n\t\t\tbackgroundProcessingStarted = true\n\t\t\tgo func() {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tlogs.CtxErrorf(ctx, \"background stream processing panic: %v\", r)\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tfor {\n\t\t\t\t\t_, recvErr := streamer.Recv()\n\t\t\t\t\tif recvErr != nil {\n\t\t\t\t\t\tif errors.Is(recvErr, io.EOF) {\n\t\t\t\t\t\t\tlogs.CtxInfof(ctx, \"background stream processing completed\")\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlogs.CtxErrorf(ctx, \"background stream processing error: %v\", recvErr)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}()\n\t\t}\n\t}\n\n\tfor {\n\t\tchunk, recvErr := streamer.Recv()\n\t\tlogs.CtxInfof(ctx, \"chunk :%v, err:%v\", conv.DebugJsonToStr(chunk), recvErr)\n\t\tif recvErr != nil {\n\t\t\tif errors.Is(recvErr, io.EOF) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\treturn nil, errorx.New(errno.ErrConversationAgentRunError, errorx.KV(\"msg\", recvErr.Error()))\n\t\t}\n\n\t\tswitch chunk.Event {\n\t\tcase entity.RunEventError:\n\t\t\treturn nil, errorx.New(int32(chunk.Error.Code), errorx.KV(\"msg\", chunk.Error.Msg))\n\t\tcase entity.RunEventCreated:\n\t\t\tchunkRunItem := chunk.ChunkRunItem\n\t\t\tfinalChatDetail = &run.ChatV3ChatDetail{\n\t\t\t\tID:             chunkRunItem.ID,\n\t\t\t\tConversationID: chunkRunItem.ConversationID,\n\t\t\t\tBotID:          chunkRunItem.AgentID,\n\t\t\t\tStatus:         string(chunkRunItem.Status),\n\t\t\t\tSectionID:      ptr.Of(chunkRunItem.SectionID),\n\t\t\t\tCreatedAt:      ptr.Of(int32(chunkRunItem.CreatedAt / 1000)),\n\t\t\t\tCompletedAt:    ptr.Of(int32(chunkRunItem.CompletedAt / 1000)),\n\t\t\t\tFailedAt:       ptr.Of(int32(chunkRunItem.FailedAt / 1000)),\n\t\t\t}\n\t\t\tif chunkRunItem.Usage != nil {\n\t\t\t\tfinalChatDetail.Usage = &run.Usage{\n\t\t\t\t\tTokenCount:   ptr.Of(int32(chunkRunItem.Usage.LlmTotalTokens)),\n\t\t\t\t\tInputTokens:  ptr.Of(int32(chunkRunItem.Usage.LlmPromptTokens)),\n\t\t\t\t\tOutputTokens: ptr.Of(int32(chunkRunItem.Usage.LlmCompletionTokens)),\n\t\t\t\t}\n\t\t\t}\n\t\t\tstartBackgroundProcessing()\n\t\t\tgoto exitLoop\n\t\tdefault:\n\t\t\tlogs.CtxInfof(ctx, \"received event: %v, starting background processing and continuing to listen\", chunk.Event)\n\t\t\tstartBackgroundProcessing()\n\t\t}\n\t}\nexitLoop:\n\n\tif finalChatDetail == nil {\n\t\treturn nil, errorx.New(errno.ErrConversationAgentRunError, errorx.KV(\"msg\", \"no final result received\"))\n\t}\n\n\tresp := &run.RetrieveChatOpenResponse{\n\t\tChatDetail: finalChatDetail,\n\t}\n\treturn resp, nil\n}\n\nfunc (a *OpenapiAgentRunApplication) CancelRun(ctx context.Context, req *run.CancelChatApiRequest) (*run.CancelChatApiResponse, error) {\n\tresp := new(run.CancelChatApiResponse)\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tuserID := apiKeyInfo.UserID\n\n\trunRecord, err := ConversationSVC.AgentRunDomainSVC.GetByID(ctx, req.ChatID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif runRecord == nil {\n\t\treturn nil, errorx.New(errno.ErrRecordNotFound)\n\t}\n\n\tconversationData, err := ConversationSVC.ConversationDomainSVC.GetByID(ctx, req.ConversationID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif req.ConversationID != runRecord.ConversationID {\n\t\treturn nil, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"conversation not match\"))\n\t}\n\n\tif userID != conversationData.CreatorID {\n\t\treturn nil, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"user not match\"))\n\t}\n\n\tif runRecord.Status != entity.RunStatusInProgress && runRecord.Status != entity.RunStatusCreated {\n\t\treturn nil, errorx.New(errno.ErrInProgressCanNotCancel)\n\t}\n\n\trunMeta, err := ConversationSVC.AgentRunDomainSVC.Cancel(ctx, &entity.CancelRunMeta{\n\t\tRunID:          req.ChatID,\n\t\tConversationID: req.ConversationID,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif runMeta == nil {\n\t\treturn nil, errorx.New(errno.ErrConversationAgentRunError)\n\t}\n\n\tresp.ChatV3ChatDetail = &run.ChatV3ChatDetail{\n\t\tID:             runMeta.ID,\n\t\tConversationID: runMeta.ConversationID,\n\t\tBotID:          runMeta.AgentID,\n\t\tStatus:         string(runMeta.Status),\n\t\tSectionID:      ptr.Of(runMeta.SectionID),\n\t\tCreatedAt:      ptr.Of(int32(runMeta.CreatedAt / 1000)),\n\t\tCompletedAt:    ptr.Of(int32(runMeta.CompletedAt / 1000)),\n\t\tFailedAt:       ptr.Of(int32(runMeta.FailedAt / 1000)),\n\t}\n\tif runMeta.Usage != nil {\n\t\tresp.ChatV3ChatDetail.Usage = &run.Usage{\n\t\t\tTokenCount:   ptr.Of(int32(runMeta.Usage.LlmTotalTokens)),\n\t\t\tInputTokens:  ptr.Of(int32(runMeta.Usage.LlmPromptTokens)),\n\t\t\tOutputTokens: ptr.Of(int32(runMeta.Usage.LlmCompletionTokens)),\n\t\t}\n\t}\n\n\treturn resp, nil\n}\n"
  },
  {
    "path": "backend/application/conversation/openapi_agent_run_test.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage conversation\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"io\"\n\t\"testing\"\n\n\t\"github.com/cloudwego/eino/schema\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"go.uber.org/mock/gomock\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/run\"\n\tsingleagent \"github.com/coze-dev/coze-studio/backend/crossdomain/agent/model\"\n\tagentrun \"github.com/coze-dev/coze-studio/backend/crossdomain/agentrun/model\"\n\tsaEntity \"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/conversation/agentrun/entity\"\n\tconvEntity \"github.com/coze-dev/coze-studio/backend/domain/conversation/conversation/entity\"\n\topenapiEntity \"github.com/coze-dev/coze-studio/backend/domain/openauth/openapiauth/entity\"\n\tcmdEntity \"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/entity\"\n\tuploadEntity \"github.com/coze-dev/coze-studio/backend/domain/upload/entity\"\n\tuploadService \"github.com/coze-dev/coze-studio/backend/domain/upload/service\"\n\tsseImpl \"github.com/coze-dev/coze-studio/backend/infra/sse/impl/sse\"\n\tmockSingleAgent \"github.com/coze-dev/coze-studio/backend/internal/mock/domain/agent/singleagent\"\n\tmockAgentRun \"github.com/coze-dev/coze-studio/backend/internal/mock/domain/conversation/agentrun\"\n\tmockConversation \"github.com/coze-dev/coze-studio/backend/internal/mock/domain/conversation/conversation\"\n\tmockShortcut \"github.com/coze-dev/coze-studio/backend/internal/mock/domain/shortcutcmd\"\n\tmockUpload \"github.com/coze-dev/coze-studio/backend/internal/mock/domain/upload\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\nfunc setupMocks(t *testing.T) (*OpenapiAgentRunApplication, *mockShortcut.MockShortcutCmd, *mockUpload.MockUploadService, *mockAgentRun.MockRun, *mockConversation.MockConversation, *mockSingleAgent.MockSingleAgent, *gomock.Controller) {\n\tctrl := gomock.NewController(t)\n\n\tmockShortcutSvc := mockShortcut.NewMockShortcutCmd(ctrl)\n\tmockUploadSvc := mockUpload.NewMockUploadService(ctrl)\n\tmockAgentRunSvc := mockAgentRun.NewMockRun(ctrl)\n\tmockConversationSvc := mockConversation.NewMockConversation(ctrl)\n\tmockSingleAgentSvc := mockSingleAgent.NewMockSingleAgent(ctrl)\n\n\tapp := &OpenapiAgentRunApplication{\n\t\tShortcutDomainSVC: mockShortcutSvc,\n\t\tUploaodDomainSVC:  mockUploadSvc,\n\t}\n\n\t// Setup ConversationSVC mocks\n\toriginalConversationSVC := ConversationSVC\n\tConversationSVC = &ConversationApplicationService{\n\t\tAgentRunDomainSVC:     mockAgentRunSvc,\n\t\tConversationDomainSVC: mockConversationSvc,\n\t\tappContext: &ServiceComponents{\n\t\t\tSingleAgentDomainSVC: mockSingleAgentSvc,\n\t\t},\n\t}\n\n\tt.Cleanup(func() {\n\t\tConversationSVC = originalConversationSVC\n\t\tctrl.Finish()\n\t})\n\n\treturn app, mockShortcutSvc, mockUploadSvc, mockAgentRunSvc, mockConversationSvc, mockSingleAgentSvc, ctrl\n}\n\nfunc createTestContext() context.Context {\n\tctx := context.Background()\n\tctx = ctxcache.Init(ctx)\n\tapiKey := &openapiEntity.ApiKey{\n\t\tUserID:      12345,\n\t\tConnectorID: consts.CozeConnectorID,\n\t}\n\tctxcache.Store(ctx, consts.OpenapiAuthKeyInCtx, apiKey)\n\treturn ctx\n}\n\nfunc createTestRequest() *run.ChatV3Request {\n\treturn &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"Hello, world!\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc createTestRequestWithMultipleMessages() *run.ChatV3Request {\n\treturn &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"Hello, I need help with something.\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t\t{\n\t\t\t\tRole:        \"assistant\",\n\t\t\t\tContent:     \"Sure, I'd be happy to help! What do you need assistance with?\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     `{\"type\": \"image\", \"url\": \"https://example.com/image.jpg\"}`,\n\t\t\t\tContentType: run.ContentTypeImage,\n\t\t\t},\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     `{\"type\": \"file\", \"name\": \"document.pdf\", \"url\": \"https://example.com/doc.pdf\"}`,\n\t\t\t\tContentType: run.ContentTypeFile,\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc createTestRequestWithAssistantOnly() *run.ChatV3Request {\n\treturn &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"assistant\",\n\t\t\t\tContent:     \"I'm here to help you with any questions you might have.\",\n\t\t\t\tContentType: run.ContentTypeText, // assistant role only supports text content type\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc TestOpenapiAgentRun_Success(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\treq := createTestRequest()\n\n\t// Mock agent check\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock agent run failure to avoid pullStream complexity\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(nil, errors.New(\"mock stream error\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"mock stream error\")\n}\n\nfunc TestOpenapiAgentRun_CheckAgentError(t *testing.T) {\n\tapp, _, _, _, _, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\treq := createTestRequest()\n\n\t// Mock agent check failure\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(nil, errors.New(\"agent not found\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"agent not found\")\n}\n\nfunc TestOpenapiAgentRun_AgentNotExists(t *testing.T) {\n\tapp, _, _, _, _, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\treq := createTestRequest()\n\n\t// Mock agent check returns nil (agent not exists)\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(nil, nil)\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n}\n\nfunc TestOpenapiAgentRun_CheckConversationError(t *testing.T) {\n\tapp, _, _, _, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\treq := createTestRequest()\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check failure\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(nil, errors.New(\"conversation not found\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"conversation not found\")\n}\n\nfunc TestOpenapiAgentRun_ConversationPermissionError(t *testing.T) {\n\tapp, _, _, _, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\treq := createTestRequest()\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation with different creator\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 99999, // Different from user ID (12345)\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n}\n\nfunc TestOpenapiAgentRun_CreateNewConversation(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\treq := createTestRequest()\n\treq.ConversationID = ptr.Of(int64(0)) // No conversation ID\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock create new conversation\n\tmockConv := &convEntity.Conversation{\n\t\tID:        22222,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t\tUserID:    ptr.Of(\"test-user\"),\n\t}\n\tmockConversation.EXPECT().Create(ctx, gomock.Any()).DoAndReturn(func(ctx context.Context, meta *convEntity.CreateMeta) (*convEntity.Conversation, error) {\n\t\tassert.Equal(t, int64(67890), meta.AgentID)\n\t\tassert.Equal(t, \"test-user\", ptr.From(meta.UserID))\n\t\tassert.Equal(t, common.Scene_SceneOpenApi, meta.Scene)\n\t\treturn mockConv, nil\n\t})\n\n\t// Mock agent run failure to avoid pullStream complexity\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(nil, errors.New(\"mock stream error\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Equal(t, int64(22222), *req.ConversationID) // Should be updated\n}\n\nfunc TestOpenapiAgentRun_AgentRunError(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\treq := createTestRequest()\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock agent run failure\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(nil, errors.New(\"agent run failed\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"agent run failed\")\n}\n\nfunc TestOpenapiAgentRun_WithShortcutCommand(t *testing.T) {\n\tapp, mockShortcut, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\treq := createTestRequest()\n\treq.ShortcutCommand = &run.ShortcutCommandDetail{\n\t\tCommandID:  123,\n\t\tParameters: map[string]string{\"param1\": \"value1\"},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock shortcut command\n\tmockCmd := &cmdEntity.ShortcutCmd{\n\t\tID:             123,\n\t\tPluginID:       456,\n\t\tPluginToolName: \"test-tool\",\n\t\tPluginToolID:   789,\n\t\tToolType:       1,\n\t}\n\tmockShortcut.EXPECT().GetByCmdID(ctx, int64(123), int32(0)).Return(mockCmd, nil)\n\n\t// Mock agent run failure to avoid pullStream complexity\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(nil, errors.New(\"mock stream error\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n}\n\nfunc TestOpenapiAgentRun_WithMultipleMessages(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\treq := createTestRequestWithMultipleMessages()\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock agent run failure to avoid pullStream complexity\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(nil, errors.New(\"mock stream error\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"mock stream error\")\n\n\t// Verify that the request contains multiple messages with different roles and content types\n\tassert.Len(t, req.AdditionalMessages, 4)\n\tassert.Equal(t, \"user\", req.AdditionalMessages[0].Role)\n\tassert.Equal(t, run.ContentTypeText, req.AdditionalMessages[0].ContentType)\n\tassert.Equal(t, \"assistant\", req.AdditionalMessages[1].Role)\n\tassert.Equal(t, run.ContentTypeText, req.AdditionalMessages[1].ContentType)\n\tassert.Equal(t, \"user\", req.AdditionalMessages[2].Role)\n\tassert.Equal(t, run.ContentTypeImage, req.AdditionalMessages[2].ContentType)\n\tassert.Equal(t, \"user\", req.AdditionalMessages[3].Role)\n\tassert.Equal(t, run.ContentTypeFile, req.AdditionalMessages[3].ContentType)\n}\n\nfunc TestOpenapiAgentRun_WithAssistantMessage(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\treq := createTestRequestWithAssistantOnly()\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock agent run failure to avoid pullStream complexity\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(nil, errors.New(\"mock stream error\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"mock stream error\")\n\n\t// Verify that the assistant message only supports text content type\n\tassert.Len(t, req.AdditionalMessages, 1)\n\tassert.Equal(t, \"assistant\", req.AdditionalMessages[0].Role)\n\tassert.Equal(t, run.ContentTypeText, req.AdditionalMessages[0].ContentType)\n}\n\nfunc TestOpenapiAgentRun_WithMixedContentTypes(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\t// Create request with various content types for user role\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"Here's a text message\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     `{\"type\": \"audio\", \"url\": \"https://example.com/audio.mp3\"}`,\n\t\t\t\tContentType: run.ContentTypeAudio,\n\t\t\t},\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     `{\"type\": \"video\", \"url\": \"https://example.com/video.mp4\"}`,\n\t\t\t\tContentType: run.ContentTypeVideo,\n\t\t\t},\n\t\t\t{\n\t\t\t\tRole:        \"assistant\",\n\t\t\t\tContent:     \"I can only respond with text content.\",\n\t\t\t\tContentType: run.ContentTypeText, // assistant must use text\n\t\t\t},\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     `{\"type\": \"link\", \"url\": \"https://example.com\"}`,\n\t\t\t\tContentType: run.ContentTypeLink,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock agent run failure to avoid pullStream complexity\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(nil, errors.New(\"mock stream error\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"mock stream error\")\n\n\t// Verify various content types are preserved\n\tassert.Len(t, req.AdditionalMessages, 5)\n\n\t// Check user messages with different content types\n\tassert.Equal(t, \"user\", req.AdditionalMessages[0].Role)\n\tassert.Equal(t, run.ContentTypeText, req.AdditionalMessages[0].ContentType)\n\n\tassert.Equal(t, \"user\", req.AdditionalMessages[1].Role)\n\tassert.Equal(t, run.ContentTypeAudio, req.AdditionalMessages[1].ContentType)\n\n\tassert.Equal(t, \"user\", req.AdditionalMessages[2].Role)\n\tassert.Equal(t, run.ContentTypeVideo, req.AdditionalMessages[2].ContentType)\n\n\t// Check assistant message (must be text)\n\tassert.Equal(t, \"assistant\", req.AdditionalMessages[3].Role)\n\tassert.Equal(t, run.ContentTypeText, req.AdditionalMessages[3].ContentType)\n\n\tassert.Equal(t, \"user\", req.AdditionalMessages[4].Role)\n\tassert.Equal(t, run.ContentTypeLink, req.AdditionalMessages[4].ContentType)\n}\n\nfunc TestOpenapiAgentRun_ParseAdditionalMessages_InvalidRole(t *testing.T) {\n\tapp, _, _, _, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\t// Create request with invalid role\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"system\", // Invalid role\n\t\t\t\tContent:     \"System message\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success to reach parseAdditionalMessages\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"additional message role only support user and assistant\")\n}\n\nfunc TestOpenapiAgentRun_ParseAdditionalMessages_InvalidType(t *testing.T) {\n\tapp, _, _, _, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\t// Create request with invalid message type\n\tinvalidType := \"invalid_type\"\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"Test message\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t\tType:        &invalidType, // Invalid type\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success to reach parseAdditionalMessages\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"additional message type only support question and answer now\")\n}\n\nfunc TestOpenapiAgentRun_ParseAdditionalMessages_AnswerWithNonTextContent(t *testing.T) {\n\tapp, _, _, _, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\t// Create request with answer type but non-text content\n\tanswerType := \"answer\"\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"assistant\",\n\t\t\t\tContent:     `[{\"type\": \"image\", \"file_url\": \"https://example.com/image.jpg\"}]`,\n\t\t\t\tContentType: run.ContentTypeMixApi, // object_string\n\t\t\t\tType:        &answerType,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success to reach parseAdditionalMessages\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"answer messages only support text content\")\n}\n\nfunc TestOpenapiAgentRun_ParseAdditionalMessages_MixApiWithFileURL(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\t// Create request with object_string content type and file URL\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     `[{\"type\": \"text\", \"text\": \"Here's an image:\"}, {\"type\": \"image\", \"file_url\": \"https://example.com/image.jpg\"}]`,\n\t\t\t\tContentType: run.ContentTypeMixApi,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock agent run failure to avoid pullStream complexity\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(nil, errors.New(\"mock stream error\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"mock stream error\")\n}\n\nfunc TestOpenapiAgentRun_ParseAdditionalMessages_MixApiWithFileID(t *testing.T) {\n\tapp, _, mockUpload, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\t// Create request with object_string content type and file ID\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     `[{\"type\": \"file\", \"file_id\": \"12345\"}]`,\n\t\t\t\tContentType: run.ContentTypeMixApi,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock upload service to return file info\n\tmockUpload.EXPECT().GetFile(ctx, gomock.Any()).DoAndReturn(func(ctx context.Context, req *uploadService.GetFileRequest) (*uploadService.GetFileResponse, error) {\n\t\tassert.Equal(t, int64(12345), req.ID)\n\t\treturn &uploadService.GetFileResponse{\n\t\t\tFile: &uploadEntity.File{\n\t\t\t\tUrl:    \"https://example.com/file.pdf\",\n\t\t\t\tTosURI: \"tos://bucket/file.pdf\",\n\t\t\t},\n\t\t}, nil\n\t})\n\n\t// Mock agent run failure to avoid pullStream complexity\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(nil, errors.New(\"mock stream error\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"mock stream error\")\n}\n\nfunc TestOpenapiAgentRun_ParseAdditionalMessages_FileIDError(t *testing.T) {\n\tapp, _, mockUpload, _, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\t// Create request with object_string content type and file ID that will fail\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     `[{\"type\": \"file\", \"file_id\": \"99999\"}]`,\n\t\t\t\tContentType: run.ContentTypeMixApi,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock upload service to return error\n\tmockUpload.EXPECT().GetFile(ctx, gomock.Any()).Return(nil, errors.New(\"file not found\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"file not found\")\n}\n\nfunc TestOpenapiAgentRun_ParseAdditionalMessages_EmptyContent(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\t// Create request with empty text content (should be skipped)\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"\", // Empty content\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"Valid content\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock agent run failure to avoid pullStream complexity\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(nil, errors.New(\"mock stream error\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"mock stream error\")\n\n\t// Verify that only the non-empty message is included\n\tassert.Len(t, req.AdditionalMessages, 2) // Original request still has 2 messages\n}\n\nfunc TestOpenapiAgentRun_ParseAdditionalMessages_NilMessage(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\t// Create request with empty content message (should be skipped)\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"\", // Empty content message\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"Valid content\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID:   67890,\n\t\t\tSpaceID:   54321,\n\t\t\tCreatorID: 12345,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock agent run failure to avoid pullStream complexity\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(nil, errors.New(\"mock stream error\"))\n\n\terr := app.OpenapiAgentRun(ctx, &sseImpl.SSenderImpl{}, req)\n\n\tassert.Error(t, err)\n\tassert.Contains(t, err.Error(), \"mock stream error\")\n}\n\ntype MockStreamReader struct {\n\tchunks []*entity.AgentRunResponse\n\tindex  int\n}\n\nfunc (m *MockStreamReader) Recv() (*entity.AgentRunResponse, error) {\n\tif m.index >= len(m.chunks) {\n\t\treturn nil, io.EOF\n\t}\n\tresponse := m.chunks[m.index]\n\tm.index++\n\treturn response, nil\n}\n\nfunc newMockStreamReader(chunks []*entity.AgentRunResponse) *schema.StreamReader[*entity.AgentRunResponse] {\n\n\tsr, sw := schema.Pipe[*entity.AgentRunResponse](10)\n\n\tgo func() {\n\t\tdefer sw.Close()\n\t\tfor _, chunk := range chunks {\n\t\t\tsw.Send(chunk, nil)\n\t\t}\n\t}()\n\n\treturn sr\n}\n\nfunc TestOpenapiAgentRunSync_Success(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"test query\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID: 67890,\n\t\t\tSpaceID: 54321,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock successful agent run with stream\n\tmockStream := newMockStreamReader([]*entity.AgentRunResponse{\n\t\t{\n\t\t\tEvent: entity.RunEventCreated,\n\t\t\tChunkRunItem: &entity.RunRecordMeta{\n\t\t\t\tID:             999,\n\t\t\t\tConversationID: 11111,\n\t\t\t\tAgentID:        67890,\n\t\t\t\tStatus:         entity.RunStatusCompleted,\n\t\t\t\tSectionID:      98765,\n\t\t\t\tCreatedAt:      1640995200000, // 2022-01-01 00:00:00\n\t\t\t\tCompletedAt:    1640995260000, // 2022-01-01 00:01:00\n\t\t\t\tUsage: &agentrun.Usage{\n\t\t\t\t\tLlmTotalTokens:      100,\n\t\t\t\t\tLlmPromptTokens:     60,\n\t\t\t\t\tLlmCompletionTokens: 40,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t})\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(mockStream, nil)\n\n\tresult, err := app.OpenapiAgentRunSync(ctx, req)\n\n\tassert.NoError(t, err)\n\tassert.NotNil(t, result)\n\tassert.NotNil(t, result.ChatDetail)\n\tassert.Equal(t, int64(999), result.ChatDetail.ID)\n\tassert.Equal(t, int64(11111), result.ChatDetail.ConversationID)\n\tassert.Equal(t, int64(67890), result.ChatDetail.BotID)\n\tassert.Equal(t, string(entity.RunStatusCompleted), result.ChatDetail.Status)\n\tassert.Equal(t, ptr.Of(int64(98765)), result.ChatDetail.SectionID)\n\tassert.Equal(t, ptr.Of(int32(1640995200)), result.ChatDetail.CreatedAt)\n\tassert.Equal(t, ptr.Of(int32(1640995260)), result.ChatDetail.CompletedAt)\n\tassert.NotNil(t, result.ChatDetail.Usage)\n\tassert.Equal(t, ptr.Of(int32(100)), result.ChatDetail.Usage.TokenCount)\n\tassert.Equal(t, ptr.Of(int32(60)), result.ChatDetail.Usage.InputTokens)\n\tassert.Equal(t, ptr.Of(int32(40)), result.ChatDetail.Usage.OutputTokens)\n}\n\nfunc TestOpenapiAgentRunSync_AgentNotFound(t *testing.T) {\n\tapp, _, _, _, _, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\treq := &run.ChatV3Request{\n\t\tBotID: 67890,\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"test query\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check failure\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(nil, nil)\n\n\tresult, err := app.OpenapiAgentRunSync(ctx, req)\n\n\tassert.Error(t, err)\n\tassert.Nil(t, result)\n\tassert.Contains(t, err.Error(), \"agent not exists\")\n}\n\nfunc TestOpenapiAgentRunSync_ConversationPermissionError(t *testing.T) {\n\tapp, _, _, _, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"test query\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID: 67890,\n\t\t\tSpaceID: 54321,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check with wrong user\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 99999, // Different user ID\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\tresult, err := app.OpenapiAgentRunSync(ctx, req)\n\n\tassert.Error(t, err)\n\tassert.Nil(t, result)\n\tassert.Contains(t, err.Error(), \"user not match\")\n}\n\nfunc TestOpenapiAgentRunSync_StreamError(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"test query\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID: 67890,\n\t\t\tSpaceID: 54321,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock stream with error event\n\tmockStream := newMockStreamReader([]*entity.AgentRunResponse{\n\t\t{\n\t\t\tEvent: entity.RunEventError,\n\t\t\tError: &entity.RunError{\n\t\t\t\tCode: 500,\n\t\t\t\tMsg:  \"agent run failed\",\n\t\t\t},\n\t\t},\n\t})\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(mockStream, nil)\n\n\tresult, err := app.OpenapiAgentRunSync(ctx, req)\n\n\tassert.Error(t, err)\n\tassert.Nil(t, result)\n\n\tassert.Contains(t, err.Error(), \"code=500\")\n}\n\nfunc TestOpenapiAgentRunSync_NoFinalResult(t *testing.T) {\n\tapp, _, _, mockAgentRun, mockConversation, mockSingleAgent, _ := setupMocks(t)\n\tctx := createTestContext()\n\n\treq := &run.ChatV3Request{\n\t\tBotID:          67890,\n\t\tConversationID: ptr.Of(int64(11111)),\n\t\tUser:           \"test-user\",\n\t\tAdditionalMessages: []*run.EnterMessage{\n\t\t\t{\n\t\t\t\tRole:        \"user\",\n\t\t\t\tContent:     \"test query\",\n\t\t\t\tContentType: run.ContentTypeText,\n\t\t\t},\n\t\t},\n\t}\n\n\t// Mock agent check success\n\tmockAgent := &saEntity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tAgentID: 67890,\n\t\t\tSpaceID: 54321,\n\t\t},\n\t}\n\tmockSingleAgent.EXPECT().ObtainAgentByIdentity(ctx, gomock.Any()).Return(mockAgent, nil)\n\n\t// Mock conversation check success\n\tmockConv := &convEntity.Conversation{\n\t\tID:        11111,\n\t\tCreatorID: 12345,\n\t\tSectionID: 98765,\n\t}\n\tmockConversation.EXPECT().GetByID(ctx, int64(11111)).Return(mockConv, nil)\n\n\t// Mock stream with no RunEventCreated event\n\tmockStream := newMockStreamReader([]*entity.AgentRunResponse{\n\t\t{\n\t\t\tEvent: entity.RunEventMessageDelta, // Different event type\n\t\t},\n\t})\n\tmockAgentRun.EXPECT().AgentRun(ctx, gomock.Any()).Return(mockStream, nil)\n\n\tresult, err := app.OpenapiAgentRunSync(ctx, req)\n\n\tassert.Error(t, err)\n\tassert.Nil(t, result)\n\tassert.Contains(t, err.Error(), \"no final result received\")\n}\n"
  },
  {
    "path": "backend/application/conversation/openapi_message.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage conversation\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"strconv\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/message\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/conversation/run\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/message/model\"\n\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tconvEntity \"github.com/coze-dev/coze-studio/backend/domain/conversation/conversation/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/conversation/message/entity\"\n\tuploadService \"github.com/coze-dev/coze-studio/backend/domain/upload/service\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\ntype OpenapiMessageApplication struct {\n\tUploaodDomainSVC uploadService.UploadService\n}\n\nvar OpenapiMessageSVC = new(OpenapiMessageApplication)\n\nfunc (m *OpenapiMessageApplication) GetApiMessageList(ctx context.Context, mr *message.ListMessageApiRequest) (*message.ListMessageApiResponse, error) {\n\t// Get Conversation ID by agent id & userID & scene\n\tuserID := ctxutil.MustGetUIDFromApiAuthCtx(ctx)\n\n\tcurrentConversation, err := getConversation(ctx, mr.ConversationID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif currentConversation == nil {\n\t\treturn nil, errorx.New(errno.ErrConversationNotFound)\n\t}\n\n\tif currentConversation.CreatorID != userID {\n\t\treturn nil, errorx.New(errno.ErrConversationPermissionCode, errorx.KV(\"msg\", \"permission denied\"))\n\t}\n\n\tif mr.Limit == nil {\n\t\tmr.Limit = ptr.Of(int64(50))\n\t}\n\n\tmsgListMeta := &entity.ListMeta{\n\t\tConversationID: currentConversation.ID,\n\t\tAgentID:        currentConversation.AgentID,\n\t\tLimit:          int(ptr.From(mr.Limit)),\n\n\t\tMessageType: []*model.MessageType{\n\t\t\tptr.Of(model.MessageTypeQuestion),\n\t\t\tptr.Of(model.MessageTypeAnswer),\n\t\t},\n\t}\n\tif mr.ChatID != nil {\n\t\tmsgListMeta.RunID = []*int64{mr.ChatID}\n\t}\n\n\tif mr.BeforeID != nil {\n\t\tmsgListMeta.Direction = entity.ScrollPageDirectionNext\n\t\tmsgListMeta.Cursor = *mr.BeforeID\n\t} else {\n\t\tmsgListMeta.Direction = entity.ScrollPageDirectionPrev\n\t\tmsgListMeta.Cursor = ptr.From(mr.AfterID)\n\t}\n\tif mr.Order == nil {\n\t\tmsgListMeta.OrderBy = ptr.Of(message.OrderByDesc)\n\t} else {\n\t\tmsgListMeta.OrderBy = mr.Order\n\t}\n\n\tmListMessages, err := ConversationSVC.MessageDomainSVC.ListWithoutPair(ctx, msgListMeta)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp := m.buildMessageListResponse(ctx, mListMessages, currentConversation)\n\n\treturn resp, nil\n}\n\nfunc getConversation(ctx context.Context, conversationID int64) (*convEntity.Conversation, error) {\n\tconversationInfo, err := ConversationSVC.ConversationDomainSVC.GetByID(ctx, conversationID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn conversationInfo, nil\n}\n\nfunc (m *OpenapiMessageApplication) buildMessageListResponse(ctx context.Context, mListMessages *entity.ListResult, currentConversation *convEntity.Conversation) *message.ListMessageApiResponse {\n\tmessagesVO := slices.Transform(mListMessages.Messages, func(dm *entity.Message) *message.OpenMessageApi {\n\n\t\tcontent := dm.Content\n\n\t\tmsg := &message.OpenMessageApi{\n\t\t\tID:               dm.ID,\n\t\t\tConversationID:   dm.ConversationID,\n\t\t\tBotID:            dm.AgentID,\n\t\t\tRole:             string(dm.Role),\n\t\t\tType:             string(dm.MessageType),\n\t\t\tContent:          content,\n\t\t\tContentType:      string(dm.ContentType),\n\t\t\tSectionID:        strconv.FormatInt(dm.SectionID, 10),\n\t\t\tCreatedAt:        dm.CreatedAt / 1000,\n\t\t\tUpdatedAt:        dm.UpdatedAt / 1000,\n\t\t\tChatID:           dm.RunID,\n\t\t\tMetaData:         dm.Ext,\n\t\t\tReasoningContent: ptr.Of(dm.ReasoningContent),\n\t\t}\n\t\tif dm.ContentType == model.ContentTypeMix {\n\t\t\tmsg.ContentType = run.ContentTypeMixApi\n\t\t\tif dm.DisplayContent != \"\" {\n\t\t\t\tmsg.Content = m.parseDisplayContent(ctx, dm)\n\t\t\t}\n\t\t}\n\t\treturn msg\n\t})\n\n\tresp := &message.ListMessageApiResponse{\n\t\tMessages: messagesVO,\n\t\tHasMore:  ptr.Of(mListMessages.HasMore),\n\t\tFirstID:  ptr.Of(mListMessages.PrevCursor),\n\t\tLastID:   ptr.Of(mListMessages.NextCursor),\n\t}\n\n\treturn resp\n}\n\nfunc (m *OpenapiMessageApplication) parseDisplayContent(ctx context.Context, dm *entity.Message) string {\n\n\tvar inputs []*run.AdditionalContent\n\terr := json.Unmarshal([]byte(dm.DisplayContent), &inputs)\n\n\tif err != nil {\n\t\treturn dm.DisplayContent\n\t}\n\tfor k, one := range inputs {\n\t\tif one == nil {\n\t\t\tcontinue\n\t\t}\n\t\tswitch model.InputType(one.Type) {\n\t\tcase model.InputTypeText:\n\t\t\tcontinue\n\t\tcase model.InputTypeImage, model.InputTypeFile:\n\t\t\tif one.GetFileID() != 0 {\n\t\t\t\tfileInfo, err := m.UploaodDomainSVC.GetFile(ctx, &uploadService.GetFileRequest{\n\t\t\t\t\tID: one.GetFileID(),\n\t\t\t\t})\n\t\t\t\tif err == nil {\n\t\t\t\t\tinputs[k].FileURL = ptr.Of(fileInfo.File.Url)\n\t\t\t\t\tinputs[k].Name = ptr.Of(fileInfo.File.Name)\n\t\t\t\t\tinputs[k].Size = ptr.Of(fileInfo.File.FileSize)\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tcontinue\n\t\t}\n\t}\n\tcontent, err := json.Marshal(inputs)\n\tif err == nil {\n\t\tdm.DisplayContent = string(content)\n\t}\n\treturn dm.DisplayContent\n}\n"
  },
  {
    "path": "backend/application/knowledge/convertor.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage knowledge\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"path\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\tdataset \"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge\"\n\t\"github.com/coze-dev/coze-studio/backend/application/upload\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/knowledge/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/knowledge/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/document\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/document/parser\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\nfunc assertValAs(typ document.TableColumnType, val string) (*document.ColumnData, error) {\n\tcd := &document.ColumnData{\n\t\tType: typ,\n\t}\n\tif val == \"\" {\n\t\treturn cd, nil\n\t}\n\tswitch typ {\n\tcase document.TableColumnTypeString:\n\t\treturn &document.ColumnData{\n\t\t\tType:      document.TableColumnTypeString,\n\t\t\tValString: &val,\n\t\t}, nil\n\n\tcase document.TableColumnTypeInteger:\n\t\ti, err := strconv.ParseInt(val, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn &document.ColumnData{\n\t\t\tType:       document.TableColumnTypeInteger,\n\t\t\tValInteger: &i,\n\t\t}, nil\n\n\tcase document.TableColumnTypeTime:\n\t\t// Supports timestamp and time string\n\t\ti, err := strconv.ParseInt(val, 10, 64)\n\t\tif err == nil {\n\t\t\tt := time.Unix(i, 0)\n\t\t\treturn &document.ColumnData{\n\t\t\t\tType:    document.TableColumnTypeTime,\n\t\t\t\tValTime: &t,\n\t\t\t}, nil\n\n\t\t}\n\t\tt, err := time.Parse(time.DateTime, val)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn &document.ColumnData{\n\t\t\tType:    document.TableColumnTypeTime,\n\t\t\tValTime: &t,\n\t\t}, nil\n\n\tcase document.TableColumnTypeNumber:\n\t\tf, err := strconv.ParseFloat(val, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treturn &document.ColumnData{\n\t\t\tType:      document.TableColumnTypeNumber,\n\t\t\tValNumber: &f,\n\t\t}, nil\n\n\tcase document.TableColumnTypeBoolean:\n\t\tt, err := strconv.ParseBool(val)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn &document.ColumnData{\n\t\t\tType:       document.TableColumnTypeBoolean,\n\t\t\tValBoolean: &t,\n\t\t}, nil\n\tcase document.TableColumnTypeImage:\n\t\treturn &document.ColumnData{\n\t\t\tType:     document.TableColumnTypeImage,\n\t\t\tValImage: &val,\n\t\t}, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"[assertValAs] type not support, type=%d, val=%s\", typ, val)\n\t}\n}\n\nfunc convertTableDataType2Entity(t dataset.TableDataType) service.TableDataType {\n\tswitch t {\n\tcase dataset.TableDataType_AllData:\n\t\treturn service.AllData\n\tcase dataset.TableDataType_OnlySchema:\n\t\treturn service.OnlySchema\n\tcase dataset.TableDataType_OnlyPreview:\n\t\treturn service.OnlyPreview\n\tdefault:\n\t\treturn service.AllData\n\t}\n}\n\nfunc convertTableSheet2Entity(sheet *dataset.TableSheet) *entity.TableSheet {\n\tif sheet == nil {\n\t\treturn nil\n\t}\n\treturn &entity.TableSheet{\n\t\tSheetId:       sheet.GetSheetID(),\n\t\tStartLineIdx:  sheet.GetStartLineIdx(),\n\t\tHeaderLineIdx: sheet.GetHeaderLineIdx(),\n\t}\n}\n\nfunc convertDocTableSheet2Model(sheet entity.TableSheet) *dataset.DocTableSheet {\n\treturn &dataset.DocTableSheet{\n\t\tID:        sheet.SheetId,\n\t\tSheetName: sheet.SheetName,\n\t\tTotalRow:  sheet.TotalRows,\n\t}\n}\n\nfunc convertTableMeta(t []*entity.TableColumn) []*dataset.DocTableColumn {\n\tif len(t) == 0 {\n\t\treturn nil\n\t}\n\tresp := make([]*dataset.DocTableColumn, 0)\n\tfor i := range t {\n\t\tif t[i] == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tresp = append(resp, &dataset.DocTableColumn{\n\t\t\tID:         t[i].ID,\n\t\t\tColumnName: t[i].Name,\n\t\t\tIsSemantic: t[i].Indexing,\n\t\t\tDesc:       &t[i].Description,\n\t\t\tSequence:   t[i].Sequence,\n\t\t\tColumnType: convertColumnType(t[i].Type),\n\t\t})\n\t}\n\treturn resp\n}\n\nfunc convertColumnType(t document.TableColumnType) *dataset.ColumnType {\n\tswitch t {\n\tcase document.TableColumnTypeString:\n\t\treturn dataset.ColumnTypePtr(dataset.ColumnType_Text)\n\tcase document.TableColumnTypeBoolean:\n\t\treturn dataset.ColumnTypePtr(dataset.ColumnType_Boolean)\n\tcase document.TableColumnTypeNumber:\n\t\treturn dataset.ColumnTypePtr(dataset.ColumnType_Float)\n\tcase document.TableColumnTypeTime:\n\t\treturn dataset.ColumnTypePtr(dataset.ColumnType_Date)\n\tcase document.TableColumnTypeInteger:\n\t\treturn dataset.ColumnTypePtr(dataset.ColumnType_Number)\n\tcase document.TableColumnTypeImage:\n\t\treturn dataset.ColumnTypePtr(dataset.ColumnType_Image)\n\tdefault:\n\t\treturn dataset.ColumnTypePtr(dataset.ColumnType_Text)\n\t}\n}\n\nfunc convertDocTableSheet(t *entity.TableSheet) *dataset.DocTableSheet {\n\tif t == nil {\n\t\treturn nil\n\t}\n\treturn &dataset.DocTableSheet{\n\t\tID:        t.SheetId,\n\t\tSheetName: t.SheetName,\n\t\tTotalRow:  t.TotalRows,\n\t}\n}\n\nfunc convertSlice2Model(sliceEntity *entity.Slice) *dataset.SliceInfo {\n\tif sliceEntity == nil {\n\t\treturn nil\n\t}\n\treturn &dataset.SliceInfo{\n\t\tSliceID:    sliceEntity.ID,\n\t\tContent:    convertSliceContent(sliceEntity),\n\t\tStatus:     convertSliceStatus2Model(sliceEntity.SliceStatus),\n\t\tHitCount:   sliceEntity.Hit,\n\t\tCharCount:  sliceEntity.CharCount,\n\t\tSequence:   sliceEntity.Sequence,\n\t\tDocumentID: sliceEntity.DocumentID,\n\t\tChunkInfo:  \"\",\n\t}\n}\n\nfunc convertSliceContent(s *entity.Slice) string {\n\tif len(s.RawContent) == 0 {\n\t\treturn \"\"\n\t}\n\tif s.RawContent[0].Type == model.SliceContentTypeTable {\n\t\ttableData := make([]sliceContentData, 0, len(s.RawContent[0].Table.Columns))\n\t\tfor _, col := range s.RawContent[0].Table.Columns {\n\t\t\ttableData = append(tableData, sliceContentData{\n\t\t\t\tColumnID:   strconv.FormatInt(col.ColumnID, 10),\n\t\t\t\tColumnName: col.ColumnName,\n\t\t\t\tValue:      col.GetNullableStringValue(),\n\t\t\t\tDesc:       \"\",\n\t\t\t})\n\t\t}\n\t\tb, _ := json.Marshal(tableData)\n\t\treturn string(b)\n\t}\n\treturn s.GetSliceContent()\n}\n\ntype sliceContentData struct {\n\tColumnID   string `json:\"column_id\"`\n\tColumnName string `json:\"column_name\"`\n\tValue      string `json:\"value\"`\n\tDesc       string `json:\"desc\"`\n}\n\nfunc convertSliceStatus2Model(status model.SliceStatus) dataset.SliceStatus {\n\tswitch status {\n\tcase model.SliceStatusInit:\n\t\treturn dataset.SliceStatus_PendingVectoring\n\tcase model.SliceStatusFinishStore:\n\t\treturn dataset.SliceStatus_FinishVectoring\n\tcase model.SliceStatusFailed:\n\t\treturn dataset.SliceStatus_Deactive\n\tdefault:\n\t\treturn dataset.SliceStatus_PendingVectoring\n\t}\n}\nfunc convertFilterStrategy2Model(strategy *entity.ParsingStrategy) *dataset.FilterStrategy {\n\tif strategy == nil {\n\t\treturn nil\n\t}\n\tif len(strategy.FilterPages) != 0 {\n\t\treturn &dataset.FilterStrategy{\n\t\t\tFilterPage: slices.Transform(strategy.FilterPages, func(page int) int32 {\n\t\t\t\treturn int32(page)\n\t\t\t}),\n\t\t}\n\t}\n\treturn nil\n}\nfunc convertDocument2Model(documentEntity *entity.Document) *dataset.DocumentInfo {\n\tif documentEntity == nil {\n\t\treturn nil\n\t}\n\tchunkStrategy := convertChunkingStrategy2Model(documentEntity.ChunkingStrategy)\n\tfilterStrategy := convertFilterStrategy2Model(documentEntity.ParsingStrategy)\n\tparseStrategy, _ := convertParsingStrategy2Model(documentEntity.ParsingStrategy)\n\tdocInfo := &dataset.DocumentInfo{\n\t\tName:                  documentEntity.Name,\n\t\tDocumentID:            documentEntity.ID,\n\t\tTosURI:                &documentEntity.URI,\n\t\tCreateTime:            int32(documentEntity.CreatedAtMs / 1000),\n\t\tUpdateTime:            int32(documentEntity.UpdatedAtMs / 1000),\n\t\tCreatorID:             ptr.Of(documentEntity.CreatorID),\n\t\tSliceCount:            int32(documentEntity.SliceCount),\n\t\tType:                  string(documentEntity.FileExtension),\n\t\tSize:                  int32(documentEntity.Size),\n\t\tCharCount:             int32(documentEntity.CharCount),\n\t\tStatus:                convertDocumentStatus2Model(documentEntity.Status),\n\t\tHitCount:              int32(documentEntity.Hits),\n\t\tSourceType:            convertDocumentSource2Model(documentEntity.Source),\n\t\tFormatType:            convertDocumentTypeEntity2Dataset(documentEntity.Type),\n\t\tWebURL:                &documentEntity.URL,\n\t\tTableMeta:             convertTableColumns2Model(documentEntity.TableInfo.Columns),\n\t\tStatusDescript:        &documentEntity.StatusMsg,\n\t\tSpaceID:               ptr.Of(documentEntity.SpaceID),\n\t\tEditableAppendContent: nil,\n\t\tFilterStrategy:        filterStrategy,\n\t\tPreviewTosURL:         &documentEntity.URL,\n\t\tChunkStrategy:         chunkStrategy,\n\t\tParsingStrategy:       parseStrategy,\n\t}\n\treturn docInfo\n}\n\nfunc convertDocumentSource2Entity(sourceType dataset.DocumentSource) entity.DocumentSource {\n\tswitch sourceType {\n\tcase dataset.DocumentSource_Custom:\n\t\treturn entity.DocumentSourceCustom\n\tcase dataset.DocumentSource_Document:\n\t\treturn entity.DocumentSourceLocal\n\tdefault:\n\t\treturn entity.DocumentSourceLocal\n\t}\n}\n\nfunc convertDocumentSource2Model(sourceType entity.DocumentSource) dataset.DocumentSource {\n\tswitch sourceType {\n\tcase entity.DocumentSourceCustom:\n\t\treturn dataset.DocumentSource_Custom\n\tcase entity.DocumentSourceLocal:\n\t\treturn dataset.DocumentSource_Document\n\tdefault:\n\t\treturn dataset.DocumentSource_Document\n\t}\n}\n\nfunc convertDocumentStatus2Model(status entity.DocumentStatus) dataset.DocumentStatus {\n\tswitch status {\n\tcase entity.DocumentStatusDeleted:\n\t\treturn dataset.DocumentStatus_Deleted\n\tcase entity.DocumentStatusEnable, entity.DocumentStatusInit:\n\t\treturn dataset.DocumentStatus_Enable\n\tcase entity.DocumentStatusFailed:\n\t\treturn dataset.DocumentStatus_Failed\n\tdefault:\n\t\treturn dataset.DocumentStatus_Processing\n\t}\n}\n\nfunc convertTableColumns2Entity(columns []*dataset.TableColumn) []*entity.TableColumn {\n\tif len(columns) == 0 {\n\t\treturn nil\n\t}\n\tcolumnEntities := make([]*entity.TableColumn, 0, len(columns))\n\tfor i := range columns {\n\t\tcolumnEntities = append(columnEntities, &entity.TableColumn{\n\t\t\tID:          columns[i].GetID(),\n\t\t\tName:        columns[i].GetColumnName(),\n\t\t\tType:        convertColumnType2Entity(columns[i].GetColumnType()),\n\t\t\tDescription: columns[i].GetDesc(),\n\t\t\tIndexing:    columns[i].GetIsSemantic(),\n\t\t\tSequence:    columns[i].GetSequence(),\n\t\t})\n\t}\n\treturn columnEntities\n}\n\nfunc convertTableColumns2Model(columns []*entity.TableColumn) []*dataset.TableColumn {\n\tif len(columns) == 0 {\n\t\treturn nil\n\t}\n\tcolumnModels := make([]*dataset.TableColumn, 0, len(columns))\n\tfor i := range columns {\n\t\tcolumnType := convertColumnType2Model(columns[i].Type)\n\t\tcolumnModels = append(columnModels, &dataset.TableColumn{\n\t\t\tID:         columns[i].ID,\n\t\t\tColumnName: columns[i].Name,\n\t\t\tColumnType: &columnType,\n\t\t\tDesc:       &columns[i].Description,\n\t\t\tIsSemantic: columns[i].Indexing,\n\t\t\tSequence:   columns[i].Sequence,\n\t\t})\n\t}\n\treturn columnModels\n}\n\nfunc convertTableColumnDataSlice(cols []*entity.TableColumn, data []*document.ColumnData) (map[string]string, error) {\n\tif len(cols) != len(data) {\n\t\treturn nil, fmt.Errorf(\"[convertTableColumnDataSlice] invalid cols and vals, len(cols)=%d, len(vals)=%d\", len(cols), len(data))\n\t}\n\n\tresp := make(map[string]string, len(data))\n\tfor i := range data {\n\t\tcol := cols[i]\n\t\tval := data[i]\n\t\tcontent := \"\"\n\t\tif val != nil {\n\t\t\tcontent = val.GetStringValue()\n\t\t}\n\t\tresp[strconv.FormatInt(col.Sequence, 10)] = content\n\t}\n\n\treturn resp, nil\n}\n\nfunc convertColumnType2Model(columnType document.TableColumnType) dataset.ColumnType {\n\tswitch columnType {\n\tcase document.TableColumnTypeString:\n\t\treturn dataset.ColumnType_Text\n\tcase document.TableColumnTypeInteger:\n\t\treturn dataset.ColumnType_Number\n\tcase document.TableColumnTypeImage:\n\t\treturn dataset.ColumnType_Image\n\tcase document.TableColumnTypeBoolean:\n\t\treturn dataset.ColumnType_Boolean\n\tcase document.TableColumnTypeTime:\n\t\treturn dataset.ColumnType_Date\n\tcase document.TableColumnTypeNumber:\n\t\treturn dataset.ColumnType_Float\n\tdefault:\n\t\treturn dataset.ColumnType_Text\n\t}\n}\n\nfunc convertColumnType2Entity(columnType dataset.ColumnType) document.TableColumnType {\n\tswitch columnType {\n\tcase dataset.ColumnType_Text:\n\t\treturn document.TableColumnTypeString\n\tcase dataset.ColumnType_Number:\n\t\treturn document.TableColumnTypeInteger\n\tcase dataset.ColumnType_Image:\n\t\treturn document.TableColumnTypeImage\n\tcase dataset.ColumnType_Boolean:\n\t\treturn document.TableColumnTypeBoolean\n\tcase dataset.ColumnType_Date:\n\t\treturn document.TableColumnTypeTime\n\tcase dataset.ColumnType_Float:\n\t\treturn document.TableColumnTypeNumber\n\tdefault:\n\t\treturn document.TableColumnTypeString\n\t}\n}\n\nfunc convertParsingStrategy2Entity(strategy *dataset.ParsingStrategy, sheet *dataset.TableSheet, captionType *dataset.CaptionType, filterStrategy *dataset.FilterStrategy) *entity.ParsingStrategy {\n\tif strategy == nil && sheet == nil && captionType == nil {\n\t\treturn nil\n\t}\n\tres := &entity.ParsingStrategy{}\n\tif strategy != nil {\n\t\tres.ExtractImage = strategy.GetImageExtraction()\n\t\tres.ExtractTable = strategy.GetTableExtraction()\n\t\tres.ImageOCR = strategy.GetImageOcr()\n\t\tres.ParsingType = convertParsingType2Entity(strategy.GetParsingType())\n\t\tif strategy.GetParsingType() == dataset.ParsingType_FastParsing {\n\t\t\tres.ExtractImage = false\n\t\t\tres.ExtractTable = false\n\t\t\tres.ImageOCR = false\n\t\t}\n\t}\n\tif sheet != nil {\n\t\tres.SheetID = sheet.GetSheetID()\n\t\tres.HeaderLine = int(sheet.GetHeaderLineIdx())\n\t\tres.DataStartLine = int(sheet.GetStartLineIdx())\n\t}\n\tif filterStrategy != nil {\n\t\tres.FilterPages = slices.Transform(filterStrategy.GetFilterPage(), func(page int32) int { return int(page) })\n\t}\n\tres.CaptionType = convertCaptionType2Entity(captionType)\n\n\treturn res\n}\n\nfunc convertParsingType2Entity(pt dataset.ParsingType) entity.ParsingType {\n\tswitch pt {\n\tcase dataset.ParsingType_AccurateParsing:\n\t\treturn entity.ParsingType_AccurateParsing\n\tcase dataset.ParsingType_FastParsing:\n\t\treturn entity.ParsingType_FastParsing\n\tdefault:\n\t\treturn entity.ParsingType_FastParsing\n\t}\n}\n\nfunc convertParsingStrategy2Model(strategy *entity.ParsingStrategy) (s *dataset.ParsingStrategy, sheet *dataset.TableSheet) {\n\tif strategy == nil {\n\t\treturn nil, nil\n\t}\n\tsheet = &dataset.TableSheet{\n\t\tSheetID:       strategy.SheetID,\n\t\tHeaderLineIdx: int64(strategy.HeaderLine),\n\t\tStartLineIdx:  int64(strategy.DataStartLine),\n\t}\n\treturn &dataset.ParsingStrategy{\n\t\tParsingType:     ptr.Of(convertParsingType2Model(strategy.ParsingType)),\n\t\tImageExtraction: &strategy.ExtractImage,\n\t\tTableExtraction: &strategy.ExtractTable,\n\t\tImageOcr:        &strategy.ImageOCR,\n\t}, sheet\n}\nfunc convertParsingType2Model(pt entity.ParsingType) dataset.ParsingType {\n\tswitch pt {\n\tcase entity.ParsingType_AccurateParsing:\n\t\treturn dataset.ParsingType_AccurateParsing\n\tcase entity.ParsingType_FastParsing:\n\t\treturn dataset.ParsingType_FastParsing\n\tdefault:\n\t\treturn dataset.ParsingType_FastParsing\n\t}\n}\nfunc convertChunkingStrategy2Entity(strategy *dataset.ChunkStrategy) *entity.ChunkingStrategy {\n\tif strategy == nil {\n\t\treturn nil\n\t}\n\tif strategy.ChunkType == dataset.ChunkType_DefaultChunk {\n\t\treturn &entity.ChunkingStrategy{\n\t\t\tChunkType: convertChunkType2Entity(dataset.ChunkType_DefaultChunk),\n\t\t}\n\t}\n\treturn &entity.ChunkingStrategy{\n\t\tChunkType:       convertChunkType2Entity(strategy.ChunkType),\n\t\tChunkSize:       strategy.GetMaxTokens(),\n\t\tSeparator:       strategy.GetSeparator(),\n\t\tOverlap:         strategy.GetOverlap(),\n\t\tTrimSpace:       strategy.GetRemoveExtraSpaces(),\n\t\tTrimURLAndEmail: strategy.GetRemoveUrlsEmails(),\n\t\tMaxDepth:        strategy.GetMaxLevel(),\n\t\tSaveTitle:       strategy.GetSaveTitle(),\n\t}\n}\n\nfunc GetExtension(uri string) string {\n\tif uri == \"\" {\n\t\treturn \"\"\n\t}\n\tfileExtension := path.Base(uri)\n\text := path.Ext(fileExtension)\n\tif ext != \"\" {\n\t\treturn strings.TrimPrefix(ext, \".\")\n\t}\n\treturn \"\"\n}\nfunc convertCaptionType2Entity(ct *dataset.CaptionType) *parser.ImageAnnotationType {\n\tif ct == nil {\n\t\treturn nil\n\t}\n\tswitch ptr.From(ct) {\n\tcase dataset.CaptionType_Auto:\n\t\treturn ptr.Of(parser.ImageAnnotationTypeModel)\n\tcase dataset.CaptionType_Manual:\n\t\treturn ptr.Of(parser.ImageAnnotationTypeManual)\n\tdefault:\n\t\treturn ptr.Of(parser.ImageAnnotationTypeModel)\n\t}\n}\nfunc convertDatasetStatus2Entity(status dataset.DatasetStatus) model.KnowledgeStatus {\n\tswitch status {\n\tcase dataset.DatasetStatus_DatasetReady:\n\t\treturn model.KnowledgeStatusEnable\n\tcase dataset.DatasetStatus_DatasetForbid, dataset.DatasetStatus_DatasetDeleted:\n\t\treturn model.KnowledgeStatusDisable\n\tdefault:\n\t\treturn model.KnowledgeStatusEnable\n\t}\n}\n\nfunc convertChunkType2model(chunkType parser.ChunkType) dataset.ChunkType {\n\tswitch chunkType {\n\tcase parser.ChunkTypeCustom:\n\t\treturn dataset.ChunkType_CustomChunk\n\tcase parser.ChunkTypeDefault:\n\t\treturn dataset.ChunkType_DefaultChunk\n\tcase parser.ChunkTypeLeveled:\n\t\treturn dataset.ChunkType_LevelChunk\n\tdefault:\n\t\treturn dataset.ChunkType_CustomChunk\n\t}\n}\n\nfunc convertChunkType2Entity(chunkType dataset.ChunkType) parser.ChunkType {\n\tswitch chunkType {\n\tcase dataset.ChunkType_CustomChunk:\n\t\treturn parser.ChunkTypeCustom\n\tcase dataset.ChunkType_DefaultChunk:\n\t\treturn parser.ChunkTypeDefault\n\tcase dataset.ChunkType_LevelChunk:\n\t\treturn parser.ChunkTypeLeveled\n\tdefault:\n\t\treturn parser.ChunkTypeDefault\n\t}\n}\n\nfunc convertChunkingStrategy2Model(chunkingStrategy *entity.ChunkingStrategy) *dataset.ChunkStrategy {\n\tif chunkingStrategy == nil {\n\t\treturn nil\n\t}\n\treturn &dataset.ChunkStrategy{\n\t\tSeparator:         chunkingStrategy.Separator,\n\t\tMaxTokens:         chunkingStrategy.ChunkSize,\n\t\tRemoveExtraSpaces: chunkingStrategy.TrimSpace,\n\t\tRemoveUrlsEmails:  chunkingStrategy.TrimURLAndEmail,\n\t\tChunkType:         convertChunkType2model(chunkingStrategy.ChunkType),\n\t\tOverlap:           &chunkingStrategy.Overlap,\n\t\tMaxLevel:          &chunkingStrategy.MaxDepth,\n\t\tSaveTitle:         &chunkingStrategy.SaveTitle,\n\t}\n}\n\nfunc convertDocumentTypeEntity2Dataset(formatType model.DocumentType) dataset.FormatType {\n\tswitch formatType {\n\tcase model.DocumentTypeText:\n\t\treturn dataset.FormatType_Text\n\tcase model.DocumentTypeTable:\n\t\treturn dataset.FormatType_Table\n\tcase model.DocumentTypeImage:\n\t\treturn dataset.FormatType_Image\n\tdefault:\n\t\treturn dataset.FormatType_Text\n\t}\n}\n\nfunc convertDocumentTypeDataset2Entity(formatType dataset.FormatType) model.DocumentType {\n\tswitch formatType {\n\tcase dataset.FormatType_Text:\n\t\treturn model.DocumentTypeText\n\tcase dataset.FormatType_Table:\n\t\treturn model.DocumentTypeTable\n\tcase dataset.FormatType_Image:\n\t\treturn model.DocumentTypeImage\n\tdefault:\n\t\treturn model.DocumentTypeUnknown\n\t}\n}\n\nfunc batchConvertKnowledgeEntity2Model(ctx context.Context, knowledgeEntity []*model.Knowledge) (map[int64]*dataset.Dataset, error) {\n\tknowledgeMap := map[int64]*dataset.Dataset{}\n\tfor _, k := range knowledgeEntity {\n\t\tdocumentEntity, err := KnowledgeSVC.DomainSVC.ListDocument(ctx, &service.ListDocumentRequest{\n\t\t\tKnowledgeID: k.ID,\n\t\t\tSelectAll:   true,\n\t\t})\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"list document failed, err: %v\", err)\n\t\t\treturn nil, err\n\t\t}\n\t\tdatasetStatus := dataset.DatasetStatus_DatasetReady\n\t\tif k.Status == model.KnowledgeStatusDisable {\n\t\t\tdatasetStatus = dataset.DatasetStatus_DatasetForbid\n\t\t}\n\n\t\tvar (\n\t\t\trule                 *entity.ChunkingStrategy\n\t\t\ttotalSize            int64\n\t\t\tsliceCount           int32\n\t\t\tprocessingFileList   []string\n\t\t\tprocessingFileIDList []string\n\t\t\tfileList             []string\n\t\t)\n\t\tfor i := range documentEntity.Documents {\n\t\t\tdoc := documentEntity.Documents[i]\n\t\t\ttotalSize += doc.Size\n\t\t\tsliceCount += int32(doc.SliceCount)\n\t\t\tif doc.Status == entity.DocumentStatusChunking || doc.Status == entity.DocumentStatusUploading {\n\t\t\t\tprocessingFileList = append(processingFileList, doc.Name)\n\t\t\t\tprocessingFileIDList = append(processingFileIDList, strconv.FormatInt(doc.ID, 10))\n\t\t\t}\n\t\t\tif i == 0 {\n\t\t\t\trule = doc.ChunkingStrategy\n\t\t\t}\n\t\t\tfileList = append(fileList, doc.Name)\n\t\t}\n\t\tknowledgeMap[k.ID] = &dataset.Dataset{\n\t\t\tDatasetID:            k.ID,\n\t\t\tName:                 k.Name,\n\t\t\tFileList:             fileList,\n\t\t\tAllFileSize:          totalSize,\n\t\t\tBotUsedCount:         0,\n\t\t\tStatus:               datasetStatus,\n\t\t\tProcessingFileList:   processingFileList,\n\t\t\tUpdateTime:           int32(k.UpdatedAtMs / 1000),\n\t\t\tIconURI:              k.IconURI,\n\t\t\tIconURL:              k.IconURL,\n\t\t\tDescription:          k.Description,\n\t\t\tCanEdit:              true,\n\t\t\tCreateTime:           int32(k.CreatedAtMs / 1000),\n\t\t\tCreatorID:            k.CreatorID,\n\t\t\tSpaceID:              k.SpaceID,\n\t\t\tFailedFileList:       nil,\n\t\t\tFormatType:           convertDocumentTypeEntity2Dataset(k.Type),\n\t\t\tSliceCount:           sliceCount,\n\t\t\tDocCount:             int32(len(documentEntity.Documents)),\n\t\t\tHitCount:             int32(k.SliceHit),\n\t\t\tChunkStrategy:        convertChunkingStrategy2Model(rule),\n\t\t\tProcessingFileIDList: processingFileIDList,\n\t\t\tProjectID:            strconv.FormatInt(k.AppID, 10),\n\t\t}\n\t}\n\treturn knowledgeMap, nil\n}\n\nfunc convertSourceInfo(sourceInfo *dataset.SourceInfo) (*service.TableSourceInfo, error) {\n\tif sourceInfo == nil {\n\t\treturn nil, nil\n\t}\n\n\tfType := sourceInfo.FileType\n\tif fType == nil && sourceInfo.TosURI != nil {\n\t\tsplit := strings.Split(sourceInfo.GetTosURI(), \".\")\n\t\tfType = &split[len(split)-1]\n\t}\n\n\tvar customContent []map[string]string\n\tif sourceInfo.CustomContent != nil {\n\t\tif err := json.Unmarshal([]byte(sourceInfo.GetCustomContent()), &customContent); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn &service.TableSourceInfo{\n\t\tFileType:      fType,\n\t\tUri:           sourceInfo.TosURI,\n\t\tFileBase64:    sourceInfo.FileBase64,\n\t\tCustomContent: customContent,\n\t}, nil\n}\n\nfunc convertCreateDocReviewReq(req *dataset.CreateDocumentReviewRequest) *service.CreateDocumentReviewRequest {\n\tif req == nil {\n\t\treturn nil\n\t}\n\tvar captionType *dataset.CaptionType\n\tif req.GetChunkStrategy() != nil {\n\t\tcaptionType = req.GetChunkStrategy().CaptionType\n\t}\n\tresp := &service.CreateDocumentReviewRequest{\n\t\tChunkStrategy:   convertChunkingStrategy2Entity(req.ChunkStrategy),\n\t\tParsingStrategy: convertParsingStrategy2Entity(req.ParsingStrategy, nil, captionType, nil),\n\t}\n\tresp.KnowledgeID = req.GetDatasetID()\n\tresp.Reviews = slices.Transform(req.GetReviews(), func(r *dataset.ReviewInput) *service.ReviewInput {\n\t\treturn &service.ReviewInput{\n\t\t\tDocumentName: r.GetDocumentName(),\n\t\t\tDocumentType: r.GetDocumentType(),\n\t\t\tTosUri:       r.GetTosURI(),\n\t\t\tDocumentID:   ptr.Of(r.GetDocumentID()),\n\t\t}\n\t})\n\treturn resp\n}\n\nfunc convertReviewStatus2Model(status *entity.ReviewStatus) *dataset.ReviewStatus {\n\tif status == nil {\n\t\treturn nil\n\t}\n\tswitch *status {\n\tcase entity.ReviewStatus_Enable:\n\t\treturn dataset.ReviewStatusPtr(dataset.ReviewStatus_Enable)\n\tcase entity.ReviewStatus_Processing:\n\t\treturn dataset.ReviewStatusPtr(dataset.ReviewStatus_Processing)\n\tcase entity.ReviewStatus_Failed:\n\t\treturn dataset.ReviewStatusPtr(dataset.ReviewStatus_Failed)\n\tcase entity.ReviewStatus_ForceStop:\n\t\treturn dataset.ReviewStatusPtr(dataset.ReviewStatus_ForceStop)\n\tdefault:\n\t\treturn dataset.ReviewStatusPtr(dataset.ReviewStatus_Processing)\n\t}\n}\n\nfunc getIconURI(tp dataset.FormatType) string {\n\tswitch tp {\n\tcase dataset.FormatType_Text:\n\t\treturn upload.TextKnowledgeDefaultIcon\n\tcase dataset.FormatType_Table:\n\t\treturn upload.TableKnowledgeDefaultIcon\n\tcase dataset.FormatType_Image:\n\t\treturn upload.ImageKnowledgeDefaultIcon\n\tdefault:\n\t\treturn upload.TextKnowledgeDefaultIcon\n\t}\n}\n\nfunc convertFormatType2Entity(tp dataset.FormatType) model.DocumentType {\n\tswitch tp {\n\tcase dataset.FormatType_Text:\n\t\treturn model.DocumentTypeText\n\tcase dataset.FormatType_Table:\n\t\treturn model.DocumentTypeTable\n\tcase dataset.FormatType_Image:\n\t\treturn model.DocumentTypeImage\n\tdefault:\n\t\treturn model.DocumentTypeUnknown\n\t}\n}\n"
  },
  {
    "path": "backend/application/knowledge/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage knowledge\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/coze-dev/coze-studio/backend/application/search\"\n\tknowledgeImpl \"github.com/coze-dev/coze-studio/backend/domain/knowledge/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/eventbus\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\ntype ServiceComponents = knowledgeImpl.KnowledgeSVCConfig\n\nfunc InitService(ctx context.Context, c *ServiceComponents, bus search.ResourceEventBus) (*KnowledgeApplicationService, error) {\n\tknowledgeDomainSVC, knowledgeEventHandler := knowledgeImpl.NewKnowledgeSVC(c)\n\n\tnameServer := os.Getenv(consts.MQServer)\n\tif err := eventbus.GetDefaultSVC().RegisterConsumer(nameServer, consts.RMQTopicKnowledge, consts.RMQConsumeGroupKnowledge, knowledgeEventHandler); err != nil {\n\t\treturn nil, fmt.Errorf(\"register knowledge consumer failed, err=%w\", err)\n\t}\n\n\tKnowledgeSVC.DomainSVC = knowledgeDomainSVC\n\tKnowledgeSVC.eventBus = bus\n\tKnowledgeSVC.storage = c.Storage\n\treturn KnowledgeSVC, nil\n}\n"
  },
  {
    "path": "backend/application/knowledge/knowledge.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage knowledge\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/bytedance/sonic\"\n\n\tdataset \"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge\"\n\tdocument \"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge\"\n\tmodelCommon \"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge\"\n\tresource \"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/application/search\"\n\n\tmodel \"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/knowledge/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/knowledge/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/permission\"\n\tresourceEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\tcd \"github.com/coze-dev/coze-studio/backend/infra/document\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/document/parser\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/maps\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\ntype KnowledgeApplicationService struct {\n\tDomainSVC service.Knowledge\n\teventBus  search.ResourceEventBus\n\tstorage   storage.Storage\n}\n\nvar KnowledgeSVC = &KnowledgeApplicationService{}\n\nfunc (k *KnowledgeApplicationService) deleteKnowledgeInternal(ctx context.Context, knowledgeID int64) error {\n\terr := k.DomainSVC.DeleteKnowledge(ctx, &service.DeleteKnowledgeRequest{\n\t\tKnowledgeID: knowledgeID,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"delete knowledge failed, err: %v\", err)\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (k *KnowledgeApplicationService) publishDeleteKnowledgeEvent(ctx context.Context, knowledgeID int64) error {\n\terr := k.eventBus.PublishResources(ctx, &resourceEntity.ResourceDomainEvent{\n\t\tOpType: resourceEntity.Deleted,\n\t\tResource: &resourceEntity.ResourceDocument{\n\t\t\tResID:   knowledgeID,\n\t\t\tResType: resource.ResType_Knowledge,\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish resource event failed, err: %v\", err)\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (k *KnowledgeApplicationService) updateKnowledgeInternal(ctx context.Context, knowledgeID int64, name, description *string, iconURI *string, status *dataset.DatasetStatus) error {\n\tupdateReq := service.UpdateKnowledgeRequest{\n\t\tKnowledgeID: knowledgeID,\n\t}\n\n\tif name != nil && len(*name) != 0 {\n\t\tupdateReq.Name = name\n\t}\n\tif description != nil {\n\t\tupdateReq.Description = description\n\t}\n\tif iconURI != nil {\n\t\tupdateReq.IconUri = iconURI\n\t}\n\tif status != nil {\n\t\tupdateReq.Status = ptr.Of(convertDatasetStatus2Entity(*status))\n\t}\n\n\terr := k.DomainSVC.UpdateKnowledge(ctx, &updateReq)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"update knowledge failed, err: %v\", err)\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (k *KnowledgeApplicationService) publishUpdateKnowledgeEvent(ctx context.Context, knowledgeID int64, name *string, updateTimeMs int64) error {\n\terr := k.eventBus.PublishResources(ctx, &resourceEntity.ResourceDomainEvent{\n\t\tOpType: resourceEntity.Updated,\n\t\tResource: &resourceEntity.ResourceDocument{\n\t\t\tResType:      resource.ResType_Knowledge,\n\t\t\tResID:        knowledgeID,\n\t\t\tName:         name,\n\t\t\tUpdateTimeMS: ptr.Of(updateTimeMs),\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish resource event failed, err: %v\", err)\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (k *KnowledgeApplicationService) buildListKnowledgeRequest(ctx context.Context, spaceID int64, name *string, formatType *dataset.FormatType, page, pageSize int, projectIDStr string) (*service.ListKnowledgeRequest, error) {\n\trequest := service.ListKnowledgeRequest{}\n\n\tif page > 0 {\n\t\trequest.Page = &page\n\t}\n\tif pageSize > 0 {\n\t\trequest.PageSize = &pageSize\n\t}\n\n\tif projectIDStr != \"\" && projectIDStr != \"0\" {\n\t\tprojectID, err := conv.StrToInt64(projectIDStr)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\trequest.AppID = ptr.Of(projectID)\n\t}\n\n\torderBy := model.OrderUpdatedAt\n\trequest.Order = &orderBy\n\torderType := model.OrderTypeDesc\n\trequest.OrderType = &orderType\n\n\tif name != nil && *name != \"\" {\n\t\trequest.Query = name\n\t}\n\tif formatType != nil {\n\t\trequest.FormatType = ptr.Of(convertFormatType2Entity(*formatType))\n\t}\n\n\tif spaceID != 0 {\n\t\trequest.SpaceID = &spaceID\n\t}\n\n\treturn &request, nil\n}\n\nfunc (k *KnowledgeApplicationService) createKnowledgeInternal(ctx context.Context, name, description string, spaceID, creatorID, projectID int64, formatType dataset.FormatType, iconURI string) (*service.CreateKnowledgeResponse, error) {\n\tdocumentType := convertDocumentTypeDataset2Entity(formatType)\n\tif documentType == model.DocumentTypeUnknown {\n\t\treturn nil, errors.New(\"unknown document type\")\n\t}\n\n\tcreateReq := service.CreateKnowledgeRequest{\n\t\tName:        name,\n\t\tDescription: description,\n\t\tCreatorID:   creatorID,\n\t\tSpaceID:     spaceID,\n\t\tAppID:       projectID,\n\t\tFormatType:  documentType,\n\t\tIconUri:     iconURI,\n\t}\n\tif iconURI == \"\" {\n\t\tcreateReq.IconUri = getIconURI(formatType)\n\t}\n\n\tdomainResp, err := k.DomainSVC.CreateKnowledge(ctx, &createReq)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"create knowledge failed, err: %v\", err)\n\t\treturn nil, err\n\t}\n\n\treturn domainResp, nil\n}\n\nfunc (k *KnowledgeApplicationService) publishKnowledgeEvent(ctx context.Context, knowledgeID int64, name string, formatType dataset.FormatType, spaceID, projectID, creatorID int64, createdAtMs int64) error {\n\tvar ptrAppID *int64\n\tif projectID != 0 {\n\t\tptrAppID = ptr.Of(projectID)\n\t}\n\n\terr := k.eventBus.PublishResources(ctx, &resourceEntity.ResourceDomainEvent{\n\t\tOpType: resourceEntity.Created,\n\t\tResource: &resourceEntity.ResourceDocument{\n\t\t\tResType:       resource.ResType_Knowledge,\n\t\t\tResID:         knowledgeID,\n\t\t\tName:          ptr.Of(name),\n\t\t\tResSubType:    ptr.Of(int32(formatType)),\n\t\t\tSpaceID:       ptr.Of(spaceID),\n\t\t\tAPPID:         ptrAppID,\n\t\t\tOwnerID:       ptr.Of(creatorID),\n\t\t\tPublishStatus: ptr.Of(resource.PublishStatus_Published),\n\t\t\tPublishTimeMS: ptr.Of(createdAtMs),\n\t\t\tCreateTimeMS:  ptr.Of(createdAtMs),\n\t\t\tUpdateTimeMS:  ptr.Of(createdAtMs),\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish resource event failed, err: %v\", err)\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (k *KnowledgeApplicationService) CreateKnowledge(ctx context.Context, req *dataset.CreateDatasetRequest) (*dataset.CreateDatasetResponse, error) {\n\tdocumentType := convertDocumentTypeDataset2Entity(req.FormatType)\n\tif documentType == model.DocumentTypeUnknown {\n\t\treturn dataset.NewCreateDatasetResponse(), errors.New(\"unknown document type\")\n\t}\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\terr := k.checkPermission(ctx, uid, ptr.Of(req.SpaceID), nil, nil, nil)\n\tif err != nil {\n\t\treturn dataset.NewCreateDatasetResponse(), err\n\t}\n\n\tdomainResp, err := k.createKnowledgeInternal(ctx, req.Name, req.Description, req.SpaceID, ptr.From(uid), req.GetProjectID(), req.FormatType, req.IconURI)\n\tif err != nil {\n\t\treturn dataset.NewCreateDatasetResponse(), err\n\t}\n\n\terr = k.publishKnowledgeEvent(ctx, domainResp.KnowledgeID, req.Name, req.FormatType, req.SpaceID, req.GetProjectID(), ptr.From(uid), domainResp.CreatedAtMs)\n\tif err != nil {\n\t\treturn dataset.NewCreateDatasetResponse(), err\n\t}\n\n\treturn &dataset.CreateDatasetResponse{\n\t\tDatasetID: domainResp.KnowledgeID,\n\t}, nil\n}\n\nfunc (k *KnowledgeApplicationService) DatasetDetail(ctx context.Context, req *dataset.DatasetDetailRequest) (*dataset.DatasetDetailResponse, error) {\n\tvar err error\n\tvar datasetIDs []int64\n\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\terr = k.checkPermission(ctx, uid, ptr.Of(req.SpaceID), nil, nil, nil)\n\tif err != nil {\n\t\treturn dataset.NewDatasetDetailResponse(), err\n\t}\n\n\tdatasetIDs, err = slices.TransformWithErrorCheck(req.GetDatasetIDs(), func(s string) (int64, error) {\n\t\tid, err := strconv.ParseInt(s, 10, 64)\n\t\treturn id, err\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"convert string ids failed, err: %v\", err)\n\t\treturn dataset.NewDatasetDetailResponse(), err\n\t}\n\n\tdomainResp, err := k.DomainSVC.ListKnowledge(ctx, &service.ListKnowledgeRequest{\n\t\tIDs:     datasetIDs,\n\t\tSpaceID: &req.SpaceID,\n\t\tAppID:   &req.ProjectID,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"get knowledge failed, err: %v\", err)\n\t\treturn dataset.NewDatasetDetailResponse(), err\n\t}\n\tknowledgeMap, err := batchConvertKnowledgeEntity2Model(ctx, domainResp.KnowledgeList)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"batch convert knowledge entity failed, err: %v\", err)\n\t\treturn dataset.NewDatasetDetailResponse(), err\n\t}\n\tresponse := dataset.NewDatasetDetailResponse()\n\tresponse.DatasetDetails = maps.TransformKey(knowledgeMap, func(key int64) string {\n\t\treturn strconv.FormatInt(key, 10)\n\t})\n\treturn response, nil\n}\n\nfunc (k *KnowledgeApplicationService) ListKnowledge(ctx context.Context, req *dataset.ListDatasetRequest) (*dataset.ListDatasetResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tvar name *string\n\tvar formatType *dataset.FormatType\n\tif req.Filter != nil {\n\t\tif req.GetFilter().GetName() != \"\" {\n\t\t\tnameValue := req.GetFilter().GetName()\n\t\t\tname = &nameValue\n\t\t}\n\t\tif req.GetFilter().GetFormatType() != 0 {\n\t\t\tformatTypeValue := req.GetFilter().GetFormatType()\n\t\t\tformatType = &formatTypeValue\n\t\t}\n\t}\n\n\tvar page, pageSize int\n\tif req.Page != nil && *req.Page > 0 {\n\t\tpage = int(*req.Page)\n\t}\n\tif req.Size != nil && *req.Size > 0 {\n\t\tpageSize = int(*req.Size)\n\t}\n\n\trequest, err := k.buildListKnowledgeRequest(ctx, req.GetSpaceID(), name, formatType, page, pageSize, req.GetProjectID())\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"build list knowledge request failed, err: %v\", err)\n\t\treturn dataset.NewListDatasetResponse(), err\n\t}\n\n\tif req.GetSpaceID() != 0 {\n\t\terr = k.checkPermission(ctx, uid, ptr.Of(req.SpaceID), nil, nil, nil)\n\t\tif err != nil {\n\t\t\treturn dataset.NewListDatasetResponse(), err\n\t\t}\n\t}\n\n\tif req.Filter != nil && len(req.GetFilter().DatasetIds) > 0 {\n\t\trequest.IDs, err = slices.TransformWithErrorCheck(req.GetFilter().GetDatasetIds(), func(s string) (int64, error) {\n\t\t\tid, err := strconv.ParseInt(s, 10, 64)\n\t\t\treturn id, err\n\t\t})\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"convert string ids failed, err: %v\", err)\n\t\t\treturn dataset.NewListDatasetResponse(), err\n\t\t}\n\t}\n\n\tif req.GetOrderField() == dataset.OrderField_CreateTime {\n\t\trequest.Order = ptr.Of(model.OrderCreatedAt)\n\t}\n\tif req.GetOrderType() == dataset.OrderType_Asc {\n\t\trequest.OrderType = ptr.Of(model.OrderTypeAsc)\n\t}\n\n\tdomainResp, err := k.DomainSVC.ListKnowledge(ctx, request)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"mget knowledge failed, err: %v\", err)\n\t\treturn dataset.NewListDatasetResponse(), err\n\t}\n\n\tresp := dataset.ListDatasetResponse{}\n\tresp.Total = int32(domainResp.Total)\n\tknowledgeMap, err := batchConvertKnowledgeEntity2Model(ctx, domainResp.KnowledgeList)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"batch convert knowledge entity failed, err: %v\", err)\n\t\treturn dataset.NewListDatasetResponse(), err\n\t}\n\tresp.DatasetList = make([]*dataset.Dataset, 0)\n\tfor i := range domainResp.KnowledgeList {\n\t\tresp.DatasetList = append(resp.DatasetList, knowledgeMap[domainResp.KnowledgeList[i].ID])\n\t}\n\treturn &resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) DeleteKnowledge(ctx context.Context, req *dataset.DeleteDatasetRequest) (*dataset.DeleteDatasetResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\terr := k.checkPermission(ctx, uid, nil, nil, ptr.Of(req.GetDatasetID()), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = k.deleteKnowledgeInternal(ctx, req.GetDatasetID())\n\tif err != nil {\n\t\treturn dataset.NewDeleteDatasetResponse(), err\n\t}\n\n\terr = k.publishDeleteKnowledgeEvent(ctx, req.GetDatasetID())\n\tif err != nil {\n\t\treturn dataset.NewDeleteDatasetResponse(), err\n\t}\n\n\treturn &dataset.DeleteDatasetResponse{}, nil\n}\n\nfunc (k *KnowledgeApplicationService) UpdateKnowledge(ctx context.Context, req *dataset.UpdateDatasetRequest) (*dataset.UpdateDatasetResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\terr := k.checkPermission(ctx, uid, nil, nil, ptr.Of(req.GetDatasetID()), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnow := time.Now().UnixMilli()\n\terr = k.updateKnowledgeInternal(ctx, req.GetDatasetID(), &req.Name, &req.Description, &req.IconURI, req.Status)\n\tif err != nil {\n\t\treturn dataset.NewUpdateDatasetResponse(), err\n\t}\n\n\terr = k.publishUpdateKnowledgeEvent(ctx, req.GetDatasetID(), &req.Name, now)\n\tif err != nil {\n\t\treturn dataset.NewUpdateDatasetResponse(), err\n\t}\n\n\treturn &dataset.UpdateDatasetResponse{}, nil\n}\n\nfunc (k *KnowledgeApplicationService) CreateDocument(ctx context.Context, req *dataset.CreateDocumentRequest, fromOpenAPI bool) (*dataset.CreateDocumentResponse, error) {\n\n\tuid, err := getUID(ctx, fromOpenAPI)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tlistResp, err := k.DomainSVC.ListKnowledge(ctx, &service.ListKnowledgeRequest{IDs: []int64{req.GetDatasetID()}})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"mget knowledge failed, err: %v\", err)\n\t\treturn dataset.NewCreateDocumentResponse(), err\n\t}\n\tif len(listResp.KnowledgeList) == 0 {\n\t\treturn dataset.NewCreateDocumentResponse(), errors.New(\"knowledge not found\")\n\t}\n\tknowledgeInfo := listResp.KnowledgeList[0]\n\n\tif knowledgeInfo.CreatorID != *uid {\n\t\treturn dataset.NewCreateDocumentResponse(), errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"permission denied\"))\n\t}\n\n\tdocuments := []*entity.Document{}\n\tif len(req.GetDocumentBases()) == 0 {\n\t\treturn dataset.NewCreateDocumentResponse(), errors.New(\"document base is empty\")\n\t}\n\tif req.FormatType == dataset.FormatType_Table && req.DocumentBases[0].GetName() == \"\" {\n\t\treq.DocumentBases[0].Name = knowledgeInfo.Name\n\t}\n\tfor i := range req.GetDocumentBases() {\n\t\tif req.GetDocumentBases()[i] == nil {\n\t\t\tcontinue\n\t\t}\n\t\tdocSource := entity.DocumentSourceCustom\n\t\tif req.GetDocumentBases()[i].GetSourceInfo().GetTosURI() != \"\" {\n\t\t\tdocSource = entity.DocumentSourceLocal\n\t\t}\n\t\tvar captionType *dataset.CaptionType\n\t\tif req.GetChunkStrategy() != nil {\n\t\t\tcaptionType = req.GetChunkStrategy().CaptionType\n\t\t}\n\t\tdocument := entity.Document{\n\t\t\tInfo: model.Info{\n\t\t\t\tName:      req.GetDocumentBases()[i].GetName(),\n\t\t\t\tCreatorID: *uid,\n\t\t\t\tSpaceID:   knowledgeInfo.SpaceID,\n\t\t\t\tAppID:     knowledgeInfo.AppID,\n\t\t\t},\n\t\t\tKnowledgeID:      req.GetDatasetID(),\n\t\t\tType:             convertDocumentTypeDataset2Entity(req.GetFormatType()),\n\t\t\tRawContent:       req.GetDocumentBases()[i].GetSourceInfo().GetCustomContent(),\n\t\t\tURI:              req.GetDocumentBases()[i].GetSourceInfo().GetTosURI(),\n\t\t\tFileExtension:    parser.FileExtension(GetExtension(req.GetDocumentBases()[i].GetSourceInfo().GetTosURI())),\n\t\t\tSource:           docSource,\n\t\t\tIsAppend:         req.GetIsAppend(),\n\t\t\tParsingStrategy:  convertParsingStrategy2Entity(req.GetParsingStrategy(), req.GetDocumentBases()[i].TableSheet, captionType, req.GetDocumentBases()[i].FilterStrategy),\n\t\t\tChunkingStrategy: convertChunkingStrategy2Entity(req.GetChunkStrategy()),\n\t\t\tTableInfo: entity.TableInfo{\n\t\t\t\tColumns: convertTableColumns2Entity(req.GetDocumentBases()[i].GetTableMeta()),\n\t\t\t},\n\t\t}\n\t\tdocuments = append(documents, &document)\n\t}\n\tresp := dataset.NewCreateDocumentResponse()\n\tcreateResp, err := k.DomainSVC.CreateDocument(ctx, &service.CreateDocumentRequest{\n\t\tDocuments: documents,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"create document failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\tresp.DocumentInfos = make([]*dataset.DocumentInfo, 0)\n\tfor i := range createResp.Documents {\n\t\tresp.DocumentInfos = append(resp.DocumentInfos, convertDocument2Model(createResp.Documents[i]))\n\t}\n\treturn resp, nil\n}\n\nfunc getUID(ctx context.Context, fromOpenAPI bool) (*int64, error) {\n\tif fromOpenAPI {\n\t\treturn ptr.Of(ctxutil.MustGetUIDFromApiAuthCtx(ctx)), nil\n\t}\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\treturn uid, nil\n}\n\nfunc (k *KnowledgeApplicationService) ListDocument(ctx context.Context, req *dataset.ListDocumentRequest, fromOpenAPI bool) (*dataset.ListDocumentResponse, error) {\n\n\tvar err error\n\tuid, err := getUID(ctx, fromOpenAPI)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar limit int = int(req.GetSize())\n\tvar offset int = int(req.GetPage() * req.GetSize())\n\n\tdocIDs := make([]int64, 0)\n\tif len(req.GetDocumentIds()) != 0 {\n\t\tdocIDs, err = slices.TransformWithErrorCheck(req.GetDocumentIds(), func(s string) (int64, error) {\n\t\t\tid, err := strconv.ParseInt(s, 10, 64)\n\t\t\treturn id, err\n\t\t})\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"convert string ids failed, err: %v\", err)\n\t\t\treturn dataset.NewListDocumentResponse(), err\n\t\t}\n\t}\n\t//keyword := req.GetKeyword()\n\tlistResp, err := k.DomainSVC.ListDocument(ctx, &service.ListDocumentRequest{\n\t\tKnowledgeID: req.GetDatasetID(),\n\t\t//Keyword:     &keyword,\n\t\tDocumentIDs: docIDs,\n\t\tLimit:       &limit,\n\t\tOffset:      &offset,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"list document failed, err: %v\", err)\n\t\treturn dataset.NewListDocumentResponse(), err\n\t}\n\tdocuments := listResp.Documents\n\tresp := dataset.NewListDocumentResponse()\n\tresp.Total = int32(listResp.Total)\n\tresp.DocumentInfos = make([]*dataset.DocumentInfo, 0)\n\tfor i := range documents {\n\t\tif documents[i].CreatorID != *uid {\n\t\t\treturn dataset.NewListDocumentResponse(), errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"permission denied\"))\n\t\t}\n\t\tresp.DocumentInfos = append(resp.DocumentInfos, convertDocument2Model(documents[i]))\n\t}\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) DeleteDocument(ctx context.Context, req *dataset.DeleteDocumentRequest, fromOpenAPI bool) (*dataset.DeleteDocumentResponse, error) {\n\n\tif len(req.GetDocumentIds()) == 0 {\n\t\treturn dataset.NewDeleteDocumentResponse(), errors.New(\"document ids is empty\")\n\t}\n\n\tuid, err := getUID(ctx, fromOpenAPI)\n\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\ttransformedIDs, err := slices.TransformWithErrorCheck(req.GetDocumentIds(), func(s string) (int64, error) {\n\t\tid, err := strconv.ParseInt(s, 10, 64)\n\t\treturn id, err\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"convert string ids failed, err: %v\", err)\n\t\treturn dataset.NewDeleteDocumentResponse(), err\n\t}\n\n\terr = k.checkPermission(ctx, uid, nil, transformedIDs, nil, nil)\n\tif err != nil {\n\t\treturn dataset.NewDeleteDocumentResponse(), err\n\t}\n\n\tfor i := range req.GetDocumentIds() {\n\t\tdocID, err := strconv.ParseInt(req.GetDocumentIds()[i], 10, 64)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"parse int failed, err: %v\", err)\n\t\t\treturn dataset.NewDeleteDocumentResponse(), err\n\t\t}\n\t\terr = k.DomainSVC.DeleteDocument(ctx, &service.DeleteDocumentRequest{\n\t\t\tDocumentID: docID,\n\t\t})\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"delete document failed, err: %v\", err)\n\t\t\treturn dataset.NewDeleteDocumentResponse(), err\n\t\t}\n\t}\n\treturn &dataset.DeleteDocumentResponse{}, nil\n}\n\nfunc (k *KnowledgeApplicationService) UpdateDocument(ctx context.Context, req *dataset.UpdateDocumentRequest, fromOpenAPI bool) (*dataset.UpdateDocumentResponse, error) {\n\n\tuid, err := getUID(ctx, fromOpenAPI)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = k.checkPermission(ctx, uid, nil, []int64{req.GetDocumentID()}, nil, nil)\n\tif err != nil {\n\t\treturn dataset.NewUpdateDocumentResponse(), err\n\t}\n\n\terr = k.DomainSVC.UpdateDocument(ctx, &service.UpdateDocumentRequest{\n\t\tDocumentID:   req.GetDocumentID(),\n\t\tDocumentName: req.DocumentName,\n\t\tTableInfo: &entity.TableInfo{\n\t\t\tColumns: convertTableColumns2Entity(req.GetTableMeta()),\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"update document failed, err: %v\", err)\n\t\treturn dataset.NewUpdateDocumentResponse(), err\n\t}\n\treturn &dataset.UpdateDocumentResponse{}, nil\n}\n\nfunc (k *KnowledgeApplicationService) checkPermission(ctx context.Context, uid *int64, spaceID *int64, documentIDs []int64, knowledgeID *int64, sliceIDs []int64) error {\n\n\trd := []*permission.ResourceIdentifier{}\n\n\tif spaceID != nil {\n\t\trd = append(rd, &permission.ResourceIdentifier{\n\t\t\tType:   permission.ResourceTypeWorkspace,\n\t\t\tID:     []int64{*spaceID},\n\t\t\tAction: permission.ActionRead,\n\t\t})\n\t}\n\n\tif documentIDs != nil {\n\t\trd = append(rd, &permission.ResourceIdentifier{\n\t\t\tType:   permission.ResourceTypeKnowledgeDocument,\n\t\t\tID:     documentIDs,\n\t\t\tAction: permission.ActionRead,\n\t\t})\n\t}\n\tif sliceIDs != nil {\n\t\trd = append(rd, &permission.ResourceIdentifier{\n\t\t\tType:   permission.ResourceTypeKnowledgeSlice,\n\t\t\tID:     sliceIDs,\n\t\t\tAction: permission.ActionRead,\n\t\t})\n\t}\n\n\tif knowledgeID != nil {\n\t\trd = append(rd, &permission.ResourceIdentifier{\n\t\t\tType:   permission.ResourceTypeKnowledge,\n\t\t\tID:     []int64{*knowledgeID},\n\t\t\tAction: permission.ActionRead,\n\t\t})\n\t}\n\n\tif len(rd) == 0 {\n\t\treturn nil\n\t}\n\n\tcheckResult, err := permission.DefaultSVC().CheckAuthz(ctx, &permission.CheckAuthzData{\n\t\tResourceIdentifier: rd,\n\t\tOperatorID:         *uid,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"check authz failed, err: %v\", err)\n\t\treturn err\n\t}\n\tif checkResult.Decision != permission.Allow {\n\t\treturn errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"permission denied\"))\n\t}\n\n\treturn nil\n}\n\nfunc (k *KnowledgeApplicationService) GetDocumentProgress(ctx context.Context, req *dataset.GetDocumentProgressRequest) (*dataset.GetDocumentProgressResponse, error) {\n\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\tdocIDs, err := slices.TransformWithErrorCheck(req.GetDocumentIds(), func(s string) (int64, error) {\n\t\tid, err := strconv.ParseInt(s, 10, 64)\n\t\treturn id, err\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"convert string ids failed, err: %v\", err)\n\t\treturn dataset.NewGetDocumentProgressResponse(), err\n\t}\n\terr = k.checkPermission(ctx, uid, nil, docIDs, nil, nil)\n\tif err != nil {\n\t\treturn dataset.NewGetDocumentProgressResponse(), err\n\t}\n\n\tdomainResp, err := k.DomainSVC.MGetDocumentProgress(ctx, &service.MGetDocumentProgressRequest{\n\t\tDocumentIDs: docIDs,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"mget document progress failed, err: %v\", err)\n\t\treturn dataset.NewGetDocumentProgressResponse(), err\n\t}\n\tresp := dataset.NewGetDocumentProgressResponse()\n\tresp.Data = make([]*dataset.DocumentProgress, 0)\n\tfor i := range domainResp.ProgressList {\n\t\tresp.Data = append(resp.Data, &dataset.DocumentProgress{\n\t\t\tDocumentID:     domainResp.ProgressList[i].ID,\n\t\t\tProgress:       int32(domainResp.ProgressList[i].Progress),\n\t\t\tStatus:         convertDocumentStatus2Model(domainResp.ProgressList[i].Status),\n\t\t\tStatusDescript: &domainResp.ProgressList[i].StatusMsg,\n\t\t\tDocumentName:   domainResp.ProgressList[i].Name,\n\t\t\tRemainingTime:  &domainResp.ProgressList[i].RemainingSec,\n\t\t\tSize:           &domainResp.ProgressList[i].Size,\n\t\t\tType:           &domainResp.ProgressList[i].FileExtension,\n\t\t\tURL:            ptr.Of(domainResp.ProgressList[i].URL),\n\t\t})\n\t}\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) Resegment(ctx context.Context, req *dataset.ResegmentRequest) (*dataset.ResegmentResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\tresp := dataset.NewResegmentResponse()\n\tresp.DocumentInfos = make([]*dataset.DocumentInfo, 0)\n\tfor i := range req.GetDocumentIds() {\n\t\tdocID, err := strconv.ParseInt(req.GetDocumentIds()[i], 10, 64)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"parse int failed, err: %v\", err)\n\t\t\treturn dataset.NewResegmentResponse(), err\n\t\t}\n\t\tvar captionType *dataset.CaptionType\n\t\tif req.GetChunkStrategy() != nil {\n\t\t\tcaptionType = req.GetChunkStrategy().CaptionType\n\t\t}\n\t\tresegmentResp, err := k.DomainSVC.ResegmentDocument(ctx, &service.ResegmentDocumentRequest{\n\t\t\tDocumentID:       docID,\n\t\t\tChunkingStrategy: convertChunkingStrategy2Entity(req.GetChunkStrategy()),\n\t\t\tParsingStrategy:  convertParsingStrategy2Entity(req.GetParsingStrategy(), nil, captionType, req.FilterStrategy),\n\t\t})\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"resegment document failed, err: %v\", err)\n\t\t\treturn dataset.NewResegmentResponse(), err\n\t\t}\n\t\tif resegmentResp.Document.Info.CreatorID != *uid {\n\t\t\treturn dataset.NewResegmentResponse(), errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"permission denied\"))\n\t\t}\n\n\t\tresp.DocumentInfos = append(resp.DocumentInfos, &dataset.DocumentInfo{\n\t\t\tName:       resegmentResp.Document.Name,\n\t\t\tDocumentID: resegmentResp.Document.ID,\n\t\t})\n\t}\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) CreateSlice(ctx context.Context, req *dataset.CreateSliceRequest) (*dataset.CreateSliceResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\tlistResp, err := k.DomainSVC.ListDocument(ctx, &service.ListDocumentRequest{\n\t\tDocumentIDs: []int64{req.GetDocumentID()},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"list document failed, err: %v\", err)\n\t\treturn dataset.NewCreateSliceResponse(), err\n\t}\n\tif len(listResp.Documents) != 1 {\n\t\treturn dataset.NewCreateSliceResponse(), errors.New(\"document not found\")\n\t}\n\tif listResp.Documents[0].CreatorID != *uid {\n\t\treturn dataset.NewCreateSliceResponse(), errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"permission denied\"))\n\t}\n\tsliceEntity := &model.Slice{\n\t\tInfo: model.Info{\n\t\t\tCreatorID: *uid,\n\t\t},\n\t\tDocumentID: req.GetDocumentID(),\n\t\tSequence:   req.GetSequence(),\n\t}\n\tif listResp.Documents[0].Type == model.DocumentTypeTable {\n\t\terr = packTableSliceColumnData(ctx, sliceEntity, req.GetRawText(), listResp.Documents[0])\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"pack table slice column data failed, err: %v\", err)\n\t\t\treturn dataset.NewCreateSliceResponse(), errorx.New(errno.ErrKnowledgeCheckTableSliceValidCode, errorx.KV(\"msg\", err.Error()))\n\t\t}\n\t} else {\n\t\tsliceEntity.RawContent = []*model.SliceContent{\n\t\t\t{\n\t\t\t\tType: model.SliceContentTypeText,\n\t\t\t\tText: req.RawText,\n\t\t\t},\n\t\t}\n\t}\n\tcreateResp, err := k.DomainSVC.CreateSlice(ctx, &service.CreateSliceRequest{\n\t\tDocumentID: req.GetDocumentID(),\n\t\tCreatorID:  ptr.From(uid),\n\t\tPosition:   req.GetSequence(),\n\t\tRawContent: sliceEntity.RawContent,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"create slice failed, err: %v\", err)\n\t\treturn dataset.NewCreateSliceResponse(), err\n\t}\n\tresp := dataset.NewCreateSliceResponse()\n\tresp.SliceID = createResp.SliceID\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) DeleteSlice(ctx context.Context, req *dataset.DeleteSliceRequest) (*dataset.DeleteSliceResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tsliceIDs := make([]int64, 0, len(req.GetSliceIds()))\n\tfor i := range req.GetSliceIds() {\n\t\tsliceID, err := strconv.ParseInt(req.GetSliceIds()[i], 10, 64)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"parse int failed, err: %v\", err)\n\t\t\treturn dataset.NewDeleteSliceResponse(), err\n\t\t}\n\t\tsliceIDs = append(sliceIDs, sliceID)\n\t}\n\n\terr := k.checkPermission(ctx, uid, nil, nil, nil, sliceIDs)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"check permission failed, err: %v\", err)\n\t\treturn dataset.NewDeleteSliceResponse(), err\n\t}\n\tfor i := range sliceIDs {\n\t\tsliceID := sliceIDs[i]\n\t\terr = k.DomainSVC.DeleteSlice(ctx, &service.DeleteSliceRequest{\n\t\t\tSliceID: sliceID,\n\t\t})\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"delete slice failed, err: %v\", err)\n\t\t\treturn dataset.NewDeleteSliceResponse(), err\n\t\t}\n\t}\n\treturn &dataset.DeleteSliceResponse{}, nil\n}\n\nfunc (k *KnowledgeApplicationService) UpdateSlice(ctx context.Context, req *dataset.UpdateSliceRequest) (*dataset.UpdateSliceResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\tgetSliceResp, err := k.DomainSVC.GetSlice(ctx, &service.GetSliceRequest{\n\t\tSliceID: req.GetSliceID(),\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgeInvalidParamCode, errorx.KV(\"msg\", \"slice not found\"))\n\t}\n\n\tif getSliceResp.Slice != nil && getSliceResp.Slice.Info.CreatorID != *uid {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"permission denied\"))\n\t}\n\tdocID := getSliceResp.Slice.DocumentID\n\n\tlistResp, err := k.DomainSVC.ListDocument(ctx, &service.ListDocumentRequest{\n\t\tDocumentIDs: []int64{docID},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"list document failed, err: %v\", err)\n\t\treturn dataset.NewUpdateSliceResponse(), err\n\t}\n\tif len(listResp.Documents) != 1 {\n\t\treturn dataset.NewUpdateSliceResponse(), errors.New(\"document not found\")\n\t}\n\tsliceEntity := &model.Slice{\n\t\tInfo: model.Info{\n\t\t\tID:        req.GetSliceID(),\n\t\t\tCreatorID: *uid,\n\t\t},\n\t\tDocumentID: docID,\n\t}\n\tif listResp.Documents[0].Type == model.DocumentTypeTable {\n\t\terr = packTableSliceColumnData(ctx, sliceEntity, req.GetRawText(), listResp.Documents[0])\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"pack table slice column data failed, err: %v\", err)\n\t\t\treturn dataset.NewUpdateSliceResponse(), errorx.New(errno.ErrKnowledgeCheckTableSliceValidCode, errorx.KV(\"msg\", err.Error()))\n\t\t}\n\t} else {\n\t\tsliceEntity.RawContent = []*model.SliceContent{\n\t\t\t{\n\t\t\t\tType: model.SliceContentTypeText,\n\t\t\t\tText: req.RawText,\n\t\t\t},\n\t\t}\n\t}\n\terr = k.DomainSVC.UpdateSlice(ctx, &service.UpdateSliceRequest{\n\t\tSliceID:    req.GetSliceID(),\n\t\tDocumentID: docID,\n\t\tCreatorID:  ptr.From(uid),\n\t\tRawContent: sliceEntity.RawContent,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"update slice failed, err: %v\", err)\n\t\treturn dataset.NewUpdateSliceResponse(), err\n\t}\n\treturn &dataset.UpdateSliceResponse{}, nil\n}\n\nfunc packTableSliceColumnData(ctx context.Context, slice *model.Slice, text string, doc *entity.Document) error {\n\tcolumnMap := map[int64]string{}\n\tcolumnTypeMap := map[int64]cd.TableColumnType{}\n\tfor i := range doc.TableInfo.Columns {\n\t\tcolumnMap[doc.TableInfo.Columns[i].ID] = doc.TableInfo.Columns[i].Name\n\t\tcolumnTypeMap[doc.TableInfo.Columns[i].ID] = doc.TableInfo.Columns[i].Type\n\t}\n\tdataMap := map[string]string{}\n\terr := sonic.Unmarshal([]byte(text), &dataMap)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"unmarshal raw text failed, err: %v\", err)\n\t\treturn err\n\t}\n\tslice.RawContent = []*model.SliceContent{\n\t\t{\n\t\t\tType: model.SliceContentTypeTable,\n\t\t\tTable: &model.SliceTable{\n\t\t\t\tColumns: make([]*cd.ColumnData, 0, len(dataMap)),\n\t\t\t},\n\t\t},\n\t}\n\tfor columnID, val := range dataMap {\n\t\tcid, err := strconv.ParseInt(columnID, 10, 64)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"parse column id failed, err: %v\", err)\n\t\t\treturn err\n\t\t}\n\t\tvalue := val\n\t\tcolumn, err := assertValAs(columnTypeMap[cid], value)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"assert val as failed, err: %v\", err)\n\t\t\treturn err\n\t\t}\n\t\tcolumn.ColumnID = cid\n\t\tcolumn.ColumnName = columnMap[cid]\n\t\tslice.RawContent[0].Table.Columns = append(slice.RawContent[0].Table.Columns, column)\n\t}\n\treturn nil\n}\n\nfunc (k *KnowledgeApplicationService) ListSlice(ctx context.Context, req *dataset.ListSliceRequest) (*dataset.ListSliceResponse, error) {\n\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tif req.DatasetID != nil {\n\t\terr := k.checkPermission(ctx, uid, nil, nil, ptr.Of(*req.DatasetID), nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tlistResp, err := k.DomainSVC.ListSlice(ctx, &service.ListSliceRequest{\n\t\tKnowledgeID: req.DatasetID,\n\t\tDocumentID:  req.DocumentID,\n\t\tKeyword:     req.Keyword,\n\t\tSequence:    req.GetSequence(),\n\t\tLimit:       req.GetPageSize(),\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"list slice failed, err: %v\", err)\n\t\treturn dataset.NewListSliceResponse(), err\n\t}\n\tresp := dataset.NewListSliceResponse()\n\tresp.Total = int64(listResp.Total)\n\tresp.Hasmore = listResp.HasMore\n\tresp.Slices = make([]*dataset.SliceInfo, 0)\n\tfor i := range listResp.Slices {\n\t\tresp.Slices = append(resp.Slices, convertSlice2Model(listResp.Slices[i]))\n\t}\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) GetTableSchema(ctx context.Context, req *dataset.GetTableSchemaRequest) (*dataset.GetTableSchemaResponse, error) {\n\tresp := dataset.NewGetTableSchemaResponse()\n\tif req.TableSheet == nil {\n\t\treq.TableSheet = &dataset.TableSheet{\n\t\t\tSheetID:       0,\n\t\t\tHeaderLineIdx: 0,\n\t\t\tStartLineIdx:  1,\n\t\t}\n\t}\n\tif req.TableDataType == nil {\n\t\treq.TableDataType = dataset.TableDataTypePtr(dataset.TableDataType(service.AllData))\n\t}\n\n\tvar (\n\t\tdomainResp *service.TableSchemaResponse\n\t\terr        error\n\t)\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tif req.GetDocumentID() > 0 {\n\t\terr = k.checkPermission(ctx, uid, nil, []int64{req.GetDocumentID()}, nil, nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif req.SourceFile == nil { // alter table\n\t\tdomainResp, err = k.DomainSVC.GetAlterTableSchema(ctx, &service.AlterTableSchemaRequest{\n\t\t\tDocumentID:       req.GetDocumentID(),\n\t\t\tTableDataType:    convertTableDataType2Entity(req.GetTableDataType()),\n\t\t\tOriginTableMeta:  convertTableColumns2Entity(req.GetOriginTableMeta()),\n\t\t\tPreviewTableMeta: convertTableColumns2Entity(req.GetPreviewTableMeta()),\n\t\t})\n\t} else {\n\t\tvar srcInfo *service.TableSourceInfo\n\t\tsrcInfo, err = convertSourceInfo(req.SourceFile)\n\t\tif err != nil {\n\t\t\treturn resp, err\n\t\t}\n\n\t\tdomainResp, err = k.DomainSVC.GetImportDataTableSchema(ctx, &service.ImportDataTableSchemaRequest{\n\t\t\tSourceInfo:       *srcInfo,\n\t\t\tTableSheet:       convertTableSheet2Entity(req.TableSheet),\n\t\t\tTableDataType:    convertTableDataType2Entity(req.GetTableDataType()),\n\t\t\tDocumentID:       req.DocumentID,\n\t\t\tOriginTableMeta:  convertTableColumns2Entity(req.GetOriginTableMeta()),\n\t\t\tPreviewTableMeta: convertTableColumns2Entity(req.GetPreviewTableMeta()),\n\t\t})\n\t}\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"get table schema failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\n\tprevData := make([]map[string]string, 0, len(domainResp.PreviewData))\n\tfor _, data := range domainResp.PreviewData {\n\t\tif len(data) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif len(data) != len(domainResp.TableMeta) {\n\t\t\tdata = append(data, make([]*cd.ColumnData, len(domainResp.TableMeta)-len(data))...)\n\t\t}\n\t\tprev, err := convertTableColumnDataSlice(domainResp.TableMeta, data)\n\t\tif err != nil {\n\t\t\treturn resp, err\n\t\t}\n\t\tprevData = append(prevData, prev)\n\t}\n\n\tresp.PreviewData = prevData\n\n\tresp.TableMeta = convertTableColumns2Model(domainResp.TableMeta)\n\n\tresp.SheetList = make([]*dataset.DocTableSheet, 0)\n\tfor i := range domainResp.AllTableSheets {\n\t\tif domainResp.AllTableSheets[i] == nil {\n\t\t\tcontinue\n\t\t}\n\t\tresp.SheetList = append(resp.SheetList, convertDocTableSheet2Model(*domainResp.AllTableSheets[i]))\n\t}\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) ValidateTableSchema(ctx context.Context, req *dataset.ValidateTableSchemaRequest) (*dataset.ValidateTableSchemaResponse, error) {\n\tresp := dataset.NewValidateTableSchemaResponse()\n\tsrcInfo, err := convertSourceInfo(req.SourceInfo)\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tif srcInfo == nil {\n\t\treturn nil, fmt.Errorf(\"source info not provided\")\n\t}\n\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\tif req.GetDocumentID() > 0 {\n\t\terr = k.checkPermission(ctx, uid, nil, []int64{req.GetDocumentID()}, nil, nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tvar tableSheet *entity.TableSheet\n\tif req.TableSheet != nil {\n\t\ttableSheet = &entity.TableSheet{\n\t\t\tSheetId:       req.TableSheet.SheetID,\n\t\t\tHeaderLineIdx: req.TableSheet.HeaderLineIdx,\n\t\t\tStartLineIdx:  req.TableSheet.StartLineIdx,\n\t\t}\n\t}\n\tdomainResp, err := k.DomainSVC.ValidateTableSchema(ctx, &service.ValidateTableSchemaRequest{\n\t\tDocumentID: req.GetDocumentID(),\n\t\tSourceInfo: *srcInfo,\n\t\tTableSheet: tableSheet,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"validate table schema failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\tresp.ColumnValidResult = domainResp.ColumnValidResult\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) GetDocumentTableInfo(ctx context.Context, req *document.GetDocumentTableInfoRequest) (*document.GetDocumentTableInfoResponse, error) {\n\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\tif req.GetDocumentID() > 0 {\n\t\terr := k.checkPermission(ctx, uid, nil, []int64{req.GetDocumentID()}, nil, nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tdomainResp, err := k.DomainSVC.GetDocumentTableInfo(ctx, &service.GetDocumentTableInfoRequest{\n\t\tDocumentID: req.DocumentID,\n\t\tSourceInfo: &service.TableSourceInfo{\n\t\t\tUri: req.TosURI,\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"get document table info failed, err: %v\", err)\n\t\treturn document.NewGetDocumentTableInfoResponse(), err\n\t}\n\tresp := document.NewGetDocumentTableInfoResponse()\n\tresp.PreviewData = domainResp.PreviewData\n\tresp.SheetList = make([]*modelCommon.DocTableSheet, 0)\n\tfor i := range domainResp.TableSheet {\n\t\tif domainResp.TableSheet[i] == nil {\n\t\t\tcontinue\n\t\t}\n\t\tresp.SheetList = append(resp.SheetList, convertDocTableSheet(domainResp.TableSheet[i]))\n\t}\n\tresp.TableMeta = map[string][]*modelCommon.DocTableColumn{}\n\tfor index, rows := range domainResp.TableMeta {\n\t\tresp.TableMeta[index] = convertTableMeta(rows)\n\t}\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) CreateDocumentReview(ctx context.Context, req *dataset.CreateDocumentReviewRequest) (*dataset.CreateDocumentReviewResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\tif req.GetDatasetID() > 0 {\n\t\terr := k.checkPermission(ctx, uid, nil, nil, ptr.Of(req.GetDatasetID()), nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tcreateResp, err := k.DomainSVC.CreateDocumentReview(ctx, convertCreateDocReviewReq(req))\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"create document review failed, err: %v\", err)\n\t\treturn dataset.NewCreateDocumentReviewResponse(), err\n\t}\n\tresp := dataset.NewCreateDocumentReviewResponse()\n\tresp.DatasetID = req.GetDatasetID()\n\tresp.Reviews = slices.Transform(createResp.Reviews, func(item *entity.Review) *dataset.Review {\n\t\treturn &dataset.Review{\n\t\t\tReviewID:      item.ReviewID,\n\t\t\tDocumentName:  item.DocumentName,\n\t\t\tDocumentType:  item.DocumentType,\n\t\t\tTosURL:        item.Url,\n\t\t\tStatus:        convertReviewStatus2Model(item.Status),\n\t\t\tDocTreeTosURL: item.DocTreeTosUrl,\n\t\t\tPreviewTosURL: item.PreviewTosUrl,\n\t\t}\n\t})\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) MGetDocumentReview(ctx context.Context, req *dataset.MGetDocumentReviewRequest) (*dataset.MGetDocumentReviewResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\treviewIDs, err := slices.TransformWithErrorCheck(req.GetReviewIds(), func(s string) (int64, error) {\n\t\tid, err := strconv.ParseInt(s, 10, 64)\n\t\treturn id, err\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"parse int failed, err: %v\", err)\n\t\treturn dataset.NewMGetDocumentReviewResponse(), err\n\t}\n\n\terr = k.checkPermission(ctx, uid, nil, nil, ptr.Of(req.GetDatasetID()), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmGetResp, err := k.DomainSVC.MGetDocumentReview(ctx, &service.MGetDocumentReviewRequest{\n\t\tKnowledgeID: req.GetDatasetID(),\n\t\tReviewIDs:   reviewIDs,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"mget document review failed, err: %v\", err)\n\t\treturn dataset.NewMGetDocumentReviewResponse(), err\n\t}\n\tresp := dataset.NewMGetDocumentReviewResponse()\n\tresp.Reviews = slices.Transform(mGetResp.Reviews, func(item *entity.Review) *dataset.Review {\n\t\treturn &dataset.Review{\n\t\t\tReviewID:      item.ReviewID,\n\t\t\tDocumentName:  item.DocumentName,\n\t\t\tDocumentType:  item.DocumentType,\n\t\t\tTosURL:        item.Url,\n\t\t\tStatus:        convertReviewStatus2Model(item.Status),\n\t\t\tDocTreeTosURL: item.DocTreeTosUrl,\n\t\t\tPreviewTosURL: item.PreviewTosUrl,\n\t\t}\n\t})\n\tresp.DatasetID = req.GetDatasetID()\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) SaveDocumentReview(ctx context.Context, req *dataset.SaveDocumentReviewRequest) (*dataset.SaveDocumentReviewResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\terr := k.checkPermission(ctx, uid, nil, nil, ptr.Of(req.GetDatasetID()), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = k.DomainSVC.SaveDocumentReview(ctx, &service.SaveDocumentReviewRequest{\n\t\tKnowledgeID: req.GetDatasetID(),\n\t\tDocTreeJson: req.GetDocTreeJSON(),\n\t\tReviewID:    req.GetReviewID(),\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"save document review failed, err: %v\", err)\n\t\treturn dataset.NewSaveDocumentReviewResponse(), err\n\t}\n\treturn &dataset.SaveDocumentReviewResponse{}, nil\n}\n\nfunc (k *KnowledgeApplicationService) DeleteAppKnowledge(ctx context.Context, req *DeleteAppKnowledgeRequest) error {\n\tlistResp, err := k.DomainSVC.ListKnowledge(ctx, &model.ListKnowledgeRequest{\n\t\tAppID: &req.AppID,\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\tif len(listResp.KnowledgeList) == 0 {\n\t\treturn nil\n\t}\n\tfor i := range listResp.KnowledgeList {\n\t\terr := k.eventBus.PublishResources(ctx, &resourceEntity.ResourceDomainEvent{\n\t\t\tOpType: resourceEntity.Deleted,\n\t\t\tResource: &resourceEntity.ResourceDocument{\n\t\t\t\tResID:   listResp.KnowledgeList[i].ID,\n\t\t\t\tResType: resource.ResType_Knowledge,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"publish resources failed, err: %v\", err)\n\t\t\treturn err\n\t\t}\n\t\terr = k.DomainSVC.DeleteKnowledge(ctx, &model.DeleteKnowledgeRequest{\n\t\t\tKnowledgeID: listResp.KnowledgeList[i].ID,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (k *KnowledgeApplicationService) CopyKnowledge(ctx context.Context, req *model.CopyKnowledgeRequest) (*model.CopyKnowledgeResponse, error) {\n\tresp, err := k.DomainSVC.CopyKnowledge(ctx, req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgetResp, err := k.DomainSVC.GetKnowledgeByID(ctx, &model.GetKnowledgeByIDRequest{\n\t\tKnowledgeID: resp.TargetKnowledgeID,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar appIDPtr *int64\n\tif req.TargetAppID != 0 {\n\t\tappIDPtr = &req.TargetAppID\n\t}\n\tif resp.CopyStatus == model.CopyStatus_Successful {\n\t\terr = k.eventBus.PublishResources(ctx, &resourceEntity.ResourceDomainEvent{\n\t\t\tOpType: resourceEntity.Created,\n\t\t\tResource: &resourceEntity.ResourceDocument{\n\t\t\t\tResID:         resp.TargetKnowledgeID,\n\t\t\t\tResType:       resource.ResType_Knowledge,\n\t\t\t\tResSubType:    ptr.Of(int32(getResp.Knowledge.Type)),\n\t\t\t\tName:          ptr.Of(getResp.Knowledge.Name),\n\t\t\t\tOwnerID:       ptr.Of(getResp.Knowledge.CreatorID),\n\t\t\t\tSpaceID:       ptr.Of(getResp.Knowledge.SpaceID),\n\t\t\t\tAPPID:         appIDPtr,\n\t\t\t\tPublishStatus: ptr.Of(resource.PublishStatus_Published),\n\t\t\t\tCreateTimeMS:  ptr.Of(getResp.Knowledge.CreatedAtMs),\n\t\t\t\tUpdateTimeMS:  ptr.Of(getResp.Knowledge.CreatedAtMs),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn resp, nil\n}\nfunc (k *KnowledgeApplicationService) UpdatePhotoCaption(ctx context.Context, req *dataset.UpdatePhotoCaptionRequest) (*dataset.UpdatePhotoCaptionResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\terr := k.checkPermission(ctx, uid, nil, []int64{req.DocumentID}, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp := dataset.NewUpdatePhotoCaptionResponse()\n\tlistResp, err := k.DomainSVC.ListSlice(ctx, &service.ListSliceRequest{DocumentID: ptr.Of(req.DocumentID)})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"list slice failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\tif len(listResp.Slices) == 0 {\n\t\treturn resp, nil\n\t}\n\terr = k.DomainSVC.UpdateSlice(ctx, &service.UpdateSliceRequest{\n\t\tSliceID:    listResp.Slices[0].ID,\n\t\tDocumentID: req.DocumentID,\n\t\tCreatorID:  ptr.From(uid),\n\t\tRawContent: []*model.SliceContent{{\n\t\t\tType: model.SliceContentTypeText,\n\t\t\tText: ptr.Of(req.Caption),\n\t\t}},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"update slice failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) MoveKnowledgeToLibrary(ctx context.Context, req *model.MoveKnowledgeToLibraryRequest) error {\n\terr := k.DomainSVC.MoveKnowledgeToLibrary(ctx, req)\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = k.eventBus.PublishResources(ctx, &resourceEntity.ResourceDomainEvent{\n\t\tOpType: resourceEntity.Updated,\n\t\tResource: &resourceEntity.ResourceDocument{\n\t\t\tResID:        req.KnowledgeID,\n\t\t\tResType:      resource.ResType_Knowledge,\n\t\t\tAPPID:        ptr.Of(int64(0)),\n\t\t\tUpdateTimeMS: ptr.Of(time.Now().UnixMilli()),\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish resources failed, err: %v\", err)\n\t\treturn err\n\t}\n\treturn nil\n}\nfunc (k *KnowledgeApplicationService) ListPhoto(ctx context.Context, req *dataset.ListPhotoRequest) (*dataset.ListPhotoResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\terr := k.checkPermission(ctx, uid, nil, nil, ptr.Of(req.GetDatasetID()), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp := dataset.NewListPhotoResponse()\n\tvar offset int\n\tif req.GetPage() >= 1 {\n\t\toffset = int(req.GetSize() * (req.GetPage() - 1))\n\t}\n\tlistPhotoSliceReq := service.ListPhotoSliceRequest{\n\t\tKnowledgeID: req.GetDatasetID(),\n\t\tLimit:       ptr.Of(int(req.GetSize())),\n\t\tOffset:      &offset,\n\t}\n\tif req.Filter != nil {\n\t\tlistPhotoSliceReq.HasCaption = req.Filter.HasCaption\n\t}\n\tlistResp, err := k.DomainSVC.ListPhotoSlice(ctx, &listPhotoSliceReq)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"list document failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\tif len(listResp.Slices) == 0 {\n\t\tresp.Total = int32(listResp.Total)\n\t\treturn resp, nil\n\t}\n\tdocIDs := slices.Transform(listResp.Slices, func(item *entity.Slice) int64 {\n\t\treturn item.DocumentID\n\t})\n\tlistDocResp, err := k.DomainSVC.ListDocument(ctx, &service.ListDocumentRequest{DocumentIDs: docIDs, SelectAll: true})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"get documents by slice ids failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\tphotos := k.packPhotoInfo(listResp.Slices, listDocResp.Documents)\n\tsort.SliceStable(photos, func(i, j int) bool {\n\t\treturn photos[i].UpdateTime > photos[j].UpdateTime\n\t})\n\tresp.PhotoInfos = photos\n\tresp.Total = int32(listResp.Total)\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) packPhotoInfo(slices []*entity.Slice, documents []*entity.Document) []*dataset.PhotoInfo {\n\tcaptions := map[int64]string{}\n\tfor i := range slices {\n\t\tcaptions[slices[i].DocumentID] = slices[i].GetSliceContent()\n\t}\n\tphotoInfo := make([]*dataset.PhotoInfo, 0, len(documents))\n\tfor _, document := range documents {\n\t\tphotoStatus := convertDocumentStatus2Model(document.Status)\n\t\tphotoInfo = append(photoInfo, &dataset.PhotoInfo{\n\t\t\tName:       document.Name,\n\t\t\tDocumentID: document.ID,\n\t\t\tURL:        document.URL,\n\t\t\tCaption:    captions[document.ID],\n\t\t\tCreateTime: int32(document.CreatedAtMs / 1000),\n\t\t\tUpdateTime: int32(document.UpdatedAtMs / 1000),\n\t\t\tCreatorID:  document.CreatorID,\n\t\t\tType:       string(document.FileExtension),\n\t\t\tSize:       int32(document.Size),\n\t\t\tStatus:     photoStatus,\n\t\t\tSourceType: dataset.DocumentSource_Document,\n\t\t})\n\t}\n\treturn photoInfo\n}\n\nfunc (k *KnowledgeApplicationService) PhotoDetail(ctx context.Context, req *dataset.PhotoDetailRequest) (*dataset.PhotoDetailResponse, error) {\n\tresp := dataset.NewPhotoDetailResponse()\n\tif len(req.GetDocumentIds()) == 0 {\n\t\tresp.Code = 400\n\t\tresp.Msg = \"document ids is empty\"\n\t\treturn resp, nil\n\t}\n\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\terr := k.checkPermission(ctx, uid, nil, nil, ptr.Of(req.GetDatasetID()), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdocIDs, err := slices.TransformWithErrorCheck(req.GetDocumentIds(), func(s string) (int64, error) {\n\t\tid, err := strconv.ParseInt(s, 10, 64)\n\t\treturn id, err\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"parse int failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\tlistResp, err := k.DomainSVC.ListPhotoSlice(ctx, &service.ListPhotoSliceRequest{DocumentIDs: docIDs})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"list photo slice failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\tlistDocResp, err := k.DomainSVC.ListDocument(ctx, &service.ListDocumentRequest{DocumentIDs: docIDs, SelectAll: true, KnowledgeID: req.GetDatasetID()})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"get documents by slice ids failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\n\tphotos := k.packPhotoInfo(listResp.Slices, listDocResp.Documents)\n\tsort.SliceStable(photos, func(i, j int) bool {\n\t\treturn photos[i].UpdateTime > photos[j].UpdateTime\n\t})\n\tresp.PhotoInfos = slices.ToMap(photos, func(item *dataset.PhotoInfo) (string, *dataset.PhotoInfo) {\n\t\treturn strconv.FormatInt(item.DocumentID, 10), item\n\t})\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) ExtractPhotoCaption(ctx context.Context, req *dataset.ExtractPhotoCaptionRequest) (*dataset.ExtractPhotoCaptionResponse, error) {\n\tresp := dataset.NewExtractPhotoCaptionResponse()\n\tif req.GetDocumentID() == 0 {\n\t\tresp.Code = 400\n\t\tresp.Msg = \"document id is empty\"\n\t\treturn resp, nil\n\t}\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\terr := k.checkPermission(ctx, uid, nil, []int64{req.GetDocumentID()}, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\textractResp, err := k.DomainSVC.ExtractPhotoCaption(ctx, &service.ExtractPhotoCaptionRequest{DocumentID: req.GetDocumentID()})\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tresp.Caption = extractResp.Caption\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) ListKnowledgeAPI(ctx context.Context, req *dataset.ListDatasetOpenApiRequest) (*dataset.ListDatasetOpenApiResponse, error) {\n\tuid := ctxutil.MustGetUIDFromApiAuthCtx(ctx)\n\tif uid == 0 {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \" apiKeyInfo is nil\"))\n\t}\n\n\tvar page, pageSize int\n\tif req.PageNum != nil && *req.PageNum > 0 {\n\t\tpage = int(*req.PageNum)\n\t}\n\tif req.PageSize != nil && *req.PageSize > 0 {\n\t\tpageSize = int(*req.PageSize)\n\t}\n\n\trequest, err := k.buildListKnowledgeRequest(ctx, req.GetSpaceID(), req.Name, req.FormatType, page, pageSize, req.GetProjectID())\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"build list knowledge request failed, err: %v\", err)\n\t\treturn dataset.NewListDatasetOpenApiResponse(), err\n\t}\n\n\terr = k.checkPermission(ctx, &uid, ptr.Of(req.SpaceID), nil, nil, nil)\n\tif err != nil {\n\t\treturn dataset.NewListDatasetOpenApiResponse(), err\n\t}\n\n\tdomainResp, err := k.DomainSVC.ListKnowledge(ctx, request)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"mget knowledge failed, err: %v\", err)\n\t\treturn dataset.NewListDatasetOpenApiResponse(), err\n\t}\n\n\tknowledgeMap, err := batchConvertKnowledgeEntity2Model(ctx, domainResp.KnowledgeList)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"batch convert knowledge entity failed, err: %v\", err)\n\t\treturn dataset.NewListDatasetOpenApiResponse(), err\n\t}\n\n\tdatasetList := make([]*dataset.Dataset, 0)\n\tfor i := range domainResp.KnowledgeList {\n\t\tdatasetList = append(datasetList, knowledgeMap[domainResp.KnowledgeList[i].ID])\n\t}\n\n\tcode := int64(0)\n\tmsg := \"success\"\n\treturn &dataset.ListDatasetOpenApiResponse{\n\t\tData: &dataset.ListDatasetOpenApiData{\n\t\t\tDatasetList: datasetList,\n\t\t\tTotalCount:  int32(domainResp.Total),\n\t\t},\n\t\tCode: &code,\n\t\tMsg:  &msg,\n\t}, nil\n}\n\nfunc (k *KnowledgeApplicationService) UpdateKnowledgeAPI(ctx context.Context, req *dataset.UpdateDatasetOpenApiRequest) (*dataset.UpdateDatasetOpenApiResponse, error) {\n\tuid := ctxutil.MustGetUIDFromApiAuthCtx(ctx)\n\tif uid == 0 {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \" apiKeyInfo is nil\"))\n\t}\n\n\terr := k.checkPermission(ctx, &uid, nil, nil, ptr.Of(req.GetDatasetID()), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnow := time.Now().UnixMilli()\n\terr = k.updateKnowledgeInternal(ctx, req.GetDatasetID(), &req.Name, &req.Description, nil, nil)\n\tif err != nil {\n\t\treturn dataset.NewUpdateDatasetOpenApiResponse(), err\n\t}\n\n\terr = k.publishUpdateKnowledgeEvent(ctx, req.GetDatasetID(), &req.Name, now)\n\tif err != nil {\n\t\treturn dataset.NewUpdateDatasetOpenApiResponse(), err\n\t}\n\n\tcode := int64(0)\n\tmsg := \"success\"\n\treturn &dataset.UpdateDatasetOpenApiResponse{\n\t\tCode: &code,\n\t\tMsg:  &msg,\n\t}, nil\n}\n\nfunc (k *KnowledgeApplicationService) DeleteKnowledgeAPI(ctx context.Context, req *dataset.DeleteDatasetOpenApiRequest) (*dataset.DeleteDatasetOpenApiResponse, error) {\n\tuid := ctxutil.MustGetUIDFromApiAuthCtx(ctx)\n\tif uid == 0 {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \" apiKeyInfo is nil\"))\n\t}\n\n\terr := k.checkPermission(ctx, &uid, nil, nil, ptr.Of(req.GetDatasetID()), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = k.deleteKnowledgeInternal(ctx, req.GetDatasetID())\n\tif err != nil {\n\t\treturn dataset.NewDeleteDatasetOpenApiResponse(), err\n\t}\n\n\terr = k.publishDeleteKnowledgeEvent(ctx, req.GetDatasetID())\n\tif err != nil {\n\t\treturn dataset.NewDeleteDatasetOpenApiResponse(), err\n\t}\n\n\tcode := int64(0)\n\tmsg := \"success\"\n\treturn &dataset.DeleteDatasetOpenApiResponse{\n\t\tCode: &code,\n\t\tMsg:  &msg,\n\t}, nil\n}\n\nfunc (k *KnowledgeApplicationService) GetDocumentProgressAPI(ctx context.Context, req *dataset.GetDocumentProgressOpenApiRequest) (*dataset.GetDocumentProgressOpenApiResponse, error) {\n\tuid := ctxutil.MustGetUIDFromApiAuthCtx(ctx)\n\tif uid == 0 {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \" apiKeyInfo is nil\"))\n\t}\n\n\terr := k.checkPermission(ctx, &uid, nil, req.GetDocumentIds(), nil, nil)\n\tif err != nil {\n\t\treturn dataset.NewGetDocumentProgressOpenApiResponse(), err\n\t}\n\n\tdomainResp, err := k.DomainSVC.MGetDocumentProgress(ctx, &service.MGetDocumentProgressRequest{\n\t\tDocumentIDs: req.GetDocumentIds(),\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"mget document progress failed, err: %v\", err)\n\t\treturn dataset.NewGetDocumentProgressOpenApiResponse(), err\n\t}\n\n\tprogressList := make([]*dataset.DocumentProgress, 0)\n\tfor i := range domainResp.ProgressList {\n\t\tprogressList = append(progressList, &dataset.DocumentProgress{\n\t\t\tDocumentID:     domainResp.ProgressList[i].ID,\n\t\t\tProgress:       int32(domainResp.ProgressList[i].Progress),\n\t\t\tStatus:         convertDocumentStatus2Model(domainResp.ProgressList[i].Status),\n\t\t\tStatusDescript: &domainResp.ProgressList[i].StatusMsg,\n\t\t\tDocumentName:   domainResp.ProgressList[i].Name,\n\t\t\tRemainingTime:  &domainResp.ProgressList[i].RemainingSec,\n\t\t\tSize:           &domainResp.ProgressList[i].Size,\n\t\t\tType:           &domainResp.ProgressList[i].FileExtension,\n\t\t\tURL:            ptr.Of(domainResp.ProgressList[i].URL),\n\t\t})\n\t}\n\n\treturn &dataset.GetDocumentProgressOpenApiResponse{\n\t\tData: &dataset.GetDocumentProgressOpenApiData{\n\t\t\tData: progressList,\n\t\t},\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t}, nil\n}\n\nfunc (k *KnowledgeApplicationService) ListPhotoAPI(ctx context.Context, req *dataset.ListPhotoOpenApiRequest) (*dataset.ListPhotoOpenApiResponse, error) {\n\tuid := ctxutil.MustGetUIDFromApiAuthCtx(ctx)\n\tif uid == 0 {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \" apiKeyInfo is nil\"))\n\t}\n\n\terr := k.checkPermission(ctx, &uid, nil, nil, ptr.Of(req.GetDatasetID()), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp := dataset.NewListPhotoOpenApiResponse()\n\tvar offset int\n\tif req.GetPageNum() >= 1 {\n\t\toffset = int(req.GetPageSize() * (req.GetPageNum() - 1))\n\t}\n\tlistPhotoSliceReq := service.ListPhotoSliceRequest{\n\t\tKnowledgeID: req.GetDatasetID(),\n\t\tLimit:       ptr.Of(int(req.GetPageSize())),\n\t\tOffset:      &offset,\n\t}\n\tif req.HasCaption != nil {\n\t\tlistPhotoSliceReq.HasCaption = req.HasCaption\n\t}\n\tlistResp, err := k.DomainSVC.ListPhotoSlice(ctx, &listPhotoSliceReq)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"list document failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\tif len(listResp.Slices) == 0 {\n\t\tresp.Data = &dataset.ListPhotoOpenApiData{\n\t\t\tPhotoInfos: []*dataset.PhotoInfo{},\n\t\t\tTotalCount: int32(listResp.Total),\n\t\t}\n\t\tcode := int64(0)\n\t\tmsg := \"success\"\n\t\tresp.Code = &code\n\t\tresp.Msg = &msg\n\t\treturn resp, nil\n\t}\n\tdocIDs := slices.Transform(listResp.Slices, func(item *entity.Slice) int64 {\n\t\treturn item.DocumentID\n\t})\n\tlistDocResp, err := k.DomainSVC.ListDocument(ctx, &service.ListDocumentRequest{DocumentIDs: docIDs, SelectAll: true})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"get documents by slice ids failed, err: %v\", err)\n\t\treturn resp, err\n\t}\n\tphotos := k.packPhotoInfo(listResp.Slices, listDocResp.Documents)\n\tsort.SliceStable(photos, func(i, j int) bool {\n\t\treturn photos[i].UpdateTime > photos[j].UpdateTime\n\t})\n\n\tcode := int64(0)\n\tmsg := \"success\"\n\tresp.Data = &dataset.ListPhotoOpenApiData{\n\t\tPhotoInfos: photos,\n\t\tTotalCount: int32(listResp.Total),\n\t}\n\tresp.Code = &code\n\tresp.Msg = &msg\n\treturn resp, nil\n}\n\nfunc (k *KnowledgeApplicationService) CreateKnowledgeAPI(ctx context.Context, req *dataset.CreateDatasetOpenApiRequest) (*dataset.CreateDatasetOpenApiResponse, error) {\n\tdocumentType := convertDocumentTypeDataset2Entity(req.GetFormatType())\n\tif documentType == model.DocumentTypeUnknown {\n\t\treturn dataset.NewCreateDatasetOpenApiResponse(), errors.New(\"unknown document type\")\n\t}\n\n\tuid := ctxutil.MustGetUIDFromApiAuthCtx(ctx)\n\tif uid == 0 {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \" apiKeyInfo is nil\"))\n\t}\n\n\terr := k.checkPermission(ctx, &uid, ptr.Of(req.GetSpaceID()), nil, nil, nil)\n\tif err != nil {\n\t\treturn dataset.NewCreateDatasetOpenApiResponse(), err\n\t}\n\n\tdomainResp, err := k.createKnowledgeInternal(ctx, req.GetName(), req.GetDescription(), req.GetSpaceID(), uid, req.GetProjectID(), req.GetFormatType(), \"\")\n\tif err != nil {\n\t\treturn dataset.NewCreateDatasetOpenApiResponse(), err\n\t}\n\n\terr = k.publishKnowledgeEvent(ctx, domainResp.KnowledgeID, req.GetName(), req.GetFormatType(), req.GetSpaceID(), req.GetProjectID(), uid, domainResp.CreatedAtMs)\n\tif err != nil {\n\t\treturn dataset.NewCreateDatasetOpenApiResponse(), err\n\t}\n\n\tcode := int64(0)\n\tmsg := \"success\"\n\treturn &dataset.CreateDatasetOpenApiResponse{\n\t\tData: &dataset.CreateDatasetOpenApiData{\n\t\t\tDatasetID: domainResp.KnowledgeID,\n\t\t},\n\t\tCode: &code,\n\t\tMsg:  &msg,\n\t}, nil\n}\n\ntype DeleteAppKnowledgeRequest struct {\n\tAppID int64 `json:\"app_id\"`\n}\n"
  },
  {
    "path": "backend/application/memory/convertor.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage memory\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/database/table\"\n\tmodel \"github.com/coze-dev/coze-studio/backend/crossdomain/database/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/memory/database/entity\"\n\tdatabase \"github.com/coze-dev/coze-studio/backend/domain/memory/database/service\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n)\n\nfunc convertAddDatabase(req *table.AddDatabaseRequest) *database.CreateDatabaseRequest {\n\tfieldItems := make([]*model.FieldItem, 0, len(req.FieldList))\n\tfor _, field := range req.FieldList {\n\t\tfieldItems = append(fieldItems, &model.FieldItem{\n\t\t\tName:         field.Name,\n\t\t\tDesc:         field.Desc,\n\t\t\tType:         field.Type,\n\t\t\tMustRequired: field.MustRequired,\n\t\t})\n\t}\n\n\treturn &database.CreateDatabaseRequest{\n\t\tDatabase: &entity.Database{\n\t\t\tIconURI:        req.IconURI,\n\t\t\tCreatorID:      req.CreatorID,\n\t\t\tSpaceID:        req.SpaceID,\n\t\t\tAppID:          req.ProjectID,\n\t\t\tTableName:      req.TableName,\n\t\t\tTableDesc:      req.TableDesc,\n\t\t\tFieldList:      fieldItems,\n\t\t\tRwMode:         req.RwMode,\n\t\t\tPromptDisabled: req.PromptDisabled,\n\t\t\tExtraInfo:      req.ExtraInfo,\n\t\t},\n\t}\n}\n\nfunc ConvertDatabaseRes(res *entity.Database) *table.SingleDatabaseResponse {\n\treturn &table.SingleDatabaseResponse{\n\t\tDatabaseInfo: convertDatabaseRes(res),\n\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t\tBaseResp: &base.BaseResp{\n\t\t\tStatusCode:    0,\n\t\t\tStatusMessage: \"success\",\n\t\t},\n\t}\n}\n\n// ConvertUpdateDatabase converts the API update request to domain request\nfunc ConvertUpdateDatabase(req *table.UpdateDatabaseRequest) *database.UpdateDatabaseRequest {\n\tfieldItems := make([]*model.FieldItem, 0, len(req.FieldList))\n\tfor _, field := range req.FieldList {\n\t\tfieldItems = append(fieldItems, &model.FieldItem{\n\t\t\tName:         field.Name,\n\t\t\tDesc:         field.Desc,\n\t\t\tAlterID:      field.AlterId,\n\t\t\tType:         field.Type,\n\t\t\tMustRequired: field.MustRequired,\n\t\t})\n\t}\n\n\treturn &database.UpdateDatabaseRequest{\n\t\tDatabase: &entity.Database{\n\t\t\tID:             req.ID,\n\t\t\tIconURI:        req.IconURI,\n\t\t\tTableName:      req.TableName,\n\t\t\tTableDesc:      req.TableDesc,\n\t\t\tFieldList:      fieldItems,\n\t\t\tRwMode:         req.RwMode,\n\t\t\tPromptDisabled: req.PromptDisabled,\n\t\t\tExtraInfo:      req.ExtraInfo,\n\t\t},\n\t}\n}\n\n// convertUpdateDatabaseResult converts the domain update response to API response\nfunc convertUpdateDatabaseResult(res *database.UpdateDatabaseResponse) *table.SingleDatabaseResponse {\n\treturn &table.SingleDatabaseResponse{\n\t\tDatabaseInfo: convertDatabaseRes(res.Database),\n\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t\tBaseResp: &base.BaseResp{\n\t\t\tStatusCode:    0,\n\t\t\tStatusMessage: \"success\",\n\t\t},\n\t}\n}\n\nfunc convertDatabaseRes(db *entity.Database) *table.DatabaseInfo {\n\tfieldItems := make([]*table.FieldItem, 0, len(db.FieldList))\n\tfor _, field := range db.FieldList {\n\t\tfieldItems = append(fieldItems, &table.FieldItem{\n\t\t\tName:          field.Name,\n\t\t\tDesc:          field.Desc,\n\t\t\tType:          field.Type,\n\t\t\tMustRequired:  field.MustRequired,\n\t\t\tAlterId:       field.AlterID,\n\t\t\tIsSystemField: field.IsSystemField,\n\t\t})\n\t}\n\n\treturn &table.DatabaseInfo{\n\t\tID:               db.ID,\n\t\tSpaceID:          db.SpaceID,\n\t\tProjectID:        db.AppID,\n\t\tIconURI:          db.IconURI,\n\t\tIconURL:          db.IconURL,\n\t\tTableName:        db.TableName,\n\t\tTableDesc:        db.TableDesc,\n\t\tStatus:           db.Status,\n\t\tCreatorID:        db.CreatorID,\n\t\tCreateTime:       db.CreatedAtMs,\n\t\tUpdateTime:       db.UpdatedAtMs,\n\t\tFieldList:        fieldItems,\n\t\tActualTableName:  db.ActualTableName,\n\t\tRwMode:           table.BotTableRWMode(db.RwMode),\n\t\tPromptDisabled:   db.PromptDisabled,\n\t\tIsVisible:        db.IsVisible,\n\t\tDraftID:          db.DraftID,\n\t\tExtraInfo:        db.ExtraInfo,\n\t\tIsAddedToBot:     db.IsAddedToAgent,\n\t\tDatamodelTableID: getDataModelTableID(db.ActualTableName),\n\t}\n}\n\n// convertListDatabase converts the API list request to domain request\nfunc convertListDatabase(req *table.ListDatabaseRequest) *database.ListDatabaseRequest {\n\tdRes := &database.ListDatabaseRequest{\n\t\tSpaceID:   req.SpaceID,\n\t\tTableName: req.TableName,\n\t\tTableType: req.TableType,\n\t\tAppID:     req.GetProjectID(),\n\t\tLimit:     int(req.GetLimit()),\n\t\tOffset:    int(req.GetOffset()),\n\t}\n\n\tif req.CreatorID != nil && *req.CreatorID != 0 {\n\t\tdRes.CreatorID = req.CreatorID\n\t}\n\n\tif len(req.OrderBy) > 0 {\n\t\tdRes.OrderBy = make([]*model.OrderBy, len(req.OrderBy))\n\t\tfor i, order := range req.OrderBy {\n\t\t\tdRes.OrderBy[i] = &model.OrderBy{\n\t\t\t\tField:     order.Field,\n\t\t\t\tDirection: order.Direction,\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dRes\n}\n\n// convertListDatabaseRes converts the domain list response to API response\nfunc convertListDatabaseRes(res *database.ListDatabaseResponse, bindDatabases []*entity.Database) *table.ListDatabaseResponse {\n\tdatabaseInfos := make([]*table.DatabaseInfo, 0, len(res.Databases))\n\tdbMap := slices.ToMap(bindDatabases, func(e *entity.Database) (int64, *entity.Database) {\n\t\treturn e.ID, e\n\t})\n\tfor _, db := range res.Databases {\n\t\tdatabaseInfo := convertDatabaseRes(db)\n\t\tif _, ok := dbMap[db.ID]; ok {\n\t\t\tdatabaseInfo.IsAddedToBot = ptr.Of(true)\n\t\t}\n\t\tdatabaseInfos = append(databaseInfos, databaseInfo)\n\t}\n\n\treturn &table.ListDatabaseResponse{\n\t\tDatabaseInfoList: databaseInfos,\n\t\tTotalCount:       res.TotalCount,\n\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t\tBaseResp: &base.BaseResp{\n\t\t\tStatusCode:    0,\n\t\t\tStatusMessage: \"success\",\n\t\t},\n\t}\n}\n\n// convertListDatabaseRecordsRes converts domain ListDatabaseRecordResponse to API ListDatabaseRecordsResponse\nfunc convertListDatabaseRecordsRes(res *database.ListDatabaseRecordResponse) *table.ListDatabaseRecordsResponse {\n\tapiRes := &table.ListDatabaseRecordsResponse{\n\t\tData:      res.Records,\n\t\tTotalNum:  int32(res.TotalCount),\n\t\tHasMore:   res.HasMore,\n\t\tFieldList: make([]*table.FieldItem, 0, len(res.FieldList)),\n\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t\tBaseResp: &base.BaseResp{\n\t\t\tStatusCode:    0,\n\t\t\tStatusMessage: \"success\",\n\t\t},\n\t}\n\n\tfor _, field := range res.FieldList {\n\t\tapiRes.FieldList = append(apiRes.FieldList, &table.FieldItem{\n\t\t\tName:         field.Name,\n\t\t\tDesc:         field.Desc,\n\t\t\tType:         field.Type,\n\t\t\tMustRequired: field.MustRequired,\n\t\t})\n\t}\n\n\treturn apiRes\n}\n\nfunc getDataModelTableID(actualTableName string) string {\n\ttableID := \"\"\n\ttableIDStr := strings.Split(actualTableName, \"_\")\n\tif len(tableIDStr) < 2 {\n\t\treturn tableID\n\t}\n\n\treturn tableIDStr[1]\n}\n\nfunc convertToBotTableList(databases []*entity.Database, agentID int64, relationMap map[int64]*model.AgentToDatabase) []*table.BotTable {\n\tif len(databases) == 0 {\n\t\treturn []*table.BotTable{}\n\t}\n\n\tbotTables := make([]*table.BotTable, 0, len(databases))\n\tfor _, db := range databases {\n\t\tfieldItems := make([]*table.FieldItem, 0, len(db.FieldList))\n\t\tfor _, field := range db.FieldList {\n\t\t\tfieldItems = append(fieldItems, &table.FieldItem{\n\t\t\t\tName:          field.Name,\n\t\t\t\tDesc:          field.Desc,\n\t\t\t\tType:          field.Type,\n\t\t\t\tMustRequired:  field.MustRequired,\n\t\t\t\tAlterId:       field.AlterID,\n\t\t\t\tIsSystemField: field.IsSystemField,\n\t\t\t})\n\t\t}\n\n\t\tbotTable := &table.BotTable{\n\t\t\tID:              db.ID,\n\t\t\tBotID:           agentID,\n\t\t\tTableID:         strconv.FormatInt(db.ID, 10),\n\t\t\tTableName:       db.TableName,\n\t\t\tTableDesc:       db.TableDesc,\n\t\t\tStatus:          table.BotTableStatus(db.Status),\n\t\t\tCreatorID:       db.CreatorID,\n\t\t\tCreateTime:      db.CreatedAtMs,\n\t\t\tUpdateTime:      db.UpdatedAtMs,\n\t\t\tFieldList:       fieldItems,\n\t\t\tActualTableName: db.ActualTableName,\n\t\t\tRwMode:          table.BotTableRWMode(db.RwMode),\n\t\t}\n\n\t\tif r, ok := relationMap[db.ID]; ok {\n\t\t\tbotTable.ExtraInfo = map[string]string{\n\t\t\t\t\"prompt_disabled\": fmt.Sprintf(\"%t\", r.PromptDisabled),\n\t\t\t}\n\t\t}\n\n\t\tbotTables = append(botTables, botTable)\n\t}\n\n\treturn botTables\n}\n"
  },
  {
    "path": "backend/application/memory/database.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage memory\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/database/table\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge\"\n\tdocument \"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge\"\n\tresCommon \"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/application/search\"\n\tmodel \"github.com/coze-dev/coze-studio/backend/crossdomain/database/model\"\n\tcrossuser \"github.com/coze-dev/coze-studio/backend/crossdomain/user\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/memory/database/entity\"\n\tdatabaseEntity \"github.com/coze-dev/coze-studio/backend/domain/memory/database/entity\"\n\tdatabase \"github.com/coze-dev/coze-studio/backend/domain/memory/database/service\"\n\tsearchEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\ntype DatabaseApplicationService struct {\n\tDomainSVC database.Database\n\teventbus  search.ResourceEventBus\n}\n\nvar DatabaseApplicationSVC = DatabaseApplicationService{}\n\nfunc (d *DatabaseApplicationService) GetModeConfig(ctx context.Context, req *knowledge.GetModeConfigRequest) (*knowledge.GetModeConfigResponse, error) {\n\treturn &knowledge.GetModeConfigResponse{\n\t\tCode:          0,\n\t\tMsg:           \"success\",\n\t\tBotID:         req.BotID,\n\t\tMode:          \"expert\",\n\t\tMaxTableNum:   3,\n\t\tMaxColumnNum:  20,\n\t\tMaxCapacityKb: 512000,\n\t\tMaxRowNum:     100000,\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) ListDatabase(ctx context.Context, req *table.ListDatabaseRequest) (*table.ListDatabaseResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tif req.SpaceID == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"space id is required\"))\n\t}\n\n\tspaces, err := crossuser.DefaultSVC().GetUserSpaceList(ctx, *uid)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(spaces) == 0 || spaces[0].ID != *req.SpaceID {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"space id is invalid\"))\n\t}\n\n\tres, err := d.DomainSVC.ListDatabase(ctx, convertListDatabase(req))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tbindDatabases := make([]*databaseEntity.Database, 0)\n\tif req.GetBotID() != 0 {\n\t\tresp, err := d.DomainSVC.MGetDatabaseByAgentID(ctx, &database.MGetDatabaseByAgentIDRequest{\n\t\t\tAgentID:       req.GetBotID(),\n\t\t\tTableType:     req.GetTableType(),\n\t\t\tNeedSysFields: false,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tbindDatabases = resp.Databases\n\t}\n\n\treturn convertListDatabaseRes(res, bindDatabases), nil\n}\n\nfunc (d *DatabaseApplicationService) GetDatabaseByID(ctx context.Context, req *table.SingleDatabaseRequest) (*table.SingleDatabaseResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tbasics := make([]*model.DatabaseBasic, 1)\n\tb := &model.DatabaseBasic{\n\t\tID: req.ID,\n\t}\n\tif req.IsDraft {\n\t\tb.TableType = table.TableType_DraftTable\n\t} else {\n\t\tb.TableType = table.TableType_OnlineTable\n\t}\n\n\tb.NeedSysFields = req.NeedSysFields\n\tbasics[0] = b\n\n\tres, err := d.DomainSVC.MGetDatabase(ctx, &database.MGetDatabaseRequest{\n\t\tBasics: basics,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(res.Databases) == 0 {\n\t\treturn nil, fmt.Errorf(\"database %d not found\", req.GetID())\n\t}\n\n\tif res.Databases[0].CreatorID != *uid {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"creator id is invalid\"))\n\t}\n\n\treturn ConvertDatabaseRes(res.Databases[0]), nil\n}\n\nfunc (d *DatabaseApplicationService) AddDatabase(ctx context.Context, req *table.AddDatabaseRequest) (*table.SingleDatabaseResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\tif *uid != req.CreatorID {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"creator id is invalid\"))\n\t}\n\n\tif req.GetTableName() == \"database\" {\n\t\treturn nil, errorx.New(errno.ErrMemoryDatabaseNameInvalid)\n\t}\n\n\tspaces, err := crossuser.DefaultSVC().GetUserSpaceList(ctx, *uid)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(spaces) == 0 || spaces[0].ID != req.SpaceID {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"space id is invalid\"))\n\t}\n\n\tres, err := d.DomainSVC.CreateDatabase(ctx, convertAddDatabase(req))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdatabaseRes := res.Database\n\tvar ptrAppID *int64\n\tif databaseRes.AppID != 0 {\n\t\tptrAppID = ptr.Of(databaseRes.AppID)\n\t}\n\terr = d.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Created,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType:       resCommon.ResType_Database,\n\t\t\tResID:         databaseRes.ID,\n\t\t\tName:          &databaseRes.TableName,\n\t\t\tAPPID:         ptrAppID,\n\t\t\tSpaceID:       &databaseRes.SpaceID,\n\t\t\tOwnerID:       &databaseRes.CreatorID,\n\t\t\tPublishStatus: ptr.Of(resCommon.PublishStatus_Published),\n\t\t\tCreateTimeMS:  ptr.Of(databaseRes.CreatedAtMs),\n\t\t\tUpdateTimeMS:  ptr.Of(databaseRes.UpdatedAtMs),\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"publish resource failed, err=%w\", err)\n\t}\n\n\treturn ConvertDatabaseRes(databaseRes), nil\n}\n\nfunc (d *DatabaseApplicationService) UpdateDatabase(ctx context.Context, req *table.UpdateDatabaseRequest) (*table.SingleDatabaseResponse, error) {\n\terr := d.ValidateAccess(ctx, req.ID, table.TableType_OnlineTable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tres, err := d.DomainSVC.UpdateDatabase(ctx, ConvertUpdateDatabase(req))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdatabaseRes := res.Database\n\terr = d.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType:      resCommon.ResType_Database,\n\t\t\tResID:        databaseRes.ID,\n\t\t\tName:         &databaseRes.TableName,\n\t\t\tUpdateTimeMS: ptr.Of(databaseRes.UpdatedAtMs),\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"publish resource failed, err=%w\", err)\n\t}\n\n\treturn convertUpdateDatabaseResult(res), nil\n}\n\nfunc (d *DatabaseApplicationService) DeleteDatabase(ctx context.Context, req *table.DeleteDatabaseRequest) (*table.DeleteDatabaseResponse, error) {\n\terr := d.ValidateAccess(ctx, req.ID, table.TableType_OnlineTable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = d.DomainSVC.DeleteDatabase(ctx, &database.DeleteDatabaseRequest{\n\t\tID: req.ID,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = d.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Deleted,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType: resCommon.ResType_Database,\n\t\t\tResID:   req.ID,\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &table.DeleteDatabaseResponse{\n\t\tCode:     0,\n\t\tMsg:      \"success\",\n\t\tBaseResp: base.NewBaseResp(),\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) ListDatabaseRecords(ctx context.Context, req *table.ListDatabaseRecordsRequest) (*table.ListDatabaseRecordsResponse, error) {\n\ttableType := table.TableType_OnlineTable\n\tif req.GetBotID() > 0 {\n\t\ttableType = table.TableType_DraftTable\n\t}\n\terr := d.ValidateAccess(ctx, req.DatabaseID, tableType)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdatabaseID := req.DatabaseID\n\tif req.GetBotID() == 0 {\n\t\tdatabaseID, err = getDatabaseID(ctx, req.TableType, req.DatabaseID)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tdomainReq := &database.ListDatabaseRecordRequest{\n\t\tDatabaseID: databaseID,\n\t\tTableType:  req.TableType,\n\t\tLimit:      int(req.Limit),\n\t\tOffset:     int(req.Offset),\n\t\tUserID:     *uid,\n\t}\n\t// FilterCriterion, NotFilterByUserID, OrderByList not use\n\n\tres, err := d.DomainSVC.ListDatabaseRecord(ctx, domainReq)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn convertListDatabaseRecordsRes(res), nil\n}\n\nfunc (d *DatabaseApplicationService) UpdateDatabaseRecords(ctx context.Context, req *table.UpdateDatabaseRecordsRequest) (*table.UpdateDatabaseRecordsResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\terr := d.ValidateAccess(ctx, req.DatabaseID, table.TableType_OnlineTable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdatabaseID, err := getDatabaseID(ctx, req.GetTableType(), req.GetDatabaseID())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdataRes := make([]map[string]string, 0)\n\tif len(req.GetRecordDataAdd()) > 0 {\n\t\terr := d.DomainSVC.AddDatabaseRecord(ctx, &database.AddDatabaseRecordRequest{\n\t\t\tDatabaseID: databaseID,\n\t\t\tTableType:  req.GetTableType(),\n\t\t\tRecords:    req.GetRecordDataAdd(),\n\t\t\tUserID:     *uid,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tdataRes = append(dataRes, req.GetRecordDataAdd()...)\n\t}\n\n\tif len(req.GetRecordDataAlter()) > 0 {\n\t\terr := d.DomainSVC.UpdateDatabaseRecord(ctx, &database.UpdateDatabaseRecordRequest{\n\t\t\tDatabaseID: databaseID,\n\t\t\tTableType:  req.GetTableType(),\n\t\t\tRecords:    req.GetRecordDataAlter(),\n\t\t\tUserID:     *uid,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tdataRes = append(dataRes, req.GetRecordDataAlter()...)\n\t}\n\n\tif len(req.GetRecordDataDelete()) > 0 {\n\t\terr := d.DomainSVC.DeleteDatabaseRecord(ctx, &database.DeleteDatabaseRecordRequest{\n\t\t\tDatabaseID: databaseID,\n\t\t\tTableType:  req.GetTableType(),\n\t\t\tRecords:    req.GetRecordDataDelete(),\n\t\t\tUserID:     *uid,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tdataRes = append(dataRes, req.GetRecordDataDelete()...)\n\t}\n\n\treturn &table.UpdateDatabaseRecordsResponse{\n\t\tData: dataRes,\n\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t\tBaseResp: &base.BaseResp{\n\t\t\tStatusCode:    0,\n\t\t\tStatusMessage: \"success\",\n\t\t},\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) GetOnlineDatabaseId(ctx context.Context, req *table.GetOnlineDatabaseIdRequest) (*table.GetOnlineDatabaseIdResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tbasics := make([]*model.DatabaseBasic, 1)\n\tbasics[0] = &model.DatabaseBasic{\n\t\tID:        req.ID,\n\t\tTableType: table.TableType_DraftTable,\n\t}\n\n\tres, err := d.DomainSVC.MGetDatabase(ctx, &database.MGetDatabaseRequest{\n\t\tBasics: basics,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(res.Databases) == 0 {\n\t\treturn nil, fmt.Errorf(\"database %d not found\", req.ID)\n\t}\n\n\tif res.Databases[0].CreatorID != *uid {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"creator id is invalid\"))\n\t}\n\n\treturn &table.GetOnlineDatabaseIdResponse{\n\t\tID: res.Databases[0].OnlineID,\n\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) ResetBotTable(ctx context.Context, req *table.ResetBotTableRequest) (*table.ResetBotTableResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\ttableType := table.TableType_OnlineTable\n\tif req.GetBotID() > 0 {\n\t\ttableType = table.TableType_DraftTable\n\t}\n\terr := d.ValidateAccess(ctx, req.GetDatabaseInfoID(), tableType)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdatabaseID := req.GetDatabaseInfoID()\n\tif req.GetBotID() == 0 {\n\t\tdatabaseID, err = getDatabaseID(ctx, req.TableType, req.GetDatabaseInfoID())\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\texecuteDeleteReq := &database.ExecuteSQLRequest{\n\t\tDatabaseID:  databaseID,\n\t\tTableType:   req.GetTableType(),\n\t\tOperateType: model.OperateType_Delete,\n\t\tUserID:      conv.Int64ToStr(*uid),\n\t\tCondition: &model.ComplexCondition{\n\t\t\tConditions: []*model.Condition{\n\t\t\t\t{\n\t\t\t\t\tLeft:      model.DefaultIDColName,\n\t\t\t\t\tOperation: model.Operation_GREATER_THAN,\n\t\t\t\t\tRight:     \"?\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tLogic: model.Logic_And,\n\t\t},\n\t\tSQLParams: []*model.SQLParamVal{\n\t\t\t{\n\t\t\t\tValueType: table.FieldItemType_Number,\n\t\t\t\tValue:     ptr.Of(\"0\"),\n\t\t\t},\n\t\t},\n\t}\n\n\t_, err = d.DomainSVC.ExecuteSQL(ctx, executeDeleteReq)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &table.ResetBotTableResponse{\n\t\tCode:     ptr.Of(int64(0)),\n\t\tMsg:      ptr.Of(\"success\"),\n\t\tBaseResp: base.NewBaseResp(),\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) GetDatabaseTemplate(ctx context.Context, req *table.GetDatabaseTemplateRequest) (*table.GetDatabaseTemplateResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tdatabaseID, err := getDatabaseID(ctx, req.TableType, req.DatabaseID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = d.ValidateAccess(ctx, req.DatabaseID, table.TableType_OnlineTable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar fields []*model.FieldItem\n\tvar tableName string\n\tif req.GetTableType() == table.TableType_DraftTable {\n\t\tbasics := make([]*model.DatabaseBasic, 1)\n\t\tbasics[0] = &model.DatabaseBasic{\n\t\t\tID:        databaseID,\n\t\t\tTableType: table.TableType_DraftTable,\n\t\t}\n\t\tinfo, err := d.DomainSVC.MGetDatabase(ctx, &database.MGetDatabaseRequest{\n\t\t\tBasics: basics,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tfields = info.Databases[0].FieldList\n\t\ttableName = info.Databases[0].TableName\n\t} else {\n\t\tbasics := make([]*model.DatabaseBasic, 1)\n\t\tbasics[0] = &model.DatabaseBasic{\n\t\t\tID:        databaseID,\n\t\t\tTableType: table.TableType_OnlineTable,\n\t\t}\n\t\tinfo, err := d.DomainSVC.MGetDatabase(ctx, &database.MGetDatabaseRequest{\n\t\t\tBasics: basics,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tfields = info.Databases[0].FieldList\n\t\ttableName = info.Databases[0].TableName\n\t}\n\n\titems := make([]*table.FieldItem, 0, len(fields))\n\tfor _, field := range fields {\n\t\titems = append(items, &table.FieldItem{\n\t\t\tName:         field.Name,\n\t\t\tDesc:         field.Desc,\n\t\t\tType:         field.Type,\n\t\t\tMustRequired: field.MustRequired,\n\t\t})\n\t}\n\n\tresp, err := d.DomainSVC.GetDatabaseTemplate(ctx, &database.GetDatabaseTemplateRequest{\n\t\tUserID:     *uid,\n\t\tTableName:  tableName,\n\t\tFieldItems: items,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &table.GetDatabaseTemplateResponse{\n\t\tTosUrl: resp.Url,\n\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t\tBaseResp: &base.BaseResp{\n\t\t\tStatusCode:    0,\n\t\t\tStatusMessage: \"success\",\n\t\t},\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) GetConnectorName(ctx context.Context, req *table.GetSpaceConnectorListRequest) (*table.GetSpaceConnectorListResponse, error) {\n\treturn &table.GetSpaceConnectorListResponse{\n\t\tConnectorList: []*table.ConnectorInfo{\n\t\t\t{\n\t\t\t\tConnectorID:   consts.CozeConnectorID,\n\t\t\t\tConnectorName: \"Coze\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tConnectorID:   consts.WebSDKConnectorID,\n\t\t\t\tConnectorName: \"Chat SDK\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tConnectorID:   consts.APIConnectorID,\n\t\t\t\tConnectorName: \"API\",\n\t\t\t},\n\t\t},\n\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t\tBaseResp: &base.BaseResp{\n\t\t\tStatusCode:    0,\n\t\t\tStatusMessage: \"success\",\n\t\t},\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) GetBotDatabase(ctx context.Context, req *table.GetBotTableRequest) (*table.GetBotTableResponse, error) {\n\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\trelationResp, err := d.DomainSVC.MGetRelationsByAgentID(ctx, &database.MGetRelationsByAgentIDRequest{\n\t\tAgentID:   req.GetBotID(),\n\t\tTableType: req.GetTableType(),\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\trelationMap := slices.ToMap(relationResp.Relations, func(d *model.AgentToDatabase) (int64, *model.AgentToDatabase) {\n\t\treturn d.DatabaseID, d\n\t})\n\n\tresp, err := d.DomainSVC.MGetDatabaseByAgentID(ctx, &database.MGetDatabaseByAgentIDRequest{\n\t\tAgentID:       req.GetBotID(),\n\t\tTableType:     req.GetTableType(),\n\t\tNeedSysFields: false,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor _, db := range resp.Databases {\n\t\tif db.CreatorID != *uid {\n\t\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"creator id is invalid\"))\n\t\t}\n\t}\n\n\treturn &table.GetBotTableResponse{\n\t\tBotTableList: convertToBotTableList(resp.Databases, req.GetBotID(), relationMap),\n\t\tCode:         0,\n\t\tMsg:          \"success\",\n\t\tBaseResp:     base.NewBaseResp(),\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) ValidateDatabaseTableSchema(ctx context.Context, req *table.ValidateTableSchemaRequest) (*table.ValidateTableSchemaResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tif req.GetSourceInfo() == nil || req.GetTableSheet() == nil {\n\t\treturn nil, fmt.Errorf(\"source file and table sheet required\")\n\t}\n\n\tdatabaseID, err := getDatabaseID(ctx, req.TableType, req.DatabaseID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = d.ValidateAccess(ctx, req.DatabaseID, table.TableType_OnlineTable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tbasics := make([]*model.DatabaseBasic, 1)\n\tbasics[0] = &model.DatabaseBasic{\n\t\tID:        databaseID,\n\t\tTableType: req.TableType,\n\t}\n\tinfo, err := d.DomainSVC.MGetDatabase(ctx, &database.MGetDatabaseRequest{\n\t\tBasics: basics,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(info.Databases) == 0 {\n\t\treturn nil, fmt.Errorf(\"database %d not found\", req.DatabaseID)\n\t}\n\n\tres, err := d.DomainSVC.ValidateDatabaseTableSchema(ctx, &database.ValidateDatabaseTableSchemaRequest{\n\t\tDatabaseID: req.GetDatabaseID(),\n\t\tUserID:     *uid,\n\t\tTosURL:     req.GetSourceInfo().GetTosURI(),\n\t\tTableSheet: databaseEntity.TableSheet{\n\t\t\tSheetID:       req.GetTableSheet().GetSheetID(),\n\t\t\tHeaderLineIdx: req.GetTableSheet().GetHeaderLineIdx(),\n\t\t\tStartLineIdx:  req.GetTableSheet().GetStartLineIdx(),\n\t\t},\n\t\tFields: info.Databases[0].FieldList,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !res.Valid {\n\t\treturn nil, errorx.New(errno.ErrMemoryInvalidParamCode,\n\t\t\terrorx.KV(\"msg\", res.GetInvalidMsg()))\n\t}\n\n\treturn &table.ValidateTableSchemaResponse{\n\t\tCode:     0,\n\t\tMsg:      \"success\",\n\t\tBaseResp: base.NewBaseResp(),\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) GetDatabaseTableSchema(ctx context.Context, req *table.GetTableSchemaRequest) (*document.GetTableSchemaInfoResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tif req.GetSourceFile() == nil || req.GetTableSheet() == nil {\n\t\treturn nil, fmt.Errorf(\"source file and table sheet required\")\n\t}\n\n\ttableType := table.TableDataType_AllData\n\tif req.TableDataType != nil {\n\t\ttableType = req.GetTableDataType()\n\t}\n\n\terr := d.ValidateAccess(ctx, req.GetDatabaseID(), table.TableType_OnlineTable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tschema, err := d.DomainSVC.GetDatabaseTableSchema(ctx, &database.GetDatabaseTableSchemaRequest{\n\t\tDatabaseID: req.GetDatabaseID(),\n\t\tUserID:     *uid,\n\t\tTosURL:     req.GetSourceFile().GetTosURI(),\n\t\tTableSheet: databaseEntity.TableSheet{\n\t\t\tSheetID:       req.GetTableSheet().GetSheetID(),\n\t\t\tHeaderLineIdx: req.GetTableSheet().GetHeaderLineIdx(),\n\t\t\tStartLineIdx:  req.GetTableSheet().GetStartLineIdx(),\n\t\t},\n\t\t// All data is returned by default without passing it on.\n\t\tTableDataType: tableType,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &document.GetTableSchemaInfoResponse{\n\t\tTableMeta:   schema.TableMeta,\n\t\tSheetList:   schema.SheetList,\n\t\tPreviewData: schema.PreviewData,\n\t\tBaseResp:    base.NewBaseResp(),\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) SubmitDatabaseInsertTask(ctx context.Context, req *table.SubmitDatabaseInsertRequest) (*table.SubmitDatabaseInsertResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tdatabaseID, err := getDatabaseID(ctx, req.TableType, req.DatabaseID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = d.ValidateAccess(ctx, req.DatabaseID, table.TableType_OnlineTable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = d.DomainSVC.SubmitDatabaseInsertTask(ctx, &database.SubmitDatabaseInsertTaskRequest{\n\t\tDatabaseID: databaseID,\n\t\tUserID:     *uid,\n\t\tFileURI:    req.GetFileURI(),\n\t\tTableSheet: databaseEntity.TableSheet{\n\t\t\tSheetID:       req.GetTableSheet().GetSheetID(),\n\t\t\tHeaderLineIdx: req.GetTableSheet().GetHeaderLineIdx(),\n\t\t\tStartLineIdx:  req.GetTableSheet().GetStartLineIdx(),\n\t\t},\n\t\tConnectorID: req.ConnectorID,\n\t\tTableType:   req.TableType,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &table.SubmitDatabaseInsertResponse{\n\t\tCode:     0,\n\t\tMsg:      \"success\",\n\t\tBaseResp: base.NewBaseResp(),\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) DatabaseFileProgressData(ctx context.Context, req *table.GetDatabaseFileProgressRequest) (*table.GetDatabaseFileProgressResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tdatabaseID, err := getDatabaseID(ctx, req.TableType, req.DatabaseID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tres, err := d.DomainSVC.GetDatabaseFileProgressData(ctx, &database.GetDatabaseFileProgressDataRequest{\n\t\tDatabaseID: databaseID,\n\t\tUserID:     *uid,\n\t\tTableType:  req.TableType,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &table.GetDatabaseFileProgressResponse{\n\t\tData: &table.DatabaseFileProgressData{\n\t\t\tFileName:       res.FileName,\n\t\t\tProgress:       res.Progress,\n\t\t\tStatusDescript: res.StatusDescript,\n\t\t},\n\t\tCode:     0,\n\t\tMsg:      \"success\",\n\t\tBaseResp: base.NewBaseResp(),\n\t}, nil\n}\n\nfunc getDatabaseID(ctx context.Context, tableType table.TableType, onlineID int64) (int64, error) {\n\tif tableType == table.TableType_OnlineTable {\n\t\treturn onlineID, nil\n\t}\n\n\tonline, err := DatabaseApplicationSVC.DomainSVC.MGetDatabase(ctx, &database.MGetDatabaseRequest{\n\t\tBasics: []*model.DatabaseBasic{\n\t\t\t{\n\t\t\t\tID:        onlineID,\n\t\t\t\tTableType: table.TableType_OnlineTable,\n\t\t\t},\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\tif len(online.Databases) == 0 {\n\t\treturn -1, fmt.Errorf(\"online table not found, id: %d\", onlineID)\n\t}\n\n\treturn online.Databases[0].GetDraftID(), nil\n}\n\nfunc (d *DatabaseApplicationService) ValidateAccess(ctx context.Context, databaseID int64, tableType table.TableType) error {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session uid not found\"))\n\t}\n\n\tdo, err := d.DomainSVC.MGetDatabase(ctx, &database.MGetDatabaseRequest{\n\t\tBasics: []*model.DatabaseBasic{\n\t\t\t{\n\t\t\t\tID:        databaseID,\n\t\t\t\tTableType: tableType,\n\t\t\t},\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\tif len(do.Databases) == 0 {\n\t\treturn errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"database not found\"))\n\t}\n\n\tif do.Databases[0].CreatorID != *uid {\n\t\tlogs.CtxErrorf(ctx, \"user(%d) is not the creator(%d) of the database(%d)\", *uid, do.Databases[0].CreatorID, databaseID)\n\t\treturn errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"detail\", \"you are not the creator of the database\"))\n\t}\n\n\treturn nil\n}\n\nfunc (d *DatabaseApplicationService) DeleteDatabaseByAppID(ctx context.Context, appID int64) error {\n\tresp, err := d.DomainSVC.DeleteDatabaseByAppID(ctx, &database.DeleteDatabaseByAppIDRequest{\n\t\tAppID: appID,\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdeletedIDs := resp.DeletedDatabaseIDs\n\tfor _, deletedID := range deletedIDs {\n\t\terr = d.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\t\tOpType: searchEntity.Deleted,\n\t\t\tResource: &searchEntity.ResourceDocument{\n\t\t\t\tResType: resCommon.ResType_Database,\n\t\t\t\tResID:   deletedID,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (d *DatabaseApplicationService) CopyDatabase(ctx context.Context, req *CopyDatabaseRequest) (*CopyDatabaseResponse, error) {\n\tvar err error\n\n\tbasics := make([]*model.DatabaseBasic, 0, len(req.DatabaseIDs))\n\tfor _, id := range req.DatabaseIDs {\n\t\tbasics = append(basics, &model.DatabaseBasic{\n\t\t\tID:        id,\n\t\t\tTableType: req.TableType,\n\t\t})\n\t}\n\n\tres, err := d.DomainSVC.MGetDatabase(ctx, &database.MGetDatabaseRequest{Basics: basics})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcopyDatabases := make(map[int64]*entity.Database, len(res.Databases))\n\tdraftMaps := make(map[int64]int64)\n\tonlineMaps := make(map[int64]int64)\n\n\tfor _, srcDB := range res.Databases {\n\t\tif req.Suffix != nil {\n\t\t\tsrcDB.TableName += *req.Suffix\n\t\t} else {\n\t\t\tsrcDB.TableName += \"_copy\"\n\t\t}\n\t\tif req.TargetSpaceID != nil {\n\t\t\tsrcDB.SpaceID = *req.TargetSpaceID\n\t\t}\n\n\t\toriginalID := srcDB.ID\n\t\toriginalDraftID := srcDB.GetDraftID()\n\t\toriginalOnlineID := srcDB.GetOnlineID()\n\t\tsrcDB.AppID = req.TargetAppID\n\t\tsrcDB.CreatorID = req.CreatorID\n\t\tif req.TargetSpaceID != nil {\n\n\t\t}\n\t\tcreateDatabaseResp, err := d.DomainSVC.CreateDatabase(ctx, &database.CreateDatabaseRequest{\n\t\t\tDatabase: srcDB,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tonlineDatabase := createDatabaseResp.Database\n\t\tdraftResp, err := d.DomainSVC.GetDraftDatabaseByOnlineID(ctx, &database.GetDraftDatabaseByOnlineIDRequest{\n\t\t\tOnlineID: onlineDatabase.ID,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcopyDatabases[originalID] = onlineDatabase\n\t\tdraftDatabase := draftResp.Database\n\t\tdraftMaps[originalDraftID] = draftDatabase.ID\n\t\tonlineMaps[originalOnlineID] = onlineDatabase.ID\n\n\t\terr = d.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\t\tOpType: searchEntity.Created,\n\t\t\tResource: &searchEntity.ResourceDocument{\n\t\t\t\tResType:       resCommon.ResType_Database,\n\t\t\t\tResID:         onlineDatabase.ID,\n\t\t\t\tName:          &onlineDatabase.TableName,\n\t\t\t\tAPPID:         &onlineDatabase.AppID,\n\t\t\t\tSpaceID:       &onlineDatabase.SpaceID,\n\t\t\t\tOwnerID:       &onlineDatabase.CreatorID,\n\t\t\t\tPublishStatus: ptr.Of(resCommon.PublishStatus_Published),\n\t\t\t\tCreateTimeMS:  ptr.Of(onlineDatabase.CreatedAtMs),\n\t\t\t\tUpdateTimeMS:  ptr.Of(onlineDatabase.UpdatedAtMs),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"publish resource failed, err=%w\", err)\n\t\t}\n\t}\n\n\tif !req.IsCopyData {\n\t\treturn &CopyDatabaseResponse{\n\t\t\tDatabases: copyDatabases,\n\t\t}, nil\n\t}\n\n\tfor srcID, targetID := range draftMaps {\n\t\terr = d.duplicateRecords(ctx, srcID, targetID, req.CreatorID, table.TableType_DraftTable)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tfor srcID, targetID := range onlineMaps {\n\t\terr = d.duplicateRecords(ctx, srcID, targetID, req.CreatorID, table.TableType_OnlineTable)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn &CopyDatabaseResponse{\n\t\tDatabases: copyDatabases,\n\t}, nil\n}\n\nfunc (d *DatabaseApplicationService) duplicateRecords(ctx context.Context, srcDatabaseID, targetDatabaseID, userID int64, tableType table.TableType) error {\n\tlistReq := &database.ListDatabaseRecordRequest{\n\t\tDatabaseID: srcDatabaseID,\n\t\tTableType:  tableType,\n\t\tUserID:     userID,\n\t\tLimit:      1000,\n\t\tOffset:     0,\n\t}\n\tfor {\n\t\tlistResp, err := d.DomainSVC.ListDatabaseRecord(ctx, listReq)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"list source database records failed: %v\", err)\n\t\t}\n\n\t\tif len(listResp.Records) == 0 {\n\t\t\tbreak\n\t\t}\n\t\taddReq := &database.AddDatabaseRecordRequest{\n\t\t\tDatabaseID: targetDatabaseID,\n\t\t\tTableType:  tableType,\n\t\t\tUserID:     userID,\n\t\t\tRecords:    listResp.Records,\n\t\t}\n\t\terr = d.DomainSVC.AddDatabaseRecord(ctx, addReq)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"copy data failed: %v\", err)\n\t\t}\n\n\t\tif !listResp.HasMore {\n\t\t\tbreak\n\t\t}\n\t\tlistReq.Offset += listReq.Limit\n\t}\n\n\treturn nil\n}\n\ntype CopyDatabaseRequest struct {\n\tDatabaseIDs []int64\n\tTableType   table.TableType // table type of the source databases\n\tCreatorID   int64\n\n\tIsCopyData    bool    // is need to copy data\n\tTargetSpaceID *int64  // if is nil, it will be set to the same space as the original database\n\tTargetAppID   int64   // if is nil, it will be set to the same app as the original database; if copy to resource, set to 0\n\tSuffix        *string // table name suffix for the copied table, default is \"_copy\"\n}\n\ntype CopyDatabaseResponse struct {\n\tDatabases map[int64]*entity.Database // key is original database id (online id or draft id), value is the new online database\n}\n\nfunc (d *DatabaseApplicationService) MoveDatabaseToLibrary(ctx context.Context, req *MoveDatabaseToLibraryRequest) (*MoveDatabaseToLibraryResponse, error) {\n\tbasics := make([]*model.DatabaseBasic, 0, len(req.DatabaseIDs))\n\tfor _, id := range req.DatabaseIDs {\n\t\tbasics = append(basics, &model.DatabaseBasic{\n\t\t\tID:        id,\n\t\t\tTableType: req.TableType,\n\t\t})\n\t}\n\n\tres, err := d.DomainSVC.MGetDatabase(ctx, &database.MGetDatabaseRequest{Basics: basics})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmoveDatabases := make([]*entity.Database, 0, len(req.DatabaseIDs))\n\tfor _, srcDB := range res.Databases {\n\n\t\tsrcDB.AppID = 0\n\t\tmoveDatabaseResp, err := d.DomainSVC.UpdateDatabase(ctx, &database.UpdateDatabaseRequest{\n\t\t\tDatabase: srcDB,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tonlineDatabase := moveDatabaseResp.Database\n\t\tmoveDatabases = append(moveDatabases, onlineDatabase)\n\t\t// publish resource event\n\t\terr = d.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\t\tOpType: searchEntity.Updated,\n\t\t\tResource: &searchEntity.ResourceDocument{\n\t\t\t\tResType:      resCommon.ResType_Database,\n\t\t\t\tResID:        onlineDatabase.ID,\n\t\t\t\tName:         &onlineDatabase.TableName,\n\t\t\t\tAPPID:        &onlineDatabase.AppID,\n\t\t\t\tSpaceID:      &onlineDatabase.SpaceID,\n\t\t\t\tUpdateTimeMS: &onlineDatabase.UpdatedAtMs,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"publish resource failed, err=%w\", err)\n\t\t}\n\t}\n\n\treturn &MoveDatabaseToLibraryResponse{\n\t\tDatabases: moveDatabases,\n\t}, nil\n}\n\ntype MoveDatabaseToLibraryRequest struct {\n\tDatabaseIDs []int64\n\tTableType   table.TableType // table type of the source databases\n}\n\ntype MoveDatabaseToLibraryResponse struct {\n\tDatabases []*entity.Database // the online databases after move\n}\n"
  },
  {
    "path": "backend/application/memory/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage memory\n\nimport (\n\t\"gorm.io/gorm\"\n\n\tdatabase \"github.com/coze-dev/coze-studio/backend/domain/memory/database/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/memory/variables/repository\"\n\tvariables \"github.com/coze-dev/coze-studio/backend/domain/memory/variables/service\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/cache\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/rdb\"\n\trdbService \"github.com/coze-dev/coze-studio/backend/infra/rdb/impl/rdb\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n)\n\ntype MemoryApplicationServices struct {\n\tVariablesDomainSVC variables.Variables\n\tDatabaseDomainSVC  database.Database\n\tRDBDomainSVC       rdb.RDB\n}\n\ntype ServiceComponents struct {\n\tIDGen                  idgen.IDGenerator\n\tDB                     *gorm.DB\n\tEventBus               search.ResourceEventBus\n\tTosClient              storage.Storage\n\tResourceDomainNotifier search.ResourceEventBus\n\tCacheCli               cache.Cmdable\n}\n\nfunc InitService(c *ServiceComponents) *MemoryApplicationServices {\n\trepo := repository.NewVariableRepo(c.DB, c.IDGen)\n\tvariablesDomainSVC := variables.NewService(repo)\n\trdbSVC := rdbService.NewService(c.DB, c.IDGen)\n\tdatabaseDomainSVC := database.NewService(rdbSVC, c.DB, c.IDGen, c.TosClient, c.CacheCli)\n\n\tVariableApplicationSVC.DomainSVC = variablesDomainSVC\n\tDatabaseApplicationSVC.DomainSVC = databaseDomainSVC\n\tDatabaseApplicationSVC.eventbus = c.ResourceDomainNotifier\n\n\treturn &MemoryApplicationServices{\n\t\tVariablesDomainSVC: variablesDomainSVC,\n\t\tDatabaseDomainSVC:  databaseDomainSVC,\n\t\tRDBDomainSVC:       rdbSVC,\n\t}\n}\n"
  },
  {
    "path": "backend/application/memory/variables.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage memory\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strconv\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/base\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/variable/kvmemory\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/variable/project_memory\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tcrosspermission \"github.com/coze-dev/coze-studio/backend/crossdomain/permission\"\n\tmodel \"github.com/coze-dev/coze-studio/backend/crossdomain/variables/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/memory/variables/entity\"\n\tvariables \"github.com/coze-dev/coze-studio/backend/domain/memory/variables/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/permission\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/i18n\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ternary\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\ntype VariableApplicationService struct {\n\tDomainSVC variables.Variables\n}\n\nvar VariableApplicationSVC = VariableApplicationService{}\n\nvar i18nLocal2GroupVariableInfo = map[i18n.Locale]map[project_memory.VariableChannel]project_memory.GroupVariableInfo{\n\ti18n.LocaleEN: {\n\t\tproject_memory.VariableChannel_APP: {\n\t\t\tGroupName: \"App variable\",\n\t\t\tGroupDesc: \"Configures data accessed across multiple development scenarios in the app. It is initialized to a default value each time a new request is sent.\",\n\t\t},\n\t\tproject_memory.VariableChannel_Custom: {\n\t\t\tGroupName: \"User variable\",\n\t\t\tGroupDesc: \"Persistently stores and reads project date for users, such as the preferred language and custom settings.\",\n\t\t},\n\t\tproject_memory.VariableChannel_System: {\n\t\t\tGroupName: \"System variable\",\n\t\t\tGroupDesc: \"Displays the data that you enabled as needed, which can be used to identify users via IDs or handle channel-specific features. The data is automatically generated and is read-only.\",\n\t\t},\n\t},\n}\n\nvar channel2GroupVariableInfo = map[project_memory.VariableChannel]project_memory.GroupVariableInfo{\n\tproject_memory.VariableChannel_APP: {\n\t\tGroupName:    \"应用变量\",\n\t\tGroupDesc:    \"用于配置应用中多处开发场景需要访问的数据，每次新请求均会初始化为默认值。\",\n\t\tGroupExtDesc: \"\",\n\t\tIsReadOnly:   false,\n\t\tSubGroupList: []*project_memory.GroupVariableInfo{},\n\t\tVarInfoList:  []*project_memory.Variable{},\n\t},\n\tproject_memory.VariableChannel_Custom: {\n\t\tGroupName:    \"用户变量\",\n\t\tGroupDesc:    \"用于存储每个用户使用项目过程中，需要持久化存储和读取的数据，如用户的语言偏好、个性化设置等。\",\n\t\tGroupExtDesc: \"\",\n\t\tIsReadOnly:   false,\n\t\tSubGroupList: []*project_memory.GroupVariableInfo{},\n\t\tVarInfoList:  []*project_memory.Variable{},\n\t},\n\tproject_memory.VariableChannel_System: {\n\t\tGroupName:    \"系统变量\",\n\t\tGroupDesc:    \"可选择开启你需要获取的，系统在用户在请求自动产生的数据，仅可读不可修改。如用于通过ID识别用户或处理某些渠道特有的功能。\",\n\t\tGroupExtDesc: \"\",\n\t\tIsReadOnly:   true,\n\t\tSubGroupList: []*project_memory.GroupVariableInfo{},\n\t\tVarInfoList:  []*project_memory.Variable{},\n\t},\n}\n\nfunc (v *VariableApplicationService) GetSysVariableConf(ctx context.Context, req *kvmemory.GetSysVariableConfRequest) (*kvmemory.GetSysVariableConfResponse, error) {\n\tvars := v.DomainSVC.GetSysVariableConf(ctx)\n\n\treturn &kvmemory.GetSysVariableConfResponse{\n\t\tConf:      vars,\n\t\tGroupConf: vars.GroupByName(),\n\t}, nil\n}\n\nfunc (v *VariableApplicationService) GetProjectVariablesMeta(ctx context.Context, appOwnerID int64, req *project_memory.GetProjectVariableListReq) (*project_memory.GetProjectVariableListResp, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tversion := \"\"\n\tif req.Version != 0 {\n\t\tversion = fmt.Sprintf(\"%d\", req.Version)\n\t}\n\n\tmeta, err := v.DomainSVC.GetProjectVariablesMeta(ctx, req.ProjectID, version)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgroupConf, err := v.toGroupVariableInfo(ctx, meta)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &project_memory.GetProjectVariableListResp{\n\t\tVariableList: meta.ToProjectVariables(),\n\t\tGroupConf:    groupConf,\n\t\tCanEdit:      appOwnerID == *uid,\n\t}, nil\n}\n\nfunc (v *VariableApplicationService) getGroupVariableConf(ctx context.Context, channel project_memory.VariableChannel) project_memory.GroupVariableInfo {\n\tgroupConf, ok := channel2GroupVariableInfo[channel]\n\tif !ok {\n\t\treturn project_memory.GroupVariableInfo{}\n\t}\n\n\tlocal := i18n.GetLocale(ctx)\n\ti18nConf, ok := i18nLocal2GroupVariableInfo[local][channel]\n\tif ok {\n\t\tgroupConf.GroupName = i18nConf.GroupName\n\t\tgroupConf.GroupDesc = i18nConf.GroupDesc\n\t}\n\n\treturn groupConf\n}\n\nfunc (v *VariableApplicationService) toGroupVariableInfo(ctx context.Context, meta *entity.VariablesMeta) ([]*project_memory.GroupVariableInfo, error) {\n\tchannel2Vars := meta.GroupByChannel()\n\tgroupConfList := make([]*project_memory.GroupVariableInfo, 0, len(channel2Vars))\n\n\tshowChannels := []project_memory.VariableChannel{\n\t\tproject_memory.VariableChannel_APP,\n\t\tproject_memory.VariableChannel_Custom,\n\t\tproject_memory.VariableChannel_System,\n\t}\n\n\tfor _, channel := range showChannels {\n\t\tch := channel\n\t\tvars := channel2Vars[ch]\n\t\tgroupConf := v.getGroupVariableConf(ctx, ch)\n\t\tgroupConf.DefaultChannel = &ch\n\t\tif channel != project_memory.VariableChannel_System {\n\t\t\tgroupConf.VarInfoList = vars\n\t\t\tgroupConfList = append(groupConfList, &groupConf)\n\n\t\t\tcontinue\n\t\t}\n\n\t\tkey2Var := make(map[string]*project_memory.Variable)\n\t\tfor _, v := range vars {\n\t\t\tkey2Var[v.Keyword] = v\n\t\t}\n\n\t\t// project_memory.VariableChannel_System\n\t\tsysVars := v.DomainSVC.GetSysVariableConf(ctx).RemoveLocalChannelVariable()\n\t\tgroupName2Group := sysVars.GroupByName()\n\t\tsubGroupList := make([]*project_memory.GroupVariableInfo, 0, len(groupName2Group))\n\n\t\tfor _, group := range groupName2Group {\n\t\t\tvar e entity.SysConfVariables = group.VarInfoList\n\t\t\tvarList := make([]*project_memory.Variable, 0, len(group.VarInfoList))\n\n\t\t\tfor _, defaultSysMeta := range e.ToVariables().ToProjectVariables() {\n\t\t\t\tsysMetaInUserConf := key2Var[defaultSysMeta.Keyword]\n\t\t\t\tif sysMetaInUserConf == nil {\n\t\t\t\t\tvarList = append(varList, defaultSysMeta)\n\t\t\t\t} else {\n\t\t\t\t\tvarList = append(varList, sysMetaInUserConf)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpGroupVariableInfo := &project_memory.GroupVariableInfo{\n\t\t\t\tGroupName:    group.GroupName,\n\t\t\t\tGroupDesc:    group.GroupDesc,\n\t\t\t\tGroupExtDesc: group.GroupExtDesc,\n\t\t\t\tIsReadOnly:   true,\n\t\t\t\tVarInfoList:  varList,\n\t\t\t}\n\n\t\t\tsubGroupList = append(subGroupList, pGroupVariableInfo)\n\t\t}\n\n\t\tgroupConf.SubGroupList = subGroupList\n\t\tgroupConfList = append(groupConfList, &groupConf)\n\t}\n\n\treturn groupConfList, nil\n}\n\nfunc (v *VariableApplicationService) UpdateProjectVariable(ctx context.Context, req project_memory.UpdateProjectVariableReq) (*project_memory.UpdateProjectVariableResp, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tif req.UserID == 0 {\n\t\treq.UserID = *uid\n\t}\n\n\tprojectID, err := strconv.ParseInt(req.ProjectID, 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcheckResult, err := crosspermission.DefaultSVC().CheckAuthz(ctx, &permission.CheckAuthzData{\n\t\tOperatorID: *uid,\n\t\tResourceIdentifier: []*permission.ResourceIdentifier{\n\t\t\t{\n\t\t\t\tType:   permission.ResourceTypeApp,\n\t\t\t\tID:     []int64{projectID},\n\t\t\t\tAction: permission.ActionRead,\n\t\t\t},\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif checkResult.Decision != permission.Allow {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"no permission\"))\n\t}\n\n\tsysVars := v.DomainSVC.GetSysVariableConf(ctx).ToVariables()\n\n\tsysVarsKeys2Meta := make(map[string]*entity.VariableMeta)\n\tfor _, v := range sysVars.Variables {\n\t\tsysVarsKeys2Meta[v.Keyword] = v\n\t}\n\n\tlist := make([]*project_memory.Variable, 0, len(req.VariableList))\n\tfor _, v := range req.VariableList {\n\t\tif v.Channel == project_memory.VariableChannel_System &&\n\t\t\tsysVarsKeys2Meta[v.Keyword] == nil {\n\t\t\tlogs.CtxInfof(ctx, \"sys variable not found, keyword: %s\", v.Keyword)\n\t\t\tcontinue\n\t\t}\n\n\t\tlist = append(list, v)\n\t}\n\n\tkey2Var := make(map[string]*project_memory.Variable)\n\tfor _, v := range req.VariableList {\n\t\tkey2Var[v.Keyword] = v\n\t}\n\n\tfor _, v := range sysVars.Variables {\n\t\tif key2Var[v.Keyword] == nil {\n\t\t\tlist = append(list, v.ToProjectVariable())\n\t\t} else {\n\t\t\tif key2Var[v.Keyword].DefaultValue != v.DefaultValue ||\n\t\t\t\tkey2Var[v.Keyword].VariableType != v.VariableType {\n\t\t\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"can not update system variable\"))\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, vv := range list {\n\t\tif vv.Channel == project_memory.VariableChannel_APP {\n\t\t\te := entity.NewVariableMeta(vv)\n\t\t\terr := e.CheckSchema(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\n\t_, err = v.DomainSVC.UpsertProjectMeta(ctx, req.ProjectID, \"\", req.UserID, entity.NewVariables(list))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &project_memory.UpdateProjectVariableResp{\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t}, nil\n}\n\nfunc (v *VariableApplicationService) GetVariableMeta(ctx context.Context, req *project_memory.GetMemoryVariableMetaReq) (*project_memory.GetMemoryVariableMetaResp, error) {\n\tvars, err := v.DomainSVC.GetVariableMeta(ctx, req.ConnectorID, req.ConnectorType, req.GetVersion())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvars.RemoveDisableVariable()\n\n\treturn &project_memory.GetMemoryVariableMetaResp{\n\t\tVariableMap: vars.GroupByChannel(),\n\t}, nil\n}\n\nfunc (v *VariableApplicationService) DeleteVariableInstance(ctx context.Context, req *kvmemory.DelProfileMemoryRequest) (*kvmemory.DelProfileMemoryResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tbizType := ternary.IFElse(req.BotID == 0, project_memory.VariableConnector_Project, project_memory.VariableConnector_Bot)\n\tbizID := ternary.IFElse(req.BotID == 0, req.ProjectID, fmt.Sprintf(\"%d\", req.BotID))\n\tconnectId := ternary.IFElse(req.ConnectorID == nil, consts.CozeConnectorID, req.GetConnectorID())\n\n\te := entity.NewUserVariableMeta(&model.UserVariableMeta{\n\t\tBizType:      bizType,\n\t\tBizID:        bizID,\n\t\tVersion:      \"\",\n\t\tConnectorID:  connectId,\n\t\tConnectorUID: fmt.Sprintf(\"%d\", *uid),\n\t})\n\n\terr := v.DomainSVC.DeleteVariableInstance(ctx, e, req.Keywords)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &kvmemory.DelProfileMemoryResponse{}, nil\n}\n\nfunc (v *VariableApplicationService) GetPlayGroundMemory(ctx context.Context, req *kvmemory.GetProfileMemoryRequest) (*kvmemory.GetProfileMemoryResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tisProjectKV := req.ProjectID != nil\n\tversionStr := strconv.FormatInt(req.GetProjectVersion(), 10)\n\tif req.GetProjectVersion() == 0 {\n\t\tversionStr = \"\"\n\t}\n\n\tbizType := ternary.IFElse(isProjectKV, project_memory.VariableConnector_Project, project_memory.VariableConnector_Bot)\n\tbizID := ternary.IFElse(isProjectKV, req.GetProjectID(), fmt.Sprintf(\"%d\", req.BotID))\n\tversion := ternary.IFElse(isProjectKV, versionStr, \"\")\n\tconnectId := ternary.IFElse(req.ConnectorID == nil, consts.CozeConnectorID, req.GetConnectorID())\n\tconnectorUID := ternary.IFElse(req.UserID == 0, *uid, req.UserID)\n\n\tresourceID, err := strconv.ParseInt(bizID, 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = v.checkPermission(ctx, uid, isProjectKV, resourceID, permission.ActionRead)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\te := entity.NewUserVariableMeta(&model.UserVariableMeta{\n\t\tBizType:      bizType,\n\t\tBizID:        bizID,\n\t\tVersion:      version,\n\t\tConnectorID:  connectId,\n\t\tConnectorUID: fmt.Sprintf(\"%d\", connectorUID),\n\t})\n\n\tres, err := v.DomainSVC.GetVariableChannelInstance(ctx, e, req.Keywords, req.VariableChannel)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &kvmemory.GetProfileMemoryResponse{\n\t\tMemories: res,\n\t}, nil\n}\n\nfunc (v *VariableApplicationService) checkPermission(ctx context.Context, uid *int64, isProjectKV bool, resourceID int64, action permission.Action) error {\n\tcheckResult, err := crosspermission.DefaultSVC().CheckAuthz(ctx, &permission.CheckAuthzData{\n\t\tOperatorID: *uid,\n\t\tResourceIdentifier: []*permission.ResourceIdentifier{\n\t\t\t{\n\t\t\t\tType: func() permission.ResourceType {\n\t\t\t\t\tif isProjectKV {\n\t\t\t\t\t\treturn permission.ResourceTypeApp\n\t\t\t\t\t}\n\t\t\t\t\treturn permission.ResourceTypeAgent\n\t\t\t\t}(),\n\t\t\t\tID:     []int64{resourceID},\n\t\t\t\tAction: action,\n\t\t\t},\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif checkResult.Decision != permission.Allow {\n\t\treturn errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"no permission\"))\n\t}\n\treturn nil\n}\n\nfunc (v *VariableApplicationService) SetVariableInstance(ctx context.Context, req *kvmemory.SetKvMemoryReq) (*kvmemory.SetKvMemoryResp, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tisProjectKV := req.ProjectID != nil\n\tversionStr := strconv.FormatInt(req.GetProjectVersion(), 10)\n\tif req.GetProjectVersion() == 0 {\n\t\tversionStr = \"\"\n\t}\n\n\tbizType := ternary.IFElse(isProjectKV, project_memory.VariableConnector_Project, project_memory.VariableConnector_Bot)\n\tbizID := ternary.IFElse(isProjectKV, req.GetProjectID(), fmt.Sprintf(\"%d\", req.BotID))\n\tversion := ternary.IFElse(isProjectKV, versionStr, \"\")\n\tconnectId := ternary.IFElse(req.ConnectorID == nil, consts.CozeConnectorID, req.GetConnectorID())\n\tconnectorUID := ternary.IFElse(req.GetUserID() == 0, *uid, req.GetUserID())\n\n\tresourceID, err := strconv.ParseInt(bizID, 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = v.checkPermission(ctx, uid, isProjectKV, resourceID, permission.ActionRead)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\te := entity.NewUserVariableMeta(&model.UserVariableMeta{\n\t\tBizType:      bizType,\n\t\tBizID:        bizID,\n\t\tVersion:      version,\n\t\tConnectorID:  connectId,\n\t\tConnectorUID: fmt.Sprintf(\"%d\", connectorUID),\n\t})\n\n\texitKeys, err := v.DomainSVC.SetVariableInstance(ctx, e, req.Data)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\texitKeysStr, _ := json.Marshal(exitKeys)\n\n\treturn &kvmemory.SetKvMemoryResp{\n\t\tBaseResp: &base.BaseResp{\n\t\t\tExtra: map[string]string{\"existKeys\": string(exitKeysStr)},\n\t\t},\n\t}, nil\n}\n"
  },
  {
    "path": "backend/application/modelmgr/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelmgr\n\nimport (\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n)\n\nfunc InitService(tosClient storage.Storage) *ModelmgrApplicationService {\n\tModelmgrApplicationSVC = &ModelmgrApplicationService{tosClient}\n\treturn ModelmgrApplicationSVC\n}\n"
  },
  {
    "path": "backend/application/modelmgr/modelmgr.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelmgr\n\nimport (\n\t\"context\"\n\t\"time\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/i18n\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ternary\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\ntype ModelmgrApplicationService struct {\n\tTosClient storage.Storage\n}\n\nvar ModelmgrApplicationSVC = &ModelmgrApplicationService{}\n\nconst (\n\tdeprecatedModelTimeAfterDelete = 7 * 24 * time.Hour\n)\n\nfunc (m *ModelmgrApplicationService) GetModelList(ctx context.Context, _ *developer_api.GetTypeListRequest) (\n\tresp *developer_api.GetTypeListResponse, err error,\n) {\n\n\tmList, err := config.ModelConf().GetAllModelList(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfilteredModels := make([]*modelmgr.Model, 0, len(mList))\n\tfor _, mm := range mList {\n\t\tif mm.Status == config.ModelStatus_StatusDeleted {\n\t\t\tdeleteAt := time.Unix(mm.DeleteAtMs/1000, 0)\n\t\t\tif time.Since(deleteAt) > deprecatedModelTimeAfterDelete {\n\t\t\t\tlogs.CtxDebugf(ctx, \"ignore deprecated model, mm: %v\", conv.DebugJsonToStr(mm))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tfilteredModels = append(filteredModels, mm)\n\t}\n\n\tlocale := i18n.GetLocale(ctx)\n\tmodelList, err := slices.TransformWithErrorCheck(filteredModels, func(mm *modelmgr.Model) (*developer_api.Model, error) {\n\t\treturn modelDo2To(mm, locale)\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &developer_api.GetTypeListResponse{\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t\tData: &developer_api.GetTypeListData{\n\t\t\tModelList: modelList,\n\t\t},\n\t}, nil\n}\n\nfunc modelDo2To(m *modelmgr.Model, locale i18n.Locale) (*developer_api.Model, error) {\n\tmodel := m.Model\n\tdesc := \"\"\n\tif model.DisplayInfo.Description != nil {\n\t\tdesc = ternary.IFElse(locale == i18n.LocaleZH, model.DisplayInfo.Description.ZhCn, model.DisplayInfo.Description.EnUs)\n\t}\n\n\tmodelStatusDetails := &developer_api.ModelStatusDetails{}\n\tif model.Status == config.ModelStatus_StatusDeleted {\n\t\tmodelStatusDetails.IsUpcomingDeprecated = true\n\t\thideDate := time.Unix(model.DeleteAtMs/1000, 0).Add(deprecatedModelTimeAfterDelete)\n\t\tmodelStatusDetails.DeprecatedDate = hideDate.Format(time.DateTime)\n\t}\n\n\treturn &developer_api.Model{\n\t\tName:             model.DisplayInfo.Name,\n\t\tModelType:        model.ID,\n\t\tModelClass:       model.Provider.ModelClass,\n\t\tModelIcon:        model.Provider.IconURL,\n\t\tModelInputPrice:  0,\n\t\tModelOutputPrice: 0,\n\t\tModelQuota: &developer_api.ModelQuota{\n\t\t\tTokenLimit: int32(model.DisplayInfo.MaxTokens),\n\t\t\tTokenResp:  int32(model.DisplayInfo.OutputTokens),\n\t\t\t// TokenSystem:       0,\n\t\t\t// TokenUserIn:       0,\n\t\t\t// TokenToolsIn:      0,\n\t\t\t// TokenToolsOut:     0,\n\t\t\t// TokenData:         0,\n\t\t\t// TokenHistory:      0,\n\t\t\t// TokenCutSwitch:    false,\n\t\t\tPriceIn:           0,\n\t\t\tPriceOut:          0,\n\t\t\tSystemPromptLimit: nil,\n\t\t},\n\t\tModelName:      model.DisplayInfo.Name,\n\t\tModelClassName: model.Provider.ModelClass.String(),\n\t\tIsOffline:      false,\n\t\tModelParams:    model.Parameters,\n\t\tModelDesc: []*developer_api.ModelDescGroup{\n\t\t\t{\n\t\t\t\tGroupName: \"Description\",\n\t\t\t\tDesc:      []string{desc},\n\t\t\t},\n\t\t},\n\t\tFuncConfig:     nil,\n\t\tEndpointName:   nil,\n\t\tModelTagList:   nil,\n\t\tIsUpRequired:   nil,\n\t\tModelBriefDesc: desc,\n\t\tModelSeries: &developer_api.ModelSeriesInfo{ // TODO: Replace with real configuration\n\t\t\tSeriesName: \"热门模型\",\n\t\t},\n\t\tModelStatusDetails: modelStatusDetails,\n\t\tModelAbility:       model.Capability,\n\t}, nil\n}\n"
  },
  {
    "path": "backend/application/openauth/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage openauth\n\nimport (\n\t\"gorm.io/gorm\"\n\n\topenapiauth2 \"github.com/coze-dev/coze-studio/backend/domain/openauth/openapiauth\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n)\n\nvar (\n\topenapiAuthDomainSVC openapiauth2.APIAuth\n)\n\nfunc InitService(db *gorm.DB, idGenSVC idgen.IDGenerator) *OpenAuthApplicationService {\n\topenapiAuthDomainSVC = openapiauth2.NewService(&openapiauth2.Components{\n\t\tIDGen: idGenSVC,\n\t\tDB:    db,\n\t})\n\n\tOpenAuthApplication.OpenAPIDomainSVC = openapiAuthDomainSVC\n\n\treturn OpenAuthApplication\n}\n"
  },
  {
    "path": "backend/application/openauth/openapiauth.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage openauth\n\nimport (\n\t\"context\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/pkg/errors\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_open_api\"\n\topenapimodel \"github.com/coze-dev/coze-studio/backend/api/model/permission/openapiauth\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\topenapi \"github.com/coze-dev/coze-studio/backend/domain/openauth/openapiauth\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/openauth/openapiauth/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\ntype OpenAuthApplicationService struct {\n\tOpenAPIDomainSVC openapi.APIAuth\n}\n\nvar OpenAuthApplication = &OpenAuthApplicationService{}\n\nfunc (s *OpenAuthApplicationService) GetPersonalAccessTokenAndPermission(ctx context.Context, req *openapimodel.GetPersonalAccessTokenAndPermissionRequest) (*openapimodel.GetPersonalAccessTokenAndPermissionResponse, error) {\n\n\tresp := new(openapimodel.GetPersonalAccessTokenAndPermissionResponse)\n\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\n\tappReq := &entity.GetApiKey{\n\t\tID: req.ID,\n\t}\n\tapiKeyResp, err := openapiAuthDomainSVC.Get(ctx, appReq)\n\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplicationService.GetPersonalAccessTokenAndPermission failed, err=%v\", err)\n\t\treturn resp, errors.New(\"GetPersonalAccessTokenAndPermission failed\")\n\t}\n\tif apiKeyResp == nil {\n\t\treturn resp, errors.New(\"GetPersonalAccessTokenAndPermission failed\")\n\t}\n\n\tif apiKeyResp.UserID != *userID {\n\t\treturn resp, errors.New(\"permission not match\")\n\t}\n\tresp.Data = &openapimodel.GetPersonalAccessTokenAndPermissionResponseData{\n\t\tPersonalAccessToken: &openapimodel.PersonalAccessToken{\n\t\t\tID:        apiKeyResp.ID,\n\t\t\tName:      apiKeyResp.Name,\n\t\t\tExpireAt:  apiKeyResp.ExpiredAt,\n\t\t\tCreatedAt: apiKeyResp.CreatedAt,\n\t\t\tUpdatedAt: apiKeyResp.UpdatedAt,\n\t\t},\n\t}\n\treturn resp, nil\n}\n\nfunc (s *OpenAuthApplicationService) CreatePersonalAccessToken(ctx context.Context, req *openapimodel.CreatePersonalAccessTokenAndPermissionRequest) (*openapimodel.CreatePersonalAccessTokenAndPermissionResponse, error) {\n\tresp := new(openapimodel.CreatePersonalAccessTokenAndPermissionResponse)\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\n\tappReq := &entity.CreateApiKey{\n\t\tName:   req.Name,\n\t\tExpire: req.ExpireAt,\n\t\tUserID: *userID,\n\t\tAkType: entity.AkTypeCustomer,\n\t}\n\n\tif req.DurationDay == \"customize\" {\n\t\tappReq.Expire = req.ExpireAt\n\t} else {\n\t\texpireDay, err := strconv.ParseInt(req.DurationDay, 10, 64)\n\t\tif err != nil {\n\t\t\treturn resp, errors.New(\"invalid expireDay\")\n\t\t}\n\t\tappReq.Expire = time.Now().Add(time.Duration(expireDay) * time.Hour * 24).Unix()\n\t}\n\n\tapiKeyResp, err := openapiAuthDomainSVC.Create(ctx, appReq)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplicationService.CreatePersonalAccessToken failed, err=%v\", err)\n\t\treturn resp, errors.New(\"CreatePersonalAccessToken failed\")\n\t}\n\tresp.Data = &openapimodel.CreatePersonalAccessTokenAndPermissionResponseData{\n\t\tPersonalAccessToken: &openapimodel.PersonalAccessToken{\n\t\t\tID:       apiKeyResp.ID,\n\t\t\tName:     apiKeyResp.Name,\n\t\t\tExpireAt: apiKeyResp.ExpiredAt,\n\n\t\t\tCreatedAt: apiKeyResp.CreatedAt,\n\t\t\tUpdatedAt: apiKeyResp.UpdatedAt,\n\t\t},\n\t\tToken: apiKeyResp.ApiKey,\n\t}\n\treturn resp, nil\n}\n\nfunc (s *OpenAuthApplicationService) ImpersonateCozeUserAccessToken(ctx context.Context, req *bot_open_api.ImpersonateCozeUserRequest) (*bot_open_api.ImpersonateCozeUserResponse, error) {\n\tresp := new(bot_open_api.ImpersonateCozeUserResponse)\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\n\texpiredSecond := time.Now().Add(time.Duration(time.Second * 60 * 15)).Unix()\n\n\tappReq := &entity.CreateApiKey{\n\t\tUserID: *userID,\n\t\tAkType: entity.AkTypeTemporary,\n\t\tExpire: expiredSecond,\n\t\tName:   \"temporary access token\",\n\t}\n\n\tapiKeyResp, err := openapiAuthDomainSVC.Create(ctx, appReq)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplicationService.CreatePersonalAccessToken failed, err=%v\", err)\n\t\treturn resp, errors.New(\"CreatePersonalAccessToken failed\")\n\t}\n\tresp.Data = &bot_open_api.ImpersonateCozeUserResponseData{\n\t\tAccessToken: apiKeyResp.ApiKey,\n\t\tExpiresIn:   expiredSecond,\n\t\tTokenType:   \"Bearer\",\n\t}\n\treturn resp, nil\n}\n\nfunc (s *OpenAuthApplicationService) ListPersonalAccessTokens(ctx context.Context, req *openapimodel.ListPersonalAccessTokensRequest) (*openapimodel.ListPersonalAccessTokensResponse, error) {\n\n\tresp := new(openapimodel.ListPersonalAccessTokensResponse)\n\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tappReq := &entity.ListApiKey{\n\t\tUserID: *userID,\n\t\tPage:   *req.Page,\n\t\tLimit:  *req.Size,\n\t}\n\n\tapiKeyResp, err := openapiAuthDomainSVC.List(ctx, appReq)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplicationService.ListPersonalAccessTokens failed, err=%v\", err)\n\t\treturn resp, errors.New(\"ListPersonalAccessTokens failed\")\n\t}\n\n\tif apiKeyResp == nil {\n\t\treturn resp, nil\n\t}\n\tresp.Data = &openapimodel.ListPersonalAccessTokensResponseData{\n\t\tHasMore: apiKeyResp.HasMore,\n\t\tPersonalAccessTokens: slices.Transform(apiKeyResp.ApiKeys, func(a *entity.ApiKey) *openapimodel.PersonalAccessTokenWithCreatorInfo {\n\t\t\tlastUsedAt := a.LastUsedAt\n\t\t\tif lastUsedAt == 0 {\n\t\t\t\tlastUsedAt = -1\n\t\t\t}\n\t\t\treturn &openapimodel.PersonalAccessTokenWithCreatorInfo{\n\t\t\t\tID:         a.ID,\n\t\t\t\tName:       a.Name,\n\t\t\t\tExpireAt:   a.ExpiredAt,\n\t\t\t\tCreatedAt:  a.CreatedAt,\n\t\t\t\tUpdatedAt:  a.UpdatedAt,\n\t\t\t\tLastUsedAt: lastUsedAt,\n\t\t\t}\n\t\t}),\n\t}\n\treturn resp, nil\n}\n\nfunc (s *OpenAuthApplicationService) DeletePersonalAccessTokenAndPermission(ctx context.Context, req *openapimodel.DeletePersonalAccessTokenAndPermissionRequest) (*openapimodel.DeletePersonalAccessTokenAndPermissionResponse, error) {\n\tresp := new(openapimodel.DeletePersonalAccessTokenAndPermissionResponse)\n\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\n\tappReq := &entity.DeleteApiKey{\n\t\tID:     req.ID,\n\t\tUserID: *userID,\n\t}\n\terr := openapiAuthDomainSVC.Delete(ctx, appReq)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplicationService.DeletePersonalAccessTokenAndPermission failed, err=%v\", err)\n\t\treturn resp, errors.New(\"DeletePersonalAccessTokenAndPermission failed\")\n\t}\n\treturn resp, nil\n}\n\nfunc (s *OpenAuthApplicationService) UpdatePersonalAccessTokenAndPermission(ctx context.Context, req *openapimodel.UpdatePersonalAccessTokenAndPermissionRequest) (*openapimodel.UpdatePersonalAccessTokenAndPermissionResponse, error) {\n\tresp := new(openapimodel.UpdatePersonalAccessTokenAndPermissionResponse)\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\n\tupErr := openapiAuthDomainSVC.Save(ctx, &entity.SaveMeta{\n\t\tID:     req.ID,\n\t\tName:   ptr.Of(req.Name),\n\t\tUserID: *userID,\n\t})\n\n\treturn resp, upErr\n}\n\nfunc (s *OpenAuthApplicationService) UpdateLastUsedAt(ctx context.Context, apiID int64, userID int64) error {\n\tupErr := openapiAuthDomainSVC.Save(ctx, &entity.SaveMeta{\n\t\tID:         apiID,\n\t\tLastUsedAt: ptr.Of(time.Now().Unix()),\n\t\tUserID:     userID,\n\t})\n\treturn upErr\n}\n\nfunc (s *OpenAuthApplicationService) CheckPermission(ctx context.Context, token string) (*entity.ApiKey, error) {\n\tappReq := &entity.CheckPermission{\n\t\tApiKey: token,\n\t}\n\tapiKey, err := openapiAuthDomainSVC.CheckPermission(ctx, appReq)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"OpenAuthApplicationService.CheckPermission failed, err=%v\", err)\n\t\treturn nil, errors.New(\"CheckPermission failed\")\n\t}\n\treturn apiKey, nil\n}\n"
  },
  {
    "path": "backend/application/permission/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage permission\n\nimport (\n\t\"github.com/coze-dev/coze-studio/backend/domain/permission\"\n)\n\ntype ServiceComponents struct {\n}\n\ntype PermissionApplicationService struct {\n\tDomainSVC permission.Permission\n}\n\nfunc InitService(components *ServiceComponents) *PermissionApplicationService {\n\tdomainSVC := permission.NewService()\n\n\treturn &PermissionApplicationService{\n\t\tDomainSVC: domainSVC,\n\t}\n}\n"
  },
  {
    "path": "backend/application/plugin/api_management.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage plugin\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/bytedance/sonic\"\n\t\"github.com/getkin/kin-openapi/openapi3\"\n\tgonanoid \"github.com/matoous/go-nanoid\"\n\n\tpluginAPI \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop\"\n\tcommon \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n\tresCommon \"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/convert\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/convert/api\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/dto\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/repository\"\n\tsearchEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc (p *PluginApplicationService) GetPluginAPIs(ctx context.Context, req *pluginAPI.GetPluginAPIsRequest) (resp *pluginAPI.GetPluginAPIsResponse, err error) {\n\tpl, err := p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateGetPluginAPIsRequest failed\")\n\t}\n\n\tvar (\n\t\tdraftTools []*entity.ToolInfo\n\t\ttotal      int64\n\t)\n\tif len(req.APIIds) > 0 {\n\t\ttoolIDs := make([]int64, 0, len(req.APIIds))\n\t\tfor _, id := range req.APIIds {\n\t\t\ttoolID, pErr := strconv.ParseInt(id, 10, 64)\n\t\t\tif pErr != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid tool id '%s'\", id)\n\t\t\t}\n\t\t\ttoolIDs = append(toolIDs, toolID)\n\t\t}\n\n\t\tdraftTools, err = p.toolRepo.MGetDraftTools(ctx, toolIDs)\n\t\tif err != nil {\n\t\t\treturn nil, errorx.Wrapf(err, \"MGetDraftTools failed, toolIDs=%v\", toolIDs)\n\t\t}\n\n\t\ttotal = int64(len(draftTools))\n\n\t} else {\n\t\tpageInfo := dto.PageInfo{\n\t\t\tPage:       int(req.Page),\n\t\t\tSize:       int(req.Size),\n\t\t\tSortBy:     ptr.Of(dto.SortByCreatedAt),\n\t\t\tOrderByACS: ptr.Of(false),\n\t\t}\n\t\tdraftTools, total, err = p.toolRepo.ListPluginDraftTools(ctx, req.PluginID, pageInfo)\n\t\tif err != nil {\n\t\t\treturn nil, errorx.Wrapf(err, \"ListPluginDraftTools failed, pluginID=%d\", req.PluginID)\n\t\t}\n\t}\n\n\tif len(draftTools) == 0 {\n\t\treturn &pluginAPI.GetPluginAPIsResponse{\n\t\t\tAPIInfo: make([]*common.PluginAPIInfo, 0),\n\t\t\tTotal:   0,\n\t\t}, nil\n\t}\n\n\tdraftToolIDs := slices.Transform(draftTools, func(tl *entity.ToolInfo) int64 {\n\t\treturn tl.ID\n\t})\n\tonlineStatus, err := p.getToolOnlineStatus(ctx, draftToolIDs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tapis := make([]*common.PluginAPIInfo, 0, len(draftTools))\n\tfor _, tool := range draftTools {\n\t\tmethod, ok := convert.ToThriftAPIMethod(tool.GetMethod())\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"invalid method '%s'\", tool.GetMethod())\n\t\t}\n\t\treqParams, err := tool.ToReqAPIParameter()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\trespParams, err := tool.ToRespAPIParameter()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tvar apiExtend *common.APIExtend\n\t\tif tmp, ok := tool.Operation.Extensions[consts.APISchemaExtendAuthMode].(string); ok {\n\t\t\tif mode, ok := convert.ToThriftAPIAuthMode(consts.ToolAuthMode(tmp)); ok {\n\t\t\t\tapiExtend = &common.APIExtend{\n\t\t\t\t\tAuthMode: mode,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tapi := &common.PluginAPIInfo{\n\t\t\tAPIID:       strconv.FormatInt(tool.ID, 10),\n\t\t\tCreateTime:  strconv.FormatInt(tool.CreatedAt/1000, 10),\n\t\t\tDebugStatus: tool.GetDebugStatus(),\n\t\t\tDesc:        tool.GetDesc(),\n\t\t\tDisabled: func() bool {\n\t\t\t\treturn tool.IsDeactivated()\n\t\t\t}(),\n\t\t\tMethod:         method,\n\t\t\tName:           tool.GetName(),\n\t\t\tOnlineStatus:   onlineStatus[tool.ID],\n\t\t\tPath:           tool.GetSubURL(),\n\t\t\tPluginID:       strconv.FormatInt(tool.PluginID, 10),\n\t\t\tRequestParams:  reqParams,\n\t\t\tResponseParams: respParams,\n\t\t\tStatisticData:  common.NewPluginStatisticData(),\n\t\t\tAPIExtend:      apiExtend,\n\t\t}\n\t\texample := pl.GetToolExample(ctx, tool.GetName())\n\t\tif example != nil {\n\t\t\tapi.DebugExample = &common.DebugExample{\n\t\t\t\tReqExample:  example.RequestExample,\n\t\t\t\tRespExample: example.ResponseExample,\n\t\t\t}\n\t\t\tapi.DebugExampleStatus = common.DebugExampleStatus_Enable\n\t\t}\n\n\t\tapis = append(apis, api)\n\t}\n\n\tresp = &pluginAPI.GetPluginAPIsResponse{\n\t\tAPIInfo: apis,\n\t\tTotal:   int32(total),\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) CreateAPI(ctx context.Context, req *pluginAPI.CreateAPIRequest) (resp *pluginAPI.CreateAPIResponse, err error) {\n\t_, err = p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateCreateAPIRequest failed\")\n\t}\n\n\tdefaultSubURL := gonanoid.MustID(6)\n\n\ttool := &entity.ToolInfo{\n\t\tPluginID:        req.PluginID,\n\t\tActivatedStatus: ptr.Of(consts.ActivateTool),\n\t\tDebugStatus:     ptr.Of(common.APIDebugStatus_DebugWaiting),\n\t\tSubURL:          ptr.Of(\"/\" + defaultSubURL),\n\t\tMethod:          ptr.Of(http.MethodGet),\n\t\tOperation: model.NewOpenapi3Operation(&openapi3.Operation{\n\t\t\tSummary:     req.Desc,\n\t\t\tOperationID: req.Name,\n\t\t\tParameters:  []*openapi3.ParameterRef{},\n\t\t\tRequestBody: model.DefaultOpenapi3RequestBody(),\n\t\t\tResponses:   model.DefaultOpenapi3Responses(),\n\t\t\tExtensions:  map[string]any{},\n\t\t}),\n\t}\n\n\ttoolID, err := p.toolRepo.CreateDraftTool(ctx, tool)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"CreateDraftTool failed, pluginID=%d\", req.PluginID)\n\t}\n\n\tresp = &pluginAPI.CreateAPIResponse{\n\t\tAPIID: strconv.FormatInt(toolID, 10),\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) UpdateAPI(ctx context.Context, req *pluginAPI.UpdateAPIRequest) (resp *pluginAPI.UpdateAPIResponse, err error) {\n\t_, err = p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateUpdateAPIRequest failed\")\n\t}\n\n\top, err := api.APIParamsToOpenapiOperation(req.RequestParams, req.ResponseParams)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar method *string\n\tif m, ok := convert.ToHTTPMethod(req.GetMethod()); ok {\n\t\tmethod = &m\n\t}\n\n\tupdateReq := &dto.UpdateDraftToolRequest{\n\t\tPluginID:     req.PluginID,\n\t\tToolID:       req.APIID,\n\t\tName:         req.Name,\n\t\tDesc:         req.Desc,\n\t\tSubURL:       req.Path,\n\t\tMethod:       method,\n\t\tParameters:   op.Parameters,\n\t\tRequestBody:  op.RequestBody,\n\t\tResponses:    op.Responses,\n\t\tDisabled:     req.Disabled,\n\t\tSaveExample:  req.SaveExample,\n\t\tDebugExample: req.DebugExample,\n\t\tAPIExtend:    req.APIExtend,\n\t}\n\terr = p.DomainSVC.UpdateDraftTool(ctx, updateReq)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"UpdateDraftTool failed, pluginID=%d, toolID=%d\", updateReq.PluginID, updateReq.ToolID)\n\t}\n\n\terr = p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType:      resCommon.ResType_Plugin,\n\t\t\tResID:        req.PluginID,\n\t\t\tUpdateTimeMS: ptr.Of(time.Now().UnixMilli()),\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish resource '%d' failed, err=%v\", req.PluginID, err)\n\t}\n\n\tresp = &pluginAPI.UpdateAPIResponse{}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) DeleteAPI(ctx context.Context, req *pluginAPI.DeleteAPIRequest) (resp *pluginAPI.DeleteAPIResponse, err error) {\n\t_, err = p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateDeleteAPIRequest failed\")\n\t}\n\n\terr = p.toolRepo.DeleteDraftTool(ctx, req.APIID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"DeleteDraftTool failed, toolID=%d\", req.APIID)\n\t}\n\n\tresp = &pluginAPI.DeleteAPIResponse{}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) BatchCreateAPI(ctx context.Context, req *pluginAPI.BatchCreateAPIRequest) (resp *pluginAPI.BatchCreateAPIResponse, err error) {\n\t_, err = p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateBatchCreateAPIRequest failed\")\n\t}\n\n\tloader := openapi3.NewLoader()\n\tdoc, err := loader.LoadFromData([]byte(req.Openapi))\n\tif err != nil {\n\t\treturn nil, errorx.New(errno.ErrPluginInvalidOpenapi3Doc, errorx.KV(errno.PluginMsgKey, err.Error()))\n\t}\n\n\tres, err := p.DomainSVC.CreateDraftToolsWithCode(ctx, &dto.CreateDraftToolsWithCodeRequest{\n\t\tPluginID:          req.PluginID,\n\t\tOpenapiDoc:        ptr.Of(model.Openapi3T(*doc)),\n\t\tConflictAndUpdate: req.ReplaceSamePaths,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"CreateDraftToolsWithCode failed, pluginID=%d\", req.PluginID)\n\t}\n\n\tduplicated := slices.Transform(res.DuplicatedTools, func(e dto.UniqueToolAPI) *common.PluginAPIInfo {\n\t\tmethod, _ := convert.ToThriftAPIMethod(e.Method)\n\t\treturn &common.PluginAPIInfo{\n\t\t\tPath:   e.SubURL,\n\t\t\tMethod: method,\n\t\t}\n\t})\n\n\tresp = &pluginAPI.BatchCreateAPIResponse{\n\t\tPathsDuplicated: duplicated,\n\t}\n\n\tif len(duplicated) > 0 {\n\t\tresp.Code = errno.ErrPluginDuplicatedTool\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) GetUpdatedAPIs(ctx context.Context, req *pluginAPI.GetUpdatedAPIsRequest) (resp *pluginAPI.GetUpdatedAPIsResponse, err error) {\n\t_, err = p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateGetUpdatedAPIsRequest failed\")\n\t}\n\n\tdraftTools, err := p.toolRepo.GetPluginAllDraftTools(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetPluginAllDraftTools failed, pluginID=%d\", req.PluginID)\n\t}\n\tonlineTools, err := p.toolRepo.GetPluginAllOnlineTools(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetPluginAllOnlineTools failed, pluginID=%d\", req.PluginID)\n\t}\n\n\tvar updatedToolName, createdToolName, delToolName []string\n\n\tdraftMap := slices.ToMap(draftTools, func(e *entity.ToolInfo) (string, *entity.ToolInfo) {\n\t\treturn e.GetName(), e\n\t})\n\tonlineMap := slices.ToMap(onlineTools, func(e *entity.ToolInfo) (string, *entity.ToolInfo) {\n\t\treturn e.GetName(), e\n\t})\n\n\tfor name := range draftMap {\n\t\tif _, ok := onlineMap[name]; !ok {\n\t\t\tcreatedToolName = append(createdToolName, name)\n\t\t}\n\t}\n\n\tfor name, ot := range onlineMap {\n\t\tdt, ok := draftMap[name]\n\t\tif !ok {\n\t\t\tdelToolName = append(delToolName, name)\n\t\t\tcontinue\n\t\t}\n\n\t\tif ot.GetMethod() != dt.GetMethod() ||\n\t\t\tot.GetSubURL() != dt.GetSubURL() ||\n\t\t\tot.GetDesc() != dt.GetDesc() {\n\t\t\tupdatedToolName = append(updatedToolName, name)\n\t\t\tcontinue\n\t\t}\n\n\t\tos, err := sonic.MarshalString(ot.Operation)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"marshal online tool operation failed, toolID=%d, err=%v\", ot.ID, err)\n\n\t\t\tupdatedToolName = append(updatedToolName, name)\n\t\t\tcontinue\n\t\t}\n\t\tds, err := sonic.MarshalString(dt.Operation)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"marshal draft tool operation failed, toolID=%d, err=%v\", ot.ID, err)\n\n\t\t\tupdatedToolName = append(updatedToolName, name)\n\t\t\tcontinue\n\t\t}\n\n\t\tif os != ds {\n\t\t\tupdatedToolName = append(updatedToolName, name)\n\t\t}\n\t}\n\n\tresp = &pluginAPI.GetUpdatedAPIsResponse{\n\t\tUpdatedAPINames: updatedToolName,\n\t\tCreatedAPINames: createdToolName,\n\t\tDeletedAPINames: delToolName,\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) DebugAPI(ctx context.Context, req *pluginAPI.DebugAPIRequest) (resp *pluginAPI.DebugAPIResponse, err error) {\n\t_, err = p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateDebugAPIRequest failed\")\n\t}\n\n\tconst defaultErrReason = \"internal server error\"\n\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrPluginPermissionCode, errorx.KV(errno.PluginMsgKey, \"session is required\"))\n\t}\n\n\tresp = &pluginAPI.DebugAPIResponse{\n\t\tSuccess: false,\n\t\tRawReq:  \"{}\",\n\t\tRawResp: \"{}\",\n\t\tResp:    \"{}\",\n\t}\n\n\topts := []model.ExecuteToolOpt{}\n\tswitch req.Operation {\n\tcase common.DebugOperation_Debug:\n\t\topts = append(opts, model.WithInvalidRespProcessStrategy(consts.InvalidResponseProcessStrategyOfReturnErr))\n\tcase common.DebugOperation_Parse:\n\t\topts = append(opts, model.WithAutoGenRespSchema(),\n\t\t\tmodel.WithInvalidRespProcessStrategy(consts.InvalidResponseProcessStrategyOfReturnRaw),\n\t\t)\n\t}\n\n\tres, err := p.DomainSVC.ExecuteTool(ctx, &model.ExecuteToolRequest{\n\t\tUserID:          conv.Int64ToStr(*userID),\n\t\tPluginID:        req.PluginID,\n\t\tToolID:          req.APIID,\n\t\tExecScene:       consts.ExecSceneOfToolDebug,\n\t\tExecDraftTool:   true,\n\t\tArgumentsInJson: req.Parameters,\n\t}, opts...)\n\tif err != nil {\n\t\tvar e errorx.StatusError\n\t\tif errors.As(err, &e) {\n\t\t\tresp.Reason = e.Msg()\n\t\t\treturn resp, nil\n\t\t}\n\n\t\tlogs.CtxErrorf(ctx, \"ExecuteTool failed, err=%v\", err)\n\t\tresp.Reason = defaultErrReason\n\n\t\treturn resp, nil\n\t}\n\n\tresp = &pluginAPI.DebugAPIResponse{\n\t\tSuccess:        true,\n\t\tResp:           res.TrimmedResp,\n\t\tRawReq:         res.Request,\n\t\tRawResp:        res.RawResp,\n\t\tResponseParams: []*common.APIParameter{},\n\t}\n\n\tif req.Operation == common.DebugOperation_Parse {\n\t\tres.Tool.Operation.Responses = res.RespSchema\n\t}\n\n\trespParams, err := res.Tool.ToRespAPIParameter()\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"ToRespAPIParameter failed, err=%v\", err)\n\t\tresp.Success = false\n\t\tresp.Reason = defaultErrReason\n\t} else {\n\t\tresp.ResponseParams = respParams\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) getToolOnlineStatus(ctx context.Context, toolIDs []int64) (map[int64]common.OnlineStatus, error) {\n\tonlineTools, err := p.toolRepo.MGetOnlineTools(ctx, toolIDs, repository.WithToolID())\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"MGetOnlineTools failed, toolIDs=%v\", toolIDs)\n\t}\n\n\tonlineStatus := make(map[int64]common.OnlineStatus, len(onlineTools))\n\tfor _, tool := range onlineTools {\n\t\tonlineStatus[tool.ID] = common.OnlineStatus_ONLINE\n\t}\n\n\treturn onlineStatus, nil\n}\n"
  },
  {
    "path": "backend/application/plugin/auth.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage plugin\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\t\"os\"\n\n\tbotOpenAPI \"github.com/coze-dev/coze-studio/backend/api/model/app/bot_open_api\"\n\tpluginAPI \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop\"\n\tcommon \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tpluginConf \"github.com/coze-dev/coze-studio/backend/domain/plugin/conf\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/dto\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/encrypt\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc (p *PluginApplicationService) GetOAuthSchema(ctx context.Context, req *pluginAPI.GetOAuthSchemaRequest) (resp *pluginAPI.GetOAuthSchemaResponse, err error) {\n\treturn &pluginAPI.GetOAuthSchemaResponse{\n\t\tOauthSchema: pluginConf.GetOAuthSchema(),\n\t}, nil\n}\n\nfunc (p *PluginApplicationService) GetOAuthStatus(ctx context.Context, req *pluginAPI.GetOAuthStatusRequest) (resp *pluginAPI.GetOAuthStatusResponse, err error) {\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrPluginPermissionCode, errorx.KV(errno.PluginMsgKey, \"session is required\"))\n\t}\n\n\tres, err := p.DomainSVC.GetOAuthStatus(ctx, *userID, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetOAuthStatus failed, pluginID=%d\", req.PluginID)\n\t}\n\tresp = &pluginAPI.GetOAuthStatusResponse{\n\t\tIsOauth: res.IsOauth,\n\t\tStatus:  res.Status,\n\t\tContent: res.OAuthURL,\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) OauthAuthorizationCode(ctx context.Context, req *botOpenAPI.OauthAuthorizationCodeReq) (resp *botOpenAPI.OauthAuthorizationCodeResp, err error) {\n\tstateStr, err := url.QueryUnescape(req.State)\n\tif err != nil {\n\t\treturn nil, errorx.WrapByCode(err, errno.ErrPluginOAuthFailed, errorx.KV(errno.PluginMsgKey, \"invalid state\"))\n\t}\n\n\tsecret := os.Getenv(encrypt.StateSecretEnv)\n\tif secret == \"\" {\n\t\tsecret = encrypt.DefaultStateSecret\n\t}\n\n\tstateBytes, err := encrypt.DecryptByAES(stateStr, secret)\n\tif err != nil {\n\t\treturn nil, errorx.WrapByCode(err, errno.ErrPluginOAuthFailed, errorx.KV(errno.PluginMsgKey, \"invalid state\"))\n\t}\n\n\tstate := &dto.OAuthState{}\n\terr = json.Unmarshal(stateBytes, state)\n\tif err != nil {\n\t\treturn nil, errorx.WrapByCode(err, errno.ErrPluginOAuthFailed, errorx.KV(errno.PluginMsgKey, \"invalid state\"))\n\t}\n\n\terr = p.DomainSVC.OAuthCode(ctx, req.Code, state)\n\tif err != nil {\n\t\treturn nil, errorx.WrapByCode(err, errno.ErrPluginOAuthFailed, errorx.KV(errno.PluginMsgKey, \"authorize failed\"))\n\t}\n\n\tresp = &botOpenAPI.OauthAuthorizationCodeResp{}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) GetQueriedOAuthPluginList(ctx context.Context, req *pluginAPI.GetQueriedOAuthPluginListRequest) (resp *pluginAPI.GetQueriedOAuthPluginListResponse, err error) {\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrPluginPermissionCode, errorx.KV(errno.PluginMsgKey, \"session is required\"))\n\t}\n\n\tstatus, err := p.DomainSVC.GetAgentPluginsOAuthStatus(ctx, *userID, req.BotID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetAgentPluginsOAuthStatus failed, userID=%d, agentID=%d\", *userID, req.BotID)\n\t}\n\n\tif len(status) == 0 {\n\t\treturn &pluginAPI.GetQueriedOAuthPluginListResponse{\n\t\t\tOauthPluginList: []*pluginAPI.OAuthPluginInfo{},\n\t\t}, nil\n\t}\n\n\toauthPluginList := make([]*pluginAPI.OAuthPluginInfo, 0, len(status))\n\tfor _, s := range status {\n\t\toauthPluginList = append(oauthPluginList, &pluginAPI.OAuthPluginInfo{\n\t\t\tPluginID:   s.PluginID,\n\t\t\tStatus:     s.Status,\n\t\t\tName:       s.PluginName,\n\t\t\tPluginIcon: s.PluginIconURL,\n\t\t})\n\t}\n\n\tresp = &pluginAPI.GetQueriedOAuthPluginListResponse{\n\t\tOauthPluginList: oauthPluginList,\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) RevokeAuthToken(ctx context.Context, req *pluginAPI.RevokeAuthTokenRequest) (resp *pluginAPI.RevokeAuthTokenResponse, err error) {\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrPluginPermissionCode, errorx.KV(errno.PluginMsgKey, \"session is required\"))\n\t}\n\n\terr = p.DomainSVC.RevokeAccessToken(ctx, &dto.AuthorizationCodeMeta{\n\t\tUserID:   conv.Int64ToStr(*userID),\n\t\tPluginID: req.PluginID,\n\t\tIsDraft:  req.GetBotID() == 0,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"RevokeAccessToken failed, pluginID=%d\", req.PluginID)\n\t}\n\n\tresp = &pluginAPI.RevokeAuthTokenResponse{}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) GetUserAuthority(ctx context.Context, req *pluginAPI.GetUserAuthorityRequest) (resp *pluginAPI.GetUserAuthorityResponse, err error) {\n\tresp = &pluginAPI.GetUserAuthorityResponse{\n\t\tData: &common.GetUserAuthorityData{\n\t\t\tCanEdit:          true,\n\t\t\tCanRead:          true,\n\t\t\tCanDelete:        true,\n\t\t\tCanDebug:         true,\n\t\t\tCanPublish:       true,\n\t\t\tCanReadChangelog: true,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n"
  },
  {
    "path": "backend/application/plugin/info.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage plugin\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/bytedance/sonic\"\n\t\"github.com/getkin/kin-openapi/openapi3\"\n\t\"gopkg.in/yaml.v3\"\n\n\tpluginAPI \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop\"\n\tcommon \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n\tresCommon \"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/convert\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/dto\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/repository\"\n\tsearchEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc (p *PluginApplicationService) GetPluginInfo(ctx context.Context, req *pluginAPI.GetPluginInfoRequest) (resp *pluginAPI.GetPluginInfoResponse, err error) {\n\tdraftPlugin, err := p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateGetPluginInfoRequest failed\")\n\t}\n\n\tmetaInfo, err := p.getPluginMetaInfo(ctx, draftPlugin)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcodeInfo, err := p.getPluginCodeInfo(ctx, draftPlugin)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t_, exist, err := p.pluginRepo.GetOnlinePlugin(ctx, req.PluginID, repository.WithPluginID())\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetOnlinePlugin failed, pluginID=%d\", req.PluginID)\n\t}\n\n\tresp = &pluginAPI.GetPluginInfoResponse{\n\t\tMetaInfo:       metaInfo,\n\t\tCodeInfo:       codeInfo,\n\t\tCreator:        common.NewCreator(),\n\t\tStatisticData:  common.NewPluginStatisticData(),\n\t\tPluginType:     draftPlugin.PluginType,\n\t\tCreationMethod: common.CreationMethod_COZE,\n\t\tPublished:      exist,\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) getPluginCodeInfo(ctx context.Context, draftPlugin *entity.PluginInfo) (*common.CodeInfo, error) {\n\ttools, err := p.toolRepo.GetPluginAllDraftTools(ctx, draftPlugin.ID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetPluginAllDraftTools failed, pluginID=%d\", draftPlugin.ID)\n\t}\n\n\tpaths := openapi3.Paths{}\n\tfor _, tool := range tools {\n\t\tif tool.IsDeactivated() {\n\t\t\tcontinue\n\t\t}\n\t\titem := &openapi3.PathItem{}\n\t\titem.SetOperation(tool.GetMethod(), tool.Operation.Operation)\n\t\tpaths[tool.GetSubURL()] = item\n\t}\n\tdraftPlugin.OpenapiDoc.Paths = paths\n\n\tmanifestStr, err := sonic.MarshalString(draftPlugin.Manifest)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"marshal manifest failed, err=%v\", err)\n\t}\n\n\tdocBytes, err := yaml.Marshal(draftPlugin.OpenapiDoc)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"marshal openapi doc failed, err=%v\", err)\n\t}\n\n\tcodeInfo := &common.CodeInfo{\n\t\tOpenapiDesc: string(docBytes),\n\t\tPluginDesc:  manifestStr,\n\t}\n\n\treturn codeInfo, nil\n}\n\nfunc (p *PluginApplicationService) getPluginMetaInfo(ctx context.Context, draftPlugin *entity.PluginInfo) (*common.PluginMetaInfo, error) {\n\tcommonParams := make(map[common.ParameterLocation][]*common.CommonParamSchema, len(draftPlugin.Manifest.CommonParams))\n\tfor loc, params := range draftPlugin.Manifest.CommonParams {\n\t\tlocation, ok := convert.ToThriftHTTPParamLocation(loc)\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"invalid location '%s'\", loc)\n\t\t}\n\t\tcommonParams[location] = make([]*common.CommonParamSchema, 0, len(params))\n\t\tfor _, param := range params {\n\t\t\tcommonParams[location] = append(commonParams[location], &common.CommonParamSchema{\n\t\t\t\tName:  param.Name,\n\t\t\t\tValue: param.Value,\n\t\t\t})\n\t\t}\n\t}\n\n\ticonURL, err := p.oss.GetObjectUrl(ctx, draftPlugin.GetIconURI())\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"get icon url with '%s' failed, err=%v\", draftPlugin.GetIconURI(), err)\n\t}\n\n\tmetaInfo := &common.PluginMetaInfo{\n\t\tName: draftPlugin.GetName(),\n\t\tDesc: draftPlugin.GetDesc(),\n\t\tURL:  draftPlugin.GetServerURL(),\n\t\tIcon: &common.PluginIcon{\n\t\t\tURI: draftPlugin.GetIconURI(),\n\t\t\tURL: iconURL,\n\t\t},\n\t\tCommonParams: commonParams,\n\t}\n\n\terr = p.fillAuthInfoInMetaInfo(ctx, draftPlugin, metaInfo)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"fillAuthInfoInMetaInfo failed, pluginID=%d\", draftPlugin.ID)\n\t}\n\n\treturn metaInfo, nil\n}\n\nfunc (p *PluginApplicationService) fillAuthInfoInMetaInfo(ctx context.Context, draftPlugin *entity.PluginInfo, metaInfo *common.PluginMetaInfo) (err error) {\n\tauthInfo := draftPlugin.GetAuthInfo()\n\tauthType, ok := convert.ToThriftAuthType(authInfo.Type)\n\tif !ok {\n\t\treturn fmt.Errorf(\"invalid auth type '%s'\", authInfo.Type)\n\t}\n\n\tvar subAuthType *int32\n\tif authInfo.SubType != \"\" {\n\t\t_subAuthType, ok := convert.ToThriftAuthSubType(authInfo.SubType)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"invalid sub authz type '%s'\", authInfo.SubType)\n\t\t}\n\t\tsubAuthType = &_subAuthType\n\t}\n\n\tmetaInfo.AuthType = append(metaInfo.AuthType, authType)\n\tmetaInfo.SubAuthType = subAuthType\n\n\tif authType == common.AuthorizationType_None {\n\t\treturn nil\n\t}\n\n\tif authType == common.AuthorizationType_Service {\n\t\tvar loc common.AuthorizationServiceLocation\n\t\t_loc := consts.HTTPParamLocation(strings.ToLower(string(authInfo.AuthOfAPIToken.Location)))\n\t\tif _loc == consts.ParamInHeader {\n\t\t\tloc = common.AuthorizationServiceLocation_Header\n\t\t} else if _loc == consts.ParamInQuery {\n\t\t\tloc = common.AuthorizationServiceLocation_Query\n\t\t} else {\n\t\t\treturn fmt.Errorf(\"invalid location '%s'\", authInfo.AuthOfAPIToken.Location)\n\t\t}\n\n\t\tmetaInfo.Location = ptr.Of(loc)\n\t\tmetaInfo.Key = ptr.Of(authInfo.AuthOfAPIToken.Key)\n\t\tmetaInfo.ServiceToken = ptr.Of(authInfo.AuthOfAPIToken.ServiceToken)\n\t}\n\n\tif authType == common.AuthorizationType_OAuth {\n\t\tmetaInfo.OauthInfo = &authInfo.Payload\n\t}\n\n\treturn nil\n}\n\nfunc (p *PluginApplicationService) UpdatePlugin(ctx context.Context, req *pluginAPI.UpdatePluginRequest) (resp *pluginAPI.UpdatePluginResponse, err error) {\n\t_, err = p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateUpdatePluginRequest failed\")\n\t}\n\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\n\tloader := openapi3.NewLoader()\n\t_doc, err := loader.LoadFromData([]byte(req.Openapi))\n\tif err != nil {\n\t\treturn nil, errorx.New(errno.ErrPluginInvalidOpenapi3Doc, errorx.KV(errno.PluginMsgKey, err.Error()))\n\t}\n\n\tdoc := ptr.Of(model.Openapi3T(*_doc))\n\n\tmanifest := &model.PluginManifest{}\n\terr = sonic.UnmarshalString(req.AiPlugin, manifest)\n\tif err != nil {\n\t\treturn nil, errorx.New(errno.ErrPluginInvalidManifest, errorx.KV(errno.PluginMsgKey, err.Error()))\n\t}\n\n\terr = p.DomainSVC.UpdateDraftPluginWithCode(ctx, &dto.UpdateDraftPluginWithCodeRequest{\n\t\tUserID:     *userID,\n\t\tPluginID:   req.PluginID,\n\t\tOpenapiDoc: doc,\n\t\tManifest:   manifest,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"UpdateDraftPluginWithCode failed, pluginID=%d\", req.PluginID)\n\t}\n\n\terr = p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType:      resCommon.ResType_Plugin,\n\t\t\tResID:        req.PluginID,\n\t\t\tName:         &manifest.NameForHuman,\n\t\t\tUpdateTimeMS: ptr.Of(time.Now().UnixMilli()),\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish resource '%d' failed, err=%v\", req.PluginID, err)\n\t}\n\n\tresp = &pluginAPI.UpdatePluginResponse{\n\t\tData: &common.UpdatePluginData{\n\t\t\tRes: true,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) UpdatePluginMeta(ctx context.Context, req *pluginAPI.UpdatePluginMetaRequest) (resp *pluginAPI.UpdatePluginMetaResponse, err error) {\n\t_, err = p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateUpdatePluginMetaRequest failed\")\n\t}\n\n\tauthInfo, err := getUpdateAuthInfo(ctx, req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tupdateReq := &dto.UpdateDraftPluginRequest{\n\t\tPluginID:     req.PluginID,\n\t\tName:         req.Name,\n\t\tDesc:         req.Desc,\n\t\tURL:          req.URL,\n\t\tIcon:         req.Icon,\n\t\tCommonParams: req.CommonParams,\n\t\tAuthInfo:     authInfo,\n\t}\n\terr = p.DomainSVC.UpdateDraftPlugin(ctx, updateReq)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"UpdateDraftPlugin failed, pluginID=%d\", req.PluginID)\n\t}\n\n\terr = p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType:      resCommon.ResType_Plugin,\n\t\t\tResID:        req.PluginID,\n\t\t\tName:         req.Name,\n\t\t\tUpdateTimeMS: ptr.Of(time.Now().UnixMilli()),\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish resource '%d' failed, err=%v\", req.PluginID, err)\n\t}\n\n\tresp = &pluginAPI.UpdatePluginMetaResponse{}\n\n\treturn resp, nil\n}\n\nfunc getUpdateAuthInfo(ctx context.Context, req *pluginAPI.UpdatePluginMetaRequest) (authInfo *dto.PluginAuthInfo, err error) {\n\tif req.AuthType == nil {\n\t\treturn nil, nil\n\t}\n\n\t_authType, ok := convert.ToAuthType(req.GetAuthType())\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"invalid auth type '%d'\", req.GetAuthType())\n\t}\n\tauthType := &_authType\n\n\tvar authSubType *consts.AuthzSubType\n\tif req.SubAuthType != nil {\n\t\t_authSubType, ok := convert.ToAuthSubType(req.GetSubAuthType())\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"invalid sub authz type '%d'\", req.GetSubAuthType())\n\t\t}\n\t\tauthSubType = &_authSubType\n\t}\n\n\tvar location *consts.HTTPParamLocation\n\tif req.Location != nil {\n\t\tif *req.Location == common.AuthorizationServiceLocation_Header {\n\t\t\tlocation = ptr.Of(consts.ParamInHeader)\n\t\t} else if *req.Location == common.AuthorizationServiceLocation_Query {\n\t\t\tlocation = ptr.Of(consts.ParamInQuery)\n\t\t} else {\n\t\t\treturn nil, fmt.Errorf(\"invalid location '%d'\", req.GetLocation())\n\t\t}\n\t}\n\n\tauthInfo = &dto.PluginAuthInfo{\n\t\tAuthzType:    authType,\n\t\tLocation:     location,\n\t\tKey:          req.Key,\n\t\tServiceToken: req.ServiceToken,\n\t\tOAuthInfo:    req.OauthInfo,\n\t\tAuthzSubType: authSubType,\n\t\tAuthzPayload: req.AuthPayload,\n\t}\n\n\treturn authInfo, nil\n}\n"
  },
  {
    "path": "backend/application/plugin/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage plugin\n\nimport (\n\t\"context\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/conf\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/repository\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/service\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/service\"\n\tuser \"github.com/coze-dev/coze-studio/backend/domain/user/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\ntype ServiceComponents struct {\n\tIDGen    idgen.IDGenerator\n\tDB       *gorm.DB\n\tOSS      storage.Storage\n\tEventBus search.ResourceEventBus\n\tUserSVC  user.User\n}\n\nfunc InitService(ctx context.Context, components *ServiceComponents) (*PluginApplicationService, error) {\n\terr := conf.InitConfig(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttoolRepo := repository.NewToolRepo(&repository.ToolRepoComponents{\n\t\tIDGen: components.IDGen,\n\t\tDB:    components.DB,\n\t})\n\n\tpluginRepo := repository.NewPluginRepo(&repository.PluginRepoComponents{\n\t\tIDGen: components.IDGen,\n\t\tDB:    components.DB,\n\t})\n\n\toauthRepo := repository.NewOAuthRepo(&repository.OAuthRepoComponents{\n\t\tIDGen: components.IDGen,\n\t\tDB:    components.DB,\n\t})\n\n\tpluginSVC := service.NewService(&service.Components{\n\t\tIDGen:      components.IDGen,\n\t\tDB:         components.DB,\n\t\tOSS:        components.OSS,\n\t\tPluginRepo: pluginRepo,\n\t\tToolRepo:   toolRepo,\n\t\tOAuthRepo:  oauthRepo,\n\t})\n\n\terr = checkIDExist(ctx, pluginSVC)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tPluginApplicationSVC.DomainSVC = pluginSVC\n\tPluginApplicationSVC.eventbus = components.EventBus\n\tPluginApplicationSVC.oss = components.OSS\n\tPluginApplicationSVC.userSVC = components.UserSVC\n\tPluginApplicationSVC.pluginRepo = pluginRepo\n\tPluginApplicationSVC.toolRepo = toolRepo\n\n\treturn PluginApplicationSVC, nil\n}\n\nfunc checkIDExist(ctx context.Context, pluginService service.PluginService) error {\n\tpluginProducts := conf.GetAllPluginProducts()\n\n\tpluginIDs := make([]int64, 0, len(pluginProducts))\n\tvar toolIDs []int64\n\tfor _, p := range pluginProducts {\n\t\tpluginIDs = append(pluginIDs, p.Info.ID)\n\t\ttoolIDs = append(toolIDs, p.ToolIDs...)\n\t}\n\n\tpluginInfos, err := pluginService.MGetDraftPlugins(ctx, pluginIDs)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif len(pluginInfos) > 0 {\n\t\tconflictsIDs := make([]int64, 0, len(pluginInfos))\n\t\tfor _, p := range pluginInfos {\n\t\t\tconflictsIDs = append(conflictsIDs, p.ID)\n\t\t}\n\n\t\treturn errorx.New(errno.ErrPluginIDExist,\n\t\t\terrorx.KV(\"plugin_id\", strings.Join(slices.Transform(conflictsIDs, func(id int64) string {\n\t\t\t\treturn strconv.FormatInt(id, 10)\n\t\t\t}), \",\")),\n\t\t)\n\t}\n\n\ttools, err := pluginService.MGetDraftTools(ctx, toolIDs)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif len(tools) > 0 {\n\t\tconflictsIDs := make([]int64, 0, len(tools))\n\t\tfor _, t := range tools {\n\t\t\tconflictsIDs = append(conflictsIDs, t.ID)\n\t\t}\n\n\t\treturn errorx.New(errno.ErrToolIDExist,\n\t\t\terrorx.KV(\"tool_id\", strings.Join(slices.Transform(conflictsIDs, func(id int64) string {\n\t\t\t\treturn strconv.FormatInt(id, 10)\n\t\t\t}), \",\")),\n\t\t)\n\t}\n\treturn nil\n\n}\n"
  },
  {
    "path": "backend/application/plugin/lifecycle.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage plugin\n\nimport (\n\t\"context\"\n\t\"time\"\n\n\tpluginAPI \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop\"\n\tcommon \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n\tresCommon \"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/dto\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/entity\"\n\tsearchEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc (p *PluginApplicationService) PublishPlugin(ctx context.Context, req *pluginAPI.PublishPluginRequest) (resp *pluginAPI.PublishPluginResponse, err error) {\n\t_, err = p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validatePublishPluginRequest failed\")\n\t}\n\n\terr = p.DomainSVC.PublishPlugin(ctx, &model.PublishPluginRequest{\n\t\tPluginID:    req.PluginID,\n\t\tVersion:     req.VersionName,\n\t\tVersionDesc: req.VersionDesc,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"PublishPlugin failed, pluginID=%d\", req.PluginID)\n\t}\n\n\terr = p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType:       resCommon.ResType_Plugin,\n\t\t\tResID:         req.PluginID,\n\t\t\tPublishStatus: ptr.Of(resCommon.PublishStatus_Published),\n\t\t\tPublishTimeMS: ptr.Of(time.Now().UnixMilli()),\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish resource '%d' failed, err=%v\", req.PluginID, err)\n\t}\n\n\tresp = &pluginAPI.PublishPluginResponse{}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) DelPlugin(ctx context.Context, req *pluginAPI.DelPluginRequest) (resp *pluginAPI.DelPluginResponse, err error) {\n\t_, err = p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateDelPluginRequest failed\")\n\t}\n\n\terr = p.DomainSVC.DeleteDraftPlugin(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"DeleteDraftPlugin failed, pluginID=%d\", req.PluginID)\n\t}\n\n\terr = p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Deleted,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType:      resCommon.ResType_Plugin,\n\t\t\tResID:        req.PluginID,\n\t\t\tUpdateTimeMS: ptr.Of(time.Now().UnixMilli()),\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"publish resource '%d' failed\", req.PluginID)\n\t}\n\n\tresp = &pluginAPI.DelPluginResponse{}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) GetPluginNextVersion(ctx context.Context, req *pluginAPI.GetPluginNextVersionRequest) (resp *pluginAPI.GetPluginNextVersionResponse, err error) {\n\t_, err = p.validateDraftPluginAccess(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"validateGetPluginNextVersionRequest failed\")\n\t}\n\n\tnextVersion, err := p.DomainSVC.GetPluginNextVersion(ctx, req.PluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetPluginNextVersion failed, pluginID=%d\", req.PluginID)\n\t}\n\tresp = &pluginAPI.GetPluginNextVersionResponse{\n\t\tNextVersionName: nextVersion,\n\t}\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) GetDevPluginList(ctx context.Context, req *pluginAPI.GetDevPluginListRequest) (resp *pluginAPI.GetDevPluginListResponse, err error) {\n\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrPluginPermissionCode, errorx.KV(errno.PluginMsgKey, \"session is required\"))\n\t}\n\n\tpageInfo := dto.PageInfo{\n\t\tName:       req.Name,\n\t\tPage:       int(req.GetPage()),\n\t\tSize:       int(req.GetSize()),\n\t\tOrderByACS: ptr.Of(false),\n\t}\n\tif req.GetOrderBy() == common.OrderBy_UpdateTime {\n\t\tpageInfo.SortBy = ptr.Of(dto.SortByUpdatedAt)\n\t} else {\n\t\tpageInfo.SortBy = ptr.Of(dto.SortByCreatedAt)\n\t}\n\n\tres, err := p.DomainSVC.ListDraftPlugins(ctx, &dto.ListDraftPluginsRequest{\n\t\tSpaceID:  req.SpaceID,\n\t\tAPPID:    req.ProjectID,\n\t\tPageInfo: pageInfo,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"ListDraftPlugins failed, spaceID=%d, appID=%d\", req.SpaceID, req.ProjectID)\n\t}\n\n\tpluginList := make([]*common.PluginInfoForPlayground, 0, len(res.Plugins))\n\tfor _, pl := range res.Plugins {\n\n\t\tif pl.DeveloperID > 0 && pl.DeveloperID != *uid {\n\t\t\treturn nil, errorx.New(errno.ErrPluginPermissionCode, errorx.KV(errno.PluginMsgKey, \"plugin developer is not current user\"))\n\t\t}\n\t\ttools, err := p.toolRepo.GetPluginAllDraftTools(ctx, pl.ID)\n\t\tif err != nil {\n\t\t\treturn nil, errorx.Wrapf(err, \"GetPluginAllDraftTools failed, pluginID=%d\", pl.ID)\n\t\t}\n\n\t\tpluginInfo, err := p.toPluginInfoForPlayground(ctx, pl, tools)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpluginInfo.VersionTs = \"0\" // when you get the plugin information in the project, version ts is set to 0 by default\n\t\tpluginList = append(pluginList, pluginInfo)\n\t}\n\n\tresp = &pluginAPI.GetDevPluginListResponse{\n\t\tPluginList: pluginList,\n\t\tTotal:      res.Total,\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) DeleteAPPAllPlugins(ctx context.Context, appID int64) (err error) {\n\tpluginIDs, err := p.DomainSVC.DeleteAPPAllPlugins(ctx, appID)\n\tif err != nil {\n\t\treturn errorx.Wrapf(err, \"DeleteAPPAllPlugins failed, appID=%d\", appID)\n\t}\n\n\tfor _, id := range pluginIDs {\n\t\terr = p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\t\tOpType: searchEntity.Deleted,\n\t\t\tResource: &searchEntity.ResourceDocument{\n\t\t\t\tResType: resCommon.ResType_Plugin,\n\t\t\t\tResID:   id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errorx.Wrapf(err, \"publish resource '%d' failed\", id)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (p *PluginApplicationService) CopyPlugin(ctx context.Context, req *dto.CopyPluginRequest) (resp *dto.CopyPluginResponse, err error) {\n\tres, err := p.DomainSVC.CopyPlugin(ctx, &dto.CopyPluginRequest{\n\t\tUserID:      req.UserID,\n\t\tPluginID:    req.PluginID,\n\t\tCopyScene:   req.CopyScene,\n\t\tTargetAPPID: req.TargetAPPID,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"CopyPlugin failed, pluginID=%d\", req.PluginID)\n\t}\n\n\tplugin := res.Plugin\n\n\tnow := time.Now().UnixMilli()\n\tresDoc := &searchEntity.ResourceDocument{\n\t\tResType:       resCommon.ResType_Plugin,\n\t\tResSubType:    ptr.Of(int32(plugin.PluginType)),\n\t\tResID:         plugin.ID,\n\t\tName:          ptr.Of(plugin.GetName()),\n\t\tSpaceID:       &plugin.SpaceID,\n\t\tAPPID:         plugin.APPID,\n\t\tOwnerID:       &req.UserID,\n\t\tPublishStatus: ptr.Of(resCommon.PublishStatus_UnPublished),\n\t\tCreateTimeMS:  ptr.Of(now),\n\t}\n\tif plugin.Published() {\n\t\tresDoc.PublishStatus = ptr.Of(resCommon.PublishStatus_Published)\n\t\tresDoc.PublishTimeMS = ptr.Of(now)\n\t}\n\n\terr = p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType:   searchEntity.Created,\n\t\tResource: resDoc,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"publish resource '%d' failed\", plugin.ID)\n\t}\n\n\tresp = &dto.CopyPluginResponse{\n\t\tPlugin: res.Plugin,\n\t\tTools:  res.Tools,\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) MoveAPPPluginToLibrary(ctx context.Context, pluginID int64) (plugin *entity.PluginInfo, err error) {\n\tplugin, err = p.DomainSVC.MoveAPPPluginToLibrary(ctx, pluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"MoveAPPPluginToLibrary failed, pluginID=%d\", pluginID)\n\t}\n\n\tnow := time.Now().UnixMilli()\n\n\terr = p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType:       resCommon.ResType_Plugin,\n\t\t\tResID:         pluginID,\n\t\t\tAPPID:         ptr.Of(int64(0)),\n\t\t\tPublishStatus: ptr.Of(resCommon.PublishStatus_Published),\n\t\t\tPublishTimeMS: ptr.Of(now),\n\t\t\tUpdateTimeMS:  ptr.Of(now),\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"publish resource '%d' failed\", pluginID)\n\t}\n\n\treturn plugin, nil\n}\n"
  },
  {
    "path": "backend/application/plugin/playground.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage plugin\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"slices\"\n\t\"strconv\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/marketplace/product_common\"\n\tpluginAPI \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop\"\n\tcommon \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/convert\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/dto\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\nfunc (p *PluginApplicationService) GetPlaygroundPluginList(ctx context.Context, req *pluginAPI.GetPlaygroundPluginListRequest) (resp *pluginAPI.GetPlaygroundPluginListResponse, err error) {\n\tvar (\n\t\tplugins []*entity.PluginInfo\n\t\ttotal   int64\n\t)\n\n\tvar isSaasPlugin bool\n\tif slices.Contains(req.PluginTypes, int32(product_common.ProductEntityType_SaasPlugin)) {\n\t\tisSaasPlugin = true\n\t}\n\tif len(req.PluginIds) > 0 {\n\t\tif isSaasPlugin {\n\t\t\tplugins, total, err = p.getSaasPluginListByIDs(ctx, req.PluginIds)\n\t\t} else {\n\t\t\tplugins, total, err = p.getPlaygroundPluginListByIDs(ctx, req.PluginIds)\n\t\t}\n\t} else {\n\t\tplugins, total, err = p.getPlaygroundPluginList(ctx, req)\n\t}\n\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"getPlaygroundPluginList failed, req=%v\", req)\n\t}\n\n\tpluginList := make([]*common.PluginInfoForPlayground, 0, len(plugins))\n\n\tif isSaasPlugin {\n\t\tpluginIDs := make([]int64, 0, len(plugins))\n\t\tfor _, product := range plugins {\n\t\t\tpluginIDs = append(pluginIDs, product.ID)\n\t\t}\n\n\t\ttools, err := p.getSaasPluginToolsList(ctx, pluginIDs)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"BatchGetSaasPluginToolsInfo failed: %v\", err)\n\t\t\treturn nil, err\n\t\t}\n\t\tpluginList, err = p.convertSaasPluginListToPlayground(ctx, plugins, tools)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t} else {\n\t\tfor _, pl := range plugins {\n\t\t\ttools, err := p.toolRepo.GetPluginAllOnlineTools(ctx, pl.ID)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errorx.Wrapf(err, \"GetPluginAllOnlineTools failed, pluginID=%d\", pl.ID)\n\t\t\t}\n\n\t\t\tpluginInfo, err := p.toPluginInfoForPlayground(ctx, pl, tools)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tpluginList = append(pluginList, pluginInfo)\n\t\t}\n\t}\n\n\tresp = &pluginAPI.GetPlaygroundPluginListResponse{\n\t\tData: &common.GetPlaygroundPluginListData{\n\t\t\tTotal:      int32(total),\n\t\t\tPluginList: pluginList,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) convertSaasPluginListToPlayground(ctx context.Context, plugins []*entity.PluginInfo, tools map[int64][]*entity.ToolInfo) ([]*common.PluginInfoForPlayground, error) {\n\tproducts := make([]*common.PluginInfoForPlayground, 0, len(plugins))\n\tfor _, pl := range plugins {\n\t\ttools := tools[pl.ID]\n\t\tpluginInfo, err := p.toPluginInfoForPlayground(ctx, pl, tools)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tproducts = append(products, pluginInfo)\n\t}\n\treturn products, nil\n}\n\nfunc (p *PluginApplicationService) getSaasPluginListByIDs(ctx context.Context, pluginIDs []string) ([]*entity.PluginInfo, int64, error) {\n\tids := make([]int64, 0, len(pluginIDs))\n\n\tfor _, pluginIDStr := range pluginIDs {\n\t\tpluginID, err := strconv.ParseInt(pluginIDStr, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, 0, fmt.Errorf(\"invalid pluginID '%s': %w\", pluginIDStr, err)\n\t\t}\n\t\tids = append(ids, pluginID)\n\t}\n\n\tplugins, err := p.DomainSVC.GetSaasPluginInfo(ctx, ids)\n\tif err != nil {\n\t\treturn nil, 0, errorx.Wrapf(err, \"GetSaasPluginInfo failed, pluginIDs=%v\", pluginIDs)\n\t}\n\n\treturn plugins, int64(len(plugins)), nil\n}\n\nfunc (p *PluginApplicationService) getPlaygroundPluginListByIDs(ctx context.Context, pluginIDs []string) (plugins []*entity.PluginInfo, total int64, err error) {\n\tids := make([]int64, 0, len(pluginIDs))\n\tfor _, id := range pluginIDs {\n\t\tpluginID, pErr := strconv.ParseInt(id, 10, 64)\n\t\tif pErr != nil {\n\t\t\treturn nil, 0, fmt.Errorf(\"invalid pluginID '%s'\", id)\n\t\t}\n\t\tids = append(ids, pluginID)\n\t}\n\n\tplugins, err = p.pluginRepo.MGetOnlinePlugins(ctx, ids)\n\tif err != nil {\n\t\treturn nil, 0, errorx.Wrapf(err, \"MGetOnlinePlugins failed, pluginIDs=%v\", pluginIDs)\n\t}\n\n\ttotal = int64(len(plugins))\n\n\treturn plugins, total, nil\n}\n\nfunc (p *PluginApplicationService) getPlaygroundPluginList(ctx context.Context, req *pluginAPI.GetPlaygroundPluginListRequest) (plugins []*entity.PluginInfo, total int64, err error) {\n\tpageInfo := dto.PageInfo{\n\t\tName: req.Name,\n\t\tPage: int(req.GetPage()),\n\t\tSize: int(req.GetSize()),\n\t\tSortBy: func() *dto.SortField {\n\t\t\tif req.GetOrderBy() == 0 {\n\t\t\t\treturn ptr.Of(dto.SortByUpdatedAt)\n\t\t\t}\n\t\t\treturn ptr.Of(dto.SortByCreatedAt)\n\t\t}(),\n\t\tOrderByACS: ptr.Of(false),\n\t}\n\tplugins, total, err = p.DomainSVC.ListCustomOnlinePlugins(ctx, req.GetSpaceID(), pageInfo)\n\tif err != nil {\n\t\treturn nil, 0, errorx.Wrapf(err, \"ListCustomOnlinePlugins failed, spaceID=%d\", req.GetSpaceID())\n\t}\n\n\treturn plugins, total, nil\n}\n\nfunc (p *PluginApplicationService) toPluginInfoForPlayground(ctx context.Context, pl *entity.PluginInfo, tools []*entity.ToolInfo) (*common.PluginInfoForPlayground, error) {\n\tpluginAPIs := make([]*common.PluginApi, 0, len(tools))\n\tfor _, tl := range tools {\n\t\tparams, err := tl.ToPluginParameters()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpluginAPIs = append(pluginAPIs, &common.PluginApi{\n\t\t\tAPIID:      strconv.FormatInt(tl.ID, 10),\n\t\t\tName:       tl.GetName(),\n\t\t\tDesc:       tl.GetDesc(),\n\t\t\tPluginID:   strconv.FormatInt(pl.ID, 10),\n\t\t\tPluginName: pl.GetName(),\n\t\t\tRunMode:    common.RunMode_Sync,\n\t\t\tParameters: params,\n\t\t})\n\t}\n\n\tvar creator *common.Creator\n\tif pl.Source != ptr.Of(bot_common.PluginFrom_FromSaas) {\n\t\tuserInfo, err := p.userSVC.GetUserInfo(ctx, pl.DeveloperID)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"get user info failed, err=%v\", err)\n\t\t\tcreator = common.NewCreator()\n\t\t} else {\n\t\t\tcreator = &common.Creator{\n\t\t\t\tID:             strconv.FormatInt(pl.DeveloperID, 10),\n\t\t\t\tName:           userInfo.Name,\n\t\t\t\tAvatarURL:      userInfo.IconURL,\n\t\t\t\tUserUniqueName: userInfo.UniqueName,\n\t\t\t}\n\t\t}\n\t}\n\n\ticonURL, err := p.oss.GetObjectUrl(ctx, pl.GetIconURI())\n\tif err != nil {\n\t\tlogs.Errorf(\"get plugin icon url failed, err=%v\", err)\n\t}\n\n\tauthType, ok := convert.ToThriftAuthType(pl.GetAuthInfo().Type)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"invalid auth type '%s'\", pl.GetAuthInfo().Type)\n\t}\n\n\tpluginInfo := &common.PluginInfoForPlayground{\n\t\tAuth:           int32(authType),\n\t\tCreateTime:     strconv.FormatInt(pl.CreatedAt/1000, 10),\n\t\tCreationMethod: common.CreationMethod_COZE,\n\t\tCreator:        creator,\n\t\tDescForHuman:   pl.GetDesc(),\n\t\tID:             strconv.FormatInt(pl.ID, 10),\n\t\tIsOfficial:     pl.IsOfficial(),\n\t\tMaterialID:     strconv.FormatInt(pl.ID, 10),\n\t\tName:           pl.GetName(),\n\t\tPluginIcon:     iconURL,\n\t\tPluginType:     pl.PluginType,\n\t\tSpaceID:        strconv.FormatInt(pl.SpaceID, 10),\n\t\tStatisticData:  common.NewPluginStatisticData(),\n\t\tStatus:         common.PluginStatus_SUBMITTED,\n\t\tUpdateTime:     strconv.FormatInt(pl.UpdatedAt/1000, 10),\n\t\tProjectID:      strconv.FormatInt(pl.GetAPPID(), 10),\n\t\tVersionName:    pl.GetVersion(),\n\t\tVersionTs:      pl.GetVersion(), // Compatible with front-end logic, in theory VersionName should be used\n\t\tPluginApis:     pluginAPIs,\n\t}\n\n\treturn pluginInfo, nil\n}\n"
  },
  {
    "path": "backend/application/plugin/plugin.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage plugin\n\nimport (\n\t\"context\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\tproductCommon \"github.com/coze-dev/coze-studio/backend/api/model/marketplace/product_common\"\n\tproductAPI \"github.com/coze-dev/coze-studio/backend/api/model/marketplace/product_public_api\"\n\tpluginAPI \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop\"\n\tcommon \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/convert/api\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/dto\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/repository\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/service\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/service\"\n\tuserEntity \"github.com/coze-dev/coze-studio/backend/domain/user/entity\"\n\tuser \"github.com/coze-dev/coze-studio/backend/domain/user/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nvar PluginApplicationSVC = &PluginApplicationService{}\n\ntype PluginApplicationService struct {\n\tDomainSVC service.PluginService\n\teventbus  search.ResourceEventBus\n\toss       storage.Storage\n\tuserSVC   user.User\n\n\ttoolRepo   repository.ToolRepository\n\tpluginRepo repository.PluginRepository\n}\n\nfunc (p *PluginApplicationService) CheckAndLockPluginEdit(ctx context.Context, req *pluginAPI.CheckAndLockPluginEditRequest) (resp *pluginAPI.CheckAndLockPluginEditResponse, err error) {\n\tresp = &pluginAPI.CheckAndLockPluginEditResponse{\n\t\tData: &common.CheckAndLockPluginEditData{\n\t\t\tSeized: true,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) GetBotDefaultParams(ctx context.Context, req *pluginAPI.GetBotDefaultParamsRequest) (resp *pluginAPI.GetBotDefaultParamsResponse, err error) {\n\n\tdraftAgentTool, err := p.DomainSVC.GetDraftAgentToolByName(ctx, req.BotID, req.PluginID, req.APIName)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetDraftAgentToolByName failed, agentID=%d, toolName=%s\", req.BotID, req.APIName)\n\t}\n\treqAPIParams, err := draftAgentTool.ToReqAPIParameter()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\trespAPIParams, err := draftAgentTool.ToRespAPIParameter()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp = &pluginAPI.GetBotDefaultParamsResponse{\n\t\tRequestParams:  reqAPIParams,\n\t\tResponseParams: respAPIParams,\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) UpdateBotDefaultParams(ctx context.Context, req *pluginAPI.UpdateBotDefaultParamsRequest) (resp *pluginAPI.UpdateBotDefaultParamsResponse, err error) {\n\top, err := api.APIParamsToOpenapiOperation(req.RequestParams, req.ResponseParams)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = p.DomainSVC.UpdateBotDefaultParams(ctx, &dto.UpdateBotDefaultParamsRequest{\n\t\tPluginID:    req.PluginID,\n\t\tToolName:    req.APIName,\n\t\tAgentID:     req.BotID,\n\t\tParameters:  op.Parameters,\n\t\tRequestBody: op.RequestBody,\n\t\tResponses:   op.Responses,\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"UpdateBotDefaultParams failed, agentID=%d, toolName=%s\", req.BotID, req.APIName)\n\t}\n\n\tresp = &pluginAPI.UpdateBotDefaultParamsResponse{}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) UnlockPluginEdit(ctx context.Context, req *pluginAPI.UnlockPluginEditRequest) (resp *pluginAPI.UnlockPluginEditResponse, err error) {\n\tresp = &pluginAPI.UnlockPluginEditResponse{\n\t\tReleased: true,\n\t}\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) PublicGetProductList(ctx context.Context, req *productAPI.GetProductListRequest) (resp *productAPI.GetProductListResponse, err error) {\n\tres, err := p.DomainSVC.ListPluginProducts(ctx, &dto.ListPluginProductsRequest{})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"ListPluginProducts failed\")\n\t}\n\n\tproducts := make([]*productAPI.ProductInfo, 0, len(res.Plugins))\n\tfor _, pl := range res.Plugins {\n\t\ttls, err := p.toolRepo.GetPluginAllOnlineTools(ctx, pl.ID)\n\t\tif err != nil {\n\t\t\treturn nil, errorx.Wrapf(err, \"GetPluginAllOnlineTools failed, pluginID=%d\", pl.ID)\n\t\t}\n\n\t\tpi, err := p.buildProductInfo(ctx, pl, tls)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tproducts = append(products, pi)\n\t}\n\n\tif req.GetKeyword() != \"\" {\n\t\tfilterProducts := make([]*productAPI.ProductInfo, 0, len(products))\n\t\tfor _, _p := range products {\n\t\t\tif strings.Contains(strings.ToLower(_p.MetaInfo.Name), strings.ToLower(req.GetKeyword())) {\n\t\t\t\tfilterProducts = append(filterProducts, _p)\n\t\t\t}\n\t\t}\n\t\tproducts = filterProducts\n\t}\n\n\tresp = &productAPI.GetProductListResponse{\n\t\tData: &productAPI.GetProductListData{\n\t\t\tProducts: products,\n\t\t\tHasMore:  false, // Finish at one time\n\t\t\tTotal:    int32(res.Total),\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) buildProductInfo(ctx context.Context, plugin *entity.PluginInfo, tools []*entity.ToolInfo) (*productAPI.ProductInfo, error) {\n\tmetaInfo, err := p.buildProductMetaInfo(ctx, plugin)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\textraInfo, err := p.buildPluginProductExtraInfo(ctx, plugin, tools)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpi := &productAPI.ProductInfo{\n\t\tCommercialSetting: &productCommon.CommercialSetting{\n\t\t\tCommercialType: productCommon.ProductPaidType_Free,\n\t\t},\n\t\tMetaInfo:    metaInfo,\n\t\tPluginExtra: extraInfo,\n\t}\n\n\treturn pi, nil\n}\n\nfunc (p *PluginApplicationService) buildProductMetaInfo(ctx context.Context, plugin *entity.PluginInfo) (*productAPI.ProductMetaInfo, error) {\n\ticonURL, err := p.oss.GetObjectUrl(ctx, plugin.GetIconURI())\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"get icon url failed with '%s', err=%v\", plugin.GetIconURI(), err)\n\t}\n\n\treturn &productAPI.ProductMetaInfo{\n\t\tID:          plugin.GetRefProductID(),\n\t\tEntityID:    plugin.ID,\n\t\tEntityType:  productCommon.ProductEntityType_Plugin,\n\t\tIconURL:     iconURL,\n\t\tName:        plugin.GetName(),\n\t\tDescription: plugin.GetDesc(),\n\t\tIsFree:      true,\n\t\tIsOfficial:  true,\n\t\tStatus:      productCommon.ProductStatus_Listed,\n\t\tListedAt:    time.Now().Unix(),\n\t\tUserInfo: &productCommon.UserInfo{\n\t\t\tName: \"Coze Official\",\n\t\t},\n\t}, nil\n}\n\nfunc (p *PluginApplicationService) buildPluginProductExtraInfo(ctx context.Context, plugin *entity.PluginInfo, tools []*entity.ToolInfo) (*productAPI.PluginExtraInfo, error) {\n\tei := &productAPI.PluginExtraInfo{\n\t\tIsOfficial: true,\n\t\tPluginType: func() *productCommon.PluginType {\n\t\t\tif plugin.PluginType == common.PluginType_LOCAL {\n\t\t\t\treturn ptr.Of(productCommon.PluginType_LocalPlugin)\n\t\t\t}\n\t\t\treturn ptr.Of(productCommon.PluginType_CLoudPlugin)\n\t\t}(),\n\t\tJumpSaasURL: func() *string {\n\t\t\tif plugin.SaasPluginExtra != nil && plugin.SaasPluginExtra.JumpSaasURL != nil {\n\t\t\t\treturn plugin.SaasPluginExtra.JumpSaasURL\n\t\t\t}\n\t\t\treturn nil\n\t\t}(),\n\t}\n\n\ttoolInfos := make([]*productAPI.PluginToolInfo, 0, len(tools))\n\tfor _, tl := range tools {\n\t\tparams, err := tl.ToToolParameters()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\ttoolInfo := &productAPI.PluginToolInfo{\n\t\t\tID:          tl.ID,\n\t\t\tName:        tl.GetName(),\n\t\t\tDescription: tl.GetDesc(),\n\t\t\tParameters:  params,\n\t\t}\n\n\t\texample := plugin.GetToolExample(ctx, tl.GetName())\n\t\tif example != nil {\n\t\t\ttoolInfo.Example = &productAPI.PluginToolExample{\n\t\t\t\tReqExample:  example.RequestExample,\n\t\t\t\tRespExample: example.ResponseExample,\n\t\t\t}\n\t\t}\n\n\t\ttoolInfos = append(toolInfos, toolInfo)\n\t}\n\n\tei.Tools = toolInfos\n\n\tauthInfo := plugin.GetAuthInfo()\n\n\tauthMode := ptr.Of(productAPI.PluginAuthMode_NoAuth)\n\tif authInfo != nil {\n\t\tif authInfo.Type == consts.AuthzTypeOfService || authInfo.Type == consts.AuthzTypeOfOAuth {\n\t\t\tauthMode = ptr.Of(productAPI.PluginAuthMode_Required)\n\t\t\terr := plugin.Manifest.Validate(false)\n\t\t\tif err != nil {\n\t\t\t\tlogs.CtxWarnf(ctx, \"validate plugin manifest failed, err=%v\", err)\n\t\t\t} else {\n\t\t\t\tauthMode = ptr.Of(productAPI.PluginAuthMode_Configured)\n\t\t\t}\n\t\t} else if authInfo.Type == consts.AuthTypeOfSaasInstalled {\n\t\t\tauthMode = ptr.Of(productAPI.PluginAuthMode_NeedInstalled)\n\t\t}\n\t}\n\n\tei.AuthMode = authMode\n\n\treturn ei, nil\n}\n\nfunc (p *PluginApplicationService) PublicGetProductDetail(ctx context.Context, req *productAPI.GetProductDetailRequest) (resp *productAPI.GetProductDetailResponse, err error) {\n\tplugin, exist, err := p.pluginRepo.GetOnlinePlugin(ctx, req.GetEntityID())\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetOnlinePlugin failed, pluginID=%d\", req.GetEntityID())\n\t}\n\tif !exist {\n\t\treturn nil, errorx.New(errno.ErrPluginRecordNotFound)\n\t}\n\n\ttools, err := p.toolRepo.GetPluginAllOnlineTools(ctx, plugin.ID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetPluginAllOnlineTools failed, pluginID=%d\", plugin.ID)\n\t}\n\tpi, err := p.buildProductInfo(ctx, plugin, tools)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp = &productAPI.GetProductDetailResponse{\n\t\tData: &productAPI.GetProductDetailData{\n\t\t\tMetaInfo:    pi.MetaInfo,\n\t\t\tPluginExtra: pi.PluginExtra,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) validateDraftPluginAccess(ctx context.Context, pluginID int64) (plugin *entity.PluginInfo, err error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrPluginPermissionCode, errorx.KV(errno.PluginMsgKey, \"session is required\"))\n\t}\n\n\tplugin, err = p.DomainSVC.GetDraftPlugin(ctx, pluginID)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetDraftPlugin failed, pluginID=%d\", pluginID)\n\t}\n\n\tif plugin.DeveloperID != *uid {\n\t\treturn nil, errorx.New(errno.ErrPluginPermissionCode, errorx.KV(errno.PluginMsgKey, \"you are not the plugin owner\"))\n\t}\n\n\treturn plugin, nil\n}\n\n// convertPluginToProductInfo converts a plugin entity to ProductInfo\nfunc convertPluginToProductInfo(plugin *entity.PluginInfo) *productAPI.ProductInfo {\n\n\tisOfficial := func() bool {\n\t\tif plugin.SaasPluginExtra == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn plugin.SaasPluginExtra.IsOfficial\n\t}()\n\treturn &productAPI.ProductInfo{\n\t\tMetaInfo: &productAPI.ProductMetaInfo{\n\t\t\tID:          plugin.GetRefProductID(),\n\t\t\tName:        plugin.GetName(),\n\t\t\tEntityID:    plugin.ID,\n\t\t\tDescription: plugin.GetDesc(),\n\t\t\tIconURL:     plugin.GetIconURI(),\n\t\t\tListedAt:    plugin.CreatedAt,\n\t\t\tEntityType: func() productCommon.ProductEntityType {\n\t\t\t\tif ptr.From(plugin.Source) == bot_common.PluginFrom_FromSaas {\n\t\t\t\t\treturn productCommon.ProductEntityType_SaasPlugin\n\t\t\t\t}\n\t\t\t\treturn productCommon.ProductEntityType_Plugin\n\t\t\t}(),\n\t\t\tIsOfficial: isOfficial,\n\t\t\tStatus:     productCommon.ProductStatus_Listed,\n\t\t\tUserInfo: &productCommon.UserInfo{\n\t\t\t\tName: func() string {\n\t\t\t\t\tif isOfficial {\n\t\t\t\t\t\treturn \"Coze Official\"\n\t\t\t\t\t}\n\t\t\t\t\treturn \"Coze Community\"\n\t\t\t\t}(),\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc (p *PluginApplicationService) convertPluginsToProductInfos(ctx context.Context, plugins []*entity.PluginInfo, tools map[int64][]*entity.ToolInfo) []*productAPI.ProductInfo {\n\tproducts := make([]*productAPI.ProductInfo, 0, len(plugins))\n\tfor _, plugin := range plugins {\n\t\tvar pExtra *productAPI.PluginExtraInfo\n\t\tif tool, exist := tools[plugin.ID]; exist {\n\t\t\tpluginExtra, err := p.buildPluginProductExtraInfo(ctx, plugin, tool)\n\t\t\tif err != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"buildPluginProductExtraInfo failed: %v\", err)\n\t\t\t} else {\n\t\t\t\tpExtra = pluginExtra\n\t\t\t}\n\t\t}\n\t\tpi := convertPluginToProductInfo(plugin)\n\t\tpi.PluginExtra = pExtra\n\t\tproducts = append(products, pi)\n\t}\n\treturn products\n}\nfunc (p *PluginApplicationService) convertPluginsToMetaInfos(ctx context.Context, plugins []*entity.PluginInfo, tools map[int64][]*entity.ToolInfo) []*productAPI.ProductMetaInfo {\n\tproducts := make([]*productAPI.ProductMetaInfo, 0, len(plugins))\n\tfor _, plugin := range plugins {\n\t\tpi := &productAPI.ProductMetaInfo{\n\t\t\tID:          plugin.ID,\n\t\t\tName:        plugin.GetName(),\n\t\t\tDescription: plugin.GetDesc(),\n\t\t\tIconURL:     plugin.GetIconURI(),\n\t\t\tListedAt:    plugin.CreatedAt,\n\t\t\tEntityID:    plugin.ID,\n\t\t}\n\t\tproducts = append(products, pi)\n\t}\n\treturn products\n}\n\nfunc (p *PluginApplicationService) getSaasPluginList(ctx context.Context, domainReq *dto.ListSaasPluginProductsRequest) (*dto.ListPluginProductsResponse, error) {\n\treturn p.DomainSVC.ListSaasPluginProducts(ctx, domainReq)\n}\n\nfunc (p *PluginApplicationService) getSaasPluginToolsList(ctx context.Context, pluginIDs []int64) (map[int64][]*entity.ToolInfo, error) {\n\ttools, _, err := p.DomainSVC.BatchGetSaasPluginToolsInfo(ctx, pluginIDs)\n\treturn tools, err\n}\n\nfunc (p *PluginApplicationService) GetCozeSaasPluginList(ctx context.Context, req *productAPI.GetProductListRequest) (resp *productAPI.GetProductListResponse, err error) {\n\tdomainResp, err := p.getSaasPluginList(ctx, &dto.ListSaasPluginProductsRequest{\n\t\tPageNum:     ptr.Of(req.PageNum),\n\t\tPageSize:    ptr.Of(req.PageSize),\n\t\tKeyword:     req.Keyword,\n\t\tEntityTypes: req.EntityTypes,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"ListSaasPluginProducts failed: %v\", err)\n\t\treturn nil, err\n\t}\n\n\t// tools\n\tpluginIDs := make([]int64, 0, len(domainResp.Plugins))\n\tfor _, product := range domainResp.Plugins {\n\t\tpluginIDs = append(pluginIDs, product.ID)\n\t}\n\n\ttools, err := p.getSaasPluginToolsList(ctx, pluginIDs)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"BatchGetSaasPluginToolsInfo failed: %v\", err)\n\t\treturn nil, err\n\t}\n\n\tproducts := p.convertPluginsToProductInfos(ctx, domainResp.Plugins, tools)\n\n\treturn &productAPI.GetProductListResponse{\n\t\tCode:    0,\n\t\tMessage: \"success\",\n\t\tData: &productAPI.GetProductListData{\n\t\t\tProducts: products,\n\t\t\tTotal:    int32(domainResp.Total),\n\t\t\tHasMore:  domainResp.HasMore,\n\t\t},\n\t}, nil\n}\n\nfunc (p *PluginApplicationService) PublicSearchProduct(ctx context.Context, req *productAPI.SearchProductRequest) (resp *productAPI.SearchProductResponse, err error) {\n\tdomainResp, err := p.getSaasPluginList(ctx, &dto.ListSaasPluginProductsRequest{\n\t\tPageNum:  ptr.Of(req.PageNum),\n\t\tPageSize: ptr.Of(req.PageSize),\n\t\tKeyword:  ptr.Of(req.Keyword),\n\t\tEntityTypes: func() []productCommon.ProductEntityType {\n\t\t\tif req.EntityTypes == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn p.convertEntityTypesStrToSlice(*req.EntityTypes)\n\t\t}(),\n\t\tCategoryIDs:     req.CategoryIDs,\n\t\tIsOfficial:      req.IsOfficial,\n\t\tPluginType:      req.PluginType,\n\t\tProductPaidType: req.ProductPaidType,\n\t\tSortType:        req.SortType,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"ListSaasPluginProducts failed: %v\", err)\n\t\treturn nil, err\n\t}\n\t// tools\n\tpluginIDs := make([]int64, 0, len(domainResp.Plugins))\n\tfor _, product := range domainResp.Plugins {\n\t\tpluginIDs = append(pluginIDs, product.ID)\n\t}\n\n\ttools, err := p.getSaasPluginToolsList(ctx, pluginIDs)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"BatchGetSaasPluginToolsInfo failed: %v\", err)\n\t\treturn nil, err\n\t}\n\n\tproducts := p.convertPluginsToProductInfos(ctx, domainResp.Plugins, tools)\n\n\treturn &productAPI.SearchProductResponse{\n\t\tCode:    0,\n\t\tMessage: \"success\",\n\t\tData: &productAPI.SearchProductResponseData{\n\t\t\tProducts: products,\n\t\t\tTotal:    ptr.Of(int32(domainResp.Total)),\n\t\t\tHasMore:  ptr.Of(domainResp.HasMore),\n\t\t},\n\t}, nil\n}\n\nfunc (p *PluginApplicationService) convertEntityTypesStrToSlice(entityTypesStr string) []productCommon.ProductEntityType {\n\tvar entityTypes []productCommon.ProductEntityType\n\tif entityTypesStr != \"\" {\n\t\ttypeStrs := strings.Split(entityTypesStr, \",\")\n\t\tfor _, typeStr := range typeStrs {\n\t\t\ttypeStr = strings.TrimSpace(typeStr)\n\t\t\tif typeStr != \"\" {\n\t\t\t\tif entityType, err := productCommon.ProductEntityTypeFromString(typeStr); err == nil {\n\t\t\t\t\tentityTypes = append(entityTypes, entityType)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn entityTypes\n}\nfunc (p *PluginApplicationService) PublicSearchSuggest(ctx context.Context, req *productAPI.SearchSuggestRequest) (resp *productAPI.SearchSuggestResponse, err error) {\n\tdomainResp, err := p.getSaasPluginList(ctx, &dto.ListSaasPluginProductsRequest{\n\t\tPageNum:  req.PageNum,\n\t\tPageSize: req.PageSize,\n\t\tKeyword:  req.Keyword,\n\t\tEntityTypes: func() []productCommon.ProductEntityType {\n\t\t\tif req.EntityTypes == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn p.convertEntityTypesStrToSlice(*req.EntityTypes)\n\t\t}(),\n\t})\n\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"ListSaasPluginProducts for suggestions failed: %v\", err)\n\t\treturn nil, err\n\t}\n\n\t// tools\n\tpluginIDs := make([]int64, 0, len(domainResp.Plugins))\n\tfor _, product := range domainResp.Plugins {\n\t\tpluginIDs = append(pluginIDs, product.ID)\n\t}\n\n\ttools, err := p.getSaasPluginToolsList(ctx, pluginIDs)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"BatchGetSaasPluginToolsInfo failed: %v\", err)\n\t\treturn nil, err\n\t}\n\n\tsuggestionProducts := p.convertPluginsToProductInfos(ctx, domainResp.Plugins, tools)\n\n\treturn &productAPI.SearchSuggestResponse{\n\t\tCode:    0,\n\t\tMessage: \"success\",\n\t\tData: &productAPI.SearchSuggestResponseData{\n\t\t\tSuggestionV2: suggestionProducts,\n\t\t\tSuggestions:  p.convertPluginsToMetaInfos(ctx, domainResp.Plugins, tools),\n\t\t\tHasMore:      ptr.Of(domainResp.HasMore),\n\t\t},\n\t}, nil\n}\n\nfunc (p *PluginApplicationService) GetSaasProductCategoryList(ctx context.Context, req *productAPI.GetProductCategoryListRequest) (resp *productAPI.GetProductCategoryListResponse, err error) {\n\n\tdomainReq := &dto.ListPluginCategoriesRequest{}\n\n\tif req.GetEntityType() == productCommon.ProductEntityType_SaasPlugin {\n\t\tdomainReq.EntityType = ptr.Of(\"plugin\")\n\t}\n\n\tdomainResp, err := p.DomainSVC.ListSaasPluginCategories(ctx, domainReq)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"ListSaasPluginCategories failed: %v\", err)\n\t\treturn nil, err\n\t}\n\n\t// 转换响应数据\n\tcategories := make([]*productAPI.ProductCategory, 0)\n\tif domainResp.Data != nil && domainResp.Data.Items != nil {\n\t\tfor _, item := range domainResp.Data.Items {\n\t\t\t// 将字符串 ID 转换为 int64\n\t\t\tcategoryID, _ := strconv.ParseInt(item.ID, 10, 64)\n\t\t\tcategories = append(categories, &productAPI.ProductCategory{\n\t\t\t\tID:   categoryID,\n\t\t\t\tName: item.Name,\n\t\t\t})\n\t\t}\n\t}\n\n\treturn &productAPI.GetProductCategoryListResponse{\n\t\tCode:    0,\n\t\tMessage: \"success\",\n\t\tData: &productAPI.GetProductCategoryListData{\n\t\t\tEntityType: req.GetEntityType(),\n\t\t\tCategories: categories,\n\t\t},\n\t}, nil\n}\n\nfunc (p *PluginApplicationService) GetProductCallInfo(ctx context.Context, req *productAPI.GetProductCallInfoRequest) (resp *productAPI.GetProductCallInfoResponse, err error) {\n\tuserInfo, err := p.userSVC.GetSaasUserInfo(ctx)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"GetSaasUserInfo failed: %v\", err)\n\t\treturn nil, err\n\t}\n\n\tbenefit, err := p.userSVC.GetUserBenefit(ctx)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"GetUserBenefit failed: %v\", err)\n\t\treturn nil, err\n\t}\n\n\t// Build response data\n\tdata := &productAPI.GetProductCallInfoData{\n\t\tUserInfo: &productAPI.UserInfo{\n\t\t\tUserName:  ptr.Of(userInfo.UserName),\n\t\t\tNickName:  ptr.Of(userInfo.NickName),\n\t\t\tAvatarURL: ptr.Of(userInfo.AvatarURL),\n\t\t},\n\t}\n\n\tif benefit != nil {\n\t\tdata.UserLevel = func() productAPI.UserLevel {\n\t\t\tswitch benefit.UserLevel {\n\t\t\tcase userEntity.UserLevelPro:\n\t\t\t\treturn productAPI.UserLevel_ProPersonal\n\t\t\tcase userEntity.UserLevelEnterprise:\n\t\t\t\treturn productAPI.UserLevel_Enterprise\n\t\t\tdefault:\n\t\t\t\treturn productAPI.UserLevel_Free\n\t\t\t}\n\t\t}()\n\t\tdata.CallCountLimit = &productAPI.ProductCallCountLimit{\n\t\t\tIsUnlimited:   benefit.IsUnlimited,\n\t\t\tUsedCount:     benefit.UsedCount,\n\t\t\tTotalCount:    benefit.TotalCount,\n\t\t\tResetDatetime: benefit.ResetDatetime,\n\t\t}\n\t\tdata.CallRateLimit = &productAPI.ProductCallRateLimit{\n\t\t\tQPS: benefit.CallQPS,\n\t\t}\n\t}\n\n\treturn &productAPI.GetProductCallInfoResponse{\n\t\tCode:    0,\n\t\tMessage: \"success\",\n\t\tData:    data,\n\t}, nil\n}\n\nfunc (p *PluginApplicationService) GetMarketPluginConfig(ctx context.Context, req *productAPI.GetMarketPluginConfigRequest) (resp *productAPI.GetMarketPluginConfigResponse, err error) {\n\n\tbaseConfig, err := config.Base().GetBaseConfig(ctx)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"GetBaseConfig failed: %v\", err)\n\t\treturn nil, err\n\t}\n\n\tcozeSaasPluginEnabled := baseConfig.PluginConfiguration.CozeSaasPluginEnabled\n\tsaasAPIKey := baseConfig.PluginConfiguration.CozeAPIToken\n\n\tenableSaasPlugin := cozeSaasPluginEnabled && len(saasAPIKey) > 0\n\n\tresp = &productAPI.GetMarketPluginConfigResponse{\n\t\tCode:    0,\n\t\tMessage: \"success\",\n\t\tData: &productAPI.Configuration{\n\t\t\tEnableSaasPlugin: &enableSaasPlugin,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n"
  },
  {
    "path": "backend/application/plugin/plugin_test.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage plugin\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"go.uber.org/mock/gomock\"\n\n\tproductAPI \"github.com/coze-dev/coze-studio/backend/api/model/marketplace/product_public_api\"\n\tpluginCommon \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/dto\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/entity\"\n\tmockPlugin \"github.com/coze-dev/coze-studio/backend/internal/mock/domain/plugin\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n)\n\nfunc TestPluginApplicationService_GetCozeSaasPluginList(t *testing.T) {\n\tctrl := gomock.NewController(t)\n\tdefer ctrl.Finish()\n\n\tmockDomainSVC := mockPlugin.NewMockPluginService(ctrl)\n\n\tservice := &PluginApplicationService{\n\t\tDomainSVC: mockDomainSVC,\n\t}\n\n\tctx := context.Background()\n\treq := &productAPI.GetProductListRequest{}\n\n\tt.Run(\"Success - Normal case with plugins\", func(t *testing.T) {\n\t\t// Prepare test data\n\t\ttestPlugins := []*entity.PluginInfo{\n\t\t\tcreateTestPluginInfo(1, \"Test Plugin 1\", \"Description 1\"),\n\t\t\tcreateTestPluginInfo(2, \"Test Plugin 2\", \"Description 2\"),\n\t\t}\n\n\t\tdomainResp := &dto.ListPluginProductsResponse{\n\t\t\tPlugins: testPlugins,\n\t\t\tTotal:   2,\n\t\t}\n\n\t\t// Setup mock expectations\n\t\tmockDomainSVC.EXPECT().\n\t\t\tListSaasPluginProducts(ctx, gomock.Any()).\n\t\t\tReturn(domainResp, nil).\n\t\t\tTimes(1)\n\n\t\t// Mock BatchGetSaasPluginToolsInfo\n\t\tmockDomainSVC.EXPECT().\n\t\t\tBatchGetSaasPluginToolsInfo(ctx, []int64{1, 2}).\n\t\t\tReturn(map[int64][]*entity.ToolInfo{\n\t\t\t\t1: {},\n\t\t\t\t2: {},\n\t\t\t}, map[int64]*entity.PluginInfo{}, nil).\n\t\t\tTimes(1)\n\n\t\t// Execute the method\n\t\tresp, err := service.GetCozeSaasPluginList(ctx, req)\n\n\t\t// Assertions\n\t\tassert.NoError(t, err)\n\t\tassert.NotNil(t, resp)\n\t\tassert.Equal(t, int32(0), resp.Code)\n\t\tassert.Equal(t, \"success\", resp.Message)\n\t\tassert.NotNil(t, resp.Data)\n\t\tassert.Equal(t, int32(2), resp.Data.Total)\n\t\tassert.False(t, resp.Data.HasMore)\n\t\tassert.Len(t, resp.Data.Products, 2)\n\n\t\t// Verify product info conversion\n\t\tproduct1 := resp.Data.Products[0]\n\t\tassert.Equal(t, int64(1), product1.MetaInfo.ID)\n\t\tassert.Equal(t, int64(1), product1.MetaInfo.EntityID)\n\t\tassert.Equal(t, \"Test Plugin 1\", product1.MetaInfo.Name)\n\t\tassert.Equal(t, \"Description 1\", product1.MetaInfo.Description)\n\t\tassert.Equal(t, \"https://example.com/icon.png\", product1.MetaInfo.IconURL)\n\t\tassert.Equal(t, int64(1640995200), product1.MetaInfo.ListedAt)\n\t\tassert.NotNil(t, product1.PluginExtra)\n\t\tassert.True(t, product1.PluginExtra.IsOfficial) // buildPluginProductExtraInfo always sets IsOfficial to true\n\t})\n\n\tt.Run(\"Error - ListSaasPluginProducts returns error\", func(t *testing.T) {\n\t\t// Setup mock to return error\n\t\texpectedError := errors.New(\"failed to fetch SaaS plugins\")\n\t\tmockDomainSVC.EXPECT().\n\t\t\tListSaasPluginProducts(ctx, gomock.Any()).\n\t\t\tReturn(nil, expectedError).\n\t\t\tTimes(1)\n\n\t\t// Execute the method\n\t\tresp, err := service.GetCozeSaasPluginList(ctx, req)\n\n\t\t// Assertions\n\t\tassert.Error(t, err) // The method returns error when domain service fails\n\t\tassert.Nil(t, resp)\n\t\tassert.Contains(t, err.Error(), \"failed to fetch SaaS plugins\")\n\t})\n\n\tt.Run(\"Success - Empty plugin list\", func(t *testing.T) {\n\t\t// Prepare empty response\n\t\tdomainResp := &dto.ListPluginProductsResponse{\n\t\t\tPlugins: []*entity.PluginInfo{},\n\t\t\tTotal:   0,\n\t\t}\n\n\t\t// Setup mock expectations\n\t\tmockDomainSVC.EXPECT().\n\t\t\tListSaasPluginProducts(ctx, gomock.Any()).\n\t\t\tReturn(domainResp, nil).\n\t\t\tTimes(1)\n\n\t\t// Mock BatchGetSaasPluginToolsInfo for empty list\n\t\tmockDomainSVC.EXPECT().\n\t\t\tBatchGetSaasPluginToolsInfo(ctx, []int64{}).\n\t\t\tReturn(map[int64][]*entity.ToolInfo{}, map[int64]*entity.PluginInfo{}, nil).\n\t\t\tTimes(1)\n\n\t\t// Execute the method\n\t\tresp, err := service.GetCozeSaasPluginList(ctx, req)\n\n\t\t// Assertions\n\t\tassert.NoError(t, err)\n\t\tassert.NotNil(t, resp)\n\t\tassert.Equal(t, int32(0), resp.Code)\n\t\tassert.Equal(t, \"success\", resp.Message)\n\t\tassert.NotNil(t, resp.Data)\n\t\tassert.Equal(t, int32(0), resp.Data.Total)\n\t\tassert.False(t, resp.Data.HasMore)\n\t\tassert.Len(t, resp.Data.Products, 0)\n\t\tassert.Empty(t, resp.Data.Products)\n\t})\n\n\tt.Run(\"Success - Multiple plugins\", func(t *testing.T) {\n\t\t// Prepare test data with multiple plugins\n\t\ttestPlugins := []*entity.PluginInfo{\n\t\t\tcreateTestPluginInfo(100, \"Weather Plugin\", \"Get weather information\"),\n\t\t\tcreateTestPluginInfo(200, \"Translation Plugin\", \"Translate text between languages\"),\n\t\t\tcreateTestPluginInfo(300, \"Calculator Plugin\", \"Perform mathematical calculations\"),\n\t\t\tcreateTestPluginInfo(400, \"News Plugin\", \"Get latest news updates\"),\n\t\t\tcreateTestPluginInfo(500, \"Email Plugin\", \"Send and manage emails\"),\n\t\t}\n\n\t\tdomainResp := &dto.ListPluginProductsResponse{\n\t\t\tPlugins: testPlugins,\n\t\t\tTotal:   5,\n\t\t}\n\n\t\t// Setup mock expectations\n\t\tmockDomainSVC.EXPECT().\n\t\t\tListSaasPluginProducts(ctx, gomock.Any()).\n\t\t\tReturn(domainResp, nil).\n\t\t\tTimes(1)\n\n\t\t// Mock BatchGetSaasPluginToolsInfo for multiple plugins\n\t\tmockDomainSVC.EXPECT().\n\t\t\tBatchGetSaasPluginToolsInfo(ctx, []int64{100, 200, 300, 400, 500}).\n\t\t\tReturn(map[int64][]*entity.ToolInfo{\n\t\t\t\t100: {},\n\t\t\t\t200: {},\n\t\t\t\t300: {},\n\t\t\t\t400: {},\n\t\t\t\t500: {},\n\t\t\t}, map[int64]*entity.PluginInfo{}, nil).\n\t\t\tTimes(1)\n\n\t\t// Execute the method\n\t\tresp, err := service.GetCozeSaasPluginList(ctx, req)\n\n\t\t// Assertions\n\t\tassert.NoError(t, err)\n\t\tassert.NotNil(t, resp)\n\t\tassert.Equal(t, int32(0), resp.Code)\n\t\tassert.Equal(t, \"success\", resp.Message)\n\t\tassert.NotNil(t, resp.Data)\n\t\tassert.Equal(t, int32(5), resp.Data.Total)\n\t\tassert.False(t, resp.Data.HasMore)\n\t\tassert.Len(t, resp.Data.Products, 5)\n\n\t\t// Verify all plugins are converted correctly\n\t\texpectedNames := []string{\"Weather Plugin\", \"Translation Plugin\", \"Calculator Plugin\", \"News Plugin\", \"Email Plugin\"}\n\t\texpectedIDs := []int64{100, 200, 300, 400, 500}\n\n\t\tfor i, product := range resp.Data.Products {\n\t\t\tassert.Equal(t, expectedIDs[i], product.MetaInfo.ID)\n\t\t\tassert.Equal(t, expectedIDs[i], product.MetaInfo.EntityID)\n\t\t\tassert.Equal(t, expectedNames[i], product.MetaInfo.Name)\n\t\t\tassert.Equal(t, \"https://example.com/icon.png\", product.MetaInfo.IconURL)\n\t\t\tassert.Equal(t, int64(1640995200), product.MetaInfo.ListedAt)\n\t\t\tassert.NotNil(t, product.PluginExtra)\n\t\t\tassert.True(t, product.PluginExtra.IsOfficial) // buildPluginProductExtraInfo always sets IsOfficial to true\n\t\t}\n\t})\n}\n\n// createTestPluginInfo creates a test PluginInfo entity for testing\nfunc createTestPluginInfo(id int64, name, desc string) *entity.PluginInfo {\n\tmanifest := &model.PluginManifest{\n\t\tSchemaVersion:       \"v1\",\n\t\tNameForModel:        name,\n\t\tNameForHuman:        name,\n\t\tDescriptionForModel: desc,\n\t\tDescriptionForHuman: desc,\n\t\tLogoURL:             \"https://example.com/icon.png\",\n\t\tAuth: &model.AuthV2{\n\t\t\tType: consts.AuthzTypeOfNone,\n\t\t},\n\t\tAPI: model.APIDesc{\n\t\t\tType: \"openapi\",\n\t\t},\n\t}\n\n\tpluginInfo := &model.PluginInfo{\n\t\tID:           id,\n\t\tPluginType:   pluginCommon.PluginType_PLUGIN,\n\t\tSpaceID:      0,\n\t\tDeveloperID:  0,\n\t\tAPPID:        nil,\n\t\tRefProductID: ptr.Of(id), // Set RefProductID to the same as ID\n\t\tIconURI:      ptr.Of(\"https://example.com/icon.png\"),\n\t\tServerURL:    ptr.Of(\"\"),\n\t\tCreatedAt:    1640995200, // 2022-01-01 00:00:00\n\t\tUpdatedAt:    1640995200,\n\t\tSaasPluginExtra: &model.SaasPluginExtraInfo{\n\t\t\tIsOfficial: false,\n\t\t},\n\t\tManifest: manifest,\n\t}\n\n\treturn entity.NewPluginInfo(pluginInfo)\n}\n\n// createTestPluginInfoWithCustomIcon creates a test PluginInfo entity with custom icon for testing\nfunc createTestPluginInfoWithCustomIcon(id int64, name, desc, iconURL string) *entity.PluginInfo {\n\tmanifest := &model.PluginManifest{\n\t\tSchemaVersion:       \"v1\",\n\t\tNameForModel:        name,\n\t\tNameForHuman:        name,\n\t\tDescriptionForModel: desc,\n\t\tDescriptionForHuman: desc,\n\t\tLogoURL:             iconURL,\n\t\tAuth: &model.AuthV2{\n\t\t\tType: consts.AuthzTypeOfNone,\n\t\t},\n\t\tAPI: model.APIDesc{\n\t\t\tType: \"openapi\",\n\t\t},\n\t}\n\n\tpluginInfo := &model.PluginInfo{\n\t\tID:          id,\n\t\tPluginType:  pluginCommon.PluginType_PLUGIN,\n\t\tSpaceID:     0,\n\t\tDeveloperID: 0,\n\t\tAPPID:       nil,\n\t\tIconURI:     ptr.Of(iconURL),\n\t\tServerURL:   ptr.Of(\"\"),\n\t\tCreatedAt:   1640995200,\n\t\tUpdatedAt:   1640995200,\n\t\tManifest:    manifest,\n\t}\n\n\treturn entity.NewPluginInfo(pluginInfo)\n}\n\n// createTestDomainResponse creates a test domain response for testing\nfunc createTestDomainResponse(plugins []*entity.PluginInfo) *dto.ListPluginProductsResponse {\n\treturn &dto.ListPluginProductsResponse{\n\t\tPlugins: plugins,\n\t\tTotal:   int64(len(plugins)),\n\t}\n}\n"
  },
  {
    "path": "backend/application/plugin/registration.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage plugin\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n\n\t\"github.com/bytedance/sonic\"\n\t\"github.com/getkin/kin-openapi/openapi3\"\n\t\"gopkg.in/yaml.v3\"\n\n\tpluginAPI \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop\"\n\tcommon \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n\tresCommon \"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/convert\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/dto\"\n\tsearchEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\tcommonConsts \"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc (p *PluginApplicationService) RegisterPluginMeta(ctx context.Context, req *pluginAPI.RegisterPluginMetaRequest) (resp *pluginAPI.RegisterPluginMetaResponse, err error) {\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrPluginPermissionCode, errorx.KV(errno.PluginMsgKey, \"session is required\"))\n\t}\n\n\t_authType, ok := convert.ToAuthType(req.GetAuthType())\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"invalid auth type '%d'\", req.GetAuthType())\n\t}\n\tauthType := ptr.Of(_authType)\n\n\tvar authSubType *consts.AuthzSubType\n\tif req.SubAuthType != nil {\n\t\t_authSubType, ok := convert.ToAuthSubType(req.GetSubAuthType())\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"invalid sub authz type '%d'\", req.GetSubAuthType())\n\t\t}\n\t\tauthSubType = ptr.Of(_authSubType)\n\t}\n\n\tvar loc consts.HTTPParamLocation\n\tif *authType == consts.AuthzTypeOfService {\n\t\tif req.GetLocation() == common.AuthorizationServiceLocation_Query {\n\t\t\tloc = consts.ParamInQuery\n\t\t} else if req.GetLocation() == common.AuthorizationServiceLocation_Header {\n\t\t\tloc = consts.ParamInHeader\n\t\t} else {\n\t\t\treturn nil, fmt.Errorf(\"invalid location '%s'\", req.GetLocation())\n\t\t}\n\t}\n\n\tr := &dto.CreateDraftPluginRequest{\n\t\tPluginType:   req.GetPluginType(),\n\t\tSpaceID:      req.GetSpaceID(),\n\t\tDeveloperID:  *userID,\n\t\tIconURI:      req.Icon.URI,\n\t\tProjectID:    req.ProjectID,\n\t\tName:         req.GetName(),\n\t\tDesc:         req.GetDesc(),\n\t\tServerURL:    req.GetURL(),\n\t\tCommonParams: req.CommonParams,\n\t\tAuthInfo: &dto.PluginAuthInfo{\n\t\t\tAuthzType:    authType,\n\t\t\tLocation:     ptr.Of(loc),\n\t\t\tKey:          req.Key,\n\t\t\tServiceToken: req.ServiceToken,\n\t\t\tOAuthInfo:    req.OauthInfo,\n\t\t\tAuthzSubType: authSubType,\n\t\t\tAuthzPayload: req.AuthPayload,\n\t\t},\n\t}\n\tpluginID, err := p.DomainSVC.CreateDraftPlugin(ctx, r)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"CreateDraftPlugin failed\")\n\t}\n\n\terr = p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Created,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType:       resCommon.ResType_Plugin,\n\t\t\tResSubType:    ptr.Of(int32(req.GetPluginType())),\n\t\t\tResID:         pluginID,\n\t\t\tName:          &req.Name,\n\t\t\tSpaceID:       &req.SpaceID,\n\t\t\tAPPID:         req.ProjectID,\n\t\t\tOwnerID:       userID,\n\t\t\tPublishStatus: ptr.Of(resCommon.PublishStatus_UnPublished),\n\t\t\tCreateTimeMS:  ptr.Of(time.Now().UnixMilli()),\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"publish resource '%d' failed, err=%v\", pluginID, err)\n\t}\n\n\tresp = &pluginAPI.RegisterPluginMetaResponse{\n\t\tPluginID: pluginID,\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) RegisterPlugin(ctx context.Context, req *pluginAPI.RegisterPluginRequest) (resp *pluginAPI.RegisterPluginResponse, err error) {\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrPluginPermissionCode, errorx.KV(errno.PluginMsgKey, \"session is required\"))\n\t}\n\n\tmf := &model.PluginManifest{}\n\terr = sonic.UnmarshalString(req.AiPlugin, &mf)\n\tif err != nil {\n\t\treturn nil, errorx.New(errno.ErrPluginInvalidManifest, errorx.KV(errno.PluginMsgKey, err.Error()))\n\t}\n\n\tmf.LogoURL = commonConsts.DefaultPluginIcon\n\n\tdoc, err := openapi3.NewLoader().LoadFromData([]byte(req.Openapi))\n\tif err != nil {\n\t\treturn nil, errorx.New(errno.ErrPluginInvalidOpenapi3Doc, errorx.KV(errno.PluginMsgKey, err.Error()))\n\t}\n\n\tres, err := p.DomainSVC.CreateDraftPluginWithCode(ctx, &dto.CreateDraftPluginWithCodeRequest{\n\t\tSpaceID:     req.GetSpaceID(),\n\t\tDeveloperID: *userID,\n\t\tProjectID:   req.ProjectID,\n\t\tManifest:    mf,\n\t\tOpenapiDoc:  ptr.Of(model.Openapi3T(*doc)),\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"CreateDraftPluginWithCode failed\")\n\t}\n\n\terr = p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Created,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType:       resCommon.ResType_Plugin,\n\t\t\tResSubType:    ptr.Of(int32(res.Plugin.PluginType)),\n\t\t\tResID:         res.Plugin.ID,\n\t\t\tName:          ptr.Of(res.Plugin.GetName()),\n\t\t\tAPPID:         req.ProjectID,\n\t\t\tSpaceID:       &req.SpaceID,\n\t\t\tOwnerID:       userID,\n\t\t\tPublishStatus: ptr.Of(resCommon.PublishStatus_UnPublished),\n\t\t\tCreateTimeMS:  ptr.Of(time.Now().UnixMilli()),\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"publish resource '%d' failed, err=%v\", res.Plugin.ID, err)\n\t}\n\n\tresp = &pluginAPI.RegisterPluginResponse{\n\t\tData: &common.RegisterPluginData{\n\t\t\tPluginID: res.Plugin.ID,\n\t\t\tOpenapi:  req.Openapi,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PluginApplicationService) Convert2OpenAPI(ctx context.Context, req *pluginAPI.Convert2OpenAPIRequest) (resp *pluginAPI.Convert2OpenAPIResponse, err error) {\n\tres := p.DomainSVC.ConvertToOpenapi3Doc(ctx, &dto.ConvertToOpenapi3DocRequest{\n\t\tRawInput:        req.Data,\n\t\tPluginServerURL: req.PluginURL,\n\t})\n\n\tif res.ErrMsg != \"\" {\n\t\treturn &pluginAPI.Convert2OpenAPIResponse{\n\t\t\tCode:              errno.ErrPluginInvalidThirdPartyCode,\n\t\t\tMsg:               res.ErrMsg,\n\t\t\tDuplicateAPIInfos: []*common.DuplicateAPIInfo{},\n\t\t\tPluginDataFormat:  ptr.Of(res.Format),\n\t\t}, nil\n\t}\n\n\tdoc, err := yaml.Marshal(res.OpenapiDoc)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"marshal openapi doc failed, err=%v\", err)\n\t}\n\tmf, err := json.Marshal(res.Manifest)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"marshal manifest failed, err=%v\", err)\n\t}\n\n\tresp = &pluginAPI.Convert2OpenAPIResponse{\n\t\tPluginDataFormat:  ptr.Of(res.Format),\n\t\tOpenapi:           ptr.Of(string(doc)),\n\t\tAiPlugin:          ptr.Of(string(mf)),\n\t\tDuplicateAPIInfos: []*common.DuplicateAPIInfo{},\n\t}\n\n\treturn resp, nil\n}\n"
  },
  {
    "path": "backend/application/prompt/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage prompt\n\nimport (\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/application/search\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/prompt/repository\"\n\tprompt \"github.com/coze-dev/coze-studio/backend/domain/prompt/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n)\n\nfunc InitService(db *gorm.DB, idGenSVC idgen.IDGenerator, re search.ResourceEventBus) *PromptApplicationService {\n\trepo := repository.NewPromptRepo(db, idGenSVC)\n\tPromptSVC.DomainSVC = prompt.NewService(repo)\n\tPromptSVC.eventbus = re\n\n\treturn PromptSVC\n}\n"
  },
  {
    "path": "backend/application/prompt/prompt.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage prompt\n\nimport (\n\t\"context\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/application/search\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/prompt/entity\"\n\tprompt \"github.com/coze-dev/coze-studio/backend/domain/prompt/service\"\n\tsearchEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\ntype PromptApplicationService struct {\n\tDomainSVC prompt.Prompt\n\teventbus  search.ResourceEventBus\n}\n\nvar PromptSVC = &PromptApplicationService{}\n\nfunc (p *PromptApplicationService) UpsertPromptResource(ctx context.Context, req *playground.UpsertPromptResourceRequest) (resp *playground.UpsertPromptResourceResponse, err error) {\n\tsession := ctxutil.GetUserSessionFromCtx(ctx)\n\tif session == nil {\n\t\treturn nil, errorx.New(errno.ErrPromptPermissionCode, errorx.KV(\"msg\", \"no session data provided\"))\n\t}\n\n\tpromptID := req.Prompt.GetID()\n\tif promptID == 0 {\n\t\t// create a new prompt resource\n\t\tresp, err = p.createPromptResource(ctx, req)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpErr := p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\t\tOpType: searchEntity.Created,\n\t\t\tResource: &searchEntity.ResourceDocument{\n\t\t\t\tResType:       common.ResType_Prompt,\n\t\t\t\tResID:         resp.Data.ID,\n\t\t\t\tName:          req.Prompt.Name,\n\t\t\t\tSpaceID:       req.Prompt.SpaceID,\n\t\t\t\tOwnerID:       &session.UserID,\n\t\t\t\tPublishStatus: ptr.Of(common.PublishStatus_Published),\n\t\t\t},\n\t\t})\n\t\tif pErr != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"publish resource event failed: %v\", pErr)\n\t\t}\n\n\t\treturn resp, nil\n\t}\n\n\t// update an existing prompt resource\n\tresp, err = p.updatePromptResource(ctx, req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpErr := p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType: common.ResType_Prompt,\n\t\t\tResID:   resp.Data.ID,\n\t\t\tName:    req.Prompt.Name,\n\t\t\tSpaceID: req.Prompt.SpaceID,\n\t\t},\n\t})\n\tif pErr != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish resource event failed: %v\", pErr)\n\t}\n\n\treturn resp, nil\n}\n\nfunc (p *PromptApplicationService) GetPromptResourceInfo(ctx context.Context, req *playground.GetPromptResourceInfoRequest) (\n\tresp *playground.GetPromptResourceInfoResponse, err error,\n) {\n\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrPromptPermissionCode, errorx.KV(\"msg\", \"no session data provided\"))\n\t}\n\n\tpromptInfo, err := p.DomainSVC.GetPromptResource(ctx, req.GetPromptResourceID())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif promptInfo.CreatorID != *uid {\n\t\treturn nil, errorx.New(errno.ErrPromptPermissionCode, errorx.KV(\"msg\", \"no permission\"))\n\t}\n\n\treturn &playground.GetPromptResourceInfoResponse{\n\t\tData: promptInfoDo2To(promptInfo),\n\t\tCode: 0,\n\t}, nil\n}\n\nfunc (p *PromptApplicationService) GetOfficialPromptResourceList(ctx context.Context, c *playground.GetOfficialPromptResourceListRequest) (\n\t*playground.GetOfficialPromptResourceListResponse, error,\n) {\n\tsession := ctxutil.GetUserSessionFromCtx(ctx)\n\tif session == nil {\n\t\treturn nil, errorx.New(errno.ErrPromptPermissionCode, errorx.KV(\"msg\", \"no session data provided\"))\n\t}\n\n\tpromptList, err := p.DomainSVC.ListOfficialPromptResource(ctx, c.GetKeyword())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &playground.GetOfficialPromptResourceListResponse{\n\t\tPromptResourceList: slices.Transform(promptList, func(p *entity.PromptResource) *playground.PromptResource {\n\t\t\treturn promptInfoDo2To(p)\n\t\t}),\n\t\tCode: 0,\n\t}, nil\n}\n\nfunc (p *PromptApplicationService) DeletePromptResource(ctx context.Context, req *playground.DeletePromptResourceRequest) (resp *playground.DeletePromptResourceResponse, err error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrPromptPermissionCode, errorx.KV(\"msg\", \"no session data provided\"))\n\t}\n\n\tpromptInfo, err := p.DomainSVC.GetPromptResource(ctx, req.GetPromptResourceID())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif promptInfo.CreatorID != *uid {\n\t\treturn nil, errorx.New(errno.ErrPromptPermissionCode, errorx.KV(\"msg\", \"no permission\"))\n\t}\n\n\terr = p.DomainSVC.DeletePromptResource(ctx, req.GetPromptResourceID())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpErr := p.eventbus.PublishResources(ctx, &searchEntity.ResourceDomainEvent{\n\t\tOpType: searchEntity.Deleted,\n\t\tResource: &searchEntity.ResourceDocument{\n\t\t\tResType: common.ResType_Prompt,\n\t\t\tResID:   req.GetPromptResourceID(),\n\t\t},\n\t})\n\tif pErr != nil {\n\t\tlogs.CtxErrorf(ctx, \"publish resource event failed: %v\", pErr)\n\t}\n\n\treturn &playground.DeletePromptResourceResponse{\n\t\tCode: 0,\n\t}, nil\n}\n\nfunc (p *PromptApplicationService) createPromptResource(ctx context.Context, req *playground.UpsertPromptResourceRequest) (resp *playground.UpsertPromptResourceResponse, err error) {\n\tdo := p.toPromptResourceDO(req.Prompt)\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\n\tdo.CreatorID = *uid\n\n\tpromptID, err := p.DomainSVC.CreatePromptResource(ctx, do)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &playground.UpsertPromptResourceResponse{\n\t\tData: &playground.ShowPromptResource{\n\t\t\tID: promptID,\n\t\t},\n\t\tCode: 0,\n\t}, nil\n}\n\nfunc (p *PromptApplicationService) updatePromptResource(ctx context.Context, req *playground.UpsertPromptResourceRequest) (resp *playground.UpsertPromptResourceResponse, err error) {\n\tpromptID := req.Prompt.GetID()\n\n\tpromptResource, err := p.DomainSVC.GetPromptResource(ctx, promptID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlogs.CtxInfof(ctx, \"promptResource.SpaceID: %v , promptResource.CreatorID : %v\", promptResource.SpaceID, promptResource.CreatorID)\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\n\tif promptResource.CreatorID != *uid {\n\t\treturn nil, errorx.New(errno.ErrPromptPermissionCode, errorx.KV(\"msg\", \"no permission\"))\n\t}\n\n\terr = p.DomainSVC.UpdatePromptResource(ctx, promptID, req.Prompt.Name, req.Prompt.Description, req.Prompt.PromptText)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &playground.UpsertPromptResourceResponse{\n\t\tData: &playground.ShowPromptResource{\n\t\t\tID: promptID,\n\t\t},\n\t\tCode: 0,\n\t}, nil\n}\n\nfunc (p *PromptApplicationService) toPromptResourceDO(m *playground.PromptResource) *entity.PromptResource {\n\te := entity.PromptResource{}\n\te.ID = m.GetID()\n\te.PromptText = m.GetPromptText()\n\te.SpaceID = m.GetSpaceID()\n\te.Name = m.GetName()\n\te.Description = m.GetDescription()\n\n\treturn &e\n}\n\nfunc promptInfoDo2To(p *entity.PromptResource) *playground.PromptResource {\n\treturn &playground.PromptResource{\n\t\tID:          ptr.Of(p.ID),\n\t\tSpaceID:     ptr.Of(p.SpaceID),\n\t\tName:        ptr.Of(p.Name),\n\t\tDescription: ptr.Of(p.Description),\n\t\tPromptText:  ptr.Of(p.PromptText),\n\t}\n}\n"
  },
  {
    "path": "backend/application/search/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage search\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/application/singleagent\"\n\tapp \"github.com/coze-dev/coze-studio/backend/domain/app/service\"\n\tconnector \"github.com/coze-dev/coze-studio/backend/domain/connector/service\"\n\tknowledge \"github.com/coze-dev/coze-studio/backend/domain/knowledge/service\"\n\tdatabase \"github.com/coze-dev/coze-studio/backend/domain/memory/database/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/service\"\n\tprompt \"github.com/coze-dev/coze-studio/backend/domain/prompt/service\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/service\"\n\tuser \"github.com/coze-dev/coze-studio/backend/domain/user/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/cache\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/es\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/eventbus\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\ntype ServiceComponents struct {\n\tDB                   *gorm.DB\n\tCache                cache.Cmdable\n\tTOS                  storage.Storage\n\tESClient             es.Client\n\tProjectEventBus      ProjectEventBus\n\tResourceEventBus     ResourceEventBus\n\tSingleAgentDomainSVC singleagent.SingleAgent\n\tAPPDomainSVC         app.AppService\n\tKnowledgeDomainSVC   knowledge.Knowledge\n\tPluginDomainSVC      service.PluginService\n\tWorkflowDomainSVC    workflow.Service\n\tUserDomainSVC        user.User\n\tConnectorDomainSVC   connector.Connector\n\tPromptDomainSVC      prompt.Prompt\n\tDatabaseDomainSVC    database.Database\n}\n\nfunc InitService(ctx context.Context, s *ServiceComponents) (*SearchApplicationService, error) {\n\tsearchDomainSVC := search.NewDomainService(ctx, s.ESClient)\n\n\tSearchSVC.DomainSVC = searchDomainSVC\n\tSearchSVC.ServiceComponents = s\n\n\t// setup consumer\n\tsearchConsumer := search.NewProjectHandler(ctx, s.ESClient)\n\n\tlogs.Infof(\"start search domain consumer...\")\n\tnameServer := os.Getenv(consts.MQServer)\n\n\terr := eventbus.GetDefaultSVC().RegisterConsumer(nameServer, consts.RMQTopicApp, consts.RMQConsumeGroupApp, searchConsumer)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"register search consumer failed, err=%w\", err)\n\t}\n\n\tsearchResourceConsumer := search.NewResourceHandler(ctx, s.ESClient)\n\n\terr = eventbus.GetDefaultSVC().RegisterConsumer(nameServer, consts.RMQTopicResource, consts.RMQConsumeGroupResource, searchResourceConsumer)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"register search consumer failed, err=%w\", err)\n\t}\n\n\treturn SearchSVC, nil\n}\n\ntype (\n\tResourceEventBus = search.ResourceEventBus\n\tProjectEventBus  = search.ProjectEventBus\n)\n\nfunc NewResourceEventBus(p eventbus.Producer) search.ResourceEventBus {\n\treturn search.NewResourceEventBus(p)\n}\n\nfunc NewProjectEventBus(p eventbus.Producer) search.ProjectEventBus {\n\treturn search.NewProjectEventBus(p)\n}\n"
  },
  {
    "path": "backend/application/search/project_pack.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage search\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strconv\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/app/entity\"\n\tappService \"github.com/coze-dev/coze-studio/backend/domain/app/service\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\ntype projectInfo struct {\n\ticonURI string\n\tdesc    string\n}\n\ntype ProjectPacker interface {\n\tGetProjectInfo(ctx context.Context) (*projectInfo, error)\n\tGetPermissionInfo() *intelligence.IntelligencePermissionInfo\n\tGetPublishedInfo(ctx context.Context) *intelligence.IntelligencePublishInfo\n\tGetUserInfo(ctx context.Context, userID int64) *common.User\n}\n\nfunc NewPackProject(uid, projectID int64, tp common.IntelligenceType, s *SearchApplicationService) (ProjectPacker, error) {\n\tbase := projectBase{SVC: s, projectID: projectID, iType: tp, uid: uid}\n\n\tswitch tp {\n\tcase common.IntelligenceType_Bot:\n\t\treturn &agentPacker{projectBase: base}, nil\n\tcase common.IntelligenceType_Project:\n\t\treturn &appPacker{projectBase: base}, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"unsupported project_type: %d , project_id : %d\", tp, projectID)\n}\n\ntype projectBase struct {\n\tprojectID int64 // agent_id or application_id\n\tuid       int64\n\tSVC       *SearchApplicationService\n\tiType     common.IntelligenceType\n}\n\nfunc (p *projectBase) GetPermissionInfo() *intelligence.IntelligencePermissionInfo {\n\treturn &intelligence.IntelligencePermissionInfo{\n\t\tInCollaboration: false,\n\t\tCanDelete:       true,\n\t\tCanView:         true,\n\t}\n}\n\nfunc (p *projectBase) GetUserInfo(ctx context.Context, userID int64) *common.User {\n\tu, err := p.SVC.UserDomainSVC.GetUserInfo(ctx, userID)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"[projectBase-GetUserInfo] failed to get user info, user_id: %d, err: %v\", userID, err)\n\t\treturn nil\n\t}\n\n\treturn &common.User{\n\t\tUserID:         u.UserID,\n\t\tAvatarURL:      u.IconURL,\n\t\tUserUniqueName: u.UniqueName,\n\t}\n}\n\ntype agentPacker struct {\n\tprojectBase\n}\n\nfunc (a *agentPacker) GetProjectInfo(ctx context.Context) (*projectInfo, error) {\n\tagent, err := a.SVC.SingleAgentDomainSVC.GetSingleAgentDraft(ctx, a.projectID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif agent == nil {\n\t\treturn nil, fmt.Errorf(\"agent info is nil\")\n\t}\n\treturn &projectInfo{\n\t\ticonURI: agent.IconURI,\n\t\tdesc:    agent.Desc,\n\t}, nil\n}\n\nfunc (p *agentPacker) GetPublishedInfo(ctx context.Context) *intelligence.IntelligencePublishInfo {\n\tpubInfo, err := p.SVC.SingleAgentDomainSVC.GetPublishedInfo(ctx, p.projectID)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"[agent-GetPublishedInfo]failed to get published info, agent_id: %d, err: %v\", p.projectID, err)\n\n\t\treturn nil\n\t}\n\n\tconnectors := make([]*common.ConnectorInfo, 0, len(pubInfo.ConnectorID2PublishTime))\n\tfor connectorID := range pubInfo.ConnectorID2PublishTime {\n\t\tc, err := p.SVC.ConnectorDomainSVC.GetByID(ctx, connectorID)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"failed to get connector by id: %d, err: %v\", connectorID, err)\n\n\t\t\tcontinue\n\t\t}\n\n\t\tconnectors = append(connectors, &common.ConnectorInfo{\n\t\t\tID:              conv.Int64ToStr(c.ID),\n\t\t\tName:            c.Name,\n\t\t\tConnectorStatus: common.ConnectorDynamicStatus(c.ConnectorStatus),\n\t\t\tIcon:            c.URL,\n\t\t})\n\t}\n\n\treturn &intelligence.IntelligencePublishInfo{\n\t\tPublishTime:  conv.Int64ToStr(pubInfo.LastPublishTimeMS / 1000),\n\t\tHasPublished: pubInfo.LastPublishTimeMS > 0,\n\t\tConnectors:   connectors,\n\t}\n}\n\ntype appPacker struct {\n\tprojectBase\n}\n\nfunc (a *appPacker) GetProjectInfo(ctx context.Context) (*projectInfo, error) {\n\tapp, err := a.SVC.APPDomainSVC.GetDraftAPP(ctx, a.projectID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &projectInfo{\n\t\ticonURI: app.GetIconURI(),\n\t\tdesc:    app.GetDesc(),\n\t}, nil\n}\n\nfunc (a *appPacker) GetPublishedInfo(ctx context.Context) *intelligence.IntelligencePublishInfo {\n\trecord, exist, err := a.SVC.APPDomainSVC.GetAPPPublishRecord(ctx, &appService.GetAPPPublishRecordRequest{\n\t\tAPPID:  a.projectID,\n\t\tOldest: true,\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"[app-GetPublishedInfo] failed to get published info, app_id=%d, err=%v\", a.projectID, err)\n\t\treturn nil\n\t}\n\tif !exist {\n\t\treturn &intelligence.IntelligencePublishInfo{\n\t\t\tPublishTime:  \"\",\n\t\t\tHasPublished: false,\n\t\t\tConnectors:   nil,\n\t\t}\n\t}\n\n\tconnectorInfo := make([]*common.ConnectorInfo, 0, len(record.ConnectorPublishRecords))\n\tconnectorIDs := slices.Transform(record.ConnectorPublishRecords, func(c *entity.ConnectorPublishRecord) int64 {\n\t\treturn c.ConnectorID\n\t})\n\n\tconnectors, err := a.SVC.ConnectorDomainSVC.GetByIDs(ctx, connectorIDs)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"[app-GetPublishedInfo] failed to get connector info, app_id=%d, err=%v\", a.projectID, err)\n\t} else {\n\t\tfor _, c := range connectors {\n\t\t\tconnectorInfo = append(connectorInfo, &common.ConnectorInfo{\n\t\t\t\tID:              conv.Int64ToStr(c.ID),\n\t\t\t\tName:            c.Name,\n\t\t\t\tConnectorStatus: common.ConnectorDynamicStatus(c.ConnectorStatus),\n\t\t\t\tIcon:            c.URL,\n\t\t\t})\n\t\t}\n\t}\n\n\treturn &intelligence.IntelligencePublishInfo{\n\t\tPublishTime:  strconv.FormatInt(record.APP.GetPublishedAtMS()/1000, 10),\n\t\tHasPublished: record.APP.Published(),\n\t\tConnectors:   connectorInfo,\n\t}\n}\n"
  },
  {
    "path": "backend/application/search/project_search.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage search\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/marketplace/marketplace_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/marketplace/product_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/marketplace/product_public_api\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tsearch2 \"github.com/coze-dev/coze-studio/backend/crossdomain/search/model\"\n\tsearchEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ternary\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/taskgroup\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nvar projectType2iconURI = map[common.IntelligenceType]string{\n\tcommon.IntelligenceType_Bot:     consts.DefaultAgentIcon,\n\tcommon.IntelligenceType_Project: consts.DefaultAppIcon,\n}\n\nfunc (s *SearchApplicationService) GetDraftIntelligenceList(ctx context.Context, req *intelligence.GetDraftIntelligenceListRequest) (\n\tresp *intelligence.GetDraftIntelligenceListResponse, err error,\n) {\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrSearchPermissionCode, errorx.KV(\"msg\", \"session is required\"))\n\t}\n\n\tdo := searchRequestTo2Do(*userID, req)\n\n\tsearchResp, err := s.DomainSVC.SearchProjects(ctx, do)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(searchResp.Data) == 0 {\n\t\treturn &intelligence.GetDraftIntelligenceListResponse{\n\t\t\tData: &intelligence.DraftIntelligenceListData{\n\t\t\t\tIntelligences: make([]*intelligence.IntelligenceData, 0),\n\t\t\t\tTotal:         0,\n\t\t\t\tHasMore:       false,\n\t\t\t\tNextCursorID:  \"\",\n\t\t\t},\n\t\t}, nil\n\t}\n\n\ttasks := taskgroup.NewUninterruptibleTaskGroup(ctx, len(searchResp.Data))\n\tlock := sync.Mutex{}\n\tintelligenceDataList := make([]*intelligence.IntelligenceData, len(searchResp.Data))\n\n\tlogs.CtxDebugf(ctx, \"[GetDraftIntelligenceList] searchResp.Data: %v\", conv.DebugJsonToStr(searchResp.Data))\n\tif len(searchResp.Data) > 1 {\n\t\tfor idx := range searchResp.Data[1:] {\n\t\t\tindex := idx + 1\n\t\t\tdata := searchResp.Data[index]\n\t\t\ttasks.Go(func() error {\n\t\t\t\tinfo, err := s.packIntelligenceData(ctx, data)\n\t\t\t\tif err != nil {\n\t\t\t\t\tlogs.CtxErrorf(ctx, \"[packIntelligenceData] failed id %v, type %d , name %s, err: %v\", data.ID, data.Type, data.GetName(), err)\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\n\t\t\t\tlock.Lock()\n\t\t\t\tdefer lock.Unlock()\n\t\t\t\tintelligenceDataList[index] = info\n\t\t\t\treturn nil\n\t\t\t})\n\t\t}\n\t}\n\tif len(searchResp.Data) != 0 {\n\t\tinfo, err := s.packIntelligenceData(ctx, searchResp.Data[0])\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"[packIntelligenceData] failed id %v, type %d , name %s, err: %v\", searchResp.Data[0].ID, searchResp.Data[0].Type, searchResp.Data[0].GetName(), err)\n\t\t} else {\n\t\t\tlock.Lock()\n\t\t\tintelligenceDataList[0] = info\n\t\t\tlock.Unlock()\n\t\t}\n\t}\n\terr = tasks.Wait()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfilterDataList := make([]*intelligence.IntelligenceData, 0)\n\tfor _, data := range intelligenceDataList {\n\t\tif data != nil {\n\t\t\tfilterDataList = append(filterDataList, data)\n\t\t}\n\t}\n\n\treturn &intelligence.GetDraftIntelligenceListResponse{\n\t\tCode: 0,\n\t\tData: &intelligence.DraftIntelligenceListData{\n\t\t\tIntelligences: filterDataList,\n\t\t\tTotal:         int32(len(filterDataList)),\n\t\t\tHasMore:       searchResp.HasMore,\n\t\t\tNextCursorID:  searchResp.NextCursor,\n\t\t},\n\t}, nil\n}\n\nfunc (s *SearchApplicationService) PublicFavoriteProduct(ctx context.Context, req *product_public_api.FavoriteProductRequest) (*product_public_api.FavoriteProductResponse, error) {\n\tisFav := !req.GetIsCancel()\n\tentityID := req.GetEntityID()\n\ttyp := req.GetEntityType()\n\n\tswitch req.GetEntityType() {\n\tcase product_common.ProductEntityType_Bot, product_common.ProductEntityType_Project:\n\t\terr := s.favoriteProject(ctx, entityID, typ, isFav)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\tdefault:\n\t\treturn nil, errorx.New(errno.ErrSearchInvalidParamCode, errorx.KV(\"msg\", fmt.Sprintf(\"invalid entity type '%d'\", req.GetEntityType())))\n\t}\n\n\treturn &product_public_api.FavoriteProductResponse{\n\t\tIsFirstFavorite: ptr.Of(false),\n\t}, nil\n}\n\nfunc (s *SearchApplicationService) favoriteProject(ctx context.Context, projectID int64, typ product_common.ProductEntityType, isFav bool) error {\n\tvar entityType common.IntelligenceType\n\tif typ == product_common.ProductEntityType_Bot {\n\t\tentityType = common.IntelligenceType_Bot\n\t} else {\n\t\tentityType = common.IntelligenceType_Project\n\t}\n\terr := s.ProjectEventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tID:        projectID,\n\t\t\tIsFav:     ptr.Of(ternary.IFElse(isFav, 1, 0)),\n\t\t\tFavTimeMS: ptr.Of(time.Now().UnixMilli()),\n\t\t\tType:      entityType,\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (s *SearchApplicationService) PublicGetUserFavoriteList(ctx context.Context, req *product_public_api.GetUserFavoriteListV2Request) (resp *product_public_api.GetUserFavoriteListV2Response, err error) {\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrSearchPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tvar data *product_public_api.GetUserFavoriteListDataV2\n\tswitch req.GetEntityType() {\n\tcase product_common.ProductEntityType_Project, product_common.ProductEntityType_Bot, product_common.ProductEntityType_Common:\n\t\tdata, err = s.searchFavProjects(ctx, *userID, req)\n\tdefault:\n\t\treturn nil, errorx.New(errno.ErrSearchInvalidParamCode, errorx.KV(\"msg\", fmt.Sprintf(\"invalid entity type '%d'\", req.GetEntityType())))\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp = &product_public_api.GetUserFavoriteListV2Response{\n\t\tData: data,\n\t}\n\n\treturn resp, nil\n}\n\nfunc (s *SearchApplicationService) searchFavProjects(ctx context.Context, userID int64, req *product_public_api.GetUserFavoriteListV2Request) (*product_public_api.GetUserFavoriteListDataV2, error) {\n\tvar types []common.IntelligenceType\n\tif req.GetEntityType() == product_common.ProductEntityType_Common {\n\t\ttypes = []common.IntelligenceType{common.IntelligenceType_Bot, common.IntelligenceType_Project}\n\t} else if req.GetEntityType() == product_common.ProductEntityType_Bot {\n\t\ttypes = []common.IntelligenceType{common.IntelligenceType_Bot}\n\t} else {\n\t\ttypes = []common.IntelligenceType{common.IntelligenceType_Project}\n\t}\n\n\tres, err := SearchSVC.DomainSVC.SearchProjects(ctx, &searchEntity.SearchProjectsRequest{\n\t\tOwnerID:        userID,\n\t\tTypes:          types,\n\t\tIsFav:          true,\n\t\tOrderFiledName: search2.FieldOfFavTime,\n\t\tOrderAsc:       false,\n\t\tLimit:          req.PageSize,\n\t\tCursor:         req.GetCursorID(),\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(res.Data) == 0 {\n\t\treturn &product_public_api.GetUserFavoriteListDataV2{\n\t\t\tFavoriteEntities: []*product_common.FavoriteEntity{},\n\t\t\tCursorID:         res.NextCursor,\n\t\t\tHasMore:          res.HasMore,\n\t\t}, nil\n\t}\n\n\tfavEntities := make([]*product_common.FavoriteEntity, 0, len(res.Data))\n\tfor _, r := range res.Data {\n\t\tfavEntity, err := s.projectResourceToProductInfo(ctx, userID, r)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"[pluginResourceToProductInfo] failed to get project info, id=%v, type=%d, err=%v\",\n\t\t\t\tr.ID, r.Type, err)\n\t\t\tcontinue\n\t\t}\n\t\tfavEntities = append(favEntities, favEntity)\n\t}\n\n\tdata := &product_public_api.GetUserFavoriteListDataV2{\n\t\tFavoriteEntities: favEntities,\n\t\tCursorID:         res.NextCursor,\n\t\tHasMore:          res.HasMore,\n\t}\n\n\treturn data, nil\n}\n\nfunc (s *SearchApplicationService) projectResourceToProductInfo(ctx context.Context, userID int64, doc *searchEntity.ProjectDocument) (favEntity *product_common.FavoriteEntity, err error) {\n\ttyp := func() product_common.ProductEntityType {\n\t\tif doc.Type == common.IntelligenceType_Bot {\n\t\t\treturn product_common.ProductEntityType_Bot\n\t\t}\n\t\treturn product_common.ProductEntityType_Project\n\t}()\n\n\tpacker, err := NewPackProject(userID, doc.ID, doc.Type, s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpi, err := packer.GetProjectInfo(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tui := packer.GetUserInfo(ctx, userID)\n\n\tvar userInfo *product_common.UserInfo\n\tif ui != nil {\n\t\tuserInfo = &product_common.UserInfo{\n\t\t\tUserID:     ui.UserID,\n\t\t\tUserName:   ui.UserUniqueName,\n\t\t\tName:       ui.Nickname,\n\t\t\tAvatarURL:  ui.AvatarURL,\n\t\t\tFollowType: ptr.Of(marketplace_common.FollowType_Unknown),\n\t\t}\n\t}\n\n\te := &product_common.FavoriteEntity{\n\t\tEntityID:           doc.ID,\n\t\tEntityType:         typ,\n\t\tName:               doc.GetName(),\n\t\tIconURL:            pi.iconURI,\n\t\tDescription:        pi.desc,\n\t\tSpaceID:            doc.GetSpaceID(),\n\t\tHasSpacePermission: true,\n\t\tFavoriteAt:         doc.GetFavTime(),\n\t\tUserInfo:           userInfo,\n\t}\n\n\treturn e, nil\n}\n\nfunc (s *SearchApplicationService) GetUserRecentlyEditIntelligence(ctx context.Context, req intelligence.GetUserRecentlyEditIntelligenceRequest) (\n\tresp *intelligence.GetUserRecentlyEditIntelligenceResponse, err error,\n) {\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrSearchPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tres, err := SearchSVC.DomainSVC.SearchProjects(ctx, &searchEntity.SearchProjectsRequest{\n\t\tOwnerID:        *userID,\n\t\tTypes:          req.Types,\n\t\tIsRecentlyOpen: true,\n\t\tOrderFiledName: search2.FieldOfRecentlyOpenTime,\n\t\tOrderAsc:       false,\n\t\tLimit:          req.Size,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tintelligenceDataList := make([]*intelligence.IntelligenceData, 0, len(res.Data))\n\tfor idx := range res.Data {\n\t\tdata := res.Data[idx]\n\t\tinfo, err := s.packIntelligenceData(ctx, data)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"[packIntelligenceData] failed id %v, type %d, name %s, err: %v\", data.ID, data.Type, data.GetName(), err)\n\t\t\tcontinue\n\t\t}\n\t\tintelligenceDataList = append(intelligenceDataList, info)\n\t}\n\n\tresp = &intelligence.GetUserRecentlyEditIntelligenceResponse{\n\t\tData: &intelligence.GetUserRecentlyEditIntelligenceData{\n\t\t\tIntelligenceInfoList: intelligenceDataList,\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n\nfunc (s *SearchApplicationService) packIntelligenceData(ctx context.Context, doc *searchEntity.ProjectDocument) (*intelligence.IntelligenceData, error) {\n\tintelligenceData := &intelligence.IntelligenceData{\n\t\tType: doc.Type,\n\t\tBasicInfo: &common.IntelligenceBasicInfo{\n\t\t\tID:          doc.ID,\n\t\t\tName:        doc.GetName(),\n\t\t\tSpaceID:     doc.GetSpaceID(),\n\t\t\tOwnerID:     doc.GetOwnerID(),\n\t\t\tStatus:      doc.Status,\n\t\t\tCreateTime:  doc.GetCreateTime() / 1000,\n\t\t\tUpdateTime:  doc.GetUpdateTime() / 1000,\n\t\t\tPublishTime: doc.GetPublishTime() / 1000,\n\t\t},\n\t}\n\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\n\tpacker, err := NewPackProject(uid, doc.ID, doc.Type, s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tprojInfo, err := packer.GetProjectInfo(ctx)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"GetProjectInfo failed, id: %v, type: %v\", doc.ID, doc.Type)\n\t}\n\n\tintelligenceData.BasicInfo.Description = projInfo.desc\n\tintelligenceData.BasicInfo.IconURI = projInfo.iconURI\n\tintelligenceData.BasicInfo.IconURL = s.getProjectIconURL(ctx, projInfo.iconURI, doc.Type)\n\tintelligenceData.PermissionInfo = packer.GetPermissionInfo()\n\n\tpublishedInf := packer.GetPublishedInfo(ctx)\n\tif publishedInf != nil {\n\t\tintelligenceData.PublishInfo = packer.GetPublishedInfo(ctx)\n\t} else {\n\t\tintelligenceData.PublishInfo = &intelligence.IntelligencePublishInfo{\n\t\t\tHasPublished: false,\n\t\t}\n\t}\n\n\tintelligenceData.OwnerInfo = packer.GetUserInfo(ctx, doc.GetOwnerID())\n\tintelligenceData.LatestAuditInfo = &common.AuditInfo{}\n\tintelligenceData.FavoriteInfo = s.buildProjectFavoriteInfo(doc)\n\tintelligenceData.OtherInfo = s.buildProjectOtherInfo(doc)\n\n\treturn intelligenceData, nil\n}\n\nfunc (s *SearchApplicationService) buildProjectFavoriteInfo(doc *searchEntity.ProjectDocument) *intelligence.FavoriteInfo {\n\tisFav := doc.GetIsFav()\n\tfavTime := doc.GetFavTime()\n\n\treturn &intelligence.FavoriteInfo{\n\t\tIsFav:   isFav,\n\t\tFavTime: conv.Int64ToStr(favTime / 1000),\n\t}\n}\n\nfunc (s *SearchApplicationService) buildProjectOtherInfo(doc *searchEntity.ProjectDocument) *intelligence.OtherInfo {\n\totherInfo := &intelligence.OtherInfo{\n\t\tBotMode:          intelligence.BotMode_SingleMode,\n\t\tRecentlyOpenTime: conv.Int64ToStr(doc.GetRecentlyOpenTime() / 1000),\n\t}\n\tif doc.Type == common.IntelligenceType_Project {\n\t\totherInfo.BotMode = intelligence.BotMode_WorkflowMode\n\t}\n\n\treturn otherInfo\n}\n\nfunc searchRequestTo2Do(userID int64, req *intelligence.GetDraftIntelligenceListRequest) *searchEntity.SearchProjectsRequest {\n\torderBy := func() string {\n\t\tswitch req.GetOrderBy() {\n\t\tcase intelligence.OrderBy_PublishTime:\n\t\t\treturn search2.FieldOfPublishTime\n\t\tcase intelligence.OrderBy_UpdateTime:\n\t\t\treturn search2.FieldOfUpdateTime\n\t\tcase intelligence.OrderBy_CreateTime:\n\t\t\treturn search2.FieldOfCreateTime\n\t\tdefault:\n\t\t\treturn search2.FieldOfUpdateTime\n\t\t}\n\t}()\n\n\tsearchReq := &searchEntity.SearchProjectsRequest{\n\t\tSpaceID:        req.GetSpaceID(),\n\t\tName:           req.GetName(),\n\t\tOwnerID:        0,\n\t\tLimit:          req.GetSize(),\n\t\tCursor:         req.GetCursorID(),\n\t\tOrderFiledName: orderBy,\n\t\tOrderAsc:       false,\n\t\tTypes:          req.GetTypes(),\n\t\tStatus:         req.GetStatus(),\n\t\tIsFav:          req.GetIsFav(),\n\t\tIsRecentlyOpen: req.GetRecentlyOpen(),\n\t\tIsPublished:    req.GetHasPublished(),\n\t}\n\n\tif req.GetSearchScope() == intelligence.SearchScope_CreateByMe {\n\t\tsearchReq.OwnerID = userID\n\t}\n\n\treturn searchReq\n}\n\nfunc (s *SearchApplicationService) getProjectDefaultIconURL(ctx context.Context, tp common.IntelligenceType) string {\n\ticonURL, ok := projectType2iconURI[tp]\n\tif !ok {\n\t\tlogs.CtxWarnf(ctx, \"[getProjectDefaultIconURL] don't have type: %d  default icon\", tp)\n\n\t\treturn \"\"\n\t}\n\n\treturn s.getURL(ctx, iconURL)\n}\n\nfunc (s *SearchApplicationService) getProjectIconURL(ctx context.Context, uri string, tp common.IntelligenceType) string {\n\tif uri == \"\" {\n\t\treturn s.getProjectDefaultIconURL(ctx, tp)\n\t}\n\n\turl := s.getURL(ctx, uri)\n\tif url != \"\" {\n\t\treturn url\n\t}\n\n\treturn s.getProjectDefaultIconURL(ctx, tp)\n}\n"
  },
  {
    "path": "backend/application/search/resource_pack.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage search\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/database/table\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/workflow\"\n\tdatabase \"github.com/coze-dev/coze-studio/backend/crossdomain/database/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/knowledge/service\"\n\tdbservice \"github.com/coze-dev/coze-studio/backend/domain/memory/database/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/entity/vo\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ternary\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\nvar defaultAction = []*common.ResourceAction{\n\t{\n\t\tKey:    common.ActionKey_Edit,\n\t\tEnable: true,\n\t},\n\t{\n\t\tKey:    common.ActionKey_Delete,\n\t\tEnable: true,\n\t},\n\t{\n\t\tKey:    common.ActionKey_Copy,\n\t\tEnable: true,\n\t},\n}\n\ntype ResourcePacker interface {\n\tGetDataInfo(ctx context.Context) (*dataInfo, error)\n\tGetActions(ctx context.Context) []*common.ResourceAction\n\tGetProjectDefaultActions(ctx context.Context) []*common.ProjectResourceAction\n}\n\nfunc NewResourcePacker(resID int64, t common.ResType, appContext *ServiceComponents) (ResourcePacker, error) {\n\tbase := resourceBasePacker{appContext: appContext, resID: resID}\n\n\tswitch t {\n\tcase common.ResType_Plugin:\n\t\treturn &pluginPacker{resourceBasePacker: base}, nil\n\tcase common.ResType_Workflow:\n\t\treturn &workflowPacker{resourceBasePacker: base}, nil\n\tcase common.ResType_Knowledge:\n\t\treturn &knowledgePacker{resourceBasePacker: base}, nil\n\tcase common.ResType_Prompt:\n\t\treturn &promptPacker{resourceBasePacker: base}, nil\n\tcase common.ResType_Database:\n\t\treturn &databasePacker{resourceBasePacker: base}, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"unsupported resource type: %s , resID: %d\", t, resID)\n}\n\ntype resourceBasePacker struct {\n\tresID      int64\n\tappContext *ServiceComponents\n}\n\ntype dataInfo struct {\n\ticonURI *string\n\ticonURL string\n\tdesc    *string\n\tstatus  *int32\n}\n\nfunc (b *resourceBasePacker) GetActions(ctx context.Context) []*common.ResourceAction {\n\treturn defaultAction\n}\n\nfunc (b *resourceBasePacker) GetProjectDefaultActions(ctx context.Context) []*common.ProjectResourceAction {\n\treturn []*common.ProjectResourceAction{}\n}\n\ntype pluginPacker struct {\n\tresourceBasePacker\n}\n\nfunc (p *pluginPacker) GetDataInfo(ctx context.Context) (*dataInfo, error) {\n\tplugin, err := p.appContext.PluginDomainSVC.GetDraftPlugin(ctx, p.resID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ticonURL, err := p.appContext.TOS.GetObjectUrl(ctx, plugin.GetIconURI())\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"get icon url failed with '%s', err=%v\", plugin.GetIconURI(), err)\n\t}\n\n\treturn &dataInfo{\n\t\ticonURI: ptr.Of(plugin.GetIconURI()),\n\t\ticonURL: iconURL,\n\t\tdesc:    ptr.Of(plugin.GetDesc()),\n\t}, nil\n}\n\nfunc (p *pluginPacker) GetProjectDefaultActions(ctx context.Context) []*common.ProjectResourceAction {\n\treturn []*common.ProjectResourceAction{\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Rename,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Copy,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Delete,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_CopyToLibrary,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_MoveToLibrary,\n\t\t\tEnable: true,\n\t\t},\n\t}\n}\n\ntype workflowPacker struct {\n\tresourceBasePacker\n}\n\nfunc (w *workflowPacker) GetDataInfo(ctx context.Context) (*dataInfo, error) {\n\tinfo, err := w.appContext.WorkflowDomainSVC.Get(ctx, &vo.GetPolicy{\n\t\tID:       w.resID,\n\t\tMetaOnly: true,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &dataInfo{\n\t\ticonURI: &info.IconURI,\n\t\ticonURL: info.IconURL,\n\t\tdesc:    &info.Desc,\n\t}, nil\n}\n\nfunc (w *workflowPacker) GetActions(ctx context.Context) []*common.ResourceAction {\n\tactions := []*common.ResourceAction{\n\t\t{\n\t\t\tKey:    common.ActionKey_Edit,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ActionKey_Delete,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ActionKey_Copy,\n\t\t\tEnable: true,\n\t\t},\n\t}\n\tmeta, err := w.appContext.WorkflowDomainSVC.Get(ctx, &vo.GetPolicy{\n\t\tID:       w.resID,\n\t\tMetaOnly: true,\n\t})\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"get policy failed with '%s', err=%v\", w.resID, err)\n\t\treturn actions\n\t}\n\tkey := ternary.IFElse(meta.Mode == workflow.WorkflowMode_Workflow, common.ActionKey_SwitchToChatflow, common.ActionKey_SwitchToFuncflow)\n\taction := &common.ResourceAction{\n\t\tKey:    key,\n\t\tEnable: true,\n\t}\n\treturn append(actions, action)\n}\n\nfunc (w *workflowPacker) GetProjectDefaultActions(ctx context.Context) []*common.ProjectResourceAction {\n\tactions := []*common.ProjectResourceAction{\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Rename,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Copy,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_CopyToLibrary,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_MoveToLibrary,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Delete,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_UpdateDesc,\n\t\t\tEnable: true,\n\t\t},\n\t}\n\tmeta, err := w.appContext.WorkflowDomainSVC.Get(ctx, &vo.GetPolicy{\n\t\tID:       w.resID,\n\t\tMetaOnly: true,\n\t})\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"get policy failed with '%s', err=%v\", w.resID, err)\n\t\treturn actions\n\t}\n\tkey := ternary.IFElse(meta.Mode == workflow.WorkflowMode_Workflow, common.ProjectResourceActionKey_SwitchToChatflow, common.ProjectResourceActionKey_SwitchToFuncflow)\n\taction := &common.ProjectResourceAction{\n\t\tEnable: true,\n\t\tKey:    key,\n\t}\n\n\treturn append(actions, action)\n}\n\ntype knowledgePacker struct {\n\tresourceBasePacker\n}\n\nfunc (k *knowledgePacker) GetDataInfo(ctx context.Context) (*dataInfo, error) {\n\tres, err := k.appContext.KnowledgeDomainSVC.GetKnowledgeByID(ctx, &service.GetKnowledgeByIDRequest{\n\t\tKnowledgeID: k.resID,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tkn := res.Knowledge\n\n\treturn &dataInfo{\n\t\ticonURI: ptr.Of(kn.IconURI),\n\t\ticonURL: kn.IconURL,\n\t\tdesc:    ptr.Of(kn.Description),\n\t\tstatus:  ptr.Of(int32(kn.Status)),\n\t}, nil\n}\n\nfunc (k *knowledgePacker) GetActions(ctx context.Context) []*common.ResourceAction {\n\treturn []*common.ResourceAction{\n\t\t{\n\t\t\tKey:    common.ActionKey_Delete,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ActionKey_EnableSwitch,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ActionKey_Edit,\n\t\t\tEnable: true,\n\t\t},\n\t}\n}\nfunc (k *knowledgePacker) GetProjectDefaultActions(ctx context.Context) []*common.ProjectResourceAction {\n\treturn []*common.ProjectResourceAction{\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Rename,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Copy,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_CopyToLibrary,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_MoveToLibrary,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Delete,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Disable,\n\t\t\tEnable: true,\n\t\t},\n\t}\n}\n\ntype promptPacker struct {\n\tresourceBasePacker\n}\n\nfunc (p *promptPacker) GetDataInfo(ctx context.Context) (*dataInfo, error) {\n\tpInfo, err := p.appContext.PromptDomainSVC.GetPromptResource(ctx, p.resID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &dataInfo{\n\t\ticonURI: nil, // prompt don't have custom icon\n\t\ticonURL: \"\",\n\t\tdesc:    &pInfo.Description,\n\t}, nil\n}\n\ntype databasePacker struct {\n\tresourceBasePacker\n}\n\nfunc (d *databasePacker) GetDataInfo(ctx context.Context) (*dataInfo, error) {\n\tlistResp, err := d.appContext.DatabaseDomainSVC.MGetDatabase(ctx, &dbservice.MGetDatabaseRequest{Basics: []*database.DatabaseBasic{\n\t\t{\n\t\t\tID:        d.resID,\n\t\t\tTableType: table.TableType_OnlineTable,\n\t\t},\n\t}})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(listResp.Databases) == 0 {\n\t\treturn nil, fmt.Errorf(\"online database not found, id: %d\", d.resID)\n\t}\n\n\treturn &dataInfo{\n\t\ticonURI: ptr.Of(listResp.Databases[0].IconURI),\n\t\ticonURL: listResp.Databases[0].IconURL,\n\t\tdesc:    ptr.Of(listResp.Databases[0].TableDesc),\n\t}, nil\n}\n\nfunc (d *databasePacker) GetActions(ctx context.Context) []*common.ResourceAction {\n\treturn []*common.ResourceAction{\n\t\t{\n\t\t\tKey:    common.ActionKey_Delete,\n\t\t\tEnable: true,\n\t\t},\n\t}\n}\n\nfunc (d *databasePacker) GetProjectDefaultActions(ctx context.Context) []*common.ProjectResourceAction {\n\treturn []*common.ProjectResourceAction{\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Copy,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_CopyToLibrary,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_MoveToLibrary,\n\t\t\tEnable: true,\n\t\t},\n\t\t{\n\t\t\tKey:    common.ProjectResourceActionKey_Delete,\n\t\t\tEnable: true,\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "backend/application/search/resource_search.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage search\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"slices\"\n\t\"strconv\"\n\t\"sync\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/resource\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tknowledgeModel \"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/service\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ternary\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/taskgroup\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nvar SearchSVC = &SearchApplicationService{}\n\ntype SearchApplicationService struct {\n\t*ServiceComponents\n\tDomainSVC search.Search\n}\n\nvar resType2iconURI = map[common.ResType]string{\n\tcommon.ResType_Plugin:    consts.DefaultPluginIcon,\n\tcommon.ResType_Workflow:  consts.DefaultWorkflowIcon,\n\tcommon.ResType_Knowledge: consts.DefaultDatasetIcon,\n\tcommon.ResType_Prompt:    consts.DefaultPromptIcon,\n\tcommon.ResType_Database:  consts.DefaultDatabaseIcon,\n\t// ResType_UI:        consts.DefaultWorkflowIcon,\n\t// ResType_Voice:     consts.DefaultPluginIcon,\n\t// ResType_Imageflow: consts.DefaultPluginIcon,\n}\n\nfunc (s *SearchApplicationService) LibraryResourceList(ctx context.Context, req *resource.LibraryResourceListRequest) (resp *resource.LibraryResourceListResponse, err error) {\n\tuserID := ctxutil.GetUIDFromCtx(ctx)\n\tif userID == nil {\n\t\treturn nil, errorx.New(errno.ErrSearchPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\tsearchReq := &entity.SearchResourcesRequest{\n\t\tSpaceID:             req.GetSpaceID(),\n\t\tOwnerID:             0,\n\t\tName:                req.GetName(),\n\t\tResTypeFilter:       req.GetResTypeFilter(),\n\t\tPublishStatusFilter: req.GetPublishStatusFilter(),\n\t\tSearchKeys:          req.GetSearchKeys(),\n\t\tCursor:              req.GetCursor(),\n\t\tLimit:               req.GetSize(),\n\t}\n\n\t// Set up user filtering\n\tif req.IsSetUserFilter() && req.GetUserFilter() > 0 {\n\t\tsearchReq.OwnerID = ptr.From(userID)\n\t}\n\n\tsearchResp, err := s.DomainSVC.SearchResources(ctx, searchReq)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlock := sync.Mutex{}\n\ttasks := taskgroup.NewUninterruptibleTaskGroup(ctx, 10)\n\tresources := make([]*common.ResourceInfo, len(searchResp.Data))\n\tif len(searchResp.Data) > 1 {\n\t\tfor idx := range searchResp.Data[1:] {\n\t\t\tindex := idx + 1\n\t\t\tv := searchResp.Data[index]\n\t\t\ttasks.Go(func() error {\n\t\t\t\tri, err := s.packResource(ctx, v)\n\t\t\t\tif err != nil {\n\t\t\t\t\tlogs.CtxErrorf(ctx, \"[LibraryResourceList] packResource failed, will ignore resID: %d, Name : %s, resType: %d, err: %v\",\n\t\t\t\t\t\tv.ResID, v.GetName(), v.ResType, err)\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tlock.Lock()\n\t\t\t\tdefer lock.Unlock()\n\t\t\t\tresources[index] = ri\n\t\t\t\treturn nil\n\t\t\t})\n\t\t}\n\t}\n\tif len(searchResp.Data) != 0 {\n\t\tri, err := s.packResource(ctx, searchResp.Data[0])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tlock.Lock()\n\t\tresources[0] = ri\n\t\tlock.Unlock()\n\t}\n\terr = tasks.Wait()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfilterResource := make([]*common.ResourceInfo, 0)\n\tfor _, res := range resources {\n\t\tif res == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif res.CreatorID != nil && *res.CreatorID != *userID {\n\t\t\treturn nil, errorx.New(errno.ErrSearchPermissionCode, errorx.KV(\"msg\", \"user can't search resources created by themselves\"))\n\t\t}\n\t\tfilterResource = append(filterResource, res)\n\t}\n\n\treturn &resource.LibraryResourceListResponse{\n\t\tCode:         0,\n\t\tResourceList: filterResource,\n\t\tCursor:       ptr.Of(searchResp.NextCursor),\n\t\tHasMore:      searchResp.HasMore,\n\t}, nil\n}\n\nfunc (s *SearchApplicationService) getResourceDefaultIconURL(ctx context.Context, tp common.ResType) string {\n\ticonURL, ok := resType2iconURI[tp]\n\tif !ok {\n\t\tlogs.CtxWarnf(ctx, \"[getDefaultIconURL] don't have type: %d  default icon\", tp)\n\n\t\treturn \"\"\n\t}\n\n\treturn s.getURL(ctx, iconURL)\n}\n\nfunc (s *SearchApplicationService) getURL(ctx context.Context, uri string) string {\n\turl, err := s.TOS.GetObjectUrl(ctx, uri)\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"[getDefaultIconURLWitURI] GetObjectUrl failed, uri: %s, err: %v\", uri, err)\n\n\t\treturn \"\"\n\t}\n\n\treturn url\n}\n\nfunc (s *SearchApplicationService) getResourceIconURL(ctx context.Context, uri *string, tp common.ResType) string {\n\tif uri == nil || *uri == \"\" {\n\t\treturn s.getResourceDefaultIconURL(ctx, tp)\n\t}\n\n\turl := s.getURL(ctx, *uri)\n\tif url != \"\" {\n\t\treturn url\n\t}\n\n\treturn s.getResourceDefaultIconURL(ctx, tp)\n}\n\nfunc (s *SearchApplicationService) packUserInfo(ctx context.Context, ri *common.ResourceInfo, ownerID int64) *common.ResourceInfo {\n\tu, err := s.UserDomainSVC.GetUserInfo(ctx, ownerID)\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"[LibraryResourceList] GetUserInfo failed, uid: %d, resID: %d, Name : %s, err: %v\",\n\t\t\townerID, ri.ResID, ri.GetName(), err)\n\t} else {\n\t\tri.CreatorName = ptr.Of(u.Name)\n\t\tri.CreatorAvatar = ptr.Of(u.IconURL)\n\t}\n\n\tif ri.GetCreatorAvatar() == \"\" {\n\t\tri.CreatorAvatar = ptr.Of(s.getURL(ctx, consts.DefaultUserIcon))\n\t}\n\n\treturn ri\n}\n\nfunc (s *SearchApplicationService) packResource(ctx context.Context, doc *entity.ResourceDocument) (*common.ResourceInfo, error) {\n\tri := &common.ResourceInfo{\n\t\tResID:         ptr.Of(doc.ResID),\n\t\tResType:       ptr.Of(doc.ResType),\n\t\tName:          doc.Name,\n\t\tSpaceID:       doc.SpaceID,\n\t\tCreatorID:     doc.OwnerID,\n\t\tResSubType:    doc.ResSubType,\n\t\tPublishStatus: doc.PublishStatus,\n\t\tEditTime:      ptr.Of(doc.GetUpdateTime() / 1000),\n\t}\n\n\tif doc.BizStatus != nil {\n\t\tri.BizResStatus = ptr.Of(int32(*doc.BizStatus))\n\t}\n\n\tpacker, err := NewResourcePacker(doc.ResID, doc.ResType, s.ServiceComponents)\n\tif err != nil {\n\t\treturn nil, errorx.Wrapf(err, \"NewResourcePacker failed\")\n\t}\n\n\tri = s.packUserInfo(ctx, ri, doc.GetOwnerID())\n\tri.Actions = packer.GetActions(ctx)\n\n\tdata, err := packer.GetDataInfo(ctx)\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"[packResource] GetDataInfo failed, resID: %d, Name : %s, resType: %d, err: %v\",\n\t\t\tdoc.ResID, doc.GetName(), doc.ResType, err)\n\n\t\tri.Icon = ptr.Of(s.getResourceDefaultIconURL(ctx, doc.ResType))\n\n\t\treturn ri, nil // Warn : weak dependency data\n\t}\n\tri.BizResStatus = data.status\n\tri.Desc = data.desc\n\tri.Icon = ternary.IFElse(len(data.iconURL) > 0,\n\t\t&data.iconURL, ptr.Of(s.getResourceIconURL(ctx, data.iconURI, doc.ResType)))\n\tri.BizExtend = map[string]string{\n\t\t\"url\": ptr.From(ri.Icon),\n\t}\n\treturn ri, nil\n}\n\nfunc (s *SearchApplicationService) ProjectResourceList(ctx context.Context, req *resource.ProjectResourceListRequest) (resp *resource.ProjectResourceListResponse, err error) {\n\tresources, err := s.getAPPAllResources(ctx, req.GetProjectID())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresourceGroups, err := s.packAPPResources(ctx, resources)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresourceGroups = s.sortAPPResources(resourceGroups)\n\n\treturn &resource.ProjectResourceListResponse{\n\t\tResourceGroups: resourceGroups,\n\t}, nil\n}\n\nfunc (s *SearchApplicationService) getAPPAllResources(ctx context.Context, appID int64) ([]*entity.ResourceDocument, error) {\n\tcursor := \"\"\n\tresources := make([]*entity.ResourceDocument, 0, 100)\n\n\tfor {\n\t\tres, err := s.DomainSVC.SearchResources(ctx, &entity.SearchResourcesRequest{\n\t\t\tAPPID:  appID,\n\t\t\tCursor: cursor,\n\t\t\tLimit:  100,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresources = append(resources, res.Data...)\n\n\t\thasMore := res.HasMore\n\t\tcursor = res.NextCursor\n\n\t\tif !hasMore {\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn resources, nil\n}\n\nfunc (s *SearchApplicationService) packAPPResources(ctx context.Context, resources []*entity.ResourceDocument) ([]*common.ProjectResourceGroup, error) {\n\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrSearchPermissionCode, errorx.KV(errno.PluginMsgKey, \"session is required\"))\n\t}\n\n\tworkflowGroup := &common.ProjectResourceGroup{\n\t\tGroupType:    common.ProjectResourceGroupType_Workflow,\n\t\tResourceList: []*common.ProjectResourceInfo{},\n\t}\n\tdataGroup := &common.ProjectResourceGroup{\n\t\tGroupType:    common.ProjectResourceGroupType_Data,\n\t\tResourceList: []*common.ProjectResourceInfo{},\n\t}\n\tpluginGroup := &common.ProjectResourceGroup{\n\t\tGroupType:    common.ProjectResourceGroupType_Plugin,\n\t\tResourceList: []*common.ProjectResourceInfo{},\n\t}\n\n\tlock := sync.Mutex{}\n\ttasks := taskgroup.NewUninterruptibleTaskGroup(ctx, 10)\n\tfor idx := range resources {\n\t\tv := resources[idx]\n\n\t\tif v.OwnerID != nil && *v.OwnerID != *uid {\n\t\t\treturn nil, errorx.New(errno.ErrSearchPermissionCode, errorx.KV(\"msg\", \"user can't search resources created by others\"))\n\t\t}\n\n\t\ttasks.Go(func() error {\n\t\t\tri, err := s.packProjectResource(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"packAPPResources failed, will ignore resID: %d, Name : %s, resType: %d, err: %v\",\n\t\t\t\t\tv.ResID, v.GetName(), v.ResType, err)\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tlock.Lock()\n\t\t\tdefer lock.Unlock()\n\n\t\t\tswitch v.ResType {\n\t\t\tcase common.ResType_Workflow:\n\t\t\t\tworkflowGroup.ResourceList = append(workflowGroup.ResourceList, ri)\n\t\t\tcase common.ResType_Plugin:\n\t\t\t\tpluginGroup.ResourceList = append(pluginGroup.ResourceList, ri)\n\t\t\tcase common.ResType_Database, common.ResType_Knowledge:\n\t\t\t\tdataGroup.ResourceList = append(dataGroup.GetResourceList(), ri)\n\t\t\tdefault:\n\t\t\t\tlogs.CtxWarnf(ctx, \"unsupported resType: %d\", v.ResType)\n\t\t\t}\n\n\t\t\treturn nil\n\t\t})\n\t}\n\n\t_ = tasks.Wait()\n\n\tresourceGroups := []*common.ProjectResourceGroup{\n\t\tworkflowGroup,\n\t\tpluginGroup,\n\t\tdataGroup,\n\t}\n\n\treturn resourceGroups, nil\n}\n\nfunc (s *SearchApplicationService) packProjectResource(ctx context.Context, resource *entity.ResourceDocument) (*common.ProjectResourceInfo, error) {\n\tpacker, err := NewResourcePacker(resource.ResID, resource.ResType, s.ServiceComponents)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tinfo := &common.ProjectResourceInfo{\n\t\tResID:      resource.ResID,\n\t\tResType:    resource.ResType,\n\t\tResSubType: resource.ResSubType,\n\t\tName:       resource.GetName(),\n\t\tActions:    packer.GetProjectDefaultActions(ctx),\n\t}\n\n\tif resource.ResType == common.ResType_Knowledge {\n\t\tinfo.BizExtend = map[string]string{\n\t\t\t\"format_type\": strconv.FormatInt(int64(resource.GetResSubType()), 10),\n\t\t}\n\t\tdi, err := packer.GetDataInfo(ctx)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"GetDataInfo failed, resID=%d, resType=%d, err=%v\",\n\t\t\t\tresource.ResID, resource.ResType, err)\n\t\t} else {\n\t\t\tinfo.BizResStatus = di.status\n\t\t\tif di.status != nil && *di.status == int32(knowledgeModel.KnowledgeStatusDisable) {\n\t\t\t\tactions := slices.Clone(info.Actions)\n\t\t\t\tfor _, a := range actions {\n\t\t\t\t\tif a.Key == common.ProjectResourceActionKey_Disable {\n\t\t\t\t\t\ta.Key = common.ProjectResourceActionKey_Enable\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif resource.ResType == common.ResType_Plugin {\n\t\terr = s.PluginDomainSVC.CheckPluginToolsDebugStatus(ctx, resource.ResID)\n\t\tif err != nil {\n\t\t\tvar e errorx.StatusError\n\t\t\tif !errors.As(err, &e) {\n\t\t\t\tlogs.CtxErrorf(ctx, \"CheckPluginToolsDebugStatus failed, resID=%d, resType=%d, err=%v\",\n\t\t\t\t\tresource.ResID, resource.ResType, err)\n\t\t\t} else {\n\t\t\t\tactions := slices.Clone(info.Actions)\n\t\t\t\tfor _, a := range actions {\n\t\t\t\t\tif a.Key == common.ProjectResourceActionKey_MoveToLibrary ||\n\t\t\t\t\t\ta.Key == common.ProjectResourceActionKey_CopyToLibrary {\n\t\t\t\t\t\ta.Enable = false\n\t\t\t\t\t\ta.Hint = ptr.Of(e.Msg())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn info, nil\n}\n\nfunc (s *ServiceComponents) sortAPPResources(resourceGroups []*common.ProjectResourceGroup) []*common.ProjectResourceGroup {\n\tfor _, g := range resourceGroups {\n\t\tslices.SortFunc(g.ResourceList, func(a, b *common.ProjectResourceInfo) int {\n\t\t\tif a.Name == b.Name {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tif a.Name < b.Name {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn 1\n\t\t})\n\t}\n\treturn resourceGroups\n}\n"
  },
  {
    "path": "backend/application/shortcutcmd/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage shortcutcmd\n\nimport (\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/repository\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n)\n\nvar ShortcutCmdSVC *ShortcutCmdApplicationService\n\nfunc InitService(db *gorm.DB, idGenSVC idgen.IDGenerator) *ShortcutCmdApplicationService {\n\n\tcomponents := &service.Components{\n\t\tShortCutCmdRepo: repository.NewShortCutCmdRepo(db, idGenSVC),\n\t}\n\tshortcutCmdDomainSVC := service.NewShortcutCommandService(components)\n\n\tShortcutCmdSVC = &ShortcutCmdApplicationService{\n\t\tShortCutDomainSVC: shortcutCmdDomainSVC,\n\t}\n\treturn ShortcutCmdSVC\n}\n"
  },
  {
    "path": "backend/application/shortcutcmd/shortcut_cmd.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage shortcutcmd\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strconv\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\n\t\"github.com/coze-dev/coze-studio/backend/domain/permission\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/service\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n)\n\ntype ShortcutCmdApplicationService struct {\n\tShortCutDomainSVC service.ShortcutCmd\n}\n\nfunc checkPermission(ctx context.Context, uid int64, spaceID int64, workflowID int64) error {\n\t// Use permission service to check workspace access\n\n\trd := []*permission.ResourceIdentifier{\n\t\t{\n\t\t\tType:   permission.ResourceTypeWorkspace,\n\t\t\tID:     []int64{spaceID},\n\t\t\tAction: permission.ActionRead,\n\t\t},\n\t}\n\tif workflowID > 0 {\n\t\trd = append(rd, &permission.ResourceIdentifier{\n\t\t\tType:   permission.ResourceTypeWorkflow,\n\t\t\tID:     []int64{workflowID},\n\t\t\tAction: permission.ActionRead,\n\t\t})\n\t}\n\n\tresult, err := permission.DefaultSVC().CheckAuthz(ctx, &permission.CheckAuthzData{\n\t\tResourceIdentifier: rd,\n\t\tOperatorID:         uid,\n\t})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to check workspace permission: %w\", err)\n\t}\n\n\tif result.Decision != permission.Allow {\n\t\treturn fmt.Errorf(\"user %d does not have access to space %d\", uid, spaceID)\n\t}\n\n\treturn nil\n}\n\nfunc (s *ShortcutCmdApplicationService) Handler(ctx context.Context, req *playground.CreateUpdateShortcutCommandRequest) (*playground.ShortcutCommand, error) {\n\n\tvar err error\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\n\tcr, buildErr := s.buildReq(ctx, req)\n\tif buildErr != nil {\n\t\treturn nil, buildErr\n\t}\n\n\terr = checkPermission(ctx, uid, req.GetSpaceID(), cr.WorkFlowID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar cmdDO *entity.ShortcutCmd\n\tif cr.CommandID > 0 {\n\t\tcmdDO, err = s.ShortCutDomainSVC.UpdateCMD(ctx, cr)\n\t} else {\n\t\tcmdDO, err = s.ShortCutDomainSVC.CreateCMD(ctx, cr)\n\t}\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif cmdDO == nil {\n\t\treturn nil, nil\n\t}\n\treturn s.buildDo2Vo(ctx, cmdDO), nil\n}\nfunc (s *ShortcutCmdApplicationService) buildReq(ctx context.Context, req *playground.CreateUpdateShortcutCommandRequest) (*entity.ShortcutCmd, error) {\n\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\n\tvar workflowID int64\n\tvar pluginID int64\n\tvar err error\n\tif req.GetShortcuts().GetWorkFlowID() != \"\" {\n\t\tworkflowID, err = strconv.ParseInt(req.GetShortcuts().GetWorkFlowID(), 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif req.GetShortcuts().GetPluginID() != \"\" {\n\t\tpluginID, err = strconv.ParseInt(req.GetShortcuts().GetPluginID(), 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn &entity.ShortcutCmd{\n\t\tObjectID:        req.GetObjectID(),\n\t\tCommandID:       req.GetShortcuts().CommandID,\n\t\tCommandName:     req.GetShortcuts().CommandName,\n\t\tShortcutCommand: req.GetShortcuts().ShortcutCommand,\n\t\tDescription:     req.GetShortcuts().Description,\n\t\tSendType:        int32(req.GetShortcuts().SendType),\n\t\tToolType:        int32(req.GetShortcuts().ToolType),\n\t\tWorkFlowID:      workflowID,\n\t\tPluginID:        pluginID,\n\t\tComponents:      req.GetShortcuts().ComponentsList,\n\t\tCardSchema:      req.GetShortcuts().CardSchema,\n\t\tToolInfo:        req.GetShortcuts().ToolInfo,\n\t\tCreatorID:       uid,\n\t\tPluginToolID:    req.GetShortcuts().PluginAPIID,\n\t\tPluginToolName:  req.GetShortcuts().PluginAPIName,\n\t\tTemplateQuery:   req.GetShortcuts().TemplateQuery,\n\t\tShortcutIcon:    req.GetShortcuts().ShortcutIcon,\n\t\tSource:          int32(req.GetShortcuts().GetPluginFrom()),\n\t}, nil\n}\n\nfunc (s *ShortcutCmdApplicationService) buildDo2Vo(ctx context.Context, do *entity.ShortcutCmd) *playground.ShortcutCommand {\n\n\treturn &playground.ShortcutCommand{\n\t\tObjectID:        do.ObjectID,\n\t\tCommandID:       do.CommandID,\n\t\tCommandName:     do.CommandName,\n\t\tShortcutCommand: do.ShortcutCommand,\n\t\tDescription:     do.Description,\n\t\tSendType:        playground.SendType(do.SendType),\n\t\tToolType:        playground.ToolType(do.ToolType),\n\t\tWorkFlowID:      conv.Int64ToStr(do.WorkFlowID),\n\t\tPluginID:        conv.Int64ToStr(do.PluginID),\n\t\tComponentsList:  do.Components,\n\t\tCardSchema:      do.CardSchema,\n\t\tToolInfo:        do.ToolInfo,\n\t\tPluginAPIID:     do.PluginToolID,\n\t\tPluginAPIName:   do.PluginToolName,\n\t\tTemplateQuery:   do.TemplateQuery,\n\t\tShortcutIcon:    do.ShortcutIcon,\n\t}\n}\n"
  },
  {
    "path": "backend/application/singleagent/create.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage singleagent\n\nimport (\n\t\"context\"\n\t\"time\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\tintelligence \"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\tsingleagent \"github.com/coze-dev/coze-studio/backend/crossdomain/agent/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/entity\"\n\tsearchEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc (s *SingleAgentApplicationService) CreateSingleAgentDraft(ctx context.Context, req *developer_api.DraftBotCreateRequest) (*developer_api.DraftBotCreateResponse, error) {\n\tmodelList, err := config.ModelConf().GetOnlineModelListWithLimit(ctx, 1)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(modelList) == 0 {\n\t\treturn nil, errorx.New(errno.ErrAgentNoModelInUseCode)\n\t}\n\n\tdo, err := s.draftBotCreateRequestToSingleAgent(ctx, req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tuserID := ctxutil.MustGetUIDFromCtx(ctx)\n\tagentID, err := s.DomainSVC.CreateSingleAgentDraft(ctx, userID, do)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = s.appContext.EventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Created,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tStatus:  intelligence.IntelligenceStatus_Using,\n\t\t\tType:    intelligence.IntelligenceType_Bot,\n\t\t\tID:      agentID,\n\t\t\tSpaceID: &req.SpaceID,\n\t\t\tOwnerID: &userID,\n\t\t\tName:    &do.Name,\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &developer_api.DraftBotCreateResponse{Data: &developer_api.DraftBotCreateData{\n\t\tBotID: agentID,\n\t}}, nil\n}\n\nfunc (s *SingleAgentApplicationService) draftBotCreateRequestToSingleAgent(ctx context.Context, req *developer_api.DraftBotCreateRequest) (*entity.SingleAgent, error) {\n\tsa, err := s.newDefaultSingleAgent(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsa.SpaceID = req.SpaceID\n\tsa.Name = req.GetName()\n\tsa.Desc = req.GetDescription()\n\tsa.IconURI = req.GetIconURI()\n\n\treturn sa, nil\n}\n\nfunc (s *SingleAgentApplicationService) newDefaultSingleAgent(ctx context.Context) (*entity.SingleAgent, error) {\n\tmi, err := s.defaultModelInfo(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnow := time.Now().UnixMilli()\n\treturn &entity.SingleAgent{\n\t\tSingleAgent: &singleagent.SingleAgent{\n\t\t\tOnboardingInfo: &bot_common.OnboardingInfo{},\n\t\t\tModelInfo:      mi,\n\t\t\tPrompt:         &bot_common.PromptInfo{},\n\t\t\tPlugin:         []*bot_common.PluginInfo{},\n\t\t\tKnowledge: &bot_common.Knowledge{\n\t\t\t\tTopK:           ptr.Of(int64(1)),\n\t\t\t\tMinScore:       ptr.Of(0.01),\n\t\t\t\tSearchStrategy: ptr.Of(bot_common.SearchStrategy_SemanticSearch),\n\t\t\t\tRecallStrategy: &bot_common.RecallStrategy{\n\t\t\t\t\tUseNl2sql:  ptr.Of(true),\n\t\t\t\t\tUseRerank:  ptr.Of(true),\n\t\t\t\t\tUseRewrite: ptr.Of(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tWorkflow:     []*bot_common.WorkflowInfo{},\n\t\t\tSuggestReply: &bot_common.SuggestReplyInfo{},\n\t\t\tJumpConfig:   &bot_common.JumpConfig{},\n\t\t\tDatabase:     []*bot_common.Database{},\n\n\t\t\tCreatedAt: now,\n\t\t\tUpdatedAt: now,\n\t\t},\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) defaultModelInfo(ctx context.Context) (*bot_common.ModelInfo, error) {\n\tmodelList, err := config.ModelConf().GetOnlineModelListWithLimit(ctx, 1)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(modelList) == 0 {\n\t\treturn nil, errorx.New(errno.ErrAgentResourceNotFound, errorx.KV(\"type\", \"model\"), errorx.KV(\"id\", \"default\"))\n\t}\n\n\tdm := modelList[0]\n\n\treturn &bot_common.ModelInfo{\n\t\tModelId:          ptr.Of(dm.ID),\n\t\tTemperature:      dm.GetDefaultTemperature(),\n\t\tMaxTokens:        dm.GetDefaultMaxTokens(),\n\t\tTopP:             dm.GetDefaultTopP(),\n\t\tFrequencyPenalty: dm.GetDefaultFrequencyPenalty(),\n\t\tPresencePenalty:  dm.GetDefaultPresencePenalty(),\n\t\tTopK:             dm.GetDefaultTopK(),\n\t\tModelStyle:       bot_common.ModelStylePtr(bot_common.ModelStyle_Balance),\n\t\tShortMemoryPolicy: &bot_common.ShortMemoryPolicy{\n\t\t\tContextMode:  bot_common.ContextModePtr(bot_common.ContextMode_FunctionCall_2),\n\t\t\tHistoryRound: ptr.Of[int32](3),\n\t\t},\n\t}, nil\n}\n"
  },
  {
    "path": "backend/application/singleagent/duplicate.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage singleagent\n\nimport (\n\t\"context\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\tintelligence \"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/variable/project_memory\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/entity\"\n\tsearchEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\tshortcutCMDEntity \"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n)\n\ntype duplicateAgentResourceFn func(ctx context.Context, appContext *ServiceComponents, oldAgent, newAgent *entity.SingleAgent) (*entity.SingleAgent, error)\n\nfunc (s *SingleAgentApplicationService) DuplicateDraftBot(ctx context.Context, req *developer_api.DuplicateDraftBotRequest) (*developer_api.DuplicateDraftBotResponse, error) {\n\tdraftAgent, err := s.ValidateAgentDraftAccess(ctx, req.BotID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnewAgentID, err := s.appContext.IDGen.GenID(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tuserID := ctxutil.MustGetUIDFromCtx(ctx)\n\tduplicateInfo := &entity.DuplicateInfo{\n\t\tNewAgentID: newAgentID,\n\t\tSpaceID:    req.GetSpaceID(),\n\t\tUserID:     userID,\n\t\tDraftAgent: draftAgent,\n\t}\n\n\tnewAgent, err := s.DomainSVC.DuplicateInMemory(ctx, duplicateInfo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tduplicateFns := []duplicateAgentResourceFn{\n\t\tduplicateVariables,\n\t\tduplicatePlugin,\n\t\tduplicateShortCommand,\n\t}\n\n\tfor _, fn := range duplicateFns {\n\t\tnewAgent, err = fn(ctx, s.appContext, draftAgent, newAgent)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t_, err = s.DomainSVC.CreateSingleAgentDraftWithID(ctx, userID, newAgentID, newAgent)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tuserInfo, err := s.appContext.UserDomainSVC.GetUserInfo(ctx, userID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = s.appContext.EventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Created,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tStatus:  intelligence.IntelligenceStatus_Using,\n\t\t\tType:    intelligence.IntelligenceType_Bot,\n\t\t\tID:      newAgent.AgentID,\n\t\t\tSpaceID: &req.SpaceID,\n\t\t\tOwnerID: &userID,\n\t\t\tName:    &newAgent.Name,\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &developer_api.DuplicateDraftBotResponse{\n\t\tData: &developer_api.DuplicateDraftBotData{\n\t\t\tBotID: newAgent.AgentID,\n\t\t\tName:  newAgent.Name,\n\t\t\tUserInfo: &developer_api.Creator{\n\t\t\t\tID:             userID,\n\t\t\t\tName:           userInfo.Name,\n\t\t\t\tAvatarURL:      userInfo.IconURL,\n\t\t\t\tSelf:           userID == draftAgent.CreatorID,\n\t\t\t\tUserUniqueName: userInfo.UniqueName,\n\t\t\t\tUserLabel:      nil,\n\t\t\t},\n\t\t},\n\t\tCode: 0,\n\t}, nil\n}\n\nfunc duplicateVariables(ctx context.Context, appContext *ServiceComponents, oldAgent, newAgent *entity.SingleAgent) (*entity.SingleAgent, error) {\n\tif oldAgent.VariablesMetaID == nil || *oldAgent.VariablesMetaID <= 0 {\n\t\treturn newAgent, nil\n\t}\n\n\tvars, err := appContext.VariablesDomainSVC.GetVariableMetaByID(ctx, *oldAgent.VariablesMetaID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvars.ID = 0\n\tvars.BizID = conv.Int64ToStr(newAgent.AgentID)\n\tvars.BizType = project_memory.VariableConnector_Bot\n\tvars.Version = \"\"\n\tvars.CreatorID = newAgent.CreatorID\n\n\tvarMetaID, err := appContext.VariablesDomainSVC.UpsertMeta(ctx, vars)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnewAgent.VariablesMetaID = &varMetaID\n\n\treturn newAgent, nil\n}\n\nfunc duplicatePlugin(ctx context.Context, appContext *ServiceComponents, oldAgent, newAgent *entity.SingleAgent) (*entity.SingleAgent, error) {\n\terr := appContext.PluginDomainSVC.DuplicateDraftAgentTools(ctx, oldAgent.AgentID, newAgent.AgentID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn newAgent, nil\n}\n\nfunc duplicateShortCommand(ctx context.Context, appContext *ServiceComponents, oldAgent, newAgent *entity.SingleAgent) (*entity.SingleAgent, error) {\n\tmetas, err := appContext.ShortcutCMDDomainSVC.ListCMD(ctx, &shortcutCMDEntity.ListMeta{\n\t\tSpaceID:  oldAgent.SpaceID,\n\t\tObjectID: oldAgent.AgentID,\n\t\tIsOnline: 0,\n\t\tCommandIDs: slices.Transform(oldAgent.ShortcutCommand, func(a string) int64 {\n\t\t\treturn conv.StrToInt64D(a, 0)\n\t\t}),\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tshortcutCommandIDs := make([]string, 0, len(metas))\n\tfor _, meta := range metas {\n\t\tmeta.ObjectID = newAgent.AgentID\n\t\tmeta.CreatorID = newAgent.CreatorID\n\t\tdo, err := appContext.ShortcutCMDDomainSVC.CreateCMD(ctx, meta)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tshortcutCommandIDs = append(shortcutCommandIDs, conv.Int64ToStr(do.CommandID))\n\t}\n\n\tnewAgent.ShortcutCommand = shortcutCommandIDs\n\n\treturn newAgent, nil\n}\n"
  },
  {
    "path": "backend/application/singleagent/get.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage singleagent\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/getkin/kin-openapi/openapi3\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr\"\n\tknowledgeModel \"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge/model\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/model\"\n\tworkflowModel \"github.com/coze-dev/coze-studio/backend/crossdomain/workflow/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/entity\"\n\tknowledge \"github.com/coze-dev/coze-studio/backend/domain/knowledge/service\"\n\tpluginEntity \"github.com/coze-dev/coze-studio/backend/domain/plugin/entity\"\n\tshortcutCMDEntity \"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/entity\"\n\tworkflowEntity \"github.com/coze-dev/coze-studio/backend/domain/workflow/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/entity/vo\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc (s *SingleAgentApplicationService) GetAgentBotInfo(ctx context.Context, req *playground.GetDraftBotInfoAgwRequest) (*playground.GetDraftBotInfoAgwResponse, error) {\n\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\n\tagentInfo, err := s.DomainSVC.GetSingleAgent(ctx, req.GetBotID(), req.GetVersion())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif agentInfo == nil {\n\t\treturn nil, errorx.New(errno.ErrAgentInvalidParamCode, errorx.KVf(\"msg\", \"agent %d not found\", req.GetBotID()))\n\t}\n\n\tif agentInfo.CreatorID != uid {\n\t\treturn nil, errorx.New(errno.ErrAgentInvalidParamCode, errorx.KVf(\"msg\", \"agent %d not found\", req.GetBotID()))\n\t}\n\n\tvo, err := s.singleAgentDraftDo2Vo(ctx, agentInfo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tklInfos, err := s.fetchKnowledgeDetails(ctx, agentInfo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmodelInfos, err := s.fetchModelDetails(ctx, agentInfo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttoolInfos, err := s.fetchToolDetails(ctx, agentInfo, req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpluginInfos, err := s.fetchPluginDetails(ctx, agentInfo, toolInfos)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tworkflowInfos, err := s.fetchWorkflowDetails(ctx, agentInfo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tshortCutCmdResp, err := s.fetchShortcutCMD(ctx, agentInfo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tworkflowDetailMap, err := workflowDo2Vo(workflowInfos)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &playground.GetDraftBotInfoAgwResponse{\n\t\tData: &playground.GetDraftBotInfoAgwData{\n\t\t\tBotInfo: vo,\n\t\t\tBotOptionData: &playground.BotOptionData{\n\t\t\t\tModelDetailMap:      modelInfoDo2Vo(modelInfos),\n\t\t\t\tKnowledgeDetailMap:  knowledgeInfoDo2Vo(klInfos),\n\t\t\t\tPluginAPIDetailMap:  toolInfoDo2Vo(toolInfos),\n\t\t\t\tPluginDetailMap:     s.pluginInfoDo2Vo(ctx, pluginInfos),\n\t\t\t\tWorkflowDetailMap:   workflowDetailMap,\n\t\t\t\tShortcutCommandList: shortCutCmdResp,\n\t\t\t},\n\t\t\tSpaceID:   agentInfo.SpaceID,\n\t\t\tEditable:  ptr.Of(true),\n\t\t\tDeletable: ptr.Of(true),\n\t\t},\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) fetchShortcutCMD(ctx context.Context, agentInfo *entity.SingleAgent) ([]*playground.ShortcutCommand, error) {\n\tvar cmdVOs []*playground.ShortcutCommand\n\tif len(agentInfo.ShortcutCommand) == 0 {\n\t\treturn cmdVOs, nil\n\t}\n\n\tcmdDOs, err := s.appContext.ShortcutCMDDomainSVC.ListCMD(ctx, &shortcutCMDEntity.ListMeta{\n\t\tSpaceID:  agentInfo.SpaceID,\n\t\tObjectID: agentInfo.AgentID,\n\t\tCommandIDs: slices.Transform(agentInfo.ShortcutCommand, func(a string) int64 {\n\t\t\treturn conv.StrToInt64D(a, 0)\n\t\t}),\n\t})\n\n\tlogs.CtxInfof(ctx, \"fetchShortcutCMD cmdDOs = %v, err = %v\", conv.DebugJsonToStr(cmdDOs), err)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcmdVOs = s.shortcutCMDDo2Vo(cmdDOs)\n\treturn cmdVOs, nil\n}\n\nfunc (s *SingleAgentApplicationService) shortcutCMDDo2Vo(cmdDOs []*shortcutCMDEntity.ShortcutCmd) []*playground.ShortcutCommand {\n\treturn slices.Transform(cmdDOs, func(cmdDO *shortcutCMDEntity.ShortcutCmd) *playground.ShortcutCommand {\n\t\treturn &playground.ShortcutCommand{\n\t\t\tObjectID:        cmdDO.ObjectID,\n\t\t\tCommandID:       cmdDO.CommandID,\n\t\t\tCommandName:     cmdDO.CommandName,\n\t\t\tShortcutCommand: cmdDO.ShortcutCommand,\n\t\t\tDescription:     cmdDO.Description,\n\t\t\tSendType:        playground.SendType(cmdDO.SendType),\n\t\t\tToolType:        playground.ToolType(cmdDO.ToolType),\n\t\t\tWorkFlowID:      conv.Int64ToStr(cmdDO.WorkFlowID),\n\t\t\tPluginID:        conv.Int64ToStr(cmdDO.PluginID),\n\t\t\tPluginAPIName:   cmdDO.PluginToolName,\n\t\t\tPluginAPIID:     cmdDO.PluginToolID,\n\t\t\tShortcutIcon:    cmdDO.ShortcutIcon,\n\t\t\tTemplateQuery:   cmdDO.TemplateQuery,\n\t\t\tComponentsList:  cmdDO.Components,\n\t\t\tCardSchema:      cmdDO.CardSchema,\n\t\t\tToolInfo:        cmdDO.ToolInfo,\n\t\t\tPluginFrom:      ptr.Of(bot_common.PluginFrom(cmdDO.Source)),\n\t\t}\n\t})\n}\n\nfunc (s *SingleAgentApplicationService) fetchModelDetails(ctx context.Context, agentInfo *entity.SingleAgent) ([]*modelmgr.Model, error) {\n\tif agentInfo.ModelInfo.ModelId == nil {\n\t\treturn nil, nil\n\t}\n\n\tmodelID := agentInfo.ModelInfo.GetModelId()\n\tmodelInfos, err := config.ModelConf().MGetModelByID(ctx, []int64{modelID})\n\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"fetch model(%d) details failed: %v\", modelID, err)\n\t}\n\n\treturn modelInfos, nil\n}\n\nfunc (s *SingleAgentApplicationService) fetchKnowledgeDetails(ctx context.Context, agentInfo *entity.SingleAgent) ([]*knowledgeModel.Knowledge, error) {\n\tknowledgeIDs := make([]int64, 0, len(agentInfo.Knowledge.KnowledgeInfo))\n\tfor _, v := range agentInfo.Knowledge.KnowledgeInfo {\n\t\tid, err := conv.StrToInt64(v.GetId())\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid knowledge id: %s\", v.GetId())\n\t\t}\n\t\tknowledgeIDs = append(knowledgeIDs, id)\n\t}\n\n\tif len(knowledgeIDs) == 0 {\n\t\treturn nil, nil\n\t}\n\n\tlistResp, err := s.appContext.KnowledgeDomainSVC.ListKnowledge(ctx, &knowledge.ListKnowledgeRequest{\n\t\tIDs: knowledgeIDs,\n\t})\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"fetch knowledge details failed: %v\", err)\n\t}\n\n\treturn listResp.KnowledgeList, err\n}\n\nfunc (s *SingleAgentApplicationService) fetchToolDetails(ctx context.Context, agentInfo *entity.SingleAgent, req *playground.GetDraftBotInfoAgwRequest) ([]*pluginEntity.ToolInfo, error) {\n\treturn s.appContext.PluginDomainSVC.MGetAgentTools(ctx, &model.MGetAgentToolsRequest{\n\t\tSpaceID: agentInfo.SpaceID,\n\t\tAgentID: req.GetBotID(),\n\t\tIsDraft: true,\n\t\tVersionAgentTools: slices.Transform(agentInfo.Plugin, func(a *bot_common.PluginInfo) model.VersionAgentTool {\n\t\t\treturn model.VersionAgentTool{\n\t\t\t\tToolID:     a.GetApiId(),\n\t\t\t\tPluginFrom: a.PluginFrom,\n\t\t\t\tPluginID:   a.GetPluginId(),\n\t\t\t}\n\t\t}),\n\t})\n}\n\nfunc (s *SingleAgentApplicationService) fetchPluginDetails(ctx context.Context, agentInfo *entity.SingleAgent, toolInfos []*pluginEntity.ToolInfo) ([]*pluginEntity.PluginInfo, error) {\n\tvLocalPlugins := make([]model.VersionPlugin, 0, len(agentInfo.Plugin))\n\tvPluginMap := make(map[string]bool, len(agentInfo.Plugin))\n\tvSaasPlugin := make([]model.VersionPlugin, 0, len(agentInfo.Plugin))\n\tfor _, v := range toolInfos {\n\t\tk := fmt.Sprintf(\"%d:%s:%s\", v.PluginID, v.GetVersion(), v.GetPluginFrom())\n\t\tif vPluginMap[k] {\n\t\t\tcontinue\n\t\t}\n\t\tvPluginMap[k] = true\n\t\tif v.GetPluginFrom() == bot_common.PluginFrom_FromSaas {\n\t\t\tvSaasPlugin = append(vSaasPlugin, model.VersionPlugin{\n\t\t\t\tPluginID: v.PluginID,\n\t\t\t\tVersion:  v.GetVersion(),\n\t\t\t})\n\t\t} else {\n\t\t\tvLocalPlugins = append(vLocalPlugins, model.VersionPlugin{\n\t\t\t\tPluginID: v.PluginID,\n\t\t\t\tVersion:  v.GetVersion(),\n\t\t\t})\n\t\t}\n\t}\n\tpluginInfos := make([]*pluginEntity.PluginInfo, 0, len(vLocalPlugins)+len(vSaasPlugin))\n\tif len(vLocalPlugins) > 0 {\n\t\tlocalPluginInfos, err := s.appContext.PluginDomainSVC.MGetVersionPlugins(ctx, vLocalPlugins)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"fetch local plugin details failed: %v\", err)\n\t\t}\n\t\tpluginInfos = append(pluginInfos, localPluginInfos...)\n\t}\n\n\tif len(vSaasPlugin) > 0 {\n\t\tsaasPluginInfos, err := s.appContext.PluginDomainSVC.GetSaasPluginInfo(ctx, slices.Transform(vSaasPlugin, func(v model.VersionPlugin) int64 {\n\t\t\treturn v.PluginID\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"fetch saas plugin details failed: %v\", err)\n\t\t}\n\t\tpluginInfos = append(pluginInfos, saasPluginInfos...)\n\t}\n\treturn pluginInfos, nil\n}\n\nfunc (s *SingleAgentApplicationService) fetchWorkflowDetails(ctx context.Context, agentInfo *entity.SingleAgent) ([]*workflowEntity.Workflow, error) {\n\tif len(agentInfo.Workflow) == 0 {\n\t\treturn nil, nil\n\t}\n\n\tpolicy := &vo.MGetPolicy{\n\t\tMetaQuery: vo.MetaQuery{\n\t\t\tIDs: slices.Transform(agentInfo.Workflow, func(a *bot_common.WorkflowInfo) int64 {\n\t\t\t\treturn a.GetWorkflowId()\n\t\t\t}),\n\t\t},\n\t\tQType: workflowModel.FromLatestVersion,\n\t}\n\tret, _, err := s.appContext.WorkflowDomainSVC.MGet(ctx, policy)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"fetch workflow details failed: %v\", err)\n\t}\n\treturn ret, nil\n}\n\nfunc modelInfoDo2Vo(modelInfos []*modelmgr.Model) map[int64]*playground.ModelDetail {\n\treturn slices.ToMap(modelInfos, func(e *modelmgr.Model) (int64, *playground.ModelDetail) {\n\t\treturn e.ID, toModelDetail(e)\n\t})\n}\n\nfunc toModelDetail(m *modelmgr.Model) *playground.ModelDetail {\n\treturn &playground.ModelDetail{\n\t\tName:         ptr.Of(m.DisplayInfo.Name),\n\t\tModelName:    ptr.Of(m.Connection.BaseConnInfo.Model),\n\t\tModelID:      ptr.Of(m.ID),\n\t\tModelFamily:  ptr.Of(int64(m.Provider.ModelClass)),\n\t\tModelIconURL: ptr.Of(m.Provider.IconURL),\n\t}\n}\n\nfunc knowledgeInfoDo2Vo(klInfos []*knowledgeModel.Knowledge) map[string]*playground.KnowledgeDetail {\n\treturn slices.ToMap(klInfos, func(e *knowledgeModel.Knowledge) (string, *playground.KnowledgeDetail) {\n\t\treturn fmt.Sprintf(\"%v\", e.ID), &playground.KnowledgeDetail{\n\t\t\tID:      ptr.Of(fmt.Sprintf(\"%d\", e.ID)),\n\t\t\tName:    ptr.Of(e.Name),\n\t\t\tIconURL: ptr.Of(e.IconURL),\n\t\t\tFormatType: func() playground.DataSetType {\n\t\t\t\tswitch e.Type {\n\t\t\t\tcase knowledgeModel.DocumentTypeText:\n\t\t\t\t\treturn playground.DataSetType_Text\n\t\t\t\tcase knowledgeModel.DocumentTypeTable:\n\t\t\t\t\treturn playground.DataSetType_Table\n\t\t\t\tcase knowledgeModel.DocumentTypeImage:\n\t\t\t\t\treturn playground.DataSetType_Image\n\t\t\t\t}\n\t\t\t\treturn playground.DataSetType_Text\n\t\t\t}(),\n\t\t}\n\t})\n}\n\nfunc toolInfoDo2Vo(toolInfos []*pluginEntity.ToolInfo) map[int64]*playground.PluginAPIDetal {\n\treturn slices.ToMap(toolInfos, func(e *pluginEntity.ToolInfo) (int64, *playground.PluginAPIDetal) {\n\t\treturn e.ID, &playground.PluginAPIDetal{\n\t\t\tID:          ptr.Of(e.ID),\n\t\t\tName:        ptr.Of(e.GetName()),\n\t\t\tDescription: ptr.Of(e.GetDesc()),\n\t\t\tPluginID:    ptr.Of(e.PluginID),\n\t\t\tParameters:  parametersDo2Vo(e.Operation),\n\t\t}\n\t})\n}\n\nfunc (s *SingleAgentApplicationService) pluginInfoDo2Vo(ctx context.Context, pluginInfos []*pluginEntity.PluginInfo) map[int64]*playground.PluginDetal {\n\treturn slices.ToMap(pluginInfos, func(v *pluginEntity.PluginInfo) (int64, *playground.PluginDetal) {\n\t\te := v.PluginInfo\n\n\t\tvar iconURL string\n\t\tif e.IconURL != nil {\n\t\t\ticonURL = *e.IconURL\n\t\t} else if e.GetIconURI() != \"\" {\n\t\t\tvar err error\n\t\t\ticonURL, err = s.appContext.TosClient.GetObjectUrl(ctx, e.GetIconURI())\n\t\t\tif err != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"get icon url failed, err = %v\", err)\n\t\t\t}\n\t\t}\n\n\t\treturn e.ID, &playground.PluginDetal{\n\t\t\tID:           ptr.Of(e.ID),\n\t\t\tName:         ptr.Of(e.GetName()),\n\t\t\tDescription:  ptr.Of(e.GetDesc()),\n\t\t\tPluginType:   (*int64)(&e.PluginType),\n\t\t\tIconURL:      &iconURL,\n\t\t\tPluginStatus: (*int64)(ptr.Of(common.PluginStatus_PUBLISHED)),\n\t\t\tIsOfficial: func() *bool {\n\t\t\t\tif e.SpaceID == 0 {\n\t\t\t\t\treturn ptr.Of(true)\n\t\t\t\t}\n\t\t\t\treturn ptr.Of(false)\n\t\t\t}(),\n\t\t\tPluginFrom: e.Source,\n\t\t}\n\t})\n}\n\nfunc parametersDo2Vo(op *model.Openapi3Operation) []*playground.PluginParameter {\n\tvar convertReqBody func(paramName string, isRequired bool, sc *openapi3.Schema) *playground.PluginParameter\n\tconvertReqBody = func(paramName string, isRequired bool, sc *openapi3.Schema) *playground.PluginParameter {\n\t\tif disabledParam(sc) {\n\t\t\treturn nil\n\t\t}\n\n\t\tvar assistType *int64\n\t\tif v, ok := sc.Extensions[consts.APISchemaExtendAssistType]; ok {\n\t\t\tif _v, ok := v.(string); ok {\n\t\t\t\tassistType = toParameterAssistType(_v)\n\t\t\t}\n\t\t}\n\n\t\tparamInfo := &playground.PluginParameter{\n\t\t\tName:        ptr.Of(paramName),\n\t\t\tType:        ptr.Of(sc.Type),\n\t\t\tDescription: ptr.Of(sc.Description),\n\t\t\tIsRequired:  ptr.Of(isRequired),\n\t\t\tAssistType:  assistType,\n\t\t}\n\n\t\tswitch sc.Type {\n\t\tcase openapi3.TypeObject:\n\t\t\trequired := slices.ToMap(sc.Required, func(e string) (string, bool) {\n\t\t\t\treturn e, true\n\t\t\t})\n\n\t\t\tsubParams := make([]*playground.PluginParameter, 0, len(sc.Properties))\n\t\t\tfor subParamName, prop := range sc.Properties {\n\t\t\t\tsubParamInfo := convertReqBody(subParamName, required[subParamName], prop.Value)\n\t\t\t\tif subParamInfo != nil {\n\t\t\t\t\tsubParams = append(subParams, subParamInfo)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tparamInfo.SubParameters = subParams\n\n\t\t\treturn paramInfo\n\t\tcase openapi3.TypeArray:\n\t\t\tparamInfo.SubType = ptr.Of(sc.Items.Value.Type)\n\t\t\tif sc.Items.Value.Type != openapi3.TypeObject {\n\t\t\t\treturn paramInfo\n\t\t\t}\n\n\t\t\trequired := slices.ToMap(sc.Required, func(e string) (string, bool) {\n\t\t\t\treturn e, true\n\t\t\t})\n\n\t\t\tsubParams := make([]*playground.PluginParameter, 0, len(sc.Items.Value.Properties))\n\t\t\tfor subParamName, prop := range sc.Items.Value.Properties {\n\t\t\t\tsubParamInfo := convertReqBody(subParamName, required[subParamName], prop.Value)\n\t\t\t\tif subParamInfo != nil {\n\t\t\t\t\tsubParams = append(subParams, subParamInfo)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tparamInfo.SubParameters = subParams\n\n\t\t\treturn paramInfo\n\t\tdefault:\n\t\t\treturn paramInfo\n\t\t}\n\t}\n\n\tvar params []*playground.PluginParameter\n\n\tfor _, prop := range op.Parameters {\n\t\tparamVal := prop.Value\n\t\tschemaVal := paramVal.Schema.Value\n\t\tif schemaVal.Type == openapi3.TypeObject || schemaVal.Type == openapi3.TypeArray {\n\t\t\tcontinue\n\t\t}\n\n\t\tif disabledParam(prop.Value.Schema.Value) {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar assistType *int64\n\t\tif v, ok := schemaVal.Extensions[consts.APISchemaExtendAssistType]; ok {\n\t\t\tif _v, ok := v.(string); ok {\n\t\t\t\tassistType = toParameterAssistType(_v)\n\t\t\t}\n\t\t}\n\n\t\tparams = append(params, &playground.PluginParameter{\n\t\t\tName:        ptr.Of(paramVal.Name),\n\t\t\tDescription: ptr.Of(paramVal.Description),\n\t\t\tIsRequired:  ptr.Of(paramVal.Required),\n\t\t\tType:        ptr.Of(schemaVal.Type),\n\t\t\tAssistType:  assistType,\n\t\t})\n\t}\n\n\tif op.RequestBody == nil || op.RequestBody.Value == nil || len(op.RequestBody.Value.Content) == 0 {\n\t\treturn params\n\t}\n\n\tfor _, mType := range op.RequestBody.Value.Content {\n\t\tschemaVal := mType.Schema.Value\n\t\tif len(schemaVal.Properties) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\trequired := slices.ToMap(schemaVal.Required, func(e string) (string, bool) {\n\t\t\treturn e, true\n\t\t})\n\n\t\tfor paramName, prop := range schemaVal.Properties {\n\t\t\tparamInfo := convertReqBody(paramName, required[paramName], prop.Value)\n\t\t\tif paramInfo != nil {\n\t\t\t\tparams = append(params, paramInfo)\n\t\t\t}\n\t\t}\n\n\t\tbreak // Take only one MIME.\n\t}\n\n\treturn params\n}\n\nfunc toParameterAssistType(assistType string) *int64 {\n\tif assistType == \"\" {\n\t\treturn nil\n\t}\n\tswitch consts.APIFileAssistType(assistType) {\n\tcase consts.AssistTypeFile:\n\t\treturn ptr.Of(int64(common.AssistParameterType_CODE))\n\tcase consts.AssistTypeImage:\n\t\treturn ptr.Of(int64(common.AssistParameterType_IMAGE))\n\tcase consts.AssistTypeDoc:\n\t\treturn ptr.Of(int64(common.AssistParameterType_DOC))\n\tcase consts.AssistTypePPT:\n\t\treturn ptr.Of(int64(common.AssistParameterType_PPT))\n\tcase consts.AssistTypeCode:\n\t\treturn ptr.Of(int64(common.AssistParameterType_CODE))\n\tcase consts.AssistTypeExcel:\n\t\treturn ptr.Of(int64(common.AssistParameterType_EXCEL))\n\tcase consts.AssistTypeZIP:\n\t\treturn ptr.Of(int64(common.AssistParameterType_ZIP))\n\tcase consts.AssistTypeVideo:\n\t\treturn ptr.Of(int64(common.AssistParameterType_VIDEO))\n\tcase consts.AssistTypeAudio:\n\t\treturn ptr.Of(int64(common.AssistParameterType_AUDIO))\n\tcase consts.AssistTypeTXT:\n\t\treturn ptr.Of(int64(common.AssistParameterType_TXT))\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nfunc workflowDo2Vo(wfInfos []*workflowEntity.Workflow) (map[int64]*playground.WorkflowDetail, error) {\n\tresult := make(map[int64]*playground.WorkflowDetail, len(wfInfos))\n\tfor _, e := range wfInfos {\n\t\tparameters, err := slices.TransformWithErrorCheck(e.InputParams, toPluginParameter)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tresult[e.ID] = &playground.WorkflowDetail{\n\t\t\tID:          ptr.Of(e.ID),\n\t\t\tName:        ptr.Of(e.Name),\n\t\t\tDescription: ptr.Of(e.Desc),\n\t\t\tIconURL:     ptr.Of(e.IconURL),\n\t\t\tPluginID:    ptr.Of(e.ID),\n\t\t\tAPIDetail: &playground.PluginAPIDetal{\n\t\t\t\tID:          ptr.Of(e.ID),\n\t\t\t\tName:        ptr.Of(e.Name),\n\t\t\t\tDescription: ptr.Of(e.Desc),\n\t\t\t\tPluginID:    ptr.Of(e.ID),\n\t\t\t\tParameters:  parameters,\n\t\t\t},\n\t\t}\n\n\t}\n\n\treturn result, nil\n}\n\nfunc toPluginParameter(info *vo.NamedTypeInfo) (*playground.PluginParameter, error) {\n\tif info == nil {\n\t\treturn nil, fmt.Errorf(\"named type info is nil\")\n\t}\n\tp := &playground.PluginParameter{\n\t\tName:        ptr.Of(info.Name),\n\t\tDescription: ptr.Of(info.Desc),\n\t\tIsRequired:  ptr.Of(info.Required),\n\t}\n\n\tswitch info.Type {\n\tcase vo.DataTypeString, vo.DataTypeFile, vo.DataTypeTime:\n\t\tp.Type = ptr.Of(\"string\")\n\t\tif info.Type == vo.DataTypeFile {\n\t\t\tp.AssistType = toWorkflowParameterAssistType(string(*info.FileType))\n\t\t}\n\n\tcase vo.DataTypeInteger:\n\t\tp.Type = ptr.Of(\"integer\")\n\tcase vo.DataTypeNumber:\n\t\tp.Type = ptr.Of(\"number\")\n\tcase vo.DataTypeBoolean:\n\t\tp.Type = ptr.Of(\"boolean\")\n\tcase vo.DataTypeObject:\n\t\tp.Type = ptr.Of(\"object\")\n\t\tp.SubParameters = make([]*playground.PluginParameter, 0, len(info.Properties))\n\t\tfor _, sub := range info.Properties {\n\t\t\tsubParameter, err := toPluginParameter(sub)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tp.SubParameters = append(p.SubParameters, subParameter)\n\t\t}\n\tcase vo.DataTypeArray:\n\t\tp.Type = ptr.Of(\"array\")\n\t\teleParameter, err := toPluginParameter(info.ElemTypeInfo)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tp.SubType = eleParameter.Type\n\t\tp.SubParameters = []*playground.PluginParameter{eleParameter}\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown named type info type: %s\", info.Type)\n\t}\n\n\treturn p, nil\n}\n\nfunc toWorkflowParameterAssistType(assistType string) *int64 {\n\tif assistType == \"\" {\n\t\treturn nil\n\t}\n\tswitch vo.FileSubType(assistType) {\n\tcase vo.FileTypeDefault:\n\t\treturn ptr.Of(int64(workflow.AssistParameterType_DEFAULT))\n\tcase vo.FileTypeImage:\n\t\treturn ptr.Of(int64(workflow.AssistParameterType_IMAGE))\n\tcase vo.FileTypeDocument:\n\t\treturn ptr.Of(int64(workflow.AssistParameterType_DOC))\n\tcase vo.FileTypePPT:\n\t\treturn ptr.Of(int64(workflow.AssistParameterType_PPT))\n\tcase vo.FileTypeCode:\n\t\treturn ptr.Of(int64(workflow.AssistParameterType_CODE))\n\tcase vo.FileTypeExcel:\n\t\treturn ptr.Of(int64(workflow.AssistParameterType_EXCEL))\n\tcase vo.FileTypeZip:\n\t\treturn ptr.Of(int64(workflow.AssistParameterType_ZIP))\n\tcase vo.FileTypeVideo:\n\t\treturn ptr.Of(int64(workflow.AssistParameterType_VIDEO))\n\tcase vo.FileTypeAudio:\n\t\treturn ptr.Of(int64(workflow.AssistParameterType_AUDIO))\n\tcase vo.FileTypeTxt:\n\t\treturn ptr.Of(int64(workflow.AssistParameterType_TXT))\n\tdefault:\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "backend/application/singleagent/image.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage singleagent\n\nimport (\n\t\"context\"\n\t\"strings\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n)\n\nfunc (s *SingleAgentApplicationService) GetUploadAuthToken(ctx context.Context, req *developer_api.GetUploadAuthTokenRequest) (*developer_api.GetUploadAuthTokenResponse, error) {\n\n\tauthToken, err := s.getAuthToken(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tprefix := s.getUploadPrefix(req.Scene, req.DataType)\n\n\treturn &developer_api.GetUploadAuthTokenResponse{\n\t\tData: &developer_api.GetUploadAuthTokenData{\n\t\t\tServiceID:        authToken.ServiceID,\n\t\t\tUploadPathPrefix: prefix,\n\t\t\tUploadHost:       authToken.UploadHost,\n\t\t\tAuth: &developer_api.UploadAuthTokenInfo{\n\t\t\t\tAccessKeyID:     authToken.AccessKeyID,\n\t\t\t\tSecretAccessKey: authToken.SecretAccessKey,\n\t\t\t\tSessionToken:    authToken.SessionToken,\n\t\t\t\tExpiredTime:     authToken.ExpiredTime,\n\t\t\t\tCurrentTime:     authToken.CurrentTime,\n\t\t\t},\n\t\t\tSchema: authToken.HostScheme,\n\t\t},\n\t}, nil\n}\nfunc (s *SingleAgentApplicationService) getAuthToken(ctx context.Context) (*bot_common.AuthToken, error) {\n\tuploadAuthToken, err := s.appContext.ImageX.GetUploadAuth(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tauthToken := &bot_common.AuthToken{\n\t\tServiceID:       s.appContext.ImageX.GetServerID(),\n\t\tAccessKeyID:     uploadAuthToken.AccessKeyID,\n\t\tSecretAccessKey: uploadAuthToken.SecretAccessKey,\n\t\tSessionToken:    uploadAuthToken.SessionToken,\n\t\tExpiredTime:     uploadAuthToken.ExpiredTime,\n\t\tCurrentTime:     uploadAuthToken.CurrentTime,\n\t\tUploadHost:      s.appContext.ImageX.GetUploadHost(ctx),\n\t\tHostScheme:      uploadAuthToken.HostScheme,\n\t}\n\treturn authToken, nil\n}\n\nfunc (s *SingleAgentApplicationService) getUploadPrefix(scene, dataType string) string {\n\treturn strings.Replace(scene, \"_\", \"-\", -1) + \"-\" + dataType\n}\n\nfunc (s *SingleAgentApplicationService) GetImagexShortUrl(ctx context.Context, req *playground.GetImagexShortUrlRequest) (*playground.GetImagexShortUrlResponse, error) {\n\turlInfo := make(map[string]*playground.UrlInfo, len(req.Uris))\n\tfor _, uri := range req.Uris {\n\t\tresURL, err := s.appContext.ImageX.GetResourceURL(ctx, uri)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\turlInfo[uri] = &playground.UrlInfo{\n\t\t\tURL:          resURL.URL,\n\t\t\tReviewStatus: true,\n\t\t}\n\t}\n\n\treturn &playground.GetImagexShortUrlResponse{\n\t\tData: &playground.GetImagexShortUrlData{\n\t\t\tURLInfo: urlInfo,\n\t\t},\n\t}, nil\n}\n"
  },
  {
    "path": "backend/application/singleagent/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage singleagent\n\nimport (\n\t\"github.com/cloudwego/eino/compose\"\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/repository\"\n\tsingleagent \"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/service\"\n\tconnector \"github.com/coze-dev/coze-studio/backend/domain/connector/service\"\n\tknowledge \"github.com/coze-dev/coze-studio/backend/domain/knowledge/service\"\n\tdatabase \"github.com/coze-dev/coze-studio/backend/domain/memory/database/service\"\n\tvariables \"github.com/coze-dev/coze-studio/backend/domain/memory/variables/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/service\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/service\"\n\tshortcutCmd \"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/service\"\n\tuser \"github.com/coze-dev/coze-studio/backend/domain/user/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/cache\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/imagex\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/kvstore\"\n)\n\ntype (\n\tSingleAgent = singleagent.SingleAgent\n)\n\nvar SingleAgentSVC *SingleAgentApplicationService\n\ntype ServiceComponents struct {\n\tIDGen       idgen.IDGenerator\n\tDB          *gorm.DB\n\tCache       cache.Cmdable\n\tTosClient   storage.Storage\n\tImageX      imagex.ImageX\n\tEventBus    search.ProjectEventBus\n\tCounterRepo repository.CounterRepository\n\n\tKnowledgeDomainSVC   knowledge.Knowledge\n\tPluginDomainSVC      service.PluginService\n\tWorkflowDomainSVC    workflow.Service\n\tUserDomainSVC        user.User\n\tVariablesDomainSVC   variables.Variables\n\tConnectorDomainSVC   connector.Connector\n\tDatabaseDomainSVC    database.Database\n\tShortcutCMDDomainSVC shortcutCmd.ShortcutCmd\n\tCPStore              compose.CheckPointStore\n}\n\nfunc InitService(c *ServiceComponents) (*SingleAgentApplicationService, error) {\n\tdomainComponents := &singleagent.Components{\n\t\tAgentDraftRepo:   repository.NewSingleAgentRepo(c.DB, c.IDGen, c.Cache),\n\t\tAgentVersionRepo: repository.NewSingleAgentVersionRepo(c.DB, c.IDGen),\n\t\tPublishInfoRepo:  kvstore.New[entity.PublishInfo](c.DB),\n\t\tCounterRepo:      repository.NewCounterRepo(c.Cache),\n\t\tCPStore:          c.CPStore,\n\t}\n\n\tsingleAgentDomainSVC := singleagent.NewService(domainComponents)\n\tSingleAgentSVC = newApplicationService(c, singleAgentDomainSVC)\n\n\treturn SingleAgentSVC, nil\n}\n"
  },
  {
    "path": "backend/application/singleagent/publish.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage singleagent\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tdatabase \"github.com/coze-dev/coze-studio/backend/crossdomain/database/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/entity\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/taskgroup\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc (s *SingleAgentApplicationService) PublishAgent(ctx context.Context, req *developer_api.PublishDraftBotRequest) (*developer_api.PublishDraftBotResponse, error) {\n\tdraftAgent, err := s.ValidateAgentDraftAccess(ctx, req.BotID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tversion, err := s.getPublishAgentVersion(ctx, req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tconnectorIDs := make([]int64, 0, len(req.Connectors))\n\tfor v := range req.Connectors {\n\t\tvar id int64\n\t\tid, err = strconv.ParseInt(v, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif !entity.PublishConnectorIDWhiteList[id] {\n\t\t\treturn nil, errorx.New(errno.ErrAgentPermissionCode, errorx.KV(\"msg\", fmt.Sprintf(\"connector %d not allowed\", id)))\n\t\t}\n\n\t\tconnectorIDs = append(connectorIDs, id)\n\t}\n\n\tp := &entity.SingleAgentPublish{\n\t\tConnectorIds: connectorIDs,\n\t\tVersion:      version,\n\t\tPublishID:    req.GetPublishID(),\n\t\tPublishInfo:  req.HistoryInfo,\n\t}\n\n\tpublishFns := []publishFn{\n\t\tpublishAgentVariables,\n\t\tpublishAgentPlugins,\n\t\tpublishShortcutCommand,\n\t\tpublishDatabase,\n\t}\n\n\tfor _, pubFn := range publishFns {\n\t\tdraftAgent, err = pubFn(ctx, s.appContext, p, draftAgent)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\terr = s.DomainSVC.SavePublishRecord(ctx, p, draftAgent)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttasks := taskgroup.NewUninterruptibleTaskGroup(ctx, len(connectorIDs))\n\tpublishResult := make(map[string]*developer_api.ConnectorBindResult, len(connectorIDs))\n\tlock := sync.Mutex{}\n\n\tfor _, connectorID := range connectorIDs {\n\t\ttasks.Go(func() error {\n\t\t\t_, err = s.DomainSVC.CreateSingleAgent(ctx, connectorID, version, draftAgent)\n\t\t\tif err != nil {\n\t\t\t\tlogs.CtxWarnf(ctx, \"create single agent failed: %v, agentID: %d, connectorID: %d , version : %s\", err, draftAgent.AgentID, connectorID, version)\n\t\t\t\tlock.Lock()\n\t\t\t\tpublishResult[conv.Int64ToStr(connectorID)] = &developer_api.ConnectorBindResult{\n\t\t\t\t\tPublishResultStatus: ptr.Of(developer_api.PublishResultStatus_Failed),\n\t\t\t\t}\n\t\t\t\tlock.Unlock()\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// do other connector publish logic if need\n\n\t\t\tlock.Lock()\n\t\t\tpublishResult[conv.Int64ToStr(connectorID)] = &developer_api.ConnectorBindResult{\n\t\t\t\tPublishResultStatus: ptr.Of(developer_api.PublishResultStatus_Success),\n\t\t\t}\n\t\t\tlock.Unlock()\n\t\t\treturn nil\n\t\t})\n\t}\n\n\t_ = tasks.Wait()\n\n\terr = s.appContext.EventBus.PublishProject(ctx, &search.ProjectDomainEvent{\n\t\tOpType: search.Updated,\n\t\tProject: &search.ProjectDocument{\n\t\t\tID:            draftAgent.AgentID,\n\t\t\tHasPublished:  ptr.Of(1),\n\t\t\tPublishTimeMS: ptr.Of(time.Now().UnixMilli()),\n\t\t\tType:          common.IntelligenceType_Bot,\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"publish project event failed, agentID: %d, err : %v\", draftAgent.AgentID, err)\n\t}\n\n\treturn &developer_api.PublishDraftBotResponse{\n\t\tData: &developer_api.PublishDraftBotData{\n\t\t\tCheckNotPass:  false,\n\t\t\tPublishResult: publishResult,\n\t\t},\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) getPublishAgentVersion(ctx context.Context, req *developer_api.PublishDraftBotRequest) (string, error) {\n\tversion := req.GetCommitVersion()\n\tif version != \"\" {\n\t\treturn version, nil\n\t}\n\n\tv, err := s.appContext.IDGen.GenID(ctx)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tversion = fmt.Sprintf(\"%v\", v)\n\n\treturn version, nil\n}\n\nfunc (s *SingleAgentApplicationService) GetAgentPopupInfo(ctx context.Context, req *playground.GetBotPopupInfoRequest) (*playground.GetBotPopupInfoResponse, error) {\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\tagentPopupCountInfo := make(map[playground.BotPopupType]int64, len(req.BotPopupTypes))\n\n\tfor _, agentPopupType := range req.BotPopupTypes {\n\t\tcount, err := s.DomainSVC.GetAgentPopupCount(ctx, uid, req.GetBotID(), agentPopupType)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tagentPopupCountInfo[agentPopupType] = count\n\t}\n\n\treturn &playground.GetBotPopupInfoResponse{\n\t\tData: &playground.BotPopupInfoData{\n\t\t\tBotPopupCountInfo: agentPopupCountInfo,\n\t\t},\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) UpdateAgentPopupInfo(ctx context.Context, req *playground.UpdateBotPopupInfoRequest) (*playground.UpdateBotPopupInfoResponse, error) {\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\n\terr := s.DomainSVC.IncrAgentPopupCount(ctx, uid, req.GetBotID(), req.GetBotPopupType())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &playground.UpdateBotPopupInfoResponse{\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) GetPublishConnectorList(ctx context.Context, req *developer_api.PublishConnectorListRequest) (*developer_api.PublishConnectorListResponse, error) {\n\tdata, err := s.DomainSVC.GetPublishConnectorList(ctx, req.BotID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &developer_api.PublishConnectorListResponse{\n\t\tPublishConnectorList: data.PublishConnectorList,\n\t\tCode:                 0,\n\t\tMsg:                  \"success\",\n\t}, nil\n}\n\ntype publishFn func(ctx context.Context, appContext *ServiceComponents, publishInfo *entity.SingleAgentPublish, agent *entity.SingleAgent) (*entity.SingleAgent, error)\n\nfunc publishAgentVariables(ctx context.Context, appContext *ServiceComponents, publishInfo *entity.SingleAgentPublish, agent *entity.SingleAgent) (*entity.SingleAgent, error) {\n\tdraftAgent := agent\n\tif draftAgent.VariablesMetaID == nil || *draftAgent.VariablesMetaID == 0 {\n\t\treturn draftAgent, nil\n\t}\n\n\tvar newVariableMetaID int64\n\tnewVariableMetaID, err := appContext.VariablesDomainSVC.PublishMeta(ctx, *draftAgent.VariablesMetaID, publishInfo.Version)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdraftAgent.VariablesMetaID = ptr.Of(newVariableMetaID)\n\n\treturn draftAgent, nil\n}\n\nfunc publishAgentPlugins(ctx context.Context, appContext *ServiceComponents, publishInfo *entity.SingleAgentPublish, agent *entity.SingleAgent) (*entity.SingleAgent, error) {\n\terr := appContext.PluginDomainSVC.PublishAgentTools(ctx, agent.AgentID, publishInfo.Version)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn agent, nil\n}\n\nfunc publishShortcutCommand(ctx context.Context, appContext *ServiceComponents, publishInfo *entity.SingleAgentPublish, agent *entity.SingleAgent) (*entity.SingleAgent, error) {\n\tlogs.CtxInfof(ctx, \"publishShortcutCommand agentID: %d, shortcutCommand: %v\", agent.AgentID, agent.ShortcutCommand)\n\tif len(agent.ShortcutCommand) == 0 {\n\t\treturn agent, nil\n\t}\n\tcmdIDs := slices.Transform(agent.ShortcutCommand, func(a string) int64 {\n\t\treturn conv.StrToInt64D(a, 0)\n\t})\n\terr := appContext.ShortcutCMDDomainSVC.PublishCMDs(ctx, agent.AgentID, cmdIDs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn agent, nil\n}\n\nfunc publishDatabase(ctx context.Context, appContext *ServiceComponents, publishInfo *entity.SingleAgentPublish, agent *entity.SingleAgent) (*entity.SingleAgent, error) {\n\tonlineResp, err := appContext.DatabaseDomainSVC.PublishDatabase(ctx, &database.PublishDatabaseRequest{AgentID: agent.AgentID})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tagent.Database = onlineResp.OnlineDatabases\n\treturn agent, nil\n}\n"
  },
  {
    "path": "backend/application/singleagent/single_agent.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage singleagent\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/bytedance/sonic\"\n\t\"github.com/getkin/kin-openapi/openapi3\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_open_api\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\tintelligence \"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/database/table\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/agent\"\n\tcrossdatabase \"github.com/coze-dev/coze-studio/backend/crossdomain/database\"\n\tdatabase \"github.com/coze-dev/coze-studio/backend/crossdomain/database/model\"\n\tpluginConsts \"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/consts\"\n\tcrossuser \"github.com/coze-dev/coze-studio/backend/crossdomain/user\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/entity\"\n\tsingleagent \"github.com/coze-dev/coze-studio/backend/domain/agent/singleagent/service\"\n\tvariableEntity \"github.com/coze-dev/coze-studio/backend/domain/memory/variables/entity\"\n\tsearchEntity \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\tshortcutEntity \"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/entity\"\n\tshortcutCmd \"github.com/coze-dev/coze-studio/backend/domain/shortcutcmd/service\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\ntype SingleAgentApplicationService struct {\n\tappContext     *ServiceComponents\n\tDomainSVC      singleagent.SingleAgent\n\tShortcutCmdSvc shortcutCmd.ShortcutCmd\n}\n\nfunc newApplicationService(s *ServiceComponents, domain singleagent.SingleAgent) *SingleAgentApplicationService {\n\treturn &SingleAgentApplicationService{\n\t\tappContext:     s,\n\t\tDomainSVC:      domain,\n\t\tShortcutCmdSvc: s.ShortcutCMDDomainSVC,\n\t}\n}\n\nconst onboardingInfoMaxLength = 65535\n\nfunc (s *SingleAgentApplicationService) generateOnboardingStr(onboardingInfo *bot_common.OnboardingInfo) (string, error) {\n\tonboarding := playground.OnboardingContent{}\n\tif onboardingInfo != nil {\n\t\tonboarding.Prologue = ptr.Of(onboardingInfo.GetPrologue())\n\t\tonboarding.SuggestedQuestions = onboardingInfo.GetSuggestedQuestions()\n\t\tonboarding.SuggestedQuestionsShowMode = onboardingInfo.SuggestedQuestionsShowMode\n\t}\n\n\tonboardingInfoStr, err := sonic.MarshalString(onboarding)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn onboardingInfoStr, nil\n}\n\nfunc (s *SingleAgentApplicationService) UpdateSingleAgentDraft(ctx context.Context, req *playground.UpdateDraftBotInfoAgwRequest) (*playground.UpdateDraftBotInfoAgwResponse, error) {\n\tif req.BotInfo.OnboardingInfo != nil {\n\t\tinfoStr, err := s.generateOnboardingStr(req.BotInfo.OnboardingInfo)\n\t\tif err != nil {\n\t\t\treturn nil, errorx.New(errno.ErrAgentPermissionCode, errorx.KV(\"msg\", \"onboarding_info invalidate\"))\n\t\t}\n\n\t\tif len(infoStr) > onboardingInfoMaxLength {\n\t\t\treturn nil, errorx.New(errno.ErrAgentPermissionCode, errorx.KV(\"msg\", \"onboarding_info is too long\"))\n\t\t}\n\t}\n\n\tagentID := req.BotInfo.GetBotId()\n\tcurrentAgentInfo, err := s.ValidateAgentDraftAccess(ctx, agentID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tuserID := ctxutil.MustGetUIDFromCtx(ctx)\n\n\tupdateAgentInfo, err := s.applyAgentUpdates(currentAgentInfo, req.BotInfo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif req.BotInfo.VariableList != nil {\n\t\tvar (\n\t\t\tvarsMetaID int64\n\t\t\tvars       = variableEntity.NewVariablesWithAgentVariables(req.BotInfo.VariableList)\n\t\t)\n\n\t\tvarsMetaID, err = s.appContext.VariablesDomainSVC.UpsertBotMeta(ctx, agentID, \"\", userID, vars)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tupdateAgentInfo.VariablesMetaID = &varsMetaID\n\t}\n\n\terr = s.DomainSVC.UpdateSingleAgentDraft(ctx, updateAgentInfo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = s.appContext.EventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tID:   agentID,\n\t\t\tName: &updateAgentInfo.Name,\n\t\t\tType: intelligence.IntelligenceType_Bot,\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &playground.UpdateDraftBotInfoAgwResponse{\n\t\tData: &playground.UpdateDraftBotInfoAgwData{\n\t\t\tHasChange:    ptr.Of(true),\n\t\t\tCheckNotPass: false,\n\t\t\tBranch:       playground.BranchPtr(playground.Branch_PersonalDraft),\n\t\t},\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) UpdatePromptDisable(ctx context.Context, req *table.UpdateDatabaseBotSwitchRequest) (*table.UpdateDatabaseBotSwitchResponse, error) {\n\tagentID := req.GetBotID()\n\tdraft, err := s.ValidateAgentDraftAccess(ctx, agentID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(draft.Database) == 0 {\n\t\treturn nil, fmt.Errorf(\"agent %d has no database\", agentID)\n\t}\n\n\tdbInfos := draft.Database\n\tvar found bool\n\tfor _, db := range dbInfos {\n\t\tif db.GetTableId() == conv.Int64ToStr(req.GetDatabaseID()) {\n\t\t\tdb.PromptDisabled = ptr.Of(req.GetPromptDisable())\n\t\t\tfound = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !found {\n\t\treturn nil, fmt.Errorf(\"database %d not found in agent %d\", req.GetDatabaseID(), agentID)\n\t}\n\n\tdraft.Database = dbInfos\n\terr = s.DomainSVC.UpdateSingleAgentDraft(ctx, draft)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &table.UpdateDatabaseBotSwitchResponse{\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) UnBindDatabase(ctx context.Context, req *table.BindDatabaseToBotRequest) (*table.BindDatabaseToBotResponse, error) {\n\tagentID := req.GetBotID()\n\tdraft, err := s.ValidateAgentDraftAccess(ctx, agentID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(draft.Database) == 0 {\n\t\treturn nil, fmt.Errorf(\"agent %d has no database\", agentID)\n\t}\n\n\tdbInfos := draft.Database\n\tvar found bool\n\tnewDBInfos := make([]*bot_common.Database, 0)\n\tfor _, db := range dbInfos {\n\t\tif db.GetTableId() == conv.Int64ToStr(req.GetDatabaseID()) {\n\t\t\tfound = true\n\t\t\tcontinue\n\t\t}\n\t\tnewDBInfos = append(newDBInfos, db)\n\t}\n\n\tif !found {\n\t\treturn nil, fmt.Errorf(\"database %d not found in agent %d\", req.GetDatabaseID(), agentID)\n\t}\n\n\tdraft.Database = newDBInfos\n\terr = s.DomainSVC.UpdateSingleAgentDraft(ctx, draft)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = crossdatabase.DefaultSVC().UnBindDatabase(ctx, &database.UnBindDatabaseToAgentRequest{\n\t\tAgentID:         agentID,\n\t\tDraftDatabaseID: req.GetDatabaseID(),\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &table.BindDatabaseToBotResponse{\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) BindDatabase(ctx context.Context, req *table.BindDatabaseToBotRequest) (*table.BindDatabaseToBotResponse, error) {\n\tagentID := req.GetBotID()\n\tdraft, err := s.ValidateAgentDraftAccess(ctx, agentID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdbMap := slices.ToMap(draft.Database, func(d *bot_common.Database) (string, *bot_common.Database) {\n\t\treturn d.GetTableId(), d\n\t})\n\tif _, ok := dbMap[conv.Int64ToStr(req.GetDatabaseID())]; ok {\n\t\treturn nil, errorx.New(errno.ErrAgentPermissionCode, errorx.KVf(\"msg\", \"database %d already bound to agent %d\", req.GetDatabaseID(), agentID))\n\t}\n\n\tbasics := []*database.DatabaseBasic{\n\t\t{\n\t\t\tID:        req.DatabaseID,\n\t\t\tTableType: table.TableType_DraftTable,\n\t\t},\n\t}\n\n\tdraftRes, err := crossdatabase.DefaultSVC().MGetDatabase(ctx, &database.MGetDatabaseRequest{\n\t\tBasics: basics,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(draftRes.Databases) == 0 {\n\t\treturn nil, fmt.Errorf(\"database %d not found\", req.DatabaseID)\n\t}\n\n\tdraftDatabase := draftRes.Databases[0]\n\n\tfields := make([]*bot_common.FieldItem, 0, len(draftDatabase.FieldList))\n\tfor _, field := range draftDatabase.FieldList {\n\t\tfields = append(fields, &bot_common.FieldItem{\n\t\t\tName:         ptr.Of(field.Name),\n\t\t\tDesc:         ptr.Of(field.Desc),\n\t\t\tType:         ptr.Of(bot_common.FieldItemType(field.Type)),\n\t\t\tMustRequired: ptr.Of(field.MustRequired),\n\t\t\tAlterId:      ptr.Of(field.AlterID),\n\t\t\tId:           ptr.Of(int64(0)),\n\t\t})\n\t}\n\n\tbindDB := &bot_common.Database{\n\t\tTableId:   ptr.Of(strconv.FormatInt(draftDatabase.ID, 10)),\n\t\tTableName: ptr.Of(draftDatabase.TableName),\n\t\tTableDesc: ptr.Of(draftDatabase.TableDesc),\n\t\tFieldList: fields,\n\t\tRWMode:    ptr.Of(bot_common.BotTableRWMode(draftDatabase.RwMode)),\n\t}\n\n\tif len(draft.Database) == 0 {\n\t\tdraft.Database = make([]*bot_common.Database, 0, 1)\n\t}\n\tdraft.Database = append(draft.Database, bindDB)\n\n\terr = s.DomainSVC.UpdateSingleAgentDraft(ctx, draft)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = crossdatabase.DefaultSVC().BindDatabase(ctx, &database.BindDatabaseToAgentRequest{\n\t\tAgentID:         agentID,\n\t\tDraftDatabaseID: req.GetDatabaseID(),\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &table.BindDatabaseToBotResponse{\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) applyAgentUpdates(target *entity.SingleAgent, patch *bot_common.BotInfoForUpdate) (*entity.SingleAgent, error) {\n\tif patch.Name != nil {\n\t\ttarget.Name = *patch.Name\n\t}\n\n\tif patch.Description != nil {\n\t\ttarget.Desc = *patch.Description\n\t}\n\n\tif patch.IconUri != nil {\n\t\ttarget.IconURI = *patch.IconUri\n\t}\n\n\tif patch.OnboardingInfo != nil {\n\t\ttarget.OnboardingInfo = patch.OnboardingInfo\n\t}\n\n\tif patch.ModelInfo != nil && patch.ModelInfo.ModelId != nil {\n\t\ttarget.ModelInfo = patch.ModelInfo\n\t}\n\n\tif patch.PromptInfo != nil {\n\t\ttarget.Prompt = patch.PromptInfo\n\t}\n\n\tif patch.WorkflowInfoList != nil {\n\t\ttarget.Workflow = patch.WorkflowInfoList\n\t}\n\n\tif patch.PluginInfoList != nil {\n\t\ttarget.Plugin = patch.PluginInfoList\n\t}\n\n\tif patch.Knowledge != nil {\n\t\ttarget.Knowledge = patch.Knowledge\n\t}\n\n\tif patch.SuggestReplyInfo != nil {\n\t\ttarget.SuggestReply = patch.SuggestReplyInfo\n\t}\n\n\tif patch.BackgroundImageInfoList != nil {\n\t\ttarget.BackgroundImageInfoList = patch.BackgroundImageInfoList\n\t}\n\n\tif len(patch.Agents) > 0 && patch.Agents[0].JumpConfig != nil {\n\t\ttarget.JumpConfig = patch.Agents[0].JumpConfig\n\t}\n\n\tif patch.ShortcutSort != nil {\n\t\ttarget.ShortcutCommand = patch.ShortcutSort\n\t}\n\n\tif patch.DatabaseList != nil {\n\t\tfor _, db := range patch.DatabaseList {\n\t\t\tif db.PromptDisabled == nil {\n\t\t\t\tdb.PromptDisabled = ptr.Of(false) // default is false\n\t\t\t}\n\t\t}\n\t\ttarget.Database = patch.DatabaseList\n\t}\n\tif patch.BotMode != nil {\n\t\ttarget.BotMode = ptr.From(patch.BotMode)\n\t}\n\tif patch.LayoutInfo != nil {\n\t\ttarget.LayoutInfo = patch.LayoutInfo\n\t}\n\n\treturn target, nil\n}\n\nfunc (s *SingleAgentApplicationService) DeleteAgentDraft(ctx context.Context, req *developer_api.DeleteDraftBotRequest) (*developer_api.DeleteDraftBotResponse, error) {\n\t_, err := s.ValidateAgentDraftAccess(ctx, req.GetBotID())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = s.DomainSVC.DeleteAgentDraft(ctx, req.GetSpaceID(), req.GetBotID())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = s.appContext.EventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Deleted,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tID:   req.GetBotID(),\n\t\t\tType: intelligence.IntelligenceType_Bot,\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"publish delete project event failed id = %v , err = %v\", req.GetBotID(), err)\n\t}\n\n\treturn &developer_api.DeleteDraftBotResponse{\n\t\tData: &developer_api.DeleteDraftBotData{},\n\t\tCode: 0,\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) singleAgentDraftDo2Vo(ctx context.Context, do *entity.SingleAgent) (*bot_common.BotInfo, error) {\n\tvo := &bot_common.BotInfo{\n\t\tBotId:                   do.AgentID,\n\t\tName:                    do.Name,\n\t\tDescription:             do.Desc,\n\t\tIconUri:                 do.IconURI,\n\t\tOnboardingInfo:          do.OnboardingInfo,\n\t\tModelInfo:               do.ModelInfo,\n\t\tPromptInfo:              do.Prompt,\n\t\tPluginInfoList:          do.Plugin,\n\t\tKnowledge:               do.Knowledge,\n\t\tWorkflowInfoList:        do.Workflow,\n\t\tSuggestReplyInfo:        do.SuggestReply,\n\t\tCreatorId:               do.CreatorID,\n\t\tTaskInfo:                &bot_common.TaskInfo{},\n\t\tCreateTime:              do.CreatedAt / 1000,\n\t\tUpdateTime:              do.UpdatedAt / 1000,\n\t\tBotMode:                 do.BotMode,\n\t\tBackgroundImageInfoList: do.BackgroundImageInfoList,\n\t\tStatus:                  bot_common.BotStatus_Using,\n\t\tDatabaseList:            do.Database,\n\t\tShortcutSort:            do.ShortcutCommand,\n\t\tLayoutInfo:              do.LayoutInfo,\n\t}\n\n\tif do.VariablesMetaID != nil {\n\t\tvars, err := s.appContext.VariablesDomainSVC.GetVariableMetaByID(ctx, *do.VariablesMetaID)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif vars != nil {\n\t\t\tvo.VariableList = vars.ToAgentVariables()\n\t\t}\n\t}\n\n\tif vo.IconUri != \"\" {\n\t\turl, err := s.appContext.TosClient.GetObjectUrl(ctx, vo.IconUri)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tvo.IconUrl = url\n\t}\n\n\tif vo.ModelInfo == nil || vo.ModelInfo.ModelId == nil {\n\t\tmi, err := s.defaultModelInfo(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tvo.ModelInfo = mi\n\t}\n\n\treturn vo, nil\n}\n\nfunc disabledParam(schemaVal *openapi3.Schema) bool {\n\tif len(schemaVal.Extensions) == 0 {\n\t\treturn false\n\t}\n\tglobalDisable, localDisable := false, false\n\tif v, ok := schemaVal.Extensions[pluginConsts.APISchemaExtendLocalDisable]; ok {\n\t\tlocalDisable = v.(bool)\n\t}\n\tif v, ok := schemaVal.Extensions[pluginConsts.APISchemaExtendGlobalDisable]; ok {\n\t\tglobalDisable = v.(bool)\n\t}\n\treturn globalDisable || localDisable\n}\n\nfunc (s *SingleAgentApplicationService) UpdateAgentDraftDisplayInfo(ctx context.Context, req *developer_api.UpdateDraftBotDisplayInfoRequest) (*developer_api.UpdateDraftBotDisplayInfoResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrAgentPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\t_, err := s.ValidateAgentDraftAccess(ctx, req.BotID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdraftInfoDo := &entity.AgentDraftDisplayInfo{\n\t\tAgentID:     req.BotID,\n\t\tDisplayInfo: req.DisplayInfo,\n\t\tSpaceID:     req.SpaceID,\n\t}\n\n\terr = s.DomainSVC.UpdateAgentDraftDisplayInfo(ctx, *uid, draftInfoDo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &developer_api.UpdateDraftBotDisplayInfoResponse{\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) GetAgentDraftDisplayInfo(ctx context.Context, req *developer_api.GetDraftBotDisplayInfoRequest) (*developer_api.GetDraftBotDisplayInfoResponse, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrAgentPermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\n\t_, err := s.ValidateAgentDraftAccess(ctx, req.BotID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdraftInfoDo, err := s.DomainSVC.GetAgentDraftDisplayInfo(ctx, *uid, req.BotID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &developer_api.GetDraftBotDisplayInfoResponse{\n\t\tCode: 0,\n\t\tMsg:  \"success\",\n\t\tData: draftInfoDo.DisplayInfo,\n\t}, nil\n}\n\nfunc (s *SingleAgentApplicationService) ValidateAgentDraftAccess(ctx context.Context, agentID int64) (*entity.SingleAgent, error) {\n\tuid := ctxutil.GetUIDFromCtx(ctx)\n\tif uid == nil {\n\t\treturn nil, errorx.New(errno.ErrAgentPermissionCode, errorx.KV(\"msg\", \"session uid not found\"))\n\t}\n\n\tdo, err := s.DomainSVC.GetSingleAgentDraft(ctx, agentID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif do == nil {\n\t\treturn nil, errorx.New(errno.ErrAgentPermissionCode, errorx.KVf(\"msg\", \"No agent draft(%d) found for the given agent ID\", agentID))\n\t}\n\n\tif do.SpaceID == consts.TemplateSpaceID { // duplicate template, not need check uid permission\n\t\treturn do, nil\n\t}\n\n\tif do.CreatorID != *uid {\n\t\tlogs.CtxErrorf(ctx, \"user(%d) is not the creator(%d) of the agent draft\", *uid, do.CreatorID)\n\n\t\treturn do, errorx.New(errno.ErrAgentPermissionCode, errorx.KV(\"detail\", \"you are not the agent owner\"))\n\t}\n\n\treturn do, nil\n}\n\nfunc (s *SingleAgentApplicationService) ListAgentPublishHistory(ctx context.Context, req *developer_api.ListDraftBotHistoryRequest) (*developer_api.ListDraftBotHistoryResponse, error) {\n\tresp := &developer_api.ListDraftBotHistoryResponse{}\n\tdraftAgent, err := s.ValidateAgentDraftAccess(ctx, req.BotID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar connectorID *int64\n\tif req.GetConnectorID() != \"\" {\n\t\tvar id int64\n\t\tid, err = conv.StrToInt64(req.GetConnectorID())\n\t\tif err != nil {\n\t\t\treturn nil, errorx.New(errno.ErrAgentInvalidParamCode, errorx.KV(\"msg\", fmt.Sprintf(\"ConnectorID %v invalidate\", *req.ConnectorID)))\n\t\t}\n\n\t\tconnectorID = ptr.Of(id)\n\t}\n\n\thistoryList, err := s.DomainSVC.ListAgentPublishHistory(ctx, draftAgent.AgentID, req.PageIndex, req.PageSize, connectorID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\tresp.Data = &developer_api.ListDraftBotHistoryData{}\n\n\tfor _, v := range historyList {\n\t\tconnectorInfos := make([]*developer_api.ConnectorInfo, 0, len(v.ConnectorIds))\n\t\tinfos, err := s.appContext.ConnectorDomainSVC.GetByIDs(ctx, v.ConnectorIds)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfor _, info := range infos {\n\t\t\tconnectorInfos = append(connectorInfos, info.ToVO())\n\t\t}\n\n\t\tcreator, err := s.appContext.UserDomainSVC.GetUserProfiles(ctx, v.CreatorID)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tinfo := \"\"\n\t\tif v.PublishInfo != nil {\n\t\t\tinfo = *v.PublishInfo\n\t\t}\n\n\t\thistoryInfo := &developer_api.HistoryInfo{\n\t\t\tHistoryType:    developer_api.HistoryType_FLAG,\n\t\t\tVersion:        v.Version,\n\t\t\tInfo:           info,\n\t\t\tCreateTime:     conv.Int64ToStr(v.CreatedAt / 1000),\n\t\t\tConnectorInfos: connectorInfos,\n\t\t\tCreator: &developer_api.Creator{\n\t\t\t\tID:        v.CreatorID,\n\t\t\t\tName:      creator.Name,\n\t\t\t\tAvatarURL: creator.IconURL,\n\t\t\t\tSelf:      uid == v.CreatorID,\n\t\t\t\t// UserUniqueName: creator. UserUniqueName,\n\t\t\t\t// UserLabel TODO\n\t\t\t},\n\t\t\tPublishID: &v.PublishID,\n\t\t}\n\n\t\tresp.Data.HistoryInfos = append(resp.Data.HistoryInfos, historyInfo)\n\t}\n\n\treturn resp, nil\n}\n\nfunc checkUserSpace(ctx context.Context, uid int64, spaceID int64) error {\n\tspaces, err := crossuser.DefaultSVC().GetUserSpaceList(ctx, uid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar match bool\n\tfor _, s := range spaces {\n\t\tif s.ID == spaceID {\n\t\t\tmatch = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !match {\n\t\treturn fmt.Errorf(\"user %d does not have access to space %d\", uid, spaceID)\n\t}\n\n\treturn nil\n}\n\nfunc (s *SingleAgentApplicationService) ReportUserBehavior(ctx context.Context, req *playground.ReportUserBehaviorRequest) (resp *playground.ReportUserBehaviorResponse, err error) {\n\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\n\terr = checkUserSpace(ctx, uid, req.GetSpaceID())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = s.appContext.EventBus.PublishProject(ctx, &searchEntity.ProjectDomainEvent{\n\t\tOpType: searchEntity.Updated,\n\t\tProject: &searchEntity.ProjectDocument{\n\t\t\tID:             req.ResourceID,\n\t\t\tSpaceID:        req.SpaceID,\n\t\t\tType:           intelligence.IntelligenceType_Bot,\n\t\t\tIsRecentlyOpen: ptr.Of(1),\n\t\t\tRecentlyOpenMS: ptr.Of(time.Now().UnixMilli()),\n\t\t},\n\t})\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"publish updated project event failed id=%v, err=%v\", req.ResourceID, err)\n\t}\n\n\treturn &playground.ReportUserBehaviorResponse{}, nil\n}\n\nfunc (s *SingleAgentApplicationService) GetAgentOnlineInfo(ctx context.Context, req *bot_open_api.GetBotOnlineInfoReq) (*bot_common.OpenAPIBotInfo, error) {\n\n\tuid := ctxutil.MustGetUIDFromApiAuthCtx(ctx)\n\n\tconnectorID, err := conv.StrToInt64(ptr.From(req.ConnectorID))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif connectorID == 0 {\n\t\tconnectorID = ctxutil.GetApiAuthFromCtx(ctx).ConnectorID\n\t}\n\n\treturn s.getAgentInfo(ctx, req.BotID, connectorID, uid, req.Version)\n}\n\nfunc (s *SingleAgentApplicationService) getAgentInfo(ctx context.Context, botID int64, connectorID int64, uid int64, version *string) (*bot_common.OpenAPIBotInfo, error) {\n\tae := &entity.AgentIdentity{\n\t\tAgentID:     botID,\n\t\tConnectorID: connectorID,\n\t}\n\tif version != nil {\n\t\tae.Version = ptr.From(version)\n\t}\n\tagentInfo, err := s.DomainSVC.ObtainAgentByIdentity(ctx, ae)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif agentInfo == nil {\n\t\tlogs.CtxErrorf(ctx, \"agent(%d) is not exist\", botID)\n\t\treturn nil, errorx.New(errno.ErrAgentPermissionCode, errorx.KV(\"msg\", \"agent not exist\"))\n\t}\n\tif agentInfo.CreatorID != uid {\n\t\treturn nil, errorx.New(errno.ErrPromptPermissionCode, errorx.KV(\"msg\", \"agent not own\"))\n\t}\n\tcombineInfo := &bot_common.OpenAPIBotInfo{\n\t\tBotID:            agentInfo.AgentID,\n\t\tName:             agentInfo.Name,\n\t\tDescription:      agentInfo.Desc,\n\t\tIconURL:          agentInfo.IconURI,\n\t\tVersion:          agentInfo.Version,\n\t\tBotMode:          bot_common.BotMode_SingleMode,\n\t\tPromptInfo:       agentInfo.Prompt,\n\t\tOnboardingInfo:   agentInfo.OnboardingInfo,\n\t\tModelInfo:        agentInfo.ModelInfo,\n\t\tWorkflowInfoList: agentInfo.Workflow,\n\t\tPluginInfoList:   agentInfo.Plugin,\n\t}\n\n\tif agentInfo.IconURI != \"\" {\n\t\turl, err := s.appContext.TosClient.GetObjectUrl(ctx, agentInfo.IconURI)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tcombineInfo.IconURL = url\n\t}\n\n\tif len(agentInfo.ShortcutCommand) > 0 {\n\t\tshortcutInfos, err := s.ShortcutCmdSvc.ListCMD(ctx, &shortcutEntity.ListMeta{\n\t\t\tObjectID: agentInfo.AgentID,\n\t\t\tIsOnline: 1,\n\t\t\tCommandIDs: slices.Transform(agentInfo.ShortcutCommand, func(s string) int64 {\n\t\t\t\ti, _ := conv.StrToInt64(s)\n\t\t\t\treturn i\n\t\t\t}),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tcombineInfo.ShortcutCommands = make([]*bot_common.ShortcutCommandInfo, 0, len(shortcutInfos))\n\t\tcombineInfo.ShortcutCommands = slices.Transform(shortcutInfos, func(si *shortcutEntity.ShortcutCmd) *bot_common.ShortcutCommandInfo {\n\t\t\turl := \"\"\n\t\t\tif si.ShortcutIcon != nil && si.ShortcutIcon.URI != \"\" {\n\t\t\t\tgetUrl, e := s.appContext.TosClient.GetObjectUrl(ctx, si.ShortcutIcon.URI)\n\t\t\t\tif e == nil {\n\t\t\t\t\turl = getUrl\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn &bot_common.ShortcutCommandInfo{\n\t\t\t\tID:            si.CommandID,\n\t\t\t\tName:          si.CommandName,\n\t\t\t\tDescription:   si.Description,\n\t\t\t\tIconURL:       url,\n\t\t\t\tQueryTemplate: si.TemplateQuery,\n\t\t\t\tAgentID:       ptr.Of(si.ObjectID),\n\t\t\t\tCommand:       si.ShortcutCommand,\n\t\t\t\tComponents: slices.Transform(si.Components, func(i *playground.Components) *bot_common.ShortcutCommandComponent {\n\t\t\t\t\tsc := &bot_common.ShortcutCommandComponent{\n\t\t\t\t\t\tName:          i.Name,\n\t\t\t\t\t\tDescription:   i.Description,\n\t\t\t\t\t\tType:          getShortcutCommandComponentType(i.InputType),\n\t\t\t\t\t\tToolParameter: ptr.Of(i.Parameter),\n\t\t\t\t\t\tIsHide:        i.Hide,\n\t\t\t\t\t}\n\t\t\t\t\tif i.DefaultValue != nil {\n\t\t\t\t\t\tsc.DefaultValue = ptr.Of(i.DefaultValue.Value)\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch i.InputType {\n\t\t\t\t\tcase playground.InputType_Select:\n\t\t\t\t\t\tsc.Options = i.Options\n\t\t\t\t\tcase playground.InputType_MixUpload:\n\t\t\t\t\t\toptions := make([]string, 0, len(i.UploadOptions))\n\t\t\t\t\t\tfor _, uploadOption := range i.UploadOptions {\n\t\t\t\t\t\t\toptions = append(options, string(getShortcutCommandComponentFileType(uploadOption)))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsc.Options = options\n\t\t\t\t\tcase playground.InputType_UploadImage, playground.InputType_UploadDoc, playground.InputType_UploadTable, playground.InputType_UploadAudio,\n\t\t\t\t\t\tplayground.InputType_VIDEO, playground.InputType_ARCHIVE, playground.InputType_CODE, playground.InputType_TXT,\n\t\t\t\t\t\tplayground.InputType_PPT:\n\t\t\t\t\t\tsc.Options = []string{string(getShortcutCommandComponentFileType(i.InputType))}\n\t\t\t\t\tdefault:\n\t\t\t\t\t}\n\n\t\t\t\t\treturn sc\n\t\t\t\t}),\n\t\t\t\tTool: &bot_common.ShortcutCommandToolInfo{\n\t\t\t\t\tName: si.ToolInfo.ToolName,\n\t\t\t\t\tType: func() string {\n\t\t\t\t\t\tif si.ToolType == 1 {\n\t\t\t\t\t\t\treturn string(agent.ShortcutCommandToolTypePlugin)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif si.ToolType == 2 {\n\t\t\t\t\t\t\treturn string(agent.ShortcutCommandToolTypeWorkflow)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn \"\"\n\t\t\t\t\t}(),\n\t\t\t\t\tPluginID:      ptr.Of(si.PluginID),\n\t\t\t\t\tWorkflowID:    ptr.Of(si.WorkFlowID),\n\t\t\t\t\tPluginAPIName: &si.PluginToolName,\n\t\t\t\t\tParams: slices.Transform(si.ToolInfo.ToolParamsList, func(i *playground.ToolParams) *bot_common.ShortcutToolParam {\n\t\t\t\t\t\treturn &bot_common.ShortcutToolParam{\n\t\t\t\t\t\t\tName:             i.Name,\n\t\t\t\t\t\t\tType:             i.Type,\n\t\t\t\t\t\t\tDefaultValue:     i.DefaultValue,\n\t\t\t\t\t\t\tIsReferComponent: i.ReferComponent,\n\t\t\t\t\t\t\tIsRequired:       i.Required,\n\t\t\t\t\t\t\tDescription:      i.Desc,\n\t\t\t\t\t\t}\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\tSendType: func() *bot_common.ShortcutSendType {\n\t\t\t\t\tif si.SendType == 1 {\n\t\t\t\t\t\treturn ptr.Of(bot_common.ShortcutSendTypePanel)\n\t\t\t\t\t}\n\t\t\t\t\treturn ptr.Of(bot_common.ShortcutSendTypeQuery)\n\t\t\t\t}(),\n\t\t\t\tCardSchema: ptr.Of(si.CardSchema),\n\t\t\t}\n\t\t})\n\n\t}\n\treturn combineInfo, nil\n}\n\nfunc (s *SingleAgentApplicationService) OpenGetBotInfo(ctx context.Context, req *bot_open_api.OpenGetBotInfoRequest) (*bot_open_api.OpenGetBotInfoResponse, error) {\n\tresp := new(bot_open_api.OpenGetBotInfoResponse)\n\n\tuid := ctxutil.MustGetUIDFromApiAuthCtx(ctx)\n\n\tconnectorID := ptr.From(req.ConnectorID)\n\n\tif connectorID == 0 {\n\t\tconnectorID = ctxutil.GetApiAuthFromCtx(ctx).ConnectorID\n\t}\n\tagentInfo, err := s.getAgentInfo(ctx, req.BotID, connectorID, uid, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresp.Data = agentInfo\n\treturn resp, nil\n}\n\nfunc getShortcutCommandComponentType(inputType playground.InputType) string {\n\tcomponentType := agent.ShortcutCommandComponentTypeMapping[inputType]\n\treturn string(componentType)\n}\n\nfunc getShortcutCommandComponentFileType(inputType playground.InputType) string {\n\treturn string(agent.ShortcutCommandComponentFileTypeMapping[inputType])\n}\n"
  },
  {
    "path": "backend/application/template/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage template\n\nimport (\n\t\"context\"\n\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/domain/template/repository\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n)\n\ntype ServiceComponents struct {\n\tDB      *gorm.DB\n\tIDGen   idgen.IDGenerator\n\tStorage storage.Storage\n}\n\nfunc InitService(ctx context.Context, components *ServiceComponents) *ApplicationService {\n\n\ttRepo := repository.NewTemplateDAO(components.DB, components.IDGen)\n\n\tApplicationSVC.templateRepo = tRepo\n\tApplicationSVC.storage = components.Storage\n\n\treturn ApplicationSVC\n}\n"
  },
  {
    "path": "backend/application/template/template.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage template\n\nimport (\n\t\"context\"\n\n\tproductAPI \"github.com/coze-dev/coze-studio/backend/api/model/marketplace/product_public_api\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/template/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/template/repository\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\ntype ApplicationService struct {\n\ttemplateRepo repository.TemplateRepository\n\tstorage      storage.Storage\n}\n\nvar ApplicationSVC = &ApplicationService{}\n\nfunc (t *ApplicationService) PublicGetProductList(ctx context.Context, req *productAPI.GetProductListRequest) (resp *productAPI.GetProductListResponse, err error) {\n\tpageSize := 50\n\tif req.PageSize > 0 {\n\t\tpageSize = int(req.PageSize)\n\t}\n\tpagination := &entity.Pagination{\n\t\tLimit:  pageSize,\n\t\tOffset: int(req.PageNum) * pageSize,\n\t}\n\n\tlistResp, allNum, err := t.templateRepo.List(ctx, &entity.TemplateFilter{SpaceID: ptr.Of(int64(consts.TemplateSpaceID))}, pagination, \"\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tproducts := make([]*productAPI.ProductInfo, 0, len(listResp))\n\tfor _, item := range listResp {\n\t\tmeta := item.MetaInfo\n\t\tfor _, cover := range meta.Covers {\n\t\t\tobjURL, uRrr := t.storage.GetObjectUrl(ctx, cover.URI)\n\t\t\tif uRrr == nil {\n\t\t\t\tcover.URL = objURL\n\t\t\t}\n\t\t}\n\n\t\tavatarURL, uRrr := t.storage.GetObjectUrl(ctx, \"default_icon/connector-coze.png\")\n\t\tif uRrr == nil {\n\t\t\tif meta.Seller != nil {\n\t\t\t\tmeta.Seller.AvatarURL = avatarURL\n\t\t\t}\n\t\t\tif meta.UserInfo != nil {\n\t\t\t\tmeta.UserInfo.AvatarURL = avatarURL\n\t\t\t}\n\t\t}\n\n\t\tproducts = append(products, &productAPI.ProductInfo{\n\t\t\tMetaInfo:      item.MetaInfo,\n\t\t\tBotExtra:      item.AgentExtra,\n\t\t\tWorkflowExtra: item.WorkflowExtra,\n\t\t\tProjectExtra:  item.ProjectExtra,\n\t\t})\n\t}\n\thasMore := false\n\tif int64(int(req.PageNum)*pageSize) < allNum {\n\t\thasMore = true\n\t}\n\tresp = &productAPI.GetProductListResponse{\n\t\tData: &productAPI.GetProductListData{\n\t\t\tProducts: products,\n\t\t\tHasMore:  hasMore,\n\t\t\tTotal:    int32(allNum),\n\t\t},\n\t}\n\n\treturn resp, nil\n}\n"
  },
  {
    "path": "backend/application/upload/consts.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage upload\n\nconst maxFileSize = 200 * 1024 * 1024\nconst (\n\tTextKnowledgeDefaultIcon  = \"default_icon/text_kn_default_icon.png\"\n\tTableKnowledgeDefaultIcon = \"default_icon/table_kn_default_icon.png\"\n\tImageKnowledgeDefaultIcon = \"default_icon/image_kn_default_icon.png\"\n\tDatabaseDefaultIcon       = \"default_icon/default_database_icon.png\"\n)\n"
  },
  {
    "path": "backend/application/upload/icon.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage upload\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/xml\"\n\t\"errors\"\n\t\"fmt\"\n\t\"hash/crc32\"\n\t\"image\"\n\t_ \"image/gif\"\n\t_ \"image/jpeg\"\n\t_ \"image/png\"\n\t\"io\"\n\t\"math\"\n\t\"mime\"\n\t\"mime/multipart\"\n\t\"path\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t_ \"golang.org/x/image/tiff\"\n\t_ \"golang.org/x/image/webp\"\n\t\"gorm.io/gorm\"\n\n\t\"github.com/google/uuid\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_open_api\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\tdataset \"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/file/upload\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/upload/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/upload/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/cache\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/sonic\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nfunc InitService(components *UploadComponents) *UploadService {\n\tSVC.cache = components.Cache\n\tSVC.oss = components.Oss\n\tSVC.UploadSVC = service.NewUploadSVC(components.DB, components.Idgen, components.Oss)\n\treturn SVC\n}\n\ntype UploadComponents struct {\n\tOss   storage.Storage\n\tCache cache.Cmdable\n\tDB    *gorm.DB\n\tIdgen idgen.IDGenerator\n}\n\nvar SVC = &UploadService{}\n\ntype UploadService struct {\n\toss       storage.Storage\n\tcache     cache.Cmdable\n\tUploadSVC service.UploadService\n}\n\nconst (\n\tuploadKey     = \"UploadServiceUpload:%s\"\n\tuploadPartKey = \"UploadServiceUpload:%s/parts\"\n\tpartKey       = \"UploadServiceUpload/%s/part-%s\"\n)\n\nfunc (u *UploadService) PartUploadFileInit(ctx context.Context, objKey string) (uploadID string, err error) {\n\tuploadID = uuid.NewString()\n\tkey := fmt.Sprintf(uploadKey, uploadID)\n\terr = u.cache.HSet(ctx,\n\t\tkey,\n\t\t\"objkey\", objKey,\n\t).Err()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\terr = u.cache.Expire(ctx, key, time.Minute*10).Err()\n\treturn\n}\n\ntype PartUploadFileRequest struct {\n\tUploadID   string\n\tPartNumber string\n\tData       []byte\n}\n\ntype PartUploadFileResponse struct {\n\tCrc32 string\n}\n\ntype PartUploadFileCompleteRequest struct {\n\tUploadID string\n\tObjKey   string\n\tCrc32Map map[string]string\n}\n\nfunc (u *UploadService) PartUploadFile(ctx context.Context, req *PartUploadFileRequest) (resp *PartUploadFileResponse, err error) {\n\tkey := fmt.Sprintf(uploadKey, req.UploadID)\n\texists, err := u.cache.Exists(ctx, key).Result()\n\tif err != nil || exists == 0 {\n\t\treturn nil, fmt.Errorf(\"upload session invalid: %v\", err)\n\t}\n\tcrc32Val := crc32.ChecksumIEEE(req.Data)\n\tpartTosKey := fmt.Sprintf(partKey, req.UploadID, req.PartNumber)\n\terr = u.oss.PutObject(ctx, partTosKey, req.Data, storage.WithExpires(time.Now().Add(10*time.Minute)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpartMeta := map[string]interface{}{\n\t\t\"tos_key\": partTosKey,\n\t}\n\tpartMetaData, err := sonic.Marshal(partMeta)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpartKey := fmt.Sprintf(uploadPartKey, req.UploadID)\n\terr = u.cache.HSet(ctx, partKey, req.PartNumber, string(partMetaData)).Err()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = u.cache.Expire(ctx, partKey, time.Minute*10).Err()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &PartUploadFileResponse{\n\t\tCrc32: fmt.Sprintf(\"%08x\", crc32Val),\n\t}, nil\n}\n\ntype tosPart struct {\n\tPartNum int\n\tData    []byte\n}\n\nfunc getContentType(uri string) (contentType string) {\n\t_ = mime.AddExtensionType(\".svg\", \"image/svg+xml\")\n\t_ = mime.AddExtensionType(\".svgz\", \"image/svg+xml\")\n\t_ = mime.AddExtensionType(\".webp\", \"image/webp\")\n\t_ = mime.AddExtensionType(\".ico\", \"image/x-icon\")\n\tfileExtension := path.Base(uri)\n\text := path.Ext(fileExtension)\n\tcontentType = mime.TypeByExtension(ext)\n\treturn\n}\n\nfunc (u *UploadService) PartUploadFileComplete(ctx context.Context, req *PartUploadFileCompleteRequest) error {\n\tpartKey := fmt.Sprintf(uploadPartKey, req.UploadID)\n\tparts, err := u.cache.HGetAll(ctx, partKey).Result()\n\tif err != nil {\n\t\treturn err\n\t}\n\ttosParts := []*tosPart{}\n\tfor partNumStr, partData := range parts {\n\t\tvar partMeta map[string]string\n\t\tif err := sonic.Unmarshal([]byte(partData), &partMeta); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to parse part metadata: %v\", err)\n\t\t}\n\t\tpartNum, err := strconv.ParseInt(partNumStr, 10, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobjKey, exist := partMeta[\"tos_key\"]\n\t\tif !exist {\n\t\t\treturn errors.New(\"tos key not exist\")\n\t\t}\n\t\tbyteData, err := u.oss.GetObject(ctx, objKey)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttosParts = append(tosParts, &tosPart{PartNum: int(partNum), Data: byteData})\n\t}\n\tif len(tosParts) == 0 {\n\t\treturn errors.New(\"tos part is null\")\n\t}\n\tsort.Slice(tosParts, func(i, j int) bool { return tosParts[i].PartNum < tosParts[j].PartNum })\n\tif tosParts[len(tosParts)-1].PartNum != len(tosParts) || len(tosParts) != len(req.Crc32Map) {\n\t\treturn errors.New(\"check parts fail\")\n\t}\n\ttotalData := []byte{}\n\tfor _, val := range tosParts {\n\t\tcrc32 := fmt.Sprintf(\"%08x\", crc32.ChecksumIEEE(val.Data))\n\t\tcrc32Check := req.Crc32Map[strconv.Itoa(val.PartNum)]\n\t\tif crc32 != crc32Check {\n\t\t\treturn errors.New(\"crc32 check fail\")\n\t\t}\n\t\ttotalData = append(totalData, val.Data...)\n\t}\n\tcontentType := getContentType(req.ObjKey)\n\tif len(contentType) != 0 {\n\t\terr = u.oss.PutObject(ctx, req.ObjKey, totalData, storage.WithContentType(contentType))\n\t} else {\n\t\terr = u.oss.PutObject(ctx, req.ObjKey, totalData)\n\t}\n\n\treturn err\n}\n\nfunc (u *UploadService) GetIcon(ctx context.Context, req *developer_api.GetIconRequest) (\n\tresp *developer_api.GetIconResponse, err error,\n) {\n\ticonURI := map[developer_api.IconType]string{\n\t\tdeveloper_api.IconType_Bot:        consts.DefaultAgentIcon,\n\t\tdeveloper_api.IconType_User:       consts.DefaultUserIcon,\n\t\tdeveloper_api.IconType_Plugin:     consts.DefaultPluginIcon,\n\t\tdeveloper_api.IconType_Dataset:    consts.DefaultDatasetIcon,\n\t\tdeveloper_api.IconType_Workflow:   consts.DefaultWorkflowIcon,\n\t\tdeveloper_api.IconType_Imageflow:  consts.DefaultPluginIcon,\n\t\tdeveloper_api.IconType_Society:    consts.DefaultPluginIcon,\n\t\tdeveloper_api.IconType_Connector:  consts.DefaultPluginIcon,\n\t\tdeveloper_api.IconType_ChatFlow:   consts.DefaultPluginIcon,\n\t\tdeveloper_api.IconType_Voice:      consts.DefaultPluginIcon,\n\t\tdeveloper_api.IconType_Enterprise: consts.DefaultTeamIcon,\n\t}\n\n\turi := iconURI[req.GetIconType()]\n\tif uri == \"\" {\n\t\treturn nil, errorx.New(errno.ErrUploadInvalidType,\n\t\t\terrorx.KV(\"type\", conv.Int64ToStr(int64(req.GetIconType()))))\n\t}\n\n\turl, err := u.oss.GetObjectUrl(ctx, iconURI[req.GetIconType()])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &developer_api.GetIconResponse{\n\t\tData: &developer_api.GetIconResponseData{\n\t\t\tIconList: []*developer_api.Icon{\n\t\t\t\t{\n\t\t\t\t\tURL: url,\n\t\t\t\t\tURI: uri,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil\n}\nfunc stringToMap(input string) map[string]string {\n\tresult := make(map[string]string)\n\n\tpairs := strings.Split(input, \",\")\n\n\tfor _, pair := range pairs {\n\t\tparts := strings.Split(pair, \":\")\n\t\tif len(parts) == 2 {\n\t\t\tkey := strings.TrimSpace(parts[0])\n\t\t\tvalue := strings.TrimSpace(parts[1])\n\t\t\tresult[key] = value\n\t\t}\n\t}\n\n\treturn result\n}\nfunc (u *UploadService) UploadFileCommon(ctx context.Context, req *upload.CommonUploadRequest, fullPath string) (*upload.CommonUploadResponse, error) {\n\tresp := upload.NewCommonUploadResponse()\n\tre := regexp.MustCompile(consts.UploadURI + `/([^?]+)`)\n\tmatch := re.FindStringSubmatch(fullPath)\n\tif len(match) == 0 {\n\t\treturn nil, errorx.New(errno.ErrUploadInvalidParamCode, errorx.KV(\"msg\", \"tos key not found\"))\n\t}\n\tobjKey := match[1]\n\tif strings.Contains(fullPath, \"?uploads\") {\n\t\tuploadID, err := u.PartUploadFileInit(ctx, objKey)\n\t\tif err != nil {\n\t\t\treturn resp, errorx.New(errno.ErrUploadSystemErrorCode, errorx.KV(\"msg\", err.Error()))\n\t\t}\n\t\tresp.Error = &upload.Error{Code: 200}\n\t\tresp.Payload = &upload.Payload{UploadID: uploadID}\n\t\treturn resp, nil\n\t}\n\tif len(ptr.From(req.PartNumber)) != 0 {\n\t\t_, err := u.PartUploadFile(ctx, &PartUploadFileRequest{\n\t\t\tUploadID:   ptr.From(req.UploadID),\n\t\t\tPartNumber: ptr.From(req.PartNumber),\n\t\t\tData:       req.ByteData,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn resp, errorx.New(errno.ErrUploadSystemErrorCode, errorx.KV(\"msg\", err.Error()))\n\t\t}\n\t\tresp.Error = &upload.Error{Code: 200}\n\t\treturn resp, nil\n\t}\n\tif len(ptr.From(req.UploadID)) != 0 {\n\t\tmp := stringToMap(string(req.ByteData))\n\t\terr := u.PartUploadFileComplete(ctx, &PartUploadFileCompleteRequest{\n\t\t\tUploadID: ptr.From(req.UploadID),\n\t\t\tObjKey:   objKey,\n\t\t\tCrc32Map: mp,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn resp, errorx.New(errno.ErrUploadSystemErrorCode, errorx.KV(\"msg\", err.Error()))\n\t\t}\n\t\tresp.Error = &upload.Error{Code: 200}\n\t\tresp.Payload = &upload.Payload{Key: uuid.NewString()}\n\t\treturn resp, nil\n\t}\n\tvar err error\n\tcontentType := getContentType(objKey)\n\tif len(contentType) != 0 {\n\t\terr = u.oss.PutObject(ctx, objKey, req.ByteData, storage.WithContentType(contentType))\n\t} else {\n\t\terr = u.oss.PutObject(ctx, objKey, req.ByteData)\n\t}\n\tif err != nil {\n\t\treturn resp, errorx.New(errno.ErrUploadSystemErrorCode, errorx.KV(\"msg\", err.Error()))\n\t}\n\tresp.Error = &upload.Error{Code: 200}\n\tresp.Payload = &upload.Payload{Key: uuid.NewString()}\n\treturn resp, err\n}\n\nfunc (u *UploadService) UploadFile(ctx context.Context, data []byte, objKey string) (*developer_api.UploadFileResponse, error) {\n\terr := u.oss.PutObject(ctx, objKey, data)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\turl, err := u.oss.GetObjectUrl(ctx, objKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &developer_api.UploadFileResponse{\n\t\tData: &developer_api.UploadFileData{\n\t\t\tUploadURL: url,\n\t\t\tUploadURI: objKey,\n\t\t},\n\t}, nil\n}\n\nfunc (u *UploadService) GetShortcutIcons(ctx context.Context) ([]*playground.FileInfo, error) {\n\tshortcutIcons := entity.GetDefaultShortcutIconURI()\n\tfileList := make([]*playground.FileInfo, 0, len(shortcutIcons))\n\tfor _, uri := range shortcutIcons {\n\t\turl, err := u.oss.GetObjectUrl(ctx, uri)\n\t\tif err == nil {\n\t\t\tfileList = append(fileList, &playground.FileInfo{\n\t\t\t\tURL: url,\n\t\t\t\tURI: uri,\n\t\t\t})\n\t\t}\n\t}\n\treturn fileList, nil\n}\n\nfunc parseMultipartFormData(ctx context.Context, req *bot_open_api.UploadFileOpenRequest) (*multipart.Form, error) {\n\t_, params, err := mime.ParseMediaType(req.ContentType)\n\tif err != nil {\n\t\treturn nil, errorx.New(errno.ErrUploadInvalidContentTypeCode, errorx.KV(\"content-type\", req.ContentType))\n\t}\n\tbr := bytes.NewReader(req.Data)\n\tmr := multipart.NewReader(br, params[\"boundary\"])\n\n\tform, err := mr.ReadForm(maxFileSize)\n\tif errors.Is(err, multipart.ErrMessageTooLarge) {\n\t\treturn nil, errorx.New(errno.ErrUploadInvalidFileSizeCode)\n\t} else if err != nil {\n\t\treturn nil, errorx.New(errno.ErrUploadMultipartFormDataReadFailedCode)\n\t}\n\treturn form, nil\n}\n\nfunc genObjName(name string, id string) string {\n\n\treturn fmt.Sprintf(\"%s/%s/%s\",\n\t\t\"bot_files\",\n\t\tid,\n\t\tname,\n\t)\n}\n\nfunc (u *UploadService) UploadFileOpen(ctx context.Context, req *bot_open_api.UploadFileOpenRequest) (*bot_open_api.UploadFileOpenResponse, error) {\n\tresp := bot_open_api.UploadFileOpenResponse{}\n\tresp.File = new(bot_open_api.File)\n\tuid := ctxutil.MustGetUIDFromApiAuthCtx(ctx)\n\tif uid == 0 {\n\t\treturn nil, errorx.New(errno.ErrKnowledgePermissionCode, errorx.KV(\"msg\", \"session required\"))\n\t}\n\tform, err := parseMultipartFormData(ctx, req)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"parse multipart form data failed, err: %v\", err)\n\t\treturn nil, err\n\t}\n\tif len(form.File[\"file\"]) == 0 {\n\t\treturn nil, errorx.New(errno.ErrUploadEmptyFileCode)\n\t} else if len(form.File[\"file\"]) > 1 {\n\t\treturn nil, errorx.New(errno.ErrUploadFileUploadGreaterOneCode)\n\t}\n\tfileHeader := form.File[\"file\"][0]\n\n\t// open file\n\tfile, err := fileHeader.Open()\n\tif err != nil {\n\t\treturn nil, errorx.New(errno.ErrUploadSystemErrorCode, errorx.KV(\"msg\", \"fileHeader open failed\"))\n\t}\n\tdefer file.Close()\n\tdata, err := io.ReadAll(file)\n\tif err != nil {\n\t\treturn nil, errorx.New(errno.ErrUploadSystemErrorCode, errorx.KV(\"msg\", \"file upload io read failed\"))\n\t}\n\tresp.File.Bytes = int64(len(data))\n\trandID := uuid.NewString()\n\tobjName := genObjName(fileHeader.Filename, randID)\n\tresp.File.FileName = fileHeader.Filename\n\tresp.File.URI = objName\n\terr = u.oss.PutObject(ctx, objName, data, storage.WithContentType(fileHeader.Header.Get(\"Content-Type\")))\n\tif err != nil {\n\t\treturn nil, errorx.New(errno.ErrUploadSystemErrorCode, errorx.KV(\"msg\", \"file upload to oss failed\"))\n\t}\n\turl, err := u.oss.GetObjectUrl(ctx, objName)\n\tif err != nil {\n\t\treturn nil, errorx.New(errno.ErrUploadSystemErrorCode, errorx.KV(\"msg\", \"get object url failed\"))\n\t}\n\tresp.File.CreatedAt = time.Now().Unix()\n\tresp.File.URL = url\n\tfileEntity := entity.File{\n\t\tName:          fileHeader.Filename,\n\t\tFileSize:      fileHeader.Size,\n\t\tTosURI:        objName,\n\t\tStatus:        entity.FileStatusValid,\n\t\tCreatorID:     strconv.FormatInt(uid, 10),\n\t\tSource:        entity.FileSourceAPI,\n\t\tCozeAccountID: uid,\n\t\tContentType:   fileHeader.Header.Get(\"Content-Type\"),\n\t\tCreatedAt:     time.Now().UnixMilli(),\n\t\tUpdatedAt:     time.Now().UnixMilli(),\n\t}\n\tdomainResp, err := u.UploadSVC.UploadFile(ctx, &service.UploadFileRequest{File: &fileEntity})\n\tif err != nil {\n\t\treturn &resp, err\n\t}\n\tresp.File.ID = strconv.FormatInt(domainResp.File.ID, 10)\n\treturn &resp, nil\n}\n\nfunc (u *UploadService) GetIconForDataset(ctx context.Context, req *dataset.GetIconRequest) (*dataset.GetIconResponse, error) {\n\tresp := dataset.NewGetIconResponse()\n\tvar uri string\n\tswitch req.FormatType {\n\tcase dataset.FormatType_Text:\n\t\turi = TextKnowledgeDefaultIcon\n\tcase dataset.FormatType_Table:\n\t\turi = TableKnowledgeDefaultIcon\n\tcase dataset.FormatType_Image:\n\t\turi = ImageKnowledgeDefaultIcon\n\tcase dataset.FormatType_Database:\n\t\turi = DatabaseDefaultIcon\n\tdefault:\n\t\turi = TextKnowledgeDefaultIcon\n\t}\n\n\ticonUrl, err := u.oss.GetObjectUrl(ctx, uri)\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\tresp.Icon = &dataset.Icon{\n\t\tURL: iconUrl,\n\t\tURI: uri,\n\t}\n\treturn resp, nil\n}\n\nfunc (u *UploadService) UploadSessionKey(ctx context.Context, sessionKey string, tosKey string) error {\n\treturn u.cache.Set(ctx, sessionKey, tosKey, time.Minute*30).Err()\n}\n\ntype GetObjInfoBySessionKey struct {\n\tObjKey string\n\tWidth  int32\n\tHeight int32\n}\n\nfunc isImageUri(uri string) bool {\n\tif uri == \"\" {\n\t\treturn false\n\t}\n\turi = strings.ToLower(uri)\n\tfileExtension := path.Base(uri)\n\text := path.Ext(fileExtension)\n\text = ext[1:]\n\timageExtensions := map[string]bool{\n\t\t\"jpg\":  true,\n\t\t\"jpeg\": true,\n\t\t\"png\":  true,\n\t\t\"gif\":  true,\n\t\t\"bmp\":  true,\n\t\t\"webp\": true,\n\t\t\"tiff\": true,\n\t\t\"svg\":  true,\n\t\t\"ico\":  true,\n\t}\n\n\t// Check if the extension is in the picture extension list\n\treturn imageExtensions[ext]\n}\nfunc (u *UploadService) GetObjInfoBySessionKey(ctx context.Context, sessionKey string) (*GetObjInfoBySessionKey, error) {\n\tresp := GetObjInfoBySessionKey{}\n\tobjKey, err := u.cache.Get(ctx, sessionKey).Result()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresp.ObjKey = objKey\n\tif isImageUri(objKey) {\n\t\tcontent, err := u.oss.GetObject(ctx, objKey)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif isSVG(objKey) {\n\t\t\twidth, height, err := getSVGDimensions(content)\n\t\t\tif err != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"get svg dimensions failed, err: %v\", err)\n\t\t\t\t// default val\n\t\t\t\tresp.Width = 100\n\t\t\t\tresp.Height = 100\n\t\t\t\treturn &resp, nil\n\t\t\t}\n\t\t\tresp.Width = width\n\t\t\tresp.Height = height\n\t\t} else {\n\t\t\timg, _, err := image.Decode(bytes.NewReader(content))\n\t\t\tif err != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"decode image failed, err: %v\", err)\n\t\t\t\t// default val\n\t\t\t\tresp.Width = 100\n\t\t\t\tresp.Height = 100\n\t\t\t\treturn &resp, nil\n\t\t\t}\n\t\t\tresp.Width = int32(img.Bounds().Dx())\n\t\t\tresp.Height = int32(img.Bounds().Dy())\n\t\t}\n\t}\n\treturn &resp, nil\n}\n\ntype SVG struct {\n\tWidth   string `xml:\"width,attr\"`\n\tHeight  string `xml:\"height,attr\"`\n\tViewBox string `xml:\"viewBox,attr\"`\n}\n\n// Get SVG size\nfunc getSVGDimensions(content []byte) (width, height int32, err error) {\n\tdecoder := xml.NewDecoder(bytes.NewReader(content))\n\n\tvar svg SVG\n\tif err := decoder.Decode(&svg); err != nil {\n\t\treturn 100, 100, nil\n\t}\n\n\t// Try to get from the width property\n\tif svg.Width != \"\" {\n\t\tw, err := parseDimension(svg.Width)\n\t\tif err == nil {\n\t\t\twidth = w\n\t\t}\n\t}\n\n\t// Try to get from the height property\n\tif svg.Height != \"\" {\n\t\th, err := parseDimension(svg.Height)\n\t\tif err == nil {\n\t\t\theight = h\n\t\t}\n\t}\n\n\t// If width or height is not set, try getting it from the viewBox\n\tif width == 0 || height == 0 {\n\t\tif svg.ViewBox != \"\" {\n\t\t\tparts := strings.Fields(svg.ViewBox)\n\t\t\tif len(parts) >= 4 {\n\t\t\t\tif width == 0 {\n\t\t\t\t\tw, err := strconv.ParseInt(parts[2], 10, 32)\n\t\t\t\t\tif err == nil {\n\t\t\t\t\t\twidth = int32(w)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif height == 0 {\n\t\t\t\t\th, err := strconv.ParseInt(parts[3], 10, 32)\n\t\t\t\t\tif err == nil {\n\t\t\t\t\t\theight = int32(h)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif width == 0 || height == 0 {\n\t\treturn 100, 100, nil\n\t}\n\n\treturn width, height, nil\n}\nfunc parseDimension(dim string) (int32, error) {\n\t// Remove units (px, pt, em,%, etc.) and spaces\n\tdim = strings.TrimSpace(dim)\n\tdim = strings.TrimRightFunc(dim, func(r rune) bool {\n\t\treturn (r < '0' || r > '9') && r != '.' && r != '-' && r != '+'\n\t})\n\n\t// Resolve to float64\n\tvalue, err := strconv.ParseFloat(dim, 64)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\t// Rounding converts to int32\n\tif value > math.MaxInt32 {\n\t\treturn math.MaxInt32, nil\n\t}\n\tif value < math.MinInt32 {\n\t\treturn math.MinInt32, nil\n\t}\n\treturn int32(math.Round(value)), nil\n}\nfunc isSVG(uri string) bool {\n\turi = strings.ToLower(uri)\n\tfileExtension := path.Base(uri)\n\text := path.Ext(fileExtension)\n\text = ext[1:]\n\treturn ext == \"svg\"\n}\nfunc (u *UploadService) ApplyImageUpload(ctx context.Context, req *upload.ApplyUploadActionRequest, host string) (*upload.ApplyUploadActionResponse, error) {\n\tresp := upload.ApplyUploadActionResponse{}\n\tstoreUri := \"tos-cn-i-v4nquku3lp/\" + uuid.NewString() + ptr.From(req.FileExtension)\n\tsessionKey := uuid.NewString()\n\tauth := uuid.NewString()\n\tuploadID := uuid.NewString()\n\tuploadHost := string(host) + consts.UploadURI\n\tresp.ResponseMetadata = &upload.ResponseMetadata{\n\t\tRequestId: uuid.NewString(),\n\t\tAction:    \"ApplyImageUpload\",\n\t\tVersion:   \"\",\n\t\tService:   \"\",\n\t\tRegion:    \"\",\n\t}\n\tresp.Result = &upload.ApplyUploadActionResult{\n\t\tUploadAddress: &upload.UploadAddress{\n\t\t\tStoreInfos: []*upload.StoreInfo{\n\t\t\t\t{\n\t\t\t\t\tStoreUri: storeUri,\n\t\t\t\t\tAuth:     auth,\n\t\t\t\t\tUploadID: uploadID,\n\t\t\t\t},\n\t\t\t},\n\t\t\tUploadHosts: []string{uploadHost},\n\t\t\tSessionKey:  sessionKey,\n\t\t},\n\t\tInnerUploadAddress: &upload.InnerUploadAddress{\n\t\t\tUploadNodes: []*upload.UploadNode{\n\t\t\t\t{\n\t\t\t\t\tStoreInfos: []*upload.StoreInfo{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tStoreUri: storeUri,\n\t\t\t\t\t\t\tAuth:     auth,\n\t\t\t\t\t\t\tUploadID: uploadID,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tUploadHost: uploadHost,\n\t\t\t\t\tSessionKey: sessionKey,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tRequestId: ptr.Of(uuid.NewString()),\n\t}\n\terr := u.UploadSessionKey(ctx, sessionKey, storeUri)\n\tif err != nil {\n\t\treturn &resp, errorx.New(errno.ErrUploadSystemErrorCode, errorx.KV(\"msg\", err.Error()))\n\t}\n\treturn &resp, nil\n}\n\nfunc (u *UploadService) CommitImageUpload(ctx context.Context, req *upload.ApplyUploadActionRequest, host string) (*upload.ApplyUploadActionResponse, error) {\n\tresp := upload.ApplyUploadActionResponse{}\n\ttype ssKey struct {\n\t\tSessionKey string `json:\"SessionKey\"`\n\t}\n\tsskey := ssKey{}\n\terr := sonic.Unmarshal(req.ByteData, &sskey)\n\tif err != nil {\n\t\treturn &resp, errorx.New(errno.ErrUploadSystemErrorCode, errorx.KV(\"msg\", err.Error()))\n\t}\n\tobjInfo, err := u.GetObjInfoBySessionKey(ctx, sskey.SessionKey)\n\tif err != nil {\n\t\treturn &resp, errorx.New(errno.ErrUploadSystemErrorCode, errorx.KV(\"msg\", err.Error()))\n\t}\n\tresp.ResponseMetadata = &upload.ResponseMetadata{\n\t\tRequestId: uuid.NewString(),\n\t\tAction:    \"ApplyImageUpload\",\n\t\tVersion:   \"\",\n\t\tService:   \"\",\n\t\tRegion:    \"\",\n\t}\n\tresp.Result = &upload.ApplyUploadActionResult{\n\t\tResults: []*upload.UploadResult{\n\t\t\t{\n\t\t\t\tUri:       objInfo.ObjKey,\n\t\t\t\tUriStatus: 2000,\n\t\t\t},\n\t\t},\n\t\tRequestId: ptr.Of(uuid.NewString()),\n\t\tPluginResult: []*upload.PluginResult{\n\t\t\t{\n\t\t\t\tFileName:    objInfo.ObjKey,\n\t\t\t\tSourceUri:   objInfo.ObjKey,\n\t\t\t\tImageUri:    objInfo.ObjKey,\n\t\t\t\tImageWidth:  objInfo.Width,\n\t\t\t\tImageHeight: objInfo.Height,\n\t\t\t},\n\t\t},\n\t}\n\n\treturn &resp, nil\n}\n"
  },
  {
    "path": "backend/application/user/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage user\n\nimport (\n\t\"context\"\n\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/domain/user/repository\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/user/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n)\n\nfunc InitService(ctx context.Context, db *gorm.DB, oss storage.Storage, idgen idgen.IDGenerator) *UserApplicationService {\n\tUserApplicationSVC.DomainSVC = service.NewUserDomain(ctx, &service.Components{\n\t\tIconOSS:   oss,\n\t\tIDGen:     idgen,\n\t\tUserRepo:  repository.NewUserRepo(db),\n\t\tSpaceRepo: repository.NewSpaceRepo(db),\n\t})\n\tUserApplicationSVC.oss = oss\n\n\treturn UserApplicationSVC\n}\n"
  },
  {
    "path": "backend/application/user/user.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage user\n\nimport (\n\t\"context\"\n\t\"net/mail\"\n\t\"slices\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/passport\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/user/entity\"\n\tuser \"github.com/coze-dev/coze-studio/backend/domain/user/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\tlangSlices \"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nvar UserApplicationSVC = &UserApplicationService{}\n\ntype UserApplicationService struct {\n\toss       storage.Storage\n\tDomainSVC user.User\n}\n\n// Add a simple email verification function\nfunc isValidEmail(email string) bool {\n\t// If the email string is not in the correct format, it will return an error.\n\t_, err := mail.ParseAddress(email)\n\treturn err == nil\n}\n\nfunc (u *UserApplicationService) PassportWebEmailRegisterV2(ctx context.Context, locale string, req *passport.PassportWebEmailRegisterV2PostRequest) (\n\tresp *passport.PassportWebEmailRegisterV2PostResponse, sessionKey string, err error,\n) {\n\t// Verify that the email format is legitimate\n\tif !isValidEmail(req.GetEmail()) {\n\t\treturn nil, \"\", errorx.New(errno.ErrUserInvalidParamCode, errorx.KV(\"msg\", \"Invalid email\"))\n\t}\n\n\tbaseConf, err := config.Base().GetBaseConfig(ctx)\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\n\t// Allow Register Checker\n\tif !u.allowRegisterChecker(req.GetEmail(), baseConf) {\n\t\treturn nil, \"\", errorx.New(errno.ErrNotAllowedRegisterCode)\n\t}\n\n\t_, err = u.DomainSVC.Create(ctx, &user.CreateUserRequest{\n\t\tEmail:    req.GetEmail(),\n\t\tPassword: req.GetPassword(),\n\n\t\tLocale: locale,\n\t})\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\n\tuserInfo, err := u.DomainSVC.Login(ctx, req.GetEmail(), req.GetPassword())\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\n\treturn &passport.PassportWebEmailRegisterV2PostResponse{\n\t\tData: userDo2PassportTo(userInfo),\n\t\tCode: 0,\n\t}, userInfo.SessionKey, nil\n}\n\nfunc (u *UserApplicationService) allowRegisterChecker(email string, baseConf *config.BasicConfiguration) bool {\n\tif !baseConf.DisableUserRegistration {\n\t\treturn true\n\t}\n\n\tallowedEmails := baseConf.AllowRegistrationEmail\n\tif allowedEmails == \"\" {\n\t\treturn false\n\t}\n\n\treturn slices.Contains(strings.Split(allowedEmails, \",\"), strings.ToLower(email))\n}\n\n// PassportWebLogoutGet handle user logout requests\nfunc (u *UserApplicationService) PassportWebLogoutGet(ctx context.Context, req *passport.PassportWebLogoutGetRequest) (\n\tresp *passport.PassportWebLogoutGetResponse, err error,\n) {\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\n\terr = u.DomainSVC.Logout(ctx, uid)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &passport.PassportWebLogoutGetResponse{\n\t\tCode: 0,\n\t}, nil\n}\n\n// PassportWebEmailLoginPost handle user email login requests\nfunc (u *UserApplicationService) PassportWebEmailLoginPost(ctx context.Context, req *passport.PassportWebEmailLoginPostRequest) (\n\tresp *passport.PassportWebEmailLoginPostResponse, sessionKey string, err error,\n) {\n\tuserInfo, err := u.DomainSVC.Login(ctx, req.GetEmail(), req.GetPassword())\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\n\treturn &passport.PassportWebEmailLoginPostResponse{\n\t\tData: userDo2PassportTo(userInfo),\n\t\tCode: 0,\n\t}, userInfo.SessionKey, nil\n}\n\nfunc (u *UserApplicationService) PassportWebEmailPasswordResetGet(ctx context.Context, req *passport.PassportWebEmailPasswordResetGetRequest) (\n\tresp *passport.PassportWebEmailPasswordResetGetResponse, err error,\n) {\n\tsession := ctxutil.GetUserSessionFromCtx(ctx)\n\tif session == nil {\n\t\treturn nil, errorx.New(errno.ErrUserAuthenticationFailed, errorx.KV(\"reason\", \"session data is nil\"))\n\t}\n\tif !strings.EqualFold(session.UserEmail, req.GetEmail()) {\n\t\treturn nil, errorx.New(errno.ErrUserPermissionCode, errorx.KV(\"msg\", \"email mismatch\"))\n\t}\n\n\terr = u.DomainSVC.ResetPassword(ctx, req.GetEmail(), req.GetPassword())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &passport.PassportWebEmailPasswordResetGetResponse{\n\t\tCode: 0,\n\t}, nil\n}\n\nfunc (u *UserApplicationService) PassportAccountInfoV2(ctx context.Context, req *passport.PassportAccountInfoV2Request) (\n\tresp *passport.PassportAccountInfoV2Response, err error,\n) {\n\tuserID := ctxutil.MustGetUIDFromCtx(ctx)\n\n\tuserInfo, err := u.DomainSVC.GetUserInfo(ctx, userID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &passport.PassportAccountInfoV2Response{\n\t\tData: userDo2PassportTo(userInfo),\n\t\tCode: 0,\n\t}, nil\n}\n\n// UserUpdateAvatar Update user avatar\nfunc (u *UserApplicationService) UserUpdateAvatar(ctx context.Context, mimeType string, req *passport.UserUpdateAvatarRequest) (\n\tresp *passport.UserUpdateAvatarResponse, err error,\n) {\n\t// Get file suffix by MIME type\n\tvar ext string\n\tswitch mimeType {\n\tcase \"image/jpeg\", \"image/jpg\":\n\t\text = \"jpg\"\n\tcase \"image/png\":\n\t\text = \"png\"\n\tcase \"image/gif\":\n\t\text = \"gif\"\n\tcase \"image/webp\":\n\t\text = \"webp\"\n\tdefault:\n\t\treturn nil, errorx.WrapByCode(err, errno.ErrUserInvalidParamCode,\n\t\t\terrorx.KV(\"msg\", \"unsupported image type\"))\n\t}\n\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\n\turl, err := u.DomainSVC.UpdateAvatar(ctx, uid, ext, req.GetAvatar())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &passport.UserUpdateAvatarResponse{\n\t\tData: &passport.UserUpdateAvatarResponseData{\n\t\t\tWebURI: url,\n\t\t},\n\t\tCode: 0,\n\t}, nil\n}\n\n// UserUpdateProfile Update user profile\nfunc (u *UserApplicationService) UserUpdateProfile(ctx context.Context, req *passport.UserUpdateProfileRequest) (\n\tresp *passport.UserUpdateProfileResponse, err error,\n) {\n\tuserID := ctxutil.MustGetUIDFromCtx(ctx)\n\n\terr = u.DomainSVC.UpdateProfile(ctx, &user.UpdateProfileRequest{\n\t\tUserID:      userID,\n\t\tName:        req.Name,\n\t\tUniqueName:  req.UserUniqueName,\n\t\tDescription: req.Description,\n\t\tLocale:      req.Locale,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &passport.UserUpdateProfileResponse{\n\t\tCode: 0,\n\t}, nil\n}\n\nfunc (u *UserApplicationService) GetSpaceListV2(ctx context.Context, req *playground.GetSpaceListV2Request) (\n\tresp *playground.GetSpaceListV2Response, err error,\n) {\n\tuid := ctxutil.MustGetUIDFromCtx(ctx)\n\n\tspaces, err := u.DomainSVC.GetUserSpaceList(ctx, uid)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tbotSpaces := langSlices.Transform(spaces, func(space *entity.Space) *playground.BotSpaceV2 {\n\t\treturn &playground.BotSpaceV2{\n\t\t\tID:          space.ID,\n\t\t\tName:        space.Name,\n\t\t\tDescription: space.Description,\n\t\t\tSpaceType:   playground.SpaceType(space.SpaceType),\n\t\t\tIconURL:     space.IconURL,\n\t\t}\n\t})\n\n\treturn &playground.GetSpaceListV2Response{\n\t\tData: &playground.SpaceInfo{\n\t\t\tBotSpaceList:          botSpaces,\n\t\t\tHasPersonalSpace:      true,\n\t\t\tTeamSpaceNum:          0,\n\t\t\tRecentlyUsedSpaceList: botSpaces,\n\t\t\tTotal:                 ptr.Of(int32(len(botSpaces))),\n\t\t\tHasMore:               ptr.Of(false),\n\t\t},\n\t\tCode: 0,\n\t}, nil\n}\n\nfunc (u *UserApplicationService) MGetUserBasicInfo(ctx context.Context, req *playground.MGetUserBasicInfoRequest) (\n\tresp *playground.MGetUserBasicInfoResponse, err error,\n) {\n\tuserIDs, err := langSlices.TransformWithErrorCheck(req.GetUserIds(), func(s string) (int64, error) {\n\t\treturn strconv.ParseInt(s, 10, 64)\n\t})\n\tif err != nil {\n\t\treturn nil, errorx.WrapByCode(err, errno.ErrUserInvalidParamCode, errorx.KV(\"msg\", \"invalid user id\"))\n\t}\n\n\tuserInfos, err := u.DomainSVC.MGetUserProfiles(ctx, userIDs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &playground.MGetUserBasicInfoResponse{\n\t\tUserBasicInfoMap: langSlices.ToMap(userInfos, func(userInfo *entity.User) (string, *playground.UserBasicInfo) {\n\t\t\treturn strconv.FormatInt(userInfo.UserID, 10), userDo2PlaygroundTo(userInfo)\n\t\t}),\n\t\tCode: 0,\n\t}, nil\n}\n\nfunc (u *UserApplicationService) UpdateUserProfileCheck(ctx context.Context, req *developer_api.UpdateUserProfileCheckRequest) (resp *developer_api.UpdateUserProfileCheckResponse, err error) {\n\tif req.GetUserUniqueName() == \"\" {\n\t\treturn &developer_api.UpdateUserProfileCheckResponse{\n\t\t\tCode: 0,\n\t\t\tMsg:  \"no content to update\",\n\t\t}, nil\n\t}\n\n\tvalidateResp, err := u.DomainSVC.ValidateProfileUpdate(ctx, &user.ValidateProfileUpdateRequest{\n\t\tUniqueName: req.UserUniqueName,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &developer_api.UpdateUserProfileCheckResponse{\n\t\tCode: int64(validateResp.Code),\n\t\tMsg:  validateResp.Msg,\n\t}, nil\n}\n\nfunc (u *UserApplicationService) ValidateSession(ctx context.Context, sessionKey string) (*entity.Session, error) {\n\tsession, exist, err := u.DomainSVC.ValidateSession(ctx, sessionKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !exist {\n\t\treturn nil, errorx.New(errno.ErrUserAuthenticationFailed, errorx.KV(\"reason\", \"session not exist\"))\n\t}\n\n\treturn session, nil\n}\n\nfunc userDo2PassportTo(userDo *entity.User) *passport.User {\n\tvar locale *string\n\tif userDo.Locale != \"\" {\n\t\tlocale = ptr.Of(userDo.Locale)\n\t}\n\n\treturn &passport.User{\n\t\tUserIDStr:      userDo.UserID,\n\t\tName:           userDo.Name,\n\t\tScreenName:     ptr.Of(userDo.Name),\n\t\tUserUniqueName: userDo.UniqueName,\n\t\tEmail:          userDo.Email,\n\t\tDescription:    userDo.Description,\n\t\tAvatarURL:      userDo.IconURL,\n\t\tAppUserInfo: &passport.AppUserInfo{\n\t\t\tUserUniqueName: userDo.UniqueName,\n\t\t},\n\t\tLocale: locale,\n\n\t\tUserCreateTime: userDo.CreatedAt / 1000,\n\t}\n}\n\nfunc userDo2PlaygroundTo(userDo *entity.User) *playground.UserBasicInfo {\n\treturn &playground.UserBasicInfo{\n\t\tUserId:         userDo.UserID,\n\t\tUsername:       userDo.Name,\n\t\tUserUniqueName: ptr.Of(userDo.UniqueName),\n\t\tUserAvatar:     userDo.IconURL,\n\t\tCreateTime:     ptr.Of(userDo.CreatedAt / 1000),\n\t}\n}\n"
  },
  {
    "path": "backend/application/workflow/chatflow.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage workflow\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"runtime/debug\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/cloudwego/eino/schema\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/debugutil\"\n\tcrossagentrun \"github.com/coze-dev/coze-studio/backend/crossdomain/agentrun\"\n\n\tcrossconversation \"github.com/coze-dev/coze-studio/backend/crossdomain/conversation\"\n\tcrossmessage \"github.com/coze-dev/coze-studio/backend/crossdomain/message\"\n\tmessage \"github.com/coze-dev/coze-studio/backend/crossdomain/message/model\"\n\tcrossupload \"github.com/coze-dev/coze-studio/backend/crossdomain/upload\"\n\tworkflowModel \"github.com/coze-dev/coze-studio/backend/crossdomain/workflow/model\"\n\tagententity \"github.com/coze-dev/coze-studio/backend/domain/conversation/agentrun/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/permission\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/upload/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/entity/vo\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/maps\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ternary\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/safego\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/sonic\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/taskgroup\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\nconst (\n\tuserRole      = \"user\"\n\tassistantRole = \"assistant\"\n\tcardTemplate  = `\n{\n    \"elements\": {\n        \"root\": {\n            \"id\": \"root\",\n            \"name\": \"Root\",\n            \"type\": \"@flowpd/cici-components/PageContainer\",\n            \"props\": {\n                \"backgroundColor\": \"grey\",\n                \"containerPadding\": 16,\n                \"containerRowGap\": 12\n            },\n            \"children\": [\n                \"OpfZnYNHby\",\n                \"70zV0Jp5vy\"\n            ],\n            \"directives\": {\n\n            }\n        },\n        \"OpfZnYNHby\": {\n            \"id\": \"OpfZnYNHby\",\n            \"name\": \"FlowpdCiciComponentsColumnLayout\",\n            \"type\": \"@flowpd/cici-components/ColumnLayout\",\n            \"props\": {\n                \"backgroundColor\": \"transparent\",\n                \"layoutColumnGap\": 4,\n                \"layoutPaddingGap\": 2,\n                \"borderRadius\": 0,\n                \"enableClickEvent\": false,\n                \"action\": \"enableUrl\",\n                \"Columns\": [\n                    {\n                        \"type\": \"slot\",\n                        \"children\": [\n                            \"KPa0BqoODo\"\n                        ],\n                        \"config\": {\n                            \"width\": \"weighted\",\n                            \"weight\": 1,\n                            \"vertical\": \"top\",\n                            \"horizontal\": \"left\",\n                            \"columnElementGap\": 4,\n                            \"columnElementPadding\": 2,\n                            \"enableClickEvent\": false\n                        }\n                    }\n                ]\n            },\n            \"children\": [\n\n            ],\n            \"directives\": {\n                \"repeat\": {\n                    \"type\": \"expression\",\n                    \"value\": \"{{5fJt3qKpSz}}\",\n                    \"replaceMap\": {\n                        \"5fJt3qKpSz\": \"list\"\n                    }\n                }\n            }\n        },\n        \"KPa0BqoODo\": {\n            \"id\": \"KPa0BqoODo\",\n            \"name\": \"FlowpdCiciComponentsInput\",\n            \"type\": \"@flowpd/cici-components/Input\",\n            \"props\": {\n                \"enableLabel\": true,\n                \"label\": {\n                    \"type\": \"expression\",\n                    \"value\": \"{{item.name}}\"\n                },\n                \"placeholder\": \"Please enter content.\",\n                \"maxLengthEnabled\": false,\n                \"maxLength\": 140,\n                \"required\": false,\n                \"enableSendIcon\": true,\n                \"actionType\": \"enableMessage\",\n                \"disableAfterAction\": true,\n                \"message\": {\n                    \"type\": \"expression\",\n                    \"value\": \"{{KPa0BqoODo_value}}\"\n                }\n            },\n            \"children\": [\n\n            ],\n            \"directives\": {\n\n            }\n        },\n        \"70zV0Jp5vy\": {\n            \"id\": \"70zV0Jp5vy\",\n            \"name\": \"FlowpdCiciComponentsColumnLayout\",\n            \"type\": \"@flowpd/cici-components/ColumnLayout\",\n            \"props\": {\n                \"backgroundColor\": \"transparent\",\n                \"layoutColumnGap\": 4,\n                \"layoutPaddingGap\": 2,\n                \"borderRadius\": 0,\n                \"enableClickEvent\": false,\n                \"action\": \"enableUrl\",\n                \"Columns\": [\n                    {\n                        \"type\": \"slot\",\n                        \"children\": [\n                            \"mH5BNaFTl1\"\n                        ],\n                        \"config\": {\n                            \"width\": \"weighted\",\n                            \"weight\": 1,\n                            \"vertical\": \"top\",\n                            \"horizontal\": \"right\",\n                            \"columnElementGap\": 4,\n                            \"columnElementPadding\": 2,\n                            \"enableClickEvent\": false\n                        }\n                    }\n                ]\n            },\n            \"children\": [\n\n            ],\n            \"directives\": {\n\n            }\n        },\n        \"mH5BNaFTl1\": {\n            \"id\": \"mH5BNaFTl1\",\n            \"name\": \"FlowpdCiciComponentsButton\",\n            \"type\": \"@flowpd/cici-components/Button\",\n            \"props\": {\n                \"content\": \"Button\",\n                \"type\": \"primary\",\n                \"size\": \"small\",\n                \"width\": \"hug\",\n                \"widthPx\": 160,\n                \"textAlign\": \"center\",\n                \"enableLines\": false,\n                \"lines\": 1,\n                \"positionStyle\": {\n                    \"type\": \"default\"\n                },\n                \"actionType\": \"enableMessage\",\n                \"disableAfterAction\": true,\n                \"message\": {\n                    \"type\": \"expression\",\n                    \"value\": \"{{KPa0BqoODo_value}}\"\n                }\n            },\n            \"children\": [\n\n            ],\n            \"directives\": {\n\n            }\n        }\n    },\n    \"rootID\": \"root\",\n    \"variables\": {\n        \"5fJt3qKpSz\": {\n            \"id\": \"5fJt3qKpSz\",\n            \"name\": \"list\",\n            \"defaultValue\": [\n\n            ]\n        }\n    },\n    \"actions\": {\n\n    }\n}`\n)\n\ntype inputCard struct {\n\tElements  any            `json:\"elements\"`\n\tRootID    string         `json:\"rootID\"`\n\tVariables map[string]any `json:\"variables\"`\n}\n\nfunc defaultCard() *inputCard {\n\tcard := &inputCard{}\n\t_ = sonic.UnmarshalString(cardTemplate, card)\n\treturn card\n}\n\nfunc (w *ApplicationService) CreateApplicationConversationDef(ctx context.Context, req *workflow.CreateProjectConversationDefRequest) (resp *workflow.CreateProjectConversationDefResponse, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrConversationOfAppOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tvar (\n\t\tspaceID = mustParseInt64(req.GetSpaceID())\n\t\tappID   = mustParseInt64(req.GetProjectID())\n\t\tuserID  = ctxutil.MustGetUIDFromCtx(ctx)\n\t)\n\n\tif err := checkUserSpace(ctx, userID, spaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\tuniqueID, err := GetWorkflowDomainSVC().CreateDraftConversationTemplate(ctx, &vo.CreateConversationTemplateMeta{\n\t\tAppID:   appID,\n\t\tSpaceID: spaceID,\n\t\tName:    req.GetConversationName(),\n\t\tUserID:  userID,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.CreateProjectConversationDefResponse{\n\t\tUniqueID: strconv.FormatInt(uniqueID, 10),\n\t\tSpaceID:  req.GetSpaceID(),\n\t}, err\n}\n\nfunc (w *ApplicationService) UpdateApplicationConversationDef(ctx context.Context, req *workflow.UpdateProjectConversationDefRequest) (resp *workflow.UpdateProjectConversationDefResponse, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrConversationOfAppOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\tvar (\n\t\tspaceID    = mustParseInt64(req.GetSpaceID())\n\t\ttemplateID = mustParseInt64(req.GetUniqueID())\n\t\tappID      = mustParseInt64(req.GetProjectID())\n\t\tuserID     = ctxutil.MustGetUIDFromCtx(ctx)\n\t)\n\n\tif err := checkUserSpace(ctx, userID, spaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = GetWorkflowDomainSVC().UpdateDraftConversationTemplateName(ctx, appID, userID, templateID, req.GetConversationName())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &workflow.UpdateProjectConversationDefResponse{}, err\n}\n\nfunc (w *ApplicationService) DeleteApplicationConversationDef(ctx context.Context, req *workflow.DeleteProjectConversationDefRequest) (resp *workflow.DeleteProjectConversationDefResponse, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrConversationOfAppOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\tvar (\n\t\tappID      = mustParseInt64(req.GetProjectID())\n\t\ttemplateID = mustParseInt64(req.GetUniqueID())\n\t)\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\tif req.GetCheckOnly() {\n\t\twfs, err := GetWorkflowDomainSVC().CheckWorkflowsToReplace(ctx, appID, templateID)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tresp = &workflow.DeleteProjectConversationDefResponse{NeedReplace: make([]*workflow.Workflow, 0)}\n\t\tfor _, wf := range wfs {\n\t\t\tresp.NeedReplace = append(resp.NeedReplace, &workflow.Workflow{\n\t\t\t\tName:       wf.Name,\n\t\t\t\tURL:        wf.IconURL,\n\t\t\t\tWorkflowID: strconv.FormatInt(wf.ID, 10),\n\t\t\t})\n\t\t}\n\t\treturn resp, nil\n\t}\n\n\twfID2ConversationName, err := maps.TransformKeyWithErrorCheck(req.GetReplace(), func(k1 string) (int64, error) {\n\t\treturn strconv.ParseInt(k1, 10, 64)\n\t})\n\n\trowsAffected, err := GetWorkflowDomainSVC().DeleteDraftConversationTemplate(ctx, templateID, wfID2ConversationName)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif rowsAffected > 0 {\n\t\treturn &workflow.DeleteProjectConversationDefResponse{\n\t\t\tSuccess: true,\n\t\t}, err\n\t}\n\n\trowsAffected, err = GetWorkflowDomainSVC().DeleteDynamicConversation(ctx, vo.Draft, templateID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif rowsAffected == 0 {\n\t\treturn nil, fmt.Errorf(\"delete conversation failed\")\n\t}\n\n\treturn &workflow.DeleteProjectConversationDefResponse{\n\t\tSuccess: true,\n\t}, nil\n\n}\n\nfunc (w *ApplicationService) ListApplicationConversationDef(ctx context.Context, req *workflow.ListProjectConversationRequest) (resp *workflow.ListProjectConversationResponse, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrConversationOfAppOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\tvar connectorID int64\n\tif len(req.GetConnectorID()) != 0 {\n\t\tconnectorID = mustParseInt64(req.GetConnectorID())\n\t} else {\n\t\tconnectorID = consts.CozeConnectorID\n\t}\n\tvar (\n\t\tpage                 = mustParseInt64(ternary.IFElse(req.GetCursor() == \"\", \"0\", req.GetCursor()))\n\t\tsize                 = req.GetLimit()\n\t\tuserID               = ctxutil.MustGetUIDFromCtx(ctx)\n\t\tspaceID              = mustParseInt64(req.GetSpaceID())\n\t\tappID                = mustParseInt64(req.GetProjectID())\n\t\tversion              = req.ProjectVersion\n\t\tlistConversationMeta = vo.ListConversationMeta{\n\t\t\tAPPID:       appID,\n\t\t\tUserID:      userID,\n\t\t\tConnectorID: connectorID,\n\t\t}\n\t)\n\n\tif err := checkUserSpace(ctx, userID, spaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\tenv := ternary.IFElse(req.GetCreateEnv() == workflow.CreateEnv_Draft, vo.Draft, vo.Online)\n\tif req.GetCreateMethod() == workflow.CreateMethod_ManualCreate {\n\t\ttemplates, err := GetWorkflowDomainSVC().ListConversationTemplate(ctx, env, &vo.ListConversationTemplatePolicy{\n\t\t\tAppID: appID,\n\t\t\tPage: &vo.Page{\n\t\t\t\tPage: int32(page),\n\t\t\t\tSize: int32(size),\n\t\t\t},\n\t\t\tNameLike: ternary.IFElse(len(req.GetNameLike()) == 0, nil, ptr.Of(req.GetNameLike())),\n\t\t\tVersion:  version,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tstsConversations, err := GetWorkflowDomainSVC().MGetStaticConversation(ctx, env, userID, connectorID, slices.Transform(templates, func(a *entity.ConversationTemplate) int64 {\n\t\t\treturn a.TemplateID\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstsConversationMap := slices.ToMap(stsConversations, func(e *entity.StaticConversation) (int64, *entity.StaticConversation) {\n\t\t\treturn e.TemplateID, e\n\t\t})\n\n\t\tresp = &workflow.ListProjectConversationResponse{Data: make([]*workflow.ProjectConversation, 0)}\n\t\tfor _, tmpl := range templates {\n\t\t\tconversationID := \"\"\n\t\t\tif c, ok := stsConversationMap[tmpl.TemplateID]; ok {\n\t\t\t\tconversationID = strconv.FormatInt(c.ConversationID, 10)\n\t\t\t}\n\t\t\tresp.Data = append(resp.Data, &workflow.ProjectConversation{\n\t\t\t\tUniqueID:         strconv.FormatInt(tmpl.TemplateID, 10),\n\t\t\t\tConversationName: tmpl.Name,\n\t\t\t\tConversationID:   conversationID,\n\t\t\t})\n\t\t}\n\t}\n\n\tif req.GetCreateMethod() == workflow.CreateMethod_NodeCreate {\n\t\tdyConversations, err := GetWorkflowDomainSVC().ListDynamicConversation(ctx, env, &vo.ListConversationPolicy{\n\t\t\tListConversationMeta: listConversationMeta,\n\t\t\tPage: &vo.Page{\n\t\t\t\tPage: int32(page),\n\t\t\t\tSize: int32(size),\n\t\t\t},\n\t\t\tNameLike: ternary.IFElse(len(req.GetNameLike()) == 0, nil, ptr.Of(req.GetNameLike())),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tresp = &workflow.ListProjectConversationResponse{Data: make([]*workflow.ProjectConversation, 0, len(dyConversations))}\n\t\tresp.Data = append(resp.Data, slices.Transform(dyConversations, func(a *entity.DynamicConversation) *workflow.ProjectConversation {\n\t\t\treturn &workflow.ProjectConversation{\n\t\t\t\tUniqueID:         strconv.FormatInt(a.ID, 10),\n\t\t\t\tConversationName: a.Name,\n\t\t\t\tConversationID:   strconv.FormatInt(a.ConversationID, 10),\n\t\t\t}\n\t\t})...)\n\n\t}\n\n\treturn resp, nil\n}\nfunc checkPermission(ctx context.Context, userID int64, workflowID int64, appID *int64, agentID *int64) error {\n\trd := []*permission.ResourceIdentifier{\n\t\t{\n\t\t\tType:   permission.ResourceTypeWorkflow,\n\t\t\tID:     []int64{workflowID},\n\t\t\tAction: permission.ActionRead,\n\t\t},\n\t}\n\tif appID != nil {\n\t\trd = append(rd, &permission.ResourceIdentifier{\n\t\t\tType:   permission.ResourceTypeApp,\n\t\t\tID:     []int64{*appID},\n\t\t\tAction: permission.ActionRead,\n\t\t})\n\t}\n\tif agentID != nil {\n\t\trd = append(rd, &permission.ResourceIdentifier{\n\t\t\tType:   permission.ResourceTypeAgent,\n\t\t\tID:     []int64{*agentID},\n\t\t\tAction: permission.ActionRead,\n\t\t})\n\t}\n\n\tcheckResult, err := permission.DefaultSVC().CheckAuthz(ctx, &permission.CheckAuthzData{\n\t\tOperatorID:         userID,\n\t\tResourceIdentifier: rd,\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\tif checkResult.Decision != permission.Allow {\n\t\treturn errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"no permission\"))\n\t}\n\treturn nil\n}\n\nfunc (w *ApplicationService) OpenAPIChatFlowRun(ctx context.Context, req *workflow.ChatFlowRunRequest) (\n\t_ *schema.StreamReader[[]*workflow.ChatFlowRunResponse], err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif len(req.GetAdditionalMessages()) == 0 {\n\t\treturn nil, fmt.Errorf(\"additional_messages is requird\")\n\t}\n\n\tmessages := req.GetAdditionalMessages()\n\n\tlastUserMessage := messages[len(req.GetAdditionalMessages())-1]\n\tif lastUserMessage.Role != userRole {\n\t\treturn nil, errors.New(\"the role of the last day message must be user\")\n\t}\n\n\tvar parameters = make(map[string]any)\n\tif len(req.GetParameters()) > 0 {\n\t\terr := sonic.UnmarshalString(req.GetParameters(), &parameters)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tvar (\n\t\tworkflowID     = mustParseInt64(req.GetWorkflowID())\n\t\tisDebug        = req.GetExecuteMode() == \"DEBUG\"\n\t\tappID, agentID *int64\n\t\tbizID          int64\n\t\tconversationID int64\n\t\tsectionID      int64\n\t\tversion        string\n\t\tlocator        workflowModel.Locator\n\t\tapiKeyInfo     = ctxutil.GetApiAuthFromCtx(ctx)\n\t\tuserID         = apiKeyInfo.UserID\n\t\tconnectorID    int64\n\t\truntimeUserID  = func() *string {\n\t\t\tif uID, ok := req.Ext[\"user_id\"]; ok {\n\t\t\t\treturn ptr.Of(uID)\n\t\t\t}\n\t\t\treturn nil\n\t\t}()\n\t)\n\tif len(req.GetConnectorID()) == 0 {\n\t\tconnectorID = ternary.IFElse(isDebug, consts.CozeConnectorID, apiKeyInfo.ConnectorID)\n\t} else {\n\t\tconnectorID = mustParseInt64(req.GetConnectorID())\n\t}\n\n\terr = checkPermission(ctx, userID, workflowID, appID, agentID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif req.IsSetAppID() {\n\t\tappID = ptr.Of(mustParseInt64(req.GetAppID()))\n\t\tbizID = mustParseInt64(req.GetAppID())\n\t}\n\tif req.IsSetBotID() {\n\t\tagentID = ptr.Of(mustParseInt64(req.GetBotID()))\n\t\tbizID = mustParseInt64(req.GetBotID())\n\t}\n\n\tif appID != nil && agentID != nil {\n\t\treturn nil, errors.New(\"project_id and bot_id cannot be set at the same time\")\n\t}\n\n\tif isDebug {\n\t\tlocator = workflowModel.FromDraft\n\t} else {\n\t\tmeta, err := GetWorkflowDomainSVC().Get(ctx, &vo.GetPolicy{\n\t\t\tID:       workflowID,\n\t\t\tMetaOnly: true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif meta.LatestPublishedVersion == nil {\n\t\t\treturn nil, vo.NewError(errno.ErrWorkflowNotPublished)\n\t\t}\n\t\tif req.IsSetVersion() {\n\t\t\tversion = req.GetVersion()\n\t\t\tlocator = workflowModel.FromSpecificVersion\n\t\t} else {\n\t\t\tversion = meta.GetLatestVersion()\n\t\t\tlocator = workflowModel.FromLatestVersion\n\t\t}\n\t}\n\n\tif req.IsSetConversationID() && !req.IsSetBotID() {\n\t\tconversationID = mustParseInt64(req.GetConversationID())\n\t\tcInfo, err := crossconversation.DefaultSVC().GetByID(ctx, conversationID)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsectionID = cInfo.SectionID\n\n\t\t//  only trust the conversation name under the app\n\t\tconversationName, existed, err := GetWorkflowDomainSVC().GetConversationNameByID(ctx, ternary.IFElse(isDebug, vo.Draft, vo.Online), bizID, connectorID, conversationID)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !existed {\n\t\t\treturn nil, fmt.Errorf(\"conversation not found\")\n\t\t}\n\t\tparameters[vo.ConversationNameKey] = conversationName\n\t} else if req.IsSetConversationID() && req.IsSetBotID() {\n\t\tparameters[vo.ConversationNameKey] = \"Default\"\n\t\tconversationID = mustParseInt64(req.GetConversationID())\n\t\tcInfo, err := crossconversation.DefaultSVC().GetByID(ctx, conversationID)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsectionID = cInfo.SectionID\n\t} else {\n\t\tconversationName, ok := parameters[vo.ConversationNameKey].(string)\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"conversation name is requried\")\n\t\t}\n\t\tcID, sID, err := GetWorkflowDomainSVC().GetOrCreateConversation(ctx, ternary.IFElse(isDebug, vo.Draft, vo.Online), bizID, connectorID, userID, conversationName)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tconversationID = cID\n\t\tsectionID = sID\n\t}\n\n\trunRecord, err := crossagentrun.DefaultSVC().Create(ctx, &agententity.AgentRunMeta{\n\t\tAgentID:        bizID,\n\t\tConversationID: conversationID,\n\t\tUserID:         strconv.FormatInt(userID, 10),\n\t\tConnectorID:    connectorID,\n\t\tSectionID:      sectionID,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\troundID := runRecord.ID\n\n\tuserMessage, err := toConversationMessage(ctx, bizID, conversationID, userID, roundID, sectionID, message.MessageTypeQuestion, lastUserMessage)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmessageClient := crossmessage.DefaultSVC()\n\t_, err = messageClient.Create(ctx, userMessage)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tinfo, existed, unbinding, err := GetWorkflowDomainSVC().GetConvRelatedInfo(ctx, conversationID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tuserSchemaMessage, err := toSchemaMessage(ctx, lastUserMessage)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif existed {\n\t\tsr, err := GetWorkflowDomainSVC().StreamResume(ctx, &entity.ResumeRequest{\n\t\t\tEventID:    info.EventID,\n\t\t\tExecuteID:  info.ExecID,\n\t\t\tResumeData: lastUserMessage.Content,\n\t\t}, workflowModel.ExecuteConfig{\n\t\t\tOperator:    userID,\n\t\t\tMode:        ternary.IFElse(isDebug, workflowModel.ExecuteModeDebug, workflowModel.ExecuteModeRelease),\n\t\t\tConnectorID: connectorID,\n\t\t\tConnectorUID: func() string {\n\t\t\t\tif runtimeUserID != nil {\n\t\t\t\t\treturn *runtimeUserID\n\t\t\t\t}\n\t\t\t\treturn strconv.FormatInt(userID, 10)\n\t\t\t}(),\n\t\t\tBizType: workflowModel.BizTypeWorkflow,\n\t\t})\n\n\t\tif err != nil {\n\t\t\tunErr := unbinding()\n\t\t\tif unErr != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"unbinding failed, error: %v\", unErr)\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\treturn schema.StreamReaderWithConvert(sr, w.convertToChatFlowRunResponseList(ctx, convertToChatFlowInfo{\n\t\t\tbizID:            bizID,\n\t\t\tconversationID:   conversationID,\n\t\t\troundID:          roundID,\n\t\t\tworkflowID:       workflowID,\n\t\t\tsectionID:        sectionID,\n\t\t\tunbinding:        unbinding,\n\t\t\tuserMessage:      userSchemaMessage,\n\t\t\tsuggestReplyInfo: req.GetSuggestReplyInfo(),\n\t\t})), nil\n\n\t}\n\n\texeCfg := workflowModel.ExecuteConfig{\n\t\tID:          mustParseInt64(req.GetWorkflowID()),\n\t\tFrom:        locator,\n\t\tVersion:     version,\n\t\tOperator:    userID,\n\t\tMode:        ternary.IFElse(isDebug, workflowModel.ExecuteModeDebug, workflowModel.ExecuteModeRelease),\n\t\tAppID:       appID,\n\t\tAgentID:     agentID,\n\t\tConnectorID: connectorID,\n\t\tConnectorUID: func() string {\n\t\t\tif runtimeUserID != nil {\n\t\t\t\treturn *runtimeUserID\n\t\t\t}\n\t\t\treturn strconv.FormatInt(userID, 10)\n\t\t}(),\n\t\tTaskType:      workflowModel.TaskTypeForeground,\n\t\tSyncPattern:   workflowModel.SyncPatternStream,\n\t\tInputFailFast: true,\n\t\tBizType:       workflowModel.BizTypeWorkflow,\n\n\t\tConversationID: ptr.Of(conversationID),\n\t\tRoundID:        ptr.Of(roundID),\n\t\tInitRoundID:    ptr.Of(roundID),\n\t\tSectionID:      ptr.Of(sectionID),\n\n\t\tUserMessage: userSchemaMessage,\n\t\tCancellable: isDebug,\n\t}\n\n\thistoryMessages, err := makeChatFlowHistoryMessages(ctx, bizID, conversationID, userID, sectionID, connectorID, messages[:len(req.GetAdditionalMessages())-1])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(historyMessages) > 0 {\n\t\tg := taskgroup.NewTaskGroup(ctx, len(historyMessages))\n\t\tfor _, hm := range historyMessages {\n\t\t\thMsg := hm\n\t\t\tg.Go(func() error {\n\t\t\t\t_, err := messageClient.Create(ctx, hMsg)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t})\n\t\t}\n\t\terr = g.Wait()\n\t\tif err != nil {\n\t\t\tlogs.CtxWarnf(ctx, \"create history message failed, err=%v\", err)\n\t\t}\n\t}\n\tparameters[vo.UserInputKey], err = w.makeChatFlowUserInput(ctx, lastUserMessage)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsr, err := GetWorkflowDomainSVC().StreamExecute(ctx, exeCfg, parameters)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn schema.StreamReaderWithConvert(sr, w.convertToChatFlowRunResponseList(ctx, convertToChatFlowInfo{\n\t\tbizID:            bizID,\n\t\tconversationID:   conversationID,\n\t\troundID:          roundID,\n\t\tworkflowID:       workflowID,\n\t\tsectionID:        sectionID,\n\t\tunbinding:        unbinding,\n\t\tuserMessage:      userSchemaMessage,\n\t\tsuggestReplyInfo: req.GetSuggestReplyInfo(),\n\t})), nil\n\n}\n\nfunc (w *ApplicationService) convertToChatFlowRunResponseList(ctx context.Context, info convertToChatFlowInfo) func(msg *entity.Message) (responses []*workflow.ChatFlowRunResponse, err error) {\n\tvar (\n\t\tbizID          = info.bizID\n\t\tconversationID = info.conversationID\n\t\troundID        = info.roundID\n\t\tworkflowID     = info.workflowID\n\t\tsectionID      = info.sectionID\n\t\tunbinding      = info.unbinding\n\t\tuserMessage    = info.userMessage\n\t\tspaceID        int64\n\t\texecuteID      int64\n\n\t\tintermediateMessage *message.Message\n\n\t\tneedRegeneratedMessage = true\n\n\t\tmessageDetailID int64\n\t)\n\n\treturn func(msg *entity.Message) (responses []*workflow.ChatFlowRunResponse, err error) {\n\t\tdefer func() {\n\t\t\tif err != nil {\n\t\t\t\tif unbinding != nil {\n\t\t\t\t\tunErr := unbinding()\n\t\t\t\t\tif unErr != nil {\n\t\t\t\t\t\tlogs.CtxErrorf(ctx, \"unbinding failed, error: %v\", unErr)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif intermediateMessage != nil {\n\t\t\t\t\t_, mErr := crossmessage.DefaultSVC().Create(ctx, intermediateMessage)\n\t\t\t\t\tif mErr != nil {\n\t\t\t\t\t\tlogs.CtxWarnf(ctx, \"create message faield, err: %v\", err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}()\n\n\t\tif msg.StateMessage != nil {\n\t\t\tif executeID > 0 && executeID != msg.StateMessage.ExecuteID {\n\t\t\t\treturn nil, schema.ErrNoValue\n\t\t\t}\n\t\t\tswitch msg.StateMessage.Status {\n\t\t\tcase entity.WorkflowSuccess:\n\t\t\t\tsuggestWorkflowResponse := make([]*workflow.ChatFlowRunResponse, 0, 3)\n\t\t\t\tif info.suggestReplyInfo != nil && info.suggestReplyInfo.IsSetSuggestReplyMode() && info.suggestReplyInfo.GetSuggestReplyMode() != workflow.SuggestReplyInfoMode_Disable {\n\t\t\t\t\tsInfo := &vo.SuggestInfo{\n\t\t\t\t\t\tUserInput:    userMessage,\n\t\t\t\t\t\tAnswerInput:  schema.AssistantMessage(intermediateMessage.Content, nil),\n\t\t\t\t\t\tPersonaInput: info.suggestReplyInfo.CustomizedSuggestPrompt,\n\t\t\t\t\t}\n\n\t\t\t\t\tsuggests, err := GetWorkflowDomainSVC().Suggest(ctx, sInfo)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\tfor index, s := range suggests {\n\t\t\t\t\t\tsuggestWorkflowResponse = append(suggestWorkflowResponse, &workflow.ChatFlowRunResponse{\n\t\t\t\t\t\t\tEvent: string(vo.ChatFlowMessageCompleted),\n\t\t\t\t\t\t\tData: func() string {\n\t\t\t\t\t\t\t\ts, _ := sonic.MarshalString(&vo.MessageDetail{\n\t\t\t\t\t\t\t\t\tID:             strconv.FormatInt(time.Now().UnixNano()+int64(index), 10),\n\t\t\t\t\t\t\t\t\tChatID:         strconv.FormatInt(roundID, 10),\n\t\t\t\t\t\t\t\t\tConversationID: strconv.FormatInt(conversationID, 10),\n\t\t\t\t\t\t\t\t\tSectionID:      strconv.FormatInt(sectionID, 10),\n\t\t\t\t\t\t\t\t\tBotID:          strconv.FormatInt(bizID, 10),\n\t\t\t\t\t\t\t\t\tRole:           string(schema.Assistant),\n\t\t\t\t\t\t\t\t\tType:           \"follow_up\",\n\t\t\t\t\t\t\t\t\tContentType:    \"text\",\n\t\t\t\t\t\t\t\t\tContent:        s,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\treturn s\n\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t})\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tchatDoneEvent := &vo.ChatFlowDetail{\n\t\t\t\t\tID:             strconv.FormatInt(roundID, 10),\n\t\t\t\t\tConversationID: strconv.FormatInt(conversationID, 10),\n\t\t\t\t\tSectionID:      strconv.FormatInt(sectionID, 10),\n\t\t\t\t\tBotID:          strconv.FormatInt(bizID, 10),\n\t\t\t\t\tStatus:         vo.Completed,\n\t\t\t\t\tExecuteID:      strconv.FormatInt(executeID, 10),\n\t\t\t\t}\n\n\t\t\t\tif msg.StateMessage.Usage != nil {\n\t\t\t\t\tchatDoneEvent.Usage = &vo.Usage{\n\t\t\t\t\t\tInputTokens:  &msg.StateMessage.Usage.InputTokens,\n\t\t\t\t\t\tOutputTokens: &msg.StateMessage.Usage.OutputTokens,\n\t\t\t\t\t\tTokenCount:   ptr.Of(msg.StateMessage.Usage.OutputTokens + msg.StateMessage.Usage.OutputTokens),\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdata, err := sonic.MarshalString(chatDoneEvent)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tdoneData, err := sonic.MarshalString(map[string]interface{}{\n\t\t\t\t\t\"debug_url\": debugutil.GetWorkflowDebugURL(ctx, workflowID, spaceID, executeID),\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tif unbinding != nil {\n\t\t\t\t\tunErr := unbinding()\n\t\t\t\t\tif unErr != nil {\n\t\t\t\t\t\tlogs.CtxErrorf(ctx, \"unbinding failed, error: %v\", unErr)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn append(suggestWorkflowResponse, []*workflow.ChatFlowRunResponse{\n\t\t\t\t\t{\n\t\t\t\t\t\tEvent: string(vo.ChatFlowCompleted),\n\t\t\t\t\t\tData:  data,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tEvent: string(vo.ChatFlowDone),\n\t\t\t\t\t\tData:  doneData,\n\t\t\t\t\t},\n\t\t\t\t}...), nil\n\n\t\t\tcase entity.WorkflowFailed:\n\t\t\t\tvar wfe vo.WorkflowError\n\t\t\t\tif !errors.As(msg.StateMessage.LastError, &wfe) {\n\t\t\t\t\tpanic(\"stream run last error is not a WorkflowError\")\n\t\t\t\t}\n\n\t\t\t\tchatFailedEvent := &vo.ErrorDetail{\n\t\t\t\t\tCode:     strconv.Itoa(int(wfe.Code())),\n\t\t\t\t\tMsg:      wfe.Msg(),\n\t\t\t\t\tDebugUrl: wfe.DebugURL(),\n\t\t\t\t}\n\t\t\t\tdata, err := sonic.MarshalString(chatFailedEvent)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tif intermediateMessage != nil {\n\t\t\t\t\t_, err := crossmessage.DefaultSVC().Create(ctx, intermediateMessage)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif unbinding != nil {\n\t\t\t\t\tunErr := unbinding()\n\t\t\t\t\tif unErr != nil {\n\t\t\t\t\t\tlogs.CtxErrorf(ctx, \"unbinding failed, error: %v\", unErr)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn []*workflow.ChatFlowRunResponse{\n\t\t\t\t\t{\n\t\t\t\t\t\tEvent: string(vo.ChatFlowError),\n\t\t\t\t\t\tData:  data,\n\t\t\t\t\t},\n\t\t\t\t}, err\n\n\t\t\tcase entity.WorkflowCancel:\n\t\t\t\tif intermediateMessage != nil {\n\t\t\t\t\t_, err := crossmessage.DefaultSVC().Create(ctx, intermediateMessage)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif unbinding != nil {\n\t\t\t\t\tunErr := unbinding()\n\t\t\t\t\tif unErr != nil {\n\t\t\t\t\t\tlogs.CtxErrorf(ctx, \"unbinding failed, error: %v\", unErr)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tcase entity.WorkflowInterrupted:\n\n\t\t\t\tvar (\n\t\t\t\t\tinterruptEvent = msg.StateMessage.InterruptEvent\n\t\t\t\t\tinterruptData  = interruptEvent.InterruptData\n\t\t\t\t\tmsgContent     string\n\t\t\t\t\tcontentType    message.ContentType\n\t\t\t\t)\n\n\t\t\t\tif interruptEvent.EventType == entity.InterruptEventInput {\n\t\t\t\t\tmsgContent, contentType, err = renderInputCardDSL(interruptData)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t} else if interruptEvent.EventType == entity.InterruptEventQuestion {\n\t\t\t\t\tmsgContent, contentType, err = renderQACardDSL(interruptData)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn nil, fmt.Errorf(\"unsupported interrupt event type: %s\", interruptEvent.EventType)\n\t\t\t\t}\n\n\t\t\t\t_, err = crossmessage.DefaultSVC().Create(ctx, &message.Message{\n\t\t\t\t\tAgentID:        bizID,\n\t\t\t\t\tRunID:          roundID,\n\t\t\t\t\tSectionID:      sectionID,\n\t\t\t\t\tContent:        msgContent,\n\t\t\t\t\tConversationID: conversationID,\n\t\t\t\t\tRole:           schema.Assistant,\n\t\t\t\t\tMessageType:    message.MessageTypeAnswer,\n\t\t\t\t\tContentType:    contentType,\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tcompleteData, _ := sonic.MarshalString(&vo.MessageDetail{\n\t\t\t\t\tID:             strconv.FormatInt(interruptEvent.ID, 10),\n\t\t\t\t\tChatID:         strconv.FormatInt(roundID, 10),\n\t\t\t\t\tConversationID: strconv.FormatInt(conversationID, 10),\n\t\t\t\t\tSectionID:      strconv.FormatInt(sectionID, 10),\n\t\t\t\t\tBotID:          strconv.FormatInt(bizID, 10),\n\t\t\t\t\tRole:           string(schema.Assistant),\n\t\t\t\t\tType:           string(entity.Answer),\n\t\t\t\t\tContentType:    string(contentType),\n\t\t\t\t\tContent:        msgContent,\n\t\t\t\t})\n\n\t\t\t\tif contentType == message.ContentTypeText {\n\t\t\t\t\tresponses = append(responses, &workflow.ChatFlowRunResponse{\n\t\t\t\t\t\tEvent: string(vo.ChatFlowMessageDelta),\n\t\t\t\t\t\tData:  completeData,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tresponses = append(responses, &workflow.ChatFlowRunResponse{\n\t\t\t\t\tEvent: string(vo.ChatFlowMessageCompleted),\n\t\t\t\t\tData:  completeData,\n\t\t\t\t})\n\n\t\t\t\tdata, _ := sonic.MarshalString(&vo.ChatFlowDetail{\n\t\t\t\t\tID:             strconv.FormatInt(roundID, 10),\n\t\t\t\t\tConversationID: strconv.FormatInt(conversationID, 10),\n\t\t\t\t\tSectionID:      strconv.FormatInt(sectionID, 10),\n\t\t\t\t\tStatus:         vo.RequiresAction,\n\t\t\t\t\tExecuteID:      strconv.FormatInt(executeID, 10),\n\t\t\t\t})\n\n\t\t\t\tdoneData, _ := sonic.MarshalString(map[string]interface{}{\n\t\t\t\t\t\"debug_url\": debugutil.GetWorkflowDebugURL(ctx, workflowID, spaceID, executeID),\n\t\t\t\t})\n\n\t\t\t\tresponses = append(responses, &workflow.ChatFlowRunResponse{\n\t\t\t\t\tEvent: string(vo.ChatFlowRequiresAction),\n\t\t\t\t\tData:  data,\n\t\t\t\t}, &workflow.ChatFlowRunResponse{\n\t\t\t\t\tEvent: string(vo.ChatFlowDone),\n\t\t\t\t\tData:  doneData,\n\t\t\t\t})\n\n\t\t\t\terr = GetWorkflowDomainSVC().BindConvRelatedInfo(ctx, conversationID, entity.ConvRelatedInfo{\n\t\t\t\t\tEventID: msg.StateMessage.InterruptEvent.ID, ExecID: executeID, NodeType: msg.StateMessage.InterruptEvent.NodeType,\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\treturn responses, nil\n\n\t\t\tcase entity.WorkflowRunning:\n\t\t\t\texecuteID = msg.StateMessage.ExecuteID\n\t\t\t\tspaceID = msg.StateMessage.SpaceID\n\n\t\t\t\tresponses = make([]*workflow.ChatFlowRunResponse, 0)\n\n\t\t\t\tchatEvent := &vo.ChatFlowDetail{\n\t\t\t\t\tID:             strconv.FormatInt(roundID, 10),\n\t\t\t\t\tConversationID: strconv.FormatInt(conversationID, 10),\n\t\t\t\t\tStatus:         vo.Created,\n\t\t\t\t\tExecuteID:      strconv.FormatInt(executeID, 10),\n\t\t\t\t\tSectionID:      strconv.FormatInt(sectionID, 10),\n\t\t\t\t}\n\n\t\t\t\tdata, _ := sonic.MarshalString(chatEvent)\n\t\t\t\tresponses = append(responses, &workflow.ChatFlowRunResponse{\n\t\t\t\t\tEvent: string(vo.ChatFlowCreated),\n\t\t\t\t\tData:  data,\n\t\t\t\t})\n\n\t\t\t\tchatEvent.Status = vo.InProgress\n\t\t\t\tdata, _ = sonic.MarshalString(chatEvent)\n\t\t\t\tresponses = append(responses, &workflow.ChatFlowRunResponse{\n\t\t\t\t\tEvent: string(vo.ChatFlowInProgress),\n\t\t\t\t\tData:  data,\n\t\t\t\t})\n\t\t\t\treturn responses, nil\n\n\t\t\tdefault:\n\t\t\t\treturn nil, schema.ErrNoValue\n\t\t\t}\n\t\t}\n\t\tif msg.DataMessage != nil {\n\t\t\tif msg.Type != entity.Answer {\n\t\t\t\treturn nil, schema.ErrNoValue\n\t\t\t}\n\t\t\tif executeID > 0 && executeID != msg.DataMessage.ExecuteID {\n\t\t\t\treturn nil, schema.ErrNoValue\n\t\t\t}\n\t\t\tif msg.DataMessage.NodeType == entity.NodeTypeQuestionAnswer || msg.DataMessage.NodeType == entity.NodeTypeInputReceiver {\n\t\t\t\treturn nil, schema.ErrNoValue\n\t\t\t}\n\t\t\tdataMessage := msg.DataMessage\n\n\t\t\tif needRegeneratedMessage {\n\t\t\t\tid, err := w.IDGenerator.GenID(ctx)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tintermediateMessage = &message.Message{\n\t\t\t\t\tID:             id,\n\t\t\t\t\tAgentID:        bizID,\n\t\t\t\t\tRunID:          roundID,\n\t\t\t\t\tSectionID:      sectionID,\n\t\t\t\t\tConversationID: conversationID,\n\t\t\t\t\tRole:           schema.Assistant,\n\t\t\t\t\tMessageType:    message.MessageTypeAnswer,\n\t\t\t\t\tContentType:    message.ContentTypeText,\n\t\t\t\t}\n\t\t\t\tmessageDetailID = id\n\t\t\t\tneedRegeneratedMessage = false\n\n\t\t\t}\n\n\t\t\tintermediateMessage.Content += msg.Content\n\n\t\t\tdeltaData, _ := sonic.MarshalString(&vo.MessageDetail{\n\t\t\t\tID:             strconv.FormatInt(messageDetailID, 10),\n\t\t\t\tChatID:         strconv.FormatInt(roundID, 10),\n\t\t\t\tConversationID: strconv.FormatInt(conversationID, 10),\n\t\t\t\tSectionID:      strconv.FormatInt(sectionID, 10),\n\t\t\t\tBotID:          strconv.FormatInt(bizID, 10),\n\t\t\t\tRole:           string(dataMessage.Role),\n\t\t\t\tType:           string(dataMessage.Type),\n\t\t\t\tContentType:    string(message.ContentTypeText),\n\t\t\t\tContent:        msg.Content,\n\t\t\t})\n\n\t\t\tif !msg.Last {\n\t\t\t\treturn []*workflow.ChatFlowRunResponse{\n\t\t\t\t\t{\n\t\t\t\t\t\tEvent: string(vo.ChatFlowMessageDelta),\n\t\t\t\t\t\tData:  deltaData,\n\t\t\t\t\t},\n\t\t\t\t}, nil\n\t\t\t}\n\n\t\t\t_, err = crossmessage.DefaultSVC().Create(ctx, intermediateMessage)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tcompleteData, _ := sonic.MarshalString(&vo.MessageDetail{\n\t\t\t\tID:             strconv.FormatInt(messageDetailID, 10),\n\t\t\t\tChatID:         strconv.FormatInt(roundID, 10),\n\t\t\t\tConversationID: strconv.FormatInt(conversationID, 10),\n\t\t\t\tSectionID:      strconv.FormatInt(sectionID, 10),\n\t\t\t\tBotID:          strconv.FormatInt(bizID, 10),\n\t\t\t\tRole:           string(dataMessage.Role),\n\t\t\t\tType:           string(dataMessage.Type),\n\t\t\t\tContentType:    string(message.ContentTypeText),\n\t\t\t\tContent:        intermediateMessage.Content,\n\t\t\t})\n\t\t\tneedRegeneratedMessage = true\n\n\t\t\treturn []*workflow.ChatFlowRunResponse{\n\t\t\t\t{\n\t\t\t\t\tEvent: string(vo.ChatFlowMessageDelta),\n\t\t\t\t\tData:  deltaData,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tEvent: string(vo.ChatFlowMessageCompleted),\n\t\t\t\t\tData:  completeData,\n\t\t\t\t},\n\t\t\t}, nil\n\n\t\t}\n\n\t\treturn nil, err\n\t}\n}\n\nfunc (w *ApplicationService) makeChatFlowUserInput(ctx context.Context, message *workflow.EnterMessage) (string, error) {\n\ttype content struct {\n\t\tType   string  `json:\"type\"`\n\t\tFileID *string `json:\"file_id\"`\n\t\tText   *string `json:\"text\"`\n\t}\n\tif message.ContentType == \"text\" {\n\t\treturn message.Content, nil\n\t} else if message.ContentType == \"object_string\" {\n\t\tcontents := make([]content, 0)\n\t\terr := sonic.UnmarshalString(message.Content, &contents)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\ttexts := make([]string, 0)\n\t\turls := make([]string, 0)\n\t\tfor _, ct := range contents {\n\t\t\tif ct.Text != nil && len(*ct.Text) > 0 {\n\t\t\t\ttexts = append(texts, *ct.Text)\n\t\t\t}\n\t\t\tif ct.FileID != nil && len(*ct.FileID) > 0 {\n\t\t\t\tfileID := mustParseInt64(*ct.FileID)\n\t\t\t\tfile, err := crossupload.DefaultSVC().GetFile(ctx, &service.GetFileRequest{ID: fileID})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn \"\", err\n\t\t\t\t}\n\t\t\t\tif file.File == nil {\n\t\t\t\t\treturn \"\", fmt.Errorf(\"file not found\")\n\t\t\t\t}\n\t\t\t\turls = append(urls, file.File.Url)\n\t\t\t}\n\t\t}\n\n\t\treturn strings.Join(append(texts, urls...), \",\"), nil\n\n\t} else {\n\t\treturn \"\", fmt.Errorf(\"invalid message ccontent type %v\", message.ContentType)\n\t}\n}\n\nfunc makeChatFlowHistoryMessages(ctx context.Context, bizID, conversationID, userID, sectionID, connectorID int64, messages []*workflow.EnterMessage) ([]*message.Message, error) {\n\n\tvar (\n\t\trID       int64\n\t\terr       error\n\t\trunRecord *agententity.RunRecordMeta\n\t)\n\n\thistoryMessages := make([]*message.Message, 0, len(messages))\n\n\tfor _, msg := range messages {\n\t\tif msg.Role == userRole {\n\t\t\trunRecord, err = crossagentrun.DefaultSVC().Create(ctx, &agententity.AgentRunMeta{\n\t\t\t\tAgentID:        bizID,\n\t\t\t\tConversationID: conversationID,\n\t\t\t\tUserID:         strconv.FormatInt(userID, 10),\n\t\t\t\tConnectorID:    connectorID,\n\t\t\t\tSectionID:      sectionID,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\trID = runRecord.ID\n\t\t} else if msg.Role == assistantRole {\n\t\t\tif rID == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t} else {\n\t\t\treturn nil, fmt.Errorf(\"invalid role type %v\", msg.Role)\n\t\t}\n\n\t\tm, err := toConversationMessage(ctx, bizID, conversationID, userID, rID, sectionID, ternary.IFElse(msg.Role == userRole, message.MessageTypeQuestion, message.MessageTypeAnswer), msg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\thistoryMessages = append(historyMessages, m)\n\n\t}\n\treturn historyMessages, nil\n}\n\nfunc (w *ApplicationService) OpenAPICreateConversation(ctx context.Context, req *workflow.CreateConversationRequest) (resp *workflow.CreateConversationResponse, err error) {\n\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tvar (\n\t\tappID      = mustParseInt64(req.GetAppID())\n\t\tapiKeyInfo = ctxutil.GetApiAuthFromCtx(ctx)\n\t\tuserID     = apiKeyInfo.UserID\n\t\tenv        = ternary.IFElse(req.GetDraftMode(), vo.Draft, vo.Online)\n\t\tcID        int64\n\t)\n\n\tcheckResult, err := permission.DefaultSVC().CheckAuthz(ctx, &permission.CheckAuthzData{\n\t\tOperatorID: userID,\n\t\tResourceIdentifier: []*permission.ResourceIdentifier{\n\t\t\t{\n\t\t\t\tType:   permission.ResourceTypeApp,\n\t\t\t\tID:     []int64{mustParseInt64(req.GetAppID())},\n\t\t\t\tAction: permission.ActionRead,\n\t\t\t},\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif checkResult.Decision != permission.Allow {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"no permission\"))\n\t}\n\n\tif !req.GetGetOrCreate() {\n\t\tcID, err = GetWorkflowDomainSVC().UpdateConversation(ctx, env, appID, req.GetConnectorId(), userID, req.GetConversationMame())\n\t} else {\n\t\tvar tplExisted, dcExisted bool\n\t\tvar tplErr, dcErr error\n\t\tvar wg sync.WaitGroup\n\t\twg.Add(2)\n\n\t\tsafego.Go(ctx, func() {\n\t\t\tdefer wg.Done()\n\t\t\t_, tplExisted, tplErr = GetWorkflowDomainSVC().GetTemplateByName(ctx, env, appID, req.GetConversationMame())\n\t\t})\n\n\t\tsafego.Go(ctx, func() {\n\t\t\tdefer wg.Done()\n\t\t\t_, dcExisted, dcErr = GetWorkflowDomainSVC().GetDynamicConversationByName(ctx, env, appID, req.GetConnectorId(), userID, req.GetConversationMame())\n\t\t})\n\n\t\twg.Wait()\n\n\t\tif tplErr != nil {\n\t\t\treturn nil, tplErr\n\t\t}\n\t\tif dcErr != nil {\n\t\t\treturn nil, dcErr\n\t\t}\n\n\t\tif !tplExisted && !dcExisted {\n\t\t\treturn &workflow.CreateConversationResponse{\n\t\t\t\tCode: errno.ErrConversationNotFoundForOperation,\n\t\t\t\tMsg:  \"Conversation not found. Please create a conversation before attempting to perform any related operations.\",\n\t\t\t}, nil\n\t\t}\n\n\t\tcID, _, err = GetWorkflowDomainSVC().GetOrCreateConversation(ctx, env, appID, req.GetConnectorId(), userID, req.GetConversationMame())\n\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcInfo, err := crossconversation.DefaultSVC().GetByID(ctx, cID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.CreateConversationResponse{\n\t\tConversationData: &workflow.ConversationData{\n\t\t\tId:            cID,\n\t\t\tLastSectionID: ptr.Of(cInfo.SectionID),\n\t\t},\n\t}, nil\n}\n\nfunc toConversationMessage(ctx context.Context, bizID, cid, userID, roundID, sectionID int64, messageType message.MessageType, msg *workflow.EnterMessage) (*message.Message, error) {\n\ttype content struct {\n\t\tType   string  `json:\"type\"`\n\t\tFileID *string `json:\"file_id\"`\n\t\tText   *string `json:\"text\"`\n\t}\n\tif msg.ContentType == \"text\" {\n\t\treturn &message.Message{\n\t\t\tRole:           schema.User,\n\t\t\tConversationID: cid,\n\t\t\tAgentID:        bizID,\n\t\t\tRunID:          roundID,\n\t\t\tContent:        msg.Content,\n\t\t\tContentType:    message.ContentTypeText,\n\t\t\tMessageType:    messageType,\n\t\t\tUserID:         strconv.FormatInt(userID, 10),\n\t\t\tSectionID:      sectionID,\n\t\t}, nil\n\n\t} else if msg.ContentType == \"object_string\" {\n\t\tcontents := make([]*content, 0)\n\t\terr := sonic.UnmarshalString(msg.Content, &contents)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tm := &message.Message{\n\t\t\tRole:           schema.User,\n\t\t\tMessageType:    messageType,\n\t\t\tConversationID: cid,\n\t\t\tAgentID:        bizID,\n\t\t\tUserID:         strconv.FormatInt(userID, 10),\n\t\t\tRunID:          roundID,\n\t\t\tContentType:    message.ContentTypeMix,\n\t\t\tDisplayContent: msg.Content,\n\t\t\tMultiContent:   make([]*message.InputMetaData, 0, len(contents)),\n\t\t\tSectionID:      sectionID,\n\t\t}\n\n\t\tfor _, ct := range contents {\n\t\t\tif ct.Text != nil {\n\t\t\t\tm.MultiContent = append(m.MultiContent, &message.InputMetaData{\n\t\t\t\t\tType: message.InputTypeText,\n\t\t\t\t\tText: *ct.Text,\n\t\t\t\t})\n\t\t\t} else if ct.FileID != nil {\n\t\t\t\tfileID := mustParseInt64(*ct.FileID)\n\t\t\t\tfile, err := crossupload.DefaultSVC().GetFile(ctx, &service.GetFileRequest{ID: fileID})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tif file.File == nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"file not found\")\n\t\t\t\t}\n\n\t\t\t\tm.MultiContent = append(m.MultiContent, &message.InputMetaData{\n\t\t\t\t\tType: message.InputType(ct.Type),\n\t\t\t\t\tFileData: []*message.FileData{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUrl:  file.File.Url,\n\t\t\t\t\t\t\tURI:  file.File.TosURI,\n\t\t\t\t\t\t\tName: file.File.Name,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid input type %v\", ct.Type)\n\t\t\t}\n\t\t}\n\t\treturn m, nil\n\t} else {\n\t\treturn nil, fmt.Errorf(\"invalid message content type %v\", msg.ContentType)\n\t}\n}\n\nfunc toSchemaMessage(ctx context.Context, msg *workflow.EnterMessage) (*schema.Message, error) {\n\ttype content struct {\n\t\tType   string  `json:\"type\"`\n\t\tFileID *string `json:\"file_id\"`\n\t\tText   *string `json:\"text\"`\n\t}\n\tif msg.ContentType == \"text\" {\n\t\treturn &schema.Message{\n\t\t\tRole:    schema.User,\n\t\t\tContent: msg.Content,\n\t\t}, nil\n\n\t} else if msg.ContentType == \"object_string\" {\n\t\tcontents := make([]*content, 0)\n\t\terr := sonic.UnmarshalString(msg.Content, &contents)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tm := &schema.Message{\n\t\t\tRole:         schema.User,\n\t\t\tMultiContent: make([]schema.ChatMessagePart, 0, len(contents)),\n\t\t}\n\n\t\tfor _, ct := range contents {\n\t\t\tif ct.Text != nil {\n\t\t\t\tif len(*ct.Text) == 0 {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tm.MultiContent = append(m.MultiContent, schema.ChatMessagePart{\n\t\t\t\t\tType: schema.ChatMessagePartTypeText,\n\t\t\t\t\tText: *ct.Text,\n\t\t\t\t})\n\t\t\t} else if ct.FileID != nil {\n\t\t\t\tfileID := mustParseInt64(*ct.FileID)\n\t\t\t\tfile, err := crossupload.DefaultSVC().GetFile(ctx, &service.GetFileRequest{ID: fileID})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tif file.File == nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"file not found\")\n\t\t\t\t}\n\t\t\t\tswitch ct.Type {\n\t\t\t\tcase \"file\":\n\t\t\t\t\tm.MultiContent = append(m.MultiContent, schema.ChatMessagePart{\n\t\t\t\t\t\tType: schema.ChatMessagePartTypeFileURL,\n\t\t\t\t\t\tFileURL: &schema.ChatMessageFileURL{\n\t\t\t\t\t\t\tURL: file.File.Url,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\tcase \"image\":\n\t\t\t\t\tm.MultiContent = append(m.MultiContent, schema.ChatMessagePart{\n\t\t\t\t\t\tType: schema.ChatMessagePartTypeImageURL,\n\t\t\t\t\t\tImageURL: &schema.ChatMessageImageURL{\n\t\t\t\t\t\t\tURL: file.File.Url,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\tcase \"audio\":\n\t\t\t\t\tm.MultiContent = append(m.MultiContent, schema.ChatMessagePart{\n\t\t\t\t\t\tType: schema.ChatMessagePartTypeAudioURL,\n\t\t\t\t\t\tAudioURL: &schema.ChatMessageAudioURL{\n\t\t\t\t\t\t\tURL: file.File.Url,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\tcase \"video\":\n\t\t\t\t\tm.MultiContent = append(m.MultiContent, schema.ChatMessagePart{\n\t\t\t\t\t\tType: schema.ChatMessagePartTypeVideoURL,\n\t\t\t\t\t\tVideoURL: &schema.ChatMessageVideoURL{\n\t\t\t\t\t\t\tURL: file.File.Url,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid input type %v\", ct.Type)\n\t\t\t}\n\t\t}\n\t\treturn m, nil\n\t} else {\n\t\treturn nil, fmt.Errorf(\"invalid message content type %v\", msg.ContentType)\n\t}\n}\n\ntype convertToChatFlowInfo struct {\n\tuserMessage      *schema.Message\n\tbizID            int64\n\tconversationID   int64\n\troundID          int64\n\tworkflowID       int64\n\tsectionID        int64\n\tunbinding        func() error\n\tsuggestReplyInfo *workflow.SuggestReplyInfo\n}\n\nfunc parserInput(inputString string) string {\n\tresult := map[string]any{}\n\tlines := strings.Split(inputString, \"\\n\")\n\tfor _, line := range lines {\n\t\tline = strings.TrimSpace(line)\n\t\tkeyValue := strings.SplitN(line, \":\", 2)\n\t\tif len(keyValue) == 2 {\n\t\t\tresult[keyValue[0]] = keyValue[1]\n\t\t}\n\t}\n\tstr, _ := sonic.MarshalString(result)\n\n\treturn str\n\n}\n\nfunc renderInputCardDSL(c string) (string, message.ContentType, error) {\n\ttype contentInfo struct {\n\t\tContent string `json:\"content\"`\n\t}\n\ttype field struct {\n\t\tType     string `json:\"type\"`\n\t\tName     string `json:\"name\"`\n\t\tRequired bool   `json:\"required\"`\n\t}\n\ttype inputCard struct {\n\t\tCardType     int64             `json:\"card_type\"`\n\t\tContentType  int64             `json:\"content_type\"`\n\t\tResponseType string            `json:\"response_type\"`\n\t\tTemplateId   int64             `json:\"template_id\"`\n\t\tTemplateURL  string            `json:\"template_url\"`\n\t\tData         string            `json:\"data\"`\n\t\tXProperties  map[string]string `json:\"x_properties\"`\n\t}\n\n\tinfo := &contentInfo{}\n\terr := sonic.UnmarshalString(c, info)\n\tif err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\n\tfields := make([]*field, 0)\n\terr = sonic.UnmarshalString(info.Content, &fields)\n\tif err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\n\tiCard := defaultCard()\n\tiCard.Variables[\"5fJt3qKpSz\"].(map[string]any)[\"defaultValue\"] = fields\n\tiCardString, _ := sonic.MarshalString(iCard)\n\n\trCard := &inputCard{\n\t\tCardType:     3,\n\t\tContentType:  50,\n\t\tResponseType: \"card\",\n\t\tTemplateId:   7383997384420262000,\n\t\tTemplateURL:  \"\",\n\t\tData:         iCardString,\n\t}\n\n\ttype props struct {\n\t\tCardType      string   `json:\"card_type\"`\n\t\tInputCardData []*field `json:\"input_card_data\"`\n\t}\n\n\tpropsString, _ := sonic.MarshalString(props{\n\t\tCardType:      \"INPUT\",\n\t\tInputCardData: fields,\n\t})\n\n\trCard.XProperties = map[string]string{\n\t\t\"workflow_card_info\": propsString,\n\t}\n\trCardString, _ := sonic.MarshalString(rCard)\n\n\treturn rCardString, message.ContentTypeCard, nil\n\n}\n\nfunc renderQACardDSL(c string) (string, message.ContentType, error) {\n\ttype contentInfo struct {\n\t\tMessages []struct {\n\t\t\tType        string `json:\"type\"`\n\t\t\tContentType string `json:\"content_type\"`\n\t\t\tContent     any    `json:\"content\"`\n\t\t} `json:\"messages\"`\n\t}\n\n\tinfo := &contentInfo{}\n\terr := sonic.UnmarshalString(c, info)\n\tif err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\n\tif len(info.Messages) == 0 {\n\t\treturn \"\", \"\", fmt.Errorf(\"no input card data\")\n\t}\n\n\tif info.Messages[0].ContentType == \"text\" {\n\t\treturn info.Messages[0].Content.(string), message.ContentTypeText, nil\n\t}\n\n\ttype field struct {\n\t\tName string `json:\"name\"`\n\t}\n\ttype key struct {\n\t\tKey string `json:\"key\"`\n\t}\n\n\ttype inputCard struct {\n\t\tCardType     int64             `json:\"card_type\"`\n\t\tContentType  int64             `json:\"content_type\"`\n\t\tResponseType string            `json:\"response_type\"`\n\t\tTemplateId   int64             `json:\"template_id\"`\n\t\tTemplateURL  string            `json:\"template_url\"`\n\t\tData         string            `json:\"data\"`\n\t\tXProperties  map[string]string `json:\"x_properties\"`\n\t}\n\tiCard := defaultCard()\n\tkeys := make([]*key, 0)\n\tfields := make([]*field, 0)\n\n\tcontent := info.Messages[0].Content\n\ttype contentOption struct {\n\t\tOptions  []*field `json:\"options\"`\n\t\tQuestion string   `json:\"question\"`\n\t}\n\n\tcontentString, err := sonic.MarshalString(content)\n\tif err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\n\tcontentOptionInfo := &contentOption{}\n\terr = sonic.UnmarshalString(contentString, contentOptionInfo)\n\tif err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\n\tfor _, op := range contentOptionInfo.Options {\n\t\tkeys = append(keys, &key{Key: op.Name})\n\t\tfields = append(fields, &field{Name: op.Name})\n\t}\n\n\tiCard.Variables[\"5fJt3qKpSz\"].(map[string]any)[\"defaultValue\"] = map[string]any{\n\t\t\"description\": contentOptionInfo.Question,\n\t\t\"list\":        keys,\n\t}\n\tiCardString, _ := sonic.MarshalString(iCard)\n\n\trCard := &inputCard{\n\t\tCardType:     3,\n\t\tContentType:  50,\n\t\tResponseType: \"card\",\n\t\tTemplateId:   7383997384420262000,\n\t\tTemplateURL:  \"\",\n\t\tData:         iCardString,\n\t}\n\n\ttype props struct {\n\t\tCardType         string `json:\"card_type\"`\n\t\tQuestionCardData struct {\n\t\t\tTitle   string   `json:\"Title\"`\n\t\t\tOptions []*field `json:\"Options\"`\n\t\t} `json:\"question_card_data\"`\n\t}\n\n\tpropsString, _ := sonic.MarshalString(props{\n\t\tCardType: \"QUESTION\",\n\t\tQuestionCardData: struct {\n\t\t\tTitle   string   `json:\"Title\"`\n\t\t\tOptions []*field `json:\"Options\"`\n\t\t}{Title: contentOptionInfo.Question, Options: fields},\n\t})\n\n\trCard.XProperties = map[string]string{\n\t\t\"workflow_card_info\": propsString,\n\t}\n\trCardString, _ := sonic.MarshalString(rCard)\n\n\treturn rCardString, message.ContentTypeCard, nil\n\n}\n"
  },
  {
    "path": "backend/application/workflow/chatflow_test.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage workflow\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"testing\"\n\n\t\"github.com/cloudwego/eino/schema\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"go.uber.org/mock/gomock\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/workflow\"\n\tcrossagentrun \"github.com/coze-dev/coze-studio/backend/crossdomain/agentrun\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/agentrun/agentrunmock\"\n\tmessageentity \"github.com/coze-dev/coze-studio/backend/crossdomain/message/model\"\n\tcrossupload \"github.com/coze-dev/coze-studio/backend/crossdomain/upload\"\n\t\"github.com/coze-dev/coze-studio/backend/crossdomain/upload/uploadmock\"\n\tagententity \"github.com/coze-dev/coze-studio/backend/domain/conversation/agentrun/entity\"\n\tuploadentity \"github.com/coze-dev/coze-studio/backend/domain/upload/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/upload/service\"\n)\n\nfunc TestApplicationService_makeChatFlowUserInput(t *testing.T) {\n\tctx := context.Background()\n\tctrl := gomock.NewController(t)\n\tdefer ctrl.Finish()\n\n\tmockUpload := uploadmock.NewMockUploader(ctrl)\n\tcrossupload.SetDefaultSVC(mockUpload)\n\n\ttests := []struct {\n\t\tname      string\n\t\tmessage   *workflow.EnterMessage\n\t\tsetupMock func()\n\t\texpected  string\n\t\texpectErr bool\n\t}{\n\t\t{\n\t\t\tname: \"content type text\",\n\t\t\tmessage: &workflow.EnterMessage{\n\t\t\t\tContentType: \"text\",\n\t\t\t\tContent:     \"hello\",\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpected:  \"hello\",\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"content type object_string with text\",\n\t\t\tmessage: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"text\", \"text\": \"hello world\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpected:  \"hello world\",\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"content type object_string with file\",\n\t\t\tmessage: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"file\", \"file_id\": \"123\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 123}).Return(&service.GetFileResponse{\n\t\t\t\t\tFile: &uploadentity.File{Url: \"https://example.com/file\"},\n\t\t\t\t}, nil)\n\t\t\t},\n\t\t\texpected:  \"https://example.com/file\",\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"content type object_string with text and file\",\n\t\t\tmessage: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"text\", \"text\": \"see this file\"}, {\"type\": \"file\", \"file_id\": \"123\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 123}).Return(&service.GetFileResponse{\n\t\t\t\t\tFile: &uploadentity.File{Url: \"https://example.com/file\"},\n\t\t\t\t}, nil)\n\t\t\t},\n\t\t\texpected:  \"see this file,https://example.com/file\",\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"get file error\",\n\t\t\tmessage: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"file\", \"file_id\": \"123\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 123}).Return(nil, errors.New(\"get file error\"))\n\t\t\t},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"file not found\",\n\t\t\tmessage: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"file\", \"file_id\": \"123\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 123}).Return(&service.GetFileResponse{\n\t\t\t\t\tFile: nil,\n\t\t\t\t}, nil)\n\t\t\t},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid content type\",\n\t\t\tmessage: &workflow.EnterMessage{\n\t\t\t\tContentType: \"invalid\",\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid json\",\n\t\t\tmessage: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `invalid-json`,\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpectErr: true,\n\t\t},\n\t}\n\n\tw := &ApplicationService{}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\ttt.setupMock()\n\t\t\tresult, err := w.makeChatFlowUserInput(ctx, tt.message)\n\t\t\tif tt.expectErr {\n\t\t\t\tassert.Error(t, err)\n\t\t\t} else {\n\t\t\t\tassert.NoError(t, err)\n\t\t\t\tassert.Equal(t, tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc Test_toConversationMessage(t *testing.T) {\n\tctx := context.Background()\n\tctrl := gomock.NewController(t)\n\tdefer ctrl.Finish()\n\n\tmockUpload := uploadmock.NewMockUploader(ctrl)\n\tcrossupload.SetDefaultSVC(mockUpload)\n\n\tbizID, cid, userID, roundID, sectionID := int64(2), int64(1), int64(4), int64(3), int64(5)\n\n\ttests := []struct {\n\t\tname        string\n\t\tmsg         *workflow.EnterMessage\n\t\tmessageType messageentity.MessageType\n\t\tsetupMock   func()\n\t\texpected    *messageentity.Message\n\t\texpectErr   bool\n\t}{\n\t\t{\n\t\t\tname: \"content type text\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"text\",\n\t\t\t\tContent:     \"hello\",\n\t\t\t},\n\t\t\tmessageType: messageentity.MessageTypeQuestion,\n\t\t\tsetupMock:   func() {},\n\t\t\texpected: &messageentity.Message{\n\t\t\t\tRole:           schema.User,\n\t\t\t\tConversationID: cid,\n\t\t\t\tAgentID:        bizID,\n\t\t\t\tRunID:          roundID,\n\t\t\t\tContent:        \"hello\",\n\t\t\t\tContentType:    messageentity.ContentTypeText,\n\t\t\t\tMessageType:    messageentity.MessageTypeQuestion,\n\t\t\t\tUserID:         strconv.FormatInt(userID, 10),\n\t\t\t\tSectionID:      sectionID,\n\t\t\t},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"content type object_string with text\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"text\", \"text\": \"hello\"}]`,\n\t\t\t},\n\t\t\tmessageType: messageentity.MessageTypeQuestion,\n\t\t\tsetupMock:   func() {},\n\t\t\texpected: &messageentity.Message{\n\t\t\t\tRole:           schema.User,\n\t\t\t\tMessageType:    messageentity.MessageTypeQuestion,\n\t\t\t\tConversationID: cid,\n\t\t\t\tAgentID:        bizID,\n\t\t\t\tUserID:         strconv.FormatInt(userID, 10),\n\t\t\t\tRunID:          roundID,\n\t\t\t\tContentType:    messageentity.ContentTypeMix,\n\t\t\t\tDisplayContent: `[{\"type\": \"text\", \"text\": \"hello\"}]`,\n\t\t\t\tMultiContent: []*messageentity.InputMetaData{\n\t\t\t\t\t{Type: messageentity.InputTypeText, Text: \"hello\"},\n\t\t\t\t},\n\t\t\t\tSectionID: sectionID,\n\t\t\t},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"content type object_string with file\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"file\", \"file_id\": \"123\"}]`,\n\t\t\t},\n\t\t\tmessageType: messageentity.MessageTypeQuestion,\n\t\t\tsetupMock: func() {\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 123}).Return(&service.GetFileResponse{\n\t\t\t\t\tFile: &uploadentity.File{Url: \"https://example.com/file\", TosURI: \"tos://uri\", Name: \"file.txt\"},\n\t\t\t\t}, nil)\n\t\t\t},\n\t\t\texpected: &messageentity.Message{\n\t\t\t\tRole:           schema.User,\n\t\t\t\tMessageType:    messageentity.MessageTypeQuestion,\n\t\t\t\tConversationID: cid,\n\t\t\t\tAgentID:        bizID,\n\t\t\t\tUserID:         strconv.FormatInt(userID, 10),\n\t\t\t\tRunID:          roundID,\n\t\t\t\tContentType:    messageentity.ContentTypeMix,\n\t\t\t\tDisplayContent: `[{\"type\": \"file\", \"file_id\": \"123\"}]`,\n\t\t\t\tMultiContent: []*messageentity.InputMetaData{\n\t\t\t\t\t{\n\t\t\t\t\t\tType: \"file\",\n\t\t\t\t\t\tFileData: []*messageentity.FileData{\n\t\t\t\t\t\t\t{Url: \"https://example.com/file\", URI: \"tos://uri\", Name: \"file.txt\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSectionID: sectionID,\n\t\t\t},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"get file error\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"file\", \"file_id\": \"123\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 123}).Return(nil, errors.New(\"get file error\"))\n\t\t\t},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"file not found\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"file\", \"file_id\": \"123\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 123}).Return(&service.GetFileResponse{}, nil)\n\t\t\t},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid content type\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"invalid\",\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid json\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     \"invalid-json\",\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid input type\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"invalid\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpectErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\ttt.setupMock()\n\t\t\tresult, err := toConversationMessage(ctx, bizID, cid, userID, roundID, sectionID, tt.messageType, tt.msg)\n\t\t\tif tt.expectErr {\n\t\t\t\tassert.Error(t, err)\n\t\t\t} else {\n\t\t\t\tassert.NoError(t, err)\n\t\t\t\tassert.Equal(t, tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc Test_toSchemaMessage(t *testing.T) {\n\tctx := context.Background()\n\tctrl := gomock.NewController(t)\n\tdefer ctrl.Finish()\n\n\tmockUpload := uploadmock.NewMockUploader(ctrl)\n\tcrossupload.SetDefaultSVC(mockUpload)\n\n\ttests := []struct {\n\t\tname      string\n\t\tmsg       *workflow.EnterMessage\n\t\tsetupMock func()\n\t\texpected  *schema.Message\n\t\texpectErr bool\n\t}{\n\t\t{\n\t\t\tname: \"content type text\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"text\",\n\t\t\t\tContent:     \"hello\",\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpected: &schema.Message{\n\t\t\t\tRole:    schema.User,\n\t\t\t\tContent: \"hello\",\n\t\t\t},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"content type object_string with text\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"text\", \"text\": \"hello\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpected: &schema.Message{\n\t\t\t\tRole: schema.User,\n\t\t\t\tMultiContent: []schema.ChatMessagePart{\n\t\t\t\t\t{Type: schema.ChatMessagePartTypeText, Text: \"hello\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"content type object_string with image\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"image\", \"file_id\": \"123\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 123}).Return(&service.GetFileResponse{\n\t\t\t\t\tFile: &uploadentity.File{Url: \"https://example.com/image.png\"},\n\t\t\t\t}, nil)\n\t\t\t},\n\t\t\texpected: &schema.Message{\n\t\t\t\tRole: schema.User,\n\t\t\t\tMultiContent: []schema.ChatMessagePart{\n\t\t\t\t\t{\n\t\t\t\t\t\tType:     schema.ChatMessagePartTypeImageURL,\n\t\t\t\t\t\tImageURL: &schema.ChatMessageImageURL{URL: \"https://example.com/image.png\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"content type object_string with various file types\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"file\", \"file_id\": \"1\"}, {\"type\": \"audio\", \"file_id\": \"2\"}, {\"type\": \"video\", \"file_id\": \"3\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 1}).Return(&service.GetFileResponse{File: &uploadentity.File{Url: \"https://example.com/file\"}}, nil)\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 2}).Return(&service.GetFileResponse{File: &uploadentity.File{Url: \"https://example.com/audio\"}}, nil)\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 3}).Return(&service.GetFileResponse{File: &uploadentity.File{Url: \"https://example.com/video\"}}, nil)\n\t\t\t},\n\t\t\texpected: &schema.Message{\n\t\t\t\tRole: schema.User,\n\t\t\t\tMultiContent: []schema.ChatMessagePart{\n\t\t\t\t\t{Type: schema.ChatMessagePartTypeFileURL, FileURL: &schema.ChatMessageFileURL{URL: \"https://example.com/file\"}},\n\t\t\t\t\t{Type: schema.ChatMessagePartTypeAudioURL, AudioURL: &schema.ChatMessageAudioURL{URL: \"https://example.com/audio\"}},\n\t\t\t\t\t{Type: schema.ChatMessagePartTypeVideoURL, VideoURL: &schema.ChatMessageVideoURL{URL: \"https://example.com/video\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"get file error\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"file\", \"file_id\": \"123\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 123}).Return(nil, errors.New(\"get file error\"))\n\t\t\t},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"file not found\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"file\", \"file_id\": \"123\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockUpload.EXPECT().GetFile(gomock.Any(), &service.GetFileRequest{ID: 123}).Return(&service.GetFileResponse{}, nil)\n\t\t\t},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid content type\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"invalid\",\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid json\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     \"invalid-json\",\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid input type\",\n\t\t\tmsg: &workflow.EnterMessage{\n\t\t\t\tContentType: \"object_string\",\n\t\t\t\tContent:     `[{\"type\": \"invalid\"}]`,\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpectErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\ttt.setupMock()\n\t\t\tresult, err := toSchemaMessage(ctx, tt.msg)\n\t\t\tif tt.expectErr {\n\t\t\t\tassert.Error(t, err)\n\t\t\t} else {\n\t\t\t\tassert.NoError(t, err)\n\t\t\t\tassert.Equal(t, tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc Test_makeChatFlowHistoryMessages(t *testing.T) {\n\tctx := context.Background()\n\tctrl := gomock.NewController(t)\n\tdefer ctrl.Finish()\n\n\tmockAgentRun := agentrunmock.NewMockAgentRun(ctrl)\n\tcrossagentrun.SetDefaultSVC(mockAgentRun)\n\tmockUpload := uploadmock.NewMockUploader(ctrl)\n\tcrossupload.SetDefaultSVC(mockUpload)\n\n\tbizID, conversationID, userID, sectionID, connectorID := int64(2), int64(1), int64(3), int64(4), int64(5)\n\n\ttests := []struct {\n\t\tname      string\n\t\tmessages  []*workflow.EnterMessage\n\t\tsetupMock func()\n\t\texpected  []*messageentity.Message\n\t\texpectErr bool\n\t}{\n\t\t{\n\t\t\tname:      \"empty messages\",\n\t\t\tmessages:  []*workflow.EnterMessage{},\n\t\t\tsetupMock: func() {},\n\t\t\texpected:  []*messageentity.Message{},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"one user message\",\n\t\t\tmessages: []*workflow.EnterMessage{\n\t\t\t\t{Role: \"user\", ContentType: \"text\", Content: \"hello\"},\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockAgentRun.EXPECT().Create(gomock.Any(), gomock.Any()).Return(&agententity.RunRecordMeta{ID: 100}, nil).Times(1)\n\t\t\t},\n\t\t\texpected: []*messageentity.Message{\n\t\t\t\t{\n\t\t\t\t\tRole:           schema.User,\n\t\t\t\t\tConversationID: conversationID,\n\t\t\t\t\tAgentID:        bizID,\n\t\t\t\t\tRunID:          100,\n\t\t\t\t\tContent:        \"hello\",\n\t\t\t\t\tContentType:    messageentity.ContentTypeText,\n\t\t\t\t\tMessageType:    messageentity.MessageTypeQuestion,\n\t\t\t\t\tUserID:         strconv.FormatInt(userID, 10),\n\t\t\t\t\tSectionID:      sectionID,\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"user and assistant message\",\n\t\t\tmessages: []*workflow.EnterMessage{\n\t\t\t\t{Role: \"user\", ContentType: \"text\", Content: \"hello\"},\n\t\t\t\t{Role: \"assistant\", ContentType: \"text\", Content: \"hi\"},\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockAgentRun.EXPECT().Create(gomock.Any(), gomock.Any()).Return(&agententity.RunRecordMeta{ID: 100}, nil).Times(1)\n\t\t\t},\n\t\t\texpected: []*messageentity.Message{\n\t\t\t\t{\n\t\t\t\t\tRole:           schema.User,\n\t\t\t\t\tConversationID: conversationID,\n\t\t\t\t\tAgentID:        bizID,\n\t\t\t\t\tRunID:          100,\n\t\t\t\t\tContent:        \"hello\",\n\t\t\t\t\tContentType:    messageentity.ContentTypeText,\n\t\t\t\t\tMessageType:    messageentity.MessageTypeQuestion,\n\t\t\t\t\tUserID:         strconv.FormatInt(userID, 10),\n\t\t\t\t\tSectionID:      sectionID,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tRole:           schema.User,\n\t\t\t\t\tConversationID: conversationID,\n\t\t\t\t\tAgentID:        bizID,\n\t\t\t\t\tRunID:          100,\n\t\t\t\t\tContent:        \"hi\",\n\t\t\t\t\tContentType:    messageentity.ContentTypeText,\n\t\t\t\t\tMessageType:    messageentity.MessageTypeAnswer,\n\t\t\t\t\tUserID:         strconv.FormatInt(userID, 10),\n\t\t\t\t\tSectionID:      sectionID,\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"only assistant message\",\n\t\t\tmessages: []*workflow.EnterMessage{\n\t\t\t\t{Role: \"assistant\", ContentType: \"text\", Content: \"hi\"},\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpected:  []*messageentity.Message{},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"create run record error\",\n\t\t\tmessages: []*workflow.EnterMessage{\n\t\t\t\t{Role: \"user\", ContentType: \"text\", Content: \"hello\"},\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockAgentRun.EXPECT().Create(gomock.Any(), gomock.Any()).Return(nil, errors.New(\"db error\"))\n\t\t\t},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid role\",\n\t\t\tmessages: []*workflow.EnterMessage{\n\t\t\t\t{Role: \"system\", ContentType: \"text\", Content: \"hello\"},\n\t\t\t},\n\t\t\tsetupMock: func() {},\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"toConversationMessage error\",\n\t\t\tmessages: []*workflow.EnterMessage{\n\t\t\t\t{Role: \"user\", ContentType: \"invalid\", Content: \"hello\"},\n\t\t\t},\n\t\t\tsetupMock: func() {\n\t\t\t\tmockAgentRun.EXPECT().Create(gomock.Any(), gomock.Any()).Return(&agententity.RunRecordMeta{ID: 100}, nil)\n\t\t\t},\n\t\t\texpectErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\ttt.setupMock()\n\t\t\tresult, err := makeChatFlowHistoryMessages(ctx, bizID, conversationID, userID, sectionID, connectorID, tt.messages)\n\t\t\tif tt.expectErr {\n\t\t\t\tassert.Error(t, err)\n\t\t\t} else {\n\t\t\t\tassert.NoError(t, err)\n\t\t\t\tassert.Equal(t, tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "backend/application/workflow/eventbus.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage workflow\n\nimport (\n\t\"context\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/search/service\"\n)\n\nvar eventBus service.ResourceEventBus\n\nfunc setEventBus(bus service.ResourceEventBus) {\n\teventBus = bus\n}\n\nfunc PublishWorkflowResource(ctx context.Context, workflowID int64, mode *int32, op search.OpType, r *search.ResourceDocument) error {\n\tif r == nil {\n\t\tr = &search.ResourceDocument{}\n\t}\n\n\tr.ResType = common.ResType_Workflow\n\tr.ResID = workflowID\n\tr.ResSubType = mode\n\n\tevent := &entity.ResourceDomainEvent{\n\t\tOpType:   entity.OpType(op),\n\t\tResource: r,\n\t}\n\n\tif op == search.Created {\n\t\tevent.Resource.CreateTimeMS = r.CreateTimeMS\n\t\tevent.Resource.UpdateTimeMS = r.UpdateTimeMS\n\t} else if op == search.Updated {\n\t\tevent.Resource.UpdateTimeMS = r.UpdateTimeMS\n\t}\n\n\terr := eventBus.PublishResources(ctx, event)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "backend/application/workflow/init.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage workflow\n\nimport (\n\t\"context\"\n\t\"path/filepath\"\n\n\t\"os\"\n\n\t\"gopkg.in/yaml.v3\"\n\n\t\"github.com/cloudwego/eino/callbacks\"\n\t\"github.com/cloudwego/eino/compose\"\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/llm/modelbuilder\"\n\tknowledge \"github.com/coze-dev/coze-studio/backend/domain/knowledge/service\"\n\tdbservice \"github.com/coze-dev/coze-studio/backend/domain/memory/database/service\"\n\tvariables \"github.com/coze-dev/coze-studio/backend/domain/memory/variables/service\"\n\tplugin \"github.com/coze-dev/coze-studio/backend/domain/plugin/service\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/service\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/config\"\n\twrapPlugin \"github.com/coze-dev/coze-studio/backend/domain/workflow/plugin\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/service\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/cache\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/coderunner\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/imagex\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n)\n\ntype ServiceComponents struct {\n\tIDGen                    idgen.IDGenerator\n\tDB                       *gorm.DB\n\tCache                    cache.Cmdable\n\tDatabaseDomainSVC        dbservice.Database\n\tVariablesDomainSVC       variables.Variables\n\tPluginDomainSVC          plugin.PluginService\n\tKnowledgeDomainSVC       knowledge.Knowledge\n\tDomainNotifier           search.ResourceEventBus\n\tTos                      storage.Storage\n\tImageX                   imagex.ImageX\n\tCPStore                  compose.CheckPointStore\n\tCodeRunner               coderunner.Runner\n\tWorkflowBuildInChatModel modelbuilder.BaseChatModel\n}\n\nfunc initWorkflowConfig() (workflow.WorkflowConfig, error) {\n\twd, err := os.Getwd()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconfigBs, err := os.ReadFile(filepath.Join(wd, \"resources/conf/workflow/config.yaml\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar cfg *config.WorkflowConfig\n\terr = yaml.Unmarshal(configBs, &cfg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn cfg, nil\n}\n\nfunc InitService(_ context.Context, components *ServiceComponents) (*ApplicationService, error) {\n\tservice.RegisterAllNodeAdaptors()\n\n\tcfg, err := initWorkflowConfig()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tworkflowRepo, err := service.NewWorkflowRepository(components.IDGen, components.DB, components.Cache,\n\t\tcomponents.Tos, components.CPStore, components.WorkflowBuildInChatModel, cfg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tworkflow.SetRepository(workflowRepo)\n\n\tworkflowDomainSVC := service.NewWorkflowService(workflowRepo)\n\twrapPlugin.SetOSS(components.Tos)\n\n\tcoderunner.SetCodeRunner(components.CodeRunner)\n\tcallbacks.AppendGlobalHandlers(service.GetTokenCallbackHandler())\n\n\tsetEventBus(components.DomainNotifier)\n\n\tSVC.DomainSVC = workflowDomainSVC\n\tSVC.ImageX = components.ImageX\n\tSVC.TosClient = components.Tos\n\tSVC.IDGenerator = components.IDGen\n\n\terr = SVC.InitNodeIconURLCache(context.Background())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn SVC, nil\n}\n"
  },
  {
    "path": "backend/application/workflow/workflow.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage workflow\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"runtime/debug\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/cloudwego/eino/schema\"\n\txmaps \"golang.org/x/exp/maps\"\n\t\"golang.org/x/sync/errgroup\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/data/database/table\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/playground\"\n\tpluginAPI \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop\"\n\tcommon \"github.com/coze-dev/coze-studio/backend/api/model/plugin_develop/common\"\n\tresource \"github.com/coze-dev/coze-studio/backend/api/model/resource/common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/application/base/ctxutil\"\n\tappknowledge \"github.com/coze-dev/coze-studio/backend/application/knowledge\"\n\tappmemory \"github.com/coze-dev/coze-studio/backend/application/memory\"\n\tappplugin \"github.com/coze-dev/coze-studio/backend/application/plugin\"\n\t\"github.com/coze-dev/coze-studio/backend/application/user\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/debugutil\"\n\tcrossknowledge \"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge\"\n\tmodel \"github.com/coze-dev/coze-studio/backend/crossdomain/knowledge/model\"\n\tcrosspermission \"github.com/coze-dev/coze-studio/backend/crossdomain/permission\"\n\tpluginConsts \"github.com/coze-dev/coze-studio/backend/crossdomain/plugin/consts\"\n\tcrossuser \"github.com/coze-dev/coze-studio/backend/crossdomain/user\"\n\tworkflowModel \"github.com/coze-dev/coze-studio/backend/crossdomain/workflow/model\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/permission\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/plugin/dto\"\n\tsearch \"github.com/coze-dev/coze-studio/backend/domain/search/entity\"\n\tdomainWorkflow \"github.com/coze-dev/coze-studio/backend/domain/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/entity\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/entity/vo\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/plugin\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/idgen\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/imagex\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/errorx\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/i18n\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/maps\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/slices\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ternary\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/safego\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/sonic\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\t\"github.com/coze-dev/coze-studio/backend/types/errno\"\n)\n\ntype ApplicationService struct {\n\tDomainSVC   domainWorkflow.Service\n\tImageX      imagex.ImageX // we set Imagex here, because Imagex is used as a proxy to get auth token, there is no actual correlation with the workflow domain.\n\tTosClient   storage.Storage\n\tIDGenerator idgen.IDGenerator\n}\n\nvar (\n\tSVC                = &ApplicationService{}\n\tnodeIconURLCache   = make(map[string]string)\n\tnodeIconURLCacheMu sync.Mutex\n)\n\nfunc GetWorkflowDomainSVC() domainWorkflow.Service {\n\treturn SVC.DomainSVC\n}\n\nfunc (w *ApplicationService) InitNodeIconURLCache(ctx context.Context) error {\n\tif err := w.refreshNodeIconURLCache(ctx); err != nil {\n\t\treturn err\n\t}\n\tsafego.Go(ctx, func() {\n\t\tticker := time.NewTicker(time.Hour)\n\t\tdefer ticker.Stop()\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-ticker.C:\n\t\t\t\tif err := w.refreshNodeIconURLCache(context.Background()); err != nil {\n\t\t\t\t\tlogs.Errorf(\"failed to refresh node icon url cache: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\n\treturn nil\n}\n\nfunc (w *ApplicationService) refreshNodeIconURLCache(ctx context.Context) error {\n\tcategory2NodeMetaList, _, err := GetWorkflowDomainSVC().ListNodeMeta(ctx, nil)\n\tif err != nil {\n\t\tlogs.Errorf(\"failed to list node meta for icon url cache: %v\", err)\n\t\treturn err\n\t}\n\n\teg, gCtx := errgroup.WithContext(ctx)\n\tfor _, nodeMetaList := range category2NodeMetaList {\n\t\tfor _, nodeMeta := range nodeMetaList {\n\t\t\tnodeMeta := nodeMeta\n\t\t\teg.Go(func() error {\n\t\t\t\tif len(nodeMeta.IconURI) == 0 {\n\t\t\t\t\t// For custom nodes, if IconURI is not set, there will be no icon.\n\t\t\t\t\tlogs.Warnf(\"node '%s' has an empty IconURI, it will have no icon\", nodeMeta.Name)\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\turl, err := w.TosClient.GetObjectUrl(gCtx, nodeMeta.IconURI, storage.WithExpire(int64(time.Hour.Seconds())))\n\t\t\t\tif err != nil {\n\t\t\t\t\tlogs.Warnf(\"failed to get object url for node %s: %v\", nodeMeta.Name, err)\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tnodeTypeStr := entity.IDStrToNodeType(strconv.FormatInt(nodeMeta.ID, 10))\n\t\t\t\tif len(nodeTypeStr) > 0 {\n\t\t\t\t\tnodeIconURLCacheMu.Lock()\n\t\t\t\t\tnodeIconURLCache[string(nodeTypeStr)] = url\n\t\t\t\t\tnodeIconURLCacheMu.Unlock()\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t})\n\t\t}\n\t}\n\n\tif err := eg.Wait(); err != nil {\n\t\treturn err\n\t}\n\n\tlogs.Infof(\"node icon url cache refreshed with %d entries\", len(nodeIconURLCache))\n\treturn nil\n}\n\nfunc (w *ApplicationService) GetNodeTemplateList(ctx context.Context, req *workflow.NodeTemplateListRequest) (\n\t_ *workflow.NodeTemplateListResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\ttoQueryTypes := make(map[entity.NodeType]bool)\n\tfor _, t := range req.NodeTypes {\n\t\tentityType := entity.IDStrToNodeType(t)\n\t\tif len(entityType) == 0 {\n\t\t\tlogs.Warnf(\"get node type %v failed, err:=%v\", t, err)\n\t\t\tcontinue\n\t\t}\n\t\ttoQueryTypes[entityType] = true\n\t}\n\tcategory2NodeMetaList, categories, err := GetWorkflowDomainSVC().ListNodeMeta(ctx, toQueryTypes)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp := &workflow.NodeTemplateListResponse{\n\t\tData: &workflow.NodeTemplateListData{},\n\t}\n\n\tcategoryMap := make(map[string]*workflow.NodeCategory)\n\n\tfor category, nodeMetaList := range category2NodeMetaList {\n\t\tcategoryMap[category] = &workflow.NodeCategory{\n\t\t\tName: category,\n\t\t}\n\t\tfor _, nodeMeta := range nodeMetaList {\n\t\t\tnodeID := fmt.Sprintf(\"%d\", nodeMeta.ID)\n\t\t\tnodeType := entity.IDStrToNodeType(nodeID)\n\t\t\turl := nodeIconURLCache[string(nodeType)]\n\t\t\ttpl := &workflow.NodeTemplate{\n\t\t\t\tID:           nodeID,\n\t\t\t\tType:         workflow.NodeTemplateType(nodeMeta.ID),\n\t\t\t\tName:         ternary.IFElse(i18n.GetLocale(ctx) == i18n.LocaleEN, nodeMeta.EnUSName, nodeMeta.Name),\n\t\t\t\tDesc:         ternary.IFElse(i18n.GetLocale(ctx) == i18n.LocaleEN, nodeMeta.EnUSDescription, nodeMeta.Desc),\n\t\t\t\tIconURL:      url,\n\t\t\t\tSupportBatch: ternary.IFElse(nodeMeta.SupportBatch, workflow.SupportBatch_SUPPORT, workflow.SupportBatch_NOT_SUPPORT),\n\t\t\t\tNodeType:     nodeID,\n\t\t\t\tColor:        nodeMeta.Color,\n\t\t\t}\n\n\t\t\tresp.Data.TemplateList = append(resp.Data.TemplateList, tpl)\n\t\t\tcategoryMap[category].NodeTypeList = append(categoryMap[category].NodeTypeList, nodeID)\n\t\t}\n\t}\n\n\tfor _, cate := range categories {\n\t\tkey := cate.Key\n\t\tnodeCategory, ok := categoryMap[key]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tresp.Data.CateList = append(resp.Data.CateList, &workflow.NodeCategory{\n\t\t\tName:         ternary.IFElse(i18n.GetLocale(ctx) == i18n.LocaleEN, cate.EnUSName, cate.Name),\n\t\t\tNodeTypeList: nodeCategory.NodeTypeList,\n\t\t})\n\t}\n\n\treturn resp, nil\n}\n\nfunc (w *ApplicationService) CreateWorkflow(ctx context.Context, req *workflow.CreateWorkflowRequest) (\n\t_ *workflow.CreateWorkflowResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tuID := ctxutil.MustGetUIDFromCtx(ctx)\n\tspaceID := mustParseInt64(req.GetSpaceID())\n\tif err := checkUserSpace(ctx, uID, spaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar createConversation bool\n\tif req.ProjectID != nil && req.IsSetFlowMode() && req.GetFlowMode() == workflow.WorkflowMode_ChatFlow && req.IsSetCreateConversation() && req.GetCreateConversation() {\n\t\tcreateConversation = true\n\t\t_, err := GetWorkflowDomainSVC().CreateDraftConversationTemplate(ctx, &vo.CreateConversationTemplateMeta{\n\t\t\tAppID:   mustParseInt64(req.GetProjectID()),\n\t\t\tUserID:  uID,\n\t\t\tSpaceID: spaceID,\n\t\t\tName:    req.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\twf := &vo.MetaCreate{\n\t\tCreatorID:        uID,\n\t\tSpaceID:          spaceID,\n\t\tContentType:      workflow.WorkFlowType_User,\n\t\tName:             req.Name,\n\t\tDesc:             req.Desc,\n\t\tIconURI:          req.IconURI,\n\t\tAppID:            parseInt64(req.ProjectID),\n\t\tMode:             ternary.IFElse(req.IsSetFlowMode(), req.GetFlowMode(), workflow.WorkflowMode_Workflow),\n\t\tInitCanvasSchema: vo.GetDefaultInitCanvasJsonSchema(i18n.GetLocale(ctx)),\n\t}\n\tif req.IsSetFlowMode() && req.GetFlowMode() == workflow.WorkflowMode_ChatFlow {\n\t\tconversationName := req.Name\n\t\tif !req.IsSetProjectID() || mustParseInt64(req.GetProjectID()) == 0 || !createConversation {\n\t\t\tconversationName = \"Default\"\n\t\t}\n\n\t\twf.InitCanvasSchema = vo.GetDefaultInitCanvasJsonSchemaChat(i18n.GetLocale(ctx), conversationName)\n\t}\n\n\tid, err := GetWorkflowDomainSVC().Create(ctx, wf)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = PublishWorkflowResource(ctx, id, ptr.Of(int32(wf.Mode)), search.Created, &search.ResourceDocument{\n\t\tName:          &wf.Name,\n\t\tAPPID:         wf.AppID,\n\t\tSpaceID:       &wf.SpaceID,\n\t\tOwnerID:       &wf.CreatorID,\n\t\tPublishStatus: ptr.Of(resource.PublishStatus_UnPublished),\n\t\tCreateTimeMS:  ptr.Of(time.Now().UnixMilli()),\n\t})\n\tif err != nil {\n\t\treturn nil, vo.WrapError(errno.ErrNotifyWorkflowResourceChangeErr, err)\n\t}\n\n\treturn &workflow.CreateWorkflowResponse{\n\t\tData: &workflow.CreateWorkflowData{\n\t\t\tWorkflowID: strconv.FormatInt(id, 10),\n\t\t},\n\t}, nil\n}\n\nfunc (w *ApplicationService) SaveWorkflow(ctx context.Context, req *workflow.SaveWorkflowRequest) (\n\t_ *workflow.SaveWorkflowResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := GetWorkflowDomainSVC().Save(ctx, mustParseInt64(req.WorkflowID), req.GetSchema()); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.SaveWorkflowResponse{\n\t\tData: &workflow.SaveWorkflowData{},\n\t}, nil\n}\n\nfunc (w *ApplicationService) UpdateWorkflowMeta(ctx context.Context, req *workflow.UpdateWorkflowMetaRequest) (\n\t_ *workflow.UpdateWorkflowMetaResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tworkflowID := mustParseInt64(req.GetWorkflowID())\n\n\terr = GetWorkflowDomainSVC().UpdateMeta(ctx, mustParseInt64(req.GetWorkflowID()), &vo.MetaUpdate{\n\t\tName:         req.Name,\n\t\tDesc:         req.Desc,\n\t\tIconURI:      req.IconURI,\n\t\tWorkflowMode: req.FlowMode,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsafego.Go(ctx, func() {\n\t\terr := PublishWorkflowResource(ctx, workflowID, nil, search.Updated, &search.ResourceDocument{\n\t\t\tName:         req.Name,\n\t\t\tUpdateTimeMS: ptr.Of(time.Now().UnixMilli()),\n\t\t})\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"publish update workflow resource failed, workflowID: %d, err: %v\", workflowID, err)\n\t\t}\n\t})\n\n\treturn &workflow.UpdateWorkflowMetaResponse{}, nil\n}\n\nfunc (w *ApplicationService) DeleteWorkflow(ctx context.Context, req *workflow.DeleteWorkflowRequest) (\n\t_ *workflow.DeleteWorkflowResponse, err error,\n) {\n\t_, err = w.BatchDeleteWorkflow(ctx, &workflow.BatchDeleteWorkflowRequest{\n\t\tWorkflowIDList: []string{req.GetWorkflowID()},\n\t\tSpaceID:        req.SpaceID,\n\t\tAction:         req.Action,\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.DeleteWorkflowResponse{\n\t\tData: &workflow.DeleteWorkflowData{\n\t\t\tStatus: workflow.DeleteStatus_SUCCESS,\n\t\t},\n\t}, nil\n}\n\nfunc (w *ApplicationService) deleteWorkflowResource(ctx context.Context, policy *vo.DeletePolicy) error {\n\tids, err := GetWorkflowDomainSVC().Delete(ctx, policy)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tsafego.Go(ctx, func() {\n\t\tfor _, id := range ids {\n\t\t\tif err = PublishWorkflowResource(ctx, id, nil, search.Deleted, &search.ResourceDocument{}); err != nil {\n\t\t\t\tlogs.CtxErrorf(ctx, \"publish delete workflow event resource failed, workflowID: %d, err: %v\", id, err)\n\t\t\t}\n\t\t}\n\t})\n\n\treturn nil\n}\n\nfunc (w *ApplicationService) BatchDeleteWorkflow(ctx context.Context, req *workflow.BatchDeleteWorkflowRequest) (\n\t_ *workflow.BatchDeleteWorkflowResponse, err error) {\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tids, err := slices.TransformWithErrorCheck(req.GetWorkflowIDList(), func(a string) (int64, error) {\n\t\treturn strconv.ParseInt(a, 10, 64)\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = w.deleteWorkflowResource(ctx, &vo.DeletePolicy{\n\t\tIDs: ids,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.BatchDeleteWorkflowResponse{\n\t\tData: &workflow.DeleteWorkflowData{\n\t\t\tStatus: workflow.DeleteStatus_SUCCESS,\n\t\t},\n\t}, nil\n}\n\nfunc (w *ApplicationService) GetCanvasInfo(ctx context.Context, req *workflow.GetCanvasInfoRequest) (\n\t_ *workflow.GetCanvasInfoResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif req.GetSpaceID() != strconv.FormatInt(consts.TemplateSpaceID, 10) {\n\t\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\twf, err := GetWorkflowDomainSVC().Get(ctx, &vo.GetPolicy{\n\t\tID:    mustParseInt64(req.GetWorkflowID()),\n\t\tQType: workflowModel.FromDraft,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdevStatus := workflow.WorkFlowDevStatus_CanNotSubmit\n\tif wf.TestRunSuccess {\n\t\tdevStatus = workflow.WorkFlowDevStatus_CanSubmit\n\t}\n\n\tvcsType := workflow.VCSCanvasType_Draft\n\n\tif !wf.Modified {\n\t\tvcsType = workflow.VCSCanvasType_Publish\n\t\tdevStatus = workflow.WorkFlowDevStatus_HadSubmit\n\t}\n\n\tupdateTime := time.Time{}\n\tif wf.UpdatedAt != nil {\n\t\tupdateTime = *wf.UpdatedAt\n\t}\n\tif wf.DraftMeta != nil && wf.DraftMeta.Timestamp.After(updateTime) {\n\t\tupdateTime = wf.DraftMeta.Timestamp\n\t}\n\tif wf.VersionMeta != nil && wf.VersionMeta.VersionCreatedAt.After(updateTime) {\n\t\tupdateTime = wf.VersionMeta.VersionCreatedAt\n\t}\n\n\tpluginID := \"0\"\n\tif wf.HasPublished {\n\t\tpluginID = strconv.FormatInt(wf.ID, 10)\n\t}\n\n\tcanvasData := &workflow.CanvasData{\n\t\tWorkflow: &workflow.Workflow{\n\t\t\tWorkflowID:       strconv.FormatInt(wf.ID, 10),\n\t\t\tName:             wf.Name,\n\t\t\tDesc:             wf.Desc,\n\t\t\tURL:              wf.IconURL,\n\t\t\tIconURI:          wf.IconURI,\n\t\t\tStatus:           devStatus,\n\t\t\tType:             wf.ContentType,\n\t\t\tCreateTime:       wf.CreatedAt.Unix(),\n\t\t\tUpdateTime:       updateTime.Unix(),\n\t\t\tTag:              wf.Tag,\n\t\t\tTemplateAuthorID: ternary.IFElse(wf.AuthorID > 0, ptr.Of(strconv.FormatInt(wf.AuthorID, 10)), nil),\n\t\t\tSpaceID:          ptr.Of(strconv.FormatInt(wf.SpaceID, 10)),\n\t\t\tSchemaJSON:       ptr.Of(wf.Canvas),\n\t\t\tCreator: &workflow.Creator{\n\t\t\t\tID:   strconv.FormatInt(wf.CreatorID, 10),\n\t\t\t\tSelf: ternary.IFElse[bool](wf.CreatorID == ptr.From(ctxutil.GetUIDFromCtx(ctx)), true, false),\n\t\t\t},\n\t\t\tFlowMode:         wf.Mode,\n\t\t\tProjectID:        i64PtrToStringPtr(wf.AppID),\n\t\t\tPersistenceModel: workflow.PersistenceModel_VCS, // the front-end validation logic, this field returns VCS, developers don't need to pay attention\n\t\t\tPluginID:         pluginID,\n\t\t},\n\t\tVcsData: &workflow.VCSCanvasData{\n\t\t\tSubmitCommitID: wf.CommitID,\n\t\t\tDraftCommitID:  wf.CommitID,\n\t\t\tType:           vcsType,\n\t\t},\n\t\tWorkflowVersion: wf.LatestPublishedVersion,\n\t}\n\n\treturn &workflow.GetCanvasInfoResponse{\n\t\tData: canvasData,\n\t}, nil\n}\n\nfunc (w *ApplicationService) TestRun(ctx context.Context, req *workflow.WorkFlowTestRunRequest) (_ *workflow.WorkFlowTestRunResponse, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowExecuteFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tuID := ctxutil.MustGetUIDFromCtx(ctx)\n\n\tif err := checkUserSpace(ctx, uID, mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar appID, agentID *int64\n\tif req.IsSetProjectID() {\n\t\tappID = ptr.Of(mustParseInt64(req.GetProjectID()))\n\t}\n\tif req.IsSetBotID() {\n\t\tagentID = ptr.Of(mustParseInt64(req.GetBotID()))\n\t}\n\n\texeCfg := workflowModel.ExecuteConfig{\n\t\tID:           mustParseInt64(req.GetWorkflowID()),\n\t\tFrom:         workflowModel.FromDraft,\n\t\tCommitID:     req.GetCommitID(),\n\t\tOperator:     uID,\n\t\tMode:         workflowModel.ExecuteModeDebug,\n\t\tAppID:        appID,\n\t\tAgentID:      agentID,\n\t\tConnectorID:  consts.CozeConnectorID,\n\t\tConnectorUID: strconv.FormatInt(uID, 10),\n\t\tTaskType:     workflowModel.TaskTypeForeground,\n\t\tSyncPattern:  workflowModel.SyncPatternAsync,\n\t\tBizType:      workflowModel.BizTypeWorkflow,\n\t\tCancellable:  true,\n\t}\n\n\tif exeCfg.AppID != nil && exeCfg.AgentID != nil {\n\t\treturn nil, errors.New(\"project_id and bot_id cannot be set at the same time\")\n\t}\n\n\texeID, err := GetWorkflowDomainSVC().AsyncExecute(ctx, exeCfg, maps.ToAnyValue(req.Input))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.WorkFlowTestRunResponse{\n\t\tData: &workflow.WorkFlowTestRunData{\n\t\t\tWorkflowID: req.WorkflowID,\n\t\t\tExecuteID:  fmt.Sprintf(\"%d\", exeID),\n\t\t},\n\t}, nil\n}\n\nfunc (w *ApplicationService) NodeDebug(ctx context.Context, req *workflow.WorkflowNodeDebugV2Request) (\n\t_ *workflow.WorkflowNodeDebugV2Response, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowExecuteFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tuID := ctxutil.MustGetUIDFromCtx(ctx)\n\n\tif err := checkUserSpace(ctx, uID, mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// merge input, batch and setting, they are all the same when executing\n\tmergedInput := make(map[string]string, len(req.Input)+len(req.Batch)+len(req.Setting))\n\tfor k, v := range req.Input {\n\t\tmergedInput[k] = v\n\t}\n\tfor k, v := range req.Batch {\n\t\tmergedInput[k] = v\n\t}\n\tfor k, v := range req.Setting {\n\t\tmergedInput[k] = v\n\t}\n\n\tvar appID, agentID *int64\n\tif req.IsSetProjectID() {\n\t\tappID = ptr.Of(mustParseInt64(req.GetProjectID()))\n\t}\n\tif req.IsSetBotID() {\n\t\tagentID = ptr.Of(mustParseInt64(req.GetBotID()))\n\t}\n\n\texeCfg := workflowModel.ExecuteConfig{\n\t\tID:           mustParseInt64(req.GetWorkflowID()),\n\t\tFrom:         workflowModel.FromDraft,\n\t\tOperator:     uID,\n\t\tMode:         workflowModel.ExecuteModeNodeDebug,\n\t\tAppID:        appID,\n\t\tAgentID:      agentID,\n\t\tConnectorID:  consts.CozeConnectorID,\n\t\tConnectorUID: strconv.FormatInt(uID, 10),\n\t\tTaskType:     workflowModel.TaskTypeForeground,\n\t\tSyncPattern:  workflowModel.SyncPatternAsync,\n\t\tBizType:      workflowModel.BizTypeWorkflow,\n\t\tCancellable:  true,\n\t}\n\n\tif exeCfg.AppID != nil && exeCfg.AgentID != nil {\n\t\treturn nil, errors.New(\"project_id and bot_id cannot be set at the same time\")\n\t}\n\n\texeID, err := GetWorkflowDomainSVC().AsyncExecuteNode(ctx, req.NodeID, exeCfg, maps.ToAnyValue(mergedInput))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.WorkflowNodeDebugV2Response{\n\t\tData: &workflow.WorkflowNodeDebugV2Data{\n\t\t\tWorkflowID: req.WorkflowID,\n\t\t\tNodeID:     req.NodeID,\n\t\t\tExecuteID:  fmt.Sprintf(\"%d\", exeID),\n\t\t},\n\t}, nil\n}\n\nfunc (w *ApplicationService) GetProcess(ctx context.Context, req *workflow.GetWorkflowProcessRequest) (\n\t_ *workflow.GetWorkflowProcessResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar wfExeEntity *entity.WorkflowExecution\n\tif req.SubExecuteID == nil {\n\t\twfExeEntity = &entity.WorkflowExecution{\n\t\t\tID:         mustParseInt64(req.GetExecuteID()),\n\t\t\tWorkflowID: mustParseInt64(req.GetWorkflowID()),\n\t\t}\n\t} else {\n\t\twfExeEntity = &entity.WorkflowExecution{\n\t\t\tID:              mustParseInt64(req.GetSubExecuteID()),\n\t\t\tWorkflowID:      mustParseInt64(req.GetWorkflowID()),\n\t\t\tRootExecutionID: mustParseInt64(req.GetExecuteID()),\n\t\t}\n\t}\n\n\twfExeEntity, err = GetWorkflowDomainSVC().GetExecution(ctx, wfExeEntity, true)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tstatus := wfExeEntity.Status\n\tif status == entity.WorkflowInterrupted {\n\t\tstatus = entity.WorkflowRunning\n\t}\n\n\tresp := &workflow.GetWorkflowProcessResponse{\n\t\tData: &workflow.GetWorkFlowProcessData{\n\t\t\tWorkFlowId:       fmt.Sprintf(\"%d\", wfExeEntity.WorkflowID),\n\t\t\tExecuteId:        fmt.Sprintf(\"%d\", wfExeEntity.ID),\n\t\t\tExecuteStatus:    workflow.WorkflowExeStatus(status),\n\t\t\tExeHistoryStatus: workflow.WorkflowExeHistoryStatus_HasHistory,\n\t\t\tWorkflowExeCost:  fmt.Sprintf(\"%.3fs\", wfExeEntity.Duration.Seconds()),\n\t\t\tReason:           wfExeEntity.FailReason,\n\t\t\tLogID:            wfExeEntity.LogID,\n\t\t\tNodeEvents:       make([]*workflow.NodeEvent, 0),\n\t\t},\n\t}\n\n\tif wfExeEntity.TokenInfo != nil {\n\t\tresp.Data.TokenAndCost = &workflow.TokenAndCost{\n\t\t\tInputTokens:  ptr.Of(fmt.Sprintf(\"%d Tokens\", wfExeEntity.TokenInfo.InputTokens)),\n\t\t\tOutputTokens: ptr.Of(fmt.Sprintf(\"%d Tokens\", wfExeEntity.TokenInfo.OutputTokens)),\n\t\t\tTotalTokens:  ptr.Of(fmt.Sprintf(\"%d Tokens\", wfExeEntity.TokenInfo.InputTokens+wfExeEntity.TokenInfo.OutputTokens)),\n\t\t}\n\t}\n\n\tif wfExeEntity.AppID != nil {\n\t\tresp.Data.ProjectId = fmt.Sprintf(\"%d\", *wfExeEntity.AppID)\n\t}\n\n\tvar (\n\t\thasNodeErr   bool\n\t\tworkflowFail = status == entity.WorkflowFailed\n\t\tendNodeExe   *workflow.NodeResult\n\t)\n\n\tbatchNodeID2NodeResult := make(map[string]*workflow.NodeResult)\n\tbatchNodeID2InnerNodeResult := make(map[string]*workflow.NodeResult)\n\tsuccessNum := 0\n\tfor _, nodeExe := range wfExeEntity.NodeExecutions {\n\t\tif nodeExe.Status == entity.NodeFailed && nodeExe.ErrorInfo != nil {\n\t\t\thasNodeErr = true\n\t\t}\n\n\t\tnr, err := convertNodeExecution(nodeExe)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif nodeExe.NodeType == entity.NodeTypeExit {\n\t\t\tendNodeExe = nr\n\t\t}\n\n\t\tif nodeExe.NodeType == entity.NodeTypeBatch {\n\t\t\tif inner, ok := batchNodeID2InnerNodeResult[nodeExe.NodeID]; ok {\n\t\t\t\tnr = mergeBatchModeNodes(inner, nr)\n\t\t\t\tdelete(batchNodeID2InnerNodeResult, nodeExe.NodeID)\n\t\t\t} else {\n\t\t\t\tbatchNodeID2NodeResult[nodeExe.NodeID] = nr\n\t\t\t\tcontinue\n\t\t\t}\n\t\t} else if len(nodeExe.IndexedExecutions) > 0 {\n\t\t\tif vo.IsGeneratedNodeForBatchMode(nodeExe.NodeID, *nodeExe.ParentNodeID) {\n\t\t\t\tparentNodeResult, ok := batchNodeID2NodeResult[*nodeExe.ParentNodeID]\n\t\t\t\tif ok {\n\t\t\t\t\tnr = mergeBatchModeNodes(parentNodeResult, nr)\n\t\t\t\t\tdelete(batchNodeID2NodeResult, *nodeExe.ParentNodeID)\n\t\t\t\t} else {\n\t\t\t\t\tbatchNodeID2InnerNodeResult[*nodeExe.ParentNodeID] = nr\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif nr.NodeStatus == workflow.NodeExeStatus_Success {\n\t\t\tsuccessNum++\n\t\t}\n\n\t\tresp.Data.NodeResults = append(resp.Data.NodeResults, nr)\n\t}\n\n\tif workflowFail && !hasNodeErr {\n\t\tvar failReason string\n\t\tif wfExeEntity.FailReason != nil {\n\t\t\tfailReason = *wfExeEntity.FailReason\n\t\t\tif endNodeExe != nil {\n\t\t\t\tendNodeExe.ErrorInfo = failReason\n\t\t\t\tendNodeExe.ErrorLevel = string(vo.LevelError)\n\t\t\t} else {\n\t\t\t\tif len(resp.Data.NodeResults) == 1 &&\n\t\t\t\t\t(resp.Data.NodeResults)[0].NodeType != workflow.NodeTemplateType_Start.String() {\n\t\t\t\t\t// this is single node debug\n\t\t\t\t\tresp.Data.NodeResults[0].ErrorInfo = failReason\n\t\t\t\t\tresp.Data.NodeResults[0].ErrorLevel = string(vo.LevelError)\n\t\t\t\t} else {\n\t\t\t\t\tendNodeExe = &workflow.NodeResult{\n\t\t\t\t\t\tNodeId:     entity.ExitNodeKey,\n\t\t\t\t\t\tNodeType:   workflow.NodeTemplateType_End.String(),\n\t\t\t\t\t\tNodeStatus: workflow.NodeExeStatus_Fail,\n\t\t\t\t\t\tErrorInfo:  failReason,\n\t\t\t\t\t\tErrorLevel: string(vo.LevelError),\n\t\t\t\t\t}\n\t\t\t\t\tresp.Data.NodeResults = append(resp.Data.NodeResults, endNodeExe)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfor id := range batchNodeID2NodeResult {\n\t\tnr := batchNodeID2NodeResult[id]\n\t\tif nr.NodeStatus == workflow.NodeExeStatus_Success {\n\t\t\tsuccessNum++\n\t\t}\n\t\tresp.Data.NodeResults = append(resp.Data.NodeResults, nr)\n\t}\n\n\tif wfExeEntity.NodeCount > 0 {\n\t\tresp.Data.Rate = fmt.Sprintf(\"%.2f\", float64(successNum)/float64(wfExeEntity.NodeCount))\n\t}\n\n\tfor _, ie := range wfExeEntity.InterruptEvents {\n\t\tif ie.EventType == entity.InterruptEventLLM {\n\t\t\tie = &entity.InterruptEvent{\n\t\t\t\tID:            ie.ID,\n\t\t\t\tNodeKey:       ie.ToolInterruptEvent.NodeKey,\n\t\t\t\tNodeType:      ie.ToolInterruptEvent.NodeType,\n\t\t\t\tNodeTitle:     ie.ToolInterruptEvent.NodeTitle,\n\t\t\t\tNodeIcon:      ie.ToolInterruptEvent.NodeIcon,\n\t\t\t\tEventType:     ie.ToolInterruptEvent.EventType,\n\t\t\t\tInterruptData: ie.ToolInterruptEvent.InterruptData,\n\t\t\t}\n\t\t}\n\n\t\ticonURL := nodeIconURLCache[string(ie.NodeType)]\n\n\t\tresp.Data.NodeEvents = append(resp.Data.NodeEvents, &workflow.NodeEvent{\n\t\t\tID:           strconv.FormatInt(ie.ID, 10),\n\t\t\tNodeID:       string(ie.NodeKey),\n\t\t\tNodeTitle:    ie.NodeTitle,\n\t\t\tNodeIcon:     iconURL,\n\t\t\tData:         ie.InterruptData,\n\t\t\tType:         ie.EventType,\n\t\t\tSchemaNodeID: string(ie.NodeKey),\n\t\t})\n\t}\n\n\treturn resp, nil\n}\n\nfunc (w *ApplicationService) GetNodeExecuteHistory(ctx context.Context, req *workflow.GetNodeExecuteHistoryRequest) (\n\t_ *workflow.GetNodeExecuteHistoryResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\texecuteID := req.GetExecuteID()\n\tscene := req.GetNodeHistoryScene()\n\n\tif scene == workflow.NodeHistoryScene_TestRunInput {\n\t\tif len(executeID) > 0 {\n\t\t\treturn nil, fmt.Errorf(\"when scene is test_run_input, execute_id should be empty\")\n\t\t}\n\n\t\tnodeID := req.GetNodeID()\n\t\tif nodeID == \"100001\" {\n\t\t\tnodeExe, found, err := GetWorkflowDomainSVC().GetLatestTestRunInput(ctx, mustParseInt64(req.GetWorkflowID()),\n\t\t\t\tptr.FromOrDefault(ctxutil.GetUIDFromCtx(ctx), 0))\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif !found {\n\t\t\t\treturn &workflow.GetNodeExecuteHistoryResponse{\n\t\t\t\t\tData: &workflow.NodeResult{},\n\t\t\t\t}, nil\n\t\t\t}\n\n\t\t\tresult, err := convertNodeExecution(nodeExe)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\treturn &workflow.GetNodeExecuteHistoryResponse{\n\t\t\t\tData: result,\n\t\t\t}, nil\n\t\t} else {\n\t\t\tnodeExe, innerExe, found, err := GetWorkflowDomainSVC().GetLatestNodeDebugInput(ctx, mustParseInt64(req.GetWorkflowID()), nodeID,\n\t\t\t\tptr.FromOrDefault(ctxutil.GetUIDFromCtx(ctx), 0))\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif !found {\n\t\t\t\treturn &workflow.GetNodeExecuteHistoryResponse{\n\t\t\t\t\tData: &workflow.NodeResult{},\n\t\t\t\t}, nil\n\t\t\t}\n\n\t\t\tresult, err := convertNodeExecution(nodeExe)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif innerExe == nil {\n\t\t\t\treturn &workflow.GetNodeExecuteHistoryResponse{\n\t\t\t\t\tData: result,\n\t\t\t\t}, nil\n\t\t\t}\n\n\t\t\tinner, err := convertNodeExecution(innerExe)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tresult = mergeBatchModeNodes(result, inner)\n\t\t\treturn &workflow.GetNodeExecuteHistoryResponse{\n\t\t\t\tData: result,\n\t\t\t}, nil\n\t\t}\n\t} else {\n\t\tif len(executeID) == 0 {\n\t\t\treturn nil, fmt.Errorf(\"when scene is not test_run_input, execute_id should not be empty\")\n\t\t}\n\n\t\tnodeExe, innerNodeExe, err := GetWorkflowDomainSVC().GetNodeExecution(ctx, mustParseInt64(executeID), req.GetNodeID())\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresult, err := convertNodeExecution(nodeExe)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif innerNodeExe != nil {\n\t\t\tinner, err := convertNodeExecution(innerNodeExe)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tresult := mergeBatchModeNodes(result, inner)\n\t\t\treturn &workflow.GetNodeExecuteHistoryResponse{\n\t\t\t\tData: result,\n\t\t\t}, nil\n\t\t}\n\n\t\treturn &workflow.GetNodeExecuteHistoryResponse{\n\t\t\tData: result,\n\t\t}, nil\n\t}\n}\n\nfunc (w *ApplicationService) DeleteWorkflowsByAppID(ctx context.Context, appID int64) (err error) {\n\treturn w.deleteWorkflowResource(ctx, &vo.DeletePolicy{\n\t\tAppID: ptr.Of(appID),\n\t})\n}\n\nfunc (w *ApplicationService) CheckWorkflowsExistByAppID(ctx context.Context, appID int64) (_ bool, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\twfs, _, err := GetWorkflowDomainSVC().MGet(ctx, &vo.MGetPolicy{\n\t\tMetaQuery: vo.MetaQuery{\n\t\t\tAppID: &appID,\n\t\t\tPage: &vo.Page{\n\t\t\t\tSize: 1,\n\t\t\t\tPage: 0,\n\t\t\t},\n\t\t},\n\t\tQType:    workflowModel.FromDraft,\n\t\tMetaOnly: true,\n\t})\n\n\treturn len(wfs) > 0, err\n}\n\nfunc (w *ApplicationService) CopyWorkflowFromAppToLibrary(ctx context.Context, workflowID int64, spaceID, appID int64) (\n\t_ int64, _ []*vo.ValidateIssue, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tds, err := GetWorkflowDomainSVC().GetWorkflowDependenceResource(ctx, workflowID)\n\tif err != nil {\n\t\treturn 0, nil, err\n\t}\n\n\tpluginMap := make(map[int64]*vo.PluginEntity)\n\tpluginToolMap := make(map[int64]int64)\n\n\tif len(ds.PluginIDs) > 0 {\n\t\tfor idx := range ds.PluginIDs {\n\t\t\tid := ds.PluginIDs[idx]\n\t\t\tresponse, err := appplugin.PluginApplicationSVC.CopyPlugin(ctx, &dto.CopyPluginRequest{\n\t\t\t\tPluginID:  id,\n\t\t\t\tUserID:    ctxutil.MustGetUIDFromCtx(ctx),\n\t\t\t\tCopyScene: pluginConsts.CopySceneOfToLibrary,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn 0, nil, err\n\t\t\t}\n\t\t\tpInfo := response.Plugin\n\t\t\tpluginMap[id] = &vo.PluginEntity{\n\t\t\t\tPluginID:      pInfo.ID,\n\t\t\t\tPluginVersion: pInfo.Version,\n\t\t\t}\n\t\t\tfor o, n := range response.Tools {\n\t\t\t\tpluginToolMap[o] = n.ID\n\t\t\t}\n\n\t\t}\n\t}\n\n\trelatedKnowledgeMap := make(map[int64]int64, len(ds.KnowledgeIDs))\n\tif len(ds.KnowledgeIDs) > 0 {\n\t\ttaskUniqIDs, err := w.IDGenerator.GenMultiIDs(ctx, len(ds.KnowledgeIDs))\n\t\tif err != nil {\n\t\t\treturn 0, nil, err\n\t\t}\n\n\t\tfor idx := range ds.KnowledgeIDs {\n\t\t\tid := ds.KnowledgeIDs[idx]\n\t\t\tresponse, err := appknowledge.KnowledgeSVC.CopyKnowledge(ctx, &model.CopyKnowledgeRequest{\n\t\t\t\tKnowledgeID:   id,\n\t\t\t\tTargetSpaceID: spaceID,\n\t\t\t\tTargetUserID:  ctxutil.MustGetUIDFromCtx(ctx),\n\t\t\t\tTaskUniqKey:   strconv.FormatInt(taskUniqIDs[idx], 10),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn 0, nil, err\n\t\t\t}\n\t\t\tif response.CopyStatus == model.CopyStatus_Failed {\n\t\t\t\treturn 0, nil, fmt.Errorf(\"failed to copy knowledge, knowledge id=%d\", id)\n\t\t\t}\n\t\t\trelatedKnowledgeMap[id] = response.TargetKnowledgeID\n\t\t}\n\t}\n\n\trelatedDatabaseMap := make(map[int64]int64, len(ds.DatabaseIDs))\n\tif len(ds.DatabaseIDs) > 0 {\n\t\tresponse, err := appmemory.DatabaseApplicationSVC.CopyDatabase(ctx, &appmemory.CopyDatabaseRequest{\n\t\t\tDatabaseIDs: ds.DatabaseIDs,\n\t\t\tTableType:   table.TableType_OnlineTable,\n\t\t\tCreatorID:   ctxutil.MustGetUIDFromCtx(ctx),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn 0, nil, err\n\t\t}\n\t\tfor oid, e := range response.Databases {\n\t\t\trelatedDatabaseMap[oid] = e.ID\n\t\t}\n\n\t}\n\n\trelatedWorkflows, vIssues, err := w.copyWorkflowFromAppToLibrary(ctx, workflowID, appID, vo.ExternalResourceRelated{\n\t\tPluginMap:     pluginMap,\n\t\tPluginToolMap: pluginToolMap,\n\t\tKnowledgeMap:  relatedKnowledgeMap,\n\t\tDatabaseMap:   relatedDatabaseMap,\n\t})\n\tif err != nil {\n\t\treturn 0, nil, err\n\t}\n\n\tif len(vIssues) > 0 {\n\t\treturn 0, vIssues, nil\n\t}\n\n\tcopiedWf, ok := relatedWorkflows[workflowID]\n\tif !ok {\n\t\treturn 0, nil, fmt.Errorf(\"failed to get copy workflow id, workflow id=%d\", workflowID)\n\t}\n\n\treturn copiedWf.ID, vIssues, nil\n}\n\nfunc (w *ApplicationService) copyWorkflowFromAppToLibrary(ctx context.Context, workflowID int64, appID int64, related vo.ExternalResourceRelated) (map[int64]entity.IDVersionPair, []*vo.ValidateIssue, error) {\n\tresp, err := GetWorkflowDomainSVC().CopyWorkflowFromAppToLibrary(ctx, workflowID, appID, related)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tfor index := range resp.CopiedWorkflows {\n\t\twf := resp.CopiedWorkflows[index]\n\n\t\terr = PublishWorkflowResource(ctx, wf.ID, ptr.Of(int32(wf.Meta.Mode)), search.Created, &search.ResourceDocument{\n\t\t\tName:    &wf.Name,\n\t\t\tSpaceID: &wf.SpaceID,\n\t\t\tOwnerID: &wf.CreatorID,\n\n\t\t\tPublishStatus: ptr.Of(resource.PublishStatus_UnPublished),\n\t\t\tCreateTimeMS:  ptr.Of(time.Now().UnixMilli()),\n\t\t})\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"failed to publish workflow resource, workflow id=%d, err=%v\", wf.ID, err)\n\t\t\treturn nil, nil, err\n\t\t}\n\t}\n\n\treturn resp.WorkflowIDVersionMap, resp.ValidateIssues, nil\n}\n\ntype ExternalResource struct {\n\tPluginMap     map[int64]int64\n\tPluginToolMap map[int64]int64\n\tKnowledgeMap  map[int64]int64\n\tDatabaseMap   map[int64]int64\n}\n\nfunc (w *ApplicationService) DuplicateWorkflowsByAppID(ctx context.Context, sourceAppID, targetAppID int64, externalResource ExternalResource) (err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tpluginMap := make(map[int64]*vo.PluginEntity)\n\tfor o, n := range externalResource.PluginMap {\n\t\tpluginMap[o] = &vo.PluginEntity{\n\t\t\tPluginID: n,\n\t\t}\n\t}\n\texternalResourceRelated := vo.ExternalResourceRelated{\n\t\tPluginMap:     pluginMap,\n\t\tPluginToolMap: externalResource.PluginToolMap,\n\t\tKnowledgeMap:  externalResource.KnowledgeMap,\n\t\tDatabaseMap:   externalResource.DatabaseMap,\n\t}\n\n\tcopiedWorkflowArray, err := GetWorkflowDomainSVC().DuplicateWorkflowsByAppID(ctx, sourceAppID, targetAppID, externalResourceRelated)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tlogs.CtxInfof(ctx, \"[DuplicateWorkflowsByAppID] %s\", conv.DebugJsonToStr(copiedWorkflowArray))\n\n\tfor index := range copiedWorkflowArray {\n\t\twf := copiedWorkflowArray[index]\n\t\terr = PublishWorkflowResource(ctx, wf.ID, ptr.Of(int32(wf.Meta.Mode)), search.Created, &search.ResourceDocument{\n\t\t\tName:          &wf.Name,\n\t\t\tSpaceID:       &wf.SpaceID,\n\t\t\tOwnerID:       &wf.CreatorID,\n\t\t\tAPPID:         &targetAppID,\n\t\t\tPublishStatus: ptr.Of(resource.PublishStatus_UnPublished),\n\t\t\tCreateTimeMS:  ptr.Of(time.Now().UnixMilli()),\n\t\t})\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"failed to publish workflow resource, workflow id=%d, err=%v\", wf.ID, err)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (w *ApplicationService) CopyWorkflowFromLibraryToApp(ctx context.Context, workflowID int64, appID int64) (\n\t_ int64, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\twf, err := w.copyWorkflow(ctx, workflowID, vo.CopyWorkflowPolicy{\n\t\tTargetAppID: &appID,\n\t})\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn wf.ID, nil\n}\n\nfunc (w *ApplicationService) copyWorkflow(ctx context.Context, workflowID int64, policy vo.CopyWorkflowPolicy) (*entity.Workflow, error) {\n\twf, err := GetWorkflowDomainSVC().CopyWorkflow(ctx, workflowID, policy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = PublishWorkflowResource(ctx, wf.ID, ptr.Of(int32(wf.Meta.Mode)), search.Created, &search.ResourceDocument{\n\t\tName:          &wf.Name,\n\t\tAPPID:         wf.AppID,\n\t\tSpaceID:       &wf.SpaceID,\n\t\tOwnerID:       &wf.CreatorID,\n\t\tPublishStatus: ptr.Of(resource.PublishStatus_UnPublished),\n\t\tCreateTimeMS:  ptr.Of(time.Now().UnixMilli()),\n\t})\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"public copy workflow event failed, workflowID=%d, err=%v\", wf.ID, err)\n\t\treturn nil, err\n\t}\n\n\treturn wf, nil\n}\n\nfunc (w *ApplicationService) MoveWorkflowFromAppToLibrary(ctx context.Context, workflowID int64, spaceID, /*not used for now*/\n\tappID int64) (_ int64, _ []*vo.ValidateIssue, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tds, err := GetWorkflowDomainSVC().GetWorkflowDependenceResource(ctx, workflowID)\n\tif err != nil {\n\t\treturn 0, nil, err\n\t}\n\n\tpluginMap := make(map[int64]*vo.PluginEntity)\n\tif len(ds.PluginIDs) > 0 {\n\t\tfor idx := range ds.PluginIDs {\n\t\t\tid := ds.PluginIDs[idx]\n\t\t\tpInfo, err := appplugin.PluginApplicationSVC.MoveAPPPluginToLibrary(ctx, id)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, nil, err\n\t\t\t}\n\t\t\tpluginMap[id] = &vo.PluginEntity{\n\t\t\t\tPluginID:      pInfo.ID,\n\t\t\t\tPluginVersion: pInfo.Version,\n\t\t\t}\n\n\t\t}\n\t}\n\n\tif len(ds.KnowledgeIDs) > 0 {\n\t\tfor idx := range ds.KnowledgeIDs {\n\t\t\tid := ds.KnowledgeIDs[idx]\n\t\t\terr := appknowledge.KnowledgeSVC.MoveKnowledgeToLibrary(ctx, &model.MoveKnowledgeToLibraryRequest{\n\t\t\t\tKnowledgeID: id,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn 0, nil, err\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(ds.DatabaseIDs) > 0 {\n\t\t_, err = appmemory.DatabaseApplicationSVC.MoveDatabaseToLibrary(ctx, &appmemory.MoveDatabaseToLibraryRequest{\n\t\t\tDatabaseIDs: ds.DatabaseIDs,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn 0, nil, err\n\t\t}\n\t}\n\n\trelatedWorkflows, vIssues, err := w.copyWorkflowFromAppToLibrary(ctx, workflowID, appID, vo.ExternalResourceRelated{\n\t\tPluginMap: pluginMap,\n\t})\n\tif err != nil {\n\t\treturn 0, nil, err\n\t}\n\tif len(vIssues) > 0 {\n\t\treturn 0, vIssues, nil\n\t}\n\n\terr = GetWorkflowDomainSVC().SyncRelatedWorkflowResources(ctx, appID, relatedWorkflows, vo.ExternalResourceRelated{\n\t\tPluginMap: pluginMap,\n\t})\n\tif err != nil {\n\t\treturn 0, nil, err\n\t}\n\n\tdeleteWorkflowIDs := xmaps.Keys(relatedWorkflows)\n\terr = w.deleteWorkflowResource(ctx, &vo.DeletePolicy{\n\t\tIDs: deleteWorkflowIDs,\n\t})\n\tif err != nil {\n\t\treturn 0, nil, err\n\t}\n\tcopiedWf, ok := relatedWorkflows[workflowID]\n\tif !ok {\n\t\treturn 0, nil, fmt.Errorf(\"failed to get copy workflow id, workflow id=%d\", workflowID)\n\t}\n\n\treturn copiedWf.ID, nil, nil\n}\n\nfunc convertNodeExecution(nodeExe *entity.NodeExecution) (*workflow.NodeResult, error) {\n\tnr := &workflow.NodeResult{\n\t\tNodeId:      nodeExe.NodeID,\n\t\tNodeName:    nodeExe.NodeName,\n\t\tNodeType:    entity.NodeMetaByNodeType(nodeExe.NodeType).GetDisplayKey(),\n\t\tNodeStatus:  workflow.NodeExeStatus(nodeExe.Status),\n\t\tErrorInfo:   ptr.FromOrDefault(nodeExe.ErrorInfo, \"\"),\n\t\tInput:       ptr.FromOrDefault(nodeExe.Input, \"\"),\n\t\tOutput:      ptr.FromOrDefault(nodeExe.Output, \"\"),\n\t\tNodeExeCost: fmt.Sprintf(\"%.3fs\", nodeExe.Duration.Seconds()),\n\t\tRawOutput:   nodeExe.RawOutput,\n\t\tErrorLevel:  ptr.FromOrDefault(nodeExe.ErrorLevel, \"\"),\n\t}\n\n\tif nodeExe.TokenInfo != nil {\n\t\tnr.TokenAndCost = &workflow.TokenAndCost{\n\t\t\tInputTokens:  ptr.Of(fmt.Sprintf(\"%d Tokens\", nodeExe.TokenInfo.InputTokens)),\n\t\t\tOutputTokens: ptr.Of(fmt.Sprintf(\"%d Tokens\", nodeExe.TokenInfo.OutputTokens)),\n\t\t\tTotalTokens:  ptr.Of(fmt.Sprintf(\"%d Tokens\", nodeExe.TokenInfo.InputTokens+nodeExe.TokenInfo.OutputTokens)),\n\t\t}\n\t}\n\n\tif nodeExe.ParentNodeID != nil {\n\t\tnr.Index = ptr.Of(int32(nodeExe.Index))\n\t\tnr.Items = nodeExe.Items\n\t}\n\n\tif len(nodeExe.IndexedExecutions) > 0 {\n\t\tnr.IsBatch = ptr.Of(true)\n\t\tsubResults := make([]*workflow.NodeResult, 0, len(nodeExe.IndexedExecutions))\n\t\tfor _, subNodeExe := range nodeExe.IndexedExecutions {\n\t\t\tif subNodeExe == nil {\n\t\t\t\tsubResults = append(subResults, nil)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsubResult, err := convertNodeExecution(subNodeExe)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tsubResults = append(subResults, subResult)\n\t\t}\n\t\tm, err := sonic.MarshalString(subResults)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tnr.Batch = ptr.Of(m)\n\t}\n\n\tif nodeExe.SubWorkflowExecution != nil {\n\t\tif nodeExe.Extra == nil {\n\t\t\tnodeExe.Extra = &entity.NodeExtra{}\n\t\t}\n\t\tnodeExe.Extra.SubExecuteID = nodeExe.SubWorkflowExecution.ID\n\t\tnr.SubExecuteId = ptr.Of(strconv.FormatInt(nodeExe.SubWorkflowExecution.ID, 10))\n\t\tnr.ExecuteId = ptr.Of(strconv.FormatInt(nodeExe.ExecuteID, 10))\n\t}\n\n\tif nodeExe.Extra != nil {\n\t\tm, err := sonic.MarshalString(nodeExe.Extra)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tnr.Extra = m\n\t}\n\n\treturn nr, nil\n}\n\nfunc mergeBatchModeNodes(parent, inner *workflow.NodeResult) *workflow.NodeResult {\n\tmerged := &workflow.NodeResult{\n\t\tNodeId:       parent.NodeId,\n\t\tNodeType:     inner.NodeType,\n\t\tNodeName:     parent.NodeName,\n\t\tNodeStatus:   parent.NodeStatus,\n\t\tErrorInfo:    parent.ErrorInfo,\n\t\tInput:        parent.Input,\n\t\tOutput:       parent.Output,\n\t\tNodeExeCost:  parent.NodeExeCost,\n\t\tTokenAndCost: parent.TokenAndCost,\n\t\tRawOutput:    parent.RawOutput,\n\t\tErrorLevel:   parent.ErrorLevel,\n\t\tBatch:        inner.Batch,\n\t\tIsBatch:      inner.IsBatch,\n\t\tExtra:        inner.Extra,\n\t\tExecuteId:    parent.ExecuteId,\n\t\tSubExecuteId: parent.SubExecuteId,\n\t\tNeedAsync:    parent.NeedAsync,\n\t}\n\n\treturn merged\n}\n\ntype StreamRunEventType string\n\nconst (\n\tDoneEvent      StreamRunEventType = \"Done\"\n\tMessageEvent   StreamRunEventType = \"Message\"\n\tErrEvent       StreamRunEventType = \"Error\"\n\tInterruptEvent StreamRunEventType = \"Interrupt\"\n)\n\nfunc convertStreamRunEvent(workflowID int64) func(msg *entity.Message) (res *workflow.OpenAPIStreamRunFlowResponse, err error) {\n\tvar (\n\t\tmessageID  int\n\t\texecuteID  int64\n\t\tspaceID    int64\n\t\tnodeID2Seq = make(map[string]int)\n\t)\n\n\treturn func(msg *entity.Message) (res *workflow.OpenAPIStreamRunFlowResponse, err error) {\n\t\tdefer func() {\n\t\t\tif err == nil {\n\t\t\t\tmessageID++\n\t\t\t}\n\t\t}()\n\n\t\tctx := context.Background()\n\t\tif msg.StateMessage != nil {\n\t\t\t// stream run will skip all messages from workflow tools\n\t\t\tif executeID > 0 && executeID != msg.StateMessage.ExecuteID {\n\t\t\t\treturn nil, schema.ErrNoValue\n\t\t\t}\n\n\t\t\tswitch msg.StateMessage.Status {\n\t\t\tcase entity.WorkflowSuccess:\n\t\t\t\treturn &workflow.OpenAPIStreamRunFlowResponse{\n\t\t\t\t\tID:       strconv.Itoa(messageID),\n\t\t\t\t\tEvent:    string(DoneEvent),\n\t\t\t\t\tDebugUrl: ptr.Of(debugutil.GetWorkflowDebugURL(ctx, workflowID, spaceID, executeID)),\n\t\t\t\t}, nil\n\t\t\tcase entity.WorkflowFailed, entity.WorkflowCancel:\n\t\t\t\tvar wfe vo.WorkflowError\n\t\t\t\tif !errors.As(msg.StateMessage.LastError, &wfe) {\n\t\t\t\t\tpanic(\"stream run last error is not a WorkflowError\")\n\t\t\t\t}\n\t\t\t\treturn &workflow.OpenAPIStreamRunFlowResponse{\n\t\t\t\t\tID:           strconv.Itoa(messageID),\n\t\t\t\t\tEvent:        string(ErrEvent),\n\t\t\t\t\tDebugUrl:     ptr.Of(debugutil.GetWorkflowDebugURL(ctx, workflowID, spaceID, executeID)),\n\t\t\t\t\tErrorCode:    ptr.Of(int64(wfe.Code())),\n\t\t\t\t\tErrorMessage: ptr.Of(wfe.Msg()),\n\t\t\t\t}, nil\n\t\t\tcase entity.WorkflowInterrupted:\n\t\t\t\tif msg.InterruptEvent.ToolInterruptEvent == nil {\n\t\t\t\t\treturn &workflow.OpenAPIStreamRunFlowResponse{\n\t\t\t\t\t\tID:       strconv.Itoa(messageID),\n\t\t\t\t\t\tEvent:    string(InterruptEvent),\n\t\t\t\t\t\tDebugUrl: ptr.Of(debugutil.GetWorkflowDebugURL(ctx, workflowID, spaceID, executeID)),\n\t\t\t\t\t\tInterruptData: &workflow.Interrupt{\n\t\t\t\t\t\t\tEventID: fmt.Sprintf(\"%d/%d\", executeID, msg.InterruptEvent.ID),\n\t\t\t\t\t\t\tType:    workflow.InterruptType(msg.InterruptEvent.EventType),\n\t\t\t\t\t\t\tInData:  msg.InterruptEvent.InterruptData,\n\t\t\t\t\t\t},\n\t\t\t\t\t}, nil\n\t\t\t\t}\n\n\t\t\t\treturn &workflow.OpenAPIStreamRunFlowResponse{\n\t\t\t\t\tID:       strconv.Itoa(messageID),\n\t\t\t\t\tEvent:    string(InterruptEvent),\n\t\t\t\t\tDebugUrl: ptr.Of(debugutil.GetWorkflowDebugURL(ctx, workflowID, spaceID, executeID)),\n\t\t\t\t\tInterruptData: &workflow.Interrupt{\n\t\t\t\t\t\tEventID: fmt.Sprintf(\"%d/%d\", executeID, msg.InterruptEvent.ID),\n\t\t\t\t\t\tType:    workflow.InterruptType(msg.InterruptEvent.ToolInterruptEvent.EventType),\n\t\t\t\t\t\tInData:  msg.InterruptEvent.ToolInterruptEvent.InterruptData,\n\t\t\t\t\t},\n\t\t\t\t}, nil\n\t\t\tcase entity.WorkflowRunning:\n\t\t\t\texecuteID = msg.StateMessage.ExecuteID\n\t\t\t\tspaceID = msg.SpaceID\n\t\t\t\treturn nil, schema.ErrNoValue\n\t\t\tdefault:\n\t\t\t\treturn nil, schema.ErrNoValue\n\t\t\t}\n\t\t}\n\n\t\tif msg.DataMessage != nil {\n\t\t\tif msg.Type != entity.Answer {\n\t\t\t\t// stream run api do not emit FunctionCall or ToolResponse\n\t\t\t\treturn nil, schema.ErrNoValue\n\t\t\t}\n\n\t\t\t// stream run will skip all messages from workflow tools\n\t\t\tif executeID > 0 && executeID != msg.DataMessage.ExecuteID {\n\t\t\t\treturn nil, schema.ErrNoValue\n\t\t\t}\n\n\t\t\tres = &workflow.OpenAPIStreamRunFlowResponse{\n\t\t\t\tID:           strconv.Itoa(messageID),\n\t\t\t\tEvent:        string(MessageEvent),\n\t\t\t\tNodeTitle:    ptr.Of(msg.NodeTitle),\n\t\t\t\tContent:      ptr.Of(msg.Content),\n\t\t\t\tContentType:  ptr.Of(\"text\"),\n\t\t\t\tNodeIsFinish: ptr.Of(msg.Last),\n\t\t\t\tNodeType:     ptr.Of(entity.NodeMetaByNodeType(msg.NodeType).GetDisplayKey()),\n\t\t\t\tNodeID:       ptr.Of(msg.NodeID),\n\t\t\t}\n\n\t\t\tif msg.DataMessage.Usage != nil {\n\t\t\t\ttoken := msg.DataMessage.Usage.InputTokens + msg.DataMessage.Usage.OutputTokens\n\t\t\t\tres.Token = ptr.Of(token)\n\t\t\t}\n\n\t\t\tseq, ok := nodeID2Seq[msg.NodeID]\n\t\t\tif !ok {\n\t\t\t\tseq = 0\n\t\t\t\tnodeID2Seq[msg.NodeID] = 0\n\t\t\t}\n\n\t\t\tres.NodeSeqID = ptr.Of(strconv.Itoa(seq))\n\t\t\tnodeID2Seq[msg.NodeID]++\n\t\t}\n\n\t\treturn res, nil\n\t}\n}\n\nfunc (w *ApplicationService) OpenAPIStreamRun(ctx context.Context, req *workflow.OpenAPIRunFlowRequest) (\n\t_ *schema.StreamReader[*workflow.OpenAPIStreamRunFlowResponse], err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowExecuteFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tuserID := apiKeyInfo.UserID\n\n\truntimeUserID := func() *string {\n\t\tif uID, ok := req.Ext[\"user_id\"]; ok {\n\t\t\treturn ptr.Of(uID)\n\t\t}\n\t\treturn nil\n\t}()\n\tparameters := make(map[string]any)\n\tif req.Parameters != nil {\n\t\terr := sonic.UnmarshalString(*req.Parameters, &parameters)\n\t\tif err != nil {\n\t\t\treturn nil, vo.WrapError(errno.ErrInvalidParameter, err)\n\t\t}\n\t}\n\n\tmeta, err := GetWorkflowDomainSVC().Get(ctx, &vo.GetPolicy{\n\t\tID:       mustParseInt64(req.GetWorkflowID()),\n\t\tMetaOnly: true,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif meta.LatestPublishedVersion == nil {\n\t\treturn nil, vo.NewError(errno.ErrWorkflowNotPublished)\n\t}\n\n\tif err = checkUserSpace(ctx, userID, meta.SpaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar appID, agentID *int64\n\tif req.IsSetAppID() {\n\t\tappID = ptr.Of(mustParseInt64(req.GetAppID()))\n\t} else if req.IsSetProjectID() {\n\t\tappID = ptr.Of(mustParseInt64(req.GetProjectID()))\n\t}\n\tif req.IsSetBotID() {\n\t\tagentID = ptr.Of(mustParseInt64(req.GetBotID()))\n\t}\n\n\tvar connectorID int64\n\tif req.IsSetConnectorID() {\n\t\tconnectorID = mustParseInt64(req.GetConnectorID())\n\t}\n\n\tif connectorID != consts.WebSDKConnectorID {\n\t\tconnectorID = apiKeyInfo.ConnectorID\n\t}\n\n\texeCfg := workflowModel.ExecuteConfig{\n\t\tID:          meta.ID,\n\t\tFrom:        workflowModel.FromSpecificVersion,\n\t\tVersion:     *meta.LatestPublishedVersion,\n\t\tOperator:    userID,\n\t\tMode:        workflowModel.ExecuteModeRelease,\n\t\tAppID:       appID,\n\t\tAgentID:     agentID,\n\t\tConnectorID: connectorID,\n\t\tConnectorUID: func() string {\n\t\t\tif runtimeUserID != nil {\n\t\t\t\treturn *runtimeUserID\n\t\t\t}\n\t\t\treturn strconv.FormatInt(userID, 10)\n\t\t}(),\n\t\tTaskType:      workflowModel.TaskTypeForeground,\n\t\tSyncPattern:   workflowModel.SyncPatternStream,\n\t\tInputFailFast: true,\n\t\tBizType:       workflowModel.BizTypeWorkflow,\n\t}\n\n\tif exeCfg.AppID != nil && exeCfg.AgentID != nil {\n\t\treturn nil, errors.New(\"project_id and bot_id cannot be set at the same time\")\n\t}\n\n\tsr, err := GetWorkflowDomainSVC().StreamExecute(ctx, exeCfg, parameters)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tconvert := convertStreamRunEvent(meta.ID)\n\n\treturn schema.StreamReaderWithConvert(sr, convert), nil\n}\n\nfunc (w *ApplicationService) OpenAPIStreamResume(ctx context.Context, req *workflow.OpenAPIStreamResumeFlowRequest) (\n\t_ *schema.StreamReader[*workflow.OpenAPIStreamRunFlowResponse], err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowExecuteFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tidStr := req.EventID\n\tidSegments := strings.Split(idStr, \"/\")\n\tif len(idSegments) != 2 {\n\t\treturn nil, fmt.Errorf(\"invalid event id when stream resume: %s\", idStr)\n\t}\n\n\texecuteID, err := strconv.ParseInt(idSegments[0], 10, 64)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse executeID from eventID segment %s: %w\", idSegments[0], err)\n\t}\n\teventID, err := strconv.ParseInt(idSegments[1], 10, 64)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse eventID from eventID segment %s: %w\", idSegments[1], err)\n\t}\n\n\tworkflowID := mustParseInt64(req.WorkflowID)\n\n\tresumeReq := &entity.ResumeRequest{\n\t\tExecuteID:  executeID,\n\t\tEventID:    eventID,\n\t\tResumeData: req.ResumeData,\n\t}\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tuserID := apiKeyInfo.UserID\n\truntimeUserID := func() *string {\n\t\tif uID, ok := req.Ext[\"user_id\"]; ok {\n\t\t\treturn ptr.Of(uID)\n\t\t}\n\t\treturn nil\n\t}()\n\n\tcheckResult, err := crosspermission.DefaultSVC().CheckAuthz(ctx, &permission.CheckAuthzData{\n\t\tOperatorID: userID,\n\t\tResourceIdentifier: []*permission.ResourceIdentifier{\n\t\t\t{\n\t\t\t\tType:   permission.ResourceTypeWorkflow,\n\t\t\t\tID:     []int64{workflowID},\n\t\t\t\tAction: permission.ActionRead,\n\t\t\t},\n\t\t},\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif checkResult.Decision != permission.Allow {\n\t\treturn nil, errorx.New(errno.ErrMemoryPermissionCode, errorx.KV(\"msg\", \"no permission\"))\n\t}\n\n\tvar connectorID int64\n\tif req.IsSetConnectorID() {\n\t\tconnectorID = mustParseInt64(req.GetConnectorID())\n\t}\n\n\tsr, err := GetWorkflowDomainSVC().StreamResume(ctx, resumeReq, workflowModel.ExecuteConfig{\n\t\tOperator:    userID,\n\t\tMode:        workflowModel.ExecuteModeRelease,\n\t\tConnectorID: connectorID,\n\t\tConnectorUID: func() string {\n\t\t\tif runtimeUserID != nil {\n\t\t\t\treturn *runtimeUserID\n\t\t\t}\n\t\t\treturn strconv.FormatInt(userID, 10)\n\t\t}(),\n\t\tBizType: workflowModel.BizTypeWorkflow,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tconvert := convertStreamRunEvent(workflowID)\n\n\treturn schema.StreamReaderWithConvert(sr, convert), nil\n}\n\nfunc (w *ApplicationService) OpenAPIRun(ctx context.Context, req *workflow.OpenAPIRunFlowRequest) (\n\t_ *workflow.OpenAPIRunFlowResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowExecuteFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tuserID := apiKeyInfo.UserID\n\truntimeUserID := func() *string {\n\t\tif uID, ok := req.Ext[\"user_id\"]; ok {\n\t\t\treturn ptr.Of(uID)\n\t\t}\n\t\treturn nil\n\t}()\n\n\tparameters := make(map[string]any)\n\tif req.Parameters != nil {\n\t\terr := sonic.UnmarshalString(*req.Parameters, &parameters)\n\t\tif err != nil {\n\t\t\treturn nil, vo.WrapError(errno.ErrInvalidParameter, err)\n\t\t}\n\t}\n\n\tmeta, err := GetWorkflowDomainSVC().Get(ctx, &vo.GetPolicy{\n\t\tID:       mustParseInt64(req.GetWorkflowID()),\n\t\tMetaOnly: true,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif meta.LatestPublishedVersion == nil {\n\t\treturn nil, vo.NewError(errno.ErrWorkflowNotPublished)\n\t}\n\n\tif err = checkUserSpace(ctx, userID, meta.SpaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar appID, agentID *int64\n\tif req.IsSetAppID() {\n\t\tappID = ptr.Of(mustParseInt64(req.GetAppID()))\n\t} else if req.IsSetProjectID() {\n\t\tappID = ptr.Of(mustParseInt64(req.GetProjectID()))\n\t}\n\tif req.IsSetBotID() {\n\t\tagentID = ptr.Of(mustParseInt64(req.GetBotID()))\n\t}\n\n\tvar connectorID int64\n\tif req.IsSetConnectorID() {\n\t\tconnectorID = mustParseInt64(req.GetConnectorID())\n\t}\n\n\tif connectorID != consts.WebSDKConnectorID {\n\t\tconnectorID = apiKeyInfo.ConnectorID\n\t}\n\n\texeCfg := workflowModel.ExecuteConfig{\n\t\tID:          meta.ID,\n\t\tFrom:        workflowModel.FromSpecificVersion,\n\t\tVersion:     *meta.LatestPublishedVersion,\n\t\tOperator:    userID,\n\t\tMode:        workflowModel.ExecuteModeRelease,\n\t\tAppID:       appID,\n\t\tAgentID:     agentID,\n\t\tConnectorID: connectorID,\n\t\tConnectorUID: func() string {\n\t\t\tif runtimeUserID != nil {\n\t\t\t\treturn *runtimeUserID\n\t\t\t}\n\t\t\treturn strconv.FormatInt(userID, 10)\n\t\t}(),\n\t\tInputFailFast: true,\n\t\tBizType:       workflowModel.BizTypeWorkflow,\n\t}\n\n\tif exeCfg.AppID != nil && exeCfg.AgentID != nil {\n\t\treturn nil, errors.New(\"project_id and bot_id cannot be set at the same time\")\n\t}\n\n\tif req.GetIsAsync() {\n\t\texeCfg.SyncPattern = workflowModel.SyncPatternAsync\n\t\texeCfg.TaskType = workflowModel.TaskTypeBackground\n\t\texeID, err := GetWorkflowDomainSVC().AsyncExecute(ctx, exeCfg, parameters)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treturn &workflow.OpenAPIRunFlowResponse{\n\t\t\tExecuteID: ptr.Of(strconv.FormatInt(exeID, 10)),\n\t\t\tDebugUrl:  ptr.Of(debugutil.GetWorkflowDebugURL(ctx, meta.ID, meta.SpaceID, exeID)),\n\t\t}, nil\n\t}\n\n\texeCfg.SyncPattern = workflowModel.SyncPatternSync\n\texeCfg.TaskType = workflowModel.TaskTypeForeground\n\twfExe, tPlan, err := GetWorkflowDomainSVC().SyncExecute(ctx, exeCfg, parameters)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif wfExe.Status == entity.WorkflowInterrupted {\n\t\treturn nil, vo.NewError(errno.ErrInterruptNotSupported)\n\t}\n\n\tvar data *string\n\tif tPlan == vo.ReturnVariables {\n\t\tdata = wfExe.Output\n\t} else {\n\t\tanswerOutput := map[string]any{\n\t\t\t\"content_type\":   1,\n\t\t\t\"data\":           *wfExe.Output,\n\t\t\t\"type_for_model\": 2,\n\t\t}\n\n\t\tanswerOutputStr, err := sonic.MarshalString(answerOutput)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tdata = ptr.Of(answerOutputStr)\n\t}\n\n\treturn &workflow.OpenAPIRunFlowResponse{\n\t\tData:      data,\n\t\tExecuteID: ptr.Of(strconv.FormatInt(wfExe.ID, 10)),\n\t\tDebugUrl:  ptr.Of(debugutil.GetWorkflowDebugURL(ctx, meta.ID, wfExe.SpaceID, wfExe.ID)),\n\t\tToken:     ptr.Of(wfExe.TokenInfo.InputTokens + wfExe.TokenInfo.OutputTokens),\n\t\tCost:      ptr.Of(\"0.00000\"),\n\t}, nil\n}\n\nfunc (w *ApplicationService) OpenAPIGetWorkflowRunHistory(ctx context.Context, req *workflow.GetWorkflowRunHistoryRequest) (\n\t_ *workflow.GetWorkflowRunHistoryResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tapiKeyInfo := ctxutil.GetApiAuthFromCtx(ctx)\n\tuserID := apiKeyInfo.UserID\n\n\texe, err := GetWorkflowDomainSVC().GetExecution(ctx, &entity.WorkflowExecution{\n\t\tID: mustParseInt64(req.GetExecuteID()),\n\t}, false)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err = checkUserSpace(ctx, userID, exe.SpaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar updateTime *int64\n\tif exe.UpdatedAt != nil {\n\t\tupdateTime = ptr.Of(exe.UpdatedAt.Unix())\n\t}\n\n\tvar runMode *workflow.WorkflowRunMode\n\tswitch exe.SyncPattern {\n\tcase workflowModel.SyncPatternSync:\n\t\trunMode = ptr.Of(workflow.WorkflowRunMode_Sync)\n\tcase workflowModel.SyncPatternAsync:\n\t\trunMode = ptr.Of(workflow.WorkflowRunMode_Async)\n\tcase workflowModel.SyncPatternStream:\n\t\trunMode = ptr.Of(workflow.WorkflowRunMode_Stream)\n\tdefault:\n\t}\n\n\tres := &workflow.GetWorkflowRunHistoryResponse{\n\t\tData: []*workflow.WorkflowExecuteHistory{\n\t\t\t{\n\t\t\t\tExecuteID:     ptr.Of(exe.ID),\n\t\t\t\tExecuteStatus: ptr.Of(workflow.WorkflowExeStatus(exe.Status).String()),\n\t\t\t\tBotID:         exe.AgentID,\n\t\t\t\tConnectorID:   ptr.Of(exe.ConnectorID),\n\t\t\t\tConnectorUID:  ptr.Of(exe.ConnectorUID),\n\t\t\t\tRunMode:       runMode,\n\t\t\t\tLogID:         ptr.Of(exe.LogID),\n\t\t\t\tCreateTime:    ptr.Of(exe.CreatedAt.Unix()),\n\t\t\t\tUpdateTime:    updateTime,\n\t\t\t\tDebugUrl:      ptr.Of(debugutil.GetWorkflowDebugURL(ctx, exe.WorkflowID, exe.SpaceID, exe.ID)),\n\t\t\t\tInput:         exe.Input,\n\t\t\t\tOutput:        exe.Output,\n\t\t\t\tToken:         ptr.Of(exe.TokenInfo.InputTokens + exe.TokenInfo.OutputTokens),\n\t\t\t\tCost:          ptr.Of(\"0.00000\"),\n\t\t\t\tErrorCode:     exe.ErrorCode,\n\t\t\t\tErrorMsg:      exe.FailReason,\n\t\t\t},\n\t\t},\n\t}\n\n\treturn res, nil\n}\n\nfunc (w *ApplicationService) ValidateTree(ctx context.Context, req *workflow.ValidateTreeRequest) (\n\t_ *workflow.ValidateTreeResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tcanvasSchema := req.GetSchema()\n\tif len(canvasSchema) == 0 {\n\t\treturn nil, errors.New(\"validate tree schema is required\")\n\t}\n\tresponse := &workflow.ValidateTreeResponse{}\n\n\tvalidateTreeCfg := vo.ValidateTreeConfig{\n\t\tCanvasSchema: canvasSchema,\n\t}\n\tif req.GetBindProjectID() != \"\" {\n\t\tpId, err := strconv.ParseInt(req.GetBindProjectID(), 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tvalidateTreeCfg.AppID = ptr.Of(pId)\n\t}\n\n\twfValidateInfos, err := GetWorkflowDomainSVC().ValidateTree(ctx, mustParseInt64(req.GetWorkflowID()), validateTreeCfg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresponse.Data = wfValidateInfos\n\n\treturn response, nil\n}\n\nfunc (w *ApplicationService) GetWorkflowReferences(ctx context.Context, req *workflow.GetWorkflowReferencesRequest) (\n\t_ *workflow.GetWorkflowReferencesResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif req.GetSpaceID() != strconv.FormatInt(consts.TemplateSpaceID, 10) {\n\t\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tworkflows, err := GetWorkflowDomainSVC().GetWorkflowReference(ctx, mustParseInt64(req.GetWorkflowID()))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresponse := &workflow.GetWorkflowReferencesResponse{}\n\tresponse.Data = &workflow.WorkflowReferencesData{\n\t\tWorkflowList: make([]*workflow.Workflow, 0, len(workflows)),\n\t}\n\tfor id, wk := range workflows {\n\t\twfw := &workflow.Workflow{\n\t\t\tWorkflowID:       strconv.FormatInt(id, 10),\n\t\t\tName:             wk.Name,\n\t\t\tDesc:             wk.Desc,\n\t\t\tURL:              wk.IconURL,\n\t\t\tIconURI:          wk.IconURI,\n\t\t\tStatus:           workflow.WorkFlowDevStatus_HadSubmit,\n\t\t\tCreateTime:       wk.CreatedAt.Unix(),\n\t\t\tTag:              wk.Tag,\n\t\t\tTemplateAuthorID: ptr.Of(strconv.FormatInt(wk.AuthorID, 10)),\n\t\t\tSpaceID:          ptr.Of(strconv.FormatInt(wk.SpaceID, 10)),\n\t\t\tCreator: &workflow.Creator{\n\t\t\t\tID: strconv.FormatInt(wk.CreatorID, 10),\n\t\t\t},\n\t\t\tFlowMode: wk.Mode,\n\t\t}\n\n\t\tif wk.UpdatedAt != nil {\n\t\t\twfw.UpdateTime = wk.UpdatedAt.Unix()\n\t\t}\n\n\t\tif wk.AppID != nil {\n\t\t\twfw.ProjectID = ptr.Of(strconv.FormatInt(ptr.From(wk.AppID), 10))\n\t\t}\n\n\t\tresponse.Data.WorkflowList = append(response.Data.WorkflowList, wfw)\n\t}\n\n\treturn response, nil\n}\n\nfunc (w *ApplicationService) TestResume(ctx context.Context, req *workflow.WorkflowTestResumeRequest) (\n\t_ *workflow.WorkflowTestResumeResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowExecuteFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tresumeReq := &entity.ResumeRequest{\n\t\tExecuteID:  mustParseInt64(req.GetExecuteID()),\n\t\tEventID:    mustParseInt64(req.GetEventID()),\n\t\tResumeData: req.GetData(),\n\t}\n\terr = GetWorkflowDomainSVC().AsyncResume(ctx, resumeReq, workflowModel.ExecuteConfig{\n\t\tOperator:    ptr.FromOrDefault(ctxutil.GetUIDFromCtx(ctx), 0),\n\t\tMode:        workflowModel.ExecuteModeDebug, // at this stage it could be debug or node debug, we will decide it within AsyncResume\n\t\tBizType:     workflowModel.BizTypeWorkflow,\n\t\tCancellable: true,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.WorkflowTestResumeResponse{}, nil\n}\n\nfunc (w *ApplicationService) Cancel(ctx context.Context, req *workflow.CancelWorkFlowRequest) (\n\t_ *workflow.CancelWorkFlowResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowExecuteFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = GetWorkflowDomainSVC().Cancel(ctx, mustParseInt64(req.GetExecuteID()),\n\t\tmustParseInt64(req.GetWorkflowID()), mustParseInt64(req.GetSpaceID()))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.CancelWorkFlowResponse{}, nil\n}\n\nfunc (w *ApplicationService) QueryWorkflowNodeTypes(ctx context.Context, req *workflow.QueryWorkflowNodeTypeRequest) (\n\t_ *workflow.QueryWorkflowNodeTypeResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tnodeProperties, err := GetWorkflowDomainSVC().QueryNodeProperties(ctx, mustParseInt64(req.GetWorkflowID()))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresponse := &workflow.QueryWorkflowNodeTypeResponse{\n\t\tData: &workflow.WorkflowNodeTypeData{\n\t\t\tNodeTypes:                  make([]string, 0),\n\t\t\tSubWorkflowNodeTypes:       make([]string, 0),\n\t\t\tNodesProperties:            make([]*workflow.NodeProps, 0),\n\t\t\tSubWorkflowNodesProperties: make([]*workflow.NodeProps, 0),\n\t\t},\n\t}\n\tvar combineNodesTypes func(props map[string]*vo.NodeProperty, deep int) error\n\n\tdeepestSubWorkflowNodeTypes := make([]string, 0)\n\n\tcombineNodesTypes = func(m map[string]*vo.NodeProperty, deep int) error {\n\t\tdeepestSubWorkflowNodeTypes = make([]string, 0)\n\t\tfor id, nodeProp := range m {\n\t\t\tif deep == 0 {\n\t\t\t\tresponse.Data.NodesProperties = append(response.Data.NodesProperties, &workflow.NodeProps{\n\t\t\t\t\tID:                  id,\n\t\t\t\t\tType:                nodeProp.Type,\n\t\t\t\t\tIsEnableChatHistory: nodeProp.IsEnableChatHistory,\n\t\t\t\t\tIsEnableUserQuery:   nodeProp.IsEnableUserQuery,\n\t\t\t\t\tIsRefGlobalVariable: nodeProp.IsRefGlobalVariable,\n\t\t\t\t})\n\n\t\t\t\tresponse.Data.NodeTypes = append(response.Data.NodeTypes, nodeProp.Type)\n\t\t\t} else {\n\t\t\t\tresponse.Data.SubWorkflowNodesProperties = append(response.Data.SubWorkflowNodesProperties, &workflow.NodeProps{\n\t\t\t\t\tID:                  id,\n\t\t\t\t\tType:                nodeProp.Type,\n\t\t\t\t\tIsEnableChatHistory: nodeProp.IsEnableChatHistory,\n\t\t\t\t\tIsEnableUserQuery:   nodeProp.IsEnableUserQuery,\n\t\t\t\t\tIsRefGlobalVariable: nodeProp.IsRefGlobalVariable,\n\t\t\t\t})\n\t\t\t\tdeepestSubWorkflowNodeTypes = append(deepestSubWorkflowNodeTypes, nodeProp.Type)\n\n\t\t\t}\n\t\t\tif len(nodeProp.SubWorkflow) > 0 {\n\t\t\t\terr := combineNodesTypes(nodeProp.SubWorkflow, deep+1)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tresponse.Data.SubWorkflowNodeTypes = slices.Unique(deepestSubWorkflowNodeTypes)\n\t\treturn nil\n\t}\n\tresponse.Data.NodeTypes = slices.Unique(response.Data.NodeTypes)\n\n\terr = combineNodesTypes(nodeProperties, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn response, nil\n}\n\nfunc (w *ApplicationService) PublishWorkflow(ctx context.Context, req *workflow.PublishWorkflowRequest) (\n\t_ *workflow.PublishWorkflowResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tuserID := ctxutil.MustGetUIDFromCtx(ctx)\n\tif err := checkUserSpace(ctx, userID, mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tinfo := &vo.PublishPolicy{\n\t\tID:                 mustParseInt64(req.GetWorkflowID()),\n\t\tVersion:            req.GetWorkflowVersion(),\n\t\tVersionDescription: req.GetVersionDescription(),\n\t\tCreatorID:          userID,\n\t\tCommitID:           req.GetCommitID(),\n\t\tForce:              req.GetForce(),\n\t}\n\n\terr = w.publishWorkflowResource(ctx, info)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.PublishWorkflowResponse{\n\t\tData: &workflow.PublishWorkflowData{\n\t\t\tWorkflowID: req.GetWorkflowID(),\n\t\t\tSuccess:    true,\n\t\t},\n\t}, nil\n}\n\nfunc (w *ApplicationService) ListWorkflow(ctx context.Context, req *workflow.GetWorkFlowListRequest) (\n\t_ *workflow.GetWorkFlowListResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif req.GetSpaceID() == \"\" {\n\t\treturn nil, errors.New(\"space id is required\")\n\t}\n\n\tif req.GetPage() <= 0 || req.GetSize() <= 0 || req.GetSize() > 100 {\n\t\treturn nil, fmt.Errorf(\"the number of page or size must be greater than 0, and the size must be greater than 0 and less than 100\")\n\t}\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpage := &vo.Page{\n\t\tPage: req.GetPage(),\n\t\tSize: req.GetSize(),\n\t}\n\n\toption := vo.MetaQuery{\n\t\tPage:            page,\n\t\tNeedTotalNumber: true,\n\t}\n\n\tif req.ProjectID != nil {\n\t\toption.AppID = ptr.Of(mustParseInt64(*req.ProjectID))\n\t} else {\n\t\toption.LibOnly = true\n\t}\n\n\tstatus := req.GetStatus()\n\tvar qType workflowModel.Locator\n\tif status == workflow.WorkFlowListStatus_UnPublished {\n\t\toption.PublishStatus = ptr.Of(vo.UnPublished)\n\t\tqType = workflowModel.FromDraft\n\t} else if status == workflow.WorkFlowListStatus_HadPublished {\n\t\toption.PublishStatus = ptr.Of(vo.HasPublished)\n\t\tqType = workflowModel.FromLatestVersion\n\t}\n\n\tif len(req.GetName()) > 0 {\n\t\toption.Name = req.Name\n\t}\n\n\tif len(req.GetWorkflowIds()) > 0 {\n\t\tids, err := slices.TransformWithErrorCheck[string, int64](req.GetWorkflowIds(), func(s string) (int64, error) {\n\t\t\treturn strconv.ParseInt(s, 10, 64)\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\toption.IDs = ids\n\t}\n\n\tif req.IsSetFlowMode() && req.GetFlowMode() != workflow.WorkflowMode_All {\n\t\toption.Mode = ptr.Of(workflowModel.WorkflowMode(req.GetFlowMode()))\n\t}\n\n\tspaceID, err := strconv.ParseInt(req.GetSpaceID(), 10, 64)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"space id is invalid, parse to int64 failed, err: %w\", err)\n\t}\n\toption.SpaceID = ptr.Of(spaceID)\n\toption.DescByUpdate = true\n\n\twfs, total, err := GetWorkflowDomainSVC().MGet(ctx, &vo.MGetPolicy{\n\t\tMetaQuery: option,\n\t\tQType:     qType,\n\t\tMetaOnly:  false,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresponse := &workflow.GetWorkFlowListResponse{\n\t\tData: &workflow.WorkFlowListData{\n\t\t\tAuthList:     make([]*workflow.ResourceAuthInfo, 0),\n\t\t\tWorkflowList: make([]*workflow.Workflow, 0, len(wfs)),\n\t\t},\n\t}\n\n\twf2CreatorID := make(map[int64]string)\n\tworkflowList := make([]*workflow.Workflow, 0, len(wfs))\n\tfor _, w := range wfs {\n\t\twf2CreatorID[w.ID] = strconv.FormatInt(w.CreatorID, 10)\n\t\tww := &workflow.Workflow{\n\t\t\tWorkflowID:       strconv.FormatInt(w.ID, 10),\n\t\t\tName:             w.Name,\n\t\t\tDesc:             w.Desc,\n\t\t\tIconURI:          w.IconURI,\n\t\t\tURL:              w.IconURL,\n\t\t\tCreateTime:       w.CreatedAt.Unix(),\n\t\t\tType:             w.ContentType,\n\t\t\tSchemaType:       workflow.SchemaType_FDL,\n\t\t\tTag:              w.Tag,\n\t\t\tTemplateAuthorID: ptr.Of(strconv.FormatInt(w.AuthorID, 10)),\n\t\t\tSpaceID:          ptr.Of(strconv.FormatInt(w.SpaceID, 10)),\n\t\t\tPluginID: func() string {\n\t\t\t\tif status == workflow.WorkFlowListStatus_UnPublished {\n\t\t\t\t\treturn \"0\"\n\t\t\t\t}\n\t\t\t\treturn strconv.FormatInt(w.ID, 10)\n\t\t\t}(),\n\t\t\tCreator: &workflow.Creator{\n\t\t\t\tID:   strconv.FormatInt(w.CreatorID, 10),\n\t\t\t\tSelf: ternary.IFElse[bool](w.CreatorID == ptr.From(ctxutil.GetUIDFromCtx(ctx)), true, false),\n\t\t\t},\n\t\t}\n\n\t\tif len(req.Checker) > 0 && status == workflow.WorkFlowListStatus_HadPublished {\n\t\t\tww.CheckResult, err = GetWorkflowDomainSVC().WorkflowSchemaCheck(ctx, w, req.Checker)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\tif qType == workflowModel.FromDraft {\n\t\t\tww.UpdateTime = w.DraftMeta.Timestamp.Unix()\n\t\t} else if qType == workflowModel.FromLatestVersion || qType == workflowModel.FromSpecificVersion {\n\t\t\tww.UpdateTime = w.VersionMeta.VersionCreatedAt.Unix()\n\t\t} else if w.UpdatedAt != nil {\n\t\t\tww.UpdateTime = w.UpdatedAt.Unix()\n\t\t}\n\n\t\tstartNode := &workflow.Node{\n\t\t\tNodeID:    \"100001\",\n\t\t\tNodeName:  \"start-node\",\n\t\t\tNodeParam: &workflow.NodeParam{InputParameters: make([]*workflow.Parameter, 0)},\n\t\t}\n\n\t\tfor _, in := range w.InputParams {\n\t\t\tparam, err := toWorkflowParameter(in)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tstartNode.NodeParam.InputParameters = append(startNode.NodeParam.InputParameters, param)\n\t\t}\n\n\t\tww.StartNode = startNode\n\n\t\tauth := &workflow.ResourceAuthInfo{\n\t\t\tWorkflowID: strconv.FormatInt(w.ID, 10),\n\t\t\tUserID:     strconv.FormatInt(w.CreatorID, 10),\n\t\t\tAuth:       &workflow.ResourceActionAuth{CanEdit: true, CanDelete: true, CanCopy: true},\n\t\t}\n\t\tworkflowList = append(workflowList, ww)\n\t\tresponse.Data.AuthList = append(response.Data.AuthList, auth)\n\t}\n\n\tuserBasicInfoResponse, err := user.UserApplicationSVC.MGetUserBasicInfo(ctx, &playground.MGetUserBasicInfoRequest{UserIds: slices.Unique(xmaps.Values(wf2CreatorID))})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, w := range workflowList {\n\t\tif u, ok := userBasicInfoResponse.UserBasicInfoMap[w.Creator.ID]; ok {\n\t\t\tw.Creator.Name = u.Username\n\t\t\tw.Creator.AvatarURL = u.UserAvatar\n\t\t}\n\t}\n\n\tresponse.Data.WorkflowList = workflowList\n\tresponse.Data.Total = total\n\n\treturn response, nil\n}\n\nfunc (w *ApplicationService) GetWorkflowDetail(ctx context.Context, req *workflow.GetWorkflowDetailRequest) (\n\t_ *vo.WorkflowDetailDataList, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tids, err := slices.TransformWithErrorCheck(req.GetWorkflowIds(), func(s string) (int64, error) {\n\t\twid, err := strconv.ParseInt(s, 10, 64)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\treturn wid, nil\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(ids) == 0 {\n\t\treturn &vo.WorkflowDetailDataList{}, nil\n\t}\n\n\twfs, _, err := GetWorkflowDomainSVC().MGet(ctx, &vo.MGetPolicy{\n\t\tMetaQuery: vo.MetaQuery{\n\t\t\tIDs: ids,\n\t\t},\n\t\tQType:    workflowModel.FromDraft,\n\t\tMetaOnly: false,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tworkflowDetailDataList := &vo.WorkflowDetailDataList{\n\t\tList: make([]*workflow.WorkflowDetailData, 0, len(wfs)),\n\t}\n\tinputs := make(map[string]any)\n\toutputs := make(map[string]any)\n\tfor _, wf := range wfs {\n\t\twfIDStr := strconv.FormatInt(wf.ID, 10)\n\t\twd := &workflow.WorkflowDetailData{\n\t\t\tWorkflowID: wfIDStr,\n\t\t\tName:       wf.Name,\n\t\t\tDesc:       wf.Desc,\n\t\t\tSpaceID:    strconv.FormatInt(wf.SpaceID, 10),\n\t\t\tCreateTime: wf.CreatedAt.Unix(),\n\t\t\tIconURI:    wf.IconURI,\n\t\t\tIcon:       wf.IconURL,\n\t\t\tFlowMode:   wf.Mode,\n\t\t}\n\n\t\tcv := &vo.Canvas{}\n\t\terr = sonic.UnmarshalString(wf.Canvas, cv)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\twd.EndType, err = parseWorkflowTerminatePlanType(cv)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif wf.AppID != nil {\n\t\t\twd.ProjectID = strconv.FormatInt(*wf.AppID, 10)\n\t\t}\n\n\t\tif wf.UpdatedAt != nil {\n\t\t\twd.UpdateTime = wf.UpdatedAt.Unix()\n\t\t}\n\t\tinputs[wfIDStr], err = toVariables(wf.InputParams)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\toutputs[wfIDStr], err = toVariables(wf.OutputParams)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tworkflowDetailDataList.List = append(workflowDetailDataList.List, wd)\n\t}\n\n\tworkflowDetailDataList.Inputs = inputs\n\tworkflowDetailDataList.Outputs = outputs\n\n\treturn workflowDetailDataList, nil\n}\n\nfunc (w *ApplicationService) GetWorkflowDetailInfo(ctx context.Context, req *workflow.GetWorkflowDetailInfoRequest) (\n\t_ *vo.WorkflowDetailInfoDataList, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar (\n\t\tdraftIDs   []int64\n\t\tversionIDs []int64\n\t\tid2Version = make(map[int64]string)\n\t)\n\n\tfor _, wf := range req.GetWorkflowFilterList() {\n\t\tid, err := strconv.ParseInt(wf.WorkflowID, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif wf.WorkflowVersion == nil || len(*wf.WorkflowVersion) == 0 {\n\t\t\tdraftIDs = append(draftIDs, id)\n\t\t} else {\n\t\t\tversionIDs = append(versionIDs, id)\n\t\t\tid2Version[id] = *wf.WorkflowVersion\n\t\t}\n\t}\n\n\tif len(draftIDs)+len(versionIDs) == 0 {\n\t\treturn &vo.WorkflowDetailInfoDataList{}, nil\n\t}\n\n\tvar wfs []*entity.Workflow\n\tif len(draftIDs) > 0 {\n\t\twfs, _, err = GetWorkflowDomainSVC().MGet(ctx, &vo.MGetPolicy{\n\t\t\tMetaQuery: vo.MetaQuery{\n\t\t\t\tIDs: draftIDs,\n\t\t\t},\n\t\t\tQType:    workflowModel.FromDraft,\n\t\t\tMetaOnly: false,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif len(versionIDs) > 0 {\n\t\tversionWfs, _, err := GetWorkflowDomainSVC().MGet(ctx, &vo.MGetPolicy{\n\t\t\tMetaQuery: vo.MetaQuery{\n\t\t\t\tIDs: versionIDs,\n\t\t\t},\n\t\t\tQType:    workflowModel.FromSpecificVersion,\n\t\t\tMetaOnly: false,\n\t\t\tVersions: id2Version,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\twfs = append(wfs, versionWfs...)\n\t}\n\n\tworkflowDetailInfoDataList := &vo.WorkflowDetailInfoDataList{\n\t\tList: make([]*workflow.WorkflowDetailInfoData, 0, len(wfs)),\n\t}\n\tinputs := make(map[string]any)\n\toutputs := make(map[string]any)\n\tfor _, wf := range wfs {\n\t\twfIDStr := strconv.FormatInt(wf.ID, 10)\n\t\twd := &workflow.WorkflowDetailInfoData{\n\t\t\tWorkflowID: wfIDStr,\n\t\t\tName:       wf.Name,\n\t\t\tDesc:       wf.Desc,\n\t\t\tSpaceID:    strconv.FormatInt(wf.SpaceID, 10),\n\t\t\tCreateTime: wf.CreatedAt.Unix(),\n\t\t\tIconURI:    wf.IconURI,\n\t\t\tIcon:       wf.IconURL,\n\t\t\tFlowMode:   wf.Mode,\n\t\t\tCreator: &workflow.Creator{\n\t\t\t\tID:   strconv.FormatInt(wf.CreatorID, 10),\n\t\t\t\tSelf: ternary.IFElse[bool](wf.CreatorID == ptr.From(ctxutil.GetUIDFromCtx(ctx)), true, false),\n\t\t\t},\n\n\t\t\tLatestFlowVersion: wf.GetLatestVersion(),\n\t\t}\n\n\t\tif wf.VersionMeta != nil {\n\t\t\twd.FlowVersion = wf.Version\n\t\t\twd.FlowVersionDesc = wf.VersionDescription\n\t\t}\n\n\t\tcv := &vo.Canvas{}\n\t\terr = sonic.UnmarshalString(wf.Canvas, cv)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\twd.EndType, err = parseWorkflowTerminatePlanType(cv)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif wf.DraftMeta != nil {\n\t\t\twd.UpdateTime = wf.DraftMeta.Timestamp.Unix()\n\t\t} else if wf.VersionMeta != nil {\n\t\t\twd.UpdateTime = wf.VersionMeta.VersionCreatedAt.Unix()\n\t\t} else if wf.UpdatedAt != nil {\n\t\t\twd.UpdateTime = wf.UpdatedAt.Unix()\n\t\t}\n\n\t\tif wf.AppID != nil {\n\t\t\twd.ProjectID = strconv.FormatInt(*wf.AppID, 10)\n\t\t}\n\n\t\tinputs[wfIDStr], err = toVariables(wf.InputParams)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif wd.EndType == 1 {\n\t\t\toutputs[wfIDStr] = []*vo.Variable{\n\t\t\t\t{\n\t\t\t\t\tName: \"output\",\n\t\t\t\t\tType: vo.VariableTypeString,\n\t\t\t\t},\n\t\t\t}\n\t\t} else {\n\t\t\toutputs[wfIDStr], err = toVariables(wf.OutputParams)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tworkflowDetailInfoDataList.List = append(workflowDetailInfoDataList.List, wd)\n\t}\n\tworkflowDetailInfoDataList.Inputs = inputs\n\tworkflowDetailInfoDataList.Outputs = outputs\n\treturn workflowDetailInfoDataList, nil\n}\n\nfunc (w *ApplicationService) GetWorkflowUploadAuthToken(ctx context.Context, req *workflow.GetUploadAuthTokenRequest) (\n\t_ *workflow.GetUploadAuthTokenResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tvar (\n\t\tsceneToUploadPrefixMap = map[string]string{\n\t\t\t\"imageflow\": \"imageflow-\",\n\t\t}\n\t\tprefix string\n\t\tok     bool\n\t)\n\n\tif prefix, ok = sceneToUploadPrefixMap[req.GetScene()]; !ok {\n\t\treturn nil, fmt.Errorf(\"scene %s is not supported\", req.GetScene())\n\t}\n\n\tauthToken, err := w.getAuthToken(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.GetUploadAuthTokenResponse{\n\t\tData: &workflow.GetUploadAuthTokenData{\n\t\t\tServiceID:        authToken.ServiceID,\n\t\t\tUploadPathPrefix: prefix,\n\t\t\tUploadHost:       authToken.UploadHost,\n\t\t\tAuth: &workflow.UploadAuthTokenInfo{\n\t\t\t\tAccessKeyID:     authToken.AccessKeyID,\n\t\t\t\tSecretAccessKey: authToken.SecretAccessKey,\n\t\t\t\tSessionToken:    authToken.SessionToken,\n\t\t\t\tExpiredTime:     authToken.ExpiredTime,\n\t\t\t\tCurrentTime:     authToken.CurrentTime,\n\t\t\t},\n\t\t\tSchema: authToken.HostScheme,\n\t\t},\n\t}, nil\n}\n\nfunc (w *ApplicationService) getAuthToken(ctx context.Context) (*bot_common.AuthToken, error) {\n\tuploadAuthToken, err := w.ImageX.GetUploadAuth(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tauthToken := &bot_common.AuthToken{\n\t\tServiceID:       w.ImageX.GetServerID(),\n\t\tAccessKeyID:     uploadAuthToken.AccessKeyID,\n\t\tSecretAccessKey: uploadAuthToken.SecretAccessKey,\n\t\tSessionToken:    uploadAuthToken.SessionToken,\n\t\tExpiredTime:     uploadAuthToken.ExpiredTime,\n\t\tCurrentTime:     uploadAuthToken.CurrentTime,\n\t\tUploadHost:      w.ImageX.GetUploadHost(ctx),\n\t\tHostScheme:      uploadAuthToken.HostScheme,\n\t}\n\treturn authToken, nil\n}\n\nfunc (w *ApplicationService) SignImageURL(ctx context.Context, req *workflow.SignImageURLRequest) (\n\t_ *workflow.SignImageURLResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\turl, err := w.ImageX.GetResourceURL(ctx, req.GetURI())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.SignImageURLResponse{\n\t\tURL: url.URL,\n\t}, nil\n}\n\nfunc (w *ApplicationService) GetApiDetail(ctx context.Context, req *workflow.GetApiDetailRequest) (\n\t_ *vo.ToolDetailInfo, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\ttoolID, err := strconv.ParseInt(req.GetAPIID(), 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpluginID, err := strconv.ParseInt(req.GetPluginID(), 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttoolInfoResponse, err := plugin.GetPluginToolsInfo(ctx, &plugin.ToolsInfoRequest{\n\t\tPluginEntity: vo.PluginEntity{\n\t\t\tPluginID:      pluginID,\n\t\t\tPluginVersion: req.PluginVersion,\n\t\t\tPluginFrom:    req.PluginFrom,\n\t\t},\n\t\tToolIDs: []int64{toolID},\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttoolInfo, ok := toolInfoResponse.ToolInfoList[toolID]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"tool info not found, tool id: %d\", toolID)\n\t}\n\n\tinputVars, err := slices.TransformWithErrorCheck(toolInfo.Inputs, toVariable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\toutputVars, err := slices.TransformWithErrorCheck(toolInfo.Outputs, toVariable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttoolDetailInfo := &vo.ToolDetailInfo{\n\t\tApiDetailData: &workflow.ApiDetailData{\n\t\t\tPluginID:            req.GetPluginID(),\n\t\t\tSpaceID:             req.GetSpaceID(),\n\t\t\tIcon:                toolInfoResponse.IconURL,\n\t\t\tName:                toolInfoResponse.PluginName,\n\t\t\tDesc:                toolInfoResponse.Description,\n\t\t\tApiName:             toolInfo.ToolName,\n\t\t\tVersion:             &toolInfoResponse.Version,\n\t\t\tVersionName:         &toolInfoResponse.Version,\n\t\t\tPluginType:          workflow.PluginType(toolInfoResponse.PluginType),\n\t\t\tLatestVersionName:   toolInfoResponse.LatestVersion,\n\t\t\tLatestVersion:       toolInfoResponse.LatestVersion,\n\t\t\tPluginProductStatus: ternary.IFElse(toolInfoResponse.IsOfficial, int64(1), 0),\n\t\t\tProjectID:           ternary.IFElse(toolInfoResponse.AppID != 0, ptr.Of(strconv.FormatInt(toolInfoResponse.AppID, 10)), nil),\n\t\t\tPluginFrom:          req.PluginFrom,\n\t\t},\n\t\tToolInputs:  inputVars,\n\t\tToolOutputs: outputVars,\n\t}\n\n\treturn toolDetailInfo, nil\n}\n\nfunc (w *ApplicationService) GetLLMNodeFCSettingDetail(ctx context.Context, req *workflow.GetLLMNodeFCSettingDetailRequest) (\n\t_ *GetLLMNodeFCSettingDetailResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar (\n\t\tpluginToolsInfoReqs = make(map[int64]*plugin.ToolsInfoRequest)\n\t\tpluginDetailMap     = make(map[string]*workflow.PluginDetail)\n\t\ttoolsDetailInfo     = make(map[string]*workflow.APIDetail)\n\t\tworkflowDetailMap   = make(map[string]*workflow.WorkflowDetail)\n\t\tknowledgeDetailMap  = make(map[string]*workflow.DatasetDetail)\n\t)\n\n\tif len(req.GetPluginList()) > 0 {\n\t\tfor _, pl := range req.GetPluginList() {\n\t\t\tpluginID, err := strconv.ParseInt(pl.PluginID, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\ttoolID, err := strconv.ParseInt(pl.APIID, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif r, ok := pluginToolsInfoReqs[pluginID]; ok {\n\t\t\t\tr.ToolIDs = append(r.ToolIDs, toolID)\n\t\t\t} else {\n\t\t\t\tpluginToolsInfoReqs[pluginID] = &plugin.ToolsInfoRequest{\n\t\t\t\t\tPluginEntity: vo.PluginEntity{\n\t\t\t\t\t\tPluginID:      pluginID,\n\t\t\t\t\t\tPluginVersion: pl.PluginVersion,\n\t\t\t\t\t\tPluginFrom:    pl.PluginFrom,\n\t\t\t\t\t},\n\t\t\t\t\tToolIDs: []int64{toolID},\n\t\t\t\t\tIsDraft: pl.IsDraft,\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\tfor _, r := range pluginToolsInfoReqs {\n\t\t\tresp, err := plugin.GetPluginToolsInfo(ctx, r)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tpluginIdStr := strconv.FormatInt(resp.PluginID, 10)\n\t\t\tif _, ok := pluginDetailMap[pluginIdStr]; !ok {\n\t\t\t\tpluginDetail := &workflow.PluginDetail{\n\t\t\t\t\tID:          pluginIdStr,\n\t\t\t\t\tName:        resp.PluginName,\n\t\t\t\t\tIconURL:     resp.IconURL,\n\t\t\t\t\tDescription: resp.Description,\n\t\t\t\t\tPluginType:  resp.PluginType,\n\t\t\t\t\tVersionName: resp.Version,\n\t\t\t\t\tIsOfficial:  resp.IsOfficial,\n\t\t\t\t}\n\n\t\t\t\tif resp.LatestVersion != nil {\n\t\t\t\t\tpluginDetail.LatestVersionName = *resp.LatestVersion\n\t\t\t\t}\n\t\t\t\tpluginDetailMap[pluginIdStr] = pluginDetail\n\t\t\t}\n\n\t\t\tfor id, tl := range resp.ToolInfoList {\n\t\t\t\ttoolIDStr := strconv.FormatInt(id, 10)\n\t\t\t\tif _, ok := toolsDetailInfo[toolIDStr]; !ok {\n\t\t\t\t\ttoolDetail := &workflow.APIDetail{\n\t\t\t\t\t\tID:          toolIDStr,\n\t\t\t\t\t\tPluginID:    pluginIdStr,\n\t\t\t\t\t\tName:        tl.ToolName,\n\t\t\t\t\t\tDescription: tl.Description,\n\t\t\t\t\t}\n\t\t\t\t\ttoolsDetailInfo[toolIDStr] = toolDetail\n\n\t\t\t\t\ttoolDetail.Parameters = tl.Inputs\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\t}\n\n\tif len(req.GetWorkflowList()) > 0 {\n\t\tvar (\n\t\t\tdraftIDs   []int64\n\t\t\tversionIDs []int64\n\t\t\tid2Version = make(map[int64]string)\n\t\t)\n\n\t\tfor _, wf := range req.GetWorkflowList() {\n\t\t\tid, err := strconv.ParseInt(wf.WorkflowID, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif wf.WorkflowVersion == nil || len(*wf.WorkflowVersion) == 0 {\n\t\t\t\tdraftIDs = append(draftIDs, id)\n\t\t\t} else {\n\t\t\t\tversionIDs = append(versionIDs, id)\n\t\t\t\tid2Version[id] = *wf.WorkflowVersion\n\t\t\t}\n\t\t}\n\n\t\tvar wfs []*entity.Workflow\n\t\tif len(draftIDs) > 0 {\n\t\t\twfs, _, err = GetWorkflowDomainSVC().MGet(ctx, &vo.MGetPolicy{\n\t\t\t\tMetaQuery: vo.MetaQuery{\n\t\t\t\t\tIDs: draftIDs,\n\t\t\t\t},\n\t\t\t\tQType:    workflowModel.FromDraft,\n\t\t\t\tMetaOnly: false,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\tif len(id2Version) > 0 {\n\t\t\twfs2, _, err := GetWorkflowDomainSVC().MGet(ctx, &vo.MGetPolicy{\n\t\t\t\tMetaQuery: vo.MetaQuery{\n\t\t\t\t\tIDs: versionIDs,\n\t\t\t\t},\n\t\t\t\tQType:    workflowModel.FromSpecificVersion,\n\t\t\t\tMetaOnly: false,\n\t\t\t\tVersions: id2Version,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\twfs = append(wfs, wfs2...)\n\t\t}\n\n\t\tfor _, wf := range wfs {\n\t\t\twfIDStr := strconv.FormatInt(wf.ID, 10)\n\t\t\tworkflowParameters, err := slices.TransformWithErrorCheck(wf.InputParams, toWorkflowAPIParameter)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tworkflowDetailMap[wfIDStr] = &workflow.WorkflowDetail{\n\t\t\t\tID:                wfIDStr,\n\t\t\t\tPluginID:          wfIDStr,\n\t\t\t\tDescription:       wf.Desc,\n\t\t\t\tName:              wf.Name,\n\t\t\t\tIconURL:           wf.IconURL,\n\t\t\t\tType:              int64(common.PluginType_WORKFLOW),\n\t\t\t\tLatestVersionName: wf.GetLatestVersion(),\n\t\t\t\tAPIDetail: &workflow.APIDetail{\n\t\t\t\t\tID:         wfIDStr,\n\t\t\t\t\tPluginID:   wfIDStr,\n\t\t\t\t\tName:       wf.Name,\n\t\t\t\t\tParameters: workflowParameters,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(req.GetDatasetList()) > 0 {\n\t\tknowledgeOperator := crossknowledge.DefaultSVC()\n\t\tknowledgeIDs, err := slices.TransformWithErrorCheck(req.GetDatasetList(), func(a *workflow.DatasetFCItem) (int64, error) {\n\t\t\treturn strconv.ParseInt(a.GetDatasetID(), 10, 64)\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdetails, err := knowledgeOperator.ListKnowledgeDetail(ctx, &model.ListKnowledgeDetailRequest{KnowledgeIDs: knowledgeIDs})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tknowledgeDetailMap = slices.ToMap(details.KnowledgeDetails, func(kd *model.KnowledgeDetail) (string, *workflow.DatasetDetail) {\n\t\t\treturn strconv.FormatInt(kd.ID, 10), &workflow.DatasetDetail{\n\t\t\t\tID:         strconv.FormatInt(kd.ID, 10),\n\t\t\t\tName:       kd.Name,\n\t\t\t\tIconURL:    kd.IconURL,\n\t\t\t\tFormatType: kd.FormatType,\n\t\t\t}\n\t\t})\n\n\t}\n\n\tresponse := &workflow.GetLLMNodeFCSettingDetailResponse{\n\t\tPluginDetailMap:    pluginDetailMap,\n\t\tPluginAPIDetailMap: toolsDetailInfo,\n\t\tWorkflowDetailMap:  workflowDetailMap,\n\t\tDatasetDetailMap:   knowledgeDetailMap,\n\t}\n\n\treturn &GetLLMNodeFCSettingDetailResponse{\n\t\tGetLLMNodeFCSettingDetailResponse: response,\n\t}, nil\n}\n\nfunc (w *ApplicationService) GetLLMNodeFCSettingsMerged(ctx context.Context, req *workflow.GetLLMNodeFCSettingsMergedRequest) (\n\t_ *workflow.GetLLMNodeFCSettingsMergedResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar fcPluginSetting *workflow.FCPluginSetting\n\tif req.GetPluginFcSetting() != nil {\n\t\tvar (\n\t\t\tpluginFcSetting = req.GetPluginFcSetting()\n\t\t\tisDraft         = pluginFcSetting.GetIsDraft()\n\t\t)\n\n\t\tpluginID, err := strconv.ParseInt(pluginFcSetting.GetPluginID(), 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\ttoolID, err := strconv.ParseInt(pluginFcSetting.GetAPIID(), 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpluginReq := &plugin.ToolsInfoRequest{\n\t\t\tPluginEntity: vo.PluginEntity{\n\t\t\t\tPluginID:   pluginID,\n\t\t\t\tPluginFrom: pluginFcSetting.PluginFrom,\n\t\t\t},\n\t\t\tToolIDs: []int64{toolID},\n\t\t\tIsDraft: isDraft,\n\t\t}\n\n\t\tpInfo, err := plugin.GetPluginToolsInfo(ctx, pluginReq)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ttoolInfo, ok := pInfo.ToolInfoList[toolID]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"tool info not found, too id=%v\", toolID)\n\t\t}\n\n\t\tlatestRequestParams := toolInfo.Inputs\n\t\tlatestResponseParams := toolInfo.Outputs\n\t\tmergeWorkflowAPIParameters(latestRequestParams, pluginFcSetting.GetRequestParams())\n\t\tmergeWorkflowAPIParameters(latestResponseParams, pluginFcSetting.GetResponseParams())\n\n\t\tfcPluginSetting = &workflow.FCPluginSetting{\n\t\t\tPluginID:       strconv.FormatInt(pInfo.PluginID, 10),\n\t\t\tAPIID:          strconv.FormatInt(toolInfo.ToolID, 10),\n\t\t\tAPIName:        toolInfo.ToolName,\n\t\t\tIsDraft:        isDraft,\n\t\t\tRequestParams:  latestRequestParams,\n\t\t\tResponseParams: latestResponseParams,\n\t\t\tPluginVersion:  pluginFcSetting.GetPluginVersion(),\n\t\t\tResponseStyle:  &workflow.ResponseStyle{},\n\t\t}\n\t}\n\tvar fCWorkflowSetting *workflow.FCWorkflowSetting\n\tif setting := req.GetWorkflowFcSetting(); setting != nil {\n\t\twID, err := strconv.ParseInt(setting.GetWorkflowID(), 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpolicy := &vo.GetPolicy{\n\t\t\tID:      wID,\n\t\t\tQType:   ternary.IFElse(len(setting.WorkflowVersion) == 0, workflowModel.FromDraft, workflowModel.FromSpecificVersion),\n\t\t\tVersion: setting.WorkflowVersion,\n\t\t}\n\n\t\twf, err := GetWorkflowDomainSVC().Get(ctx, policy)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tlatestRequestParams, err := slices.TransformWithErrorCheck(wf.InputParams, toWorkflowAPIParameter)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tlatestResponseParams, err := slices.TransformWithErrorCheck(wf.OutputParams, toWorkflowAPIParameter)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tmergeWorkflowAPIParameters(latestRequestParams, setting.GetRequestParams())\n\n\t\tmergeWorkflowAPIParameters(latestResponseParams, setting.GetResponseParams())\n\n\t\tfCWorkflowSetting = &workflow.FCWorkflowSetting{\n\t\t\tWorkflowID:     strconv.FormatInt(wID, 10),\n\t\t\tPluginID:       strconv.FormatInt(wID, 10),\n\t\t\tIsDraft:        setting.GetIsDraft(),\n\t\t\tRequestParams:  latestRequestParams,\n\t\t\tResponseParams: latestResponseParams,\n\t\t\tResponseStyle:  &workflow.ResponseStyle{},\n\t\t}\n\t}\n\n\treturn &workflow.GetLLMNodeFCSettingsMergedResponse{\n\t\tPluginFcSetting:  fcPluginSetting,\n\t\tWorflowFcSetting: fCWorkflowSetting,\n\t}, nil\n}\n\nfunc (w *ApplicationService) GetPlaygroundPluginList(ctx context.Context, req *pluginAPI.GetPlaygroundPluginListRequest) (\n\tresp *pluginAPI.GetPlaygroundPluginListResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tcurrentUser := ctxutil.MustGetUIDFromCtx(ctx)\n\tif err = checkUserSpace(ctx, currentUser, req.GetSpaceID()); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar (\n\t\ttoolIDs []int64\n\t\twfs     []*entity.Workflow\n\t)\n\tif len(req.GetPluginIds()) > 0 {\n\t\ttoolIDs, err = slices.TransformWithErrorCheck(req.GetPluginIds(), func(a string) (int64, error) {\n\t\t\treturn strconv.ParseInt(a, 10, 64)\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\twfs, _, err = GetWorkflowDomainSVC().MGet(ctx, &vo.MGetPolicy{\n\t\t\tMetaQuery: vo.MetaQuery{\n\t\t\t\tIDs:           toolIDs,\n\t\t\t\tSpaceID:       ptr.Of(req.GetSpaceID()),\n\t\t\t\tPublishStatus: ptr.Of(vo.HasPublished),\n\t\t\t},\n\t\t\tQType: workflowModel.FromLatestVersion,\n\t\t})\n\t} else if req.GetPage() > 0 && req.GetSize() > 0 {\n\t\twfs, _, err = GetWorkflowDomainSVC().MGet(ctx, &vo.MGetPolicy{\n\t\t\tMetaQuery: vo.MetaQuery{\n\t\t\t\tPage: &vo.Page{\n\t\t\t\t\tSize: req.GetSize(),\n\t\t\t\t\tPage: req.GetPage(),\n\t\t\t\t},\n\t\t\t\tSpaceID:       ptr.Of(req.GetSpaceID()),\n\t\t\t\tPublishStatus: ptr.Of(vo.HasPublished),\n\t\t\t},\n\t\t\tQType: workflowModel.FromLatestVersion,\n\t\t})\n\t}\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpluginInfoList := make([]*common.PluginInfoForPlayground, 0)\n\tfor _, wf := range wfs {\n\t\tpInfo := &common.PluginInfoForPlayground{\n\t\t\tID:           strconv.FormatInt(wf.ID, 10),\n\t\t\tName:         wf.Name,\n\t\t\tPluginIcon:   wf.IconURL,\n\t\t\tDescForHuman: wf.Desc,\n\t\t\tCreator: &common.Creator{\n\t\t\t\tSelf: wf.CreatorID == currentUser,\n\t\t\t},\n\t\t\tPluginType:  common.PluginType_WORKFLOW,\n\t\t\tVersionName: wf.VersionMeta.Version,\n\t\t\tCreateTime:  strconv.FormatInt(wf.CreatedAt.Unix(), 10),\n\t\t\tUpdateTime:  strconv.FormatInt(wf.VersionCreatedAt.Unix(), 10),\n\t\t}\n\n\t\tpluginApi := &common.PluginApi{\n\t\t\tAPIID:    strconv.FormatInt(wf.ID, 10),\n\t\t\tName:     wf.Name,\n\t\t\tDesc:     wf.Desc,\n\t\t\tPluginID: strconv.FormatInt(wf.ID, 10),\n\t\t}\n\t\tpluginApi.Parameters, err = slices.TransformWithErrorCheck(wf.InputParams, toPluginParameter)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpInfo.PluginApis = []*common.PluginApi{pluginApi}\n\t\tpluginInfoList = append(pluginInfoList, pInfo)\n\t}\n\n\treturn &pluginAPI.GetPlaygroundPluginListResponse{\n\t\tData: &common.GetPlaygroundPluginListData{\n\t\t\tPluginList: pluginInfoList,\n\t\t\tTotal:      int32(len(pluginInfoList)),\n\t\t},\n\t}, nil\n}\n\nfunc (w *ApplicationService) CopyWorkflow(ctx context.Context, req *workflow.CopyWorkflowRequest) (\n\tresp *workflow.CopyWorkflowResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tspaceID, err := strconv.ParseInt(req.GetSpaceID(), 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err = checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), spaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\tworkflowID, err := strconv.ParseInt(req.GetWorkflowID(), 10, 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\twf, err := w.copyWorkflow(ctx, workflowID, vo.CopyWorkflowPolicy{\n\t\tShouldModifyWorkflowName: true,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.CopyWorkflowResponse{\n\t\tData: &workflow.CopyWorkflowData{\n\t\t\tWorkflowID: strconv.FormatInt(wf.ID, 10),\n\t\t},\n\t}, err\n}\n\nfunc (w *ApplicationService) GetHistorySchema(ctx context.Context, req *workflow.GetHistorySchemaRequest) (\n\tresp *workflow.GetHistorySchemaResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tspaceID := mustParseInt64(req.GetSpaceID())\n\tif err = checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {\n\t\treturn nil, err\n\t}\n\n\tworkflowID := mustParseInt64(req.GetWorkflowID())\n\texecuteID := mustParseInt64(req.GetExecuteID())\n\n\tvar subExecuteID *int64\n\tif req.IsSetSubExecuteID() {\n\t\tsubExecuteID = ptr.Of(mustParseInt64(req.GetSubExecuteID()))\n\t}\n\n\texe := &entity.WorkflowExecution{\n\t\tWorkflowID: workflowID,\n\t\tSpaceID:    spaceID,\n\t}\n\n\tif subExecuteID == nil {\n\t\texe.ID = executeID\n\t\texe.RootExecutionID = executeID\n\t} else {\n\t\texe.ID = *subExecuteID\n\t\texe.RootExecutionID = executeID\n\t}\n\t// use executeID and sub_executeID to get the workflow execution\n\texe, err = GetWorkflowDomainSVC().GetExecution(ctx, exe, false)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// verify the workflowID\n\tif exe.WorkflowID != workflowID {\n\t\treturn nil, fmt.Errorf(\"workflowID mismatch\")\n\t}\n\n\t// get the workflow entity for that workflowID and commitID\n\tpolicy := &vo.GetPolicy{\n\t\tID:       workflowID,\n\t\tQType:    ternary.IFElse(len(exe.Version) > 0, workflowModel.FromSpecificVersion, workflowModel.FromDraft),\n\t\tVersion:  exe.Version,\n\t\tCommitID: exe.CommitID,\n\t}\n\n\twfEntity, err := GetWorkflowDomainSVC().Get(ctx, policy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// convert the workflow entity to workflow history schema\n\treturn &workflow.GetHistorySchemaResponse{\n\t\tData: &workflow.GetHistorySchemaData{\n\t\t\tName:         wfEntity.Name,\n\t\t\tDescribe:     wfEntity.Desc,\n\t\t\tURL:          wfEntity.IconURL,\n\t\t\tSchema:       wfEntity.Canvas,\n\t\t\tFlowMode:     wfEntity.Mode,\n\t\t\tWorkflowID:   req.GetWorkflowID(),\n\t\t\tCommitID:     wfEntity.CommitID,\n\t\t\tExecuteID:    req.ExecuteID,\n\t\t\tSubExecuteID: req.SubExecuteID,\n\t\t},\n\t}, nil\n}\n\nfunc (w *ApplicationService) GetExampleWorkFlowList(ctx context.Context, req *workflow.GetExampleWorkFlowListRequest) (\n\tresp *workflow.GetExampleWorkFlowListResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tpage := &vo.Page{}\n\tif req.GetPage() > 0 {\n\t\tpage.Page = req.GetPage()\n\t}\n\n\tif req.GetSize() > 0 {\n\t\tpage.Size = req.GetSize()\n\t}\n\n\toption := vo.MetaQuery{\n\t\tPage:    page,\n\t\tSpaceID: ptr.Of(consts.TemplateSpaceID),\n\t}\n\tif len(req.GetName()) > 0 {\n\t\toption.Name = req.Name\n\t}\n\n\twfs, _, err := GetWorkflowDomainSVC().MGet(ctx, &vo.MGetPolicy{\n\t\tMetaQuery: option,\n\t\tQType:     workflowModel.FromDraft,\n\t\tMetaOnly:  false,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresponse := &workflow.GetExampleWorkFlowListResponse{\n\t\tData: &workflow.WorkFlowListData{\n\t\t\tAuthList:     make([]*workflow.ResourceAuthInfo, 0),\n\t\t\tWorkflowList: make([]*workflow.Workflow, 0, len(wfs)),\n\t\t},\n\t}\n\tfor _, w := range wfs {\n\t\tww := &workflow.Workflow{\n\t\t\tWorkflowID:       strconv.FormatInt(w.ID, 10),\n\t\t\tName:             w.Name,\n\t\t\tDesc:             w.Desc,\n\t\t\tIconURI:          w.IconURI,\n\t\t\tURL:              w.IconURL,\n\t\t\tCreateTime:       w.CreatedAt.Unix(),\n\t\t\tUpdateTime:       ternary.IFElse(w.DraftMeta.Timestamp.Unix() == 0, w.CreatedAt.Unix(), w.DraftMeta.Timestamp.Unix()),\n\t\t\tType:             w.ContentType,\n\t\t\tSchemaType:       workflow.SchemaType_FDL,\n\t\t\tTag:              w.Tag,\n\t\t\tTemplateAuthorID: ptr.Of(strconv.FormatInt(w.AuthorID, 10)),\n\t\t\tSpaceID:          ptr.Of(strconv.FormatInt(w.SpaceID, 10)),\n\t\t}\n\n\t\tstartNode := &workflow.Node{\n\t\t\tNodeID:    \"100001\",\n\t\t\tNodeName:  \"start-node\",\n\t\t\tNodeParam: &workflow.NodeParam{InputParameters: make([]*workflow.Parameter, 0)},\n\t\t}\n\t\tfor _, in := range w.InputParams {\n\t\t\tparam, err := toWorkflowParameter(in)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tstartNode.NodeParam.InputParameters = append(startNode.NodeParam.InputParameters, param)\n\t\t}\n\n\t\tww.StartNode = startNode\n\t\tresponse.Data.WorkflowList = append(response.Data.WorkflowList, ww)\n\t\tresponse.Data.AuthList = append(response.Data.AuthList, &workflow.ResourceAuthInfo{\n\t\t\tWorkflowID: strconv.FormatInt(w.ID, 10),\n\t\t\tUserID:     strconv.FormatInt(w.CreatorID, 10),\n\t\t\tAuth:       &workflow.ResourceActionAuth{CanEdit: false, CanDelete: false, CanCopy: true},\n\t\t})\n\t}\n\n\treturn response, nil\n}\n\nfunc (w *ApplicationService) CopyWkTemplateApi(ctx context.Context, req *workflow.CopyWkTemplateApiRequest) (\n\tresp *workflow.CopyWkTemplateApiResponse, err error,\n) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tif err = checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), req.GetTargetSpaceID()); err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp = &workflow.CopyWkTemplateApiResponse{\n\t\tData: map[int64]*workflow.WkPluginBasicData{},\n\t}\n\tfor _, widStr := range req.GetWorkflowIds() {\n\t\twid, err := strconv.ParseInt(widStr, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\twf, err := w.copyWorkflow(ctx, wid, vo.CopyWorkflowPolicy{\n\t\t\tShouldModifyWorkflowName: true,\n\t\t\tTargetSpaceID:            ptr.Of(req.GetTargetSpaceID()),\n\t\t\tTargetAppID:              ptr.Of(int64(0)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\terr = w.publishWorkflowResource(ctx, &vo.PublishPolicy{\n\t\t\tID:        wf.ID,\n\t\t\tVersion:   \"v0.0.0\",\n\t\t\tCommitID:  wf.CommitID,\n\t\t\tCreatorID: ctxutil.MustGetUIDFromCtx(ctx),\n\t\t\tForce:     true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tvar (\n\t\t\tinputs    []*vo.NamedTypeInfo\n\t\t\toutputs   []*vo.NamedTypeInfo\n\t\t\tstartNode *workflow.Node\n\t\t\tendNode   *workflow.Node\n\t\t)\n\t\tif len(wf.InputParamsStr) > 0 {\n\t\t\terr = sonic.UnmarshalString(wf.InputParamsStr, &inputs)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tstartNode = &workflow.Node{\n\t\t\t\tNodeID:    \"100001\",\n\t\t\t\tNodeName:  \"start-node\",\n\t\t\t\tNodeParam: &workflow.NodeParam{InputParameters: make([]*workflow.Parameter, 0, len(inputs))},\n\t\t\t}\n\t\t\tfor _, in := range inputs {\n\t\t\t\tparam, err := toWorkflowParameter(in)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tstartNode.NodeParam.InputParameters = append(startNode.NodeParam.InputParameters, param)\n\t\t\t}\n\t\t}\n\n\t\tif len(wf.OutputParamsStr) > 0 {\n\t\t\terr = sonic.UnmarshalString(wf.OutputParamsStr, &outputs)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tendNode = &workflow.Node{\n\t\t\t\tNodeID:    entity.ExitNodeKey,\n\t\t\t\tNodeName:  \"end-node\",\n\t\t\t\tNodeParam: &workflow.NodeParam{InputParameters: make([]*workflow.Parameter, 0, len(outputs))},\n\t\t\t}\n\t\t\tfor _, in := range outputs {\n\t\t\t\tparam, err := toWorkflowParameter(in)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tendNode.NodeParam.InputParameters = append(endNode.NodeParam.InputParameters, param)\n\t\t\t}\n\t\t}\n\n\t\tresp.Data[wid] = &workflow.WkPluginBasicData{\n\t\t\tWorkflowID: wf.ID,\n\t\t\tSpaceID:    req.GetTargetSpaceID(),\n\t\t\tName:       wf.Name,\n\t\t\tDesc:       wf.Desc,\n\t\t\tURL:        wf.IconURL,\n\t\t\tIconURI:    wf.IconURI,\n\t\t\tStatus:     workflow.WorkFlowStatus_HadPublished,\n\t\t\tPluginID:   wf.ID,\n\t\t\tCreateTime: time.Now().Unix(),\n\t\t\tSourceID:   wid,\n\t\t\tCreator: &workflow.Creator{\n\t\t\t\tID:   strconv.FormatInt(wf.CreatorID, 10),\n\t\t\t\tSelf: ternary.IFElse[bool](wf.CreatorID == ptr.From(ctxutil.GetUIDFromCtx(ctx)), true, false),\n\t\t\t},\n\t\t\tSchema:                wf.Canvas,\n\t\t\tFlowMode:              wf.Mode,\n\t\t\tLatestPublishCommitID: wf.CommitID,\n\t\t\tStartNode:             startNode,\n\t\t\tEndNode:               endNode,\n\t\t}\n\n\t}\n\n\treturn resp, err\n}\n\nfunc (w *ApplicationService) publishWorkflowResource(ctx context.Context, policy *vo.PublishPolicy) error {\n\terr := GetWorkflowDomainSVC().Publish(ctx, policy)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tsafego.Go(ctx, func() {\n\t\tnow := time.Now().UnixMilli()\n\t\tif err := PublishWorkflowResource(ctx, policy.ID, nil, search.Updated, &search.ResourceDocument{\n\t\t\tPublishStatus: ptr.Of(resource.PublishStatus_Published),\n\t\t\tUpdateTimeMS:  ptr.Of(now),\n\t\t\tPublishTimeMS: ptr.Of(now),\n\t\t}); err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"publish workflow resource failed workflowID = %d, err: %v\", policy.ID, err)\n\t\t}\n\t})\n\n\treturn nil\n}\n\nfunc mustParseInt64(s string) int64 {\n\ti, err := strconv.ParseInt(s, 10, 64)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn i\n}\n\nfunc parseInt64(s *string) *int64 {\n\tif s == nil {\n\t\treturn nil\n\t}\n\n\ti := mustParseInt64(*s)\n\treturn &i\n}\n\nfunc toWorkflowParameter(nType *vo.NamedTypeInfo) (*workflow.Parameter, error) {\n\twp := &workflow.Parameter{Name: nType.Name}\n\twp.Desc = nType.Desc\n\tif nType.Required {\n\t\twp.Required = true\n\t}\n\tswitch nType.Type {\n\tcase vo.DataTypeString, vo.DataTypeTime, vo.DataTypeFile:\n\t\twp.Type = workflow.InputType_String\n\tcase vo.DataTypeInteger:\n\t\twp.Type = workflow.InputType_Integer\n\tcase vo.DataTypeNumber:\n\t\twp.Type = workflow.InputType_Number\n\tcase vo.DataTypeBoolean:\n\t\twp.Type = workflow.InputType_Boolean\n\tcase vo.DataTypeArray:\n\t\twp.Type = workflow.InputType_Array\n\t\tif nType.ElemTypeInfo != nil {\n\t\t\tswitch nType.ElemTypeInfo.Type {\n\t\t\tcase vo.DataTypeString, vo.DataTypeTime, vo.DataTypeFile:\n\t\t\t\twp.SubType = workflow.InputType_String\n\t\t\tcase vo.DataTypeInteger:\n\t\t\t\twp.SubType = workflow.InputType_Integer\n\t\t\tcase vo.DataTypeNumber:\n\t\t\t\twp.SubType = workflow.InputType_Number\n\t\t\tcase vo.DataTypeBoolean:\n\t\t\t\twp.SubType = workflow.InputType_Boolean\n\t\t\tcase vo.DataTypeObject:\n\t\t\t\twp.SubType = workflow.InputType_Object\n\t\t\t}\n\t\t}\n\tcase vo.DataTypeObject:\n\t\twp.Type = workflow.InputType_Object\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown type: %s\", nType.Type)\n\n\t}\n\n\treturn wp, nil\n}\n\nfunc i64PtrToStringPtr(i *int64) *string {\n\tif i == nil {\n\t\treturn nil\n\t}\n\n\ts := strconv.FormatInt(*i, 10)\n\treturn &s\n}\n\nfunc toVariables(namedTypeInfoList []*vo.NamedTypeInfo) ([]*vo.Variable, error) {\n\tvs := make([]*vo.Variable, 0, len(namedTypeInfoList))\n\tfor _, in := range namedTypeInfoList {\n\t\tv, err := in.ToVariable()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tvs = append(vs, v)\n\t}\n\n\treturn vs, nil\n}\n\nfunc toPluginParameter(info *vo.NamedTypeInfo) (*common.PluginParameter, error) {\n\tif info == nil {\n\t\treturn nil, fmt.Errorf(\"named type info is nil\")\n\t}\n\tp := &common.PluginParameter{\n\t\tName:     info.Name,\n\t\tDesc:     info.Desc,\n\t\tRequired: info.Required,\n\t}\n\n\tif info.Type == vo.DataTypeFile && info.FileType != nil {\n\t\tswitch *info.FileType {\n\t\tcase vo.FileTypeZip:\n\t\t\tp.Format = ptr.Of(common.PluginParamTypeFormat_ZipUrl)\n\t\tcase vo.FileTypeCode:\n\t\t\tp.Format = ptr.Of(common.PluginParamTypeFormat_CodeUrl)\n\t\tcase vo.FileTypeTxt:\n\t\t\tp.Format = ptr.Of(common.PluginParamTypeFormat_TxtUrl)\n\t\tcase vo.FileTypeExcel:\n\t\t\tp.Format = ptr.Of(common.PluginParamTypeFormat_ExcelUrl)\n\t\tcase vo.FileTypePPT:\n\t\t\tp.Format = ptr.Of(common.PluginParamTypeFormat_PptUrl)\n\t\tcase vo.FileTypeDocument:\n\t\t\tp.Format = ptr.Of(common.PluginParamTypeFormat_DocUrl)\n\t\tcase vo.FileTypeVideo:\n\t\t\tp.Format = ptr.Of(common.PluginParamTypeFormat_VideoUrl)\n\t\tcase vo.FileTypeAudio:\n\t\t\tp.Format = ptr.Of(common.PluginParamTypeFormat_AudioUrl)\n\t\tcase vo.FileTypeImage:\n\t\t\tp.Format = ptr.Of(common.PluginParamTypeFormat_ImageUrl)\n\t\tdefault:\n\t\t\t// missing types use file as the default type\n\t\t\tp.Format = ptr.Of(common.PluginParamTypeFormat_FileUrl)\n\t\t}\n\t}\n\n\tswitch info.Type {\n\tcase vo.DataTypeString, vo.DataTypeFile, vo.DataTypeTime:\n\t\tp.Type = \"string\"\n\tcase vo.DataTypeInteger:\n\t\tp.Type = \"integer\"\n\tcase vo.DataTypeNumber:\n\t\tp.Type = \"number\"\n\tcase vo.DataTypeBoolean:\n\t\tp.Type = \"boolean\"\n\tcase vo.DataTypeObject:\n\t\tp.Type = \"object\"\n\t\tp.SubParameters = make([]*common.PluginParameter, 0, len(info.Properties))\n\t\tfor _, sub := range info.Properties {\n\t\t\tsubParameter, err := toPluginParameter(sub)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tp.SubParameters = append(p.SubParameters, subParameter)\n\t\t}\n\tcase vo.DataTypeArray:\n\t\tp.Type = \"array\"\n\t\teleParameter, err := toPluginParameter(info.ElemTypeInfo)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tp.SubType = eleParameter.Type\n\t\tp.SubParameters = []*common.PluginParameter{eleParameter}\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown named type info type: %s\", info.Type)\n\t}\n\n\treturn p, nil\n}\n\nfunc toWorkflowAPIParameter(info *vo.NamedTypeInfo) (*workflow.APIParameter, error) {\n\tif info == nil {\n\t\treturn nil, fmt.Errorf(\"named type info is nil\")\n\t}\n\tp := &workflow.APIParameter{\n\t\tName:       info.Name,\n\t\tDesc:       info.Desc,\n\t\tIsRequired: info.Required,\n\t}\n\n\tif info.Type == vo.DataTypeFile && info.FileType != nil {\n\t\tp.AssistType = ptr.Of(toWorkflowAPIParameterAssistType(*info.FileType))\n\t}\n\n\tswitch info.Type {\n\tcase vo.DataTypeString, vo.DataTypeFile, vo.DataTypeTime:\n\t\tp.Type = workflow.ParameterType_String\n\tcase vo.DataTypeInteger:\n\t\tp.Type = workflow.ParameterType_Integer\n\tcase vo.DataTypeBoolean:\n\t\tp.Type = workflow.ParameterType_Bool\n\tcase vo.DataTypeObject:\n\t\tp.Type = workflow.ParameterType_Object\n\t\tp.SubParameters = make([]*workflow.APIParameter, 0, len(info.Properties))\n\t\tsubParameters, err := slices.TransformWithErrorCheck(info.Properties, toWorkflowAPIParameter)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tp.SubParameters = append(p.SubParameters, subParameters...)\n\tcase vo.DataTypeNumber:\n\t\tp.Type = workflow.ParameterType_Number\n\tcase vo.DataTypeArray:\n\t\tp.Type = workflow.ParameterType_Array\n\t\teleParameters, err := slices.TransformWithErrorCheck([]*vo.NamedTypeInfo{info.ElemTypeInfo}, toWorkflowAPIParameter)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\teleParameter := eleParameters[0]\n\t\tp.SubType = &eleParameter.Type\n\t\tp.SubParameters = []*workflow.APIParameter{eleParameter}\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown named type info type: %s\", info.Type)\n\t}\n\n\treturn p, nil\n}\n\nfunc toWorkflowAPIParameterAssistType(ty vo.FileSubType) workflow.AssistParameterType {\n\tswitch ty {\n\tcase vo.FileTypeImage:\n\t\treturn workflow.AssistParameterType_IMAGE\n\tcase vo.FileTypeSVG:\n\t\treturn workflow.AssistParameterType_SVG\n\tcase vo.FileTypeAudio:\n\t\treturn workflow.AssistParameterType_AUDIO\n\tcase vo.FileTypeVideo:\n\t\treturn workflow.AssistParameterType_VIDEO\n\tcase vo.FileTypeVoice:\n\t\treturn workflow.AssistParameterType_Voice\n\tcase vo.FileTypeDocument:\n\t\treturn workflow.AssistParameterType_DOC\n\tcase vo.FileTypePPT:\n\t\treturn workflow.AssistParameterType_PPT\n\tcase vo.FileTypeExcel:\n\t\treturn workflow.AssistParameterType_EXCEL\n\tcase vo.FileTypeTxt:\n\t\treturn workflow.AssistParameterType_TXT\n\tcase vo.FileTypeCode:\n\t\treturn workflow.AssistParameterType_CODE\n\tcase vo.FileTypeZip:\n\t\treturn workflow.AssistParameterType_ZIP\n\tdefault:\n\t\treturn workflow.APIParameter_AssistType_DEFAULT\n\t}\n}\n\nfunc toVariableSlice(params []*workflow.APIParameter) ([]*vo.Variable, error) {\n\tif len(params) == 0 {\n\t\treturn nil, nil\n\t}\n\tres := make([]*vo.Variable, 0, len(params))\n\tfor _, p := range params {\n\t\tv, err := toVariable(p)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tres = append(res, v)\n\t}\n\treturn res, nil\n}\n\nfunc toVariable(p *workflow.APIParameter) (*vo.Variable, error) {\n\tif p == nil {\n\t\treturn nil, nil\n\t}\n\tv := &vo.Variable{\n\t\tName:        p.Name,\n\t\tDescription: p.Desc,\n\t\tRequired:    p.IsRequired,\n\t}\n\n\tif p.AssistType != nil {\n\t\tv.AssistType = vo.AssistType(*p.AssistType)\n\t}\n\n\tswitch p.Type {\n\tcase workflow.ParameterType_String:\n\t\tv.Type = vo.VariableTypeString\n\tcase workflow.ParameterType_Integer:\n\t\tv.Type = vo.VariableTypeInteger\n\tcase workflow.ParameterType_Number:\n\t\tv.Type = vo.VariableTypeFloat\n\tcase workflow.ParameterType_Bool:\n\t\tv.Type = vo.VariableTypeBoolean\n\tcase workflow.ParameterType_Array:\n\t\tv.Type = vo.VariableTypeList\n\t\tif p.SubType == nil {\n\t\t\treturn nil, fmt.Errorf(\"array parameter '%s' is missing a SubType\", p.Name)\n\t\t}\n\t\t// The schema of a list variable is a single variable describing the items.\n\t\titemSchema := &vo.Variable{\n\t\t\tType: vo.VariableType(strings.ToLower(p.SubType.String())),\n\t\t}\n\t\t// If the items in the array are objects, describe their structure.\n\t\tif *p.SubType == workflow.ParameterType_Object {\n\t\t\titemFields, err := toVariableSlice(p.SubParameters)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\titemSchema.Schema = itemFields\n\t\t} else {\n\t\t\tif len(p.SubParameters) > 0 && p.SubParameters[0].AssistType != nil {\n\t\t\t\titemSchema.AssistType = vo.AssistType(*p.SubParameters[0].AssistType)\n\t\t\t}\n\t\t}\n\t\tv.Schema = itemSchema\n\tcase workflow.ParameterType_Object:\n\t\tv.Type = vo.VariableTypeObject\n\t\tsubVars, err := toVariableSlice(p.SubParameters)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tv.Schema = subVars\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown workflow api parameter type: %v\", p.Type)\n\t}\n\treturn v, nil\n}\n\nfunc mergeWorkflowAPIParameters(latestAPIParameters []*workflow.APIParameter, existAPIParameters []*workflow.APIParameter) {\n\texistAPIParameterMap := slices.ToMap(existAPIParameters, func(w *workflow.APIParameter) (string, *workflow.APIParameter) {\n\t\treturn w.Name, w\n\t})\n\n\tfor _, parameter := range latestAPIParameters {\n\t\tif ep, ok := existAPIParameterMap[parameter.Name]; ok {\n\t\t\tparameter.LocalDisable = ep.LocalDisable\n\t\t\tparameter.LocalDefault = ep.LocalDefault\n\t\t\tif len(parameter.SubParameters) > 0 && len(ep.SubParameters) > 0 {\n\t\t\t\tmergeWorkflowAPIParameters(parameter.SubParameters, ep.SubParameters)\n\t\t\t}\n\n\t\t} else {\n\t\t\texistAPIParameters = append(existAPIParameters, parameter)\n\t\t}\n\t}\n}\n\nfunc parseWorkflowTerminatePlanType(c *vo.Canvas) (int32, error) {\n\tvar endNode *vo.Node\n\tfor _, n := range c.Nodes {\n\t\tif n.Type == entity.NodeTypeExit.IDStr() {\n\t\t\tendNode = n\n\t\t\tbreak\n\t\t}\n\t}\n\tif endNode == nil {\n\t\treturn 0, fmt.Errorf(\"can not find end node\")\n\t}\n\tswitch *endNode.Data.Inputs.TerminatePlan {\n\tcase vo.ReturnVariables:\n\t\treturn 0, nil\n\tcase vo.UseAnswerContent:\n\t\treturn 1, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"invalid terminate plan type %v\", *endNode.Data.Inputs.TerminatePlan)\n\t}\n}\n\ntype GetLLMNodeFCSettingDetailResponse struct {\n\t*workflow.GetLLMNodeFCSettingDetailResponse\n}\n\nfunc (g *GetLLMNodeFCSettingDetailResponse) MarshalJSON() ([]byte, error) {\n\tbs, err := sonic.Marshal(g.GetLLMNodeFCSettingDetailResponse)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresult := make(map[string]interface{})\n\t_ = sonic.Unmarshal(bs, &result)\n\tpluginDetailMaps := result[\"plugin_detail_map\"].(map[string]interface{})\n\tfor k, value := range pluginDetailMaps {\n\t\tpluginDetail := value.(map[string]interface{})\n\t\tpluginDetail[\"latest_version_ts\"] = pluginDetail[\"latest_version_name\"]\n\t\tpluginDetailMaps[k] = pluginDetail\n\t}\n\treturn sonic.Marshal(result)\n}\n\nfunc checkUserSpace(ctx context.Context, uid int64, spaceID int64) error {\n\tspaces, err := crossuser.DefaultSVC().GetUserSpaceList(ctx, uid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar match bool\n\tfor _, s := range spaces {\n\t\tif s.ID == spaceID {\n\t\t\tmatch = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !match {\n\t\treturn fmt.Errorf(\"user %d does not have access to space %d\", uid, spaceID)\n\t}\n\n\treturn nil\n}\n\nfunc (w *ApplicationService) populateChatFlowRoleFields(role *workflow.ChatFlowRole, targetRole interface{}) error {\n\tvar avatarUri, audioStr, bgStr, obStr, srStr, uiStr string\n\tvar err error\n\n\tif role.Avatar != nil {\n\t\tavatarUri = role.Avatar.ImageUri\n\n\t}\n\tif role.AudioConfig != nil {\n\t\taudioStr, err = sonic.MarshalString(*role.AudioConfig)\n\t\tif err != nil {\n\t\t\treturn vo.WrapError(errno.ErrSerializationDeserializationFail, err)\n\t\t}\n\t}\n\tif role.BackgroundImageInfo != nil {\n\t\tbgStr, err = sonic.MarshalString(*role.BackgroundImageInfo)\n\t\tif err != nil {\n\t\t\treturn vo.WrapError(errno.ErrSerializationDeserializationFail, err)\n\t\t}\n\t}\n\tif role.OnboardingInfo != nil {\n\t\tobStr, err = sonic.MarshalString(*role.OnboardingInfo)\n\t\tif err != nil {\n\t\t\treturn vo.WrapError(errno.ErrSerializationDeserializationFail, err)\n\t\t}\n\t}\n\tif role.SuggestReplyInfo != nil {\n\t\tsrStr, err = sonic.MarshalString(*role.SuggestReplyInfo)\n\t\tif err != nil {\n\t\t\treturn vo.WrapError(errno.ErrSerializationDeserializationFail, err)\n\t\t}\n\t}\n\tif role.UserInputConfig != nil {\n\t\tuiStr, err = sonic.MarshalString(*role.UserInputConfig)\n\t\tif err != nil {\n\t\t\treturn vo.WrapError(errno.ErrSerializationDeserializationFail, err)\n\t\t}\n\t}\n\n\tswitch r := targetRole.(type) {\n\tcase *vo.ChatFlowRoleCreate:\n\t\tif role.Name != nil {\n\t\t\tr.Name = *role.Name\n\t\t}\n\t\tif role.Description != nil {\n\t\t\tr.Description = *role.Description\n\t\t}\n\t\tif avatarUri != \"\" {\n\t\t\tr.AvatarUri = avatarUri\n\t\t}\n\t\tif audioStr != \"\" {\n\t\t\tr.AudioConfig = audioStr\n\t\t}\n\t\tif bgStr != \"\" {\n\t\t\tr.BackgroundImageInfo = bgStr\n\t\t}\n\t\tif obStr != \"\" {\n\t\t\tr.OnboardingInfo = obStr\n\t\t}\n\t\tif srStr != \"\" {\n\t\t\tr.SuggestReplyInfo = srStr\n\t\t}\n\t\tif uiStr != \"\" {\n\t\t\tr.UserInputConfig = uiStr\n\t\t}\n\tcase *vo.ChatFlowRoleUpdate:\n\t\tr.Name = role.Name\n\t\tr.Description = role.Description\n\t\tif avatarUri != \"\" {\n\t\t\tr.AvatarUri = ptr.Of(avatarUri)\n\t\t}\n\t\tif audioStr != \"\" {\n\t\t\tr.AudioConfig = ptr.Of(audioStr)\n\t\t}\n\t\tif bgStr != \"\" {\n\t\t\tr.BackgroundImageInfo = ptr.Of(bgStr)\n\t\t}\n\t\tif obStr != \"\" {\n\t\t\tr.OnboardingInfo = ptr.Of(obStr)\n\t\t}\n\t\tif srStr != \"\" {\n\t\t\tr.SuggestReplyInfo = ptr.Of(srStr)\n\t\t}\n\t\tif uiStr != \"\" {\n\t\t\tr.UserInputConfig = ptr.Of(uiStr)\n\t\t}\n\tdefault:\n\t\treturn vo.WrapError(errno.ErrInvalidParameter, fmt.Errorf(\"invalid type for targetRole: %T\", targetRole))\n\t}\n\n\treturn nil\n}\n\nfunc IsChatFlow(wf *entity.Workflow) bool {\n\tif wf == nil || wf.ID == 0 {\n\t\treturn false\n\t}\n\treturn wf.Meta.Mode == workflow.WorkflowMode_ChatFlow\n}\n\nfunc (w *ApplicationService) CreateChatFlowRole(ctx context.Context, req *workflow.CreateChatFlowRoleRequest) (\n\t_ *workflow.CreateChatFlowRoleResponse, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrChatFlowRoleOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tuID := ctxutil.MustGetUIDFromCtx(ctx)\n\twf, err := GetWorkflowDomainSVC().Get(ctx, &vo.GetPolicy{\n\t\tID:       mustParseInt64(req.GetChatFlowRole().GetWorkflowID()),\n\t\tMetaOnly: true,\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif err = checkUserSpace(ctx, uID, wf.Meta.SpaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\trole := req.GetChatFlowRole()\n\n\tif !IsChatFlow(wf) {\n\t\tlogs.CtxWarnf(ctx, \"CreateChatFlowRole not chat flow, workflowID: %d\", wf.ID)\n\t\treturn nil, vo.WrapError(errno.ErrChatFlowRoleOperationFail, fmt.Errorf(\"workflow %d is not a chat flow\", wf.ID))\n\t}\n\n\toldRole, err := GetWorkflowDomainSVC().GetChatFlowRole(ctx, mustParseInt64(role.WorkflowID), \"\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar roleID int64\n\tif oldRole != nil {\n\t\trole.ID = strconv.FormatInt(oldRole.ID, 10)\n\t\troleID = oldRole.ID\n\t}\n\n\tif role.GetID() == \"\" || role.GetID() == \"0\" {\n\t\tchatFlowRole := &vo.ChatFlowRoleCreate{\n\t\t\tWorkflowID: mustParseInt64(role.WorkflowID),\n\t\t\tCreatorID:  uID,\n\t\t}\n\t\tif err = w.populateChatFlowRoleFields(role, chatFlowRole); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\troleID, err = GetWorkflowDomainSVC().CreateChatFlowRole(ctx, chatFlowRole)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t} else {\n\t\tchatFlowRole := &vo.ChatFlowRoleUpdate{\n\t\t\tWorkflowID: mustParseInt64(role.WorkflowID),\n\t\t}\n\n\t\tif err = w.populateChatFlowRoleFields(role, chatFlowRole); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\terr = GetWorkflowDomainSVC().UpdateChatFlowRole(ctx, chatFlowRole.WorkflowID, chatFlowRole)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn &workflow.CreateChatFlowRoleResponse{\n\t\tID: strconv.FormatInt(roleID, 10),\n\t}, nil\n}\n\nfunc (w *ApplicationService) DeleteChatFlowRole(ctx context.Context, req *workflow.DeleteChatFlowRoleRequest) (\n\t_ *workflow.DeleteChatFlowRoleResponse, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrChatFlowRoleOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tuID := ctxutil.MustGetUIDFromCtx(ctx)\n\twf, err := GetWorkflowDomainSVC().Get(ctx, &vo.GetPolicy{\n\t\tID:       mustParseInt64(req.GetWorkflowID()),\n\t\tMetaOnly: true,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif err = checkUserSpace(ctx, uID, wf.Meta.SpaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = GetWorkflowDomainSVC().DeleteChatFlowRole(ctx, mustParseInt64(req.ID), mustParseInt64(req.WorkflowID))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &workflow.DeleteChatFlowRoleResponse{}, nil\n}\n\nfunc (w *ApplicationService) GetChatFlowRole(ctx context.Context, req *workflow.GetChatFlowRoleRequest) (\n\t_ *workflow.GetChatFlowRoleResponse, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrChatFlowRoleOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tuID := ctxutil.MustGetUIDFromCtx(ctx)\n\twf, err := GetWorkflowDomainSVC().Get(ctx, &vo.GetPolicy{\n\t\tID:       mustParseInt64(req.GetWorkflowID()),\n\t\tMetaOnly: true,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif err = checkUserSpace(ctx, uID, wf.Meta.SpaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !IsChatFlow(wf) {\n\t\tlogs.CtxWarnf(ctx, \"GetChatFlowRole not chat flow, workflowID: %d\", wf.ID)\n\t\treturn nil, vo.WrapError(errno.ErrChatFlowRoleOperationFail, fmt.Errorf(\"workflow %d is not a chat flow\", wf.ID))\n\t}\n\n\tvar version string\n\tif wf.Meta.AppID != nil {\n\t\tif vl, err := GetWorkflowDomainSVC().GetWorkflowVersionsByConnector(ctx, mustParseInt64(req.GetConnectorID()), wf.ID, 1); err != nil {\n\t\t\treturn nil, err\n\t\t} else if len(vl) > 0 {\n\t\t\tversion = vl[0]\n\t\t}\n\n\t}\n\n\trole, err := GetWorkflowDomainSVC().GetChatFlowRole(ctx, mustParseInt64(req.WorkflowID), version)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif role == nil {\n\t\tlogs.CtxWarnf(ctx, \"GetChatFlowRole role nil, workflowID: %d\", wf.ID)\n\t\t// Return nil for the error to align with the production behavior,\n\t\t// where the GET API may be called before the CREATE API during chatflow creation.\n\t\treturn &workflow.GetChatFlowRoleResponse{}, nil\n\t}\n\n\twfRole, err := w.convertChatFlowRole(ctx, role)\n\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get chat flow role config, internal data processing error: %+v\", err)\n\t}\n\n\treturn &workflow.GetChatFlowRoleResponse{\n\t\tRole: wfRole,\n\t}, nil\n}\n\nfunc (w *ApplicationService) convertChatFlowRole(ctx context.Context, role *entity.ChatFlowRole) (*workflow.ChatFlowRole, error) {\n\tvar err error\n\tres := &workflow.ChatFlowRole{\n\t\tID:          strconv.FormatInt(role.ID, 10),\n\t\tWorkflowID:  strconv.FormatInt(role.WorkflowID, 10),\n\t\tName:        ptr.Of(role.Name),\n\t\tDescription: ptr.Of(role.Description),\n\t}\n\n\tif role.AvatarUri != \"\" {\n\t\turl, err := w.ImageX.GetResourceURL(ctx, role.AvatarUri)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tres.Avatar = &workflow.AvatarConfig{\n\t\t\tImageUri: role.AvatarUri,\n\t\t\tImageUrl: url.URL,\n\t\t}\n\t}\n\n\tif role.AudioConfig != \"\" {\n\t\terr = sonic.UnmarshalString(role.AudioConfig, &res.AudioConfig)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"GetChatFlowRole AudioConfig UnmarshalString err: %+v\", err)\n\t\t\treturn nil, vo.WrapError(errno.ErrSerializationDeserializationFail, err)\n\t\t}\n\t}\n\n\tif role.OnboardingInfo != \"\" {\n\t\terr = sonic.UnmarshalString(role.OnboardingInfo, &res.OnboardingInfo)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"GetChatFlowRole OnboardingInfo UnmarshalString err: %+v\", err)\n\t\t\treturn nil, vo.WrapError(errno.ErrSerializationDeserializationFail, err)\n\t\t}\n\t}\n\n\tif role.SuggestReplyInfo != \"\" {\n\t\terr = sonic.UnmarshalString(role.SuggestReplyInfo, &res.SuggestReplyInfo)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"GetChatFlowRole SuggestReplyInfo UnmarshalString err: %+v\", err)\n\t\t\treturn nil, vo.WrapError(errno.ErrSerializationDeserializationFail, err)\n\t\t}\n\t}\n\n\tif role.UserInputConfig != \"\" {\n\t\terr = sonic.UnmarshalString(role.UserInputConfig, &res.UserInputConfig)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"GetChatFlowRole UserInputConfig UnmarshalString err: %+v\", err)\n\t\t\treturn nil, vo.WrapError(errno.ErrSerializationDeserializationFail, err)\n\t\t}\n\t}\n\n\tif role.BackgroundImageInfo != \"\" {\n\t\tres.BackgroundImageInfo = &workflow.BackgroundImageInfo{}\n\t\terr = sonic.UnmarshalString(role.BackgroundImageInfo, res.BackgroundImageInfo)\n\t\tif err != nil {\n\t\t\tlogs.CtxErrorf(ctx, \"GetChatFlowRole BackgroundImageInfo UnmarshalString err: %+v\", err)\n\t\t\treturn nil, vo.WrapError(errno.ErrSerializationDeserializationFail, err)\n\t\t}\n\t\tif res.BackgroundImageInfo != nil {\n\t\t\tif res.BackgroundImageInfo.WebBackgroundImage != nil && res.BackgroundImageInfo.WebBackgroundImage.OriginImageUri != nil {\n\t\t\t\turl, err := w.ImageX.GetResourceURL(ctx, res.BackgroundImageInfo.WebBackgroundImage.GetOriginImageUri())\n\t\t\t\tif err != nil {\n\t\t\t\t\tlogs.CtxErrorf(ctx, \"get url by uri err, err:%s\", err.Error())\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tres.BackgroundImageInfo.WebBackgroundImage.ImageUrl = &url.URL\n\t\t\t}\n\n\t\t\tif res.BackgroundImageInfo.MobileBackgroundImage != nil && res.BackgroundImageInfo.MobileBackgroundImage.OriginImageUri != nil {\n\t\t\t\turl, err := w.ImageX.GetResourceURL(ctx, res.BackgroundImageInfo.MobileBackgroundImage.GetOriginImageUri())\n\t\t\t\tif err != nil {\n\t\t\t\t\tlogs.CtxErrorf(ctx, \"get url by uri err, err:%s\", err.Error())\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tres.BackgroundImageInfo.MobileBackgroundImage.ImageUrl = &url.URL\n\t\t\t}\n\t\t}\n\t}\n\n\treturn res, nil\n}\n\nfunc (w *ApplicationService) OpenAPIGetWorkflowInfo(ctx context.Context, req *workflow.OpenAPIGetWorkflowInfoRequest) (\n\t_ *workflow.OpenAPIGetWorkflowInfoResponse, err error) {\n\tdefer func() {\n\t\tif panicErr := recover(); panicErr != nil {\n\t\t\terr = safego.NewPanicErr(panicErr, debug.Stack())\n\t\t}\n\n\t\tif err != nil {\n\t\t\terr = vo.WrapIfNeeded(errno.ErrChatFlowRoleOperationFail, err, errorx.KV(\"cause\", vo.UnwrapRootErr(err).Error()))\n\t\t}\n\t}()\n\n\tuID := ctxutil.GetApiAuthFromCtx(ctx).UserID\n\twf, err := GetWorkflowDomainSVC().Get(ctx, &vo.GetPolicy{\n\t\tID:       mustParseInt64(req.GetWorkflowID()),\n\t\tMetaOnly: true,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif err = checkUserSpace(ctx, uID, wf.Meta.SpaceID); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !IsChatFlow(wf) {\n\t\tlogs.CtxWarnf(ctx, \"GetChatFlowRole not chat flow, workflowID: %d\", wf.ID)\n\t\treturn nil, vo.WrapError(errno.ErrChatFlowRoleOperationFail, fmt.Errorf(\"workflow %d is not a chat flow\", wf.ID))\n\t}\n\n\tvar version string\n\tif wf.Meta.AppID != nil {\n\t\tif vl, err := GetWorkflowDomainSVC().GetWorkflowVersionsByConnector(ctx, mustParseInt64(req.GetConnectorID()), wf.ID, 1); err != nil {\n\t\t\treturn nil, err\n\t\t} else if len(vl) > 0 {\n\t\t\tversion = vl[0]\n\t\t}\n\t}\n\n\trole, err := GetWorkflowDomainSVC().GetChatFlowRole(ctx, mustParseInt64(req.WorkflowID), version)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif role == nil {\n\t\tlogs.CtxWarnf(ctx, \"GetChatFlowRole role nil, workflowID: %d\", wf.ID)\n\t\t// Return nil for the error to align with the production behavior,\n\t\t// where the GET API may be called before the CREATE API during chatflow creation.\n\t\treturn &workflow.OpenAPIGetWorkflowInfoResponse{}, nil\n\t}\n\n\twfRole, err := w.convertChatFlowRole(ctx, role)\n\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get chat flow role config, internal data processing error: %+v\", err)\n\t}\n\n\treturn &workflow.OpenAPIGetWorkflowInfoResponse{\n\t\tWorkflowInfo: &workflow.WorkflowInfo{\n\t\t\tRole: wfRole,\n\t\t},\n\t}, nil\n}\n"
  },
  {
    "path": "backend/application/workflow/workflow_test.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage workflow\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/workflow\"\n\t\"github.com/coze-dev/coze-studio/backend/domain/workflow/entity/vo\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n)\n\nfunc TestToVariable(t *testing.T) {\n\tfileAssistType := workflow.AssistParameterType_DEFAULT\n\n\ttestCases := []struct {\n\t\tname          string\n\t\tinput         *workflow.APIParameter\n\t\texpected      *vo.Variable\n\t\texpectErr     bool\n\t\texpectedErrAs any\n\t}{\n\t\t{\n\t\t\tname:     \"Nil Input\",\n\t\t\tinput:    nil,\n\t\t\texpected: nil,\n\t\t},\n\t\t{\n\t\t\tname: \"Simple String\",\n\t\t\tinput: &workflow.APIParameter{\n\t\t\t\tName: \"prompt\", Type: workflow.ParameterType_String, IsRequired: true,\n\t\t\t},\n\t\t\texpected: &vo.Variable{\n\t\t\t\tName: \"prompt\", Type: vo.VariableTypeString, Required: true,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Simple Object\",\n\t\t\tinput: &workflow.APIParameter{\n\t\t\t\tName: \"user\",\n\t\t\t\tType: workflow.ParameterType_Object,\n\t\t\t\tSubParameters: []*workflow.APIParameter{\n\t\t\t\t\t{Name: \"name\", Type: workflow.ParameterType_String},\n\t\t\t\t\t{Name: \"age\", Type: workflow.ParameterType_Integer},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: &vo.Variable{\n\t\t\t\tName: \"user\",\n\t\t\t\tType: vo.VariableTypeObject,\n\t\t\t\tSchema: []*vo.Variable{\n\t\t\t\t\t{Name: \"name\", Type: vo.VariableTypeString},\n\t\t\t\t\t{Name: \"age\", Type: vo.VariableTypeInteger},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array of Objects\",\n\t\t\tinput: &workflow.APIParameter{\n\t\t\t\tName:    \"items\",\n\t\t\t\tType:    workflow.ParameterType_Array,\n\t\t\t\tSubType: ptr.Of(workflow.ParameterType_Object),\n\t\t\t\tSubParameters: []*workflow.APIParameter{\n\t\t\t\t\t{Name: \"id\", Type: workflow.ParameterType_String},\n\t\t\t\t\t{Name: \"price\", Type: workflow.ParameterType_Number},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: &vo.Variable{\n\t\t\t\tName: \"items\",\n\t\t\t\tType: vo.VariableTypeList,\n\t\t\t\tSchema: &vo.Variable{\n\t\t\t\t\tType: vo.VariableTypeObject,\n\t\t\t\t\tSchema: []*vo.Variable{\n\t\t\t\t\t\t{Name: \"id\", Type: vo.VariableTypeString},\n\t\t\t\t\t\t{Name: \"price\", Type: vo.VariableTypeFloat},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array of Primitives (File)\",\n\t\t\tinput: &workflow.APIParameter{\n\t\t\t\tName:    \"attachments\",\n\t\t\t\tType:    workflow.ParameterType_Array,\n\t\t\t\tSubType: ptr.Of(workflow.ParameterType_String),\n\t\t\t\tSubParameters: []*workflow.APIParameter{\n\t\t\t\t\t{AssistType: &fileAssistType},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: &vo.Variable{\n\t\t\t\tName: \"attachments\",\n\t\t\t\tType: vo.VariableTypeList,\n\t\t\t\tSchema: &vo.Variable{\n\t\t\t\t\tType:       vo.VariableTypeString,\n\t\t\t\t\tAssistType: vo.AssistType(fileAssistType),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array of Primitives (String)\",\n\t\t\tinput: &workflow.APIParameter{\n\t\t\t\tName:    \"tags\",\n\t\t\t\tType:    workflow.ParameterType_Array,\n\t\t\t\tSubType: ptr.Of(workflow.ParameterType_String),\n\t\t\t},\n\t\t\texpected: &vo.Variable{\n\t\t\t\tName: \"tags\",\n\t\t\t\tType: vo.VariableTypeList,\n\t\t\t\tSchema: &vo.Variable{\n\t\t\t\t\tType: vo.VariableTypeString,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array with missing SubType\",\n\t\t\tinput: &workflow.APIParameter{\n\t\t\t\tName: \"bad_array\",\n\t\t\t\tType: workflow.ParameterType_Array,\n\t\t\t},\n\t\t\texpectErr:     true,\n\t\t\texpectedErrAs: \"missing a SubType\",\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tactual, err := toVariable(tc.input)\n\n\t\t\tif tc.expectErr {\n\t\t\t\trequire.Error(t, err)\n\t\t\t\tif tc.expectedErrAs != nil {\n\t\t\t\t\tassert.True(t, strings.Contains(err.Error(), fmt.Sprint(tc.expectedErrAs)))\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\trequire.NoError(t, err)\n\t\t\tassert.Equal(t, tc.expected, actual)\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "backend/bizpkg/config/base/base.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage base\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"os\"\n\t\"strings\"\n\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/envkey\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/kvstore\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ternary\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\nconst (\n\tbaseConfigKey = \"basic_config\"\n)\n\ntype BaseConfig struct {\n\tbase *kvstore.KVStore[config.BasicConfiguration]\n}\n\nfunc NewBaseConfig(db *gorm.DB) *BaseConfig {\n\treturn &BaseConfig{\n\t\tbase: kvstore.New[config.BasicConfiguration](db),\n\t}\n}\n\nfunc (c *BaseConfig) GetBaseConfig(ctx context.Context) (*config.BasicConfiguration, error) {\n\tconf, err := c.base.Get(ctx, consts.BaseConfigNameSpace, baseConfigKey)\n\tif err != nil {\n\t\tif errors.Is(err, kvstore.ErrKeyNotFound) {\n\t\t\treturn getBasicConfigurationFromOldConfig(), nil\n\t\t}\n\n\t\treturn nil, err\n\t}\n\n\treturn conf, nil\n}\n\nfunc (c *BaseConfig) SaveBaseConfig(ctx context.Context, v *config.BasicConfiguration) error {\n\treturn c.base.Save(ctx, consts.BaseConfigNameSpace, baseConfigKey, v)\n}\n\nfunc getBasicConfigurationFromOldConfig() *config.BasicConfiguration {\n\tdisableUserRegistration := ternary.IFElse(os.Getenv(consts.DisableUserRegistration) == \"true\", true, false)\n\trunnerTypeStr := os.Getenv(consts.CodeRunnerType)\n\tcodeRunnerType := ternary.IFElse(runnerTypeStr == \"sandbox\" || runnerTypeStr == \"\", config.CodeRunnerType_Sandbox, config.CodeRunnerType_Local)\n\ttimeoutSecondsStr := os.Getenv(consts.CodeRunnerTimeoutSeconds)\n\ttimeoutSeconds := conv.StrToFloat64D(timeoutSecondsStr, 60)\n\tmemoryLimitMbStr := os.Getenv(consts.CodeRunnerMemoryLimitMB)\n\tmemoryLimitMB := conv.StrToInt64D(memoryLimitMbStr, 100)\n\n\tconst ServerHost = \"SERVER_HOST\"\n\treturn &config.BasicConfiguration{\n\t\tAdminEmails:             \"\",\n\t\tDisableUserRegistration: disableUserRegistration,\n\t\tAllowRegistrationEmail:  os.Getenv(consts.DisableUserRegistration),\n\t\tPluginConfiguration: &config.PluginConfiguration{\n\t\t\tCozeSaasPluginEnabled: envkey.GetBoolD(\"COZE_SAAS_PLUGIN_ENABLED\", false),\n\t\t\tCozeAPIToken:          envkey.GetString(\"COZE_SAAS_API_KEY\"),\n\t\t\tCozeSaasAPIBaseURL:    envkey.GetStringD(\"COZE_SAAS_API_BASE_URL\", \"https://api.coze.cn\"),\n\t\t},\n\t\tCodeRunnerType: codeRunnerType,\n\t\tServerHost:     os.Getenv(ServerHost),\n\t\tSandboxConfig: &config.SandboxConfig{\n\t\t\tAllowEnv:       os.Getenv(consts.CodeRunnerAllowEnv),\n\t\t\tAllowRead:      os.Getenv(consts.CodeRunnerAllowRead),\n\t\t\tAllowWrite:     os.Getenv(consts.CodeRunnerAllowWrite),\n\t\t\tAllowNet:       os.Getenv(consts.CodeRunnerAllowNet),\n\t\t\tAllowRun:       os.Getenv(consts.CodeRunnerAllowRun),\n\t\t\tAllowFfi:       os.Getenv(consts.CodeRunnerAllowFFI),\n\t\t\tNodeModulesDir: os.Getenv(consts.CodeRunnerNodeModulesDir),\n\t\t\tTimeoutSeconds: timeoutSeconds,\n\t\t\tMemoryLimitMb:  memoryLimitMB,\n\t\t},\n\t}\n}\n\nfunc (c *BaseConfig) GetServerHost(ctx context.Context) (string, error) {\n\tcfg, err := c.GetBaseConfig(ctx)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\thost := cfg.ServerHost\n\tif host == \"\" {\n\t\treturn \"http://127.0.0.1:8888\", nil\n\t}\n\n\tif strings.HasPrefix(host, \"http://\") || strings.HasPrefix(host, \"https://\") {\n\t\treturn host, nil\n\t}\n\n\treturn \"https://\" + host, nil\n}\n"
  },
  {
    "path": "backend/bizpkg/config/config.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage config\n\nimport (\n\t\"context\"\n\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/base\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/knowledge\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n)\n\ntype BasicConfiguration = config.BasicConfiguration\ntype ModelStatus = config.ModelStatus\n\nconst (\n\t// Default state when not configured, equivalent to StatusInUse\n\tModelStatus_StatusDefault ModelStatus = 0\n\t// In the application, it can be used to create new\n\tModelStatus_StatusInUse ModelStatus = 1\n\t// It is offline, unusable, and cannot be created.\n\tModelStatus_StatusDeleted ModelStatus = 2\n)\n\ntype EmbeddingType = config.EmbeddingType\n\nconst (\n\tEmbeddingType_Ark    EmbeddingType = 0\n\tEmbeddingType_OpenAI EmbeddingType = 1\n\tEmbeddingType_Ollama EmbeddingType = 2\n\tEmbeddingType_Gemini EmbeddingType = 3\n\tEmbeddingType_HTTP   EmbeddingType = 4\n)\n\ntype Config struct {\n\tbase      *base.BaseConfig\n\tknowledge *knowledge.KnowledgeConfig\n\tmodel     *modelmgr.ModelConfig\n}\n\nvar shardConfig *Config\n\nfunc Init(ctx context.Context, db *gorm.DB, oss storage.Storage) error {\n\tshardConfig = &Config{\n\t\tbase:      base.NewBaseConfig(db),\n\t\tknowledge: knowledge.NewKnowledgeConfig(db),\n\t}\n\n\tm, err := modelmgr.Init(ctx, db, oss)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tshardConfig.model = m\n\n\treturn nil\n}\n\nfunc Base() *base.BaseConfig {\n\treturn shardConfig.base\n}\n\nfunc Knowledge() *knowledge.KnowledgeConfig {\n\treturn shardConfig.knowledge\n}\n\nfunc ModelConf() *modelmgr.ModelConfig {\n\treturn shardConfig.model\n}\n"
  },
  {
    "path": "backend/bizpkg/config/knowledge/knowledge.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage knowledge\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/envkey\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/kvstore\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n)\n\nconst (\n\tknowledgeConfigKey = \"knowledge_config\"\n)\n\ntype KnowledgeConfig struct {\n\tknowledge *kvstore.KVStore[config.KnowledgeConfig]\n}\n\nfunc NewKnowledgeConfig(db *gorm.DB) *KnowledgeConfig {\n\treturn &KnowledgeConfig{\n\t\tknowledge: kvstore.New[config.KnowledgeConfig](db),\n\t}\n}\n\nfunc (c *KnowledgeConfig) GetKnowledgeConfig(ctx context.Context) (*config.KnowledgeConfig, error) {\n\tconf, err := c.knowledge.Get(ctx, consts.KnowledgeConfigSpace, knowledgeConfigKey)\n\tif err != nil {\n\t\tif errors.Is(err, kvstore.ErrKeyNotFound) {\n\t\t\treturn getKnowledgeConfigurationFromOldConfig(), nil\n\t\t}\n\n\t\treturn nil, err\n\t}\n\n\treturn conf, nil\n}\n\nfunc getKnowledgeConfigurationFromOldConfig() *config.KnowledgeConfig {\n\tembeddingTypeStr := strings.ToUpper(os.Getenv(\"EMBEDDING_TYPE\"))\n\tbaseURLKey := fmt.Sprintf(\"%s_EMBEDDING_BASE_URL\", embeddingTypeStr)\n\tapiKeyKey := fmt.Sprintf(\"%s_EMBEDDING_API_KEY\", embeddingTypeStr)\n\tmodelKey := fmt.Sprintf(\"%s_EMBEDDING_MODEL\", embeddingTypeStr)\n\tdimsKey := fmt.Sprintf(\"%s_EMBEDDING_DIMS\", embeddingTypeStr)\n\n\tconf := &config.KnowledgeConfig{\n\t\tEmbeddingConfig: &config.EmbeddingConfig{\n\t\t\tType:         getEmbeddingType(),\n\t\t\tMaxBatchSize: envkey.GetI32D(\"EMBEDDING_MAX_BATCH_SIZE\", 100),\n\t\t\tConnection: &config.EmbeddingConnection{\n\t\t\t\tBaseConnInfo: &config.BaseConnectionInfo{\n\t\t\t\t\tBaseURL: envkey.GetString(baseURLKey),\n\t\t\t\t\tAPIKey:  envkey.GetString(apiKeyKey),\n\t\t\t\t\tModel:   envkey.GetString(modelKey),\n\t\t\t\t},\n\t\t\t\tEmbeddingInfo: &config.EmbeddingInfo{\n\t\t\t\t\tDims: envkey.GetI32D(dimsKey, 1024),\n\t\t\t\t},\n\t\t\t\tArk: &config.ArkConnInfo{\n\t\t\t\t\tAPIType: envkey.GetStringD(\"ARK_EMBEDDING_API_TYPE\", \"text_api\"),\n\t\t\t\t},\n\t\t\t\tOpenai: &config.OpenAIConnInfo{\n\t\t\t\t\tByAzure:    envkey.GetBoolD(\"OPENAI_EMBEDDING_BY_AZURE\", false),\n\t\t\t\t\tAPIVersion: envkey.GetString(\"OPENAI_EMBEDDING_API_VERSION\"),\n\t\t\t\t},\n\n\t\t\t\tGemini: &config.GeminiConnInfo{\n\t\t\t\t\tBackend:  envkey.GetI32D(\"GEMINI_EMBEDDING_BACKEND\", 1),\n\t\t\t\t\tProject:  envkey.GetString(\"GEMINI_EMBEDDING_PROJECT\"),\n\t\t\t\t\tLocation: envkey.GetString(\"GEMINI_EMBEDDING_LOCATION\"),\n\t\t\t\t},\n\t\t\t\tHTTP: &config.HttpConnection{\n\t\t\t\t\tAddress: envkey.GetString(\"HTTP_EMBEDDING_ADDR\"),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tRerankConfig: &config.RerankConfig{\n\t\t\tType: getRerankType(),\n\t\t\tVikingdbConfig: &config.VikingDBConfig{\n\t\t\t\tAk:     envkey.GetString(\"VIKINGDB_RERANK_AK\"),\n\t\t\t\tSk:     envkey.GetString(\"VIKINGDB_RERANK_SK\"),\n\t\t\t\tHost:   envkey.GetString(\"VIKINGDB_RERANK_HOST\"),\n\t\t\t\tRegion: envkey.GetString(\"VIKINGDB_RERANK_REGION\"),\n\t\t\t\tModel:  envkey.GetString(\"VIKINGDB_RERANK_MODEL\"),\n\t\t\t},\n\t\t},\n\t\tOcrConfig: &config.OCRConfig{\n\t\t\tType:            getOCRType(),\n\t\t\tVolcengineAk:    envkey.GetString(\"VE_OCR_AK\"),\n\t\t\tVolcengineSk:    envkey.GetString(\"VE_OCR_SK\"),\n\t\t\tPaddleocrAPIURL: envkey.GetString(\"PADDLEOCR_OCR_API_URL\"),\n\t\t},\n\t\tParserConfig: &config.ParserConfig{\n\t\t\tType:                     getParserType(),\n\t\t\tPaddleocrStructureAPIURL: envkey.GetString(\"PADDLEOCR_STRUCTURE_API_URL\"),\n\t\t},\n\t\tBuiltinModelID: 0,\n\t}\n\n\tif conf.EmbeddingConfig.Type == config.EmbeddingType_Ark {\n\t\tconf.EmbeddingConfig.Connection.BaseConnInfo.APIKey = getArkEmbeddingAPIKey()\n\t}\n\n\treturn conf\n}\n\nfunc getArkEmbeddingAPIKey() string {\n\tif len(envkey.GetString(\"ARK_EMBEDDING_API_KEY\")) > 0 {\n\t\treturn envkey.GetString(\"ARK_EMBEDDING_API_KEY\")\n\t}\n\treturn envkey.GetString(\"ARK_EMBEDDING_AK\")\n}\n\nfunc (c *KnowledgeConfig) SaveKnowledgeConfig(ctx context.Context, v *config.KnowledgeConfig) error {\n\treturn c.knowledge.Save(ctx, consts.KnowledgeConfigSpace, knowledgeConfigKey, v)\n}\n\nfunc getEmbeddingType() config.EmbeddingType {\n\tembeddingTypeStr := os.Getenv(\"EMBEDDING_TYPE\")\n\n\tswitch embeddingTypeStr {\n\tcase \"openai\":\n\t\treturn config.EmbeddingType_OpenAI\n\tcase \"ark\":\n\t\treturn config.EmbeddingType_Ark\n\tcase \"ollama\":\n\t\treturn config.EmbeddingType_Ollama\n\tcase \"gemini\":\n\t\treturn config.EmbeddingType_Gemini\n\tcase \"http\":\n\t\treturn config.EmbeddingType_HTTP\n\t}\n\n\treturn config.EmbeddingType_Ark\n}\n\nfunc getRerankType() config.RerankType {\n\tembeddingTypeStr := os.Getenv(\"RERANK_TYPE\")\n\n\tswitch embeddingTypeStr {\n\tcase \"rrf\":\n\t\treturn config.RerankType_RRF\n\tcase \"vikingdb\":\n\t\treturn config.RerankType_VikingDB\n\t}\n\n\treturn config.RerankType_RRF\n}\n\nfunc getOCRType() config.OCRType {\n\tocrTypeStr := os.Getenv(\"OCR_TYPE\")\n\n\tswitch ocrTypeStr {\n\tcase \"ve\":\n\t\treturn config.OCRType_Volcengine\n\tcase \"paddleocr\":\n\t\treturn config.OCRType_Paddleocr\n\t}\n\n\treturn config.OCRType_Volcengine\n}\n\nfunc getParserType() config.ParserType {\n\tparserTypeStr := os.Getenv(\"PARSER_TYPE\")\n\n\tswitch parserTypeStr {\n\tcase \"paddleocr\":\n\t\treturn config.ParserType_Paddleocr\n\t}\n\n\treturn config.ParserType_builtin\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/builtin_conf.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\npackage modelmgr\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\n\tconfig \"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/envkey\"\n)\n\nfunc (c *ModelConfig) GetBuiltinChatModelConfig(ctx context.Context, builtinModelID int64) (*Model, error) {\n\tif builtinModelID > 0 {\n\t\treturn c.GetModelByID(ctx, builtinModelID)\n\t}\n\n\toldKnowledgeModel := getOldKnowledgeBuiltinChatModelConfig()\n\tif oldKnowledgeModel == nil {\n\t\treturn nil, fmt.Errorf(\"old knowledge model conf is nil\")\n\t}\n\n\treturn oldKnowledgeModel, nil\n}\n\nfunc getOldKnowledgeBuiltinChatModelConfig() *Model {\n\tmodelClass := getKnowledgeBuiltinModelClass()\n\tprovider, ok := GetModelProvider(modelClass)\n\tif !ok {\n\t\treturn nil\n\t}\n\n\ttypeStr := strings.ToUpper(os.Getenv(\"BUILTIN_CM_TYPE\"))\n\n\tif typeStr == \"\" {\n\t\treturn nil\n\t}\n\n\tbaseURLKey := fmt.Sprintf(\"BUILTIN_CM_%s_BASE_URL\", typeStr)\n\tapiKeyKey := fmt.Sprintf(\"BUILTIN_CM_%s_API_KEY\", typeStr)\n\tmodelKey := fmt.Sprintf(\"BUILTIN_CM_%s_MODEL\", typeStr)\n\n\treturn &Model{\n\t\tModel: &config.Model{\n\t\t\tProvider: provider,\n\t\t\tConnection: &config.Connection{\n\t\t\t\tBaseConnInfo: &config.BaseConnectionInfo{\n\t\t\t\t\tBaseURL: envkey.GetString(baseURLKey),\n\t\t\t\t\tModel:   envkey.GetString(modelKey),\n\t\t\t\t\tAPIKey:  envkey.GetString(apiKeyKey),\n\t\t\t\t},\n\t\t\t\tGemini: &config.GeminiConnInfo{\n\t\t\t\t\tBackend:  envkey.GetI32D(\"BUILTIN_CM_GEMINI_BACKEND\", 1),\n\t\t\t\t\tProject:  envkey.GetString(\"BUILTIN_CM_GEMINI_PROJECT\"),\n\t\t\t\t\tLocation: envkey.GetString(\"BUILTIN_CM_GEMINI_LOCATION\"),\n\t\t\t\t},\n\t\t\t\tOpenai: &config.OpenAIConnInfo{\n\t\t\t\t\tByAzure: envkey.GetBoolD(\"BUILTIN_CM_OPENAI_BY_AZURE\", false),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc getKnowledgeBuiltinModelClass() developer_api.ModelClass {\n\tbuiltinChatModelTypeStr := os.Getenv(\"BUILTIN_CM_TYPE\")\n\tswitch builtinChatModelTypeStr {\n\tcase \"openai\":\n\t\treturn developer_api.ModelClass_GPT\n\tcase \"ark\":\n\t\treturn developer_api.ModelClass_SEED\n\tcase \"deepseek\":\n\t\treturn developer_api.ModelClass_DeekSeek\n\tcase \"ollama\":\n\t\treturn developer_api.ModelClass_Llama\n\tcase \"qwen\":\n\t\treturn developer_api.ModelClass_QWen\n\tcase \"gemini\":\n\t\treturn developer_api.ModelClass_Gemini\n\tdefault:\n\t\treturn developer_api.ModelClass_SEED\n\t}\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/deprecate_model_get.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelmgr\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/cloudwego/eino-ext/components/model/deepseek\"\n\t\"github.com/cloudwego/eino-ext/components/model/openai\"\n\t\"gorm.io/gorm\"\n\n\tconfig \"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/envkey\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/kvstore\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n\t\"github.com/coze-dev/coze-studio/backend/types/consts\"\n\n\t\"google.golang.org/genai\"\n\t\"gopkg.in/yaml.v3\"\n)\n\nvar oldModels []*Model\n\nfunc initOldModelConf(ctx context.Context, oss storage.Storage, c *ModelConfig) error {\n\twd, err := os.Getwd()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmo, err := initModelByTemplate(wd, \"resources/conf/model\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\toldModels = mo\n\n\tenvModel, err := initModelByEnv()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif envModel != nil {\n\t\toldModels = append(oldModels, envModel)\n\t}\n\n\tfor _, q := range oldModels {\n\t\tif q.Provider.IconURI != \"\" {\n\t\t\turl, err := oss.GetObjectUrl(ctx, q.Provider.IconURI)\n\t\t\tif err != nil {\n\t\t\t\tlogs.CtxWarnf(ctx, \"get model icon url failed, err: %v\", err)\n\t\t\t} else {\n\t\t\t\tq.Provider.IconURL = url\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, old := range oldModels {\n\t\tif old.ID <= 0 {\n\t\t\tlogs.CtxWarnf(ctx, \"model id is invalid, model: %v\", old.ID)\n\t\t\tcontinue\n\t\t}\n\n\t\t_, err := c.getModelByID(ctx, old.ID)\n\t\tif err == nil {\n\t\t\tlogs.CtxInfof(ctx, \"model id %d - %s already exists\", old.ID, old.DisplayInfo.Name)\n\t\t\tcontinue\n\t\t}\n\n\t\tif errors.Is(err, gorm.ErrRecordNotFound) {\n\t\t\tid, err1 := c.createModel(ctx, &old.ID,\n\t\t\t\told.Provider.ModelClass, old.DisplayInfo.Name, old.Connection, &ModelExtra{EnableBase64URL: false})\n\t\t\tif err1 != nil {\n\t\t\t\treturn fmt.Errorf(\"sync old model to db failed, err: %w\", err1)\n\t\t\t}\n\n\t\t\tlogs.CtxInfof(ctx, \"sync old model id %d - %s to db success, new id: %d \", old.ID, old.DisplayInfo.Name, id)\n\t\t\tcontinue\n\t\t}\n\n\t\treturn fmt.Errorf(\"get model by id failed, err: %w\", err)\n\t}\n\n\treturn nil\n}\n\nfunc initModelByEnv() (*Model, error) {\n\tif os.Getenv(\"MODEL_PROTOCOL_0\") == \"\" || os.Getenv(\"MODEL_OPENCOZE_ID_0\") == \"\" {\n\t\treturn nil, nil\n\t}\n\tprotocol := os.Getenv(\"MODEL_PROTOCOL_0\")\n\topenCozeID, err := envkey.GetI64(\"MODEL_OPENCOZE_ID_0\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tname := os.Getenv(\"MODEL_NAME_0\")\n\tmodelID := os.Getenv(\"MODEL_ID_0\")\n\tapiKey := os.Getenv(\"MODEL_API_KEY_0\")\n\tbaseURL := os.Getenv(\"MODEL_BASE_URL_0\")\n\n\tmodelClass := strProtocolToModelClass(Protocol(protocol))\n\tprovider, _ := GetModelProvider(modelClass)\n\n\tmodelMeta, err := modelMetaConf.GetModelMeta(modelClass, modelID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"get model meta failed, err: %w\", err)\n\t}\n\n\tm := &Model{\n\t\tModel: &config.Model{\n\t\t\tID:          openCozeID,\n\t\t\tDisplayInfo: modelMeta.DisplayInfo,\n\t\t\tProvider:    provider,\n\t\t\tConnection: &config.Connection{\n\t\t\t\tBaseConnInfo: &config.BaseConnectionInfo{\n\t\t\t\t\tBaseURL: baseURL,\n\t\t\t\t\tAPIKey:  apiKey,\n\t\t\t\t\tModel:   modelID,\n\t\t\t\t},\n\t\t\t},\n\t\t\tCapability:      modelMeta.Capability,\n\t\t\tParameters:      modelMeta.Parameters,\n\t\t\tStatus:          config.ModelStatus_StatusInUse,\n\t\t\tEnableBase64URL: modelMeta.EnableBase64URL,\n\t\t\tType:            config.ModelType_LLM,\n\t\t},\n\t}\n\n\tif m.DisplayInfo.Name == \"\" {\n\t\tm.DisplayInfo.Name = name\n\t}\n\n\tif modelMeta.Connection != nil {\n\t\tm.Connection.Ark = modelMeta.Connection.Ark\n\t\tm.Connection.Openai = modelMeta.Connection.Openai\n\t\tm.Connection.Deepseek = modelMeta.Connection.Deepseek\n\t\tm.Connection.Gemini = modelMeta.Connection.Gemini\n\t\tm.Connection.Qwen = modelMeta.Connection.Qwen\n\t\tm.Connection.Ollama = modelMeta.Connection.Ollama\n\t\tm.Connection.Claude = modelMeta.Connection.Claude\n\t}\n\n\treturn m, nil\n}\n\nfunc initModelByTemplate(wd, configPath string) ([]*Model, error) {\n\tconfigRoot := filepath.Join(wd, configPath)\n\tstaticModel, err := readDirYaml[OldModel](configRoot)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmodels := make([]*Model, 0, len(staticModel))\n\tfor _, old := range staticModel {\n\t\tm, err := toNewModel(old)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"to new model failed, err: %w\", err)\n\t\t}\n\n\t\tmodels = append(models, m)\n\t}\n\n\treturn models, nil\n}\n\nfunc strProtocolToModelClass(protocol Protocol) developer_api.ModelClass {\n\tmodelClass := developer_api.ModelClass_SEED\n\n\tswitch protocol {\n\tcase ProtocolOpenAI:\n\t\tmodelClass = developer_api.ModelClass_GPT\n\tcase ProtocolClaude:\n\t\tmodelClass = developer_api.ModelClass_Claude\n\tcase ProtocolDeepseek:\n\t\tmodelClass = developer_api.ModelClass_DeekSeek\n\tcase ProtocolGemini:\n\t\tmodelClass = developer_api.ModelClass_Gemini\n\tcase ProtocolArk:\n\t\tmodelClass = developer_api.ModelClass_SEED\n\tcase ProtocolOllama:\n\t\tmodelClass = developer_api.ModelClass_Llama\n\tcase ProtocolQwen:\n\t\tmodelClass = developer_api.ModelClass_QWen\n\tdefault:\n\t\tmodelClass = developer_api.ModelClass_SEED\n\t}\n\n\treturn modelClass\n}\n\nfunc (c *ModelConfig) UseOldModelConf(ctx context.Context) (bool, error) {\n\tuseOldModelList, ok := ctxcache.Get[bool](ctx, doNotUseOldModelFlagContextKey)\n\tif ok {\n\t\treturn useOldModelList, nil\n\t}\n\n\t_, err := c.kv.Get(ctx, consts.ModelConfigSpace, doNotUseOldModelFlagKey)\n\tif err != nil {\n\t\tif errors.Is(err, kvstore.ErrKeyNotFound) {\n\t\t\tlogs.CtxInfof(ctx, \"[UseOldModelConf] will use old model\")\n\t\t\tctxcache.Store(ctx, doNotUseOldModelFlagContextKey, true)\n\t\t\treturn true, nil\n\t\t}\n\n\t\treturn false, err\n\t}\n\n\tctxcache.Store(ctx, doNotUseOldModelFlagContextKey, false)\n\treturn false, nil\n}\n\nfunc (c *ModelConfig) SetDoNotUseOldModelConf(ctx context.Context) error {\n\tuseOldModelList, err := c.UseOldModelConf(ctx)\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"set use new model list failed, err: %v , will try to set use new model flag\", err)\n\t}\n\n\tif useOldModelList {\n\t\treturn c.kv.Save(ctx, consts.ModelConfigSpace, doNotUseOldModelFlagKey, &struct{}{})\n\t}\n\n\treturn nil\n}\n\nfunc toNewModel(old *OldModel) (*Model, error) {\n\t// to new model, old: {\"ID\":68010,\"Name\":\"Test_Ollama_Qwen2.5vl-7b\",\"Description\":{\"zh\":\"ollama 模型简介\",\"en\":\"ollama model description\"},\"Meta\":{\"Protocol\":\"ollama\",\"ConnConfig\":null}}\n\tmodelClass := strProtocolToModelClass(old.Meta.Protocol)\n\tprovider, _ := GetModelProvider(modelClass)\n\n\tmodelMeta, err := modelMetaConf.GetModelMeta(modelClass, old.Meta.ConnConfig.Model)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"get model meta failed, err: %w\", err)\n\t}\n\n\tm := &Model{\n\t\tModel: &config.Model{\n\t\t\tID:          old.ID,\n\t\t\tDisplayInfo: modelMeta.DisplayInfo,\n\t\t\tProvider:    provider,\n\t\t\tConnection: &config.Connection{\n\t\t\t\tBaseConnInfo: &config.BaseConnectionInfo{\n\t\t\t\t\tBaseURL: old.Meta.ConnConfig.BaseURL,\n\t\t\t\t\tAPIKey:  old.Meta.ConnConfig.APIKey,\n\t\t\t\t\tModel:   old.Meta.ConnConfig.Model,\n\t\t\t\t},\n\t\t\t},\n\t\t\tCapability:      modelMeta.Capability,\n\t\t\tParameters:      modelMeta.Parameters,\n\t\t\tStatus:          config.ModelStatus_StatusInUse,\n\t\t\tEnableBase64URL: modelMeta.EnableBase64URL,\n\t\t\tType:            config.ModelType_LLM,\n\t\t},\n\t}\n\n\tm.DisplayInfo.Name = old.Name\n\n\tif modelMeta.Connection != nil {\n\t\tm.Connection.Ark = modelMeta.Connection.Ark\n\t\tm.Connection.Openai = modelMeta.Connection.Openai\n\t\tm.Connection.Deepseek = modelMeta.Connection.Deepseek\n\t\tm.Connection.Gemini = modelMeta.Connection.Gemini\n\t\tm.Connection.Qwen = modelMeta.Connection.Qwen\n\t\tm.Connection.Ollama = modelMeta.Connection.Ollama\n\t\tm.Connection.Claude = modelMeta.Connection.Claude\n\t}\n\n\tif old.Meta.ConnConfig.EnableBase64Url != nil {\n\t\tm.EnableBase64URL = *old.Meta.ConnConfig.EnableBase64Url\n\t}\n\n\tlogs.Debugf(\"to new model, old: %v \\n new %v\",\n\t\tconv.DebugJsonToStr(old), conv.DebugJsonToStr(m))\n\n\treturn m, nil\n}\n\nfunc readDirYaml[T any](dir string) ([]*T, error) {\n\tdes, err := os.ReadDir(dir)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresp := make([]*T, 0, len(des))\n\tfor _, file := range des {\n\t\tif file.IsDir() {\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasSuffix(file.Name(), \".yaml\") || strings.HasSuffix(file.Name(), \".yml\") {\n\t\t\tfilePath := filepath.Join(dir, file.Name())\n\t\t\tdata, err := os.ReadFile(filePath)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tvar content T\n\t\t\tif err := yaml.Unmarshal(data, &content); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\t// logs.Debugf(\"readDirYaml %s  , content: %s\", string(data), conv.DebugJsonToStr(content))\n\n\t\t\tresp = append(resp, &content)\n\t\t}\n\t}\n\treturn resp, nil\n}\n\ntype OldModel struct {\n\tID          int64             `yaml:\"id\"`\n\tName        string            `yaml:\"name\"`\n\tDescription *MultilingualText `yaml:\"description\"`\n\tMeta        ModelOldMeta      `yaml:\"meta\"`\n}\n\ntype ModelOldMeta struct {\n\tProtocol Protocol `yaml:\"protocol\"` // Model Communication Protocol\n\n\tConnConfig *OldConfig `yaml:\"conn_config\"` // model connection configuration\n}\n\ntype Protocol string\n\nconst (\n\tProtocolOpenAI   Protocol = \"openai\"\n\tProtocolClaude   Protocol = \"claude\"\n\tProtocolDeepseek Protocol = \"deepseek\"\n\tProtocolGemini   Protocol = \"gemini\"\n\tProtocolArk      Protocol = \"ark\"\n\tProtocolOllama   Protocol = \"ollama\"\n\tProtocolQwen     Protocol = \"qwen\"\n)\n\ntype MultilingualText struct {\n\tZH string `json:\"zh,omitempty\" yaml:\"zh,omitempty\"`\n\tEN string `json:\"en,omitempty\" yaml:\"en,omitempty\"`\n}\n\ntype OldConfig struct {\n\tBaseURL string        `json:\"base_url,omitempty\" yaml:\"base_url\"`\n\tAPIKey  string        `json:\"api_key,omitempty\" yaml:\"api_key\"`\n\tTimeout time.Duration `json:\"timeout,omitempty\" yaml:\"timeout\"`\n\n\tModel            string   `json:\"model\" yaml:\"model\"`\n\tTemperature      *float32 `json:\"temperature,omitempty\" yaml:\"temperature,omitempty\"`\n\tFrequencyPenalty *float32 `json:\"frequency_penalty,omitempty\" yaml:\"frequency_penalty,omitempty\"`\n\tPresencePenalty  *float32 `json:\"presence_penalty,omitempty\" yaml:\"presence_penalty,omitempty\"`\n\tMaxTokens        *int     `json:\"max_tokens,omitempty\" yaml:\"max_tokens,omitempty\"`\n\tTopP             *float32 `json:\"top_p,omitempty\" yaml:\"top_p\"`\n\tTopK             *int     `json:\"top_k,omitempty\" yaml:\"top_k\"`\n\tStop             []string `json:\"stop,omitempty\" yaml:\"stop\"`\n\tEnableThinking   *bool    `json:\"enable_thinking,omitempty\" yaml:\"enable_thinking,omitempty\"`\n\tEnableBase64Url  *bool    `json:\"enable_base64_url,omitempty\" yaml:\"enable_base64_url,omitempty\"`\n\n\tOpenAI   *OpenAIConfig   `json:\"open_ai,omitempty\" yaml:\"openai\"`\n\tClaude   *ClaudeConfig   `json:\"claude,omitempty\" yaml:\"claude\"`\n\tArk      *ArkConfig      `json:\"ark,omitempty\" yaml:\"ark\"`\n\tDeepseek *DeepseekConfig `json:\"deepseek,omitempty\" yaml:\"deepseek\"`\n\tQwen     *QwenConfig     `json:\"qwen,omitempty\" yaml:\"qwen\"`\n\tGemini   *GeminiConfig   `json:\"gemini,omitempty\" yaml:\"gemini\"`\n\n\tCustom map[string]string `json:\"custom,omitempty\" yaml:\"custom\"`\n}\n\ntype OpenAIConfig struct {\n\tByAzure    bool   `json:\"by_azure,omitempty\" yaml:\"by_azure\"`\n\tAPIVersion string `json:\"api_version,omitempty\" yaml:\"api_version\"`\n\n\tResponseFormat *openai.ChatCompletionResponseFormat `json:\"response_format,omitempty\" yaml:\"response_format\"`\n}\n\ntype ClaudeConfig struct {\n\tByBedrock bool `json:\"by_bedrock\" yaml:\"by_bedrock\"`\n\t// bedrock config\n\tAccessKey       string `json:\"access_key,omitempty\" yaml:\"access_key\"`\n\tSecretAccessKey string `json:\"secret_access_key,omitempty\" yaml:\"secret_access_key\"`\n\tSessionToken    string `json:\"session_token,omitempty\" yaml:\"session_token\"`\n\tRegion          string `json:\"region,omitempty\" yaml:\"region\"`\n\tBudgetTokens    *int   `json:\"budget_tokens,omitempty\" yaml:\"budget_tokens\"`\n}\n\ntype ArkConfig struct {\n\tRegion       string            `json:\"region\" yaml:\"region\"`\n\tAccessKey    string            `json:\"access_key,omitempty\" yaml:\"access_key\"`\n\tSecretKey    string            `json:\"secret_key,omitempty\" yaml:\"secret_key\"`\n\tRetryTimes   *int              `json:\"retry_times,omitempty\" yaml:\"retry_times\"`\n\tCustomHeader map[string]string `json:\"custom_header,omitempty\" yaml:\"custom_header\"`\n}\n\ntype DeepseekConfig struct {\n\tResponseFormatType deepseek.ResponseFormatType `json:\"response_format_type\" yaml:\"response_format_type\"`\n}\n\ntype QwenConfig struct {\n\tResponseFormat *openai.ChatCompletionResponseFormat `json:\"response_format,omitempty\" yaml:\"response_format\"`\n}\n\ntype GeminiConfig struct {\n\tBackend    genai.Backend       `json:\"backend,omitempty\" yaml:\"backend\"`\n\tProject    string              `json:\"project,omitempty\" yaml:\"project\"`\n\tLocation   string              `json:\"location,omitempty\" yaml:\"location\"`\n\tAPIVersion string              `json:\"api_version,omitempty\" yaml:\"api_version\"`\n\tHeaders    map[string][]string `json:\"headers,omitempty\" yaml:\"headers\"`\n\tTimeoutMs  int64               `json:\"timeout_ms,omitempty\" yaml:\"timeout_ms\"`\n\n\tIncludeThoughts *bool  `json:\"include_thoughts,omitempty\" yaml:\"include_thoughts\"` // default true\n\tThinkingBudget  *int32 `json:\"thinking_budget,omitempty\" yaml:\"thinking_budget\"`   // default nil\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/extra.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelmgr\n\ntype ModelExtra struct {\n\tEnableBase64URL bool `json:\"enable_base64_url\"`\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/internal/model/model_instance.gen.go",
    "content": "// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm.io/gen. DO NOT EDIT.\n\npackage model\n\nimport (\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n)\n\nconst TableNameModelInstance = \"model_instance\"\n\n// ModelInstance Model Instance Management Table\ntype ModelInstance struct {\n\tID          int64                           `gorm:\"column:id;primaryKey;autoIncrement:true;comment:id\" json:\"id\"`                                          // id\n\tType        int32                           `gorm:\"column:type;not null;comment:Model Type 0-LLM 1-TextEmbedding 2-Rerank\" json:\"type\"`                    // Model Type 0-LLM 1-TextEmbedding 2-Rerank\n\tProvider    *config.ModelProvider           `gorm:\"column:provider;not null;comment:Provider Information;serializer:json\" json:\"provider\"`                 // Provider Information\n\tDisplayInfo *config.DisplayInfo             `gorm:\"column:display_info;not null;comment:Display Information;serializer:json\" json:\"display_info\"`          // Display Information\n\tConnection  *config.Connection              `gorm:\"column:connection;not null;comment:Connection Information;serializer:json\" json:\"connection\"`           // Connection Information\n\tCapability  *developer_api.ModelAbility     `gorm:\"column:capability;not null;comment:Model Capability;serializer:json\" json:\"capability\"`                 // Model Capability\n\tParameters  []*developer_api.ModelParameter `gorm:\"column:parameters;not null;comment:Model Parameters;serializer:json\" json:\"parameters\"`                 // Model Parameters\n\tExtra       string                          `gorm:\"column:extra;comment:Extra Information\" json:\"extra\"`                                                   // Extra Information\n\tCreatedAt   int64                           `gorm:\"column:created_at;not null;autoCreateTime:milli;comment:Create Time in Milliseconds\" json:\"created_at\"` // Create Time in Milliseconds\n\tUpdatedAt   int64                           `gorm:\"column:updated_at;not null;autoUpdateTime:milli;comment:Update Time in Milliseconds\" json:\"updated_at\"` // Update Time in Milliseconds\n\tDeletedAt   gorm.DeletedAt                  `gorm:\"column:deleted_at;comment:Delete Time\" json:\"deleted_at\"`                                               // Delete Time\n}\n\n// TableName ModelInstance's table name\nfunc (*ModelInstance) TableName() string {\n\treturn TableNameModelInstance\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/internal/query/gen.go",
    "content": "// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm.io/gen. DO NOT EDIT.\n\npackage query\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\n\t\"gorm.io/gorm\"\n\n\t\"gorm.io/gen\"\n\n\t\"gorm.io/plugin/dbresolver\"\n)\n\nvar (\n\tQ             = new(Query)\n\tModelInstance *modelInstance\n)\n\nfunc SetDefault(db *gorm.DB, opts ...gen.DOOption) {\n\t*Q = *Use(db, opts...)\n\tModelInstance = &Q.ModelInstance\n}\n\nfunc Use(db *gorm.DB, opts ...gen.DOOption) *Query {\n\treturn &Query{\n\t\tdb:            db,\n\t\tModelInstance: newModelInstance(db, opts...),\n\t}\n}\n\ntype Query struct {\n\tdb *gorm.DB\n\n\tModelInstance modelInstance\n}\n\nfunc (q *Query) Available() bool { return q.db != nil }\n\nfunc (q *Query) clone(db *gorm.DB) *Query {\n\treturn &Query{\n\t\tdb:            db,\n\t\tModelInstance: q.ModelInstance.clone(db),\n\t}\n}\n\nfunc (q *Query) ReadDB() *Query {\n\treturn q.ReplaceDB(q.db.Clauses(dbresolver.Read))\n}\n\nfunc (q *Query) WriteDB() *Query {\n\treturn q.ReplaceDB(q.db.Clauses(dbresolver.Write))\n}\n\nfunc (q *Query) ReplaceDB(db *gorm.DB) *Query {\n\treturn &Query{\n\t\tdb:            db,\n\t\tModelInstance: q.ModelInstance.replaceDB(db),\n\t}\n}\n\ntype queryCtx struct {\n\tModelInstance IModelInstanceDo\n}\n\nfunc (q *Query) WithContext(ctx context.Context) *queryCtx {\n\treturn &queryCtx{\n\t\tModelInstance: q.ModelInstance.WithContext(ctx),\n\t}\n}\n\nfunc (q *Query) Transaction(fc func(tx *Query) error, opts ...*sql.TxOptions) error {\n\treturn q.db.Transaction(func(tx *gorm.DB) error { return fc(q.clone(tx)) }, opts...)\n}\n\nfunc (q *Query) Begin(opts ...*sql.TxOptions) *QueryTx {\n\ttx := q.db.Begin(opts...)\n\treturn &QueryTx{Query: q.clone(tx), Error: tx.Error}\n}\n\ntype QueryTx struct {\n\t*Query\n\tError error\n}\n\nfunc (q *QueryTx) Commit() error {\n\treturn q.db.Commit().Error\n}\n\nfunc (q *QueryTx) Rollback() error {\n\treturn q.db.Rollback().Error\n}\n\nfunc (q *QueryTx) SavePoint(name string) error {\n\treturn q.db.SavePoint(name).Error\n}\n\nfunc (q *QueryTx) RollbackTo(name string) error {\n\treturn q.db.RollbackTo(name).Error\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/internal/query/model_instance.gen.go",
    "content": "// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm.io/gen. DO NOT EDIT.\n\npackage query\n\nimport (\n\t\"context\"\n\n\t\"gorm.io/gorm\"\n\t\"gorm.io/gorm/clause\"\n\t\"gorm.io/gorm/schema\"\n\n\t\"gorm.io/gen\"\n\t\"gorm.io/gen/field\"\n\n\t\"gorm.io/plugin/dbresolver\"\n\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr/internal/model\"\n)\n\nfunc newModelInstance(db *gorm.DB, opts ...gen.DOOption) modelInstance {\n\t_modelInstance := modelInstance{}\n\n\t_modelInstance.modelInstanceDo.UseDB(db, opts...)\n\t_modelInstance.modelInstanceDo.UseModel(&model.ModelInstance{})\n\n\ttableName := _modelInstance.modelInstanceDo.TableName()\n\t_modelInstance.ALL = field.NewAsterisk(tableName)\n\t_modelInstance.ID = field.NewInt64(tableName, \"id\")\n\t_modelInstance.Type = field.NewInt32(tableName, \"type\")\n\t_modelInstance.Provider = field.NewField(tableName, \"provider\")\n\t_modelInstance.DisplayInfo = field.NewField(tableName, \"display_info\")\n\t_modelInstance.Connection = field.NewField(tableName, \"connection\")\n\t_modelInstance.Capability = field.NewField(tableName, \"capability\")\n\t_modelInstance.Parameters = field.NewField(tableName, \"parameters\")\n\t_modelInstance.Extra = field.NewString(tableName, \"extra\")\n\t_modelInstance.CreatedAt = field.NewInt64(tableName, \"created_at\")\n\t_modelInstance.UpdatedAt = field.NewInt64(tableName, \"updated_at\")\n\t_modelInstance.DeletedAt = field.NewField(tableName, \"deleted_at\")\n\n\t_modelInstance.fillFieldMap()\n\n\treturn _modelInstance\n}\n\n// modelInstance Model Instance Management Table\ntype modelInstance struct {\n\tmodelInstanceDo\n\n\tALL         field.Asterisk\n\tID          field.Int64  // id\n\tType        field.Int32  // Model Type 0-LLM 1-TextEmbedding 2-Rerank\n\tProvider    field.Field  // Provider Information\n\tDisplayInfo field.Field  // Display Information\n\tConnection  field.Field  // Connection Information\n\tCapability  field.Field  // Model Capability\n\tParameters  field.Field  // Model Parameters\n\tExtra       field.String // Extra Information\n\tCreatedAt   field.Int64  // Create Time in Milliseconds\n\tUpdatedAt   field.Int64  // Update Time in Milliseconds\n\tDeletedAt   field.Field  // Delete Time\n\n\tfieldMap map[string]field.Expr\n}\n\nfunc (m modelInstance) Table(newTableName string) *modelInstance {\n\tm.modelInstanceDo.UseTable(newTableName)\n\treturn m.updateTableName(newTableName)\n}\n\nfunc (m modelInstance) As(alias string) *modelInstance {\n\tm.modelInstanceDo.DO = *(m.modelInstanceDo.As(alias).(*gen.DO))\n\treturn m.updateTableName(alias)\n}\n\nfunc (m *modelInstance) updateTableName(table string) *modelInstance {\n\tm.ALL = field.NewAsterisk(table)\n\tm.ID = field.NewInt64(table, \"id\")\n\tm.Type = field.NewInt32(table, \"type\")\n\tm.Provider = field.NewField(table, \"provider\")\n\tm.DisplayInfo = field.NewField(table, \"display_info\")\n\tm.Connection = field.NewField(table, \"connection\")\n\tm.Capability = field.NewField(table, \"capability\")\n\tm.Parameters = field.NewField(table, \"parameters\")\n\tm.Extra = field.NewString(table, \"extra\")\n\tm.CreatedAt = field.NewInt64(table, \"created_at\")\n\tm.UpdatedAt = field.NewInt64(table, \"updated_at\")\n\tm.DeletedAt = field.NewField(table, \"deleted_at\")\n\n\tm.fillFieldMap()\n\n\treturn m\n}\n\nfunc (m *modelInstance) GetFieldByName(fieldName string) (field.OrderExpr, bool) {\n\t_f, ok := m.fieldMap[fieldName]\n\tif !ok || _f == nil {\n\t\treturn nil, false\n\t}\n\t_oe, ok := _f.(field.OrderExpr)\n\treturn _oe, ok\n}\n\nfunc (m *modelInstance) fillFieldMap() {\n\tm.fieldMap = make(map[string]field.Expr, 11)\n\tm.fieldMap[\"id\"] = m.ID\n\tm.fieldMap[\"type\"] = m.Type\n\tm.fieldMap[\"provider\"] = m.Provider\n\tm.fieldMap[\"display_info\"] = m.DisplayInfo\n\tm.fieldMap[\"connection\"] = m.Connection\n\tm.fieldMap[\"capability\"] = m.Capability\n\tm.fieldMap[\"parameters\"] = m.Parameters\n\tm.fieldMap[\"extra\"] = m.Extra\n\tm.fieldMap[\"created_at\"] = m.CreatedAt\n\tm.fieldMap[\"updated_at\"] = m.UpdatedAt\n\tm.fieldMap[\"deleted_at\"] = m.DeletedAt\n}\n\nfunc (m modelInstance) clone(db *gorm.DB) modelInstance {\n\tm.modelInstanceDo.ReplaceConnPool(db.Statement.ConnPool)\n\treturn m\n}\n\nfunc (m modelInstance) replaceDB(db *gorm.DB) modelInstance {\n\tm.modelInstanceDo.ReplaceDB(db)\n\treturn m\n}\n\ntype modelInstanceDo struct{ gen.DO }\n\ntype IModelInstanceDo interface {\n\tgen.SubQuery\n\tDebug() IModelInstanceDo\n\tWithContext(ctx context.Context) IModelInstanceDo\n\tWithResult(fc func(tx gen.Dao)) gen.ResultInfo\n\tReplaceDB(db *gorm.DB)\n\tReadDB() IModelInstanceDo\n\tWriteDB() IModelInstanceDo\n\tAs(alias string) gen.Dao\n\tSession(config *gorm.Session) IModelInstanceDo\n\tColumns(cols ...field.Expr) gen.Columns\n\tClauses(conds ...clause.Expression) IModelInstanceDo\n\tNot(conds ...gen.Condition) IModelInstanceDo\n\tOr(conds ...gen.Condition) IModelInstanceDo\n\tSelect(conds ...field.Expr) IModelInstanceDo\n\tWhere(conds ...gen.Condition) IModelInstanceDo\n\tOrder(conds ...field.Expr) IModelInstanceDo\n\tDistinct(cols ...field.Expr) IModelInstanceDo\n\tOmit(cols ...field.Expr) IModelInstanceDo\n\tJoin(table schema.Tabler, on ...field.Expr) IModelInstanceDo\n\tLeftJoin(table schema.Tabler, on ...field.Expr) IModelInstanceDo\n\tRightJoin(table schema.Tabler, on ...field.Expr) IModelInstanceDo\n\tGroup(cols ...field.Expr) IModelInstanceDo\n\tHaving(conds ...gen.Condition) IModelInstanceDo\n\tLimit(limit int) IModelInstanceDo\n\tOffset(offset int) IModelInstanceDo\n\tCount() (count int64, err error)\n\tScopes(funcs ...func(gen.Dao) gen.Dao) IModelInstanceDo\n\tUnscoped() IModelInstanceDo\n\tCreate(values ...*model.ModelInstance) error\n\tCreateInBatches(values []*model.ModelInstance, batchSize int) error\n\tSave(values ...*model.ModelInstance) error\n\tFirst() (*model.ModelInstance, error)\n\tTake() (*model.ModelInstance, error)\n\tLast() (*model.ModelInstance, error)\n\tFind() ([]*model.ModelInstance, error)\n\tFindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*model.ModelInstance, err error)\n\tFindInBatches(result *[]*model.ModelInstance, batchSize int, fc func(tx gen.Dao, batch int) error) error\n\tPluck(column field.Expr, dest interface{}) error\n\tDelete(...*model.ModelInstance) (info gen.ResultInfo, err error)\n\tUpdate(column field.Expr, value interface{}) (info gen.ResultInfo, err error)\n\tUpdateSimple(columns ...field.AssignExpr) (info gen.ResultInfo, err error)\n\tUpdates(value interface{}) (info gen.ResultInfo, err error)\n\tUpdateColumn(column field.Expr, value interface{}) (info gen.ResultInfo, err error)\n\tUpdateColumnSimple(columns ...field.AssignExpr) (info gen.ResultInfo, err error)\n\tUpdateColumns(value interface{}) (info gen.ResultInfo, err error)\n\tUpdateFrom(q gen.SubQuery) gen.Dao\n\tAttrs(attrs ...field.AssignExpr) IModelInstanceDo\n\tAssign(attrs ...field.AssignExpr) IModelInstanceDo\n\tJoins(fields ...field.RelationField) IModelInstanceDo\n\tPreload(fields ...field.RelationField) IModelInstanceDo\n\tFirstOrInit() (*model.ModelInstance, error)\n\tFirstOrCreate() (*model.ModelInstance, error)\n\tFindByPage(offset int, limit int) (result []*model.ModelInstance, count int64, err error)\n\tScanByPage(result interface{}, offset int, limit int) (count int64, err error)\n\tScan(result interface{}) (err error)\n\tReturning(value interface{}, columns ...string) IModelInstanceDo\n\tUnderlyingDB() *gorm.DB\n\tschema.Tabler\n}\n\nfunc (m modelInstanceDo) Debug() IModelInstanceDo {\n\treturn m.withDO(m.DO.Debug())\n}\n\nfunc (m modelInstanceDo) WithContext(ctx context.Context) IModelInstanceDo {\n\treturn m.withDO(m.DO.WithContext(ctx))\n}\n\nfunc (m modelInstanceDo) ReadDB() IModelInstanceDo {\n\treturn m.Clauses(dbresolver.Read)\n}\n\nfunc (m modelInstanceDo) WriteDB() IModelInstanceDo {\n\treturn m.Clauses(dbresolver.Write)\n}\n\nfunc (m modelInstanceDo) Session(config *gorm.Session) IModelInstanceDo {\n\treturn m.withDO(m.DO.Session(config))\n}\n\nfunc (m modelInstanceDo) Clauses(conds ...clause.Expression) IModelInstanceDo {\n\treturn m.withDO(m.DO.Clauses(conds...))\n}\n\nfunc (m modelInstanceDo) Returning(value interface{}, columns ...string) IModelInstanceDo {\n\treturn m.withDO(m.DO.Returning(value, columns...))\n}\n\nfunc (m modelInstanceDo) Not(conds ...gen.Condition) IModelInstanceDo {\n\treturn m.withDO(m.DO.Not(conds...))\n}\n\nfunc (m modelInstanceDo) Or(conds ...gen.Condition) IModelInstanceDo {\n\treturn m.withDO(m.DO.Or(conds...))\n}\n\nfunc (m modelInstanceDo) Select(conds ...field.Expr) IModelInstanceDo {\n\treturn m.withDO(m.DO.Select(conds...))\n}\n\nfunc (m modelInstanceDo) Where(conds ...gen.Condition) IModelInstanceDo {\n\treturn m.withDO(m.DO.Where(conds...))\n}\n\nfunc (m modelInstanceDo) Order(conds ...field.Expr) IModelInstanceDo {\n\treturn m.withDO(m.DO.Order(conds...))\n}\n\nfunc (m modelInstanceDo) Distinct(cols ...field.Expr) IModelInstanceDo {\n\treturn m.withDO(m.DO.Distinct(cols...))\n}\n\nfunc (m modelInstanceDo) Omit(cols ...field.Expr) IModelInstanceDo {\n\treturn m.withDO(m.DO.Omit(cols...))\n}\n\nfunc (m modelInstanceDo) Join(table schema.Tabler, on ...field.Expr) IModelInstanceDo {\n\treturn m.withDO(m.DO.Join(table, on...))\n}\n\nfunc (m modelInstanceDo) LeftJoin(table schema.Tabler, on ...field.Expr) IModelInstanceDo {\n\treturn m.withDO(m.DO.LeftJoin(table, on...))\n}\n\nfunc (m modelInstanceDo) RightJoin(table schema.Tabler, on ...field.Expr) IModelInstanceDo {\n\treturn m.withDO(m.DO.RightJoin(table, on...))\n}\n\nfunc (m modelInstanceDo) Group(cols ...field.Expr) IModelInstanceDo {\n\treturn m.withDO(m.DO.Group(cols...))\n}\n\nfunc (m modelInstanceDo) Having(conds ...gen.Condition) IModelInstanceDo {\n\treturn m.withDO(m.DO.Having(conds...))\n}\n\nfunc (m modelInstanceDo) Limit(limit int) IModelInstanceDo {\n\treturn m.withDO(m.DO.Limit(limit))\n}\n\nfunc (m modelInstanceDo) Offset(offset int) IModelInstanceDo {\n\treturn m.withDO(m.DO.Offset(offset))\n}\n\nfunc (m modelInstanceDo) Scopes(funcs ...func(gen.Dao) gen.Dao) IModelInstanceDo {\n\treturn m.withDO(m.DO.Scopes(funcs...))\n}\n\nfunc (m modelInstanceDo) Unscoped() IModelInstanceDo {\n\treturn m.withDO(m.DO.Unscoped())\n}\n\nfunc (m modelInstanceDo) Create(values ...*model.ModelInstance) error {\n\tif len(values) == 0 {\n\t\treturn nil\n\t}\n\treturn m.DO.Create(values)\n}\n\nfunc (m modelInstanceDo) CreateInBatches(values []*model.ModelInstance, batchSize int) error {\n\treturn m.DO.CreateInBatches(values, batchSize)\n}\n\n// Save : !!! underlying implementation is different with GORM\n// The method is equivalent to executing the statement: db.Clauses(clause.OnConflict{UpdateAll: true}).Create(values)\nfunc (m modelInstanceDo) Save(values ...*model.ModelInstance) error {\n\tif len(values) == 0 {\n\t\treturn nil\n\t}\n\treturn m.DO.Save(values)\n}\n\nfunc (m modelInstanceDo) First() (*model.ModelInstance, error) {\n\tif result, err := m.DO.First(); err != nil {\n\t\treturn nil, err\n\t} else {\n\t\treturn result.(*model.ModelInstance), nil\n\t}\n}\n\nfunc (m modelInstanceDo) Take() (*model.ModelInstance, error) {\n\tif result, err := m.DO.Take(); err != nil {\n\t\treturn nil, err\n\t} else {\n\t\treturn result.(*model.ModelInstance), nil\n\t}\n}\n\nfunc (m modelInstanceDo) Last() (*model.ModelInstance, error) {\n\tif result, err := m.DO.Last(); err != nil {\n\t\treturn nil, err\n\t} else {\n\t\treturn result.(*model.ModelInstance), nil\n\t}\n}\n\nfunc (m modelInstanceDo) Find() ([]*model.ModelInstance, error) {\n\tresult, err := m.DO.Find()\n\treturn result.([]*model.ModelInstance), err\n}\n\nfunc (m modelInstanceDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*model.ModelInstance, err error) {\n\tbuf := make([]*model.ModelInstance, 0, batchSize)\n\terr = m.DO.FindInBatches(&buf, batchSize, func(tx gen.Dao, batch int) error {\n\t\tdefer func() { results = append(results, buf...) }()\n\t\treturn fc(tx, batch)\n\t})\n\treturn results, err\n}\n\nfunc (m modelInstanceDo) FindInBatches(result *[]*model.ModelInstance, batchSize int, fc func(tx gen.Dao, batch int) error) error {\n\treturn m.DO.FindInBatches(result, batchSize, fc)\n}\n\nfunc (m modelInstanceDo) Attrs(attrs ...field.AssignExpr) IModelInstanceDo {\n\treturn m.withDO(m.DO.Attrs(attrs...))\n}\n\nfunc (m modelInstanceDo) Assign(attrs ...field.AssignExpr) IModelInstanceDo {\n\treturn m.withDO(m.DO.Assign(attrs...))\n}\n\nfunc (m modelInstanceDo) Joins(fields ...field.RelationField) IModelInstanceDo {\n\tfor _, _f := range fields {\n\t\tm = *m.withDO(m.DO.Joins(_f))\n\t}\n\treturn &m\n}\n\nfunc (m modelInstanceDo) Preload(fields ...field.RelationField) IModelInstanceDo {\n\tfor _, _f := range fields {\n\t\tm = *m.withDO(m.DO.Preload(_f))\n\t}\n\treturn &m\n}\n\nfunc (m modelInstanceDo) FirstOrInit() (*model.ModelInstance, error) {\n\tif result, err := m.DO.FirstOrInit(); err != nil {\n\t\treturn nil, err\n\t} else {\n\t\treturn result.(*model.ModelInstance), nil\n\t}\n}\n\nfunc (m modelInstanceDo) FirstOrCreate() (*model.ModelInstance, error) {\n\tif result, err := m.DO.FirstOrCreate(); err != nil {\n\t\treturn nil, err\n\t} else {\n\t\treturn result.(*model.ModelInstance), nil\n\t}\n}\n\nfunc (m modelInstanceDo) FindByPage(offset int, limit int) (result []*model.ModelInstance, count int64, err error) {\n\tresult, err = m.Offset(offset).Limit(limit).Find()\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif size := len(result); 0 < limit && 0 < size && size < limit {\n\t\tcount = int64(size + offset)\n\t\treturn\n\t}\n\n\tcount, err = m.Offset(-1).Limit(-1).Count()\n\treturn\n}\n\nfunc (m modelInstanceDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) {\n\tcount, err = m.Count()\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = m.Offset(offset).Limit(limit).Scan(result)\n\treturn\n}\n\nfunc (m modelInstanceDo) Scan(result interface{}) (err error) {\n\treturn m.DO.Scan(result)\n}\n\nfunc (m modelInstanceDo) Delete(models ...*model.ModelInstance) (result gen.ResultInfo, err error) {\n\treturn m.DO.Delete(models)\n}\n\nfunc (m *modelInstanceDo) withDO(do gen.Dao) *modelInstanceDo {\n\tm.DO = *do.(*gen.DO)\n\treturn m\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/mode_provider.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelmgr\n\nimport (\n\tconfig \"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n)\n\nfunc getModelProviderList() []*config.ModelProvider {\n\treturn []*config.ModelProvider{\n\t\t{\n\t\t\tName: &config.I18nText{\n\t\t\t\tZhCn: \"豆包模型\",\n\t\t\t\tEnUs: \"Doubao Model\",\n\t\t\t},\n\t\t\tIconURI: \"default_icon/doubao_v2.png\",\n\t\t\tDescription: &config.I18nText{\n\t\t\t\tZhCn: \"豆包模型家族\",\n\t\t\t\tEnUs: \"doubao model family\",\n\t\t\t},\n\t\t\tModelClass: developer_api.ModelClass_SEED,\n\t\t},\n\t\t{\n\t\t\tName: &config.I18nText{\n\t\t\t\tZhCn: \"Claude 模型\",\n\t\t\t\tEnUs: \"Claude Model\",\n\t\t\t},\n\t\t\tIconURI: \"default_icon/claude_v2.png\",\n\t\t\tDescription: &config.I18nText{\n\t\t\t\tZhCn: \"Claude 模型家族\",\n\t\t\t\tEnUs: \"claude model family\",\n\t\t\t},\n\t\t\tModelClass: developer_api.ModelClass_Claude,\n\t\t},\n\t\t{\n\t\t\tName: &config.I18nText{\n\t\t\t\tZhCn: \"Deepseek 模型\",\n\t\t\t\tEnUs: \"Deepseek Model\",\n\t\t\t},\n\t\t\tIconURI: \"default_icon/deepseek_v2.png\",\n\t\t\tDescription: &config.I18nText{\n\t\t\t\tZhCn: \"Deepseek 模型家族\",\n\t\t\t\tEnUs: \"deepseek model family\",\n\t\t\t},\n\t\t\tModelClass: developer_api.ModelClass_DeekSeek,\n\t\t},\n\t\t{\n\t\t\tName: &config.I18nText{\n\t\t\t\tZhCn: \"Gemini 模型\",\n\t\t\t\tEnUs: \"Gemini Model\",\n\t\t\t},\n\t\t\tIconURI: \"default_icon/gemini_v2.png\",\n\t\t\tDescription: &config.I18nText{\n\t\t\t\tZhCn: \"Gemini 模型家族\",\n\t\t\t\tEnUs: \"gemini model family\",\n\t\t\t},\n\t\t\tModelClass: developer_api.ModelClass_Gemini,\n\t\t},\n\t\t{\n\t\t\tName: &config.I18nText{\n\t\t\t\tZhCn: \"Ollama 模型\",\n\t\t\t\tEnUs: \"Ollama Model\",\n\t\t\t},\n\t\t\tIconURI: \"default_icon/ollama.png\",\n\t\t\tDescription: &config.I18nText{\n\t\t\t\tZhCn: \"Ollama 模型家族\",\n\t\t\t\tEnUs: \"ollama model family\",\n\t\t\t},\n\t\t\tModelClass: developer_api.ModelClass_Llama,\n\t\t},\n\t\t{\n\t\t\tName: &config.I18nText{\n\t\t\t\tZhCn: \"OpenAI 模型\",\n\t\t\t\tEnUs: \"OpenAI Model\",\n\t\t\t},\n\t\t\tIconURI: \"default_icon/openai_v2.png\",\n\t\t\tDescription: &config.I18nText{\n\t\t\t\tZhCn: \"OpenAI 模型家族\",\n\t\t\t\tEnUs: \"openai model family\",\n\t\t\t},\n\t\t\tModelClass: developer_api.ModelClass_GPT,\n\t\t},\n\t\t{\n\t\t\tName: &config.I18nText{\n\t\t\t\tZhCn: \"Qwen 模型\",\n\t\t\t\tEnUs: \"Qwen Model\",\n\t\t\t},\n\t\t\tIconURI: \"default_icon/qwen_v2.png\",\n\t\t\tDescription: &config.I18nText{\n\t\t\t\tZhCn: \"Qwen 模型家族\",\n\t\t\t\tEnUs: \"qwen model family\",\n\t\t\t},\n\t\t\tModelClass: developer_api.ModelClass_QWen,\n\t\t},\n\t}\n}\n\nfunc SupportProtocol(class developer_api.ModelClass) bool {\n\t_, ok := GetModelProvider(class)\n\n\treturn ok\n}\n\nfunc GetModelProvider(class developer_api.ModelClass) (*config.ModelProvider, bool) {\n\tmodelProviders := getModelProviderList()\n\tfor _, modelProvider := range modelProviders {\n\t\tif modelProvider.ModelClass == class {\n\t\t\treturn modelProvider, true\n\t\t}\n\t}\n\n\treturn nil, false\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/model_get.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelmgr\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\tconfig \"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr/internal/model\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr/internal/query\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ternary\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\nfunc (c *ModelConfig) GetProviderModelList(ctx context.Context) ([]*config.ProviderModelList, error) {\n\tmodelProviderList := getModelProviderList()\n\tres := make([]*config.ProviderModelList, 0, len(modelProviderList))\n\n\tallModels, err := query.ModelInstance.WithContext(ctx).\n\t\tWhere(query.ModelInstance.DeletedAt.IsNull()).Find()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmodelClass2Models := make(map[developer_api.ModelClass][]*config.Model)\n\tfor _, model := range allModels {\n\t\tm := c.toModel(ctx, model)\n\t\tm.Capability = nil\n\t\tm.Provider = nil\n\t\tm.Parameters = nil\n\t\tmodelClass2Models[model.Provider.ModelClass] = append(modelClass2Models[model.Provider.ModelClass], m.Model)\n\t\tif m.Connection != nil && m.Connection.BaseConnInfo != nil {\n\t\t\tapiKey := m.Connection.BaseConnInfo.APIKey\n\t\t\tif apiKey != \"\" {\n\t\t\t\tn := len(apiKey)\n\t\t\t\tif n <= 4 {\n\t\t\t\t\tm.Connection.BaseConnInfo.APIKey = strings.Repeat(\"*\", n)\n\t\t\t\t} else if n <= 8 {\n\t\t\t\t\tm.Connection.BaseConnInfo.APIKey = fmt.Sprintf(\"%s***%s\", apiKey[:2], apiKey[n-2:])\n\t\t\t\t} else {\n\t\t\t\t\tm.Connection.BaseConnInfo.APIKey = fmt.Sprintf(\"%s***%s\", apiKey[:4], apiKey[n-4:])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, provider := range modelProviderList {\n\t\tif provider.IconURI != \"\" {\n\t\t\turl, err := c.oss.GetObjectUrl(ctx, provider.IconURI)\n\t\t\tif err != nil {\n\t\t\t\tlogs.CtxWarnf(ctx, \"get model icon url failed, err: %v\", err)\n\t\t\t} else {\n\t\t\t\tprovider.IconURL = url\n\t\t\t}\n\t\t}\n\t\tres = append(res, &config.ProviderModelList{\n\t\t\tProvider:  provider,\n\t\t\tModelList: modelClass2Models[provider.ModelClass],\n\t\t})\n\t}\n\n\treturn res, nil\n}\n\nfunc (c *ModelConfig) GetAllModelList(ctx context.Context) ([]*Model, error) {\n\treturn c.getModelList(ctx, true)\n}\n\nfunc (c *ModelConfig) GetOnlineModelList(ctx context.Context) ([]*Model, error) {\n\treturn c.getModelList(ctx, false)\n}\n\nfunc (c *ModelConfig) getModelList(ctx context.Context, includeDeleteModel bool) ([]*Model, error) {\n\tuseOldModel, err := c.UseOldModelConf(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"get use old model conf failed, err: %w\", err)\n\t}\n\n\tif useOldModel {\n\t\treturn oldModels, nil\n\t}\n\n\tvar allModels []*model.ModelInstance\n\tif includeDeleteModel {\n\t\tallModels, err = query.ModelInstance.WithContext(ctx).Unscoped().Find()\n\t} else {\n\t\tallModels, err = query.ModelInstance.WithContext(ctx).\n\t\t\tWhere(query.ModelInstance.DeletedAt.IsNull()).Find()\n\t}\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmodelList := make([]*Model, 0, len(allModels))\n\tfor _, model := range allModels {\n\t\tm := c.toModel(ctx, model)\n\t\tmodelList = append(modelList, m)\n\t}\n\n\treturn modelList, nil\n}\n\nfunc (c *ModelConfig) GetOnlineModelListWithLimit(ctx context.Context, limit int) ([]*Model, error) {\n\tuseOldModel, err := c.UseOldModelConf(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"get use old model conf failed, err: %w\", err)\n\t}\n\n\tif useOldModel {\n\t\tif limit > len(oldModels) {\n\t\t\tlimit = len(oldModels)\n\t\t}\n\t\treturn oldModels[:limit], nil\n\t}\n\n\tallModels, err := query.ModelInstance.WithContext(ctx).Limit(limit).Find()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmodelList := make([]*Model, 0, len(allModels))\n\tfor _, model := range allModels {\n\t\tm := c.toModel(ctx, model)\n\t\tmodelList = append(modelList, m)\n\t}\n\n\treturn modelList, nil\n}\n\nfunc (c *ModelConfig) MGetModelByID(ctx context.Context, ids []int64) ([]*Model, error) {\n\tuseOldModel, err := c.UseOldModelConf(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"get use old model conf failed, err: %w\", err)\n\t}\n\n\tif useOldModel {\n\t\tmodelList := make([]*Model, 0, len(ids))\n\t\tfor _, id := range ids {\n\t\t\tfor _, old := range oldModels {\n\t\t\t\tif old.ID == id {\n\t\t\t\t\tmodelList = append(modelList, old)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn modelList, nil\n\t}\n\n\tmodelList := make([]*Model, 0, len(ids))\n\n\tmodels, err := query.ModelInstance.WithContext(ctx).Unscoped().\n\t\tWhere(query.ModelInstance.ID.In(ids...)).Find()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, model := range models {\n\t\tm := c.toModel(ctx, model)\n\t\tmodelList = append(modelList, m)\n\t}\n\n\treturn modelList, nil\n}\n\nfunc (c *ModelConfig) GetModelByID(ctx context.Context, modelID int64) (*Model, error) {\n\tuseOldModel, err := c.UseOldModelConf(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"get use old model conf failed, err: %w\", err)\n\t}\n\n\tif useOldModel {\n\t\tfor _, old := range oldModels {\n\t\t\tif old.ID == modelID {\n\t\t\t\treturn old, nil\n\t\t\t}\n\t\t}\n\t\treturn nil, fmt.Errorf(\"model %d not found\", modelID)\n\t}\n\n\treturn c.getModelByID(ctx, modelID)\n}\n\nfunc (c *ModelConfig) getModelByID(ctx context.Context, modelID int64) (*Model, error) {\n\tm, err := query.ModelInstance.WithContext(ctx).\n\t\tUnscoped(). // allow get deleted data\n\t\tWhere(query.ModelInstance.ID.Eq(modelID)).First()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn c.toModel(ctx, m), nil\n}\n\nfunc (c *ModelConfig) toModel(ctx context.Context, q *model.ModelInstance) *Model {\n\tif q.Provider.IconURI != \"\" {\n\t\turl, err := c.oss.GetObjectUrl(ctx, q.Provider.IconURI)\n\t\tif err != nil {\n\t\t\tlogs.CtxWarnf(ctx, \"get model icon url failed, err: %v\", err)\n\t\t} else {\n\t\t\tq.Provider.IconURL = url\n\t\t}\n\t}\n\tconn, err := decryptConn(ctx, q.Connection)\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"decrypt model connection failed, err: %v\", err)\n\t}\n\n\textra := &ModelExtra{}\n\tif err := json.Unmarshal([]byte(q.Extra), extra); err != nil {\n\t\tlogs.CtxWarnf(ctx, \"unmarshal model extra (%s) failed, err: %v\", q.Extra, err)\n\t}\n\n\tm := &Model{\n\t\tModel: &config.Model{\n\t\t\tID:              q.ID,\n\t\t\tProvider:        q.Provider,\n\t\t\tDisplayInfo:     q.DisplayInfo,\n\t\t\tConnection:      conn,\n\t\t\tType:            config.ModelType(q.Type),\n\t\t\tCapability:      q.Capability,\n\t\t\tParameters:      q.Parameters,\n\t\t\tEnableBase64URL: extra.EnableBase64URL,\n\t\t\tDeleteAtMs:      q.DeletedAt.Time.UnixMilli(),\n\t\t},\n\t}\n\n\tm.Status = ternary.IFElse(q.DeletedAt.Time.IsZero(), config.ModelStatus_StatusInUse,\n\t\tconfig.ModelStatus_StatusDeleted)\n\n\treturn m\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/model_meta.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelmgr\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/jinzhu/copier\"\n\n\tconfig \"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\ntype ModelMetaConf struct {\n\tProvider2Models map[string]map[string]ModelMeta `thrift:\"provider2models,2\" form:\"provider2models\" json:\"provider2models\" query:\"provider2models\"`\n}\n\ntype ModelMeta struct {\n\tDisplayInfo     *config.DisplayInfo             `json:\"display_info,omitempty\"`\n\tCapability      *developer_api.ModelAbility     `json:\"capability,omitempty\"`\n\tConnection      *config.Connection              `json:\"connection,omitempty\"`\n\tParameters      []*developer_api.ModelParameter `json:\"parameters,omitempty\"`\n\tEnableBase64URL bool                            `json:\"enable_base64_url,omitempty\"`\n}\n\nvar modelMetaConf *ModelMetaConf\n\nfunc initModelMetaConf() (*ModelMetaConf, error) {\n\twd, err := os.Getwd()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tconst modelMetaConfPath = \"resources/conf/model/model_meta.json\"\n\tconfigRoot := filepath.Join(wd, modelMetaConfPath)\n\tjsonData, err := os.ReadFile(configRoot)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading model_meta.json: %w\", err)\n\t}\n\n\terr = json.Unmarshal(jsonData, &modelMetaConf)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error Unmarshal model_meta.json: %w\", err)\n\t}\n\n\treturn modelMetaConf, nil\n}\n\nfunc (c *ModelMetaConf) GetModelMeta(modelClass developer_api.ModelClass, modelName string) (*ModelMeta, error) {\n\tmodelName2Meta, ok := c.Provider2Models[modelClass.String()]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"model meta not found for model class %v\", modelClass)\n\t}\n\n\tmodelMeta, ok := modelName2Meta[modelName]\n\tif ok {\n\t\tlogs.Infof(\"get model meta for model class %v and model name %v\", modelClass, modelName)\n\t\treturn deepCopyModelMeta(&modelMeta)\n\t}\n\n\tconst defaultKey = \"default\"\n\tmodelMeta, ok = modelName2Meta[defaultKey]\n\tif ok {\n\t\tlogs.Infof(\"use default model meta for model class %v and model name %v\", modelClass, modelName)\n\t\treturn deepCopyModelMeta(&modelMeta)\n\t}\n\n\treturn nil, fmt.Errorf(\"model meta not found for model class %v and model name %v\", modelClass, modelName)\n}\n\nfunc deepCopyModelMeta(meta *ModelMeta) (*ModelMeta, error) {\n\tif meta == nil {\n\t\treturn nil, nil\n\t}\n\tnewObj := &ModelMeta{}\n\terr := copier.CopyWithOption(newObj, meta, copier.Option{DeepCopy: true, IgnoreEmpty: true})\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error copy model meta: %w\", err)\n\t}\n\n\treturn newObj, nil\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/model_param.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelmgr\n\nimport (\n\tconfig \"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n)\n\ntype Model struct {\n\t*config.Model\n}\n\nconst (\n\ttemperature      = \"temperature\"\n\tmaxTokens        = \"max_tokens\"\n\ttopP             = \"top_p\"\n\ttopK             = \"top_k\"\n\tresponseFormat   = \"response_format\"\n\tfrequencyPenalty = \"frequency_penalty\"\n\tpresencePenalty  = \"presence_penalty\"\n)\n\nfunc (m *Model) GetDefaultTemperature() *float64 {\n\tfor _, param := range m.Parameters {\n\t\tif param.Name == temperature && param.DefaultVal != nil {\n\t\t\tt, err := conv.StrToFloat64(param.DefaultVal.DefaultVal)\n\t\t\tif err != nil {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\treturn ptr.Of(t)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (m *Model) GetDefaultMaxTokens() *int32 {\n\tfor _, param := range m.Parameters {\n\t\tif param.Name == maxTokens && param.DefaultVal != nil {\n\t\t\tt, err := conv.StrToInt64(param.DefaultVal.DefaultVal)\n\t\t\tif err != nil {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\treturn ptr.Of(int32(t))\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (m *Model) GetDefaultTopP() *float64 {\n\tfor _, param := range m.Parameters {\n\t\tif param.Name == topP && param.DefaultVal != nil {\n\t\t\tt, err := conv.StrToFloat64(param.DefaultVal.DefaultVal)\n\t\t\tif err != nil {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\treturn ptr.Of(t)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// func (m *Model) GetDefaultResponseFormat() *config.ResponseFormat {\n// \tfor _, param := range m.Parameters {\n// \t\tif param.Name == responseFormat && param.DefaultVal != nil {\n// \t\t\tt, err := conv.StrToResponseFormat(param.DefaultVal.DefaultVal)\n// \t\t\tif err != nil {\n// \t\t\t\treturn nil\n// \t\t\t}\n\n// \t\t\treturn ptr.Of(t)\n// \t\t}\n// \t}\n\n// \treturn nil\n// }\n\nfunc (m *Model) GetDefaultFrequencyPenalty() *float64 {\n\tfor _, param := range m.Parameters {\n\t\tif param.Name == frequencyPenalty && param.DefaultVal != nil {\n\t\t\tt, err := conv.StrToFloat64(param.DefaultVal.DefaultVal)\n\t\t\tif err != nil {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\treturn ptr.Of(t)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (m *Model) GetDefaultPresencePenalty() *float64 {\n\tfor _, param := range m.Parameters {\n\t\tif param.Name == presencePenalty && param.DefaultVal != nil {\n\t\t\tt, err := conv.StrToFloat64(param.DefaultVal.DefaultVal)\n\t\t\tif err != nil {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\treturn ptr.Of(t)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (m *Model) GetDefaultTopK() *int32 {\n\tfor _, param := range m.Parameters {\n\t\tif param.Name == topK && param.DefaultVal != nil {\n\t\t\tt, err := conv.StrToInt64(param.DefaultVal.DefaultVal)\n\t\t\tif err != nil {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\treturn ptr.Of(int32(t))\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/model_save.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelmgr\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr/internal/model\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr/internal/query\"\n)\n\nfunc (c *ModelConfig) CreateModel(ctx context.Context, modelClass developer_api.ModelClass, modelShowName string, conn *config.Connection, extra *ModelExtra) (int64, error) {\n\tid, err := c.createModel(ctx, nil, modelClass, modelShowName, conn, extra)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\terr = c.SetDoNotUseOldModelConf(ctx)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"set do not use old model failed, err: %w\", err)\n\t}\n\n\treturn id, nil\n}\n\nfunc (c *ModelConfig) createModel(ctx context.Context, id *int64, modelClass developer_api.ModelClass, modelShowName string, conn *config.Connection, extra *ModelExtra) (int64, error) {\n\tif conn == nil {\n\t\treturn 0, fmt.Errorf(\"connection is nil\")\n\t}\n\n\tif conn.BaseConnInfo == nil {\n\t\treturn 0, fmt.Errorf(\"base conn info is nil\")\n\t}\n\n\tprovider, ok := GetModelProvider(modelClass)\n\tif !ok {\n\t\treturn 0, fmt.Errorf(\"model class %s not supported\", modelClass)\n\t}\n\n\tconn, err := encryptConn(ctx, conn)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tmodelName := conn.BaseConnInfo.Model\n\tmodelMeta, err := modelMetaConf.GetModelMeta(modelClass, modelName)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"get model meta failed, err: %w\", err)\n\t}\n\n\tif modelMeta.Connection != nil {\n\t\tconn.Ark = modelMeta.Connection.Ark\n\t\tconn.Openai = modelMeta.Connection.Openai\n\t\tconn.Deepseek = modelMeta.Connection.Deepseek\n\t\tconn.Gemini = modelMeta.Connection.Gemini\n\t\tconn.Qwen = modelMeta.Connection.Qwen\n\t\tconn.Ollama = modelMeta.Connection.Ollama\n\t\tconn.Claude = modelMeta.Connection.Claude\n\t}\n\n\textraStr := \"{}\"\n\tif extra != nil {\n\t\textraByte, err1 := json.Marshal(extra)\n\t\tif err1 != nil {\n\t\t\treturn 0, fmt.Errorf(\"marshal extra failed, err: %w\", err)\n\t\t}\n\n\t\textraStr = string(extraByte)\n\t}\n\n\tq := query.ModelInstance.WithContext(ctx)\n\tm := &model.ModelInstance{\n\t\tType:        int32(config.ModelType_LLM),\n\t\tProvider:    provider,\n\t\tConnection:  conn,\n\t\tCapability:  modelMeta.Capability,\n\t\tParameters:  modelMeta.Parameters,\n\t\tDisplayInfo: modelMeta.DisplayInfo,\n\t\tExtra:       extraStr,\n\t}\n\n\tif id != nil {\n\t\tm.ID = *id\n\t}\n\n\tif len(modelShowName) > 0 {\n\t\tm.DisplayInfo.Name = modelShowName\n\t}\n\n\terr = q.Create(m)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn m.ID, nil\n}\n\nfunc (c *ModelConfig) DeleteModel(ctx context.Context, modelID int64) error {\n\tq := query.ModelInstance.WithContext(ctx)\n\t_, err := q.Where(query.ModelInstance.ID.Eq(modelID)).Delete()\n\treturn err\n}\n\nfunc encryptConn(ctx context.Context, conn *config.Connection) (*config.Connection, error) {\n\t// encrypt conn if you need\n\treturn conn, nil\n}\n\nfunc decryptConn(ctx context.Context, conn *config.Connection) (*config.Connection, error) {\n\treturn conn, nil\n}\n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/modelmgr.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelmgr\n\nimport (\n\t\"context\"\n\n\t\"gorm.io/gorm\"\n\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr/internal/query\"\n\t\"github.com/coze-dev/coze-studio/backend/infra/storage\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/kvstore\"\n)\n\n/*\n-- Create 'model_instance' table\nCREATE TABLE IF NOT EXISTS `model_instance` (\n  `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',\n  `type` tinyint NOT NULL COMMENT 'Model Type 0-LLM 1-TextEmbedding 2-Rerank ',\n  `provider` json NOT NULL COMMENT 'Provider Information',\n  `display_info` json NOT NULL COMMENT 'Display Information',\n  `connection` json NOT NULL COMMENT 'Connection Information',\n  `capability` json NOT NULL COMMENT 'Model Capability',\n  `parameters` json NOT NULL COMMENT 'Model Parameters',\n  `extra` json COMMENT 'Extra Information',\n  `created_at` bigint unsigned NOT NULL DEFAULT 0 COMMENT 'Create Time in Milliseconds',\n  `updated_at` bigint unsigned NOT NULL DEFAULT 0 COMMENT 'Update Time in Milliseconds',\n  `deleted_at` datetime(3) NULL COMMENT 'Delete Time',\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'Model Instance Management Table';\n\n*/\n\ntype ModelConfig struct {\n\toss           storage.Storage\n\tkv            *kvstore.KVStore[struct{}]\n\tModelMetaConf *ModelMetaConf\n}\n\nconst (\n\tdoNotUseOldModelFlagKey        = \"do_not_use_old_model_key\"\n\tdoNotUseOldModelFlagContextKey = \"do_not_use_old_model_context_key\"\n)\n\nfunc Init(ctx context.Context, db *gorm.DB, oss storage.Storage) (*ModelConfig, error) {\n\tquery.SetDefault(db)\n\n\t// Init model meta conf\n\tmMetaConf, err := initModelMetaConf()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tc := &ModelConfig{\n\t\toss:           oss,\n\t\tkv:            kvstore.New[struct{}](db),\n\t\tModelMetaConf: mMetaConf,\n\t}\n\n\t// logs.CtxDebugf(ctx, \"init model config, oss: %v, kv: %v, model_meta_conf: %v\", oss, c.kv, c.ModelMetaConf)\n\n\t// init old model conf, dependent on model_meta_conf\n\terr = initOldModelConf(ctx, oss, c)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn c, nil\n}\n"
  },
  {
    "path": "backend/bizpkg/debugutil/workflow_debug.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage debugutil\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\nfunc GetWorkflowDebugURL(ctx context.Context, workflowID, spaceID, executeID int64) string {\n\tdefaultURL := fmt.Sprintf(\"http://127.0.0.1:8888/work_flow?execute_id=%d&space_id=%d&workflow_id=%d&execute_mode=2\", executeID, spaceID, workflowID)\n\n\tserverHost, err := config.Base().GetServerHost(ctx)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"[GetWorkflowDebugURL] get base config failed, use default debug url instead, err: %v\", err)\n\t\treturn defaultURL\n\t}\n\n\tworkFlowURL, err := url.JoinPath(serverHost, \"work_flow\")\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"[GetWorkflowDebugURL] join path failed, use default debug url instead, err: %v\", err)\n\t\treturn defaultURL\n\t}\n\n\tu, err := url.Parse(workFlowURL)\n\tif err != nil {\n\t\tlogs.CtxErrorf(ctx, \"[GetWorkflowDebugURL] parse workflow url failed, use default debug url instead, err: %v\", err)\n\t\treturn defaultURL\n\t}\n\n\tq := u.Query()\n\tq.Set(\"execute_id\", strconv.FormatInt(executeID, 10))\n\tq.Set(\"space_id\", strconv.FormatInt(spaceID, 10))\n\tq.Set(\"workflow_id\", strconv.FormatInt(workflowID, 10))\n\tq.Set(\"execute_mode\", \"2\")\n\tu.RawQuery = q.Encode()\n\n\treturn u.String()\n}\n"
  },
  {
    "path": "backend/bizpkg/fileutil/fileutil.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\npackage fileutil\n\nimport (\n\t\"encoding/json\"\n\t\"os\"\n\n\t\"github.com/cloudwego/eino/components/prompt\"\n\t\"github.com/cloudwego/eino/schema\"\n\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\nfunc GetWorkingDirectory() string {\n\troot, err := os.Getwd()\n\tif err != nil {\n\t\tlogs.Warnf(\"[InitConfig] Failed to get current working directory: %v\", err)\n\t\troot = os.Getenv(\"PWD\")\n\t}\n\treturn root\n}\n\nfunc ReadJinja2PromptTemplate(jsonFilePath string) (prompt.ChatTemplate, error) {\n\tb, err := os.ReadFile(jsonFilePath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar m2qMessages []*schema.Message\n\tif err = json.Unmarshal(b, &m2qMessages); err != nil {\n\t\treturn nil, err\n\t}\n\ttpl := make([]schema.MessagesTemplate, len(m2qMessages))\n\tfor i := range m2qMessages {\n\t\ttpl[i] = m2qMessages[i]\n\t}\n\treturn prompt.FromMessages(schema.Jinja2, tpl...), nil\n}\n"
  },
  {
    "path": "backend/bizpkg/fileutil/pyutil.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage fileutil\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\nfunc GetPythonFilePath(fileName string) string {\n\tcwd, err := os.Getwd()\n\tif err != nil {\n\t\tlogs.Warnf(\"[GetPythonFilePath] Failed to get current working directory: %v\", err)\n\t\treturn fileName\n\t}\n\n\treturn filepath.Join(cwd, fileName)\n}\n\nfunc GetPython3Path() string {\n\tcwd, err := os.Getwd()\n\tif err != nil {\n\t\tlogs.Warnf(\"[GetPython3Path] Failed to get current working directory: %v\", err)\n\t\treturn \".venv/bin/python3\"\n\t}\n\n\tfilePath := filepath.Join(cwd, \".venv/bin/python3\")\n\tif _, err := os.Stat(filePath); err == nil {\n\t\treturn filePath\n\t}\n\n\treturn \"python3\" // use system python3\n}\n"
  },
  {
    "path": "backend/bizpkg/llm/modelbuilder/ark.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelbuilder\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/eino-ext/components/model/ark\"\n\t\"github.com/volcengine/volcengine-go-sdk/service/arkruntime/model\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ternary\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\ntype arkModelBuilder struct {\n\tcfg *config.Model\n}\n\nfunc newArkModelBuilder(cfg *config.Model) Service {\n\treturn &arkModelBuilder{\n\t\tcfg: cfg,\n\t}\n}\n\nfunc (b *arkModelBuilder) getDefaultConfig() *ark.ChatModelConfig {\n\treturn &ark.ChatModelConfig{}\n}\n\nfunc (b *arkModelBuilder) applyParamsToChatModelConfig(chatModelConf *ark.ChatModelConfig, params *LLMParams) {\n\tif params == nil {\n\t\treturn\n\t}\n\n\tchatModelConf.TopP = params.TopP\n\n\tif params.Temperature != nil {\n\t\tchatModelConf.Temperature = ptr.Of(*params.Temperature)\n\t}\n\n\tif params.MaxTokens != 0 {\n\t\tchatModelConf.MaxTokens = ptr.Of(params.MaxTokens)\n\t}\n\n\tif params.FrequencyPenalty != 0 {\n\t\tchatModelConf.FrequencyPenalty = ptr.Of(params.FrequencyPenalty)\n\t}\n\n\tif params.PresencePenalty != 0 {\n\t\tchatModelConf.PresencePenalty = ptr.Of(params.PresencePenalty)\n\t}\n\n\tif params.EnableThinking != nil {\n\t\tarkThinkingType := ternary.IFElse(*params.EnableThinking, model.ThinkingTypeEnabled, model.ThinkingTypeDisabled)\n\t\tchatModelConf.Thinking = &model.Thinking{\n\t\t\tType: arkThinkingType,\n\t\t}\n\t}\n\n\tswitch params.ResponseFormat {\n\tcase bot_common.ModelResponseFormat_Text,\n\t\tbot_common.ModelResponseFormat_Markdown:\n\t\tchatModelConf.ResponseFormat = &ark.ResponseFormat{\n\t\t\tType: model.ResponseFormatText,\n\t\t}\n\tcase bot_common.ModelResponseFormat_JSON:\n\t\tchatModelConf.ResponseFormat = &ark.ResponseFormat{\n\t\t\tType: model.ResponseFormatJsonObject,\n\t\t}\n\t}\n}\n\nfunc (b *arkModelBuilder) Build(ctx context.Context, params *LLMParams) (ToolCallingChatModel, error) {\n\tbase := b.cfg.Connection.BaseConnInfo\n\n\tchatModelConf := b.getDefaultConfig()\n\tchatModelConf.APIKey = base.APIKey\n\tchatModelConf.Model = base.Model\n\tif base.BaseURL != \"\" {\n\t\tchatModelConf.BaseURL = base.BaseURL\n\t}\n\n\tswitch base.ThinkingType {\n\tcase config.ThinkingType_Enable:\n\t\tchatModelConf.Thinking = &model.Thinking{\n\t\t\tType: model.ThinkingTypeEnabled,\n\t\t}\n\tcase config.ThinkingType_Disable:\n\t\tchatModelConf.Thinking = &model.Thinking{\n\t\t\tType: model.ThinkingTypeDisabled,\n\t\t}\n\tcase config.ThinkingType_Auto:\n\t\tchatModelConf.Thinking = &model.Thinking{\n\t\t\tType: model.ThinkingTypeAuto,\n\t\t}\n\t}\n\n\tarkConn := b.cfg.Connection.Ark\n\tif arkConn != nil {\n\t\tchatModelConf.Region = arkConn.Region\n\t}\n\n\tb.applyParamsToChatModelConfig(chatModelConf, params)\n\n\tlogs.CtxDebugf(ctx, \"build ark model with config: %v\", conv.DebugJsonToStr(chatModelConf))\n\n\treturn ark.NewChatModel(ctx, chatModelConf)\n}\n"
  },
  {
    "path": "backend/bizpkg/llm/modelbuilder/builtin.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelbuilder\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/cloudwego/eino/schema\"\n\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/ctxcache\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\nvar ctxCacheKey = \"builtin_chat_model_in_context\"\n\nfunc GetBuiltinChatModel(ctx context.Context, envPrefix string) (bcm BaseChatModel, configured bool, err error) {\n\tbcm, ok := ctxcache.Get[BaseChatModel](ctx, ctxCacheKey)\n\tif ok {\n\t\tlogs.CtxDebugf(ctx, \"builtin chat model in context: %v\", bcm)\n\t\treturn bcm, true, nil\n\t}\n\n\tknowledgeConf, err := config.Knowledge().GetKnowledgeConfig(ctx)\n\tif err != nil {\n\t\treturn nil, false, fmt.Errorf(\"get knowledge config failed: %w\", err)\n\t}\n\n\tmodel, err := config.ModelConf().GetBuiltinChatModelConfig(ctx, knowledgeConf.BuiltinModelID)\n\tif err == nil {\n\t\tbcm, err = BuildModelWithConf(ctx, model)\n\t\tif err == nil {\n\t\t\tctxcache.Store(ctx, ctxCacheKey, bcm)\n\t\t\treturn bcm, true, nil\n\t\t}\n\t} else {\n\t\tlogs.CtxWarnf(ctx, \"GetBuiltinChatModelConfig failed : %v\", err)\n\t}\n\n\tmodelList, err := config.ModelConf().GetOnlineModelList(ctx)\n\tif err != nil {\n\t\treturn nil, false, fmt.Errorf(\"get model list failed: %w\", err)\n\t}\n\n\tfor _, m := range modelList {\n\t\tbcm, err = BuildModelWithConf(ctx, m)\n\t\tif err != nil {\n\t\t\tlogs.CtxWarnf(ctx, \"build model %v %v failed: %v\", m.Provider.Name, m.Provider.ModelClass.String(), err)\n\t\t\tcontinue\n\t\t}\n\n\t\tif err = checkModelConfig(ctx, bcm); err == nil {\n\t\t\tlogs.CtxDebugf(ctx, \"build model %v %v success, in model list\", m.Provider.Name, m.Provider.ModelClass.String())\n\n\t\t\tctxcache.Store(ctx, ctxCacheKey, bcm)\n\t\t\treturn bcm, true, nil\n\t\t}\n\n\t}\n\n\treturn nil, false, nil\n}\n\nfunc checkModelConfig(ctx context.Context, bcm BaseChatModel) (err error) {\n\trespMsgs, err := bcm.Generate(ctx, []*schema.Message{\n\t\tschema.SystemMessage(\"1+1=?,Just answer with a number, no explanation.\")})\n\tif err != nil {\n\t\tlogs.CtxWarnf(ctx, \"builtin chat model not configured: %v\", err)\n\t\treturn fmt.Errorf(\"builtin chat model not configured: %w\", err)\n\t}\n\n\tlogs.CtxDebugf(ctx, \"generate model respMsgs: %v\", respMsgs)\n\n\treturn nil\n}\n"
  },
  {
    "path": "backend/bizpkg/llm/modelbuilder/claude.go",
    "content": "/*\n * License: Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\npackage modelbuilder\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/eino-ext/components/model/claude\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n)\n\ntype claudeModelBuilder struct {\n\tcfg *config.Model\n}\n\nfunc newClaudeModelBuilder(cfg *config.Model) Service {\n\treturn &claudeModelBuilder{\n\t\tcfg: cfg,\n\t}\n}\n\nfunc (c *claudeModelBuilder) getDefaultClaudeConfig() *claude.Config {\n\treturn &claude.Config{}\n}\n\nfunc (c *claudeModelBuilder) applyParamsToChatModelConfig(conf *claude.Config, params *LLMParams) {\n\tif params == nil {\n\t\treturn\n\t}\n\n\tconf.TopP = params.TopP\n\tconf.TopK = params.TopK\n\n\tif params.Temperature != nil {\n\t\tconf.Temperature = ptr.Of(*params.Temperature)\n\t}\n\n\tif params.MaxTokens != 0 {\n\t\tconf.MaxTokens = params.MaxTokens\n\t}\n\n\tif params.EnableThinking != nil {\n\t\tconf.Thinking = &claude.Thinking{\n\t\t\tEnable: *params.EnableThinking,\n\t\t}\n\t}\n}\n\nfunc (c *claudeModelBuilder) Build(ctx context.Context, params *LLMParams) (ToolCallingChatModel, error) {\n\tbase := c.cfg.Connection.BaseConnInfo\n\n\tconf := c.getDefaultClaudeConfig()\n\tconf.APIKey = base.APIKey\n\tconf.Model = base.Model\n\tif base.BaseURL != \"\" {\n\t\tconf.BaseURL = &base.BaseURL\n\t}\n\n\tswitch base.ThinkingType {\n\tcase config.ThinkingType_Enable:\n\t\tconf.Thinking = &claude.Thinking{\n\t\t\tEnable: true,\n\t\t}\n\tcase config.ThinkingType_Disable:\n\t\tconf.Thinking = &claude.Thinking{\n\t\t\tEnable: false,\n\t\t}\n\t}\n\n\tc.applyParamsToChatModelConfig(conf, params)\n\n\treturn claude.NewChatModel(ctx, conf)\n}\n"
  },
  {
    "path": "backend/bizpkg/llm/modelbuilder/deepseek.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelbuilder\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/eino-ext/components/model/deepseek\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n)\n\ntype deepseekModelBuilder struct {\n\tcfg *config.Model\n}\n\nfunc newDeepseekModelBuilder(cfg *config.Model) Service {\n\treturn &deepseekModelBuilder{\n\t\tcfg: cfg,\n\t}\n}\n\nfunc (d *deepseekModelBuilder) getDefaultDeepseekConfig() *deepseek.ChatModelConfig {\n\treturn &deepseek.ChatModelConfig{}\n}\n\nfunc (d *deepseekModelBuilder) applyParamsToChatModelConfig(conf *deepseek.ChatModelConfig, params *LLMParams) {\n\tif params == nil {\n\t\treturn\n\t}\n\n\tif params.Temperature != nil {\n\t\tconf.Temperature = *params.Temperature\n\t}\n\n\tif params.MaxTokens != 0 {\n\t\tconf.MaxTokens = params.MaxTokens\n\t}\n\n\tif params.TopP != nil {\n\t\tconf.TopP = *params.TopP\n\t}\n\n\tif params.FrequencyPenalty != 0 {\n\t\tconf.FrequencyPenalty = params.FrequencyPenalty\n\t}\n\n\tif params.PresencePenalty != 0 {\n\t\tconf.PresencePenalty = params.PresencePenalty\n\t}\n\n\tif params.ResponseFormat == bot_common.ModelResponseFormat_JSON {\n\t\tconf.ResponseFormatType = deepseek.ResponseFormatTypeJSONObject\n\t} else {\n\t\tconf.ResponseFormatType = deepseek.ResponseFormatTypeText\n\t}\n}\n\nfunc (d *deepseekModelBuilder) Build(ctx context.Context, params *LLMParams) (ToolCallingChatModel, error) {\n\tbase := d.cfg.Connection.BaseConnInfo\n\n\tconf := d.getDefaultDeepseekConfig()\n\tconf.APIKey = base.APIKey\n\tconf.Model = base.Model\n\tif base.BaseURL != \"\" {\n\t\tconf.BaseURL = base.BaseURL\n\t}\n\n\td.applyParamsToChatModelConfig(conf, params)\n\n\treturn deepseek.NewChatModel(ctx, conf)\n}\n"
  },
  {
    "path": "backend/bizpkg/llm/modelbuilder/gemini.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelbuilder\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/eino-ext/components/model/gemini\"\n\t\"google.golang.org/genai\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n)\n\ntype geminiModelBuilder struct {\n\tcfg *config.Model\n}\n\nfunc newGeminiModelBuilder(cfg *config.Model) Service {\n\treturn &geminiModelBuilder{\n\t\tcfg: cfg,\n\t}\n}\n\nfunc (g *geminiModelBuilder) getDefaultGeminiConfig() *gemini.Config {\n\treturn &gemini.Config{}\n}\n\nfunc (g *geminiModelBuilder) getDefaultGenaiConfig() *genai.ClientConfig {\n\treturn &genai.ClientConfig{\n\t\tHTTPOptions: genai.HTTPOptions{\n\t\t\tBaseURL: \"https://generativelanguage.googleapis.com/\",\n\t\t},\n\t}\n}\n\nfunc (g *geminiModelBuilder) applyParamsToGeminiConfig(conf *gemini.Config, params *LLMParams) {\n\tif params == nil {\n\t\treturn\n\t}\n\n\tconf.TopK = params.TopK\n\tconf.TopP = params.TopP\n\n\tif params.Temperature != nil {\n\t\tconf.Temperature = ptr.Of(*params.Temperature)\n\t}\n\n\tif params.MaxTokens != 0 {\n\t\tconf.MaxTokens = ptr.Of(params.MaxTokens)\n\t}\n\n\tif params.EnableThinking != nil {\n\t\tconf.ThinkingConfig = &genai.ThinkingConfig{\n\t\t\tIncludeThoughts: *params.EnableThinking,\n\t\t}\n\t}\n}\n\nfunc (g *geminiModelBuilder) Build(ctx context.Context, params *LLMParams) (ToolCallingChatModel, error) {\n\tbase := g.cfg.Connection.BaseConnInfo\n\n\tclientCfg := g.getDefaultGenaiConfig()\n\tif base.BaseURL != \"\" {\n\t\tclientCfg.HTTPOptions.BaseURL = base.BaseURL\n\t}\n\n\tclientCfg.APIKey = base.APIKey\n\tif g.cfg.Connection.Gemini != nil {\n\t\tclientCfg.Backend = genai.Backend(g.cfg.Connection.Gemini.Backend)\n\t\tclientCfg.Project = g.cfg.Connection.Gemini.Project\n\t\tclientCfg.Location = g.cfg.Connection.Gemini.Location\n\t}\n\n\tclient, err := genai.NewClient(ctx, clientCfg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tconf := g.getDefaultGeminiConfig()\n\tconf.Client = client\n\tconf.Model = base.Model\n\n\tswitch base.ThinkingType {\n\tcase config.ThinkingType_Enable:\n\t\tconf.ThinkingConfig = &genai.ThinkingConfig{\n\t\t\tIncludeThoughts: true,\n\t\t}\n\tcase config.ThinkingType_Disable:\n\t\tconf.ThinkingConfig = &genai.ThinkingConfig{\n\t\t\tIncludeThoughts: false,\n\t\t}\n\t}\n\n\tg.applyParamsToGeminiConfig(conf, params)\n\n\treturn gemini.NewChatModel(ctx, conf)\n}\n"
  },
  {
    "path": "backend/bizpkg/llm/modelbuilder/llm_params.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelbuilder\n\nimport \"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\ntype LLMParams struct {\n\tTemperature      *float32                       `json:\"temperature\"`\n\tFrequencyPenalty float32                        `json:\"frequencyPenalty\"`\n\tPresencePenalty  float32                        `json:\"presencePenalty\"`\n\tMaxTokens        int                            `json:\"maxTokens\"`\n\tTopP             *float32                       `json:\"topP\"`\n\tTopK             *int32                         `json:\"topK\"`\n\tResponseFormat   bot_common.ModelResponseFormat `json:\"responseFormat\"`\n\tEnableThinking   *bool                          `json:\"enable_thinking,omitempty\" yaml:\"enable_thinking,omitempty\"`\n}\n\nfunc newLLMParamsWithSettings(appSettings *bot_common.ModelInfo) *LLMParams {\n\tif appSettings == nil {\n\t\treturn nil\n\t}\n\n\tl := &LLMParams{}\n\n\tif appSettings.Temperature != nil {\n\t\tt := float32(*appSettings.Temperature)\n\t\tl.Temperature = &t\n\t}\n\tif appSettings.FrequencyPenalty != nil {\n\t\tf := float32(*appSettings.FrequencyPenalty)\n\t\tl.FrequencyPenalty = f\n\t}\n\tif appSettings.PresencePenalty != nil {\n\t\tp := float32(*appSettings.PresencePenalty)\n\t\tl.PresencePenalty = p\n\t}\n\tif appSettings.MaxTokens != nil {\n\t\tl.MaxTokens = int(*appSettings.MaxTokens)\n\t}\n\tif appSettings.TopP != nil {\n\t\tt := float32(*appSettings.TopP)\n\t\tl.TopP = &t\n\t}\n\tif appSettings.TopK != nil {\n\t\tk := int32(*appSettings.TopK)\n\t\tl.TopK = &k\n\t}\n\tif appSettings.ResponseFormat != nil {\n\t\tl.ResponseFormat = *appSettings.ResponseFormat\n\t}\n\n\treturn l\n}\n"
  },
  {
    "path": "backend/bizpkg/llm/modelbuilder/model_builder.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelbuilder\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/cloudwego/eino/components/model\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api\"\n\tbizConf \"github.com/coze-dev/coze-studio/backend/bizpkg/config\"\n\t\"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/conv\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/logs\"\n)\n\ntype BaseChatModel = model.BaseChatModel\n\ntype ToolCallingChatModel = model.ToolCallingChatModel\n\ntype Service interface {\n\tBuild(ctx context.Context, params *LLMParams) (ToolCallingChatModel, error)\n}\n\nvar modelClass2NewModelBuilder = map[developer_api.ModelClass]func(*config.Model) Service{\n\tdeveloper_api.ModelClass_SEED:     newArkModelBuilder,\n\tdeveloper_api.ModelClass_GPT:      newOpenaiModelBuilder,\n\tdeveloper_api.ModelClass_Claude:   newClaudeModelBuilder,\n\tdeveloper_api.ModelClass_DeekSeek: newDeepseekModelBuilder,\n\tdeveloper_api.ModelClass_Gemini:   newGeminiModelBuilder,\n\tdeveloper_api.ModelClass_Llama:    newOllamaModelBuilder,\n\tdeveloper_api.ModelClass_QWen:     newQwenModelBuilder,\n}\n\nfunc NewModelBuilder(modelClass developer_api.ModelClass, cfg *config.Model) (Service, error) {\n\tif cfg == nil {\n\t\treturn nil, fmt.Errorf(\"model config is nil\")\n\t}\n\n\tif cfg.Connection == nil {\n\t\treturn nil, fmt.Errorf(\"model connection is nil\")\n\t}\n\n\tif cfg.Connection.BaseConnInfo == nil {\n\t\treturn nil, fmt.Errorf(\"model base connection is nil\")\n\t}\n\n\tbuildFn, ok := modelClass2NewModelBuilder[modelClass]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"model class %v not supported\", modelClass)\n\t}\n\n\treturn buildFn(cfg), nil\n}\n\nfunc SupportProtocol(modelClass developer_api.ModelClass) bool {\n\t_, ok := modelClass2NewModelBuilder[modelClass]\n\n\treturn ok\n}\n\n// BuildModelWithConf for create model scene, params is nil\nfunc BuildModelWithConf(ctx context.Context, m *modelmgr.Model) (bcm ToolCallingChatModel, err error) {\n\treturn buildModelWithConfParams(ctx, m, nil)\n}\n\nfunc BuildModelByID(ctx context.Context, modelID int64, params *LLMParams) (bcm ToolCallingChatModel, info *modelmgr.Model, err error) {\n\tm, err := bizConf.ModelConf().GetModelByID(ctx, modelID)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"get model by id failed: %w\", err)\n\t}\n\n\tbcm, err = buildModelWithConfParams(ctx, m, params)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"build model failed: %w\", err)\n\t}\n\n\treturn bcm, m, nil\n}\n\nfunc BuildModelBySettings(ctx context.Context, appSettings *bot_common.ModelInfo) (bcm ToolCallingChatModel, info *modelmgr.Model, err error) {\n\tif appSettings == nil {\n\t\treturn nil, nil, fmt.Errorf(\"model settings is nil\")\n\t}\n\n\tif appSettings.ModelId == nil {\n\t\tlogs.CtxDebugf(ctx, \"model id is nil, app settings: %v\", conv.DebugJsonToStr(appSettings))\n\t\treturn nil, nil, fmt.Errorf(\"model id is nil\")\n\t}\n\n\tparams := newLLMParamsWithSettings(appSettings)\n\n\treturn BuildModelByID(ctx, *appSettings.ModelId, params)\n}\n\nfunc buildModelWithConfParams(ctx context.Context, m *modelmgr.Model, params *LLMParams) (bcm ToolCallingChatModel, err error) {\n\tmodelBuilder, err := NewModelBuilder(m.Provider.ModelClass, m.Model)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"new model builder failed: %w\", err)\n\t}\n\n\tbcm, err = modelBuilder.Build(ctx, params)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"build model failed: %w\", err)\n\t}\n\n\treturn bcm, nil\n}\n"
  },
  {
    "path": "backend/bizpkg/llm/modelbuilder/ollama.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelbuilder\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/eino-ext/components/model/ollama\"\n\t\"github.com/eino-contrib/ollama/api\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n)\n\ntype ollamaModelBuilder struct {\n\tcfg *config.Model\n}\n\nfunc newOllamaModelBuilder(cfg *config.Model) Service {\n\treturn &ollamaModelBuilder{\n\t\tcfg: cfg,\n\t}\n}\n\nfunc (o *ollamaModelBuilder) getDefaultOllamaConfig() *ollama.ChatModelConfig {\n\treturn &ollama.ChatModelConfig{\n\t\tOptions: &api.Options{},\n\t\tBaseURL: \"http://127.0.0.1:11434\",\n\t}\n}\n\nfunc (o *ollamaModelBuilder) applyParamsToOllamaConfig(conf *ollama.ChatModelConfig, params *LLMParams) {\n\tif params == nil {\n\t\treturn\n\t}\n\n\tif params.Temperature != nil {\n\t\tconf.Options.Temperature = *params.Temperature\n\t}\n\n\tif params.TopP != nil {\n\t\tconf.Options.TopP = *params.TopP\n\t}\n\n\tif params.TopK != nil {\n\t\tconf.Options.TopK = int(*params.TopK)\n\t}\n\n\tif params.FrequencyPenalty != 0 {\n\t\tconf.Options.FrequencyPenalty = params.FrequencyPenalty\n\t}\n\n\tif params.PresencePenalty != 0 {\n\t\tconf.Options.PresencePenalty = params.PresencePenalty\n\t}\n\n\tif params.EnableThinking != nil {\n\t\tconf.Thinking = &api.ThinkValue{\n\t\t\tValue: ptr.From(params.EnableThinking),\n\t\t}\n\t}\n}\n\nfunc (o *ollamaModelBuilder) Build(ctx context.Context, params *LLMParams) (ToolCallingChatModel, error) {\n\tbase := o.cfg.Connection.BaseConnInfo\n\n\tconf := o.getDefaultOllamaConfig()\n\tif base.BaseURL != \"\" {\n\t\tconf.BaseURL = base.BaseURL\n\t}\n\tconf.Model = base.Model\n\n\tswitch base.ThinkingType {\n\tcase config.ThinkingType_Enable:\n\t\tconf.Thinking = &api.ThinkValue{\n\t\t\tValue: ptr.Of(true),\n\t\t}\n\tcase config.ThinkingType_Disable:\n\t\tconf.Thinking = &api.ThinkValue{\n\t\t\tValue: ptr.Of(false),\n\t\t}\n\t}\n\n\to.applyParamsToOllamaConfig(conf, params)\n\n\treturn ollama.NewChatModel(ctx, conf)\n}\n"
  },
  {
    "path": "backend/bizpkg/llm/modelbuilder/openai.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelbuilder\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/eino-ext/components/model/openai\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/api/model/app/bot_common\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n)\n\ntype openaiModelBuilder struct {\n\tcfg *config.Model\n}\n\nfunc newOpenaiModelBuilder(cfg *config.Model) Service {\n\treturn &openaiModelBuilder{\n\t\tcfg: cfg,\n\t}\n}\n\nfunc (o *openaiModelBuilder) getDefaultConfig() *openai.ChatModelConfig {\n\treturn &openai.ChatModelConfig{\n\t\tMaxCompletionTokens: ptr.Of(4096),\n\t\tResponseFormat: &openai.ChatCompletionResponseFormat{\n\t\t\tType:       \"text\",\n\t\t\tJSONSchema: nil,\n\t\t},\n\t}\n}\n\nfunc (o *openaiModelBuilder) applyParamsToOpenaiConfig(conf *openai.ChatModelConfig, params *LLMParams) {\n\tif params == nil {\n\t\treturn\n\t}\n\n\tif params.Temperature != nil {\n\t\tconf.Temperature = ptr.Of(*params.Temperature)\n\t}\n\n\tif params.MaxTokens != 0 {\n\t\tconf.MaxCompletionTokens = ptr.Of(params.MaxTokens)\n\t}\n\n\tif params.FrequencyPenalty != 0 {\n\t\tconf.FrequencyPenalty = ptr.Of(params.FrequencyPenalty)\n\t}\n\n\tif params.PresencePenalty != 0 {\n\t\tconf.PresencePenalty = ptr.Of(params.PresencePenalty)\n\t}\n\n\tconf.TopP = params.TopP\n\n\tif params.ResponseFormat == bot_common.ModelResponseFormat_JSON {\n\t\tconf.ResponseFormat = &openai.ChatCompletionResponseFormat{\n\t\t\tType: openai.ChatCompletionResponseFormatTypeJSONObject,\n\t\t}\n\t} else {\n\t\tconf.ResponseFormat = &openai.ChatCompletionResponseFormat{\n\t\t\tType: openai.ChatCompletionResponseFormatTypeText,\n\t\t}\n\t}\n}\n\nfunc (o *openaiModelBuilder) Build(ctx context.Context, params *LLMParams) (ToolCallingChatModel, error) {\n\tbase := o.cfg.Connection.BaseConnInfo\n\n\tconf := o.getDefaultConfig()\n\tconf.APIKey = base.APIKey\n\tconf.Model = base.Model\n\n\tif base.BaseURL != \"\" {\n\t\tconf.BaseURL = base.BaseURL\n\t}\n\n\tif o.cfg.Connection.Openai != nil {\n\t\tconf.APIVersion = o.cfg.Connection.Openai.APIVersion\n\t\tconf.ByAzure = o.cfg.Connection.Openai.ByAzure\n\t}\n\n\to.applyParamsToOpenaiConfig(conf, params)\n\n\treturn openai.NewChatModel(ctx, conf)\n}\n"
  },
  {
    "path": "backend/bizpkg/llm/modelbuilder/qwen.go",
    "content": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage modelbuilder\n\nimport (\n\t\"context\"\n\n\t\"github.com/cloudwego/eino-ext/components/model/openai\"\n\t\"github.com/cloudwego/eino-ext/components/model/qwen\"\n\n\t\"github.com/coze-dev/coze-studio/backend/api/model/admin/config\"\n\t\"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr\"\n)\n\ntype qwenModelBuilder struct {\n\tcfg *config.Model\n}\n\nfunc newQwenModelBuilder(cfg *config.Model) Service {\n\treturn &qwenModelBuilder{\n\t\tcfg: cfg,\n\t}\n}\n\nfunc (q *qwenModelBuilder) getDefaultQwenConfig() *qwen.ChatModelConfig {\n\treturn &qwen.ChatModelConfig{\n\t\tTemperature: ptr.Of(float32(0.7)),\n\t\tResponseFormat: &openai.ChatCompletionResponseFormat{\n\t\t\tType:       \"text\",\n\t\t\tJSONSchema: nil,\n\t\t},\n\t}\n}\n\nfunc (q *qwenModelBuilder) applyParamsToQwenConfig(conf *qwen.ChatModelConfig, params *LLMParams) {\n\tif params == nil {\n\t\treturn\n\t}\n\n\tconf.TopP = params.TopP\n\n\tif params.Temperature != nil {\n\t\tconf.Temperature = ptr.Of(*params.Temperature)\n\t}\n\n\tif params.MaxTokens != 0 {\n\t\tconf.MaxTokens = ptr.Of(params.MaxTokens)\n\t}\n\n\tif params.FrequencyPenalty != 0 {\n\t\tconf.FrequencyPenalty = ptr.Of(params.FrequencyPenalty)\n\t}\n\n\tif params.PresencePenalty != 0 {\n\t\tconf.PresencePenalty = ptr.Of(params.PresencePenalty)\n\t}\n\n\tif params.EnableThinking != nil {\n\t\tconf.EnableThinking = params.EnableThinking\n\t}\n}\n\nfunc (q *qwenModelBuilder) Build(ctx context.Context, params *LLMParams) (ToolCallingChatModel, error) {\n\tbase := q.cfg.Connection.BaseConnInfo\n\n\tconf := q.getDefaultQwenConfig()\n\tconf.APIKey = base.APIKey\n\tconf.BaseURL = base.BaseURL\n\tconf.Model = base.Model\n\n\tswitch base.ThinkingType {\n\tcase config.ThinkingType_Enable:\n\t\tconf.EnableThinking = ptr.Of(true)\n\tcase config.ThinkingType_Disable:\n\t\tconf.EnableThinking = ptr.Of(false)\n\t}\n\n\tq.applyParamsToQwenConfig(conf, params)\n\n\treturn qwen.NewChatModel(ctx, conf)\n}\n"
  },
  {
    "path": "backend/build.sh",
    "content": "#!/bin/bash \nRUN_NAME=hertz_service\nmkdir -p output/bin\ncp script/* output 2>/dev/null\nchmod +x output/bootstrap.sh\ngo build -o output/bin/${RUN_NAME}\n"
  },
  {
    "path": "backend/conf/admin/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Coze Studio 管理后台</title>\n    <style>\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        body {\n            margin: 0;\n            padding: 0;\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n            background: #f5f7fa;\n            color: #2c3e50;\n        }\n\n        .admin-container {\n            display: flex;\n            height: 100vh;\n        }\n\n        .sidebar {\n            width: 250px;\n            background: #2c3e50;\n            color: white;\n            padding: 0;\n            box-shadow: 2px 0 10px rgba(0,0,0,0.1);\n            position: relative;\n            overflow-y: auto;\n        }\n\n        .sidebar-header {\n            padding: 20px;\n            border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n        }\n\n        .logo {\n            display: flex;\n            align-items: center;\n            gap: 12px;\n        }\n\n        .logo-icon {\n            width: 32px;\n            height: 32px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            background: rgba(255, 255, 255, 0.1);\n            border-radius: 6px;\n        }\n\n        .logo-text {\n            font-size: 18px;\n            font-weight: 600;\n            color: #ecf0f1;\n        }\n\n        .nav-menu {\n            list-style: none;\n            padding: 0;\n            margin: 0;\n        }\n\n        .nav-item {\n            margin: 0;\n        }\n\n        .nav-link {\n            display: flex;\n            align-items: center;\n            padding: 12px 20px;\n            color: #bdc3c7;\n            text-decoration: none;\n            transition: all 0.3s ease;\n            cursor: pointer;\n            font-size: 16px;\n            position: relative;\n        }\n\n        .nav-link:hover {\n            background: rgba(52, 152, 219, 0.1);\n            color: #3498db;\n        }\n\n        .nav-link.active {\n            background: #3498db;\n            color: white;\n        }\n\n        .nav-icon {\n            margin-right: 12px;\n            font-size: 16px;\n            width: 20px;\n            text-align: center;\n        }\n\n        .nav-arrow {\n            margin-left: auto;\n            font-size: 12px;\n            transition: transform 0.3s ease;\n        }\n\n        .has-submenu .nav-arrow {\n            transform: rotate(-90deg);\n        }\n\n        .has-submenu.expanded .nav-arrow {\n            transform: rotate(0deg);\n        }\n\n        .submenu {\n            list-style: none;\n            padding: 0;\n            margin: 0;\n            background: rgba(0, 0, 0, 0.1);\n            max-height: 0;\n            overflow: hidden;\n            transition: max-height 0.3s ease;\n        }\n\n        .has-submenu.expanded .submenu {\n            max-height: 200px;\n        }\n\n        .submenu-item {\n            margin: 0;\n        }\n\n        .submenu-link {\n            display: flex;\n            align-items: center;\n            padding: 10px 20px 10px 52px;\n            color: #95a5a6;\n            text-decoration: none;\n            transition: all 0.3s ease;\n            cursor: pointer;\n            font-size: 15px;\n        }\n\n        .submenu-link:hover {\n            background: rgba(52, 152, 219, 0.1);\n            color: #3498db;\n        }\n\n        .submenu-link.active {\n            background: #3498db;\n            color: white;\n        }\n\n        .submenu-icon {\n            margin-right: 8px;\n            font-size: 14px;\n            width: 16px;\n            text-align: center;\n        }\n\n        .main-content {\n            flex: 1;\n            padding: 0;\n            overflow: hidden;\n            display: flex;\n            flex-direction: column;\n        }\n\n        .top-bar {\n            background: white;\n            padding: 20px 30px;\n            border-bottom: 1px solid #e1e8ed;\n            box-shadow: 0 2px 4px rgba(0,0,0,0.05);\n        }\n\n        .page-header {\n            margin: 0;\n        }\n\n        .page-title {\n            font-size: 28px;\n            font-weight: 600;\n            color: #2c3e50;\n            margin: 0 0 5px 0;\n        }\n\n        .page-description {\n            color: #6c757d;\n            font-size: 16px;\n            margin: 0;\n        }\n\n        .content-area {\n            flex: 1;\n            padding: 30px;\n            overflow-y: auto;\n            background: #f8f9fa;\n        }\n\n        .content-frame {\n            background: white;\n            border-radius: 12px;\n            box-shadow: 0 2px 10px rgba(0,0,0,0.08);\n            min-height: calc(100vh - 200px);\n            overflow: hidden;\n        }\n\n        .loading {\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            height: 400px;\n            color: #6c757d;\n        }\n\n        .loading-spinner {\n            width: 40px;\n            height: 40px;\n            border: 4px solid #f3f3f3;\n            border-top: 4px solid #667eea;\n            border-radius: 50%;\n            animation: spin 1s linear infinite;\n            margin-right: 15px;\n        }\n\n        @keyframes spin {\n            0% { transform: rotate(0deg); }\n            100% { transform: rotate(360deg); }\n        }\n\n        .error-message {\n            text-align: center;\n            padding: 40px;\n            color: #dc3545;\n        }\n\n        .error-icon {\n            font-size: 48px;\n            margin-bottom: 15px;\n        }\n\n        .sidebar-footer {\n            position: absolute;\n            bottom: 20px;\n            left: 0;\n            right: 0;\n            padding: 0 25px;\n            border-top: 1px solid rgba(255,255,255,0.2);\n            padding-top: 20px;\n        }\n\n        .user-info {\n            display: flex;\n            align-items: center;\n            color: rgba(255,255,255,0.8);\n            font-size: 16px;\n        }\n\n        .user-avatar {\n            width: 32px;\n            height: 32px;\n            border-radius: 50%;\n            background: rgba(255,255,255,0.2);\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            margin-right: 10px;\n            font-size: 16px;\n        }\n\n        /* 响应式设计 */\n        @media (max-width: 768px) {\n            .sidebar {\n                width: 200px;\n            }\n            \n            .content-area {\n                padding: 20px;\n            }\n            \n            .top-bar {\n                padding: 15px 20px;\n            }\n        }\n\n        .welcome-content {\n            text-align: center;\n            padding: 60px 20px;\n        }\n\n        .welcome-icon {\n            font-size: 64px;\n            color: #667eea;\n            margin-bottom: 20px;\n        }\n\n        .welcome-title {\n            font-size: 24px;\n            color: #2c3e50;\n            margin-bottom: 15px;\n        }\n\n        .welcome-text {\n            color: #7f8c8d;\n            font-size: 16px;\n            line-height: 1.6;\n        }\n\n        .stats-grid {\n            display: grid;\n            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n            gap: 20px;\n            margin-top: 30px;\n        }\n\n        .stat-card {\n            background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);\n            color: white;\n            padding: 20px;\n            border-radius: 10px;\n            text-align: center;\n        }\n\n        .stat-number {\n            font-size: 32px;\n            font-weight: bold;\n            margin-bottom: 5px;\n        }\n\n        .stat-label {\n            font-size: 14px;\n            opacity: 0.9;\n        }\n            /* 透明浮层样式（合并自 config.html） */\n        .overlay {\n            position: fixed;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background: rgba(0, 0, 0, 0.5);\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            z-index: 10001; /* 保证高于所有模态层（9999） */\n            opacity: 0;\n            visibility: hidden;\n            transition: opacity 0.3s ease, visibility 0.3s ease;\n        }\n\n        .overlay.show {\n            opacity: 1;\n            visibility: visible;\n        }\n\n        .overlay-content {\n            background: white;\n            padding: 24px 32px;\n            border-radius: 12px;\n            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);\n            max-width: 400px;\n            text-align: center;\n            transform: scale(0.9);\n            transition: transform 0.3s ease;\n        }\n\n        .overlay.show .overlay-content {\n            transform: scale(1);\n        }\n\n        .overlay-content.success {\n            border-left: 4px solid #16a34a;\n            color: #16a34a;\n        }\n\n        .overlay-content.error {\n            border-left: 4px solid #dc2626;\n            color: #dc2626;\n        }\n\n        .overlay-content .icon {\n            font-size: 48px;\n            margin-bottom: 16px;\n        }\n\n        .overlay-content.success .icon::before {\n            content: \"✓\";\n        }\n\n        .overlay-content.error .icon::before {\n            content: \"✗\";\n        }\n\n        .overlay-content .message {\n            font-size: 16px;\n            font-weight: 500;\n            line-height: 1.5;\n        }\n\n        .action-buttons {\n            margin-top: 30px;\n            padding-top: 24px;\n            border-top: 2px solid #f1f3f4;\n            text-align: center;\n        }\n</style>\n</head>\n<body>\n    <div class=\"admin-container\">\n        <nav class=\"sidebar\">\n            <div class=\"sidebar-header\">\n                <div class=\"logo\">\n                    <div class=\"logo-icon\">\n                        <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n                            <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\" fill=\"#4A90E2\"/>\n                            <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\" fill=\"#4A90E2\"/>\n                            <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\" fill=\"#4A90E2\"/>\n                            <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\" fill=\"#4A90E2\"/>\n                        </svg>\n                    </div>\n                    <span class=\"logo-text\">Coze Studio</span>\n                </div>\n            </div>\n            \n            <ul class=\"nav-menu\">\n                <li class=\"nav-item has-submenu\">\n                    <a href=\"#\" class=\"nav-link\" data-page=\"config\">\n                        <span class=\"nav-icon\">⚙️</span>\n                        配置管理\n                        <span class=\"nav-arrow\">▼</span>\n                    </a>\n                    <ul class=\"submenu\">\n                        <li class=\"submenu-item\">\n                            <a href=\"#\" class=\"submenu-link active\" data-page=\"basic-config\">\n                                <span class=\"submenu-icon\">🔧</span>\n                                基础配置\n                            </a>\n                        </li>\n                        <li class=\"submenu-item\">\n                            <a href=\"#\" class=\"submenu-link\" data-page=\"model-management\">\n                                <span class=\"submenu-icon\">🤖</span>\n                                模型管理\n                            </a>\n                        </li>\n                        <li class=\"submenu-item\">\n                            <a href=\"#\" class=\"submenu-link\" data-page=\"knowledge-config\">\n                                <span class=\"submenu-icon\">📚</span>\n                                知识库配置\n                            </a>\n                        </li>\n                    </ul>\n                </li>\n            </ul>\n            \n            <div class=\"sidebar-footer\">\n                <div class=\"user-info\">\n                    <div class=\"user-avatar\" id=\"userAvatar\">👤</div>\n                    <div>\n                        <div id=\"userName\">管理员</div>\n                        <div id=\"userStatus\" style=\"font-size: 12px; opacity: 0.7;\">在线</div>\n                    </div>\n                </div>\n            </div>\n        </nav>\n\n        <main class=\"main-content\">\n            <div class=\"top-bar\" style=\"display: none;\">\n                <div class=\"page-header\">\n                    <h1 class=\"page-title\" id=\"pageTitle\">基础配置</h1>\n                    <p class=\"page-description\" id=\"pageDescription\">管理和配置基础配置</p>\n                </div>\n            </div>\n\n            <div class=\"content-area\">\n                <div class=\"content-frame\">\n                    <div id=\"pageContent\">\n                        <div class=\"loading\">\n                            <div class=\"loading-spinner\"></div>\n                            <span>${t('loading')}</span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </main>\n    </div>\n\n    <!-- 全局透明浮层（来自 config.html） -->\n    <div id=\"overlay\" class=\"overlay\">\n        <div id=\"overlayContent\" class=\"overlay-content\">\n            <div class=\"icon\"></div>\n            <div class=\"message\" id=\"overlayMessage\"></div>\n        </div>\n    </div>\n\n    <script>\n        // i18n（简易字典 + 应用函数）\n        const I18N = {\n            'zh-CN': {\n                'nav.config': '配置管理',\n                'nav.basic': '基础配置',\n                'nav.model': '模型管理',\n                'nav.knowledge': '知识库配置',\n\n                'page.basic.title': '基础配置',\n                'page.basic.desc': '系统基础配置管理',\n                'page.model.title': '模型管理',\n                'page.model.desc': 'AI模型配置和管理',\n                'page.knowledge.title': '知识库配置',\n                'page.knowledge.desc': '知识库设置和管理',\n                'page.default.title': '页面',\n                'page.default.desc': '页面描述',\n                'page.contentArea': '这里是{title}页面的内容区域。',\n\n                'loading': '加载中...',\n                'status.online': '在线',\n                'error.generic': '发生错误',\n                'success.generic': '操作成功',\n\n                'quick.title': '快速操作',\n                'quick.new': '新建',\n                'quick.import': '导入',\n                'quick.export': '导出',\n                'quick.settings': '设置',\n\n                'feature.module1': '功能模块 1',\n                'feature.module2': '功能模块 2',\n                'feature.module3': '功能模块 3',\n                'feature.desc': '相关功能描述和操作入口',\n\n                'user.admin': '管理员',\n\n                'basic.loading': '正在加载配置...',\n                'basic.label.admin_emails': '管理员邮箱',\n                'basic.placeholder.email_input': '输入邮箱，按回车添加',\n                'basic.placeholder.coze_api_token': '输入您的 Coze API Token',\n                'basic.help.coze_api_token_apply': '前往此链接申请 Coze API Token',\n                'basic.label.enable_coze_saas': '启用 Coze SaaS 插件',\n                'basic.label.disable_user_registration': '禁止用户注册',\n                'basic.label.whitelist_emails': '允许注册的白名单邮箱',\n                'basic.help.whitelist': '当禁止用户注册时，只有白名单中的邮箱才能注册',\n                'basic.label.python_env': 'Python 代码运行环境(修改后需要重启服务生效)',\n                'basic.help.local_risk': 'Local 有被攻击的安全风险，生产环境慎用，建议使用 Sandbox 模式。',\n                'basic.sandbox.title': 'Sandbox 配置',\n                'basic.label.allow_env': '允许读取的环境变量',\n                'basic.label.allow_read': '允许读取的目录地址',\n                'basic.label.allow_write': '允许写的目录地址',\n                'basic.label.allow_run': '允许执行的命令',\n                'basic.label.allow_net': '允许访问的网络地址',\n                'basic.label.allow_ffi': '允许访问的 lib 库',\n                'basic.label.node_modules_dir': 'Node Modules 目录地址',\n                'basic.label.timeout_seconds': '代码执行超时时间（秒）',\n                'basic.label.memory_limit_mb': '内存限制（MB）',\n\n                'server.title': '服务器配置',\n                'server.host.label': '服务器主机地址',\n                'server.host.help': '格式：http(s)://主机名:端口号 , oauth 鉴权会用到',\n\n                'btn.save': '保存配置',\n                'btn.reload': '重新加载',\n\n                'error.invalid_email': '请输入有效的邮箱地址',\n                'error.email_exists': '该邮箱已存在',\n                'error.admin_email_required': '请至少设置一个管理员邮箱',\n                'error.server_host_required': '请填写服务器主机地址',\n                'error.invalid_admin_emails': '管理员邮箱存在无效地址：{list}',\n                'error.invalid_whitelist_emails': '白名单邮箱存在无效地址：{list}',\n                'error.save_failed': '保存失败',\n                'error.save_failed_json': '保存失败：请检查服务是否启动并返回有效 JSON',\n                'error.load_failed_empty': '加载失败：返回数据为空',\n                'error.load_failed_json': '加载失败：请检查服务是否启动并返回有效 JSON',\n                'success.saved': '保存成功',\n                'success.saved_restart_required': '保存成功，服务需要重启生效',\n                'overlay.saving': '正在保存配置...',\n                'error.missing_required': '请填写必填项：{list}',\n                'error.api_error': '接口返回错误',\n                'error.save_failed_reason': '保存失败: {reason}',\n                'page.manage_config': '管理和配置 {title}',\n                'page.empty': '页面内容为空',\n                'help.title': '帮助文档',\n                'help.quickstart.title': '🚀 快速开始',\n                'help.quickstart.step1': '首先配置基础设置，包括 API 密钥和系统参数',\n                'help.quickstart.step2': '添加和配置 AI 模型',\n                'help.quickstart.step3': '创建知识库并上传文档',\n                'help.quickstart.step4': '开始使用您的 AI 助手',\n                'help.features.title': '📚 功能说明',\n                'help.features.basic': '基础配置：系统设置、API 配置、安全设置',\n                'help.features.model': '模型管理：添加、编辑、删除 AI 模型',\n                'help.features.kb': '知识库：文档上传、索引管理、检索配置',\n                'help.support.title': '🔧 技术支持',\n                'help.support.contact': '如果您遇到问题，请联系技术支持团队',\n                'help.support.email': '📧 邮箱: {email}',\n                'help.support.phone': '📞 电话: {phone}',\n                'export.success': '配置文件已导出！',\n                'error.page_load_failed_reason': '页面加载失败: {reason}',\n\n                // 通用\n                'common.cancel': '取消',\n                'common.save': '保存',\n                'common.delete': '删除',\n                'common.enabled': '启用',\n                'common.disabled': '停用',\n                'common.on': '开启',\n                'common.off': '关闭',\n                'common.saving': '保存中...',\n                'common.not_configured': '未配置',\n                'common.unknown_error': '未知错误',\n\n                // 模型管理\n                'model.list.title': '模型列表',\n                'model.provider.count': '提供方数量：{count}',\n                'model.provider.model_count': '模型数量：{count}',\n                'model.actions.add': '添加模型',\n                'model.provider.unnamed': '未命名提供方',\n                'model.provider.unknown': '未知提供方',\n                'model.unnamed': '未命名模型',\n\n                'model.field.id': 'ID',\n                'model.field.model': 'Model',\n                'model.field.api_key': 'API Key',\n                'model.field.base64_url': 'Base64URL',\n                'model.field.region': 'Region',\n                'model.field.backend': 'Backend',\n                'model.field.project': 'Project',\n                'model.field.location': 'Location',\n                'model.field.azure': 'By Azure',\n                'model.field.api_version': 'API Version',\n                'model.field.endpoint': '接口地址',\n                'model.field.thinking_type': 'Thinking Type',\n                'model.thinking_type.default': 'Default',\n                'model.thinking_type.enable': 'Enable',\n                'model.thinking_type.disable': 'Disable',\n                'model.thinking_type.auto': 'Auto',\n\n                'model.error.load_list_failed': '加载模型列表失败',\n                'model.error.render_page_failed': '渲染模型页面失败',\n                'model.error.delete_missing_id': '删除模型失败: 缺少模型ID',\n                'model.confirm.delete': '确认删除该模型？删除后不可恢复',\n                'model.error.delete_invalid_json': '删除模型失败: 返回结果不是有效 JSON',\n                'model.error.delete_failed': '删除模型失败',\n                'model.error.open_modal_failed': '无法打开添加模型表单：组件未渲染',\n                'model.error.provider_unrecognized': '无法识别模型提供方，请从提供方卡片点击“添加模型”。',\n                'model.error.missing_required_with_api': '请填写必填项：模型展示名称、model、api_key',\n                'model.error.missing_required': '请填写必填项：模型展示名称、model',\n                'model.error.create_read_failed': '创建模型失败: 无法读取响应内容',\n                'model.create.success': '创建成功',\n                'model.error.create_failed': '创建模型失败',\n\n                // 添加模型弹窗\n                'model.modal.add.title': '添加模型',\n                'model.modal.display_name.label': '模型显示名称',\n                'model.modal.display_name.placeholder': '例如：Doubao Seed 1.6',\n                'model.modal.model.label': 'Model',\n                'model.modal.model.placeholder': '例如：doubao-seed-1-6-250615',\n                'model.modal.api_key.label': 'API Key',\n                'model.modal.api_key.placeholder': '密钥',\n                'model.modal.base_url.label': 'Base URL',\n                'model.modal.base_url.placeholder': '选填',\n                'model.modal.enable_base64_url.label': '启用 Base64 URL',\n                'model.modal.enable_base64_url.help': '使用 base64 编码图片、文件、音频、视频 URL 给模型',\n                'model.modal.ark_region.label': 'Region（Ark）',\n                'model.modal.ark_region.placeholder': '选填，例如：cn-beijing',\n                'model.modal.azure.label': '使用 Azure',\n                'model.modal.azure.help': 'OpenAI 设置：勾选表示通过 Azure 使用',\n                'model.modal.openai_api_version.label': 'OpenAI API Version',\n                'model.modal.openai_api_version.placeholder': '选填，例如：2024-06-01',\n                'model.modal.gemini_backend.label': 'Backend',\n                'model.modal.gemini_backend.unspecified': '未指定',\n                'model.modal.gemini_backend.gemini_api': 'Gemini API',\n                'model.modal.gemini_backend.vertex_ai': 'Vertex AI',\n                'model.modal.gemini_project.label': 'Project',\n                'model.modal.gemini_project.placeholder': '选填，例如：my-project',\n                'model.modal.gemini_location.label': 'Location',\n                'model.modal.gemini_location.placeholder': '选填，例如：us-central1',\n                'model.modal.thinking_type.label': 'Thinking Type',\n                'model.modal.thinking_type.enable': 'Enable',\n                'model.modal.thinking_type.disable': 'Disable',\n                'model.modal.thinking_type.auto': 'Auto',\n                \n                // 知识库配置\n                'knowledge.error.load_failed_json': '加载知识库配置失败: 返回结果不是有效 JSON',\n                'knowledge.error.load_failed_msg': '加载知识库配置失败: {msg}',\n                'knowledge.error.load_failed_empty': '加载知识库配置失败: 返回数据为空',\n                'knowledge.error.load_failed': '加载知识库配置失败',\n                'knowledge.error.load_failed_reason': '加载知识库配置失败: {reason}',\n                'knowledge.log.local_preview_no_demo': '本地预览：不使用示例数据',\n                'knowledge.section.embedding': 'Embedding 配置',\n                'knowledge.connection': '{name} 连接',\n                'knowledge.section.rerank': 'Rerank 配置',\n                'knowledge.section.ocr': 'OCR 配置',\n                'knowledge.section.parser': 'Parser 配置',\n                'knowledge.section.builtin_model': '知识库内置模型配置',\n                'knowledge.label.choose_builtin_model': '选择内置模型',\n                'knowledge.placeholder.select_model': '请选择模型',\n                'knowledge.loading.model_list': '正在加载模型列表...',\n                'knowledge.empty.model_list': '未获取到模型列表',\n                'knowledge.placeholder.model_fallback': '模型 #{id}',\n                'knowledge.tip.setup_model_first': '请先配置模型',\n                'knowledge.error.model_list_load_failed': '加载模型列表失败',\n                'knowledge.error.render_failed': '渲染知识库配置失败',\n                'knowledge.error.save_failed': '保存配置失败'\n            },\n            'en-US': {\n                'nav.config': 'Configuration',\n                'nav.basic': 'Basic Config',\n                'nav.model': 'Model Management',\n                'nav.knowledge': 'Knowledge Config',\n\n                'page.basic.title': 'Basic Config',\n                'page.basic.desc': 'System basic configuration',\n                'page.model.title': 'Model Management',\n                'page.model.desc': 'AI model configuration and management',\n                'page.knowledge.title': 'Knowledge Config',\n                'page.knowledge.desc': 'Knowledge base settings and management',\n                'page.default.title': 'Page',\n                'page.default.desc': 'Page Description',\n                'page.contentArea': 'This is the content area of {title}.',\n\n                'loading': 'Loading...',\n                'status.online': 'Online',\n                'error.generic': 'Error occurred',\n                'success.generic': 'Success',\n\n                'quick.title': 'Quick Actions',\n                'quick.new': 'New',\n                'quick.import': 'Import',\n                'quick.export': 'Export',\n                'quick.settings': 'Settings',\n\n                'feature.module1': 'Feature Module 1',\n                'feature.module2': 'Feature Module 2',\n                'feature.module3': 'Feature Module 3',\n                'feature.desc': 'Feature description and actions',\n\n                'user.admin': 'Admin',\n\n                'basic.loading': 'Loading configuration...',\n                'basic.label.admin_emails': 'Admin Emails',\n                'basic.placeholder.email_input': 'Type email, press Enter to add',\n                'basic.placeholder.coze_api_token': 'Enter your Coze API Token',\n                'basic.help.coze_api_token_apply': 'Apply for a Coze API Token here',\n                'basic.label.enable_coze_saas': 'Enable Coze SaaS plugin',\n                'basic.label.disable_user_registration': 'Disable user registration',\n                'basic.label.whitelist_emails': 'Whitelist emails allowed to register',\n                'basic.help.whitelist': 'When registration is disabled, only whitelisted emails can register.',\n                'basic.label.python_env': 'Python Execution Environment(Change requires service restart)',\n                'basic.help.local_risk': 'Local has security risks; use Sandbox in production.',\n                'basic.sandbox.title': 'Sandbox Config',\n                'basic.label.allow_env': 'Allowed environment variables',\n                'basic.label.allow_read': 'Readable directories',\n                'basic.label.allow_write': 'Writable directories',\n                'basic.label.allow_run': 'Allowed commands',\n                'basic.label.allow_net': 'Allowed network addresses',\n                'basic.label.allow_ffi': 'Allowed lib (FFI)',\n                'basic.label.node_modules_dir': 'Node Modules directory',\n                'basic.label.timeout_seconds': 'Code timeout (seconds)',\n                'basic.label.memory_limit_mb': 'Memory limit (MB)',\n\n                'server.title': 'Server Configuration',\n                'server.host.label': 'Server host address',\n                'server.host.help': 'Format: http(s)://hostname:port , used by oauth auth',\n\n                'btn.save': 'Save Config',\n                'btn.reload': 'Reload',\n\n                'error.invalid_email': 'Please enter a valid email address',\n                'error.email_exists': 'This email already exists',\n                'error.admin_email_required': 'Please set at least one admin email',\n                'error.server_host_required': 'Please provide the server host address',\n                'error.invalid_admin_emails': 'Invalid admin emails: {list}',\n                'error.invalid_whitelist_emails': 'Invalid whitelist emails: {list}',\n                'error.save_failed': 'Save failed',\n                'error.save_failed_json': 'Save failed: check the service and JSON response',\n                'error.load_failed_empty': 'Load failed: empty response data',\n                'error.load_failed_json': 'Load failed: check the service and JSON response',\n                'success.saved': 'Saved successfully',\n                'success.saved_restart_required': 'Saved successfully. Restart the service to take effect',\n                'overlay.saving': 'Saving configuration...',\n                'error.missing_required': 'Please fill required fields: {list}',\n                'error.api_error': 'API returned error',\n                'error.save_failed_reason': 'Save failed: {reason}',\n                'page.manage_config': 'Manage and configure {title}',\n                'page.empty': 'Page content is empty',\n                'help.title': 'Help',\n                'help.quickstart.title': '🚀 Quick Start',\n                'help.quickstart.step1': 'Configure basic settings including API keys and system parameters',\n                'help.quickstart.step2': 'Add and configure AI models',\n                'help.quickstart.step3': 'Create a knowledge base and upload documents',\n                'help.quickstart.step4': 'Start using your AI assistant',\n                'help.features.title': '📚 Feature Overview',\n                'help.features.basic': 'Basic Config: system settings, API config, security settings',\n                'help.features.model': 'Model Management: add, edit, and delete AI models',\n                'help.features.kb': 'Knowledge Base: document upload, indexing, retrieval config',\n                'help.support.title': '🔧 Technical Support',\n                'help.support.contact': 'If you encounter issues, contact the support team',\n                'help.support.email': '📧 Email: {email}',\n                'help.support.phone': '📞 Phone: {phone}',\n                'export.success': 'Configuration file exported!',\n                'error.page_load_failed_reason': 'Page load failed: {reason}',\n\n                // Common\n                'common.cancel': 'Cancel',\n                'common.save': 'Save',\n                'common.delete': 'Delete',\n                'common.enabled': 'Enabled',\n                'common.disabled': 'Disabled',\n                'common.on': 'On',\n                'common.off': 'Off',\n                'common.saving': 'Saving...',\n                'common.not_configured': 'Not configured',\n                'common.unknown_error': 'Unknown error',\n\n                // Model Management\n                'model.list.title': 'Model List',\n                'model.provider.count': 'Providers: {count}',\n                'model.provider.model_count': 'Model count: {count}',\n                'model.actions.add': 'Add Model',\n                'model.provider.unnamed': 'Unnamed provider',\n                'model.provider.unknown': 'Unknown provider',\n                'model.unnamed': 'Unnamed model',\n\n                'model.field.id': 'ID',\n                'model.field.model': 'Model',\n                'model.field.api_key': 'API Key',\n                'model.field.base64_url': 'Base64URL',\n                'model.field.region': 'Region',\n                'model.field.backend': 'Backend',\n                'model.field.project': 'Project',\n                'model.field.location': 'Location',\n                'model.field.azure': 'By Azure',\n                'model.field.api_version': 'API Version',\n                'model.field.endpoint': 'Endpoint',\n                'model.field.thinking_type': 'Thinking Type',\n                'model.thinking_type.default': 'Default',\n                'model.thinking_type.enable': 'Enable',\n                'model.thinking_type.disable': 'Disable',\n                'model.thinking_type.auto': 'Auto',\n\n                'model.error.load_list_failed': 'Failed to load model list',\n                'model.error.render_page_failed': 'Failed to render model page',\n                'model.error.delete_missing_id': 'Delete model failed: missing model ID',\n                'model.confirm.delete': 'Delete this model? This cannot be undone',\n                'model.error.delete_invalid_json': 'Delete model failed: invalid JSON response',\n                'model.error.delete_failed': 'Delete model failed',\n                'model.error.open_modal_failed': 'Cannot open add-model form: component not rendered',\n                'model.error.provider_unrecognized': 'Unrecognized provider; click “Add Model” on a provider card.',\n                'model.error.missing_required_with_api': 'Please fill required: display name, model, api_key',\n                'model.error.missing_required': 'Please fill required: display name, model',\n                'model.error.create_read_failed': 'Create model failed: cannot read response',\n                'model.create.success': 'Created successfully',\n                'model.error.create_failed': 'Create model failed',\n\n                // Add Model Modal\n                'model.modal.add.title': 'Add Model',\n                'model.modal.display_name.label': 'Display Name',\n                'model.modal.display_name.placeholder': 'e.g., Doubao Seed 1.6',\n                'model.modal.model.label': 'Model',\n                'model.modal.model.placeholder': 'e.g., doubao-seed-1-6-250615',\n                'model.modal.api_key.label': 'API Key',\n                'model.modal.api_key.placeholder': 'Secret',\n                'model.modal.base_url.label': 'Base URL',\n                'model.modal.base_url.placeholder': 'Optional',\n                'model.modal.enable_base64_url.label': 'Enable Base64 URL',\n                'model.modal.enable_base64_url.help': 'Use base64-encoded URLs for images, files, audio, video',\n                'model.modal.ark_region.label': 'Region (Ark)',\n                'model.modal.ark_region.placeholder': 'Optional, e.g., cn-beijing',\n                'model.modal.azure.label': 'Use Azure',\n                'model.modal.azure.help': 'OpenAI settings: check to use via Azure',\n                'model.modal.openai_api_version.label': 'OpenAI API Version',\n                'model.modal.openai_api_version.placeholder': 'Optional, e.g., 2024-06-01',\n                'model.modal.gemini_backend.label': 'Backend',\n                'model.modal.gemini_backend.unspecified': 'Unspecified',\n                'model.modal.gemini_backend.gemini_api': 'Gemini API',\n                'model.modal.gemini_backend.vertex_ai': 'Vertex AI',\n                'model.modal.gemini_project.label': 'Project',\n                'model.modal.gemini_project.placeholder': 'Optional, e.g., my-project',\n                'model.modal.gemini_location.label': 'Location',\n                'model.modal.gemini_location.placeholder': 'Optional, e.g., us-central1',\n                'model.modal.thinking_type.label': 'Thinking Type',\n                'model.modal.thinking_type.enable': 'Enable',\n                'model.modal.thinking_type.disable': 'Disable',\n                'model.modal.thinking_type.auto': 'Auto',\n                \n                // Knowledge Config\n                'knowledge.error.load_failed_json': 'Load knowledge config failed: invalid JSON response',\n                'knowledge.error.load_failed_msg': 'Load knowledge config failed: {msg}',\n                'knowledge.error.load_failed_empty': 'Load knowledge config failed: empty response data',\n                'knowledge.error.load_failed': 'Load knowledge config failed',\n                'knowledge.error.load_failed_reason': 'Load knowledge config failed: {reason}',\n                'knowledge.log.local_preview_no_demo': 'Local preview: no demo data used',\n                'knowledge.section.embedding': 'Embedding Config',\n                'knowledge.connection': '{name} Connection',\n                'knowledge.section.rerank': 'Rerank Config',\n                'knowledge.section.ocr': 'OCR Config',\n                'knowledge.section.parser': 'Parser Config',\n                'knowledge.section.builtin_model': 'Knowledge Built-in Model Config',\n                'knowledge.label.choose_builtin_model': 'Choose Built-in Model',\n                'knowledge.placeholder.select_model': 'Please select a model',\n                'knowledge.loading.model_list': 'Loading model list...',\n                'knowledge.empty.model_list': 'No model list retrieved',\n                'knowledge.placeholder.model_fallback': 'Model #{id}',\n                'knowledge.tip.setup_model_first': 'Please configure models first',\n                'knowledge.error.model_list_load_failed': 'Failed to load model list',\n                'knowledge.error.render_failed': 'Render knowledge config failed',\n                'knowledge.error.save_failed': 'Failed to save config'\n            },\n        };\n\n        let currentLocale = 'zh-CN';\n        function t(key, vars) {\n            const dict = I18N[currentLocale] || I18N['zh-CN'];\n            let text = dict[key] || I18N['zh-CN'][key] || key;\n            if (vars && typeof vars === 'object') {\n                text = String(text).replace(/\\{(\\w+)\\}/g, (_, k) => (vars[k] ?? `{${k}}`));\n            }\n            return text;\n        }\n        function setLocale(locale) {\n            const normalized = (locale === 'en-US' || locale === 'zh-CN') ? locale : (locale && String(locale).toLowerCase().startsWith('en') ? 'en-US' : 'zh-CN');\n            currentLocale = normalized;\n            try { localStorage.setItem('locale', normalized); } catch(_) {}\n            document.documentElement.lang = normalized;\n            applyTranslations();\n        }\n        function setNavLinkText(link, text) {\n            if (!link) return;\n            const icon = link.querySelector('.nav-icon');\n            const arrow = link.querySelector('.nav-arrow');\n            if (icon || arrow) {\n                const iconHTML = icon ? icon.outerHTML + ' ' : '';\n                const arrowHTML = arrow ? ' ' + arrow.outerHTML : '';\n                link.innerHTML = iconHTML + (text || '') + arrowHTML;\n            } else {\n                link.textContent = text || '';\n            }\n        }\n        function applyTranslations() {\n            // 左侧导航\n            setNavLinkText(document.querySelector('[data-page=\"config\"]'), t('nav.config'));\n            const basicLink = document.querySelector('[data-page=\"basic-config\"]');\n            if (basicLink) basicLink.innerHTML = '<span class=\"submenu-icon\">🔧</span>' + t('nav.basic');\n            const modelLink = document.querySelector('[data-page=\"model-management\"]');\n            if (modelLink) modelLink.innerHTML = '<span class=\"submenu-icon\">🤖</span>' + t('nav.model');\n            const knowledgeLink = document.querySelector('[data-page=\"knowledge-config\"]');\n            if (knowledgeLink) knowledgeLink.innerHTML = '<span class=\"submenu-icon\">📚</span>' + t('nav.knowledge');\n\n            // 顶部标题（根据当前 hash）\n            const hash = window.location.hash.substring(1) || 'basic-config';\n            const map = {\n                'basic-config': { title: t('page.basic.title'), desc: t('page.basic.desc') },\n                'model-management': { title: t('page.model.title'), desc: t('page.model.desc') },\n                'knowledge-config': { title: t('page.knowledge.title'), desc: t('page.knowledge.desc') },\n            };\n            const meta = map[hash] || { title: t('page.default.title'), desc: t('page.default.desc') };\n            const pt = document.getElementById('pageTitle');\n            const pd = document.getElementById('pageDescription');\n            if (pt) pt.textContent = meta.title;\n            if (pd) pd.textContent = meta.desc;\n\n            // 侧边栏在线状态\n            const us = document.getElementById('userStatus');\n            if (us) us.textContent = t('status.online');\n\n            // 初始 loading 文案\n            const loadingSpan = document.querySelector('#pageContent .loading span');\n            if (loadingSpan) loadingSpan.textContent = t('loading');\n        }\n\n        // 页面导航功能\n        const navLinks = document.querySelectorAll('.nav-link');\n        const submenuLinks = document.querySelectorAll('.submenu-link');\n        const pageTitle = document.getElementById('pageTitle');\n        const pageDescription = document.getElementById('pageDescription');\n        const pageContent = document.getElementById('pageContent');\n\n        function handleApiCode(data) {\n            const code = Number(data?.code);\n            if (code === 700012006) {\n                window.location.href = '/sign?redirect=%2Fadmin';\n                return true;\n            }\n            if (code === 401) {\n                const msg = data?.msg || data?.message || t('error.generic');\n                alert(msg);\n                window.location.href = '/';\n                return true;\n            }\n            return false;\n        }\n\n        // 页面初始化\n        document.addEventListener('DOMContentLoaded', function() {\n            // 初始化语言（优先使用本地存储，否则使用浏览器语言）\n            const storedLocale = (() => { try { return localStorage.getItem('locale'); } catch(_) { return null; } })();\n            setLocale(storedLocale || (navigator.language && navigator.language.toLowerCase().startsWith('en') ? 'en-US' : 'zh-CN'));\n            // 加载用户信息\n            loadUserInfo();\n            \n            // 初始化子菜单功能\n            initSubmenuToggle();\n            \n            // 默认展开配置管理子菜单\n            const configMenu = document.querySelector('[data-page=\"config\"]');\n            if (configMenu) {\n                const navItem = configMenu.closest('.nav-item');\n                if (navItem) {\n                    navItem.classList.add('expanded');\n                }\n            }\n            \n            // 从URL hash获取当前页面，如果没有则显示默认页面\n            initPageFromURL();\n        });\n\n        // 从URL初始化页面\n        function initPageFromURL() {\n            const hash = window.location.hash.substring(1); // 去掉#号\n            if (hash) {\n                // 如果URL中有hash，加载对应页面\n                loadPageFromHash(hash);\n            } else {\n                // 如果没有hash，显示默认页面\n                showDefaultPage();\n            }\n        }\n\n        // 从hash加载页面\n        function loadPageFromHash(hash) {\n            const pageConfig = {\n                'basic-config': { title: t('page.basic.title'), description: t('page.basic.desc') },\n                'model-management': { title: t('page.model.title'), description: t('page.model.desc') },\n                'knowledge-config': { title: t('page.knowledge.title'), description: t('page.knowledge.desc') }\n            };\n\n            if (pageConfig[hash]) {\n                // 设置对应的导航项为活动状态\n                const targetLink = document.querySelector(`[data-page=\"${hash}\"]`);\n                if (targetLink) {\n                    // 移除所有活动状态\n                    navLinks.forEach(l => l.classList.remove('active'));\n                    submenuLinks.forEach(l => l.classList.remove('active'));\n                    \n                    // 添加当前活动状态\n                    targetLink.classList.add('active');\n                    \n                    // 如果是子菜单项，确保父菜单展开\n                    if (targetLink.classList.contains('submenu-link')) {\n                        const parentNavItem = targetLink.closest('.nav-item');\n                        if (parentNavItem) {\n                            parentNavItem.classList.add('expanded');\n                        }\n                    }\n                }\n                \n                // 加载页面内容\n                loadPageContent(hash);\n            } else {\n                // 如果hash不存在，显示默认页面\n                showDefaultPage();\n            }\n        }\n\n        // 加载用户信息\n        async function loadUserInfo() {\n            try {\n                // 从当前页面URL获取host\n                const currentHost = window.location.origin;\n                const apiUrl = `${currentHost}/api/passport/account/info/v2/`;\n                \n                const response = await fetch(apiUrl, {\n                    method: 'POST',\n                    headers: {\n                        'Content-Type': 'application/json',\n                    },\n                    body: JSON.stringify({})\n                });\n                const result = await response.json();\n                \n                if (handleApiCode(result)) {\n                    return;\n                }\n                \n                if (result.code === 0 && result.data) {\n                    // 应用语言\n                    const apiLocale = result.data.locale;\n                    const storedLocale = (() => { try { return localStorage.getItem('locale'); } catch(_) { return null; } })();\n                    setLocale(apiLocale || storedLocale || (navigator.language && navigator.language.toLowerCase().startsWith('en') ? 'en-US' : 'zh-CN'));\n\n                    // 更新用户名\n                    const userNameElement = document.getElementById('userName');\n                    if (userNameElement && result.data.name) {\n                        userNameElement.textContent = result.data.name;\n                    }\n                    \n                    // 更新用户头像\n                    const userAvatarElement = document.getElementById('userAvatar');\n                    if (userAvatarElement && result.data.avatar_url) {\n                        // 创建img元素替换原有的emoji\n                        const img = document.createElement('img');\n                        img.src = result.data.avatar_url;\n                        img.alt = result.data.name || '用户头像';\n                        img.style.width = '100%';\n                        img.style.height = '100%';\n                        img.style.borderRadius = '50%';\n                        img.style.objectFit = 'cover';\n                        \n                        // 添加错误处理，如果图片加载失败则显示默认图标\n                        img.onerror = function() {\n                            userAvatarElement.innerHTML = '👤';\n                        };\n                        \n                        userAvatarElement.innerHTML = '';\n                        userAvatarElement.appendChild(img);\n                    }\n                } else {\n                    console.warn('用户信息接口返回异常:', result);\n                    // 接口异常时也设置一次语言（兜底）\n                    const storedLocale = (() => { try { return localStorage.getItem('locale'); } catch(_) { return null; } })();\n                    setLocale(storedLocale || (navigator.language && navigator.language.toLowerCase().startsWith('en') ? 'en-US' : 'zh-CN'));\n                }\n            } catch (error) {\n                console.error('加载用户信息失败:', error);\n                // 保持默认显示\n            }\n        }\n\n        // 初始化子菜单切换功能\n        function initSubmenuToggle() {\n            const hasSubmenuItems = document.querySelectorAll('.has-submenu');\n            \n            hasSubmenuItems.forEach(item => {\n                const navLink = item.querySelector('.nav-link');\n                navLink.addEventListener('click', (e) => {\n                    e.preventDefault();\n                    \n                    // 切换展开状态\n                    item.classList.toggle('expanded');\n                });\n            });\n        }\n\n        // 导航点击事件\n        navLinks.forEach(link => {\n            link.addEventListener('click', (e) => {\n                const parentItem = link.closest('.nav-item');\n                \n                // 如果不是子菜单项，处理页面跳转\n                if (!parentItem.classList.contains('has-submenu')) {\n                    e.preventDefault();\n                    \n                    // 移除所有活动状态\n                    navLinks.forEach(l => l.classList.remove('active'));\n                    submenuLinks.forEach(l => l.classList.remove('active'));\n                    \n                    // 添加当前活动状态\n                    link.classList.add('active');\n                    \n                    const pageName = link.getAttribute('data-page');\n                    // 更新URL hash\n                    window.location.hash = pageName;\n                    loadPageContent(pageName);\n                }\n            });\n        });\n\n        // 子菜单点击事件\n        submenuLinks.forEach(link => {\n            link.addEventListener('click', (e) => {\n                e.preventDefault();\n                \n                // 移除所有活动状态\n                navLinks.forEach(l => l.classList.remove('active'));\n                submenuLinks.forEach(l => l.classList.remove('active'));\n                \n                // 添加当前活动状态\n                link.classList.add('active');\n                \n                const pageName = link.getAttribute('data-page');\n                // 更新URL hash\n                window.location.hash = pageName;\n                loadPageContent(pageName);\n            });\n        });\n\n        // 加载页面内容\n        function loadPageContent(pageName) {\n            const pageConfig = {\n                'basic-config': { title: t('page.basic.title'), description: t('page.basic.desc') },\n                'model-management': { title: t('page.model.title'), description: t('page.model.desc') },\n                'knowledge-config': { title: t('page.knowledge.title'), description: t('page.knowledge.desc') }\n            };\n            \n            const config = pageConfig[pageName] || { title: t('page.default.title'), description: t('page.default.desc') };\n            \n            pageTitle.textContent = config.title;\n            pageDescription.textContent = config.description;\n            \n            // 显示页面内容\n            showPageContent(pageName, config.title);\n        }\n\n        // 显示默认页面\n        function showDefaultPage() {\n            // 设置基础配置为选中状态\n            const basicConfigLink = document.querySelector('[data-page=\"basic-config\"]');\n            if (basicConfigLink) {\n                // 移除所有活动状态\n                navLinks.forEach(l => l.classList.remove('active'));\n                submenuLinks.forEach(l => l.classList.remove('active'));\n                \n                // 添加基础配置的活动状态\n                basicConfigLink.classList.add('active');\n            }\n            \n            // 设置默认页面的URL hash\n            window.location.hash = 'basic-config';\n            loadPageContent('basic-config');\n        }\n\n        // 显示页面内容\n        function showPageContent(pageName, title) {\n            // 如果是基础配置页面，加载config.html的内容\n            if (pageName === 'basic-config') {\n                loadBasicConfigPage();\n                return;\n            }\n\n            // 如果是模型管理页面，加载模型列表\n            if (pageName === 'model-management') {\n                loadModelManagementPage();\n                return;\n            }\n\n            // 如果是知识库配置页面，加载知识库配置\n            if (pageName === 'knowledge-config') {\n                loadKnowledgeConfigPage();\n                return;\n            }\n            \n            pageContent.innerHTML = `\n                <div style=\"padding: 30px;\">\n                    <div style=\"background: white; padding: 30px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);\">\n                        <h2 style=\"color: #2c3e50; margin-bottom: 20px;\">${title}</h2>\n                        <p style=\"color: #7f8c8d; margin-bottom: 30px;\">${t('page.contentArea', { title })}</p>\n                        \n                        <div style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px;\">\n                            <div style=\"background: #f8f9fa; padding: 20px; border-radius: 6px; border-left: 4px solid #3498db;\">\n                                <h4 style=\"color: #2c3e50; margin: 0 0 10px;\">${t('feature.module1')}</h4>\n                                <p style=\"color: #7f8c8d; margin: 0; font-size: 14px;\">${t('feature.desc')}</p>\n                            </div>\n                            <div style=\"background: #f8f9fa; padding: 20px; border-radius: 6px; border-left: 4px solid #e74c3c;\">\n                                <h4 style=\"color: #2c3e50; margin: 0 0 10px;\">${t('feature.module2')}</h4>\n                                <p style=\"color: #7f8c8d; margin: 0; font-size: 14px;\">${t('feature.desc')}</p>\n                            </div>\n                            <div style=\"background: #f8f9fa; padding: 20px; border-radius: 6px; border-left: 4px solid #f39c12;\">\n                                <h4 style=\"color: #2c3e50; margin: 0 0 10px;\">${t('feature.module3')}</h4>\n                                <p style=\"color: #7f8c8d; margin: 0; font-size: 14px;\">${t('feature.desc')}</p>\n                            </div>\n                        </div>\n                        \n                        <div style=\"margin-top: 30px; padding: 20px; background: #ecf0f1; border-radius: 6px;\">\n                            <h4 style=\"color: #2c3e50; margin: 0 0 15px;\">${t('quick.title')}</h4>\n                            <div style=\"display: flex; gap: 10px; flex-wrap: wrap;\">\n                                <button style=\"background: #3498db; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; font-size: 14px;\">${t('quick.new')}</button>\n                                <button style=\"background: #2ecc71; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; font-size: 14px;\">${t('quick.import')}</button>\n                                <button style=\"background: #f39c12; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; font-size: 14px;\">${t('quick.export')}</button>\n                                <button style=\"background: #95a5a6; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; font-size: 14px;\">${t('quick.settings')}</button>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            `;\n        }\n\n        // 加载基础配置页面（已内联到 index.html）\n        function loadBasicConfigPage() {\n            ensureConfigStylesInjected();\n            pageContent.innerHTML = getBasicConfigMarkup();\n            // 绑定弹窗函数到全局浮层\n            overrideConfigOverlay();\n            // 初始化交互与数据\n            setupConfigEventListeners();\n            initConfigEmailTags();\n            setTimeout(() => {\n                if (typeof window.loadConfig === 'function') {\n                    window.loadConfig();\n                }\n            }, 0);\n        }\n\n        // 将配置页的弹窗绑定到 index.html 的全局浮层（幂等且无递归）\n        function overrideConfigOverlay() {\n            if (window.__overlayBound) return;\n            const baseShow = (typeof window.showOverlay === 'function') ? window.showOverlay.bind(window) : function(message, type){\n                // 兜底：如果原函数不存在，直接调用本地实现\n                const overlay = document.getElementById('overlay');\n                const overlayContent = document.getElementById('overlayContent');\n                const overlayMessage = document.getElementById('overlayMessage');\n                if (!overlay || !overlayContent || !overlayMessage) { alert(String(message || '未知错误')); return; }\n                overlayMessage.textContent = String(message || '');\n                overlayContent.className = `overlay-content ${type === 'success' ? 'success' : 'error'}`;\n                overlay.classList.add('show');\n                overlay.onclick = function(e){ if (e.target === overlay) hideOverlay(); };\n                setTimeout(() => hideOverlay(), 3000);\n            };\n            const baseHide = (typeof window.hideOverlay === 'function') ? window.hideOverlay.bind(window) : function(){\n                const overlay = document.getElementById('overlay');\n                if (overlay) overlay.classList.remove('show');\n            };\n            window.showOverlay = function(message, type) { baseShow(message, type); };\n            window.hideOverlay = function() { baseHide(); };\n            window.showError = function(message) { baseShow(message || t('error.generic'), 'error'); };\n            window.showSuccess = function(message) { baseShow(message || t('success.generic'), 'success'); };\n            window.__overlayBound = true;\n        }\n\n        // 注入基础配置页 CSS（移除 overlay 相关样式）\n        const CONFIG_PAGE_CSS = `\n.page-content { max-width: 1000px; margin: 0 auto; padding: 30px; }\n.page-header { background: white; border-radius: 12px; padding: 30px; margin-bottom: 30px; box-shadow: 0 2px 10px rgba(0,0,0,0.08); border-left: 4px solid #3498db; }\n.page-title { font-size: 28px; font-weight: 600; color: #2c3e50; margin-bottom: 8px; }\n.page-subtitle { font-size: 16px; color: #6c757d; font-weight: 400; }\n.config-section { background: white; border-radius: 12px; padding: 30px; margin-bottom: 24px; box-shadow: 0 2px 10px rgba(0,0,0,0.08); border: 1px solid #e1e8ed; transition: all 0.3s ease; }\n.config-section:hover { box-shadow: 0 4px 20px rgba(0,0,0,0.12); }\n.section-title { font-size: 20px; font-weight: 600; color: #2c3e50; margin-bottom: 24px; display: flex; align-items: center; padding-bottom: 12px; border-bottom: 2px solid #f1f3f4; }\n.section-icon { margin-right: 12px; font-size: 20px; color: #3498db; }\n.form-group { margin-bottom: 24px; position: relative; }\n.form-label { display: block; font-weight: 500; color: #374151; margin-bottom: 8px; font-size: 14px; }\n.form-input { width: 100%; padding: 12px 16px; border: 2px solid #e1e8ed; border-radius: 8px; font-size: 14px; transition: all 0.3s ease; background: white; box-sizing: border-box; font-family: inherit; }\n.form-input:focus { outline: none; border-color: #3498db; box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1); }\n.form-input:hover:not(:focus) { border-color: #bdc3c7; }\n.form-textarea { min-height: 100px; resize: vertical; font-family: inherit; }\n.form-select { appearance: none; background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 8 4 4 4-4'/%3e%3c/svg%3e\"); background-position: right 12px center; background-repeat: no-repeat; background-size: 16px; padding-right: 40px; cursor: pointer; }\n.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }\n.checkbox-group { display: flex; align-items: center; margin-bottom: 16px; padding: 12px 16px; background: #f8f9fa; border-radius: 8px; border: 2px solid #e1e8ed; transition: all 0.3s ease; }\n.checkbox-group:hover { background: #f1f3f4; border-color: #bdc3c7; }\n.checkbox-input { margin-right: 12px; width: 18px; height: 18px; accent-color: #3498db; cursor: pointer; }\n.checkbox-group label { font-weight: 500; color: #374151; cursor: pointer; font-size: 14px; }\n.radio-group { display: flex; gap: 16px; margin-top: 8px; }\n.radio-item { display: flex; align-items: center; padding: 10px 16px; background: white; border-radius: 8px; border: 2px solid #e1e8ed; transition: all 0.3s ease; cursor: pointer; }\n.radio-item:hover { background: #f8f9fa; border-color: #3498db; }\n.radio-item:has(input:checked) { background: #e8f4fd; border-color: #3498db; box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1); }\n.radio-input { margin-right: 8px; width: 18px; height: 18px; accent-color: #3498db; cursor: pointer; }\n.radio-item label { font-weight: 500; color: #374151; cursor: pointer; font-size: 14px; }\n.btn { padding: 12px 24px; border: none; border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; margin-right: 12px; display: inline-flex; align-items: center; gap: 6px; text-decoration: none; font-family: inherit; }\n.btn-primary { background: #3498db; color: white; box-shadow: 0 2px 8px rgba(52, 152, 219, 0.3); }\n.btn-primary:hover { background: #2980b9; box-shadow: 0 4px 12px rgba(52, 152, 219, 0.4); }\n.btn-primary:active { transform: translateY(1px); box-shadow: 0 1px 4px rgba(52, 152, 219, 0.3); }\n.btn-secondary { background: #f8f9fa; color: #6c757d; border: 2px solid #e1e8ed; }\n.btn-secondary:hover { background: #e9ecef; border-color: #bdc3c7; color: #495057; }\n.registration-config-group { background: #f8f9fa; border-radius: 12px; padding: 20px; border: 2px solid #e1e8ed; margin-bottom: 20px; position: relative; }\n.registration-config-group::before { content: '👥'; position: absolute; top: -12px; left: 20px; background: white; padding: 0 8px; font-size: 16px; color: #3498db; }\n.registration-config-group .checkbox-group { margin-bottom: 16px; background: white; border: 2px solid #3498db; box-shadow: 0 2px 8px rgba(52, 152, 219, 0.1); }\n.plugin-config-group::before { content: '🧩'; position: absolute; top: -12px; left: 20px; background: white; padding: 0 8px; font-size: 16px; color: #3498db; }\n.whitelist-email-config { margin-left: 30px; padding-left: 20px; border-left: 3px solid #3498db; background: white; border-radius: 8px; padding: 16px 20px; margin-bottom: 0; transition: all 0.3s ease; }\n.whitelist-email-config.show { animation: slideDown 0.3s ease-out; }\n.email-tags-container { border: 2px solid #e1e8ed; border-radius: 8px; padding: 8px; background: white; min-height: 48px; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px; cursor: text; transition: border-color 0.3s ease; }\n.email-tags-container:focus-within { border-color: #3498db; box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1); }\n.email-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }\n.email-tag { background: #3498db; color: white; padding: 4px 8px; border-radius: 16px; font-size: 12px; display: inline-flex; align-items: center; gap: 4px; max-width: 200px; overflow: hidden; }\n.email-tag-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n.email-tag-remove { background: none; border: none; color: white; cursor: pointer; padding: 0; width: 16px; height: 16px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; line-height: 1; transition: background-color 0.2s ease; }\n.email-tag-remove:hover { background: rgba(255, 255, 255, 0.2); }\n.email-input { border: none !important; box-shadow: none !important; padding: 4px 0 !important; margin: 0 !important; flex: 1; min-width: 200px; background: transparent !important; }\n.email-input:focus { outline: none !important; border: none !important; box-shadow: none !important; }\n.help-text { font-size: 12px; color: #9ca3af; margin-top: 6px; font-style: italic; }\n.sandbox-config { display: none; margin-top: 20px; padding: 20px; background: #f8f9fa; border-radius: 8px; border: 2px solid #e1e8ed; position: relative; }\n.sandbox-config::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: #3498db; border-radius: 8px 8px 0 0; }\n.sandbox-config.show { display: block; animation: slideDown 0.3s ease-out; }\n@keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }\n.sandbox-config h4 { margin-bottom: 16px; color: #2c3e50; font-size: 16px; font-weight: 600; display: flex; align-items: center; gap: 8px; }\n.sandbox-config h4::before { content: '🔧'; font-size: 16px; }\n.loading { text-align: center; padding: 40px; color: #6c757d; background: white; border-radius: 12px; margin: 20px 0; box-shadow: 0 2px 10px rgba(0,0,0,0.08); }\n.loading::before { content: '⚙️'; font-size: 32px; display: block; margin-bottom: 12px; animation: spin 2s linear infinite; }\n@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }\n.error { background: #fee2e2; color: #dc2626; padding: 12px 16px; border-radius: 8px; margin-bottom: 20px; border-left: 4px solid #dc2626; font-weight: 500; }\n.success { background: #dcfce7; color: #16a34a; padding: 12px 16px; border-radius: 8px; margin-bottom: 20px; border-left: 4px solid #16a34a; font-weight: 500; }\n.action-buttons { margin-top: 30px; padding-top: 24px; border-top: 2px solid #f1f3f4; text-align: center; }\n`;\n\n        function ensureConfigStylesInjected() {\n            const existingStyle = document.querySelector('style[data-config-page=\"true\"]');\n            if (existingStyle) return;\n            const style = document.createElement('style');\n            style.setAttribute('data-config-page', 'true');\n            style.textContent = CONFIG_PAGE_CSS;\n            document.head.appendChild(style);\n        }\n\n        // 基础配置页静态 DOM\n        function getBasicConfigMarkup() {\n            return `\n<div class=\"page-content\">\n\n  <div id=\"loadingMessage\" class=\"loading\" style=\"display:none;\">${t('basic.loading')}</div>\n  <div id=\"errorMessage\" class=\"error\" style=\"display:none;\"></div>\n  <div id=\"successMessage\" class=\"success\" style=\"display:none;\"></div>\n\n  <form id=\"configForm\" style=\"display:none;\">\n    <div class=\"config-section\">\n      <div class=\"form-group\">\n        <label class=\"form-label\">${t('basic.label.admin_emails')}</label>\n        <div class=\"email-tags-container\" id=\"emailTagsContainer\">\n          <div class=\"email-tags\" id=\"emailTags\"></div>\n          <input type=\"text\" id=\"adminEmails\" class=\"form-input email-input\" placeholder=\"${t('basic.placeholder.email_input')}\" />\n        </div>\n      </div>\n\n      <div class=\"registration-config-group plugin-config-group\">\n        <div class=\"form-group\">\n          <label class=\"form-label\">Coze API Token</label>\n          <input type=\"password\" id=\"cozeApiToken\" class=\"form-input\" placeholder=\"${t('basic.placeholder.coze_api_token')}\">\n          <div style=\"margin-top:8px;font-size:12px;\">\n            <a href=\"https://www.coze.cn/open/oauth/pats\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color:#2980b9;text-decoration:none;\">${t('basic.help.coze_api_token_apply')}</a>\n          </div>\n        </div>\n\n        <div class=\"form-group\">\n          <div class=\"checkbox-group\">\n            <input type=\"checkbox\" id=\"cozeSaasPluginEnabled\" class=\"checkbox-input\" />\n            <label for=\"cozeSaasPluginEnabled\">${t('basic.label.enable_coze_saas')}</label>\n          </div>\n        </div>\n        <div class=\"form-group\">\n          <label class=\"form-label\">Coze SaaS API Base URL</label>\n          <input type=\"text\" id=\"cozeSaasApiBaseUrl\" class=\"form-input\" placeholder=\"https://api.coze.cn\" />\n        </div>\n      </div>\n\n      <div class=\"registration-config-group\">\n        <div class=\"checkbox-group\">\n          <input type=\"checkbox\" id=\"disableUserRegistration\" class=\"checkbox-input\" />\n          <label for=\"disableUserRegistration\">${t('basic.label.disable_user_registration')}</label>\n        </div>\n\n        <div id=\"whitelistEmailGroup\" class=\"form-group whitelist-email-config\" style=\"display:none;\">\n          <label class=\"form-label\">${t('basic.label.whitelist_emails')}</label>\n          <div class=\"email-tags-container\" id=\"whitelistEmailTagsContainer\">\n            <div class=\"email-tags\" id=\"whitelistEmailTags\"></div>\n            <input type=\"text\" id=\"allowRegistrationEmail\" class=\"form-input email-input\" placeholder=\"${t('basic.placeholder.email_input')}\" />\n          </div>\n          <div class=\"help-text\">${t('basic.help.whitelist')}</div>\n        </div>\n      </div>\n\n      <div class=\"form-group\">\n        <label class=\"form-label\">${t('basic.label.python_env')}</label>\n        <div class=\"radio-group\">\n          <div class=\"radio-item\"><input type=\"radio\" id=\"codeRunnerLocal\" name=\"codeRunnerType\" value=\"0\" class=\"radio-input\" /><label for=\"codeRunnerLocal\">Local</label></div>\n          <div class=\"radio-item\"><input type=\"radio\" id=\"codeRunnerSandbox\" name=\"codeRunnerType\" value=\"1\" class=\"radio-input\" /><label for=\"codeRunnerSandbox\">Sandbox</label></div>\n        </div>\n        <div class=\"help-text\">${t('basic.help.local_risk')}</div>\n      </div>\n\n      <div id=\"sandboxConfig\" class=\"sandbox-config\">\n        <h4 style=\"margin-bottom: 15px; color: #2c3e50;\">${t('basic.sandbox.title')}</h4>\n        <div class=\"form-group\">\n          <label class=\"form-label\">${t('basic.label.allow_env')}</label>\n          <input type=\"text\" id=\"allowEnv\" class=\"form-input\" placeholder=\"PATH,USERNAME\">\n        </div>\n        <div class=\"form-group\">\n          <label class=\"form-label\">${t('basic.label.allow_read')}</label>\n          <input type=\"text\" id=\"allowRead\" class=\"form-input\" placeholder=\"/tmp,./data\">\n        </div>\n        <div class=\"form-group\">\n          <label class=\"form-label\">${t('basic.label.allow_write')}</label>\n          <input type=\"text\" id=\"allowWrite\" class=\"form-input\" placeholder=\"/tmp,./data\">\n        </div>\n        <div class=\"form-group\">\n          <label class=\"form-label\">${t('basic.label.allow_run')}</label>\n          <input type=\"text\" id=\"allowRun\" class=\"form-input\" placeholder=\"python,git\">\n        </div>\n        <div class=\"form-group\">\n          <label class=\"form-label\">${t('basic.label.allow_net')}</label>\n          <input type=\"text\" id=\"allowNet\" class=\"form-input\" placeholder=\"cdn.jsdelivr.net\">\n        </div>\n        <div class=\"form-group\">\n          <label class=\"form-label\">${t('basic.label.allow_ffi')}</label>\n          <input type=\"text\" id=\"allowFfi\" class=\"form-input\" placeholder=\"/usr/lib/libm.so\">\n        </div>\n        <div class=\"form-group\">\n          <label class=\"form-label\">${t('basic.label.node_modules_dir')}</label>\n          <input type=\"text\" id=\"nodeModulesDir\" class=\"form-input\" placeholder=\"/tmp/path/node_modules\">\n        </div>\n        <div class=\"form-row\">\n          <div class=\"form-group\">\n            <label class=\"form-label\">${t('basic.label.timeout_seconds')}</label>\n            <input type=\"number\" id=\"timeoutSeconds\" class=\"form-input\" placeholder=\"60\" min=\"1\" max=\"3600\">\n          </div>\n          <div class=\"form-group\">\n            <label class=\"form-label\">${t('basic.label.memory_limit_mb')}</label>\n            <input type=\"number\" id=\"memoryLimitMb\" class=\"form-input\" placeholder=\"100\" min=\"1\" max=\"10240\">\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"config-section\">\n      <h3 class=\"section-title\"><span class=\"section-icon\">🌐</span>${t('server.title')}</h3>\n      <div class=\"form-group\">\n        <label class=\"form-label\">${t('server.host.label')}</label>\n        <input type=\"text\" id=\"serverHost\" class=\"form-input\" placeholder=\"localhost:8888\" />\n        <div class=\"help-text\">${t('server.host.help')}</div>\n      </div>\n    </div>\n\n    <div class=\"action-buttons\">\n      <button type=\"button\" class=\"btn btn-primary\" onclick=\"saveConfig()\">💾 ${t('btn.save')}</button>\n      <button type=\"button\" class=\"btn btn-secondary\" onclick=\"loadConfig()\">🔄 ${t('btn.reload')}</button>\n    </div>\n  </form>\n</div>`;\n        }\n\n        // -------------------- 基础配置页脚本（避免与全局命名冲突） --------------------\n        let currentConfig = {};\n        let emailTags = [];\n        let whitelistEmailTags = [];\n\n        function getConfigTagsArray(containerId) {\n            if (containerId === 'emailTags') return emailTags;\n            if (containerId === 'whitelistEmailTags') return whitelistEmailTags;\n            return [];\n        }\n\n        function initConfigEmailTags() {\n            initConfigEmailTagsForInput('adminEmails', 'emailTags', 'emailTags');\n            initConfigEmailTagsForInput('allowRegistrationEmail', 'whitelistEmailTags', 'whitelistEmailTags');\n        }\n\n        function isValidEmail(email) {\n            const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n            return emailRegex.test(email);\n        }\n\n        function initConfigEmailTagsForInput(inputId, containerId, type) {\n            const inputEl = document.getElementById(inputId);\n            const container = document.getElementById(containerId);\n            if (!inputEl || !container) return;\n\n            const handleAdd = () => {\n                const value = inputEl.value.trim();\n                if (value) {\n                    addConfigEmailTagForInput(type, value);\n                    inputEl.value = '';\n                }\n            };\n\n            inputEl.addEventListener('keydown', function (e) {\n                if (e.key === 'Enter' || e.key === ',') {\n                    e.preventDefault();\n                    handleAdd();\n                } else if (e.key === 'Backspace' && !inputEl.value) {\n                    const tags = getConfigTagsArray(containerId);\n                    tags.pop();\n                    renderConfigEmailTagsForInput(containerId, tags);\n                }\n            });\n\n            inputEl.addEventListener('blur', handleAdd);\n        }\n\n        function addConfigEmailTagForInput(type, value) {\n            const containerId = type === 'emailTags' ? 'emailTags' : 'whitelistEmailTags';\n            const tags = getConfigTagsArray(containerId);\n\n            if (!isValidEmail(value)) {\n                showError('请输入有效的邮箱地址');\n                return;\n            }\n\n            if (tags.includes(value)) {\n                showError('该邮箱已存在');\n                return;\n            }\n\n            tags.push(value);\n            renderConfigEmailTagsForInput(containerId, tags);\n        }\n\n        function removeConfigEmailTagForInput(type, index) {\n            const containerId = type === 'emailTags' ? 'emailTags' : 'whitelistEmailTags';\n            const tags = getConfigTagsArray(containerId);\n            tags.splice(index, 1);\n            renderConfigEmailTagsForInput(containerId, tags);\n        }\n\n        function renderConfigEmailTagsForInput(containerId, tags) {\n            const container = document.getElementById(containerId);\n            if (!container) return;\n            container.innerHTML = '';\n            tags.forEach((tag, index) => {\n                const tagElement = document.createElement('span');\n                tagElement.className = 'email-tag';\n                tagElement.innerHTML = `\n                    <span class=\"email-tag-text\" title=\"${tag}\">${tag}</span>\n                    <button class=\"email-tag-remove\" onclick=\"removeConfigEmailTagForInput('${containerId === 'emailTags' ? 'emailTags' : 'whitelistEmailTags'}', ${index})\">×</button>\n                `;\n                container.appendChild(tagElement);\n            });\n        }\n\n        function setEmailTags(emails) {\n            const inputEmails = Array.isArray(emails) ? emails : (emails || '').split(/[,\\s]+/).filter(Boolean);\n            const nowEmails = emailTags || [];\n            const allEmails = Array.from(new Set([...(nowEmails || []), ...(inputEmails || [])]));\n            emailTags = allEmails;\n            renderConfigEmailTagsForInput('emailTags', emailTags);\n        }\n\n        function getEmailTags() {\n            return (emailTags || []).join(',');\n        }\n\n        function setWhitelistEmailTags(emails) {\n            const inputEmails = Array.isArray(emails) ? emails : (emails || '').split(/[,\\s]+/).filter(Boolean);\n            const nowEmails = whitelistEmailTags || [];\n            const allEmails = Array.from(new Set([...(nowEmails || []), ...(inputEmails || [])]));\n            whitelistEmailTags = allEmails;\n            renderConfigEmailTagsForInput('whitelistEmailTags', whitelistEmailTags);\n        }\n\n        function getWhitelistEmailTags() {\n            return (whitelistEmailTags || []).join(',');\n        }\n\n        function setupConfigEventListeners() {\n            const disableEl = document.getElementById('disableUserRegistration');\n            const whitelistGroup = document.getElementById('whitelistEmailGroup');\n            if (disableEl && whitelistGroup) {\n                disableEl.addEventListener('change', function () {\n                    toggleConfigWhitelistEmailConfig(disableEl.checked);\n                });\n            }\n\n            const localEl = document.getElementById('codeRunnerLocal');\n            const sandboxEl = document.getElementById('codeRunnerSandbox');\n            if (localEl && sandboxEl) {\n                const updateSandbox = () => toggleConfigSandboxConfig(sandboxEl.checked);\n                localEl.addEventListener('change', updateSandbox);\n                sandboxEl.addEventListener('change', updateSandbox);\n            }\n        }\n\n        function toggleConfigWhitelistEmailConfig(show) {\n            const el = document.getElementById('whitelistEmailGroup');\n            if (!el) return;\n            el.style.display = show ? 'block' : 'none';\n            if (show) el.classList.add('show'); else el.classList.remove('show');\n        }\n\n        function toggleConfigSandboxConfig(show) {\n            const el = document.getElementById('sandboxConfig');\n            if (!el) return;\n            el.style.display = show ? 'block' : 'none';\n            if (show) el.classList.add('show'); else el.classList.remove('show');\n        }\n\n        function loadConfig() {\n            showConfigLoading(true);\n            hideMessages();\n            fetch('/api/admin/config/basic/get')\n                .then(response => response.json())\n                .then(data => {\n                    if (handleApiCode(data)) {\n                        showConfigLoading(false);\n                        return;\n                    }\n                    if (!data || !data.configuration) {\n                        showError(t('error.load_failed_empty'));\n                        // 在无后端或接口异常时也展示表单，便于手动配置\n                        populateForm({});\n                        showConfigForm(true);\n                        showConfigLoading(false);\n                        return;\n                    }\n                    currentConfig = data.configuration || {};\n                    populateForm(currentConfig);\n                    showConfigForm(true);\n                    showConfigLoading(false);\n                })\n                .catch(err => {\n                    console.error('Failed to load configuration:', err);\n                    showError(t('error.load_failed_json'));\n                    // 无后端时展示空表单以便继续操作\n                    populateForm({});\n                    showConfigForm(true);\n                    showConfigLoading(false);\n                });\n        }\n\n        function populateForm(cfg) {\n            document.getElementById('serverHost').value = cfg.server_host || '';\n\n            // 管理员邮箱\n            setEmailTags(cfg.admin_emails || '');\n\n            // 插件配置：Coze API Token + SaaS 相关\n            const pluginCfg = cfg.plugin_configuration || {};\n            const cozeEl = document.getElementById('cozeApiToken');\n            if (cozeEl) cozeEl.value = pluginCfg.coze_api_token || cfg.coze_api_token || '';\n            const saasEnabledEl = document.getElementById('cozeSaasPluginEnabled');\n            if (saasEnabledEl) saasEnabledEl.checked = (pluginCfg.coze_saas_plugin_enabled === true || pluginCfg.coze_saas_plugin_enabled === 'true');\n            const saasBaseUrlEl = document.getElementById('cozeSaasApiBaseUrl');\n            if (saasBaseUrlEl) saasBaseUrlEl.value = pluginCfg.coze_saas_api_base_url || 'https://api.coze.cn';\n\n            // 禁止用户注册与白名单\n            const disableReg = cfg.disable_user_registration === true || cfg.disable_user_registration === 'true';\n            const disableEl = document.getElementById('disableUserRegistration');\n            if (disableEl) disableEl.checked = disableReg;\n            toggleConfigWhitelistEmailConfig(disableReg);\n            setWhitelistEmailTags(cfg.allow_registration_email || '');\n\n            // 代码运行环境\n            const crt = Number(cfg.code_runner_type || 0);\n            const localEl = document.getElementById('codeRunnerLocal');\n            const sandboxEl = document.getElementById('codeRunnerSandbox');\n            if (localEl && sandboxEl) {\n                localEl.checked = crt !== 1;\n                sandboxEl.checked = crt === 1;\n            }\n            toggleConfigSandboxConfig(crt === 1);\n\n            // Sandbox 配置\n            const s = cfg.sandbox_config || {};\n            if (document.getElementById('allowEnv')) document.getElementById('allowEnv').value = s.allow_env || '';\n            if (document.getElementById('allowRead')) document.getElementById('allowRead').value = s.allow_read || '';\n            if (document.getElementById('allowWrite')) document.getElementById('allowWrite').value = s.allow_write || '';\n            if (document.getElementById('allowRun')) document.getElementById('allowRun').value = s.allow_run || '';\n            if (document.getElementById('allowNet')) document.getElementById('allowNet').value = s.allow_net || 'cdn.jsdelivr.net';\n            if (document.getElementById('allowFfi')) document.getElementById('allowFfi').value = s.allow_ffi || '';\n            if (document.getElementById('nodeModulesDir')) document.getElementById('nodeModulesDir').value = s.node_modules_dir || '';\n            if (document.getElementById('timeoutSeconds')) document.getElementById('timeoutSeconds').value = s.timeout_seconds || '';\n            if (document.getElementById('memoryLimitMb')) document.getElementById('memoryLimitMb').value = s.memory_limit_mb || '';\n        }\n\n        function collectFormData() {\n            const serverHost = document.getElementById('serverHost').value.trim();\n            const adminEmails = getEmailTags();\n            const allowedEmails = getWhitelistEmailTags();\n            const disableReg = document.getElementById('disableUserRegistration').checked;\n            const codeRunnerType = document.getElementById('codeRunnerSandbox').checked ? 1 : 0;\n            const cozeApiToken = (document.getElementById('cozeApiToken')?.value || '').trim();\n            const cozeSaasPluginEnabled = !!(document.getElementById('cozeSaasPluginEnabled')?.checked);\n            const cozeSaasApiBaseUrlRaw = (document.getElementById('cozeSaasApiBaseUrl')?.value || '');\n            const cozeSaasApiBaseUrl = (cozeSaasApiBaseUrlRaw ? cozeSaasApiBaseUrlRaw : 'https://api.coze.cn').replace(/`/g, '').trim();\n\n            const sAllowEnv = (document.getElementById('allowEnv')?.value || '').trim();\n            const sAllowRead = (document.getElementById('allowRead')?.value || '').trim();\n            const sAllowWrite = (document.getElementById('allowWrite')?.value || '').trim();\n            const sAllowRun = (document.getElementById('allowRun')?.value || '').trim();\n            const sAllowNet = (document.getElementById('allowNet')?.value || '').trim();\n            const sAllowFfi = (document.getElementById('allowFfi')?.value || '').trim();\n            const sNodeModulesDir = (document.getElementById('nodeModulesDir')?.value || '').trim();\n            const sTimeoutSeconds = document.getElementById('timeoutSeconds')?.value;\n            const sMemoryLimitMb = document.getElementById('memoryLimitMb')?.value;\n\n            const configuration = {\n                admin_emails: adminEmails,\n                disable_user_registration: disableReg,\n                allow_registration_email: allowedEmails,\n                code_runner_type: codeRunnerType,\n                server_host: serverHost,\n                plugin_configuration: {\n                    coze_saas_plugin_enabled: cozeSaasPluginEnabled,\n                    coze_api_token: cozeApiToken,\n                    coze_saas_api_base_url: cozeSaasApiBaseUrl\n                }\n            };\n\n            if (codeRunnerType === 1) {\n                configuration.sandbox_config = {\n                    allow_env: sAllowEnv,\n                    allow_read: sAllowRead,\n                    allow_write: sAllowWrite,\n                    allow_run: sAllowRun,\n                    allow_net: sAllowNet || 'cdn.jsdelivr.net',\n                    allow_ffi: sAllowFfi,\n                    node_modules_dir: sNodeModulesDir,\n                    timeout_seconds: sTimeoutSeconds ? parseFloat(sTimeoutSeconds) : undefined,\n                    memory_limit_mb: sMemoryLimitMb ? parseInt(sMemoryLimitMb, 10) : undefined\n                };\n            }\n\n            return { configuration };\n        }\n\n        function saveConfig() {\n            const payload = collectFormData();\n            if (!payload.configuration.admin_emails) {\n                showError(t('error.admin_email_required'));\n                return;\n            }\n            if (!payload.configuration.server_host) {\n                showError(t('error.server_host_required'));\n                return;\n            }\n\n            // 验证当前标签中的邮箱格式（最终兜底检查）\n            const invalidAdmin = (emailTags || []).filter(e => e && !isValidEmail(e));\n            const invalidWhitelist = (whitelistEmailTags || []).filter(e => e && !isValidEmail(e));\n            if (invalidAdmin.length > 0) {\n                showError(t('error.invalid_admin_emails', { list: invalidAdmin.join(', ') }));\n                return;\n            }\n            if (invalidWhitelist.length > 0) {\n                showError(t('error.invalid_whitelist_emails', { list: invalidWhitelist.join(', ') }));\n                return;\n            }\n\n            showConfigLoading(true);\n            hideMessages();\n            fetch('/api/admin/config/basic/save', {\n                method: 'POST',\n                headers: { 'Content-Type': 'application/json' },\n                body: JSON.stringify(payload)\n            })\n            .then(response => response.json())\n            .then(data => {\n                if (handleApiCode(data)) {\n                    showConfigLoading(false);\n                    return;\n                }\n                if (data && Number(data.code) === 0) {\n                    showSuccess(t('success.saved'));\n                } else {\n                    const msg = (data && (data.msg || data.message)) ? (data.msg || data.message) : t('error.save_failed');\n                    showError(msg);\n                }\n                showConfigLoading(false);\n            })\n            .catch(err => {\n                console.error(t('knowledge.error.save_failed') + ':', err);\n                showError(t('error.save_failed_json'));\n                showConfigLoading(false);\n            });\n        }\n\n        function showConfigLoading(show) {\n            const el = document.getElementById('loadingMessage');\n            if (el) el.style.display = show ? 'block' : 'none';\n        }\n\n        function showConfigForm(show) {\n            const el = document.getElementById('configForm');\n            if (el) el.style.display = show ? 'block' : 'none';\n        }\n\n        function hideMessages() {\n            const errEl = document.getElementById('errorMessage');\n            const sucEl = document.getElementById('successMessage');\n            if (errEl) errEl.style.display = 'none';\n            if (sucEl) sucEl.style.display = 'none';\n        }\n\n        // 显示工作台内容\n        function showWorkspaceContent() {\n            const now = new Date();\n            const localeFmt = (currentLocale === 'en-US') ? 'en-US' : 'zh-CN';\n            const today = now.toLocaleDateString(localeFmt, {\n                year: 'numeric',\n                month: 'long',\n                day: 'numeric',\n                weekday: 'long'\n            });\n            \n            const hour = now.getHours();\n            let greetingKey = 'workspace.greeting.evening';\n            if (hour < 6) {\n                greetingKey = 'workspace.greeting.late';\n            } else if (hour < 12) {\n                greetingKey = 'workspace.greeting.morning';\n            } else if (hour < 14) {\n                greetingKey = 'workspace.greeting.noon';\n            } else if (hour < 18) {\n                greetingKey = 'workspace.greeting.afternoon';\n            } else {\n                greetingKey = 'workspace.greeting.evening';\n            }\n            const greeting = t(greetingKey);\n            \n            pageContent.innerHTML = `\n                <div style=\"padding: 30px;\">\n                    <div style=\"text-align: center; margin-bottom: 40px;\">\n                        <div style=\"background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 40px; border-radius: 15px; box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);\">\n                            <h1 style=\"margin: 0 0 15px; font-size: 2.5em; font-weight: 300;\">${t('workspace.hero.title')}</h1>\n                            <p style=\"margin: 0 0 20px; font-size: 1.2em; opacity: 0.9;\">${greeting}</p>\n                            <div style=\"background: rgba(255,255,255,0.2); padding: 15px; border-radius: 10px; display: inline-block;\">\n                                <p style=\"margin: 0; font-size: 1.1em; font-weight: 500;\">📅 ${today}</p>\n                            </div>\n                        </div>\n                    </div>\n                    \n                    <div style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 25px;\">\n                        <div style=\"background: white; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); border-left: 5px solid #3498db;\">\n                            <div style=\"display: flex; align-items: center; margin-bottom: 15px;\">\n                                <div style=\"background: #3498db; color: white; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-right: 15px; font-size: 18px;\">🔧</div>\n                                <h3 style=\"margin: 0; color: #2c3e50;\">${t('workspace.card.basic.title')}</h3>\n                            </div>\n                            <p style=\"color: #7f8c8d; margin-bottom: 15px; line-height: 1.6;\">${t('workspace.card.basic.desc')}</p>\n                            <button onclick=\"loadPageContent('basic-config')\" style=\"background: #3498db; color: white; border: none; padding: 10px 20px; border-radius: 6px; cursor: pointer; font-size: 14px; transition: all 0.3s;\">${t('workspace.card.basic.cta')}</button>\n                        </div>\n                        \n                        <div style=\"background: white; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); border-left: 5px solid #2ecc71;\">\n                            <div style=\"display: flex; align-items: center; margin-bottom: 15px;\">\n                                <div style=\"background: #2ecc71; color: white; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-right: 15px; font-size: 18px;\">🤖</div>\n                                <h3 style=\"margin: 0; color: #2c3e50;\">${t('workspace.card.model.title')}</h3>\n                            </div>\n                            <p style=\"color: #7f8c8d; margin-bottom: 15px; line-height: 1.6;\">${t('workspace.card.model.desc')}</p>\n                            <button onclick=\"loadPageContent('model-management')\" style=\"background: #2ecc71; color: white; border: none; padding: 10px 20px; border-radius: 6px; cursor: pointer; font-size: 14px; transition: all 0.3s;\">${t('workspace.card.model.cta')}</button>\n                        </div>\n                        \n                        <div style=\"background: white; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); border-left: 5px solid #f39c12;\">\n                            <div style=\"display: flex; align-items: center; margin-bottom: 15px;\">\n                                <div style=\"background: #f39c12; color: white; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-right: 15px; font-size: 18px;\">📚</div>\n                                <h3 style=\"margin: 0; color: #2c3e50;\">${t('workspace.card.knowledge.title')}</h3>\n                            </div>\n                            <p style=\"color: #7f8c8d; margin-bottom: 15px; line-height: 1.6;\">${t('workspace.card.knowledge.desc')}</p>\n                            <button onclick=\"loadPageContent('knowledge-config')\" style=\"background: #f39c12; color: white; border: none; padding: 10px 20px; border-radius: 6px; cursor: pointer; font-size: 14px; transition: all 0.3s;\">${t('workspace.card.knowledge.cta')}</button>\n                        </div>\n                    </div>\n                    \n                    <div style=\"margin-top: 30px; text-align: center; color: #95a5a6; font-size: 14px;\">\n                        <p>🚀 ${t('workspace.footer.cta')}</p>\n                    </div>\n                </div>\n            `;\n        }\n\n        // 模型管理页面：加载与渲染\n        async function loadModelManagementPage() {\n            try {\n                showLoading();\n                const currentHost = window.location.origin;\n                const apiUrl = `${currentHost}/api/admin/config/model/list`;\n                const response = await fetch(apiUrl, { method: 'GET', headers: { 'Accept': 'application/json' } });\n                if (!response.ok) {\n                    throw new Error(`HTTP ${response.status} ${response.statusText}`);\n                }\n                const data = await response.json();\n                if (handleApiCode(data)) {\n                    return;\n                }\n                renderModelManagement(data);\n            } catch (error) {\n                console.error(t('model.error.load_list_failed'), error);\n                showError(t('model.error.load_list_failed') + ': ' + error.message);\n            }\n        }\n\n        function sanitizeUrl(url) {\n            if (!url) return '';\n            return String(url).replace(/`/g, '').trim();\n        }\n\n        function maskApiKey(key) {\n            if (!key) return t('common.not_configured');\n            const s = String(key);\n            if (s.length <= 10) return '***';\n            return s.slice(0, 6) + '***' + s.slice(-4);\n        }\n\n        function getThinkingTypeText(thinkingTypeValue) {\n            const thinkingType = Number(thinkingTypeValue);\n            switch (thinkingType) {\n                case 0: return t('model.thinking_type.default');\n                case 1: return t('model.thinking_type.enable');\n                case 2: return t('model.thinking_type.disable');\n                case 3: return t('model.thinking_type.auto');\n                default: return '-';\n            }\n        }\n\n        function renderModelManagement(payload) {\n            try {\n                const providers = Array.isArray(payload?.provider_model_list) ? payload.provider_model_list : [];\n                const html = `\n                    <div style=\"padding: 30px;\">\n                        <div style=\"display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;\">\n                            <div>\n                                <h2 style=\"color:#2c3e50;margin:0 0 8px;\">${t('model.list.title')}</h2>\n                            </div>\n                            <div style=\"font-size:12px;color:#95a5a6;\">${t('model.provider.count', { count: providers.length })}</div>\n                        </div>\n\n                        <!-- 添加模型弹窗 -->\n                        <div id=\"addModelModal\" style=\"position:fixed;inset:0;background:rgba(0,0,0,0.35);display:none;align-items:center;justify-content:center;z-index:9999;\">\n                            <div style=\"background:#fff;width:480px;max-width:90vw;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,0.2);overflow:hidden;\">\n                                <div style=\"padding:16px 20px;border-bottom:1px solid #f1f3f4;display:flex;justify-content:space-between;align-items:center;\">\n                                    <div style=\"font-weight:600;color:#2c3e50;\">${t('model.modal.add.title')}</div>\n                                    <button onclick=\"closeAddModelModal()\" style=\"background:transparent;border:none;font-size:20px;color:#6c757d;cursor:pointer;\">×</button>\n                                </div>\n                                <div style=\"padding:20px;display:flex;flex-direction:column;gap:12px;\">\n                                    <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:4px;\">\n                                        <img id=\"modalProviderIcon\" src=\"\" alt=\"\" style=\"width:24px;height:24px;border-radius:6px;object-fit:cover;display:none;\">\n                                        <div id=\"modalProviderName\" style=\"font-size:12px;color:#6c757d;\"></div>\n                                    </div>\n                                    <label style=\"font-size:12px;color:#374151;\">${t('model.modal.display_name.label')}<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></label>\n                                    <input id=\"newModelDisplayName\" type=\"text\" style=\"padding:8px;border:1px solid #e1e8ed;border-radius:8px;width:100%;\" placeholder=\"${t('model.modal.display_name.placeholder')}\">\n                                    <label style=\"font-size:12px;color:#374151;\">${t('model.modal.model.label')}<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></label>\n                                    <input id=\"newModelModel\" type=\"text\" style=\"padding:8px;border:1px solid #e1e8ed;border-radius:8px;width:100%;\" placeholder=\"${t('model.modal.model.placeholder')}\">\n                                    <label id=\"newModelApiKeyLabel\" style=\"font-size:12px;color:#374151;\">${t('model.modal.api_key.label')}<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></label>\n                                    <input id=\"newModelApiKey\" type=\"text\" style=\"padding:8px;border:1px solid #e1e8ed;border-radius:8px;width:100%;\" placeholder=\"${t('model.modal.api_key.placeholder')}\">\n                                    <label style=\"font-size:12px;color:#374151;\">${t('model.modal.base_url.label')}</label>\n                                    <input id=\"newModelBaseUrl\" type=\"text\" style=\"padding:8px;border:1px solid #e1e8ed;border-radius:8px;width:100%;\" placeholder=\"${t('model.modal.base_url.placeholder')}\">\n                                    <label style=\"font-size:12px;color:#374151;\">${t('model.modal.enable_base64_url.label')}</label>\n                                    <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:4px;\">\n                                        <input id=\"newModelEnableBase64Url\" type=\"checkbox\">\n                                        <span style=\"font-size:12px;color:#6c757d;\">${t('model.modal.enable_base64_url.help')}</span>\n                                    </div>\n                                    <label id=\"newModelArkRegionLabel\" style=\"font-size:12px;color:#374151;display:none;\">${t('model.modal.ark_region.label')}</label>\n                                    <input id=\"newModelArkRegion\" type=\"text\" style=\"padding:8px;border:1px solid #e1e8ed;border-radius:8px;width:100%;display:none;\" placeholder=\"${t('model.modal.ark_region.placeholder')}\">\n                                    <label id=\"newModelOpenAIByAzureLabel\" style=\"font-size:12px;color:#374151;display:none;\">${t('model.modal.azure.label')}</label>\n                                    <div id=\"newModelOpenAIByAzureWrapper\" style=\"display:none;align-items:center;gap:8px;margin-bottom:4px;\">\n                                        <input id=\"newModelOpenAIByAzure\" type=\"checkbox\">\n                                        <span style=\"font-size:12px;color:#6c757d;\">${t('model.modal.azure.help')}</span>\n                                    </div>\n                                    <label id=\"newModelOpenAIApiVersionLabel\" style=\"font-size:12px;color:#374151;display:none;\">${t('model.modal.openai_api_version.label')}</label>\n                                     <input id=\"newModelOpenAIApiVersion\" type=\"text\" style=\"padding:8px;border:1px solid #e1e8ed;border-radius:8px;width:100%;display:none;\" placeholder=\"${t('model.modal.openai_api_version.placeholder')}\">\n                                     <label id=\"newModelGeminiBackendLabel\" style=\"font-size:12px;color:#374151;display:none;\">${t('model.modal.gemini_backend.label')}</label>\n                                       <select id=\"newModelGeminiBackend\" style=\"padding:8px;border:1px solid #e1e8ed;border-radius:8px;width:100%;display:none;\">\n                                           <option value=\"0\" selected>${t('model.modal.gemini_backend.unspecified')}</option>\n                    <option value=\"1\">${t('model.modal.gemini_backend.gemini_api')}</option>\n                    <option value=\"2\">${t('model.modal.gemini_backend.vertex_ai')}</option>\n                                       </select>\n                                     <label id=\"newModelGeminiProjectLabel\" style=\"font-size:12px;color:#374151;display:none;\">${t('model.modal.gemini_project.label')}</label>\n                                     <input id=\"newModelGeminiProject\" type=\"text\" style=\"padding:8px;border:1px solid #e1e8ed;border-radius:8px;width:100%;display:none;\" placeholder=\"${t('model.modal.gemini_project.placeholder')}\">\n                                     <label id=\"newModelGeminiLocationLabel\" style=\"font-size:12px;color:#374151;display:none;\">${t('model.modal.gemini_location.label')}</label>\n                                     <input id=\"newModelGeminiLocation\" type=\"text\" style=\"padding:8px;border:1px solid #e1e8ed;border-radius:8px;width:100%;display:none;\" placeholder=\"${t('model.modal.gemini_location.placeholder')}\">\n                                     <label id=\"newModelThinkingTypeLabel\" style=\"font-size:12px;color:#374151;display:none;\">${t('model.modal.thinking_type.label')}</label>\n                                     <select id=\"newModelThinkingType\" style=\"padding:8px;border:1px solid #e1e8ed;border-radius:8px;width:100%;display:none;\">\n                                       <option value=\"2\" selected>${t('model.modal.thinking_type.disable')}</option>\n                                       <option value=\"1\">${t('model.modal.thinking_type.enable')}</option>\n                                       <option id=\"thinkingTypeAutoOption\" value=\"3\" style=\"display:none;\">${t('model.modal.thinking_type.auto')}</option>\n                                     </select>\n                                </div>\n                                <div style=\"padding:12px 20px;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #f1f3f4;\">\n                                    <button onclick=\"closeAddModelModal()\" style=\"background:#ecf0f1;color:#2c3e50;border:none;padding:8px 12px;border-radius:6px;cursor:pointer;\">${t('common.cancel')}</button>\n                                    <button id=\"addModelSubmitBtn\" onclick=\"saveNewModel()\" style=\"background:#667eea;color:#fff;border:none;padding:8px 12px;border-radius:6px;cursor:pointer;\">${t('common.save')}</button>\n                                </div>\n                            </div>\n                        </div>\n\n                        <div style=\"display:grid;grid-template-columns:1fr;gap:20px;\">\n                            ${providers.map(pm => {\n                                const p = pm.provider || {};\n                                const name = p.name?.zh_cn || p.name?.en_us || t('model.provider.unnamed');\n                                const desc = p.description?.zh_cn || p.description?.en_us || '';\n                                const icon = p.icon_url || p.icon_uri || '';\n                                const models = Array.isArray(pm.model_list) ? pm.model_list : [];\n                                return `\n                                    <div style=\"background:white;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,0.08);border:1px solid #e1e8ed;overflow:hidden;\">\n                                        <div style=\"display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #f1f3f4;background:#f8f9fa;\">\n                                            <div style=\"display:flex;align-items:center;gap:12px;\">\n                                                <img src=\"${icon}\" alt=\"${name}\" onerror=\"this.style.display='none'\" style=\"width:36px;height:36px;border-radius:8px;object-fit:cover;\">\n                                                <div>\n                                                    <div style=\"font-weight:600;color:#2c3e50;\">${name}</div>\n                                                    <div style=\"color:#6c757d;font-size:12px;\">${desc}</div>\n                                                </div>\n                                            </div>\n                                            <button onclick=\"openAddModelModalWithProvider(this)\" data-provider-name=\"${name}\" data-provider-icon=\"${icon}\" data-provider-class=\"${p.model_class}\" style=\"background:#3498db;color:#fff;border:none;padding:8px 12px;border-radius:6px;font-size:12px;cursor:pointer;\">${t('model.actions.add')}</button>\n                                        </div>\n                                        <div style=\"padding:16px;\">\n                                            <div style=\"color:#7f8c8d;font-size:12px;margin-bottom:12px;\">${t('model.provider.model_count', { count: models.length })}</div>\n                                            ${models.map(m => {\n                                                const di = m.display_info || {};\n                                                const conn = m.connection?.base_conn_info || {};\n                                                const modelName = di.name || conn.model || t('model.unnamed');\n                                                const baseUrl = sanitizeUrl(conn.base_url || '');\n                                                const apiKeyMasked = maskApiKey(conn.api_key || '');\n                                                const outputTokens = di.output_tokens ?? '-';\n                                                const maxTokens = di.max_tokens ?? '-';\n                                                const statusText = m.status === 1 ? t('common.enabled') : t('common.disabled');\n                                                const statusColor = m.status === 1 ? '#2ecc71' : '#e74c3c';\n                                                const modelId = m.id ?? m.model_id ?? '';\n                                                return `\n                                                    <div style=\"border:1px solid #e1e8ed;border-radius:10px;padding:12px;margin-bottom:12px;background:#ffffff;\">\n                                                        <div style=\"display:flex;justify-content:space-between;align-items:center;\">\n                                                            <div style=\"font-weight:500;color:#2c3e50;\">${modelName}</div>\n                                                            <div style=\"display:flex;align-items:center;gap:8px;\">\n                                                                <span style=\"font-size:12px;color:${statusColor};\">${statusText}</span>\n                                                                <button onclick=\"deleteModel('${modelId}')\" style=\"background:#e74c3c;color:#fff;border:none;padding:4px 8px;border-radius:6px;font-size:12px;cursor:pointer;\">${t('common.delete')}</button>\n                                                            </div>\n                                                        </div>\n                                                        <div style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-top:10px;font-size:12px;color:#374151;\">\n                                                            <div>${t('model.field.id')}：${m.id ?? m.model_id ?? '-'}</div>\n                                                            <div>${t('model.field.model')}：${conn.model || '-'}</div>\n                                                            ${p?.model_class === 20 ? '' : `<div>${t('model.field.api_key')}：${apiKeyMasked}</div>`}\n                                                            <div>${t('model.field.base64_url')}：${m.enable_base64_url ? t('common.on') : t('common.off')}</div>\n                                                            ${[2, 3, 11, 15, 20].includes(p?.model_class) ? `<div>${t('model.field.thinking_type')}：${getThinkingTypeText(conn.thinking_type ?? 0)}</div>` : ''}\n                                                            ${p?.model_class === 2 ? `<div>${t('model.field.region')}：${m?.connection?.ark?.region || ''}</div>` : ''}\n                                                            ${p?.model_class === 11 ? `<div>${t('model.field.backend')}：${m?.connection?.gemini?.backend ?? ''}</div><div>${t('model.field.project')}：${m?.connection?.gemini?.project || ''}</div><div>${t('model.field.location')}：${m?.connection?.gemini?.location || ''}</div>` : ''}\n                                                            ${p?.model_class === 1 ? `<div>${t('model.field.azure')}：${(m?.connection?.openai?.by_azure === undefined) ? '' : (m?.connection?.openai?.by_azure ? 'true' : 'false')}</div><div>${t('model.field.api_version')}：${m?.connection?.openai?.api_version || ''}</div>` : ''}\n                                                        </div>\n                                                        <div style=\"margin-top:8px;font-size:12px;color:#374151;word-break:break-all;\">\n                                                            ${t('model.field.endpoint')}：<span style=\"color:#3498db;\">${baseUrl || '-'}</span>\n                                                        </div>\n                                                    </div>\n                                                `;\n                                            }).join('')}\n                                        </div>\n                                    </div>\n                                `;\n                            }).join('')}\n                        </div>\n                    </div>\n                `;\n                pageContent.innerHTML = html;\n            } catch (e) {\n                console.error(t('model.error.render_page_failed'), e);\n                showError(t('model.error.render_page_failed') + ': ' + e.message);\n            }\n        }\n\n        async function deleteModel(id) {\n             try {\n                 if (!id) {\n                     showError(t('model.error.delete_missing_id'));\n                     return;\n                 }\n                 const confirmed = window.confirm(t('model.confirm.delete'));\n                 if (!confirmed) {\n                     return; // 用户取消\n                 }\n                 const resp = await fetch('/api/admin/config/model/delete', {\n                     method: 'POST',\n                     headers: { 'Content-Type': 'application/json' },\n                     body: JSON.stringify({ id: String(id) })\n                 });\n                 if (!resp.ok) {\n                     throw new Error(`HTTP ${resp.status} ${resp.statusText}`);\n                 }\n                 let data;\n                 try {\n                    data = await resp.json();\n                } catch (err) {\n                    showError(t('model.error.delete_invalid_json'));\n                    return;\n                }\n                if (handleApiCode(data)) {\n                    return;\n                }\n                if (data?.code !== 0) {\n                     showError(t('model.error.delete_failed') + ': ' + (data?.msg || t('common.unknown_error')));\n                     return;\n                 }\n                 // 刷新模型列表\n                 await loadModelManagementPage();\n             } catch (error) {\n                 showError(t('model.error.delete_failed') + ': ' + error.message);\n             }\n         }\n \n         function openAddModelModalWithProvider(btn) {\n              const modal = document.getElementById('addModelModal');\n              if (!modal) { showError(t('model.error.open_modal_failed')); return; }\n              const nameEl = document.getElementById('modalProviderName');\n              const iconEl = document.getElementById('modalProviderIcon');\n              const providerName = btn?.dataset?.providerName || t('model.provider.unknown');\n              const providerIcon = btn?.dataset?.providerIcon || '';\n              const providerClassStr = btn?.dataset?.providerClass;\n              const providerClass = providerClassStr ? Number(providerClassStr) : undefined;\n              window.__selectedProvider = { name: providerName, icon: providerIcon, model_class: providerClass };\n              if (nameEl) nameEl.textContent = providerName;\n              if (iconEl) {\n                  if (providerIcon) {\n                      iconEl.src = providerIcon; iconEl.alt = providerName; iconEl.style.display = 'block';\n                  } else {\n                      iconEl.src = ''; iconEl.style.display = 'none';\n                  }\n              }\n              // 根据 provider 隐藏或显示 API Key 字段（Ollama 不需要）\n              const apiLabel = document.getElementById('newModelApiKeyLabel');\n              const apiInput = document.getElementById('newModelApiKey');\n              const isOllama = providerClass === 20; // developer_api.ModelClass_Llama\n              if (apiLabel) apiLabel.style.display = isOllama ? 'none' : '';\n              if (apiInput) apiInput.style.display = isOllama ? 'none' : '';\n              // 根据 provider 显示 Ark 的 Region 字段（仅 Doubao/Ark，class=2）\n              const arkLabel = document.getElementById('newModelArkRegionLabel');\n              const arkInput = document.getElementById('newModelArkRegion');\n              const isArk = providerClass === 2;\n              if (arkLabel) arkLabel.style.display = isArk ? '' : 'none';\n              if (arkInput) arkInput.style.display = isArk ? '' : 'none';\n              // 根据 provider 显示 OpenAI 的 Azure 与 API Version 字段（仅 OpenAI，class=1）\n              const openaiByAzureLabel = document.getElementById('newModelOpenAIByAzureLabel');\n              const openaiByAzureWrapper = document.getElementById('newModelOpenAIByAzureWrapper');\n              const openaiApiVersionLabel = document.getElementById('newModelOpenAIApiVersionLabel');\n              const openaiApiVersionInput = document.getElementById('newModelOpenAIApiVersion');\n              const isOpenAI = providerClass === 1;\n              if (openaiByAzureLabel) openaiByAzureLabel.style.display = isOpenAI ? '' : 'none';\n              if (openaiByAzureWrapper) openaiByAzureWrapper.style.display = isOpenAI ? 'flex' : 'none';\n              if (openaiApiVersionLabel) openaiApiVersionLabel.style.display = isOpenAI ? '' : 'none';\n              if (openaiApiVersionInput) openaiApiVersionInput.style.display = isOpenAI ? '' : 'none';\n              // 根据 provider 显示 Gemini 的后端、项目、位置（仅 Gemini，class=11）\n              const geminiBackendLabel = document.getElementById('newModelGeminiBackendLabel');\n              const geminiBackendInput = document.getElementById('newModelGeminiBackend');\n              const geminiProjectLabel = document.getElementById('newModelGeminiProjectLabel');\n              const geminiProjectInput = document.getElementById('newModelGeminiProject');\n              const geminiLocationLabel = document.getElementById('newModelGeminiLocationLabel');\n              const geminiLocationInput = document.getElementById('newModelGeminiLocation');\n              const isGemini = providerClass === 11;\n              if (geminiBackendLabel) geminiBackendLabel.style.display = isGemini ? '' : 'none';\n              if (geminiBackendInput) geminiBackendInput.style.display = isGemini ? '' : 'none';\n              if (geminiProjectLabel) geminiProjectLabel.style.display = isGemini ? '' : 'none';\n              if (geminiProjectInput) geminiProjectInput.style.display = isGemini ? '' : 'none';\n              if (geminiLocationLabel) geminiLocationLabel.style.display = isGemini ? '' : 'none';\n              if (geminiLocationInput) geminiLocationInput.style.display = isGemini ? '' : 'none';\n              \n              // Show/hide ThinkingType dropdown\n              const thinkingTypeLabel = document.getElementById('newModelThinkingTypeLabel');\n              const thinkingTypeSelect = document.getElementById('newModelThinkingType');\n              const thinkingTypeAutoOption = document.getElementById('thinkingTypeAutoOption');\n              const hasThinkingType = [2, 3, 11, 15, 20].includes(providerClass); // Ark, Claude, Gemini, Qwen, Ollama\n              const isArkProvider = providerClass === 2;\n              if (thinkingTypeLabel) thinkingTypeLabel.style.display = hasThinkingType ? '' : 'none';\n              if (thinkingTypeSelect) {\n                  thinkingTypeSelect.style.display = hasThinkingType ? '' : 'none';\n                  thinkingTypeSelect.value = '2'; // Reset to Disable\n              }\n              if (thinkingTypeAutoOption) thinkingTypeAutoOption.style.display = isArkProvider ? '' : 'none';\n              \n              modal.style.display = 'flex';\n          }\n          function closeAddModelModal() {\n              const modal = document.getElementById('addModelModal');\n              if (modal) modal.style.display = 'none';\n          }\n          async function saveNewModel() {\n              const name = document.getElementById('newModelDisplayName')?.value?.trim() || '';\n              const model = document.getElementById('newModelModel')?.value?.trim() || '';\n              const apiKey = document.getElementById('newModelApiKey')?.value?.trim() || '';\n              const baseUrl = document.getElementById('newModelBaseUrl')?.value?.trim() || '';\n              // 允许 Base URL 为空；仅对必填项做校验，并在保存期间禁用按钮与显示提示\n              const submitBtn = document.getElementById('addModelSubmitBtn');\n              const restoreSavingState = () => {\n                  if (submitBtn) {\n                      submitBtn.disabled = false;\n                      if (submitBtn.dataset.originalText) submitBtn.textContent = submitBtn.dataset.originalText;\n                      submitBtn.style.opacity = '';\n                      submitBtn.style.cursor = 'pointer';\n                  }\n              };\n              if (submitBtn) {\n                  submitBtn.disabled = true;\n                  submitBtn.dataset.originalText = submitBtn.textContent;\n                  submitBtn.textContent = t('common.saving');\n                  submitBtn.style.opacity = '0.7';\n                  submitBtn.style.cursor = 'not-allowed';\n              }\n              const providerClass = window.__selectedProvider?.model_class;\n              if (typeof providerClass !== 'number') {\n                  showError(t('model.error.provider_unrecognized'));\n                  restoreSavingState();\n                  return;\n              }\n              const requireApiKey = providerClass !== 20; // Ollama 不需要 API Key\n              if (!name || !model || (requireApiKey && !apiKey)) {\n                  const missingMsg = requireApiKey ? t('model.error.missing_required_with_api') : t('model.error.missing_required');\n                  showError(missingMsg);\n                  restoreSavingState();\n                  return;\n              }\n              // 构造 payload，Base URL 为空时不传该字段；Ollama 不传 api_key\n              const baseConn = { model: model };\n              if (baseUrl) baseConn.base_url = baseUrl;\n              if (requireApiKey && apiKey) baseConn.api_key = apiKey;\n              \n              // 读取 ThinkingType（仅 Ark, Claude, Gemini, Qwen, Ollama）\n              const thinkingTypeSelect = document.getElementById('newModelThinkingType');\n              const hasThinkingType = [2, 3, 11, 15, 20].includes(providerClass);\n              if (hasThinkingType && thinkingTypeSelect) {\n                  const thinkingTypeValue = parseInt(thinkingTypeSelect.value, 10);\n                  if (!Number.isNaN(thinkingTypeValue)) {\n                      baseConn.thinking_type = thinkingTypeValue;\n                  }\n              }\n              // 读取“启用 Base64 URL”复选框，默认 false\n              const enableBase64UrlEl = document.getElementById('newModelEnableBase64Url');\n              const enableBase64Url = !!(enableBase64UrlEl && enableBase64UrlEl.checked);\n              const arkRegionInput = document.getElementById('newModelArkRegion');\n              const arkRegion = arkRegionInput ? arkRegionInput.value.trim() : '';\n              const connection = { base_conn_info: baseConn };\n              if (providerClass === 2) {\n                  connection.ark = { region: arkRegion };\n              }\n              // 读取 OpenAI 扩展字段（仅 providerClass=1）\n              const openaiByAzureEl = document.getElementById('newModelOpenAIByAzure');\n              const openaiByAzure = !!(openaiByAzureEl && openaiByAzureEl.checked);\n              const openaiApiVersionEl = document.getElementById('newModelOpenAIApiVersion');\n              const openaiApiVersion = openaiApiVersionEl ? openaiApiVersionEl.value.trim() : '';\n              if (providerClass === 1 && (openaiByAzure || openaiApiVersion)) {\n                  const openaiObj = {};\n                  // 如果任一字段有值，则组装 openai 对象；by_azure 始终按当前开关状态传递\n                  openaiObj.by_azure = openaiByAzure;\n                  if (openaiApiVersion) openaiObj.api_version = openaiApiVersion;\n                  connection.openai = openaiObj;\n              }\n              // 读取 Gemini 扩展字段（仅 providerClass=11），按需写入\n              const geminiBackendEl = document.getElementById('newModelGeminiBackend');\n              const geminiProjectEl = document.getElementById('newModelGeminiProject');\n              const geminiLocationEl = document.getElementById('newModelGeminiLocation');\n              const geminiBackendRaw = geminiBackendEl ? geminiBackendEl.value.trim() : '';\n              const hasGeminiBackend = geminiBackendRaw !== '';\n              const geminiBackend = hasGeminiBackend ? parseInt(geminiBackendRaw, 10) : NaN;\n              const geminiProject = geminiProjectEl ? geminiProjectEl.value.trim() : '';\n              const geminiLocation = geminiLocationEl ? geminiLocationEl.value.trim() : '';\n              if (providerClass === 11 && (hasGeminiBackend || geminiProject || geminiLocation)) {\n                  const geminiObj = {};\n                  if (hasGeminiBackend && !Number.isNaN(geminiBackend)) geminiObj.backend = geminiBackend;\n                  if (geminiProject) geminiObj.project = geminiProject;\n                  if (geminiLocation) geminiObj.location = geminiLocation;\n                  connection.gemini = geminiObj;\n              }\n              const payload = {\n                  model_name: name,\n                  model_class: providerClass,\n                  enable_base64_url: enableBase64Url,\n                  connection\n              };\n              try {\n                  const resp = await fetch('/api/admin/config/model/create', {\n                      method: 'POST',\n                      headers: { 'Content-Type': 'application/json' },\n                      body: JSON.stringify(payload)\n                  });\n                  // 不依赖 resp.ok，统一按“JSON 优先，文本兜底”处理\n                  let rawText = '';\n                  try {\n                      rawText = await resp.text();\n                  } catch (e) {\n                      showError(t('model.error.create_read_failed'));\n                      return;\n                  }\n                  let data = null;\n                  try {\n                      data = JSON.parse(rawText);\n                  } catch (e) {\n                      data = null;\n                  }\n                  if (data && typeof data === 'object') {\n                      if (handleApiCode(data)) {\n                          return;\n                      }\n                      const code = Number(data.code);\n                      if (code === 0) {\n                          closeAddModelModal();\n                          showSuccess(t('model.create.success'));\n                          await loadModelManagementPage();\n                          return;\n                      }\n                      showError(t('model.error.create_failed') + ': ' + (data?.msg || `HTTP ${resp.status}`));\n                      return;\n                  } else {\n                      showError(`${t('model.error.create_failed')}: HTTP ${resp.status} ${rawText || ''}`);\n                      return;\n                  }\n              } catch (error) {\n                  showError(t('model.error.create_failed') + ': ' + error.message);\n              } finally {\n                  restoreSavingState();\n              }\n          }\n\n          // 知识库配置页面：加载与渲染（支持本地预览示例数据兜底）\n          async function loadKnowledgeConfigPage() {\n              ensureConfigStylesInjected();\n              try {\n                  showLoading();\n                  const currentHost = window.location.origin;\n                  const apiUrl = `${currentHost}/api/admin/config/knowledge/get`;\n                  const resp = await fetch(apiUrl, { method: 'GET', headers: { 'Accept': 'application/json' } });\n                  if (!resp.ok) {\n                      throw new Error(`HTTP ${resp.status} ${resp.statusText}`);\n                  }\n                  let data;\n                  try {\n                      data = await resp.json();\n                  } catch (err) {\n                      if (isLocalPreview()) {\n                          renderDemo();\n                          return;\n                      }\n                      showError(t('knowledge.error.load_failed_json'));\n                      return;\n                  }\n                  if (handleApiCode(data)) {\n                      return;\n                  }\n                  if (typeof data?.code === 'number' && data.code !== 0) {\n                      if (isLocalPreview()) { renderDemo(); return; }\n                      showError(t('knowledge.error.load_failed_msg', { msg: (data?.msg || t('error.api_error')) }));\n                      return;\n                  }\n                  if (!data?.knowledge_config) {\n                      if (isLocalPreview()) {\n                          renderDemo();\n                          return;\n                      }\n                      showError(t('knowledge.error.load_failed_empty'));\n                      return;\n                  }\n                  renderKnowledgeConfig(data.knowledge_config);\n              } catch (error) {\n                  console.error(t('knowledge.error.load_failed') + ':', error);\n                  if (isLocalPreview()) {\n                      renderDemo();\n                      return;\n                  }\n                  showError(t('knowledge.error.load_failed_reason', { reason: error.message }));\n              }\n\n              function isLocalPreview() {\n                  const host = window.location.hostname;\n                  return host === 'localhost' || host === '127.0.0.1';\n              }\n\n              function renderDemo() {\n                  // 不再注入示例数据，使用空配置进行页面渲染以便本地预览 UI\n                  renderKnowledgeConfig({});\n                  console.info(t('knowledge.log.local_preview_no_demo'));\n              }\n          }\n\n          function formatValue(val) {\n              if (val === undefined || val === null) return '';\n              return String(val);\n          }\n\n          function renderKnowledgeConfig(cfg) {\n              try {\n                  const embedding = cfg?.embedding_config || {};\n                  const rerank = cfg?.rerank_config || {};\n                  const ocr = cfg?.ocr_config || {};\n                  const parser = cfg?.parser_config || {};\n                  const builtinModelId = cfg?.builtin_model_id ?? '';\n\n                  const conn = embedding?.connection || {};\n                  const baseConn = conn?.base_conn_info || {};\n                  const embeddingInfo = conn?.embedding_info || {};\n\n                  const initial = {\n                      embedding_type: embedding?.type ?? '',\n                      embedding_max_batch_size: Number(embedding?.max_batch_size ?? 100),\n                      ark_base_url:  baseConn?.base_url || '',\n                      ark_api_key:  baseConn?.api_key || '',\n                      ark_region: conn?.ark?.region || '',\n                      ark_model: baseConn?.model || '',\n                      ark_embedding_dims: embeddingInfo?.dims ?? '0',\n                      ark_embedding_api_type: conn?.ark?.embedding_api_type || conn?.ark?.api_type || '',\n                      openai_base_url: baseConn?.base_url || '',\n                      openai_api_key:  baseConn?.api_key || '',\n                      openai_model:  baseConn?.model || '',\n                      openai_embedding_dims: embeddingInfo?.dims ?? '0',\n                      openai_embedding_by_azure: Boolean(conn?.openai?.embedding_by_azure ?? conn?.openai?.by_azure),\n                      openai_embedding_api_version: conn?.openai?.embedding_api_version ?? conn?.openai?.api_version ?? '',\n                      ollama_base_url: baseConn?.base_url || '',\n                      ollama_model: baseConn?.model || '',\n                      ollama_embedding_dims: embeddingInfo?.dims ?? '0',\n                      gemini_base_url:  baseConn?.base_url || '',\n                      gemini_api_key:  baseConn?.api_key || '',\n                      gemini_model:  baseConn?.model || '',\n                      gemini_embedding_dims: embeddingInfo?.dims ?? '0',\n                      gemini_embedding_backend: conn?.gemini?.embedding_backend ?? conn?.gemini?.backend ?? '',\n                      gemini_embedding_project: conn?.gemini?.embedding_project ?? conn?.gemini?.project ?? '',\n                      gemini_embedding_location: conn?.gemini?.embedding_location ?? conn?.gemini?.location ?? '',\n                      http_address: conn?.http?.address || '',\n                      http_dims: embeddingInfo?.dims ?? '0',\n                      rerank_type: rerank?.type ?? '',\n                      vik_ak: rerank?.vikingdb_config?.ak || '',\n                      vik_sk: rerank?.vikingdb_config?.sk || '',\n                      vik_host: rerank?.vikingdb_config?.host || '',\n                      vik_region: rerank?.vikingdb_config?.region || '',\n                      vik_model: rerank?.vikingdb_config?.model || '',\n                      ocr_type: ocr?.type ?? '',\n                      ocr_ark_ak: ocr?.ark_ak || ocr?.volcengine_ak || '',\n                      ocr_ark_sk: ocr?.ark_sk || ocr?.volcengine_sk || '',\n                      ocr_paddleocr_api_url: ocr?.paddleocr_api_url || '',\n                      parser_type: parser?.type ?? '',\n                      parser_paddleocr_structure_api_url: parser?.paddleocr_structure_api_url || '',\n                      builtin_model_id: builtinModelId ?? ''\n                  };\n\n                  if (initial.embedding_type==0) {\n                    initial.openai_api_key ='';\n                    initial.openai_base_url ='';\n                    initial.openai_model ='';\n                    initial.openai_embedding_dims ='';\n                    initial.ollama_base_url ='';\n                    initial.ollama_model ='';\n                    initial.ollama_embedding_dims ='';\n                    initial.gemini_base_url ='';\n                    initial.gemini_api_key ='';\n                    initial.gemini_model ='';\n                    initial.gemini_embedding_dims ='';\n                    initial.http_address ='';\n                    initial.http_dims ='';\n                  }else if (initial.embedding_type==1) {\n                    initial.ark_base_url ='';\n                    initial.ark_api_key ='';\n                    initial.ark_region ='';\n                    initial.ark_model ='';\n                    initial.ark_embedding_dims ='';\n                    initial.ollama_base_url ='';\n                    initial.ollama_model ='';\n                    initial.ollama_embedding_dims ='';\n                    initial.gemini_base_url ='';\n                    initial.gemini_api_key ='';\n                    initial.gemini_model ='';\n                    initial.gemini_embedding_dims ='';\n                    initial.http_address ='';\n                    initial.http_dims ='';\n                  } else if (initial.embedding_type==2) {\n                    initial.openai_api_key ='';\n                    initial.openai_base_url ='';\n                    initial.openai_model ='';\n                    initial.openai_embedding_dims ='';\n                    initial.ark_base_url ='';\n                    initial.ark_api_key ='';\n                    initial.ark_region ='';\n                    initial.ark_model ='';\n                    initial.ark_embedding_dims ='';\n                    initial.gemini_base_url ='';\n                    initial.gemini_api_key ='';\n                    initial.gemini_model ='';\n                    initial.http_address ='';\n                    initial.http_dims ='';\n                  } else if (initial.embedding_type==3) {\n                    initial.openai_api_key ='';\n                    initial.openai_base_url ='';\n                    initial.openai_model ='';\n                    initial.openai_embedding_dims ='';\n                    initial.ark_base_url ='';\n                    initial.ark_api_key ='';\n                    initial.ark_region ='';\n                    initial.ark_model ='';\n                    initial.ark_embedding_dims ='';\n                    initial.ollama_base_url ='';\n                    initial.ollama_model ='';\n                    initial.ollama_embedding_dims ='';\n                    initial.http_address ='';\n                    initial.http_dims ='';\n                  } else if (initial.embedding_type==4) {\n                    initial.openai_api_key ='';\n                    initial.openai_base_url ='';\n                    initial.openai_model ='';\n                    initial.openai_embedding_dims ='';\n                    initial.ark_base_url ='';\n                    initial.ark_api_key ='';\n                    initial.ark_region ='';\n                    initial.ark_model ='';\n                    initial.ark_embedding_dims ='';\n                    initial.ollama_base_url ='';\n                    initial.ollama_model ='';\n                    initial.ollama_embedding_dims ='';\n                    initial.gemini_base_url ='';\n                    initial.gemini_api_key ='';\n                    initial.gemini_model ='';\n                    initial.gemini_embedding_dims ='';\n                  }\n\n                  const inputStyle = \"width:100%;padding:8px;border:1px solid #e1e8ed;border-radius:6px;font-size:12px;\";\n                  const labelStyle = \"font-size:12px;color:#374151;margin-bottom:6px;\";\n                  const groupGrid = \"display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;\";\n\n                  const html = `\n                      <div style=\"padding: 30px;\">\n                        <div style=\"display:grid;grid-template-columns:1fr;gap:20px;\">\n\n                          <!-- Group 1: Embedding 配置 -->\n                          <div style=\"background:white;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,0.08);border:1px solid #e1e8ed;overflow:hidden;\">\n                            <div style=\"padding:16px;border-bottom:1px solid #f1f3f4;background:#f8f9fa;\">\n                              <div style=\"font-weight:600;color:#2c3e50;\">${t('knowledge.section.embedding')}</div>\n                            </div>\n                            <div style=\"padding:16px;\">\n                              <div style=\"${groupGrid}\">\n                                <div>\n                                  <div style=\"${labelStyle}\">Type</div>\n                                  <select id=\"kb_embedding_type\" style=\"${inputStyle}\" onchange=\"onEmbeddingTypeChange()\">\n                                    <option value=\"0\" ${Number(initial.embedding_type) === 0 ? 'selected' : ''}>Ark</option>\n                                    <option value=\"1\" ${Number(initial.embedding_type) === 1 ? 'selected' : ''}>OpenAI</option>\n                                    <option value=\"2\" ${Number(initial.embedding_type) === 2 ? 'selected' : ''}>Ollama</option>\n                                    <option value=\"3\" ${Number(initial.embedding_type) === 3 ? 'selected' : ''}>Gemini</option>\n                                    <option value=\"4\" ${Number(initial.embedding_type) === 4 ? 'selected' : ''}>HTTP</option>\n                                  </select>\n                                </div>\n                                <div>\n                                  <div style=\"${labelStyle}\">Max Batch Size</div>\n                                  <input id=\"kb_embedding_max_batch_size\" type=\"number\" style=\"${inputStyle}\" value=\"${initial.embedding_max_batch_size}\" />\n                                </div>\n                              </div>\n\n                              <div id=\"kb_conn_ark\" style=\"margin-top:12px;border:1px solid #f1f3f4;border-radius:8px;padding:12px;\">\n                                <div style=\"font-weight:600;color:#2c3e50;margin-bottom:8px;\">${t('knowledge.connection', { name: 'Ark' })}</div>\n                                <div style=\"${groupGrid}\">\n                                  <div>\n                                    <div style=\"${labelStyle}\">Base URL<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_ark_base_url\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.ark_base_url}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">API Key<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_ark_api_key\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.ark_api_key}\" />\n                                  </div>\n                                  <div style=\"display:none;\">\n                                    <div style=\"${labelStyle}\">Region</div>\n                                    <input id=\"kb_ark_region\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.ark_region}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Model<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_ark_model\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.ark_model}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Dims</div>\n                                    <input id=\"kb_ark_embedding_dims\" type=\"number\" min=\"0\" style=\"${inputStyle}\" value=\"${initial.ark_embedding_dims}\" />\n                                </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">API Type</div>\n                                    <select id=\"kb_ark_embedding_api_type\" style=\"${inputStyle}\">\n                                      <option value=\"text_api\" ${initial.ark_embedding_api_type === 'text_api' ? 'selected' : ''}>text_api</option>\n                                      <option value=\"multi_modal_api\" ${initial.ark_embedding_api_type === 'multi_modal_api' ? 'selected' : ''}>multi_modal_api</option>\n                                    </select>\n                                  </div>\n                                </div>\n                              </div>\n\n                              <div id=\"kb_conn_openai\" style=\"margin-top:12px;border:1px solid #f1f3f4;border-radius:8px;padding:12px;\">\n                                <div style=\"font-weight:600;color:#2c3e50;margin-bottom:8px;\">${t('knowledge.connection', { name: 'OpenAI' })}</div>\n                                <div style=\"${groupGrid}\">\n                                  <!-- 必填字段优先显示：Base URL、Model、API Key、Dims（红点） -->\n                                  <div>\n                                    <div style=\"${labelStyle}\">Base URL<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_openai_base_url\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.openai_base_url}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Model<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_openai_model\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.openai_model}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">API Key<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_openai_api_key\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.openai_api_key}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Dims</div>\n                                    <input id=\"kb_openai_embedding_dims\" type=\"number\" min=\"0\" style=\"${inputStyle}\" value=\"${initial.openai_embedding_dims}\" />\n                                </div>\n                                  <!-- 选填字段靠后显示：By Azure、API Version、Request Dims -->\n                                  <div>\n                                    <div style=\"${labelStyle}\">By Azure</div>\n                                    <input id=\"kb_openai_embedding_by_azure\" type=\"checkbox\" ${initial.openai_embedding_by_azure ? 'checked' : ''} />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Embedding API Version</div>\n                                    <input id=\"kb_openai_embedding_api_version\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.openai_embedding_api_version}\" />\n                                  </div>\n                                </div>\n                              </div>\n\n                              <div id=\"kb_conn_ollama\" style=\"margin-top:12px;border:1px solid #f1f3f4;border-radius:8px;padding:12px;\">\n                                <div style=\"font-weight:600;color:#2c3e50;margin-bottom:8px;\">${t('knowledge.connection', { name: 'Ollama' })}</div>\n                                <div style=\"${groupGrid}\">\n                                  <div>\n                                    <div style=\"${labelStyle}\">Base URL<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_ollama_base_url\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.ollama_base_url}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Model<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_ollama_model\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.ollama_model}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Dims</div>\n                                    <input id=\"kb_ollama_embedding_dims\" type=\"number\" min=\"0\" style=\"${inputStyle}\" value=\"${initial.ollama_embedding_dims}\" />\n                                </div>\n                                </div>\n                              </div>\n\n                              <div id=\"kb_conn_gemini\" style=\"margin-top:12px;border:1px solid #f1f3f4;border-radius:8px;padding:12px;\">\n                                <div style=\"font-weight:600;color:#2c3e50;margin-bottom:8px;\">${t('knowledge.connection', { name: 'Gemini' })}</div>\n                                <div style=\"${groupGrid}\">\n                                  <div>\n                                    <div style=\"${labelStyle}\">Base URL<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_gemini_base_url\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.gemini_base_url}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">API Key<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_gemini_api_key\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.gemini_api_key}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Model<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_gemini_model\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.gemini_model}\" />\n                                  </div>\n                           \n                                  <div>\n                                    <div style=\"${labelStyle}\">Backend<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_gemini_embedding_backend\" type=\"number\" style=\"${inputStyle}\" value=\"${initial.gemini_embedding_backend}\" />\n                                  </div>\n                                <div>\n                                    <div style=\"${labelStyle}\">Dims</div>\n                                    <input id=\"kb_gemini_embedding_dims\" type=\"number\" min=\"0\" style=\"${inputStyle}\" value=\"${initial.gemini_embedding_dims}\" />\n                                </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Project</div>\n                                    <input id=\"kb_gemini_embedding_project\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.gemini_embedding_project}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Location</div>\n                                    <input id=\"kb_gemini_embedding_location\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.gemini_embedding_location}\" />\n                                  </div>\n                                </div>\n                              </div>\n\n                              <div id=\"kb_conn_http\" style=\"margin-top:12px;border:1px solid #f1f3f4;border-radius:8px;padding:12px;\">\n                                <div style=\"font-weight:600;color:#2c3e50;margin-bottom:8px;\">${t('knowledge.connection', { name: 'HTTP' })}</div>\n                                <div style=\"${groupGrid}\">\n                                  <div>\n                                    <div style=\"${labelStyle}\">Address<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_http_address\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.http_address}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Dims</div>\n                                    <input id=\"kb_http_dims\" type=\"number\" min=\"0\" style=\"${inputStyle}\" value=\"${initial.http_dims}\" />\n                                  </div>\n                                </div>\n                              </div>\n                            </div>\n                          </div>\n\n                          <!-- Group 2: Rerank 配置 -->\n                          <div style=\"background:white;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,0.08);border:1px solid #e1e8ed;overflow:hidden;\">\n                            <div style=\"padding:16px;border-bottom:1px solid #f1f3f4;background:#f8f9fa;\">\n                              <div style=\"font-weight:600;color:#2c3e50;\">${t('knowledge.section.rerank')}</div>\n                            </div>\n                            <div style=\"padding:16px;\">\n                              <div style=\"${groupGrid}\">\n                                <div>\n                                  <div style=\"${labelStyle}\">Type</div>\n                                  <select id=\"kb_rerank_type\" style=\"${inputStyle}\" onchange=\"onRerankTypeChange()\">\n                                    <option value=\"0\" ${Number(initial.rerank_type) === 0 ? 'selected' : ''}>VikingDB</option>\n                                    <option value=\"1\" ${Number(initial.rerank_type) === 1 ? 'selected' : ''}>RRF</option>\n                                  </select>\n                                </div>\n                              </div>\n                              <div id=\"kb_conn_vikingdb\" style=\"margin-top:12px;border:1px solid #f1f3f4;border-radius:8px;padding:12px;\">\n                                <div style=\"font-weight:600;color:#2c3e50;margin-bottom:8px;\">VikingDB</div>\n                                <div style=\"${groupGrid}\">\n                                  <div>\n                                    <div style=\"${labelStyle}\">AK<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_vik_ak\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.vik_ak}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">SK<span style=\"display:inline-block;width:6px;height:6px;background:#e74c3c;border-radius:50%;margin-left:6px;\"></span></div>\n                                    <input id=\"kb_vik_sk\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.vik_sk}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Host</div>\n                                    <input id=\"kb_vik_host\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.vik_host}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Region</div>\n                                    <input id=\"kb_vik_region\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.vik_region}\" />\n                                  </div>\n                                  <div>\n                                    <div style=\"${labelStyle}\">Model</div>\n                                    <input id=\"kb_vik_model\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.vik_model}\" />\n                                  </div>\n                                </div>\n                              </div>\n                            </div>\n                          </div>\n\n                          <!-- Group 3: OCR 配置 -->\n                          <div style=\"background:white;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,0.08);border:1px solid #e1e8ed;overflow:hidden;\">\n                            <div style=\"padding:16px;border-bottom:1px solid #f1f3f4;background:#f8f9fa;\">\n                              <div style=\"font-weight:600;color:#2c3e50;\">${t('knowledge.section.ocr')}</div>\n                            </div>\n                            <div style=\"padding:16px;\">\n                              <div style=\"${groupGrid}\">\n                                <div>\n                                  <div style=\"${labelStyle}\">Type</div>\n                                  <select id=\"kb_ocr_type\" style=\"${inputStyle}\" onchange=\"onOcrTypeChange()\">\n                                    <option value=\"0\" ${Number(initial.ocr_type) === 0 ? 'selected' : ''}>Volcengine</option>\n                                    <option value=\"1\" ${Number(initial.ocr_type) === 1 ? 'selected' : ''}>Paddleocr</option>\n                                  </select>\n                                </div>\n                                <div id=\"kb_conn_ocr_volcengine\">\n                                  <div style=\"${labelStyle}\">Volcengine AK</div>\n                                  <input id=\"kb_ocr_ark_ak\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.ocr_ark_ak}\" />\n                                  <div style=\"${labelStyle};margin-top:12px;\">Volcengine SK</div>\n                                  <input id=\"kb_ocr_ark_sk\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.ocr_ark_sk}\" />\n                                </div>\n                                <div id=\"kb_conn_ocr_paddleocr\">\n                                  <div style=\"${labelStyle}\">PaddleOCR API URL</div>\n                                  <input id=\"kb_ocr_paddleocr_api_url\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.ocr_paddleocr_api_url}\" />\n                                </div>\n                              </div>\n                            </div>\n                          </div>\n\n                          <!-- Group 4: Parser 配置 -->\n                          <div style=\"background:white;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,0.08);border:1px solid #e1e8ed;overflow:hidden;\">\n                            <div style=\"padding:16px;border-bottom:1px solid #f1f3f4;background:#f8f9fa;\">\n                              <div style=\"font-weight:600;color:#2c3e50;\">${t('knowledge.section.parser')}</div>\n                            </div>\n                            <div style=\"padding:16px;\">\n                              <div style=\"${groupGrid}\">\n                                <div>\n                                  <div style=\"${labelStyle}\">Type</div>\n                                  <select id=\"kb_parser_type\" style=\"${inputStyle}\" onchange=\"onParserTypeChange()\">\n                                    <option value=\"0\" ${Number(initial.parser_type) === 0 ? 'selected' : ''}>Builtin</option>\n                                    <option value=\"1\" ${Number(initial.parser_type) === 1 ? 'selected' : ''}>Paddleocr</option>\n                                  </select>\n                                </div>\n                                <div id=\"kb_conn_parser_paddleocr\">\n                                  <div style=\"${labelStyle}\">PaddleOCR API URL</div>\n                                  <input id=\"kb_parser_paddleocr_structure_api_url\" type=\"text\" style=\"${inputStyle}\" value=\"${initial.parser_paddleocr_structure_api_url}\" />\n                                </div>\n                              </div>\n                            </div>\n                          </div>\n\n                          <!-- Group 5: 内置模型配置 -->\n                          <div id=\"kb_builtin_model_group\" style=\"background:white;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,0.08);border:1px solid #e1e8ed;overflow:hidden;\">\n                            <div style=\"padding:16px;border-bottom:1px solid #f1f3f4;background:#f8f9fa;\">\n                              <div style=\"font-weight:600;color:#2c3e50;\">${t('knowledge.section.builtin_model')}</div>\n                            </div>\n                            <div style=\"padding:16px;\">\n                              <div style=\"${groupGrid}\">\n                                <div>\n                                  <div style=\"${labelStyle}\">${t('knowledge.label.choose_builtin_model')}</div>\n                                  <div id=\"kb_builtin_model_select\" style=\"position:relative;\">\n                                    <div id=\"kb_builtin_model_selected\" style=\"display:flex;align-items:center;gap:8px;border:1px solid #e1e8ed;border-radius:8px;padding:8px;cursor:pointer;\">\n                                      <img id=\"kb_builtin_model_selected_icon\" src=\"\" alt=\"\" style=\"width:20px;height:20px;border-radius:4px;object-fit:contain;display:none;\">\n                                      <span id=\"kb_builtin_model_selected_name\" style=\"color:#2c3e50;\">${t('knowledge.placeholder.select_model')}</span>\n                                      <span style=\"margin-left:auto;color:#7b8a8b;\">▼</span>\n                                    </div>\n                                    <div id=\"kb_builtin_model_dropdown\" style=\"margin-top:8px;background:#fff;border:1px solid #e1e8ed;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.08);max-height:240px;overflow:auto;display:none;z-index:10;\">\n                                      <div id=\"kb_builtin_model_loading\" style=\"padding:8px;color:#7b8a8b;\">${t('knowledge.loading.model_list')}</div>\n                                    </div>\n                                  </div>\n                                  <input id=\"kb_builtin_model_id\" type=\"hidden\" value=\"${initial.builtin_model_id}\" />\n                                </div>\n                              </div>\n                            </div>\n                          </div>\n\n                        </div>\n                        <div class=\"action-buttons\">\n                          <button type=\"button\" class=\"btn btn-primary\" onclick=\"saveKnowledgeConfig()\">💾 ${t('btn.save')}</button>\n                        </div>\n                      </div>\n                  `;\n                  pageContent.innerHTML = html;\n                  try {\n                    const builtinGroup = document.getElementById('kb_builtin_model_group');\n                    if (builtinGroup && builtinGroup.parentElement) {\n                      builtinGroup.parentElement.insertBefore(builtinGroup, builtinGroup.parentElement.firstElementChild);\n                    }\n                  } catch (_) {}\n                  try { setEmbeddingTypeUI(Number(initial.embedding_type ?? 0)); } catch (_) {}\n                  try { setRerankTypeUI(Number(initial.rerank_type ?? 0)); } catch (_) {}\n                  try { setOcrTypeUI(Number(initial.ocr_type ?? 0)); } catch (_) {}\n                  try { setParserTypeUI(Number(initial.parser_type ?? 0)); } catch (_) {}\n                  try { initBuiltinModelSelect(initial.builtin_model_id); } catch (_) {}\n              } catch (e) {\n                  console.error(t('knowledge.error.render_failed') + ':', e);\n                  showError(t('knowledge.error.render_failed') + ': ' + e.message);\n              }\n          }\n\n          // 显示加载状态}\n\n          // 内置模型下拉：初始化与渲染\n          function initBuiltinModelSelect(initialModelId) {\n            try {\n              const container = document.getElementById('kb_builtin_model_select');\n              const selected = document.getElementById('kb_builtin_model_selected');\n              const nameEl = document.getElementById('kb_builtin_model_selected_name');\n              const iconEl = document.getElementById('kb_builtin_model_selected_icon');\n              const dropdownEl = document.getElementById('kb_builtin_model_dropdown');\n              const hiddenInput = document.getElementById('kb_builtin_model_id');\n              if (!container || !selected || !dropdownEl || !hiddenInput) { return; }\n\n              const normalizedInitialId = (initialModelId === undefined || initialModelId === null) ? undefined : String(initialModelId).trim();\n\n              // toggle dropdown\n              selected.onclick = function() {\n                const isOpen = dropdownEl.style.display !== 'none';\n                dropdownEl.style.display = isOpen ? 'none' : 'block';\n              };\n              document.addEventListener('click', function(e) {\n                if (!container.contains(e.target)) {\n                  dropdownEl.style.display = 'none';\n                }\n              });\n\n              dropdownEl.innerHTML = '<div id=\"kb_builtin_model_loading\" style=\"padding:8px;color:#7b8a8b;\">' + t('knowledge.loading.model_list') + '</div>';\n\n              fetch('/api/admin/config/model/list', { method: 'GET' })\n                .then(resp => resp.json())\n                .then(data => {\n                  if (handleApiCode(data)) {\n                    return;\n                  }\n                  const groups = data?.provider_model_list ?? data?.ProviderModelList ?? [];\n                  dropdownEl.innerHTML = '';\n                  if (!Array.isArray(groups) || groups.length === 0) {\n                    dropdownEl.innerHTML = '<div style=\"padding:8px;color:#bdc3c7;\">' + t('knowledge.empty.model_list') + '</div>';\n                    return;\n                  }\n\n                  let selectedFound = false;\n\n                  groups.forEach(group => {\n                    const provider = group.provider ?? group.Provider;\n                    const icon = provider?.icon_url ?? provider?.IconURL ?? '';\n                    const models = group.model_list ?? group.ModelList ?? [];\n                    models.forEach(m => {\n                      const id = m.id ?? m.ID;\n                      const name = (m.display_info?.name) ?? (m.DisplayInfo?.Name);\n                      const opt = document.createElement('div');\n                      opt.style.display = 'flex';\n                      opt.style.alignItems = 'center';\n                      opt.style.gap = '8px';\n                      opt.style.padding = '8px';\n                      opt.style.cursor = 'pointer';\n                      opt.style.borderBottom = '1px solid #f1f3f4';\n                      opt.onmouseenter = function(){ opt.style.background = '#f8f9fa'; };\n                      opt.onmouseleave = function(){ opt.style.background = '#fff'; };\n\n                      const img = document.createElement('img');\n                      img.src = icon || '';\n                      img.alt = '';\n                      img.style.width = '20px';\n                      img.style.height = '20px';\n                      img.style.borderRadius = '4px';\n                      img.style.objectFit = 'contain';\n                      img.style.display = icon ? 'block' : 'none';\n\n                      const span = document.createElement('span');\n                      span.textContent = name || t('knowledge.placeholder.model_fallback', { id });\n\n                      opt.appendChild(img);\n                      opt.appendChild(span);\n\n                      opt.onclick = function() {\n                        hiddenInput.value = String(id);\n                        nameEl.textContent = span.textContent;\n                        if (icon) { iconEl.src = icon; iconEl.style.display = 'block'; } else { iconEl.style.display = 'none'; }\n                        dropdownEl.style.display = 'none';\n                      };\n\n                      dropdownEl.appendChild(opt);\n\n                      if (!selectedFound && normalizedInitialId !== undefined && normalizedInitialId !== '' && Number(normalizedInitialId) === Number(id)) {\n                        selectedFound = true;\n                        hiddenInput.value = String(id);\n                        nameEl.textContent = span.textContent;\n                        if (icon) { iconEl.src = icon; iconEl.style.display = 'block'; } else { iconEl.style.display = 'none'; }\n                      }\n                    });\n                  });\n\n                  if (!selectedFound) {\n                    const first = dropdownEl.firstElementChild;\n                    if (first) {\n                      first.click();\n                    } else {\n                      nameEl.textContent = t('knowledge.tip.setup_model_first');\n                      iconEl.style.display = 'none';\n                    }\n                  }\n                })\n                .catch(err => {\n                  dropdownEl.innerHTML = '<div style=\"padding:8px;color:#e74c3c;\">' + t('knowledge.error.model_list_load_failed') + '</div>';\n                  console.error(t('knowledge.error.model_list_load_failed') + ':', err);\n                });\n\n            } catch (e) {\n              console.error('初始化内置模型下拉失败:', e);\n            }\n          }\n\n          function buildKnowledgePayloadFromInputs() {\n              const val = (id) => {\n                  const el = document.getElementById(id);\n                  return el ? el.value : '';\n              };\n              const checked = (id) => {\n                  const el = document.getElementById(id);\n                  return el ? !!el.checked : false;\n              };\n              const toNum = (v) => {\n                  const n = Number(v);\n                  return isNaN(n) ? undefined : n;\n              };\n\n              const typeVal = toNum(val('kb_embedding_type'));\n              // 根据选择的 embedding type，抽取 base_conn_info 与 dims\n              const baseConnInfo = (() => {\n                  switch (typeVal) {\n                      case 0: // Ark\n                          return {\n                              base_url: val('kb_ark_base_url'),\n                              api_key: val('kb_ark_api_key'),\n                              model: val('kb_ark_model')\n                          };\n                      case 1: // OpenAI\n                          return {\n                              base_url: val('kb_openai_base_url'),\n                              api_key: val('kb_openai_api_key'),\n                              model: val('kb_openai_model')\n                          };\n                      case 2: // Ollama\n                          return {\n                              base_url: val('kb_ollama_base_url'),\n                              model: val('kb_ollama_model')\n                          };\n                      case 3: // Gemini\n                          return {\n                              base_url: val('kb_gemini_base_url'),\n                              api_key: val('kb_gemini_api_key'),\n                              model: val('kb_gemini_model')\n                          };\n                      case 4: // HTTP\n                      default:\n                          return { base_url: '', api_key: '', model: '' };\n                  }\n              })();\n\n              const dimsVal = (() => {\n                  switch (typeVal) {\n                      case 0: return toNum(val('kb_ark_embedding_dims'));\n                      case 1: return toNum(val('kb_openai_embedding_dims'));\n                      case 2: return toNum(val('kb_ollama_embedding_dims'));\n                      case 3: return toNum(val('kb_gemini_embedding_dims'));\n                      case 4: return toNum(val('kb_http_dims'));\n                      default: return undefined;\n                  }\n              })();\n\n              return {\n                  knowledge_config: {\n                      embedding_config: {\n                          type: typeVal,\n                                  max_batch_size: toNum(val('kb_embedding_max_batch_size')) ?? 100,\n                                  connection: {\n                              base_conn_info: baseConnInfo,\n                              embedding_info: { dims: dimsVal },\n                              ark: {\n                                  api_type: val('kb_ark_embedding_api_type')\n                              },\n                              openai: {\n                                  by_azure: checked('kb_openai_embedding_by_azure'),\n                                  api_version: val('kb_openai_embedding_api_version')\n                              },\n                              gemini: {\n                                  backend: toNum(val('kb_gemini_embedding_backend')),\n                                  project: val('kb_gemini_embedding_project'),\n                                  location: val('kb_gemini_embedding_location')\n                              },\n                              http: {\n                                  address: val('kb_http_address')\n                              }\n                          }\n                      },\n                      rerank_config: {\n                          type: toNum(val('kb_rerank_type')),\n                          vikingdb_config: {\n                              ak: val('kb_vik_ak'),\n                              sk: val('kb_vik_sk'),\n                              host: val('kb_vik_host'),\n                              region: val('kb_vik_region'),\n                              model: val('kb_vik_model')\n                          }\n                      },\n                      ocr_config: {\n                          type: toNum(val('kb_ocr_type')),\n                          volcengine_ak: val('kb_ocr_ark_ak'),\n                          volcengine_sk: val('kb_ocr_ark_sk'),\n                          paddleocr_api_url: val('kb_ocr_paddleocr_api_url')\n                      },\n                      parser_config: {\n                          type: toNum(val('kb_parser_type')),\n                          paddleocr_structure_api_url: val('kb_parser_paddleocr_structure_api_url')\n                      },\n                      builtin_model_id: toNum(val('kb_builtin_model_id'))\n                  }\n              };\n          }\n\n          function saveKnowledgeConfig() {\n              try {\n                  const payload = buildKnowledgePayloadFromInputs();\n                  // 初始化 Rerank 配置显示状态（防止未选择时错误展示）\n                  try { setRerankTypeUI(Number(document.getElementById('kb_rerank_type')?.value || 0)); } catch (_) {}\n\n                  // Embedding 必填项校验（不同类型不同必填要求）\n                  const typeVal = Number(document.getElementById('kb_embedding_type')?.value);\n                  const get = (id) => (document.getElementById(id)?.value || '').trim();\n                  const getDims = (id) => {\n                      const el = document.getElementById(id);\n                      return el ? Number(el.value) : 0;\n                  };\n\n                  if (typeVal === 0) {\n                      // Ark: Base URL、API Key、Model、Dims 必填，API Type 可选\n                      const dimsVal = getDims('kb_ark_embedding_dims');\n                      const missing = [];\n                      if (!get('kb_ark_base_url')) missing.push('Base URL');\n                      if (!get('kb_ark_api_key')) missing.push('API Key');\n                      if (!get('kb_ark_model')) missing.push('Model');\n                      if (dimsVal < 0) {\n                          showError('Dims must be >= 0');\n                          return;\n                      }\n                      \n                      if (missing.length > 0) {\n                          showError(t('error.missing_required', { list: missing.join(', ') }));\n                          return;\n                      }\n                  } else if (typeVal === 1) {\n                      // OpenAI: Base URL、Model、API Key、Dims 必填\n                      const dimsVal = getDims('kb_openai_embedding_dims');\n                      const missing = [];\n                      if (!get('kb_openai_base_url')) missing.push('Base URL');\n                      if (!get('kb_openai_model')) missing.push('Model');\n                      if (!get('kb_openai_api_key')) missing.push('API Key');\n                      if (dimsVal < 0) {\n                          showError('Dims must be >= 0');\n                          return;\n                      }\n                      if (missing.length > 0) {\n                          showError(t('error.missing_required', { list: missing.join(', ') }));\n                          return;\n                      }\n                  } else if (typeVal === 2) {\n                      // Ollama: Base URL、Model、Dims 必填\n                      const dimsVal = getDims('kb_ollama_embedding_dims');\n                      const missing = [];\n                      if (!get('kb_ollama_base_url')) missing.push('Base URL');\n                      if (!get('kb_ollama_model')) missing.push('Model');\n                      if (dimsVal < 0) {\n                          showError('Dims must be >= 0');\n                          return;\n                      }\n                      if (missing.length > 0) {\n                          showError(t('error.missing_required', { list: missing.join(', ') }));\n                          return;\n                      }\n                  } else if (typeVal === 3) {\n                      // Gemini: Base URL、API Key、Model、Dims、Backend 必填；Project、Location 选填\n                      const dimsVal = getDims('kb_gemini_embedding_dims');\n                      const backendStr = (document.getElementById('kb_gemini_embedding_backend')?.value || '').trim();\n                      const missing = [];\n                      if (!get('kb_gemini_base_url')) missing.push('Base URL');\n                      if (!get('kb_gemini_api_key')) missing.push('API Key');\n                      if (!get('kb_gemini_model')) missing.push('Model');\n                      if (!backendStr) missing.push('Backend');\n                      if (dimsVal < 0) {\n                          showError('Dims must be >= 0');\n                          return;\n                      }\n                      if (missing.length > 0) {\n                          showError(t('error.missing_required', { list: missing.join(', ') }));\n                          return;\n                      }\n                  } else if (typeVal === 4) {\n                      // HTTP: Address、Dims 必填\n                      const dimsVal = getDims('kb_http_dims');\n                      const missing = [];\n                      if (!get('kb_http_address')) missing.push('Address');\n                      if (dimsVal < 0) {\n                          showError('Dims must be >= 0');\n                          return;\n                      }\n                      if (missing.length > 0) {\n                          showError(t('error.missing_required', { list: missing.join(', ') }));\n                          return;\n                      }\n                  }\n\n                  // Rerank 必填项校验：VikingDB 的 AK、SK 必填，其它项选填\n                  try {\n                      const rerankTypeVal = Number(document.getElementById('kb_rerank_type')?.value);\n                      if (rerankTypeVal === 0) {\n                          const missing = [];\n                          if (!get('kb_vik_ak')) missing.push('AK');\n                          if (!get('kb_vik_sk')) missing.push('SK');\n                          if (missing.length > 0) {\n                              showError(t('error.missing_required', { list: missing.join(', ') }));\n                              return;\n                          }\n                      }\n                  } catch (_) {}\n\n                //   showOverlay(t('overlay.saving'));\n                  fetch('/api/admin/config/knowledge/save', {\n                      method: 'POST',\n                      headers: { 'Content-Type': 'application/json' },\n                      body: JSON.stringify(payload)\n                  }).then(async (resp) => {\n                      let bodyText = '';\n                      try { bodyText = await resp.text(); } catch (_) {}\n                      let data = null;\n                      try { data = JSON.parse(bodyText); } catch (_) { data = null; }\n                      if (data && typeof data === 'object') {\n                          if (handleApiCode(data)) { hideOverlay(); return; }\n                          if (Number(data.code) === 0) { hideOverlay(); showSuccess(t('success.saved_restart_required')); return; }\n                          hideOverlay(); showError(t('error.save_failed_reason', { reason: (data?.msg || t('error.api_error')) })); return;\n                      }\n                      if (!resp.ok) {\n                          hideOverlay();\n                          throw new Error(bodyText || ('HTTP ' + resp.status));\n                      }\n                      hideOverlay();\n                      showSuccess(t('success.saved_restart_required'));\n                  }).catch((err) => {\n                      hideOverlay();\n                      console.error('Failed to save knowledge configuration:', err);\n                      showError(t('error.save_failed_reason', { reason: (err?.message || String(err)) }));\n                  });\n              } catch (e) {\n                  hideOverlay();\n                  console.error('Knowledge configuration save exception:', e);\n                  showError(t('error.save_failed_reason', { reason: e.message }));\n              }\n          }\n\n          function setEmbeddingTypeUI(typeVal) {\n              const ids = ['kb_conn_ark','kb_conn_openai','kb_conn_ollama','kb_conn_gemini','kb_conn_http'];\n              ids.forEach((id, idx) => {\n                  const el = document.getElementById(id);\n                  if (el) el.style.display = (Number(typeVal) === idx ? 'block' : 'none');\n              });\n          }\n\n          function setRerankTypeUI(typeVal) {\n              try {\n                  const vik = document.getElementById('kb_conn_vikingdb');\n                  if (!vik) return;\n                  vik.style.display = Number(typeVal) === 0 ? '' : 'none';\n              } catch (_) {}\n          }\n          function onRerankTypeChange() {\n              try {\n                  const v = Number(document.getElementById('kb_rerank_type')?.value);\n                  setRerankTypeUI(v);\n              } catch (_) {}\n          }\n\n          function setOcrTypeUI(typeVal) {\n              try {\n                  const volc = document.getElementById('kb_conn_ocr_volcengine');\n                  const pad = document.getElementById('kb_conn_ocr_paddleocr');\n                  if (!volc || !pad) return;\n                  const t = Number(typeVal);\n                  volc.style.display = t === 0 ? '' : 'none';\n                  pad.style.display = t === 1 ? '' : 'none';\n              } catch (_) {}\n          }\n          function onOcrTypeChange() {\n              try {\n                  const v = Number(document.getElementById('kb_ocr_type')?.value);\n                  setOcrTypeUI(v);\n              } catch (_) {}\n          }\n\n          function setParserTypeUI(typeVal) {\n              try {\n                  const pad = document.getElementById('kb_conn_parser_paddleocr');\n                  if (!pad) return;\n                  pad.style.display = Number(typeVal) === 1 ? '' : 'none';\n              } catch (_) {}\n          }\n          function onParserTypeChange() {\n              try {\n                  const v = Number(document.getElementById('kb_parser_type')?.value);\n                  setParserTypeUI(v);\n              } catch (_) {}\n          }\n\n          function onEmbeddingTypeChange() {\n              const sel = document.getElementById('kb_embedding_type');\n              const val = sel ? Number(sel.value) : 0;\n              setEmbeddingTypeUI(val);\n          }\n\n          function showLoading() {\n            pageContent.innerHTML = `\n                <div class=\"loading\">\n                    <div class=\"loading-spinner\"></div>\n                    <span>${t('loading')}</span>\n                </div>\n            `;\n        }\n\n        // 统一成功提示（透明浮层）\n        function showSuccess(message) {\n            showOverlay(message || t('success.generic'), 'success');\n        }\n\n        // 统一错误提示（透明浮层）\n        function showError(message) {\n            showOverlay(message || t('error.generic'), 'error');\n        }\n\n        // 透明浮层：显示（与 config.html 保持一致）\n        function showOverlay(message, type) {\n            const overlay = document.getElementById('overlay');\n            const overlayContent = document.getElementById('overlayContent');\n            const overlayMessage = document.getElementById('overlayMessage');\n            if (!overlay || !overlayContent || !overlayMessage) {\n                alert(String(message || t('error.generic')));\n                return;\n            }\n            overlayMessage.textContent = String(message || '');\n            overlayContent.className = `overlay-content ${type === 'success' ? 'success' : 'error'}`;\n            overlay.classList.add('show');\n            // 背景点击关闭\n            overlay.onclick = function(e) {\n                if (e.target === overlay) {\n                    hideOverlay();\n                }\n            };\n            // 3秒后自动隐藏\n            setTimeout(() => hideOverlay(), 3000);\n        }\n\n        // 透明浮层：隐藏\n        function hideOverlay() {\n            const overlay = document.getElementById('overlay');\n            if (overlay) {\n                overlay.classList.remove('show');\n            }\n        }\n\n        // 加载外部页面\n        function loadPage(filename) {\n            showLoading();\n            \n            fetch(filename)\n                .then(response => {\n                    if (!response.ok) {\n                        throw new Error(`HTTP ${response.status}: ${response.statusText}`);\n                    }\n                    return response.text();\n                })\n                .then(html => {\n                    // 解析HTML并提取内容\n                    const parser = new DOMParser();\n                    const doc = parser.parseFromString(html, 'text/html');\n                    \n                    const title = doc.querySelector('title')?.textContent || t('page.default.title');\n                    const content = doc.querySelector('.page-content')?.innerHTML || \n                                  doc.querySelector('body')?.innerHTML || \n                                  `<p>${t('page.empty')}</p>`;\n                    \n                    pageTitle.textContent = title;\n                    pageDescription.textContent = t('page.manage_config', { title });\n                    pageContent.innerHTML = content;\n                    \n                    // 执行页面中的脚本\n                    const scripts = doc.querySelectorAll('script');\n                    scripts.forEach(script => {\n                        if (script.textContent) {\n                            try {\n                                eval(script.textContent);\n                            } catch (e) {\n                                console.warn('执行页面脚本失败:', e);\n                            }\n                        }\n                    });\n                })\n                .catch(error => {\n                    console.error('加载页面失败:', error);\n                    showError(t('error.page_load_failed_reason', { reason: error.message }));\n                });\n        }\n\n        // 快速操作函数\n        function showSystemStatus() {\n            pageContent.innerHTML = `\n                <div style=\"padding: 30px;\">\n                    <h2 style=\"margin-bottom: 20px;\">📊 系统状态</h2>\n                    <div style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px;\">\n                        <div style=\"background: #f8f9fa; padding: 20px; border-radius: 8px; border-left: 4px solid #28a745;\">\n                            <h4 style=\"color: #28a745; margin: 0 0 10px;\">服务状态</h4>\n                            <p style=\"margin: 0; font-size: 24px; font-weight: bold;\">🟢 正常运行</p>\n                        </div>\n                        <div style=\"background: #f8f9fa; padding: 20px; border-radius: 8px; border-left: 4px solid #007bff;\">\n                            <h4 style=\"color: #007bff; margin: 0 0 10px;\">CPU 使用率</h4>\n                            <p style=\"margin: 0; font-size: 24px; font-weight: bold;\">23%</p>\n                        </div>\n                        <div style=\"background: #f8f9fa; padding: 20px; border-radius: 8px; border-left: 4px solid #ffc107;\">\n                            <h4 style=\"color: #ffc107; margin: 0 0 10px;\">内存使用</h4>\n                            <p style=\"margin: 0; font-size: 24px; font-weight: bold;\">1.2GB / 4GB</p>\n                        </div>\n                        <div style=\"background: #f8f9fa; padding: 20px; border-radius: 8px; border-left: 4px solid #17a2b8;\">\n                            <h4 style=\"color: #17a2b8; margin: 0 0 10px;\">运行时间</h4>\n                            <p style=\"margin: 0; font-size: 24px; font-weight: bold;\">7天 12小时</p>\n                        </div>\n                    </div>\n                </div>\n            `;\n        }\n\n        function showLogs() {\n            pageContent.innerHTML = `\n                <div style=\"padding: 30px;\">\n                    <h2 style=\"margin-bottom: 20px;\">📝 系统日志</h2>\n                    <div style=\"background: #1e1e1e; color: #00ff00; padding: 20px; border-radius: 8px; font-family: 'Courier New', monospace; font-size: 14px; max-height: 400px; overflow-y: auto;\">\n                        <div>[2024-01-16 10:30:15] INFO: 系统启动完成</div>\n                        <div>[2024-01-16 10:30:16] INFO: 加载配置文件成功</div>\n                        <div>[2024-01-16 10:30:17] INFO: 数据库连接建立</div>\n                        <div>[2024-01-16 10:30:18] INFO: API 服务启动，端口: 8080</div>\n                        <div>[2024-01-16 10:35:22] INFO: 用户登录: admin</div>\n                        <div>[2024-01-16 10:36:45] INFO: 模型配置更新</div>\n                        <div>[2024-01-16 10:38:12] WARN: 知识库索引队列较长</div>\n                        <div>[2024-01-16 10:40:33] INFO: 知识库索引完成</div>\n                    </div>\n                </div>\n            `;\n        }\n\n        function exportConfig() {\n            const config = {\n                timestamp: new Date().toISOString(),\n                version: \"1.0.0\",\n                settings: {\n                    api: { endpoint: \"https://api.example.com\", timeout: 30000 },\n                    models: [\"gpt-4\", \"gpt-3.5-turbo\"],\n                    knowledge: { maxSize: \"10GB\", indexing: true }\n                }\n            };\n            \n            const blob = new Blob([JSON.stringify(config, null, 2)], { type: 'application/json' });\n            const url = URL.createObjectURL(blob);\n            const a = document.createElement('a');\n            a.href = url;\n            a.download = 'coze-studio-config.json';\n            a.click();\n            URL.revokeObjectURL(url);\n            \n            alert(t('export.success'));\n        }\n\n        function showHelp() {\n            pageContent.innerHTML = `\n                <div style=\"padding: 30px;\">\n                    <h2 style=\"margin-bottom: 20px;\">❓ ${t('help.title')}</h2>\n                    <div style=\"display: grid; gap: 20px;\">\n                        <div style=\"background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);\">\n                            <h3 style=\"color: #667eea; margin-top: 0;\">${t('help.quickstart.title')}</h3>\n                            <p>1. ${t('help.quickstart.step1')}</p>\n                            <p>2. ${t('help.quickstart.step2')}</p>\n                            <p>3. ${t('help.quickstart.step3')}</p>\n                            <p>4. ${t('help.quickstart.step4')}</p>\n                        </div>\n                        <div style=\"background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);\">\n                            <h3 style=\"color: #667eea; margin-top: 0;\">${t('help.features.title')}</h3>\n                            <p><strong>${t('page.basic.title')}：</strong>${t('help.features.basic')}</p>\n                            <p><strong>${t('page.model.title')}：</strong>${t('help.features.model')}</p>\n                            <p><strong>${t('page.knowledge.title')}：</strong>${t('help.features.kb')}</p>\n                        </div>\n                        <div style=\"background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);\">\n                            <h3 style=\"color: #667eea; margin-top: 0;\">${t('help.support.title')}</h3>\n                            <p>${t('help.support.contact')}</p>\n                            <p>${t('help.support.email', { email: 'support@coze-studio.com' })}</p>\n                            <p>${t('help.support.phone', { phone: '400-123-4567' })}</p>\n                        </div>\n                    </div>\n                </div>\n            `;\n        }\n    </script>\n</body>\n</html>"
  },
  {
    "path": "backend/conf/model/model_meta.json",
    "content": "{\n    \"provider2models\": {\n        \"Claude\": {\n            \"default\": {\n                \"display_info\": {\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 131072\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    }\n                ]\n            },\n            \"claude-sonnet-4-5\": {\n                \"display_info\": {\n                    \"name\": \"Claude 4.5\",\n                    \"description\": {},\n                    \"output_tokens\": 64000,\n                    \"max_tokens\": 1000000\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"claude-sonnet-4-5-20250929\": {\n                \"display_info\": {\n                    \"name\": \"Claude 4.5\",\n                    \"description\": {},\n                    \"output_tokens\": 64000,\n                    \"max_tokens\": 1000000\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"claude-3-5-sonnet-20240620\": {\n                \"display_info\": {\n                    \"name\": \"Claude 3.5 Sonnet\",\n                    \"description\": {\n                        \"zh_cn\": \"excels in text and code generation\",\n                        \"en_us\": \"excels in text and code generation\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 200000\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"claude-3-5-sonnet-20241022\": {\n                \"display_info\": {\n                    \"name\": \"Claude 3.5 Sonnet v2\",\n                    \"description\": {},\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 131072\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"claude-3-haiku-20240307\": {\n                \"display_info\": {\n                    \"name\": \"Claude 3 Haiku\",\n                    \"description\": {},\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 48000\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"Output format\",\n                        \"desc\": \"**Output Format**:\\n\\n- **Text**: Replies in plain text format\\n- **Markdown**: Uses Markdown format for replies\\n- **JSON**: Uses JSON format for replies\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"Text\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            },\n                            {\n                                \"label\": \"JSON\",\n                                \"value\": \"2\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    }\n                ]\n            },\n            \"claude-3-5-haiku-20241022\": {\n                \"display_info\": {\n                    \"name\": \"Claude 3 Haiku\",\n                    \"description\": {\n                        \"zh_cn\": \"delivering near-instant responses\",\n                        \"en_us\": \"delivering near-instant responses\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 200000\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"claude-3-opus-20240229\": {\n                \"display_info\": {\n                    \"name\": \"Claude 3 Opus\",\n                    \"description\": {},\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 200000\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"claude-3-sonnet-20240229\": {\n                \"display_info\": {\n                    \"name\": \"Claude 3 Sonnet\",\n                    \"description\": {},\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 200000\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"claude-3-7-sonnet-20250219\": {\n                \"display_info\": {\n                    \"name\": \"Claude 3.7 Sonnet\",\n                    \"description\": {\n                        \"zh_cn\": \"excels in text and code generation\",\n                        \"en_us\": \"excels in text and code generation\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 204800\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"8192\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1025\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"thinking_type\",\n                        \"label\": \"Thinking\",\n                        \"desc\": \"After enabling deep thinking, before outputting the final answer, the model will first generate a segment of thought chain content to enhance the accuracy of the final response.\",\n                        \"type\": 4,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"disabled\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"enabled\",\n                                \"value\": \"enabled\"\n                            },\n                            {\n                                \"label\": \"disabled\",\n                                \"value\": \"disabled\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 6,\n                            \"label\": \"Deep Thinking\"\n                        }\n                    },\n                    {\n                        \"name\": \"thinking_budget_tokens\",\n                        \"label\": \"Thinking Budget Tokens\",\n                        \"desc\": \"Adjusting the output length of model's thinking result.\",\n                        \"type\": 2,\n                        \"min\": \"1024\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 6,\n                            \"label\": \"Deep Thinking\"\n                        }\n                    }\n                ]\n            }\n        },\n        \"GPT\": {\n            \"default\": {\n                \"display_info\": {\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 400000\n                },\n                \"capability\": {\n                    \"cot_display\": false,\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false,\n                    \"prefill_resp\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    }\n                ]\n            },\n            \"gpt-3.5-turbo-0125\": {\n                \"display_info\": {\n                    \"name\": \"GPT-3.5 Turbo 0125\",\n                    \"description\": {},\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 16385\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"gpt-4-turbo-2024-04-09\": {\n                \"display_info\": {\n                    \"name\": \"GPT-4 Turbo\",\n                    \"description\": {\n                        \"zh_cn\": \"Will be deprecated soon\",\n                        \"en_us\": \"Will be deprecated soon\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 128000\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"0.8\",\n                            \"balance\": \"0.5\",\n                            \"precise\": \"0.1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top p\",\n                        \"desc\": \"**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"Frequency penalty\",\n                        \"desc\": \"**Frequency Penalty**: When positive, it discourages the model from repeating the same words and phrases, thereby increasing the diversity of the output.\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"presence_penalty\",\n                        \"label\": \"Presence penalty\",\n                        \"desc\": \"**Presence Penalty**: When positive, it prevents the model from discussing the same topics repeatedly, thereby increasing the diversity of the output.\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"2048\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"Output format\",\n                        \"desc\": \"**Output Format**:\\n\\n- **Text**: Replies in plain text format\\n- **Markdown**: Uses Markdown format for replies\\n- **JSON**: Uses JSON format for replies\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"Text\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            },\n                            {\n                                \"label\": \"JSON\",\n                                \"value\": \"2\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"gpt-4o-2024-05-13\": {\n                \"display_info\": {\n                    \"name\": \"GPT-4o\",\n                    \"description\": {\n                        \"zh_cn\": \"Multi-modal, 320ms, 88.7% MMLU, excels in education, customer support, health, and entertainment.\",\n                        \"en_us\": \"Multi-modal, 320ms, 88.7% MMLU, excels in education, customer support, health, and entertainment.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 8192\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"0.8\",\n                            \"balance\": \"0.5\",\n                            \"precise\": \"0.1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top p\",\n                        \"desc\": \"**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"Frequency penalty\",\n                        \"desc\": \"**Frequency Penalty**: When positive, it discourages the model from repeating the same words and phrases, thereby increasing the diversity of the output.\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"presence_penalty\",\n                        \"label\": \"Presence penalty\",\n                        \"desc\": \"**Presence Penalty**: When positive, it prevents the model from discussing the same topics repeatedly, thereby increasing the diversity of the output.\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"Output format\",\n                        \"desc\": \"**Output Format**:\\n\\n- **Text**: Replies in plain text format\\n- **Markdown**: Uses Markdown format for replies\\n- **JSON**: Uses JSON format for replies\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"Text\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            },\n                            {\n                                \"label\": \"JSON\",\n                                \"value\": \"2\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"gpt-4o-2024-08-06\": {\n                \"display_info\": {\n                    \"name\": \"GPT-4o\",\n                    \"description\": {\n                        \"zh_cn\": \"Multi-modal, 320ms, 88.7% MMLU, excels in education, customer support, health, and entertainment.\",\n                        \"en_us\": \"Multi-modal, 320ms, 88.7% MMLU, excels in education, customer support, health, and entertainment.\"\n                    },\n                    \"output_tokens\": 8192,\n                    \"max_tokens\": 131072\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"0.8\",\n                            \"balance\": \"0.5\",\n                            \"precise\": \"0.1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top p\",\n                        \"desc\": \"**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"Frequency penalty\",\n                        \"desc\": \"**Frequency Penalty**: When positive, it discourages the model from repeating the same words and phrases, thereby increasing the diversity of the output.\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"presence_penalty\",\n                        \"label\": \"Presence penalty\",\n                        \"desc\": \"**Presence Penalty**: When positive, it prevents the model from discussing the same topics repeatedly, thereby increasing the diversity of the output.\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"8192\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"Output format\",\n                        \"desc\": \"**Output Format**:\\n\\n- **Text**: Replies in plain text format\\n- **Markdown**: Uses Markdown format for replies\\n- **JSON**: Uses JSON format for replies\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"Text\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            },\n                            {\n                                \"label\": \"JSON\",\n                                \"value\": \"2\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"gpt-4o-mini-2024-07-18\": {\n                \"display_info\": {\n                    \"name\": \"GPT-4o mini\",\n                    \"description\": {\n                        \"zh_cn\": \"Lightweight, multi-modal (82% MMLU), cost-effective.\",\n                        \"en_us\": \"Lightweight, multi-modal (82% MMLU), cost-effective.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 131072\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"0.8\",\n                            \"balance\": \"0.5\",\n                            \"precise\": \"0.1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top p\",\n                        \"desc\": \"**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"Frequency penalty\",\n                        \"desc\": \"**Frequency Penalty**: When positive, it discourages the model from repeating the same words and phrases, thereby increasing the diversity of the output.\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"presence_penalty\",\n                        \"label\": \"Presence penalty\",\n                        \"desc\": \"**Presence Penalty**: When positive, it prevents the model from discussing the same topics repeatedly, thereby increasing the diversity of the output.\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"8192\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"Output format\",\n                        \"desc\": \"**Output Format**:\\n\\n- **Text**: Replies in plain text format\\n- **Markdown**: Uses Markdown format for replies\\n- **JSON**: Uses JSON format for replies\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"Text\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            },\n                            {\n                                \"label\": \"JSON\",\n                                \"value\": \"2\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"gpt-5-2025-08-07\": {\n                \"display_info\": {\n                    \"name\": \"gpt-5-2025-08-07\",\n                    \"description\": {\n                        \"zh_cn\": \"gpt-5-2025-08-07\\t\",\n                        \"en_us\": \"gpt-5-2025-08-07\\t\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 400000\n                },\n                \"capability\": {\n                    \"cot_display\": false,\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false,\n                    \"prefill_resp\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"128000\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            }\n        },\n        \"Gemini\": {\n            \"default\": {\n                \"display_info\": {\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 204800\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": true,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"0.8\",\n                            \"balance\": \"0.5\",\n                            \"precise\": \"0.1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top p\",\n                        \"desc\": \"**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.94\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"8192\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"Output format\",\n                        \"desc\": \"**Output Format**:\\n\\n- **Text**: Replies in plain text format\\n- **Markdown**: Uses Markdown format for replies\\n- **JSON**: Uses JSON format for replies\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"Text\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"gemini-2.0-flash-001\": {\n                \"display_info\": {\n                    \"name\": \"Gemini 2.0 Flash\",\n                    \"description\": {\n                        \"zh_cn\": \"A versatile AI model for text, images, audio, and video\",\n                        \"en_us\": \"A versatile AI model for text, images, audio, and video\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 204800\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": true,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"0.8\",\n                            \"balance\": \"0.5\",\n                            \"precise\": \"0.1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top p\",\n                        \"desc\": \"**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.94\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"8192\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"Output format\",\n                        \"desc\": \"**Output Format**:\\n\\n- **Text**: Replies in plain text format\\n- **Markdown**: Uses Markdown format for replies\\n- **JSON**: Uses JSON format for replies\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"Text\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"Current time\",\n                        \"desc\": \"The current accurate time will be appended to each user query after enabled. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"Prompt leakage prevention\",\n                        \"desc\": \"The system prompt will be reinforced after enabled, which can significantly reduce the probability of system prompt leakage. [GuideDoc](https://www.coze.com/open/docs/guides/llm#3a97d6f3)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"Default instruction\"\n                        }\n                    }\n                ]\n            },\n            \"gemini-2.5-pro-preview-05-06\": {\n                \"display_info\": {\n                    \"name\": \"Gemini 2.5 Pro\",\n                    \"description\": {\n                        \"zh_cn\": \"An advanced Gemini model with up to 1 million tokens\",\n                        \"en_us\": \"An advanced Gemini model with up to 1 million tokens\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 204800\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": true,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"Temperature\",\n                        \"desc\": \"**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"0.8\",\n                            \"balance\": \"0.5\",\n                            \"precise\": \"0.1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top p\",\n                        \"desc\": \"**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.94\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"Generation diversity\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"Response max length\",\n                        \"desc\": \"You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"8192\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"Output format\",\n                        \"desc\": \"**Output Format**:\\n\\n- **Text**: Replies in plain text format\\n- **Markdown**: Uses Markdown format for replies\\n- **JSON**: Uses JSON format for replies\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"Text\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"Input and output settings\"\n                        }\n                    },\n                    {\n                        \"name\": \"thinking_type\",\n                        \"label\": \"Thinking\",\n                        \"desc\": \"After enabling deep thinking, before outputting the final answer, the model will first generate a segment of thought chain content to enhance the accuracy of the final response.\",\n                        \"type\": 4,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"disabled\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"enabled\",\n                                \"value\": \"enabled\"\n                            },\n                            {\n                                \"label\": \"disabled\",\n                                \"value\": \"disabled\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 6,\n                            \"label\": \"Deep Thinking\"\n                        }\n                    },\n                    {\n                        \"name\": \"thinking_budget_tokens\",\n                        \"label\": \"Thinking Budget Tokens\",\n                        \"desc\": \"Adjusting the output length of model's thinking result.\",\n                        \"type\": 2,\n                        \"min\": \"128\",\n                        \"max\": \"8192\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 6,\n                            \"label\": \"Deep Thinking\"\n                        }\n                    }\n                ]\n            }\n        },\n        \"QWen\": {\n            \"default\": {\n                \"display_info\": {\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 8192\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1.99\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.85\",\n                            \"creative\": \"0.95\",\n                            \"balance\": \"0.85\",\n                            \"precise\": \"0.1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0.01\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.8\",\n                            \"creative\": \"0.8\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.8\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"2000\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"2000\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"输出格式\",\n                        \"desc\": \"- **文本**: 使用普通文本格式回复\\n- **Markdown**: 将引导模型使用Markdown格式输出回复\\n- **JSON**: 将引导模型使用JSON格式输出\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"文本\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    }\n                ]\n            }\n        },\n        \"SEED\": {\n            \"default\": {\n                \"display_info\": {\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 229376\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"32768\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_completion_tokens\",\n                        \"label\": \"最大推理&回答长度\",\n                        \"desc\": \"控制模型思维链推理和回复输出的最大长度（单位 token）。配置了该参数后，可以让模型输出超长内容，max_tokens （最大回复长度，默认值 4k）与思维链最大长度将失效，模型按需输出内容，直到达到“最大推理&回复长度”（max_completion_tokens） 配置的值。\\n注意：若与“最大回复长度”（max_tokens） 字段同时设置，则“最大回复长度”不会生效。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"65536\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-lite-32k-240828\": {\n                \"display_info\": {\n                    \"name\": \"豆包·通用模型·Lite\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-lite-32k/240828，响应速度更快。\",\n                        \"en_us\": \"Doubao-lite-32k/240828, faster response speed.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 32768\n                },\n                \"capability\": {\n                    \"function_call\": false,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-pro-32k-241215\": {\n                \"display_info\": {\n                    \"name\": \"豆包·工具调用\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-pro-32k/241215，主力模型，适合处理复杂任务，在参考问答、总结摘要、创作、文本分类、角色扮演等场景都有很好的效果。支持32k上下文窗口的推理和精调。\",\n                        \"en_us\": \"Doubao-pro-32k/241215, the main model, suitable for handling complex tasks, with good performance in reference Q&A, summary, writing, text classification, and role-playing scenarios. It supports inference and fine-tuning with a 32k context window.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 32768\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"0.1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\",\n                            \"creative\": \"0.8\",\n                            \"balance\": \"0.7\",\n                            \"precise\": \"0.7\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"输出格式\",\n                        \"desc\": \"- **文本**: 使用普通文本格式回复\\n- **Markdown**: 将引导模型使用Markdown格式输出回复\\n- **JSON**: 将引导模型使用JSON格式输出\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"文本\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"prefix_cache\",\n                        \"label\": \"前缀缓存\",\n                        \"desc\": \"使用前缀缓存可以提高模型应用的效率并降低成本。[指引文档](http://coze.cn/open/docs/guides/llm#8b3b9036)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 4,\n                            \"label\": \"上下文缓存\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-lite-32k-character-250228\": {\n                \"display_info\": {\n                    \"name\": \"豆包·角色扮演·Pro\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-pro-32k/character-241215，角色扮演效果更优。\",\n                        \"en_us\": \"Doubao-pro-32k/character-241215, better role-playing performance.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 32768\n                },\n                \"capability\": {\n                    \"function_call\": false,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-1-5-pro-32k-250115\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.5·Pro·32k\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.5-pro-32k-250115，全新一代主力模型，性能全面升级，在知识、代码、推理、等方面表现卓越。支持32k上下文窗口，输出长度支持最大12k tokens。\",\n                        \"en_us\": \"Doubao-1.5-pro-32k-250115, the main model, with comprehensive performance upgrade, excelling in knowledge, code, reasoning, etc. It supports a 32k context window and maximum output length of 12k tokens.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 32768\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false,\n                    \"prefill_resp\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"12288\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"prefix_cache\",\n                        \"label\": \"前缀缓存\",\n                        \"desc\": \"使用前缀缓存可以提高模型应用的效率并降低成本。[指引文档](http://coze.cn/open/docs/guides/llm#8b3b9036)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 4,\n                            \"label\": \"上下文缓存\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-1-5-pro-256k-250115\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.5·Pro·256k\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.5-pro-256k 基于 Doubao-1.5-Pro 全面升级版，整体效果大幅提升 10%。支持 256k 上下文窗口的推理，输出长度支持最大 12k tokens。更高性能、更大窗口、超高性价比，适用于更广泛的应用场景。\",\n                        \"en_us\": \"Doubao-1.5-pro-256k, a comprehensive upgrade of Doubao-1.5-Pro, with overall performance improvement of 10%. It supports a 256k context window and maximum output length of 12k tokens. Higher performance, larger window, and higher cost-effectiveness, suitable for a wider range of applications.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 262144\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false,\n                    \"prefill_resp\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"12288\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-1-5-lite-32k-250115\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.5·Lite·32k\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.5-lite-32k/250115，全新一代轻量版模型，极致响应速度，效果与时延均达到全球一流水平。支持 32k 上下文窗口，输出长度支持最大 12k tokens。\",\n                        \"en_us\": \"Doubao-1.5-lite-32k/250115, the light version of Doubao-1.5-Pro, with the highest response speed and performance. It supports a 32k context window and maximum output length of 12k tokens.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 32768\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"prefix_cache\",\n                        \"label\": \"前缀缓存\",\n                        \"desc\": \"使用前缀缓存可以提高模型应用的效率并降低成本。[指引文档](http://coze.cn/open/docs/guides/llm#8b3b9036)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 4,\n                            \"label\": \"上下文缓存\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-1-5-vision-pro-32k-250115\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.5·Pro·视觉理解\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.5-pro-vision-32k/250115，具备强大的图片理解与推理能力，以及精准的指令理解能力。模型在图像文本信息抽取、基于图像的推理任务上有展现出了强大的性能，能够应用于更复杂、更广泛的视觉问答任务。\",\n                        \"en_us\": \"Doubao-1.5-pro-vision-32k/250115, with powerful image understanding and reasoning capabilities, as well as precise instruction understanding. It has shown strong performance in image-text information extraction and image-based reasoning tasks, and can be applied to more complex and diverse visual question-answering tasks.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 32768\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"4096\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-1-5-thinking-pro-250415\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.5·Pro·深度思考·128K\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.5-thinking-pro/250415，仅支持文本输入。在数学、编程、科学推理等专业领域及创意写作等通用任务中表现突出，在AIME 2024、Codeforces、GPQA等多项权威基准上达到或接近业界第一梯队水平。\",\n                        \"en_us\": \"Doubao-1.5-thinking-pro/250415, only supports text input. It excels in mathematical, programming, scientific reasoning, and creative writing tasks. It has achieved or closely approached the industry-first level on multiple authoritative benchmarks such as AIME 2024, Codeforces, GPQA, etc.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 131072\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"16384\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-1-5-thinking-pro-m-250428\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.5·Pro·视觉推理·128K\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.5-thinking-pro/m-250415，基于深度思考+视觉理解的混合训练，让模型具备视觉推理能力，更强的多模态交互能力，和更低的视觉描述幻觉。\",\n                        \"en_us\": \"Doubao-1.5-thinking-pro/m-250415, based on deep thinking and visual understanding, it enables the model to have visual reasoning capabilities, stronger multi-modal interaction abilities, and lower visual description hallucinations.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 131072\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"16384\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-1-5-thinking-vision-pro-250428\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.5·Pro·视觉深度思考\",\n                    \"description\": {\n                        \"zh_cn\": \"doubao-1-5-thinking-vision-pro-250428，最新发布的视觉-语言多模态大模型，具备更强的通用多模态理解和推理能力，在 59 个公开评测基准中的 37 个上取得 SOTA 表现。 \",\n                        \"en_us\": \"Doubao-1.5-thinking-vision-pro-250428, the latest visual-language multimodal large model, with stronger general multimodal understanding and reasoning capabilities. It has achieved SOTA performance on 37 out of 59 publicly available benchmarks.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 131072\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"16384\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"输出格式\",\n                        \"desc\": \"- **文本**: 使用普通文本格式回复\\n- **Markdown**: 将引导模型使用Markdown格式输出回复\\n- **JSON**: 将引导模型使用JSON格式输出\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"文本\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            },\n                            {\n                                \"label\": \"JSON\",\n                                \"value\": \"2\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"thinking_type\",\n                        \"label\": \"深度思考开关\",\n                        \"desc\": \"开启深度思考后，在输出最终回答之前，模型会先输出一段思维链内容，以提升最终答案的准确性。\",\n                        \"type\": 4,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"enabled\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"开启\",\n                                \"value\": \"enabled\"\n                            },\n                            {\n                                \"label\": \"关闭\",\n                                \"value\": \"disabled\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 6,\n                            \"label\": \"深度思考\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-1.5-vision-pro-250328\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.5·Pro·视觉理解-250328\",\n                    \"description\": {\n                        \"zh_cn\": \"doubao-1.5-vision-pro-250328，全新升级的多模态大模型，视觉理解、分类、信息抽取等能力显著提升，并重点增强了解题、视频理解等场景的任务效果。支持 128k 上下文窗口，输出长度支持最大 16k tokens。  \",\n                        \"en_us\": \"Doubao-1.5-vision-pro-250328, the latest multimodal large model with enhanced visual understanding, classification, and information extraction capabilities. It has significantly improved task performance in solving problems, video understanding, and other scenarios. It supports a 128k context window and a maximum output length of 16k tokens.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 131072\n                },\n                \"capability\": {\n                    \"function_call\": false,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"16384\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"输出格式\",\n                        \"desc\": \"- **文本**: 使用普通文本格式回复\\n- **Markdown**: 将引导模型使用Markdown格式输出回复\\n- **JSON**: 将引导模型使用JSON格式输出\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"文本\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-1-5-pro-32k-character-250228\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.5·Pro·角色扮演\",\n                    \"description\": {\n                        \"zh_cn\": \"doubao-1-5-pro-32k-character-250228，基于Doubao-1.5全新升级，支持故事剧情模式，优化恋爱拉扯能力（GSB+11%），角色风格能力优化 ，增强剧情推动能力\",\n                        \"en_us\": \"Doubao-1.5-pro-32k-character-250228, the latest version of Doubao-1.5 with enhanced storytelling and role-playing capabilities. It optimizes the ability to handle love affairs (GSB+11%) and improves the role-style ability. Additionally, it enhances the story-driven capabilities.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 32768\n                },\n                \"capability\": {\n                    \"function_call\": false,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"12288\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"输出格式\",\n                        \"desc\": \"- **文本**: 使用普通文本格式回复\\n- **Markdown**: 将引导模型使用Markdown格式输出回复\\n- **JSON**: 将引导模型使用JSON格式输出\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"文本\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            },\n                            {\n                                \"label\": \"JSON\",\n                                \"value\": \"2\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-1-5-ui-tars-250428\": {\n                \"display_info\": {\n                    \"name\": \"豆包·GUI·Agent模型\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.5-UI-TARS 是一款原生面向图形界面交互（GUI）的Agent模型。通过感知、推理和行动等类人的能力，与 GUI 进行无缝交互。\",\n                        \"en_us\": \"Doubao-1.5-UI-TARS is a native GUI Agent model that enables seamless interaction with GUI applications. It has the ability to perceive, reason, and act like a human, making it a powerful tool for automating tasks and enhancing user experiences.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 32768\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": false,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"0.8\",\n                            \"balance\": \"0.5\",\n                            \"precise\": \"0.2\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"-2\",\n                            \"balance\": \"0\",\n                            \"precise\": \"2\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"12288\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"response_format\",\n                        \"label\": \"输出格式\",\n                        \"desc\": \"- **文本**: 使用普通文本格式回复\\n- **Markdown**: 将引导模型使用Markdown格式输出回复\\n- **JSON**: 将引导模型使用JSON格式输出\",\n                        \"type\": 2,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"文本\",\n                                \"value\": \"0\"\n                            },\n                            {\n                                \"label\": \"Markdown\",\n                                \"value\": \"1\"\n                            },\n                            {\n                                \"label\": \"JSON\",\n                                \"value\": \"2\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"thinking_type\",\n                        \"label\": \"深度思考开关\",\n                        \"desc\": \"开启深度思考后，在输出最终回答之前，模型会先输出一段思维链内容，以提升最终答案的准确性。\",\n                        \"type\": 4,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"enabled\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"开启\",\n                                \"value\": \"enabled\"\n                            },\n                            {\n                                \"label\": \"关闭\",\n                                \"value\": \"disabled\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 6,\n                            \"label\": \"深度思考\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-seed-1-6-thinking-250615\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.6·深度思考\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.6-thinking模型思考能力大幅强化， 对比Doubao-1.5-thinking-pro，在Coding、Math、 逻辑推理等基础能力上进一步提升， 支持视觉理解。 支持 256k 上下文窗口，输出长度支持最大 16k tokens。\",\n                        \"en_us\": \"Doubao-1.6-thinking model significantly enhances its thinking capabilities compared to Doubao-1.5-thinking-pro. It further improves its base capabilities in areas such as Coding, Math, and logical reasoning. Additionally, it supports visual understanding. The model has a 256k context window and a maximum output length of 16k tokens.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 229376\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"16384\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_completion_tokens\",\n                        \"label\": \"最大推理&回答长度\",\n                        \"desc\": \"控制模型思维链推理和回复输出的最大长度（单位 token）。配置了该参数后，可以让模型输出超长内容，max_tokens （最大回复长度，默认值 4k）与思维链最大长度将失效，模型按需输出内容，直到达到“最大推理&回复长度”（max_completion_tokens） 配置的值。\\n注意：若与“最大回复长度”（max_tokens） 字段同时设置，则“最大回复长度”不会生效。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"65536\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-seed-1-6-251015\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.6·自动深度思考\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.6，全新多模态深度思考模型，支持 256k 上下文窗口，输出长度支持最大 16k tokens。支持开启/关闭思考功能。\",\n                        \"en_us\": \"Doubao-1.6, a new multimodal deep thinking model that supports a 256k context window and maximum output length of 16k tokens. It also supports enabling/disabling thinking mode.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 262144\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"32768\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"thinking_type\",\n                        \"label\": \"深度思考开关\",\n                        \"desc\": \"开启深度思考后，在输出最终回答之前，模型会先输出一段思维链内容，以提升最终答案的准确性。\",\n                        \"type\": 4,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"auto\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"开启\",\n                                \"value\": \"enabled\"\n                            },\n                            {\n                                \"label\": \"关闭\",\n                                \"value\": \"disabled\"\n                            },\n                            {\n                                \"label\": \"自动\",\n                                \"value\": \"auto\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 6,\n                            \"label\": \"深度思考\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_completion_tokens\",\n                        \"label\": \"最大推理&回答长度\",\n                        \"desc\": \"控制模型思维链推理和回复输出的最大长度（单位 token）。配置了该参数后，可以让模型输出超长内容，max_tokens （最大回复长度，默认值 4k）与思维链最大长度将失效，模型按需输出内容，直到达到“最大推理&回复长度”（max_completion_tokens） 配置的值。\\n注意：若与“最大回复长度”（max_tokens） 字段同时设置，则“最大回复长度”不会生效。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"65536\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-seed-1-6-flash-250828\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.6·极致速度\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1-6-flash-250615，推理速度极致的多模态深度思考模型，TPOT仅需10ms； 同时支持文本和视觉理解，文本理解能力超过上一代lite，视觉理解比肩友商pro系列模型。支持 256k 上下文窗口，输出长度支持最大 16k tokens。\",\n                        \"en_us\": \"Doubao-1-6-flash-250828, with the fastest inference speed among all Doubao models, it only takes 10ms to process a single query. It also supports both text and visual understanding, with text understanding capabilities exceeding those of the previous generation lite model. Its visual understanding capabilities are on par with those of friendlier pro series models. It supports a 256k context window and maximum output length of 16k tokens.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 229376\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.2\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"32768\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"thinking_type\",\n                        \"label\": \"深度思考开关\",\n                        \"desc\": \"开启深度思考后，在输出最终回答之前，模型会先输出一段思维链内容，以提升最终答案的准确性。\",\n                        \"type\": 4,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"enabled\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"开启\",\n                                \"value\": \"enabled\"\n                            },\n                            {\n                                \"label\": \"关闭\",\n                                \"value\": \"disabled\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 6,\n                            \"label\": \"深度思考\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_completion_tokens\",\n                        \"label\": \"最大推理&回答长度\",\n                        \"desc\": \"控制模型思维链推理和回复输出的最大长度（单位 token）。配置了该参数后，可以让模型输出超长内容，max_tokens （最大回复长度，默认值 4k）与思维链最大长度将失效，模型按需输出内容，直到达到“最大推理&回复长度”（max_completion_tokens） 配置的值。\\n注意：若与“最大回复长度”（max_tokens） 字段同时设置，则“最大回复长度”不会生效。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"65536\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-seed-1-6-thinking-250715\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.6·深度思考·250715\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.6-thinking-250715，深度思考能力更强化！相比250615版本文本&视觉能力显著提升，综合能力领先Doubao-Seed-1.6-250615开启thinking模式。\",\n                        \"en_us\": \"Doubao-1.6-thinking-250715, with enhanced deep thinking capabilities, it significantly improves the performance of text and visual tasks compared to the 250615 version. Its overall performance is leading Doubao-Seed-1.6-250615 when enabled in thinking mode.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 229376\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"32768\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_completion_tokens\",\n                        \"label\": \"最大推理&回答长度\",\n                        \"desc\": \"控制模型思维链推理和回复输出的最大长度（单位 token）。配置了该参数后，可以让模型输出超长内容，max_tokens （最大回复长度，默认值 4k）与思维链最大长度将失效，模型按需输出内容，直到达到“最大推理&回复长度”（max_completion_tokens） 配置的值。\\n注意：若与“最大回复长度”（max_tokens） 字段同时设置，则“最大回复长度”不会生效。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"65536\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-seed-1-6-flash-250715\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.6·极致速度·250715\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.6-flash-250715，相比flash-0615版本，0715版本思考与非思考模式的纯文本任务效果大幅提升近10%。\",\n                        \"en_us\": \"Doubao-1.6-flash-250715, compared to the flash-0615 version, the 0715 version has a 10% improvement in the performance of pure text tasks in both thinking and non-thinking modes.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 229376\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.2\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"0\",\n                            \"balance\": \"0\",\n                            \"precise\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"32768\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"thinking_type\",\n                        \"label\": \"深度思考开关\",\n                        \"desc\": \"开启深度思考后，在输出最终回答之前，模型会先输出一段思维链内容，以提升最终答案的准确性。\",\n                        \"type\": 4,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"enabled\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"开启\",\n                                \"value\": \"enabled\"\n                            },\n                            {\n                                \"label\": \"关闭\",\n                                \"value\": \"disabled\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 6,\n                            \"label\": \"深度思考\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_completion_tokens\",\n                        \"label\": \"最大推理&回答长度\",\n                        \"desc\": \"控制模型思维链推理和回复输出的最大长度（单位 token）。配置了该参数后，可以让模型输出超长内容，max_tokens （最大回复长度，默认值 4k）与思维链最大长度将失效，模型按需输出内容，直到达到“最大推理&回复长度”（max_completion_tokens） 配置的值。\\n注意：若与“最大回复长度”（max_tokens） 字段同时设置，则“最大回复长度”不会生效。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"65536\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"0\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-1-5-pro-32k-character-250715\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.5·Pro·角色扮演·250715\",\n                    \"description\": {\n                        \"zh_cn\": \"Doubao-1.5-pro-32k-character-250715，新增故事剧情模式、恋爱拉扯、真人向聊天优化，整体效果提升10~15%\",\n                        \"en_us\": \"Doubao-1.5-pro-32k-character-250715, with new features such as story plot mode, love pull, and human-like chat optimization, it has a 10~15% improvement in overall performance.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 32768\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"12288\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            },\n            \"doubao-seed-1-6-vision-250815\": {\n                \"display_info\": {\n                    \"name\": \"豆包·1.6·视觉理解-250815\",\n                    \"description\": {\n                        \"zh_cn\": \"适用于视频理解、Grounding、GUI Agent等高复杂度的场景，与Doubao-1.5-thinking-vision-pro相比，在教育、图像审核、巡检与安防和AI搜索问答等场景下展现出更强的通用多模态理解和推理能力，支持 256k 上下文窗口，输出长度支持最大 64k tokens。\",\n                        \"en_us\": \"Doubao-1.6-vision-250815, with higher complexity scenarios such as video understanding, Grounding, GUI Agent, it shows stronger general multimodal understanding and reasoning capabilities compared to Doubao-1.5-thinking-vision-pro. It supports a 256k context window and maximum output length of 64k tokens.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 262144\n                },\n                \"capability\": {\n                    \"cot_display\": true,\n                    \"function_call\": true,\n                    \"image_understanding\": true,\n                    \"video_understanding\": true,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": true\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.2\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"frequency_penalty\",\n                        \"label\": \"重复语句惩罚\",\n                        \"desc\": \"- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。\",\n                        \"type\": 1,\n                        \"min\": \"-2\",\n                        \"max\": \"2\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0\",\n                            \"creative\": \"-2\",\n                            \"balance\": \"0\",\n                            \"precise\": \"2\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"0\",\n                        \"max\": \"32768\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"4096\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"thinking_type\",\n                        \"label\": \"深度思考开关\",\n                        \"desc\": \"开启深度思考后，在输出最终回答之前，模型会先输出一段思维链内容，以提升最终答案的准确性。\",\n                        \"type\": 4,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"enabled\"\n                        },\n                        \"options\": [\n                            {\n                                \"label\": \"开启\",\n                                \"value\": \"enabled\"\n                            },\n                            {\n                                \"label\": \"关闭\",\n                                \"value\": \"disabled\"\n                            }\n                        ],\n                        \"param_class\": {\n                            \"class_id\": 6,\n                            \"label\": \"深度思考\"\n                        }\n                    }\n                ]\n            },\n            \"seed_strong_character\": {\n                \"display_info\": {\n                    \"name\": \"豆包·角色扮演\",\n                    \"description\": {\n                        \"zh_cn\": \"Seed-strong-character，通过深入分析用户的输入和行为，制定个性化的响应策略，能够灵活地适应不同角色和情境。目前该模型不支持付费扩充额度。\",\n                        \"en_us\": \"Seed-strong-character, through deep analysis of user input and behavior, it can develop personalized response strategies that can flexibly adapt to different roles and scenarios. Currently, this model does not support paid extended quota.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 32768\n                },\n                \"capability\": {\n                    \"function_call\": false,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"1\",\n                            \"precise\": \"1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"top_p\",\n                        \"label\": \"Top P\",\n                        \"desc\": \"- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.7\",\n                            \"creative\": \"0.7\",\n                            \"balance\": \"0.7\",\n                            \"precise\": \"0.7\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"32768\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"2000\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            }\n        },\n        \"Llama\": {\n            \"default\": {\n                \"display_info\": {\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 8192\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.85\",\n                            \"creative\": \"0.95\",\n                            \"balance\": \"0.85\",\n                            \"precise\": \"0.1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"2000\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"2000\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    }\n                ]\n            }\n        },\n        \"DeekSeek\": {\n            \"default\": {\n                \"display_info\": {\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 8192\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 2,\n                        \"default_val\": {\n                            \"default_val\": \"0.85\",\n                            \"creative\": \"0.95\",\n                            \"balance\": \"0.85\",\n                            \"precise\": \"0.1\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"5\",\n                        \"max\": \"2000\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"2000\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    }\n                ]\n            },\n            \"deepseek-reasoner\": {\n                \"display_info\": {\n                    \"name\": \"DeepSeek-R1·工具调用\",\n                    \"description\": {\n                        \"zh_cn\": \"R1 functionCall 版本，支持在Single-Agent模式下调用各类扣子工具（插件、工作流、知识库等）。\",\n                        \"en_us\": \"DeepSeek-R1 functionCall version, which supports calling various Coze tools (plugins, workflows, knowledge bases, etc.) in Single-Agent mode.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 8192\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"8192\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"2200\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            },\n            \"deepseek-chat\": {\n                \"display_info\": {\n                    \"name\": \"DeepSeek-V3·工具调用\",\n                    \"description\": {\n                        \"zh_cn\": \"V3 functionCall 版本，支持在Single-Agent模式下调用各类扣子工具（插件、工作流、知识库等）。\",\n                        \"en_us\": \"DeepSeek-V3 functionCall version, which supports calling various Coze tools (plugins, workflows, knowledge bases, etc.) in Single-Agent mode.\"\n                    },\n                    \"output_tokens\": 4096,\n                    \"max_tokens\": 65536\n                },\n                \"capability\": {\n                    \"function_call\": true,\n                    \"image_understanding\": false,\n                    \"video_understanding\": false,\n                    \"audio_understanding\": false,\n                    \"support_multi_modal\": false\n                },\n                \"parameters\": [\n                    {\n                        \"name\": \"temperature\",\n                        \"label\": \"生成随机性\",\n                        \"desc\": \"- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。\",\n                        \"type\": 1,\n                        \"min\": \"0\",\n                        \"max\": \"1\",\n                        \"precision\": 1,\n                        \"default_val\": {\n                            \"default_val\": \"1\",\n                            \"creative\": \"1\",\n                            \"balance\": \"0.8\",\n                            \"precise\": \"0.3\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 1,\n                            \"label\": \"生成多样性\"\n                        }\n                    },\n                    {\n                        \"name\": \"max_tokens\",\n                        \"label\": \"最大回复长度\",\n                        \"desc\": \"控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\",\n                        \"type\": 2,\n                        \"min\": \"1\",\n                        \"max\": \"8192\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"1024\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 2,\n                            \"label\": \"输入及输出设置\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_current_time\",\n                        \"label\": \"当前时间\",\n                        \"desc\": \"开启后，会在用户的每次query中拼上当前准确时间。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    },\n                    {\n                        \"name\": \"sp_anti_leak\",\n                        \"label\": \"SP防泄漏指令\",\n                        \"desc\": \"开启后将会加固提示词，显著降低提示词泄露情况的出现概率。[指引文档](http://coze.cn/open/docs/guides/llm#79e75604)\",\n                        \"type\": 3,\n                        \"min\": \"\",\n                        \"max\": \"\",\n                        \"precision\": 0,\n                        \"default_val\": {\n                            \"default_val\": \"false\"\n                        },\n                        \"options\": [],\n                        \"param_class\": {\n                            \"class_id\": 5,\n                            \"label\": \"模型默认指令\"\n                        }\n                    }\n                ]\n            }\n        }\n    }\n}"
  },
  {
    "path": "backend/conf/model/template/model_template_ark.yaml",
    "content": "id: 60000\nname: Doubao Model\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: 豆包模型简介\n    en: doubao model description\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **文本**: 使用普通文本格式回复\\n- **Markdown**: 将引导模型使用Markdown格式输出回复\\n- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **Text**: Replies in plain text format\\n- **Markdown**: Uses Markdown format for replies\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: Markdown\n          value: \"1\"\n        - label: JSON\n          value: \"2\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n        input_tokens: 128000\n        json_mode: false\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 16384\n        prefix_caching: false\n        reasoning: false\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_base64_url: false\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_doubao-1.5-lite.yaml",
    "content": "id: 60010\nname: Doubao-1.5-Lite\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: Doubao-1.5-lite，全新一代轻量版模型，极致响应速度，效果与时延均达到全球一流水平。\n    en: Doubao-1.5-lite, the new generation lightweight model, delivers ultra-fast response speed with both performance and latency reaching world-class standards.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n        input_tokens: 20000\n        json_mode: false\n        max_tokens: 32000\n        output_modal:\n            - text\n        output_tokens: 12000\n        prefix_caching: true\n        reasoning: false\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_doubao-1.5-pro-256k.yaml",
    "content": "id: 60030\nname: Doubao-1.5-Pro-256k\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: doubao-1.5-pro-256k，基于doubao-1.5-Pro全面升级版，整体效果大幅提升10%。更高性能、更大窗口、超高性价比，适用于更广泛的应用场景。\n    en: doubao-1.5-pro-256k is a fully upgraded version based on doubao-1.5-Pro, with an overall performance improvement of 10%. It offers higher performance, a larger context window, and exceptional cost-effectiveness, making it suitable for a wider range of application scenarios.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n        input_tokens: 96000\n        json_mode: false\n        max_tokens: 256000\n        output_modal:\n            - text\n        output_tokens: 12000\n        prefix_caching: false\n        reasoning: false\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_doubao-1.5-pro-32k.yaml",
    "content": "id: 60020\nname: Doubao-1.5-Pro-32k\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: Doubao-1.5-pro，全新一代主力模型，性能全面升级，在知识、代码、推理、等方面表现卓越。\n    en: Doubao-1.5-pro, the new generation flagship model, features comprehensive performance upgrades and excels in areas such as knowledge, coding, and reasoning.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n        input_tokens: 96000\n        json_mode: false\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 12000\n        prefix_caching: true\n        reasoning: false\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_doubao-1.5-thinking-pro.yaml",
    "content": "id: 60040\nname: Doubao-1.5-Thinking-Pro\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: doubao-1.5 全新深度思考模型，在数学、编程、科学推理等专业领域及创意写作等通用任务中表现突出，在 AIME 2024、Codeforces、GPQA 等多项权威基准上达到或接近业界第一梯队水平。\n    en: doubao-1.5 is a brand-new deep thinking model that excels in specialized fields such as mathematics, programming, scientific reasoning, as well as general tasks like creative writing. It achieves or approaches the industry’s top-tier level on multiple authoritative benchmarks including AIME 2024, Codeforces, and GPQA.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: JSON\n          value: \"1\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n        input_tokens: 96000\n        json_mode: true\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 16000\n        prefix_caching: false\n        reasoning: true\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_thinking: true\n        enable_base64_url: false\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_doubao-1.5-thinking-vision-pro.yaml",
    "content": "id: 60050\nname: Doubao-1.5-Thinking-Vision-Pro\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: doubao-1-5-thinking-vision-pro 全新视觉深度思考模型，具备更强的通用多模态理解和推理能力，在 59 个公开评测基准中的 37 个上取得 SOTA 表现。\n    en: doubao-1-5-thinking-vision-pro is a brand-new visual deep thinking model, featuring stronger general multimodal understanding and reasoning abilities, achieving SOTA performance on 37 out of 59 public evaluation benchmarks.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: JSON\n          value: \"1\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n            - video\n        input_tokens: 96000\n        json_mode: true\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 16000\n        prefix_caching: false\n        reasoning: true\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_thinking: true\n        enable_base64_url: false\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_doubao-1.5-vision-lite.yaml",
    "content": "id: 60060\nname: Doubao-1.5-Vision-Lite\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: doubao-1.5-vision-lite，极具性价比的多模态大模型，支持任意分辨率和极端长宽比图像识别，增强视觉推理、文档识别、细节信息理解和指令遵循能力。\n    en: doubao-1.5-vision-lite is a highly cost-effective multimodal large model that supports image recognition at any resolution and extreme aspect ratios, enhancing visual reasoning, document recognition, detailed information comprehension, and instruction-following capabilities.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: JSON\n          value: \"1\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: ark\n    capability:\n        function_call: false\n        input_modal:\n            - text\n            - image\n        input_tokens: 96000\n        json_mode: false\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 16000\n        prefix_caching: false\n        reasoning: false\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_base64_url: false\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_doubao-1.5-vision-pro.yaml",
    "content": "id: 60070\nname: Doubao-1.5-Vision-Pro\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: doubao-1.5-vision-pro，全新升级的多模态大模型，支持任意分辨率和极端长宽比图像识别，增强视觉推理、文档识别、细节信息理解和指令遵循能力。\n    en: doubao-1.5-vision-pro is a newly upgraded multimodal large model that supports image recognition at any resolution and extreme aspect ratios, enhancing visual reasoning, document recognition, detailed information comprehension, and instruction-following capabilities.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: JSON\n          value: \"1\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n            - video\n        input_tokens: 96000\n        json_mode: true\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 16000\n        prefix_caching: false\n        reasoning: true\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_thinking: true\n        enable_base64_url: false\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_doubao-seed-1.6-flash.yaml",
    "content": "id: 60080\nname: Doubao-Seed-1.6-Flash\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: 有极致推理速度的多模态深度思考模型；同时支持文本和视觉理解。文本理解能力超过上一代 Lite 系列模型，视觉理解比肩友商 Pro 系列模型。\n    en: A multimodal deep thinking model with extreme reasoning speed; it supports both text and visual understanding. Its text comprehension surpasses the previous generation Lite series models, while its visual understanding rivals competitor Pro series models.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: JSON\n          value: \"1\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n            - video\n        input_tokens: 224000\n        json_mode: true\n        max_tokens: 256000\n        output_modal:\n            - text\n        output_tokens: 32000\n        prefix_caching: true\n        reasoning: true\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_thinking: true\n        enable_base64_url: false\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_doubao-seed-1.6-thinking.yaml",
    "content": "id: 60090\nname: Doubao-Seed-1.6-Thinking\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: 在思考能力上进行了大幅强化， 对比 doubao 1.5 代深度理解模型，在编程、数学、逻辑推理等基础能力上进一步提升， 支持视觉理解。\n    en: Significantly enhanced in thinking capabilities, compared to the doubao 1.5 generation deep understanding model, with further improvements in fundamental skills such as programming, mathematics, and logical reasoning, and support for visual understanding.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: JSON\n          value: \"1\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n            - video\n        input_tokens: 224000\n        json_mode: true\n        max_tokens: 256000\n        output_modal:\n            - text\n        output_tokens: 16000\n        prefix_caching: true\n        reasoning: true\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_thinking: true\n        enable_base64_url: false\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_doubao-seed-1.6.yaml",
    "content": "id: 61010\nname: Doubao-Seed-1.6\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: 全新多模态深度思考模型，同时支持 thinking、non-thinking、auto三种思考模式。其中 non-thinking 模型对比 doubao-1.5-pro-32k-250115 模型大幅提升。\n    en: 'A brand-new multimodal deep thinking model supports three thinking modes: thinking, non-thinking, and auto. Among them, the non-thinking model has significantly improved compared to the doubao-1.5-pro-32k-250115 model.'\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: JSON\n          value: \"1\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n            - video\n        input_tokens: 224000\n        json_mode: true\n        max_tokens: 256000\n        output_modal:\n            - text\n        output_tokens: 32000\n        prefix_caching: true\n        reasoning: true\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_thinking: true\n        enable_base64_url: false\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_volc_deepseek-r1.yaml",
    "content": "id: 61020\nname: Deepseek-R1-VolcEngine\nicon_uri: default_icon/deepseek_v2.png\nicon_url: \"\"\ndescription:\n    zh: deepseek-r1 是由深度求索推出的深度思考模型。在后训练阶段大规模使用了强化学习技术，在仅有极少标注数据的情况下，极大提升了模型推理能力。在数学、代码、自然语言推理等任务上，性能比肩 OpenAI o1 正式版。\n    en: deepseek-r1 is a deep thinking model launched by Deep Seek. It extensively employs reinforcement learning during the post-training phase, significantly enhancing the model's reasoning ability with very limited annotated data. In tasks such as mathematics, coding, and natural language reasoning, its performance rivals that of the official OpenAI o1 version.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n        input_tokens: 96000\n        json_mode: false\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 32000\n        prefix_caching: true\n        reasoning: true\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_thinking: true\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ark_volc_deepseek-v3.yaml",
    "content": "id: 61030\nname: Deepseek-V3-VolcEngine\nicon_uri: default_icon/deepseek_v2.png\nicon_url: \"\"\ndescription:\n    zh: deepseek-v3 由深度求索公司自研的MoE模型，多项评测成绩超越了 qwen2.5-72b 和 llama-3.1-405b 等开源模型，并在性能上和世界顶尖的闭源模型 gpt-4o 及 claude-3.5-Sonnet 不分伯仲。\n    en: deepseek-v3 is a MoE model independently developed by Deep Seek. Its performance in multiple evaluations surpasses open-source models such as qwen2.5-72b and llama-3.1-405b, and it competes on par with world-leading closed-source models like gpt-4o and claude-3.5-Sonnet.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n        input_tokens: 96000\n        json_mode: false\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 16000\n        prefix_caching: true\n        reasoning: false\n        prefill_response: false\n    conn_config:\n        base_url: \"https://ark.cn-beijing.volces.com/api/v3/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_thinking: true\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_basic.yaml",
    "content": "id: 63010\nname: test_model\nicon_uri: default_icon/test_icon_uri.png\nicon_url: test_icon_url\ndescription:\n    zh: test_description\n    en: test_description\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: frequency_penalty\n      label:\n        zh: 重复语句惩罚\n        en: Frequency penalty\n      desc:\n        zh: '- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。'\n        en: '**Frequency Penalty**: When positive, it discourages the model from repeating the same words and phrases, thereby increasing the diversity of the output.'\n      type: float\n      min: \"-2\"\n      max: \"2\"\n      default_val:\n        default_val: \"0\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: presence_penalty\n      label:\n        zh: 重复主题惩罚\n        en: Presence penalty\n      desc:\n        zh: '- **presence penalty**: 当该值为正时，会阻止模型频繁讨论相同的主题，从而增加输出内容的多样性'\n        en: '**Presence Penalty**: When positive, it prevents the model from discussing the same topics repeatedly, thereby increasing the diversity of the output.'\n      type: float\n      min: \"-2\"\n      max: \"2\"\n      default_val:\n        default_val: \"0\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **文本**: 使用普通文本格式回复\\n- **Markdown**: 将引导模型使用Markdown格式输出回复\\n- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **Text**: Replies in plain text format\\n- **Markdown**: Uses Markdown format for replies\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: Markdown\n          value: \"1\"\n        - label: JSON\n          value: \"2\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: test_protocol\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n            - audio\n            - video\n        input_tokens: 1024\n        json_mode: true\n        max_tokens: 2048\n        output_modal:\n            - text\n            - image\n            - audio\n            - video\n        output_tokens: 1024\n        prefix_caching: false\n        reasoning: false\n        prefill_response: false\n    conn_config:\n        base_url: https://localhost:1234/v1\n        api_key: qweasdzxc\n        timeout: 10s\n        model: model_name\n        temperature: 0.7\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 2048\n        top_p: 0\n        top_k: 0\n        stop:\n            - bye\n        enable_thinking: false\n        openai:\n            by_azure: false\n            api_version: \"2024-10-21\"\n            response_format:\n                type: text\n                jsonschema: null\n        claude:\n            by_bedrock: true\n            access_key: bedrock_ak\n            secret_access_key: bedrock_secret_ak\n            session_token: bedrock_session_token\n            region: bedrock_region\n        ark:\n            region: region\n            access_key: ak\n            secret_key: sk\n            retry_times: 123\n            custom_header:\n                key: val\n        deepseek:\n            response_format_type: text\n        qwen: null\n        gemini:\n            backend: 0\n            project: \"\"\n            location: \"\"\n            api_version: \"\"\n            headers:\n                key_1:\n                    - val_1\n                    - val_2\n            timeout_ms: 0\n            include_thoughts: true\n            thinking_budget: null\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_byteplus_seed-1.6-flash.yaml",
    "content": "id: 64010\nname: Seed-1.6-Flash\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: 有极致推理速度的多模态深度思考模型；同时支持文本和视觉理解。文本理解能力超过上一代 Lite 系列模型，视觉理解比肩友商 Pro 系列模型。\n    en: A multimodal deep thinking model with extreme reasoning speed; it supports both text and visual understanding. Its text comprehension surpasses the previous generation Lite series models, while its visual understanding rivals competitor Pro series models.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: JSON\n          value: \"1\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n            - video\n        input_tokens: 224000\n        json_mode: true\n        max_tokens: 256000\n        output_modal:\n            - text\n        output_tokens: 32000\n        prefix_caching: true\n        reasoning: true\n        prefill_response: false\n    conn_config:\n        # you could change the base_url to your own\n        base_url: \"https://ark.ap-southeast.bytepluses.com/api/v3\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_base64_url: false\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_byteplus_seed-1.6.yaml",
    "content": "id: 64020\nname: Doubao-Seed-1.6\nicon_uri: default_icon/doubao_v2.png\nicon_url: \"\"\ndescription:\n    zh: 全新多模态深度思考模型，同时支持 thinking、non-thinking、auto三种思考模式。其中 non-thinking 模型对比 doubao-1.5-pro-32k-250115 模型大幅提升。\n    en: 'A brand-new multimodal deep thinking model supports three thinking modes: thinking, non-thinking, and auto. Among them, the non-thinking model has significantly improved compared to the doubao-1.5-pro-32k-250115 model.'\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: JSON\n          value: \"1\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: ark\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n            - video\n        input_tokens: 224000\n        json_mode: true\n        max_tokens: 256000\n        output_modal:\n            - text\n        output_tokens: 32000\n        prefix_caching: true\n        reasoning: true\n        prefill_response: false\n    conn_config:\n        # you could change the base_url to your own\n        base_url: \"https://ark.ap-southeast.bytepluses.com/api/v3\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\" # model_id / endpoint_id\n        temperature: 0.1\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 0.7\n        top_k: 0\n        stop: []\n        enable_base64_url: false\n        ark:\n            region: \"\"\n            access_key: \"\"\n            secret_key: \"\"\n            retry_times: null\n            custom_header: {}\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_claude.yaml",
    "content": "id: 65010\nname: Claude-3.5-Sonnet\nicon_uri: default_icon/claude_v2.png\nicon_url: \"\"\ndescription:\n    zh: claude 模型简介\n    en: claude model description\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: claude\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n        input_tokens: 128000\n        json_mode: false\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 16384\n        prefix_caching: false\n        reasoning: false\n        prefill_response: false\n    conn_config:\n        base_url: \"https://api.anthropic.com/v1/\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\"\n        temperature: 0.7\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 1\n        top_k: 0\n        stop: []\n        enable_base64_url: false\n        claude:\n            by_bedrock: false\n            access_key: \"\"\n            secret_access_key: \"\"\n            session_token: \"\"\n            region: \"\"\n            budget_tokens: 0\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_gemini.yaml",
    "content": "id: 67010\nname: Gemini-2.5-Flash\nicon_uri: default_icon/gemini_v2.png\nicon_url: \"\"\ndescription:\n    zh: gemini 模型简介\n    en: gemini model description\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **文本**: 使用普通文本格式回复\\n- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: JSON\n          value: \"2\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: gemini\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n            - audio\n            - video\n        input_tokens: 1048576\n        json_mode: true\n        max_tokens: 1114112\n        output_modal:\n            - text\n        output_tokens: 65536\n        prefix_caching: true\n        reasoning: true\n        prefill_response: true\n    conn_config:\n        base_url: \"https://generativelanguage.googleapis.com/\"\n        api_key: \"\"\n        timeout: 0s\n        model: gemini-2.5-flash\n        temperature: 0.7\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 1\n        top_k: 0\n        stop: []\n        gemini:\n            backend: 0\n            project: \"\"\n            location: \"\"\n            api_version: \"\"\n            headers:\n                key_1:\n                    - val_1\n                    - val_2\n            timeout_ms: 0\n            include_thoughts: true\n            thinking_budget: null\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_ollama.yaml",
    "content": "id: 68010\nname: Gemma-3\nicon_uri: default_icon/ollama.png\nicon_url: \"\"\ndescription:\n    zh: ollama 模型简介\n    en: ollama model description\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: ollama\n    capability:\n        function_call: true\n        input_modal:\n            - text\n        input_tokens: 128000\n        json_mode: false\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 16384\n        prefix_caching: false\n        reasoning: false\n        prefill_response: false\n    conn_config:\n        base_url: \"http://host.docker.internal:11434\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\"\n        temperature: 0.6\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        enable_base64_url: false\n        top_p: 0.95\n        top_k: 20\n        stop: []\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_openai.yaml",
    "content": "id: 69010\nname: GPT-4o\nicon_uri: default_icon/openai_v2.png\nicon_url: \"\"\ndescription:\n    zh: gpt 模型简介\n    en: Multi-modal, 320ms, 88.7% MMLU, excels in education, customer support, health, and entertainment.\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.7\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: frequency_penalty\n      label:\n        zh: 重复语句惩罚\n        en: Frequency penalty\n      desc:\n        zh: '- **frequency penalty**: 当该值为正时，会阻止模型频繁使用相同的词汇和短语，从而增加输出内容的多样性。'\n        en: '**Frequency Penalty**: When positive, it discourages the model from repeating the same words and phrases, thereby increasing the diversity of the output.'\n      type: float\n      min: \"-2\"\n      max: \"2\"\n      default_val:\n        default_val: \"0\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: presence_penalty\n      label:\n        zh: 重复主题惩罚\n        en: Presence penalty\n      desc:\n        zh: '- **presence penalty**: 当该值为正时，会阻止模型频繁讨论相同的主题，从而增加输出内容的多样性'\n        en: '**Presence Penalty**: When positive, it prevents the model from discussing the same topics repeatedly, thereby increasing the diversity of the output.'\n      type: float\n      min: \"-2\"\n      max: \"2\"\n      default_val:\n        default_val: \"0\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: response_format\n      label:\n        zh: 输出格式\n        en: Response format\n      desc:\n        zh: '- **文本**: 使用普通文本格式回复\\n- **Markdown**: 将引导模型使用Markdown格式输出回复\\n- **JSON**: 将引导模型使用JSON格式输出'\n        en: '**Response Format**:\\n\\n- **Text**: Replies in plain text format\\n- **Markdown**: Uses Markdown format for replies\\n- **JSON**: Uses JSON format for replies'\n      type: int\n      min: \"\"\n      max: \"\"\n      default_val:\n        default_val: \"0\"\n      options:\n        - label: Text\n          value: \"0\"\n        - label: Markdown\n          value: \"1\"\n        - label: JSON\n          value: \"2\"\n      style:\n        widget: radio_buttons\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\nmeta:\n    protocol: openai\n    capability:\n        function_call: true\n        input_modal:\n            - text\n            - image\n        input_tokens: 128000\n        json_mode: false\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 16384\n        prefix_caching: false\n        reasoning: false\n        prefill_response: false\n    conn_config:\n        base_url: \"https://api.openai.com/v1\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\"\n        temperature: 0.7\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        max_completion_tokens: 4096\n        top_p: 1\n        top_k: 0\n        stop: []\n        openai:\n            by_azure: false\n            api_version: \"\"\n            response_format:\n                type: text\n                jsonschema: null\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/model/template/model_template_qwen.yaml",
    "content": "id: 71010\nname: Qwen3-32B\nicon_uri: default_icon/qwen_v2.png\nicon_url: \"\"\ndescription:\n    zh: 通义千问模型\n    en: qwen model description\ndefault_parameters:\n    - name: temperature\n      label:\n        zh: 生成随机性\n        en: Temperature\n      desc:\n        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性，反之，降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'\n        en: '**Temperature**:\\n\\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\\n- It is recommended not to adjust this value with \\\"Top p\\\" at the same time.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        balance: \"0.8\"\n        creative: \"1\"\n        default_val: \"1.0\"\n        precise: \"0.3\"\n      precision: 1\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\n    - name: max_tokens\n      label:\n        zh: 最大回复长度\n        en: Response max length\n      desc:\n        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。\n        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.\n      type: int\n      min: \"1\"\n      max: \"4096\"\n      default_val:\n        default_val: \"4096\"\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 输入及输出设置\n            en: Input and output settings\n    - name: top_p\n      label:\n        zh: Top P\n        en: Top P\n      desc:\n        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择，直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇，从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'\n        en: '**Top P**:\\n\\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\\n- We recommend altering this or temperature, but not both.'\n      type: float\n      min: \"0\"\n      max: \"1\"\n      default_val:\n        default_val: \"0.95\"\n      precision: 2\n      options: []\n      style:\n        widget: slider\n        label:\n            zh: 生成多样性\n            en: Generation diversity\nmeta:\n    protocol: qwen\n    capability:\n        function_call: true\n        input_modal:\n            - text\n        input_tokens: 128000\n        json_mode: false\n        max_tokens: 128000\n        output_modal:\n            - text\n        output_tokens: 16384\n        prefix_caching: false\n        reasoning: false\n        prefill_response: false\n    conn_config:\n        base_url: \"https://dashscope.aliyuncs.com/compatible-mode/v1\"\n        api_key: \"\"\n        timeout: 0s\n        model: \"\"\n        temperature: 0.7\n        frequency_penalty: 0\n        presence_penalty: 0\n        max_tokens: 4096\n        top_p: 1\n        top_k: 0\n        stop: []\n        qwen:\n            response_format:\n                type: text\n                jsonschema: null\n        custom: {}\n    status: 0\n"
  },
  {
    "path": "backend/conf/plugin/common/oauth_schema.json",
    "content": "[\n  {\n    \"key\": \"Authorization Code\",\n    \"value\": 4,\n    \"label\": \"Authorization Code\",\n    \"items\": [\n      {\n        \"key\": \"client_id\",\n        \"type\": \"text\",\n        \"max_len\": 100,\n        \"required\": true\n      },\n      {\n        \"key\": \"client_secret\",\n        \"type\": \"text\",\n        \"max_len\": 100,\n        \"required\": true\n      },\n      {\n        \"key\": \"client_url\",\n        \"type\": \"url\",\n        \"required\": true\n      },\n      {\n        \"key\": \"scope\",\n        \"type\": \"text\",\n        \"max_len\": 500\n      },\n      {\n        \"key\": \"authorization_url\",\n        \"type\": \"url\",\n        \"required\": true\n      },\n      {\n        \"key\": \"authorization_content_type\",\n        \"type\": \"text\",\n        \"default\": \"application/json\",\n        \"required\": true\n      }\n    ]\n  }\n]"
  },
  {
    "path": "backend/conf/plugin/pluginproduct/chestnut_sign.yaml",
    "content": "info:\n  description: 任务拆解\n  title: 板栗看板\n  version: v1\nopenapi: 3.0.1\npaths:\n  /generate_tasks:\n    post:\n      operationId: generateTasks\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                input:\n                  description: 用户的完整输入内容，只支持中文\n                  type: string\n              required:\n                - input\n              type: object\n        description: new desc\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    type: number\n                  data:\n                    properties:\n                      edit_text:\n                        type: string\n                      edit_url:\n                        type: string\n                      img_url:\n                        type: string\n                      view_text:\n                        type: string\n                    type: object\n                  type_for_model:\n                    type: number\n                    x-global-disable: true\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 根据用户提问拆解任务，生成任务看板\nservers:\n  - url: https://banlikanban.com/ai/coze\n"
  },
  {
    "path": "backend/conf/plugin/pluginproduct/image_compression.yaml",
    "content": "info:\n  description: 上传图片链接，返回压缩后的base64\n  title: 图片压缩\n  version: v1\nopenapi: 3.0.1\npaths:\n  /img2base64/img2base64:\n    post:\n      operationId: img2base64\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                output_height:\n                  description: 压缩后图片高度\n                  type: integer\n                output_width:\n                  description: 压缩后图片宽度\n                  type: integer\n                quality:\n                  description: 压缩质量。范围1-100，数字越大，压缩后图片质量越高\n                  type: integer\n                url:\n                  description: 图片链接\n                  format: image_url\n                  type: string\n                  x-assist-type: image\n              required:\n                - quality\n                - url\n                - output_height\n                - output_width\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  compressed_size:\n                    description: 压缩后文件大小\n                    type: string\n                  content:\n                    description: base64图片\n                    type: string\n                  error:\n                    type: string\n                  original_size:\n                    description: 压缩前文件大小\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 压缩图片后返回base64\nservers:\n  - url: https://7458701539994107904.cozefn.cn\n"
  },
  {
    "path": "backend/conf/plugin/pluginproduct/lark_authentication_authorization.yaml",
    "content": "info:\n  description: 飞书认证及授权\n  title: 飞书认证及授权\n  version: v1\nopenapi: 3.0.1\npaths:\n  /access_token/get_tenant_access_token:\n    post:\n      operationId: get_tenant_access_token\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                app_id:\n                  description: 应用唯一标识，创建应用后获得。\n                  type: string\n                app_secret:\n                  description: 应用秘钥，创建应用后获得。\n                  type: string\n              required:\n                - app_id\n                - app_secret\n              type: object\n        description: new desc\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 取值表示失败\n                    type: number\n                  expire:\n                    description: tenant_access_token 的过期时间，单位为秒\n                    type: number\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                  tenant_access_token:\n                    description: 租户访问凭证\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: |-\n        自建应用通过此接口获取 tenant_access_token。\n        \n        说明： tenant_access_token 的最大有效期是 2 小时。如果在有效期小于 30 分钟的情况下，调用本接口，会返回一个新的 tenant_access_token，这会同时存在两个有效的 tenant_access_token。\nservers:\n  - url: https://lark-plugin-api.solutionsuite.cn/lark-plugin\n"
  },
  {
    "path": "backend/conf/plugin/pluginproduct/lark_calendar.yaml",
    "content": "info:\n  description: 在飞书上日历上创建日程、更新日程、删除日程、查询日程信息\n  title: 飞书日历\n  version: v1\nopenapi: 3.0.1\npaths:\n  /calendar/create_event:\n    post:\n      operationId: create_event\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                auto_record:\n                  description: 是否开启自动录制，true：开启，会议开始后自动录制；false：不开启\n                  type: boolean\n                description:\n                  description: 日程描述\n                  type: string\n                end_time:\n                  description: 日程结束时间，格式：2006-01-02 15:04:05\n                  type: string\n                need_notification:\n                  description: 更新日程时是否发送bot消息，true：发送，false：不发送\n                  type: boolean\n                start_time:\n                  description: 日程开始时间，格式：2006-01-02 15:04:05\n                  type: string\n                summary:\n                  description: 日程标题，若不填则日程标题显示 (无主题)\n                  type: string\n              required:\n                - start_time\n                - end_time\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示错误\n                    type: number\n                  data:\n                    description: 返回数据\n                    properties:\n                      appLink:\n                        description: 日程的 app_link，跳转到具体的某个日程\n                        type: string\n                      create_time:\n                        description: 日程创建时间,格式:yyyy-MM-dd HH:mm:ss，如 2024-07-23 14:55:33\n                        type: string\n                      description:\n                        description: 日程描述\n                        type: string\n                      end_time:\n                        description: 日程结束时间,格式:yyyy-MM-dd HH:mm:ss，如 2024-07-22 17:05:00\n                        type: string\n                      event_id:\n                        description: 日程 ID\n                        type: string\n                      event_organizer:\n                        description: 日程组织者信息\n                        properties:\n                          display_name:\n                            description: 日程组织者姓名\n                            type: string\n                          user_id:\n                            description: 日程组织者 ID\n                            type: string\n                        type: object\n                      organizer_calendar_id:\n                        description: 日程组织者日历 ID\n                        type: string\n                      recurrence:\n                        description: 重复日程的重复性规则\n                        type: string\n                      start_time:\n                        description: 日程开始时间,格式:yyyy-MM-dd HH:mm:ss，如 2024-07-22 16:05:00\n                        type: string\n                      status:\n                        description: 日程状态\n                        type: string\n                      summary:\n                        description: 日程标题\n                        type: string\n                    type: object\n                  log_id:\n                    description: 日志id\n                    type: string\n                  msg:\n                    description: 返回信息\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 创建日程\n  /calendar/delete_event/{event_id}:\n    delete:\n      operationId: delete_event\n      parameters:\n        - description: 日程 ID，例如：e8b9791c-39ae-4908-8ad8-66b13159b9fb_0\n          in: path\n          name: event_id\n          required: true\n          schema:\n            type: string\n        - description: 删除日程是否给日程参与人发送Bot通知\n          in: query\n          name: need_notification\n          schema:\n            default: \"true\"\n            type: string\n      requestBody:\n        content:\n          application/json:\n            schema:\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败\n                    type: integer\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 删除日程\n  /calendar/get_primary_calendar:\n    get:\n      operationId: get_primary_calendar\n      parameters:\n        - description: 用户 ID 类型\n          in: query\n          name: user_id_type\n          schema:\n            default: open_id\n            type: string\n      requestBody:\n        content:\n          application/json:\n            schema:\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败\n                    type: integer\n                  data:\n                    description: 返回数据\n                    properties:\n                      calendars:\n                        description: 主日历列表\n                        items:\n                          description: 日历实体信息\n                          properties:\n                            calendar:\n                              description: 日历实体信息\n                              properties:\n                                calendar_id:\n                                  description: 日历 ID\n                                  type: string\n                                color:\n                                  description: 日历颜色，由颜色 RGB 值的 int32 表示\n                                  type: integer\n                                description:\n                                  description: 日历描述\n                                  type: string\n                                is_deleted:\n                                  description: 对于当前身份，日历是否已经被标记为删除\n                                  type: boolean\n                                is_third_party:\n                                  description: 当前日历是否是第三方数据\n                                  type: boolean\n                                permissions:\n                                  description: 日历公开范围，private：私密，show_only_free_busy：仅展示忙闲信息，public：公开，他人可查看日程详情\n                                  type: string\n                                role:\n                                  description: 当前身份对于该日历的访问权限\n                                  type: string\n                                summary:\n                                  description: 日历标题\n                                  type: string\n                                summary_alias:\n                                  description: 日历备注名\n                                  type: string\n                                type:\n                                  description: 日历类型\n                                  type: string\n                              type: object\n                            user_id:\n                              description: 日历创建者的 User ID\n                              type: string\n                          type: object\n                        type: array\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 查询主日历信息\n  /calendar/list_events:\n    get:\n      operationId: list_events\n      parameters:\n        - description: 一次请求要求返回的最大日程数量，范围50-1000\n          in: query\n          name: page_size\n          schema:\n            default: \"50\"\n            type: string\n        - description: 分页标记\n          in: query\n          name: page_token\n          schema:\n            type: string\n        - description: 开始时间,不传值时默认当天0点时间,格式:yyyy-MM-dd HH:mm:ss,如:2006-01-02 15:04:05\n          in: query\n          name: start_time\n          schema:\n            type: string\n        - description: 结束时间,不传值时默认当天23:59分时间,格式:yyyy-MM-dd HH:mm:ss,如:2006-01-02 15:04:05\n          in: query\n          name: end_time\n          schema:\n            type: string\n      requestBody:\n        content:\n          application/json:\n            schema:\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败\n                    type: integer\n                  data:\n                    description: 返回数据\n                    properties:\n                      has_more:\n                        description: 是否还有更多项\n                        type: boolean\n                      items:\n                        description: 日程列表，结果为空时返回空数组\n                        items:\n                          description: 日程信息\n                          properties:\n                            app_link:\n                              description: 日程的 app_link，跳转到具体的某个日程\n                              type: string\n                            create_time:\n                              description: 日程创建时间,格式:yyyy-MM-dd HH:mm:ss,如:2006-01-02 15:04:05\n                              type: string\n                            description:\n                              description: 日程描述\n                              type: string\n                            end_time:\n                              description: 结束时间,格式:yyyy-MM-dd HH:mm:ss,如:2006-01-02 17:04:05\n                              type: string\n                            event_id:\n                              description: 日程 ID\n                              type: string\n                            event_organizer:\n                              description: 日程组织者信息\n                              properties:\n                                display_name:\n                                  description: 日程组织者姓名\n                                  type: string\n                                user_id:\n                                  description: 日程组织者 user ID\n                                  type: string\n                              type: object\n                            organizer_calendar_id:\n                              description: 日程组织者的日历 ID\n                              type: string\n                            recurrence:\n                              description: 重复日程的重复性规则\n                              type: string\n                            start_time:\n                              description: 开始时间,格式:yyyy-MM-dd HH:mm:ss,如:2006-01-02 15:04:05\n                              type: string\n                            status:\n                              description: 日程状态\n                              type: string\n                            summary:\n                              description: 日程标题\n                              type: string\n                          type: object\n                        type: array\n                      page_token:\n                        description: 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token\n                        type: string\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 获取日程列表\n  /calendar/search_events:\n    post:\n      operationId: search_events\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                end_time:\n                  description: 日程搜索区间的结束时间，不传默认取当天23:59分时间，格式：2024-08-12 23:00:00\n                  type: string\n                page_size:\n                  default: 20\n                  description: 一次调用所返回的最大日程数量，最大值100\n                  type: integer\n                page_token:\n                  description: 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果\n                  type: string\n                query:\n                  description: 搜索关键字，用于模糊查询日程名称，最大输入200字符数，必填，不允许空串\n                  type: string\n                start_time:\n                  description: 日程搜索区间的开始时间，不传默认取当天0点时间，格式：2024-08-01 10:00:00\n                  type: string\n                user_id_type:\n                  default: open_id\n                  description: 用户 ID 类型，枚举值：open_id、union_id、user_id\n                  type: string\n              required:\n                - query\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，0表示成功，其他值表示失败\n                    type: integer\n                  data:\n                    description: 返回数据\n                    properties:\n                      items:\n                        description: 日程列表\n                        items:\n                          description: 日程信息\n                          properties:\n                            app_link:\n                              description: 日程的 app_link，跳转到具体的某个日程\n                              type: string\n                            description:\n                              description: 日程描述\n                              type: string\n                            end_time:\n                              description: 日程结束时间,格式：2024-08-18 01:00:00\n                              type: string\n                            event_id:\n                              description: 日程 ID，如：46b9231b-244e-4d3c-845e-0a4d25469b5b_0\n                              type: string\n                            organizer_calendar_id:\n                              description: 日程组织者的日历 ID\n                              type: string\n                            recurrence:\n                              description: 重复日程的重复性规则\n                              type: string\n                            start_time:\n                              description: 日程开始时间,格式：2024-08-18 00:30:00\n                              type: string\n                            status:\n                              description: 日程状态，可选值有 tentative ：未回应；confirmed：已确认；\n                              type: string\n                            summary:\n                              description: 日程标题\n                              type: string\n                          type: object\n                        type: array\n                      page_token:\n                        description: 分页token\n                        type: string\n                    type: object\n                  log_id:\n                    description: 日志 ID\n                    type: string\n                  msg:\n                    description: 错误信息\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 搜索日程\n  /calendar/update_event/{event_id}:\n    patch:\n      operationId: update_event\n      parameters:\n        - description: 日程 ID，例如：e8b9791c-39ae-4908-8ad8-66b13159b9fb_0\n          in: path\n          name: event_id\n          required: true\n          schema:\n            type: string\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                auto_record:\n                  description: 开启自动录制，true：录制，false：不录制，不传则不更新此字段\n                  type: boolean\n                description:\n                  description: 日程描述，空表示不更新该字段\n                  type: string\n                end_time:\n                  description: 日程结束时间，格式：2024-07-22 22:30:00，不传该字段则不更新\n                  type: string\n                need_notification:\n                  description: 更新日程时是否发送bot消息，不传则不更新\n                  type: boolean\n                start_time:\n                  description: 日程开始时间，格式：2024-07-22 22:30:00，不传该字段则不更新\n                  type: string\n                summary:\n                  description: 日程标题，空表示不更新该字段\n                  type: string\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败\n                    type: number\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 更新日程\nservers:\n  - url: https://lark-plugin-api.solutionsuite.cn/lark-plugin\n"
  },
  {
    "path": "backend/conf/plugin/pluginproduct/lark_docx.yaml",
    "content": "info:\n  description: |-\n    飞书云文档，支持以下操作：\n    \n    1. 创建文档；\n    2. 在文档中新增内容，支持 纯文本或者 markdown 格式；\n    3. 获取文档的内容，支持以纯文本或者 Markdown 格式返回；\n    4. 获取文档的所有块；\n    5. 获取文档的基本信息；\n    6. 搜索文档类型的文档；\n    7. 搜索 PPT 类型的文档；\n  title: 飞书云文档\n  version: v1\nopenapi: 3.0.1\npaths:\n  /document/create_document:\n    post:\n      operationId: create_document\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                content:\n                  description: 文档内容，支持 markdown 语法，可以为空。\n                  type: string\n                folder_token:\n                  description: 指定文档所在文件夹 的 Token，不传或传空表示根目录。支持输入文件夹 token 或者 文件夹 URL。\n                  type: string\n                title:\n                  description: 文档标题，只支持纯文本。\n                  type: string\n              type: object\n        description: new desc\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败。\n                    type: number\n                  data:\n                    description: 返回结果\n                    properties:\n                      title:\n                        description: 文档标题\n                        type: string\n                      token:\n                        description: 文档唯一标识\n                        type: string\n                      type:\n                        description: 文档类型\n                        type: string\n                      url:\n                        description: 文档链接\n                        type: string\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 创建文档，支持创建空文档和带内容的文档，支持 markdown 语法创建。\n  /document/get_document_content:\n    get:\n      operationId: get_document_content\n      parameters:\n        - description: 文档的唯一标识，支持输入文档的 URL。支持新文档和老文档，老文档不支持 markdown 格式获取。\n          in: query\n          name: document_id\n          required: true\n          schema:\n            type: string\n        - description: 指定返回的 MentionUser 即 @用户 的语言，可选值有 [0,1]。0：该用户的默认名称，1：该用户的英文名称，默认值为 0。\n          in: query\n          name: lang\n          schema:\n            default: 0\n            type: integer\n        - description: 文档返回格式，可选值有 text、markdown，可以为空，默认值为 markdown。\n          in: query\n          name: mode\n          schema:\n            default: markdown\n            type: string\n      requestBody:\n        content:\n          application/json:\n            schema:\n              type: object\n        description: new desc\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败。\n                    type: number\n                  data:\n                    description: 返回结果\n                    properties:\n                      content:\n                        description: 文档纯文本\n                        type: string\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 获取文档的内容，支持以纯文本或者 markdown 格式返回。\n  /document/get_document_info:\n    get:\n      operationId: get_document_info\n      parameters:\n        - description: 文档的唯一标识，支持输入文档的 URL。\n          in: query\n          name: document_id\n          required: true\n          schema:\n            type: string\n      requestBody:\n        content:\n          application/json:\n            schema:\n              type: object\n        description: new desc\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败。\n                    type: number\n                  data:\n                    description: 返回结果\n                    properties:\n                      document:\n                        description: 文档信息\n                        properties:\n                          document_id:\n                            description: 文档的唯一标识\n                            type: string\n                          title:\n                            description: 文档标题\n                            type: string\n                        type: object\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 获取文档的基本信息\n  /document/list_document_blocks:\n    get:\n      operationId: list_document_blocks\n      parameters:\n        - description: 查询的文档版本，-1 表示文档最新版本。文档创建后，版本为 1。若查询的版本为文档最新版本，则需要持有文档的阅读权限；若查询的版本为文档的历史版本，则需要持有文档的编辑权限。你可通过调用获取文档基本信息获取文档的 revision_id。\n          in: query\n          name: document_revision_id\n          schema:\n            default: -1\n            type: integer\n            x-global-disable: true\n        - description: 用户 ID 类型，可选值有 open_id、union_id、user_id，默认值为 open_id。\n          in: query\n          name: user_id_type\n          schema:\n            default: open_id\n            type: string\n        - description: 文档的唯一标识，支持输入文档的 URL。\n          in: query\n          name: document_id\n          required: true\n          schema:\n            type: string\n        - description: 分页大小\n          in: query\n          name: page_size\n          schema:\n            default: 500\n            type: integer\n        - description: 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果。\n          in: query\n          name: page_token\n          schema:\n            type: string\n      requestBody:\n        content:\n          application/json:\n            schema:\n              type: object\n        description: new desc\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败。\n                    type: number\n                  data:\n                    description: 返回结果\n                    properties:\n                      has_more:\n                        description: 是否还有更多项\n                        type: boolean\n                      items:\n                        description: 文档的 Block 信息\n                        items:\n                          description: 文档的 Block 信息项，格式为 json 字符串。\n                          type: string\n                        type: array\n                      page_token:\n                        description: 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token。\n                        type: string\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 获取文档的所有块，获取文档所有块的富文本内容并分页返回。\n  /document/search_document:\n    post:\n      operationId: search_document\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                count:\n                  description: 指定搜索返回的文件数量。取值范围为 [0,50]。\n                  type: integer\n                offset:\n                  description: 指定搜索的偏移量，该参数最小为 0，即不偏移。该参数的值与返回的文件数量之和不得小于或等于 200（即 offset + count < 200）。\n                  type: integer\n                search_key:\n                  description: 指定搜索的关键字\n                  type: string\n              required:\n                - search_key\n              type: object\n        description: new desc\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败。\n                    type: number\n                  data:\n                    description: 返回结果\n                    properties:\n                      docs_entities:\n                        description: 包含搜索关键词的文件列表\n                        items:\n                          description: 包含搜索关键词的文件\n                          properties:\n                            docs_token:\n                              description: 文件的 token\n                              type: string\n                            docs_type:\n                              description: 文件的类型\n                              type: string\n                            owner_id:\n                              description: 文件的所有者\n                              type: string\n                            title:\n                              description: 文件的标题\n                              type: string\n                            url:\n                              description: 文档的链接\n                              type: string\n                          type: object\n                        type: array\n                      has_more:\n                        description: 结果列表后是否还有数据\n                        type: boolean\n                      total:\n                        description: 包含搜索关键词的文件总数量\n                        type: number\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 搜索文档类型的文档\n  /document/search_slides:\n    post:\n      operationId: search_slides\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                count:\n                  description: 指定搜索返回的文件数量。取值范围为 [0,50]。\n                  type: integer\n                offset:\n                  description: 指定搜索的偏移量，该参数最小为 0，即不偏移。该参数的值与返回的文件数量之和不得小于或等于 200（即 offset + count < 200）。\n                  type: integer\n                search_key:\n                  description: 指定搜索的关键字\n                  type: string\n              required:\n                - search_key\n              type: object\n        description: new desc\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败。\n                    type: number\n                  data:\n                    description: 返回结果\n                    properties:\n                      docs_entities:\n                        description: 包含搜索关键词的文件列表\n                        items:\n                          description: 包含搜索关键词的文件\n                          properties:\n                            docs_token:\n                              description: 文件的 token\n                              type: string\n                            docs_type:\n                              description: 文件的类型\n                              type: string\n                            owner_id:\n                              description: 文件的所有者\n                              type: string\n                            title:\n                              description: 文件的标题\n                              type: string\n                            url:\n                              description: 文档的链接\n                              type: string\n                          type: object\n                        type: array\n                      has_more:\n                        description: 结果列表后是否还有数据\n                        type: boolean\n                      total:\n                        description: 包含搜索关键词的文件总数量\n                        type: number\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 搜索 PPT 类型的文档\n  /document/write_document:\n    post:\n      operationId: write_document\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                content:\n                  description: 纯文本或者 markdown 内容，注意文档的内嵌套表格不允许有单元格合并。\n                  type: string\n                document_id:\n                  description: 文档的唯一标识，支持输入文档的 URL。\n                  type: string\n                position:\n                  default: end\n                  description: '枚举值 start、end，start: 在文档开头添加内容；end: 在文档结尾添加内容，默认值为 end。'\n                  type: string\n              required:\n                - document_id\n                - content\n              type: object\n        description: new desc\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败。\n                    type: integer\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 在文档中新增内容，支持纯文本或者 markdown 格式。\n  /drive/download_media:\n    get:\n      operationId: download_media\n      parameters:\n        - description: 素材唯一标识\n          in: query\n          name: file_token\n          required: true\n          schema:\n            type: string\n        - description: 拥有高级权限的多维表格在下载素材时，需要添加额外的扩展信息作为 URL 查询参数鉴权。详情参考https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/media/introduction\n          in: query\n          name: extra\n          schema:\n            type: string\n      requestBody:\n        content:\n          application/json:\n            schema:\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败。\n                    type: number\n                  data:\n                    description: 响应数据\n                    properties:\n                      file_base64:\n                        description: 素材base64\n                        type: string\n                      file_name:\n                        description: 素材名称\n                        type: string\n                      file_token:\n                        description: 素材唯一标识\n                        type: string\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 失败描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 下载素材\n  /drive/upload_media:\n    post:\n      operationId: upload_media\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                extra:\n                  description: 额外参数。参考文档：https://open.larkoffice.com/document/server-docs/docs/drive-v1/media/introduction#3b8635d3\n                  type: string\n                  x-global-disable: true\n                file_name:\n                  description: 待上传的素材的名称 示例值：\"demo.jpeg\" 数据校验规则： - 最大长度：250 字符\n                  type: string\n                file_url:\n                  description: 待上传的素材链接，需要在国内可公开访问\n                  type: string\n                parent_node:\n                  description: 上传点的 token，即要上传的云文档的 token，用于指定素材将要上传到的云文档或位置。支持填写文档URL\n                  type: string\n                parent_type:\n                  description: 上传点的类型。 示例值：\"docx_image\"、\"bitable_image\"，参考文档：https://open.larkoffice.com/document/server-docs/docs/drive-v1/media/introduction\n                  type: string\n              required:\n                - file_url\n                - file_name\n                - parent_type\n                - parent_node\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败。\n                    type: number\n                  data:\n                    description: 响应结果\n                    properties:\n                      file_token:\n                        description: 上传的素材唯一标识\n                        type: string\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 上传素材到飞书云文档、文档空间、多维表格、电子表格。上传成功后获取对应素材的飞书file_token。详见飞书开发文档 https://open.larkoffice.com/document/server-docs/docs/drive-v1/media/introduction\nservers:\n  - url: https://lark-plugin-api.solutionsuite.cn/lark-plugin\n"
  },
  {
    "path": "backend/conf/plugin/pluginproduct/lark_task.yaml",
    "content": "info:\n  description: |-\n    调用飞书开放平台任务相关API，支持以下操作：\n    1.创建任务：输入任务标题、开始时间、结束时间等信息创建飞书任务；\n    2.更新任务：对飞书任务的任务标题、任务时间等信息做修改；\n    3.删除任务：对创建的飞书任务做删除；\n    4.列出所有任务：查询用户下单所有飞书任务；\n  title: 飞书任务\n  version: v1\nopenapi: 3.0.1\npaths:\n  /task/create_task:\n    post:\n      operationId: create_task\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                completed_at:\n                  description: 任务完成时间，格式：2006-01-02 15:04:05，不填写表示创建一个未完成任务；填写一个具体的时间表示创建一个已完成任务\n                  type: string\n                description:\n                  description: 任务备注\n                  type: string\n                end_time:\n                  description: 任务结束时间，格式：2006-01-02 15:04:05\n                  type: string\n                start_time:\n                  description: 任务开始时间，格式：2006-01-02 15:04:05\n                  type: string\n                summary:\n                  description: 任务标题\n                  type: string\n              required:\n                - summary\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非0表示失败\n                    type: number\n                  data:\n                    description: 返回数据\n                    properties:\n                      completed_at:\n                        description: 任务完成时间，格式：2024-07-19 20:50:00\n                        type: string\n                      created_at:\n                        description: 任务创建时间，格式：2024-07-19 20:50:00\n                        type: string\n                      creator:\n                        description: 任务创建者信息\n                        properties:\n                          id:\n                            description: 创建者用户 ID\n                            type: string\n                          type:\n                            description: 创建者类型\n                            type: string\n                        type: object\n                      description:\n                        description: 任务描述\n                        type: string\n                      end_time:\n                        description: 任务截止时间，格式：2024-07-19 21:20:00\n                        type: string\n                      guid:\n                        description: 任务guid，任务的唯一ID\n                        type: string\n                      is_end_time_all_day:\n                        description: 结束时间是否截止到一个日期\n                        type: boolean\n                      is_start_time_all_day:\n                        description: 开始时间是否截止到一个日期\n                        type: boolean\n                      members:\n                        description: 成员列表\n                        items:\n                          description: 成员信息\n                          properties:\n                            id:\n                              description: 成员 ID\n                              type: string\n                            name:\n                              description: 成员名称\n                              type: string\n                            role:\n                              description: 成员角色\n                              type: string\n                            type:\n                              description: 成员类型\n                              type: string\n                          type: object\n                        type: array\n                      mode:\n                        description: 任务的模式。1 - 会签任务；2 - 或签任务\n                        type: integer\n                      parent_task_guid:\n                        description: 如果当前任务为某个任务的子任务，返回父任务的guid\n                        type: string\n                      repeat_rule:\n                        description: 如果任务为重复任务，返回重复任务的配置\n                        type: string\n                      source:\n                        description: 任务来源\n                        type: integer\n                      start_time:\n                        description: 任务开始时间，格式：2024-07-19 20:20:00\n                        type: string\n                      status:\n                        description: 任务状态，支持\"todo\"和\"done\"两种状态\n                        type: string\n                      subtask_count:\n                        description: 该任务的子任务的个数\n                        type: integer\n                      summary:\n                        description: 任务标题\n                        type: string\n                      task_id:\n                        description: 任务界面上的代码\n                        type: string\n                      url:\n                        description: 任务的分享链接\n                        type: string\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 创建飞书任务,根据输入的任务标题、任务时间创建飞书任务\n  /task/delete_task:\n    delete:\n      operationId: delete_task\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                task_guid:\n                  description: 要删除的任务guid，支持传任务ID和任务链接URL，任务ID 例如：8b5425ec-9f2a-43bd-a3ab-01912f50282b；任务链接url 例如：https://applink.feishu-pre.net/client/todo/detail?guid=8c6bf822-e4da-449a-b82a-dc44020f9be9&suite_entity_num=t21587362\n                  type: string\n              required:\n                - task_guid\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败\n                    type: integer\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: ' 错误描述'\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 删除飞书任务\n  /task/list_tasks:\n    get:\n      operationId: list_tasks\n      parameters:\n        - description: 用户 ID 类型\n          in: query\n          name: user_id_type\n          schema:\n            default: open_id\n            type: string\n        - description: 每页的任务数量，取值范围1-100\n          in: query\n          name: page_size\n          schema:\n            default: 10\n            type: integer\n        - description: 查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果\n          in: query\n          name: page_token\n          schema:\n            type: string\n        - description: 是否按任务完成进行过滤。填写true表示只列出已完成任务；填写false表示只列出未完成任务。不填写表示不过滤。\n          in: query\n          name: completed\n          schema:\n            type: boolean\n      requestBody:\n        content:\n          application/json:\n            schema:\n              type: object\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非0表示失败\n                    type: integer\n                  data:\n                    description: 返回数据\n                    properties:\n                      has_more:\n                        description: 是否还有更多项\n                        type: boolean\n                      items:\n                        description: 返回的任务列表\n                        items:\n                          description: 任务信息\n                          properties:\n                            completed_at:\n                              description: 任务完成的时间，格式：2024-07-19 21:20:00\n                              type: string\n                            created_at:\n                              description: 任务创建时间，格式：2024-07-19 21:20:00\n                              type: string\n                            creator:\n                              description: 任务创建者\n                              properties:\n                                id:\n                                  description: 表示member的id\n                                  type: string\n                                role:\n                                  description: 成员角色\n                                  type: string\n                                type:\n                                  description: 成员的类型\n                                  type: string\n                              type: object\n                            description:\n                              description: 任务备注\n                              type: string\n                            end_time:\n                              description: 任务结束时间，格式：2024-07-19 21:20:00\n                              type: string\n                            guid:\n                              description: 任务guid，任务的唯一ID\n                              type: string\n                            is_end_time_all_day:\n                              description: 结束时间是否截止到一个日期\n                              type: boolean\n                            is_milestone:\n                              description: 是否是里程碑任务\n                              type: boolean\n                            is_start_time_all_day:\n                              description: 开始时间是否截止到一个日期\n                              type: boolean\n                            members:\n                              description: 任务成员列表\n                              items:\n                                description: 成员信息\n                                properties:\n                                  id:\n                                    description: 表示member的id\n                                    type: string\n                                  role:\n                                    description: 成员角色\n                                    type: string\n                                  type:\n                                    description: 成员的类型\n                                    type: string\n                                type: object\n                              type: array\n                            mode:\n                              description: 任务的模式。1 - 会签任务；2 - 或签任务\n                              type: integer\n                            parent_task_guid:\n                              description: 如果当前任务为某个任务的子任务，返回父任务的guid\n                              type: string\n                            repeat_rule:\n                              description: 如果任务为重复任务，返回重复任务的配置\n                              type: string\n                            source:\n                              description: 任务创建的来源\n                              type: integer\n                            start_time:\n                              description: 任务开始时间，格式：2024-07-19 21:20:00\n                              type: string\n                            status:\n                              description: 任务的状态，支持\"todo\"和\"done\"两种状态\n                              type: string\n                            subtask_count:\n                              description: 该任务的子任务个数\n                              type: integer\n                            summary:\n                              description: 任务标题\n                              type: string\n                            task_id:\n                              description: 任务界面上的代码\n                              type: string\n                            updated_at:\n                              description: 任务最后一次更新的时间，格式：2024-07-19 21:20:00\n                              type: string\n                            url:\n                              description: 任务的分享链接\n                              type: string\n                          type: object\n                        type: array\n                      page_token:\n                        description: 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token\n                        type: string\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 列取飞书任务列表\n  /task/update_task:\n    patch:\n      operationId: update_task\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                completed_time:\n                  description: 任务完成时间,有传入才更新，格式：2024-08-19 11:20:00\n                  type: string\n                description:\n                  description: 任务描述：如：进行一场需求评审会\n                  type: string\n                end_time:\n                  description: 任务结束时间,有传入才更新，格式：2024-08-15 23:20:00\n                  type: string\n                start_time:\n                  description: 任务开始时间,有传入才更新，格式：2024-08-15 23:00:00\n                  type: string\n                summary:\n                  description: 任务标题，如：需求评审\n                  type: string\n                task_guid:\n                  description: 任务ID，支持 传入任务ID和任务链接URL，任务ID 如：42cad8a0-f8c8-4344-9be2-d1d7e8e91b64；任务链接url 如：https://applink.feishu-pre.net/client/todo/detail?guid=42cad8a0-f8c8-4344-9be2-d1d7e8e91b64&suite_entity_num=t21700217\n                  type: string\n              required:\n                - task_guid\n              type: object\n        description: new desc\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                properties:\n                  code:\n                    description: 错误码，非 0 表示失败\n                    type: integer\n                  data:\n                    description: 任务信息\n                    properties:\n                      completed_time:\n                        description: 任务完成时间，格式：2024-09-17 23:30:00\n                        type: string\n                      created_at:\n                        description: 创建时间，格式：2024-09-17 23:30:00\n                        type: string\n                      description:\n                        description: 任务描述\n                        type: string\n                      end_time:\n                        description: 任务结束时间，格式：2024-08-17 12:00:00\n                        type: string\n                      start_time:\n                        description: 任务开始时间，格式：2024-08-16 10:00:00\n                        type: string\n                      summary:\n                        description: ' 任务标题'\n                        type: string\n                      task_guid:\n                        description: 任务 ID\n                        type: string\n                      updated_at:\n                        description: 更新时间，格式：2024-09-17 23:30:00\n                        type: string\n                    type: object\n                  log_id:\n                    description: 链路追踪 id\n                    type: string\n                  msg:\n                    description: 错误描述\n                    type: string\n                type: object\n          description: new desc\n        default:\n          description: \"\"\n      summary: 更新飞书任务\nservers:\n  - url: https://lark-plugin-api.solutionsuite.cn/lark-plugin\n"
  },
  {
    "path": "backend/crossdomain/datacopy/model/.gitkeep",
    "content": ""
  },
  {
    "path": "backend/infra/dynconf/impl/.gitkeep",
    "content": ""
  },
  {
    "path": "common/_templates/component/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "common/_templates/node-core/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "common/_templates/rsbuild-web/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "common/_templates/rspack-web/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "common/_templates/rspack-web/src/components/.gitkeep",
    "content": ""
  },
  {
    "path": "common/_templates/rspack-web/src/utils/.gitkeep",
    "content": ""
  },
  {
    "path": "common/_templates/solid-component/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "docker/nginx/ssl/.gitkeep",
    "content": ""
  },
  {
    "path": "docker/volumes/etcd/etcd.conf.yml",
    "content": ""
  },
  {
    "path": "docs/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/apps/coze-studio/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/config/rsbuild-config/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/infra/idl/idl-parser/__tests__/idl/unify_base.thrift",
    "content": ""
  },
  {
    "path": "frontend/infra/utils/monorepo-kits/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/agent-publish/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/bot-audit-base/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/bot-config-area/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/bot-config-area-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/bot-editor-context-store/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/bot-plugin/entry/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/bot-plugin/export/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/bot-plugin/mock-set/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/bot-plugin/plugin-risk-warning/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/bot-plugin/tools/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/chat-answer-action-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/chat-area-plugin-debug-common/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/chat-area-provider/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/chat-area-provider-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/chat-background/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/chat-background-config-content/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/chat-background-config-content-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/chat-background-shared/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/chat-components-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/chat-debug-area/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/commons/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/context/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/debug-tool-list/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/entry/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/entry-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/layout/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/layout-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/memory-tool-pane-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/model-manager/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/navigate/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/onboarding-message-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/plugin-area-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/plugin-content/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/plugin-content-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/plugin-modal-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/plugin-setting/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/plugin-setting-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/plugin-shared/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/prompt/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/prompt-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/publish-to-base/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/skills-pane-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/tool/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/workflow/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/workflow-as-agent-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/workflow-card-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/workflow-item/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/agent-ide/workflow-modal/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/api-schema/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/bot-api/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/bot-env/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/bot-env-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/bot-error/stories/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/bot-md-box-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/bot-monaco-editor/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/default-slardar/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/hooks/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/logger/.gitignore",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/responsive-kit/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/slardar-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/slardar-interface/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/tea-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/arch/tea-interface/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/biz-components/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/chat-answer-action/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/chat-answer-action/src/components/delete-message/index.module.less",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/chat-area/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/chat-area-plugin-reasoning/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/chat-uikit/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/chat-uikit-shared/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/chat-workflow-render/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/plugin-chat-background/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/plugin-chat-shortcuts/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/plugin-chat-shortcuts/src/components/short-cut-panel/index.module.less",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/plugin-message-grab/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/plugin-resume/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/chat-area/text-grab/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/editor-plugins/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/md-editor-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/prompt-kit/adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/prompt-kit/base/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/prompt-kit/main/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/common/websocket-manager-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/components/biz-tooltip-ui/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/components/bot-icons/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/components/bot-icons/stories/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/components/bot-semi/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/components/bot-semi/stories/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/components/json-viewer/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/components/loading-button/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/components/mouse-pad-selector/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/components/scroll-view/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/components/table-view/src/main.css",
    "content": ""
  },
  {
    "path": "frontend/packages/components/virtual-list/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/components/virtual-list/stories/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/common/feature-register/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/common/utils/stories/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/common/components/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/common/hooks/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/common/services/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/common/stores/stories/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/knowledge-data-set-for-agent/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/knowledge-ide-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/knowledge-ide-base/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/knowledge-modal-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/knowledge-modal-base/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/knowledge-resource-processor-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/knowledge-resource-processor-base/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/knowledge/knowledge-resource-processor-core/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/memory/database-creator/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/memory/database-creator/stories/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/memory/database-v2-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/memory/database-v2-base/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/memory/database-v2-main/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/memory/llm-plugins/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/data/memory/variables/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/devops/common-modules/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/devops/debug/debug-panel/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/devops/debug/debug-panel/src/main.css",
    "content": ""
  },
  {
    "path": "frontend/packages/devops/json-link-preview/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/foundation/browser-upgrade-banner/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/foundation/global-store/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/foundation/layout/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/foundation/local-storage/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/foundation/space-store/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/foundation/space-store-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/project-ide/biz-components/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/project-ide/biz-data/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/project-ide/biz-plugin-registry-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/autosave/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/components/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/entity-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/mockset-edit-modal-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/mockset-editor/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/mockset-editor-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/mockset-shared/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/open-platform/open-auth/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/open-platform/open-chat/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/open-platform/open-env-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/plugin-form-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/plugin-publish-ui-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/plugin-shared/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/plugin-tool-columns/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/plugin-tool-columns-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/publish-manage-hooks/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/user-store/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/workspace/entry-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/workspace/entry-base/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/workspace/project-entity-adapter/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/workspace/project-entity-base/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/studio/workspace/project-publish/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/workflow/adapter/base/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/workflow/adapter/code-editor/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/workflow/adapter/nodes/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/workflow/adapter/playground/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/workflow/adapter/resources/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/workflow/components/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/workflow/playground/__tests__/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/workflow/playground/src/components/.gitkeep",
    "content": ""
  },
  {
    "path": "frontend/packages/workflow/sdk/__tests__/.gitkeep",
    "content": ""
  }
]